aboutsummaryrefslogtreecommitdiffstats
path: root/moon_engine
diff options
context:
space:
mode:
Diffstat (limited to 'moon_engine')
-rw-r--r--moon_engine/.gitignore104
-rw-r--r--moon_engine/Changelog61
-rw-r--r--moon_engine/LICENSE202
-rw-r--r--moon_engine/MANIFEST.in9
-rw-r--r--moon_engine/README.md146
-rw-r--r--moon_engine/conf/config.cfg12
-rw-r--r--moon_engine/conf/moon.yaml58
-rw-r--r--moon_engine/conf/moon_engine_users.json1
-rw-r--r--moon_engine/conf/policy_mls.json495
-rw-r--r--moon_engine/conf/policy_rbac.json393
-rw-r--r--moon_engine/conf/policy_rbac_mls.json525
-rw-r--r--moon_engine/moon_engine/__init__.py30
-rw-r--r--moon_engine/moon_engine/__main__.py113
-rw-r--r--moon_engine/moon_engine/api/__init__.py29
-rw-r--r--moon_engine/moon_engine/api/authz/__init__.py12
-rw-r--r--moon_engine/moon_engine/api/authz/authz.py28
-rw-r--r--moon_engine/moon_engine/api/authz/managers.py20
-rw-r--r--moon_engine/moon_engine/api/configuration.py195
-rw-r--r--moon_engine/moon_engine/api/import_json.py29
-rw-r--r--moon_engine/moon_engine/api/logs.py25
-rw-r--r--moon_engine/moon_engine/api/orchestration/__init__.py12
-rw-r--r--moon_engine/moon_engine/api/orchestration/managers.py21
-rw-r--r--moon_engine/moon_engine/api/orchestration/pipeline.py51
-rw-r--r--moon_engine/moon_engine/api/orchestration/slave.py44
-rw-r--r--moon_engine/moon_engine/api/pipeline/__init__.py11
-rw-r--r--moon_engine/moon_engine/api/pipeline/authz.py35
-rw-r--r--moon_engine/moon_engine/api/pipeline/update.py188
-rw-r--r--moon_engine/moon_engine/api/pipeline/update_pipeline.py220
-rw-r--r--moon_engine/moon_engine/api/pipeline/validator.py125
-rw-r--r--moon_engine/moon_engine/api/status.py30
-rw-r--r--moon_engine/moon_engine/api/wrapper/__init__.py11
-rw-r--r--moon_engine/moon_engine/api/wrapper/api/__init__.py11
-rw-r--r--moon_engine/moon_engine/api/wrapper/api/authz.py43
-rw-r--r--moon_engine/moon_engine/api/wrapper/api/pipeline.py100
-rw-r--r--moon_engine/moon_engine/api/wrapper/api/update.py179
-rw-r--r--moon_engine/moon_engine/api/wrapper/router.py115
-rw-r--r--moon_engine/moon_engine/api/wrapper/update_wrapper.py233
-rw-r--r--moon_engine/moon_engine/authz_driver.py68
-rw-r--r--moon_engine/moon_engine/orchestration_driver.py100
-rw-r--r--moon_engine/moon_engine/plugins/__init__.py12
-rw-r--r--moon_engine/moon_engine/plugins/authz.py32
-rw-r--r--moon_engine/moon_engine/plugins/oslowrapper.py137
-rw-r--r--moon_engine/moon_engine/plugins/pyorchestrator.py372
-rw-r--r--moon_engine/moon_engine/server.py288
-rw-r--r--moon_engine/moon_engine_users.json1
-rw-r--r--moon_engine/requirements.txt7
-rw-r--r--moon_engine/setup.py55
-rw-r--r--moon_engine/tests/func_policies/moon.yaml58
-rw-r--r--moon_engine/tests/func_policies/opst_rbac.json59378
-rw-r--r--moon_engine/tests/func_policies/opst_rbac_cinder.json5078
-rw-r--r--moon_engine/tests/func_policies/opst_rbac_glance.json2918
-rw-r--r--moon_engine/tests/func_policies/opst_rbac_keystone.json12998
-rw-r--r--moon_engine/tests/func_policies/opst_rbac_kg.json1
-rw-r--r--moon_engine/tests/func_policies/opst_rbac_nova.json27158
-rw-r--r--moon_engine/tests/func_policies/policy_attributes.json452
-rw-r--r--moon_engine/tests/func_policies/policy_mls.json495
-rw-r--r--moon_engine/tests/func_policies/policy_rbac.json393
-rw-r--r--moon_engine/tests/func_policies/test_base_configuration.py30
-rw-r--r--moon_engine/tests/func_policies/tmp/glance.policy.json63
-rw-r--r--moon_engine/tests/func_policies/tmp/keystone.policy.json260
-rw-r--r--moon_engine/tests/func_postman/Test Authz through Wrapper.postman_collection.json24
-rw-r--r--moon_engine/tests/func_postman/db.json1
-rw-r--r--moon_engine/tests/func_postman/gunicorn.cfg3
-rw-r--r--moon_engine/tests/func_postman/moon.yaml49
-rwxr-xr-xmoon_engine/tests/func_postman/run.sh3
-rw-r--r--moon_engine/tests/performance_tests/authz_pipeline.py115
-rw-r--r--moon_engine/tests/performance_tests/locustfile.py26
-rw-r--r--moon_engine/tests/performance_tests/policy_rbac.json411
-rw-r--r--moon_engine/tests/performance_tests/utils.py60
-rw-r--r--moon_engine/tests/unit_python/api/__init__.py12
-rw-r--r--moon_engine/tests/unit_python/api/moon.yaml54
-rw-r--r--moon_engine/tests/unit_python/api/pipeline/__init__.py11
-rw-r--r--moon_engine/tests/unit_python/api/pipeline/test_authz.py37
-rw-r--r--moon_engine/tests/unit_python/api/pipeline/test_update.py525
-rw-r--r--moon_engine/tests/unit_python/api/test_status.py21
-rw-r--r--moon_engine/tests/unit_python/api/wrapper/__init__.py11
-rw-r--r--moon_engine/tests/unit_python/api/wrapper/test_oslo_wrapper.py209
-rw-r--r--moon_engine/tests/unit_python/api/wrapper/test_pipeline.py32
-rw-r--r--moon_engine/tests/unit_python/api/wrapper/test_update.py602
-rw-r--r--moon_engine/tests/unit_python/api/wrapper/test_wrapper_authz.py57
-rw-r--r--moon_engine/tests/unit_python/conftest.py60
-rw-r--r--moon_engine/tests/unit_python/mock_require_data.py762
-rw-r--r--moon_engine/tests/unit_python/moon.yaml54
-rw-r--r--moon_engine/tests/unit_python/moon_engine_users.json1
-rw-r--r--moon_engine/tests/unit_python/policy_example.json470
-rw-r--r--moon_engine/tests/unit_python/requirements.txt5
86 files changed, 117885 insertions, 0 deletions
diff --git a/moon_engine/.gitignore b/moon_engine/.gitignore
new file mode 100644
index 00000000..894a44cc
--- /dev/null
+++ b/moon_engine/.gitignore
@@ -0,0 +1,104 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+.hypothesis/
+.pytest_cache/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# pyenv
+.python-version
+
+# celery beat schedule file
+celerybeat-schedule
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
diff --git a/moon_engine/Changelog b/moon_engine/Changelog
new file mode 100644
index 00000000..9c863b1c
--- /dev/null
+++ b/moon_engine/Changelog
@@ -0,0 +1,61 @@
+# Copyright 2018 Orange and its contributors
+# This software is distributed under the terms and conditions of the 'Apache-2.0'
+# license which can be found in the file 'LICENSE' in this package distribution
+# or at 'http://www.apache.org/licenses/LICENSE-2.0'.
+
+
+CHANGES
+=======
+
+0.1
+---
+- First version of moon_engine
+
+0.2
+---
+- Add benchmark tests
+- Fix a bug when retrieving logging configuration
+- Update Configuration
+- Init Pipeline API
+- Init Wrapper API
+- Init Authz API
+- Add Configuration API
+- Add first authorization plugin
+- Adding authz API for wrapper and pipeline
+
+0.3
+---
+- Automatically load the API plugins at the server startup
+
+0.4
+---
+- Fix the issue in the plugin oslowrapper
+- Fix the communication issue between the Wrapper and the Pipeline
+
+0.5
+---
+- Fix subject retrieval from Oslo requests
+
+0.6
+---
+- Force the deletion of authorization requests
+- Fix the max 21 requests on Engine
+- Add performance tests
+- Fix error updating PDP with the dashboard
+- Fix update pipeline issue
+- Add the JSON import functionality
+- Fix the change of the wrapper's log after creation of a pipeline
+- Add the global attributes functionality
+
+0.7
+---
+- Adaptation following the removal of the field database > pwd_file in moon.yaml
+- Fix of pdp server deletion
+- Add of start / stop commands for standalone engine
+
+0.8
+---
+- Fix of a bug when handling requests from openstack
+- Fix of the pdp update
+- Fix of the pdp status retrieval
+- Add of a api allowing to reload the conf file of a wrapper (used by the manager after updating it)
diff --git a/moon_engine/LICENSE b/moon_engine/LICENSE
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/moon_engine/LICENSE
@@ -0,0 +1,202 @@
+
+ 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.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ 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.
diff --git a/moon_engine/MANIFEST.in b/moon_engine/MANIFEST.in
new file mode 100644
index 00000000..cf4d2e4e
--- /dev/null
+++ b/moon_engine/MANIFEST.in
@@ -0,0 +1,9 @@
+# Copyright 2015 Open Platform for NFV Project, Inc. and its contributors
+# This software is distributed under the terms and conditions of the 'Apache-2.0'
+# license which can be found in the file 'LICENSE' in this package distribution
+# or at 'http://www.apache.org/licenses/LICENSE-2.0'.
+
+include README.md
+include LICENSE
+include setup.py
+include requirements.txt
diff --git a/moon_engine/README.md b/moon_engine/README.md
new file mode 100644
index 00000000..f9266936
--- /dev/null
+++ b/moon_engine/README.md
@@ -0,0 +1,146 @@
+# moon_engine
+
+## Installation
+
+If you want a stable version:
+
+```bash
+sudo python -m pip install moon_engine
+```
+
+If you want a development version:
+
+```bash
+ARTIFACTORY=https://artifactory-iva.si.francetelecom.fr/artifactory/api/pypi/python-virt-orange-product-devops/simple
+sudo python -m pip install --pre moon_engine -i $ARTIFACTORY
+```
+Use it at your own risk, this is an unstable version.
+
+If you want to be in development mode, and get the code:
+
+```bash
+git clone git@gitlab.forge.orange-labs.fr:moon/moon_utilities.git
+cd moon_utilities
+sudo pip install -e .
+cd ..
+git clone git@gitlab.forge.orange-labs.fr:moon/moon_cache.git
+cd moon_cache
+sudo pip install -e .
+cd ..
+git clone git@gitlab.forge.orange-labs.fr:moon/moon_engine.git
+cd moon_engine
+sudo pip install -e .
+```
+
+## Configuration
+
+You need to create 3 configuration files.
+
+### config.cfg::
+
+ # configuration for Gunicorn
+ bind = "127.0.0.1:8081"
+ workers = 2
+
+ # configuration for moon_engine
+ moon = "moon.yaml"
+
+
+### moon.yaml (feel free to update the configuration file to your need...)::
+
+
+ type: "pipeline"
+ uuid:
+ manager_url: ""
+ incremental_updates: false
+ api_token:
+ data: policy.json
+ debug: true
+
+ management:
+ password: admin
+ url: http://127.0.0.1:8000
+ user: admin
+ token_file: moon_engine_users.json
+
+ orchestration:
+ driver: moon_engine.plugins.pyorchestrator
+ connection: local
+ port: 20000...20100
+ config_dir: /tmp
+
+ authorization:
+ driver: moon_engine.plugins.authz
+
+ plugins:
+ directory: /tmp
+
+ logging:
+ version: 1
+
+ formatters:
+ brief:
+ format: "%(levelname)s %(name)s %(message)-30s"
+ custom:
+ format: "%(asctime)-15s %(levelname)s %(name)s %(message)s"
+
+ handlers:
+ console:
+ class : logging.StreamHandler
+ formatter: custom
+ level : INFO
+ stream : ext://sys.stdout
+ file:
+ class : logging.handlers.RotatingFileHandler
+ formatter: custom
+ level : DEBUG
+ filename: /tmp/moon_engine.log
+ maxBytes: 1048576
+ backupCount: 3
+
+ loggers:
+ moon:
+ level: DEBUG
+ handlers: [console, file]
+ propagate: no
+
+ root:
+ level: ERROR
+ handlers: [console]
+
+### policy.json
+
+This file contains all data that will be imported in the Engine. As we cannot update the cache after the creation of the Engine, all data must be in this file.
+Example files lie in the conf directory.
+
+## Web server execution
+
+Execution when library is installed:
+
+For a development server:
+
+```bash
+hug -m moon_engine.server config.cfg
+```
+
+For a production server:
+
+```bash
+gunicorn moon_engine.server:__hug_wsgi__ -c config.cfg
+```
+
+or
+
+```bash
+moon_engine start config.cfg
+```
+
+If library is not installed:
+
+```bash
+gunicorn moon_engine/server:__hug_wsgi__ -c config.cfg
+```
+
+This will install an autonomous engine server.
+If you need to connect to a Manager, you must update the `moon.yaml` accordingly.
+
diff --git a/moon_engine/conf/config.cfg b/moon_engine/conf/config.cfg
new file mode 100644
index 00000000..4a7ea99c
--- /dev/null
+++ b/moon_engine/conf/config.cfg
@@ -0,0 +1,12 @@
+# Copyright 2018 Orange and its contributors
+# This software is distributed under the terms and conditions of the 'Apache-2.0'
+# license which can be found in the file 'LICENSE' in this package distribution
+# or at 'http://www.apache.org/licenses/LICENSE-2.0'.
+
+# configuration for Gunicorn
+bind = "127.0.0.1:8081"
+workers = 2
+pid_file_dir = "/tmp/"
+
+# configuration for moon_engine
+moon = "conf/moon.yaml"
diff --git a/moon_engine/conf/moon.yaml b/moon_engine/conf/moon.yaml
new file mode 100644
index 00000000..b46c219e
--- /dev/null
+++ b/moon_engine/conf/moon.yaml
@@ -0,0 +1,58 @@
+type: "pipeline"
+uuid:
+manager_url: ""
+incremental_updates: false
+api_token:
+data: conf/policy_rbac.json
+debug: true
+
+management:
+ password: admin
+ url:
+ user: admin
+ token_file: moon_engine_users.json
+
+orchestration:
+ driver: moon_engine.plugins.pyorchestrator
+ connection: local
+ port: 20000...20100
+ config_dir: /tmp
+
+authorization:
+ driver: moon_engine.plugins.authz
+
+plugins:
+ directory: /tmp
+
+logging:
+ version: 1
+
+ formatters:
+ brief:
+ format: "%(levelname)s %(name)s %(message)-30s"
+ custom:
+ format: "%(asctime)-15s %(levelname)s %(name)s %(message)s"
+
+ handlers:
+ console:
+ class : logging.StreamHandler
+ formatter: custom
+ level : INFO
+ stream : ext://sys.stdout
+ file:
+ class : logging.handlers.RotatingFileHandler
+ formatter: custom
+ level : DEBUG
+ filename: /tmp/moon_engine.log
+ maxBytes: 1048576
+ backupCount: 3
+
+ loggers:
+ moon:
+ level: DEBUG
+ handlers: [console, file]
+ propagate: no
+
+ root:
+ level: ERROR
+ handlers: [console]
diff --git a/moon_engine/conf/moon_engine_users.json b/moon_engine/conf/moon_engine_users.json
new file mode 100644
index 00000000..e9b18176
--- /dev/null
+++ b/moon_engine/conf/moon_engine_users.json
@@ -0,0 +1 @@
+{"_default": {}} \ No newline at end of file
diff --git a/moon_engine/conf/policy_mls.json b/moon_engine/conf/policy_mls.json
new file mode 100644
index 00000000..eac3220a
--- /dev/null
+++ b/moon_engine/conf/policy_mls.json
@@ -0,0 +1,495 @@
+{
+ "policies": [
+ {
+ "name": "MLS Policy",
+ "genre": "authz",
+ "description": "MLS policy",
+ "model": {
+ "name": "MLS"
+ },
+ "mandatory": true,
+ "override": true
+ }
+ ],
+ "models": [
+ {
+ "name": "MLS",
+ "description": "",
+ "meta_rules": [
+ {
+ "name": "mls"
+ }
+ ],
+ "override": true
+ }
+ ],
+ "subjects": [
+ {
+ "name": "admin",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "MLS Policy"
+ }
+ ]
+ },
+ {
+ "name": "demo",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "MLS Policy"
+ }
+ ]
+ }
+ ],
+ "subject_categories": [
+ {
+ "name": "level",
+ "description": "subject level"
+ }
+ ],
+ "subject_data": [
+ {
+ "name": "high",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ },
+ {
+ "name": "medium",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ },
+ {
+ "name": "low",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ }
+ ],
+ "subject_assignments": [
+ {
+ "subject": {"name": "admin"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "high"}]
+ },
+ {
+ "subject": {"name": "demo"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "low"}]
+ }
+ ],
+ "objects": [
+ {
+ "name": "vm1",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "MLS Policy"
+ }
+ ]
+ },
+ {
+ "name": "vm2",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "MLS Policy"
+ }
+ ]
+ },
+ {
+ "name": "vm3",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "MLS Policy"
+ }
+ ]
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "level",
+ "description": "object level"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "high",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ },
+ {
+ "name": "medium",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ },
+ {
+ "name": "low",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ }
+ ],
+ "object_assignments": [
+ {
+ "object": {"name": "vm1"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "high"}]
+ },
+ {
+ "object": {"name": "vm2"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "medium"}]
+ },
+ {
+ "object": {"name": "vm3"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "low"}]
+ }
+ ],
+ "actions": [
+ {
+ "name": "use_image",
+ "description": "use_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_images",
+ "description": "get_images action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_image",
+ "description": "update_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "set_image",
+ "description": "set_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "type",
+ "description": ""
+ }
+ ],
+ "action_data": [
+ {
+ "name": "read",
+ "description": "read action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ },
+ {
+ "name": "write",
+ "description": "write action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ },
+ {
+ "name": "execute",
+ "description": "execute action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ }
+ ],
+ "action_assignments": [
+ {
+ "action": {"name": "use_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}, {"name": "execute"}]
+ },
+ {
+ "action": {"name": "update_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}, {"name": "write"}]
+ },
+ {
+ "action": {"name": "set_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "write"}]
+ },
+ {
+ "action": {"name": "get_images"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}]
+ }
+ ],
+ "meta_rules": [
+ {
+ "name": "mls",
+ "description": "",
+ "subject_categories": [{"name": "level"}],
+ "object_categories": [{"name": "level"}],
+ "action_categories": [{"name": "type"}]
+ }
+ ],
+ "rules": [
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "high"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "low"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "high"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "low"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "high"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "low"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ }
+ ],
+ "checks": {
+ "granted": [
+ ["admin", "vm1", "get_images"],
+ ["admin", "vm1", "set_image"],
+ ["admin", "vm1", "use_image"],
+ ["admin", "vm2", "get_images"],
+ ["admin", "vm2", "set_image"],
+ ["admin", "vm3", "get_images"],
+ ["demo", "vm1", "get_images"],
+ ["demo", "vm1", "set_image"],
+ ["demo", "vm2", "get_images"],
+ ["demo", "vm1", "get_images"]
+ ],
+ "denied": [
+ ["admin", "vm2", "update_image"],
+ ["admin", "vm3", "set_image"],
+ ["admin", "vm3", "update_image"],
+ ["demo", "vm1", "update_image"],
+ ["demo", "vm2", "set_image"],
+ ["demo", "vm2", "update_image"],
+ ["demo", "vm3", "get_images"],
+ ["demo", "vm3", "set_image"],
+ ["demo", "vm3", "update_image"]
+ ]
+ }
+} \ No newline at end of file
diff --git a/moon_engine/conf/policy_rbac.json b/moon_engine/conf/policy_rbac.json
new file mode 100644
index 00000000..a4bc959c
--- /dev/null
+++ b/moon_engine/conf/policy_rbac.json
@@ -0,0 +1,393 @@
+{
+ "policies": [
+ {
+ "name": "RBAC Policy",
+ "genre": "authz",
+ "description": "RBAC policy",
+ "model": {
+ "name": "RBAC"
+ },
+ "mandatory": true,
+ "override": true
+ }
+ ],
+ "models": [
+ {
+ "name": "RBAC",
+ "description": "",
+ "meta_rules": [
+ {
+ "name": "rbac"
+ }
+ ],
+ "override": true
+ }
+ ],
+ "subjects": [
+ {
+ "name": "admin",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "RBAC Policy"
+ }
+ ]
+ },
+ {
+ "name": "demo",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "RBAC Policy"
+ }
+ ]
+ }
+ ],
+ "subject_categories": [
+ {
+ "name": "role",
+ "description": "role of a user"
+ }
+ ],
+ "subject_data": [
+ {
+ "name": "admin",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ },
+ {
+ "name": "user",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ }
+ ],
+ "subject_assignments": [
+ {
+ "subject": {"name": "admin"},
+ "category": {"name": "role"},
+ "assignments": [{"name": "admin"}]
+ },
+ {
+ "subject": {"name": "admin"},
+ "category": {"name": "role"},
+ "assignments": [{"name": "user"}]
+ },
+ {
+ "subject": {"name": "demo"},
+ "category": {"name": "role"},
+ "assignments": [{"name": "user"}]
+ }
+ ],
+ "objects": [
+ {
+ "name": "vm1",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "RBAC Policy"
+ }
+ ]
+ },
+ {
+ "name": "vm2",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "RBAC Policy"
+ }
+ ]
+ },
+ {
+ "name": "vm3",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "RBAC Policy"
+ }
+ ]
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "id",
+ "description": "identification of the object"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "vm1",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ },
+ {
+ "name": "vm2",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ },
+ {
+ "name": "vm3",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ }
+ ],
+ "object_assignments": [
+ {
+ "object": {"name": "vm1"},
+ "category": {"name": "id"},
+ "assignments": [{"name": "vm1"}]
+ },
+ {
+ "object": {"name": "vm2"},
+ "category": {"name": "id"},
+ "assignments": [{"name": "vm2"}]
+ },
+ {
+ "object": {"name": "vm3"},
+ "category": {"name": "id"},
+ "assignments": [{"name": "vm3"}]
+ }
+ ],
+ "actions": [
+ {
+ "name": "use_image",
+ "description": "use_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_images",
+ "description": "get_images action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_image",
+ "description": "update_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "set_image",
+ "description": "set_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "type",
+ "description": ""
+ }
+ ],
+ "action_data": [
+ {
+ "name": "read",
+ "description": "read action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ },
+ {
+ "name": "write",
+ "description": "write action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ },
+ {
+ "name": "execute",
+ "description": "execute action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ }
+ ],
+ "action_assignments": [
+ {
+ "action": {"name": "use_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}, {"name": "execute"}]
+ },
+ {
+ "action": {"name": "update_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}, {"name": "write"}]
+ },
+ {
+ "action": {"name": "set_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "write"}]
+ },
+ {
+ "action": {"name": "get_images"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}]
+ }
+ ],
+ "meta_rules": [
+ {
+ "name": "rbac",
+ "description": "",
+ "subject_categories": [{"name": "role"}],
+ "object_categories": [{"name": "id"}],
+ "action_categories": [{"name": "type"}]
+ }
+ ],
+ "rules": [
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm2"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm2"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm3"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "user"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "user"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "user"}],
+ "object_data": [{"name": "vm2"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ }
+ ],
+ "checks": {
+ "granted": [
+ ["admin", "vm1", "get_images"],
+ ["admin", "vm1", "set_image"],
+ ["admin", "vm1", "use_image"],
+ ["admin", "vm2", "get_images"],
+ ["admin", "vm2", "set_image"],
+ ["admin", "vm3", "get_images"],
+ ["demo", "vm1", "get_images"],
+ ["demo", "vm1", "set_image"],
+ ["demo", "vm2", "get_images"],
+ ["demo", "vm1", "get_images"]
+ ],
+ "denied": [
+ ["admin", "vm2", "update_image"],
+ ["admin", "vm3", "set_image"],
+ ["admin", "vm3", "update_image"],
+ ["demo", "vm1", "update_image"],
+ ["demo", "vm2", "set_image"],
+ ["demo", "vm2", "update_image"],
+ ["demo", "vm3", "get_images"],
+ ["demo", "vm3", "set_image"],
+ ["demo", "vm3", "update_image"]
+ ]
+ }
+} \ No newline at end of file
diff --git a/moon_engine/conf/policy_rbac_mls.json b/moon_engine/conf/policy_rbac_mls.json
new file mode 100644
index 00000000..beb4e3ec
--- /dev/null
+++ b/moon_engine/conf/policy_rbac_mls.json
@@ -0,0 +1,525 @@
+{
+ "policies": [
+ {
+ "name": "RBAC+MLS Policy",
+ "genre": "authz",
+ "description": "RBAC+MLS policy",
+ "model": {
+ "name": "RBACMLS"
+ },
+ "mandatory": true,
+ "override": true
+ }
+ ],
+ "models": [
+ {
+ "name": "RBACMLS",
+ "description": "",
+ "meta_rules": [
+ {
+ "name": "rbac_mls"
+ }
+ ],
+ "override": true
+ }
+ ],
+ "subjects": [
+ {
+ "name": "admin",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "RBAC+MLS Policy"
+ }
+ ]
+ },
+ {
+ "name": "demo",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "RBAC+MLS Policy"
+ }
+ ]
+ }
+ ],
+ "subject_categories": [
+ {
+ "name": "role",
+ "description": "role of a user"
+ },
+ {
+ "name": "level",
+ "description": "subject level"
+ }
+ ],
+ "subject_data": [
+ {
+ "name": "high",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ },
+ {
+ "name": "admin",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ },
+ {
+ "name": "member",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ },
+ {
+ "name": "medium",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ },
+ {
+ "name": "low",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ }
+ ],
+ "subject_assignments": [
+ {
+ "subject": {"name": "admin"},
+ "category": {"name": "role"},
+ "assignments": [{"name": "admin"}]
+ },
+ {
+ "subject": {"name": "demo"},
+ "category": {"name": "role"},
+ "assignments": [{"name": "member"}]
+ },
+ {
+ "subject": {"name": "admin"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "high"}]
+ },
+ {
+ "subject": {"name": "demo"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "low"}]
+ }
+ ],
+ "objects": [
+ {
+ "name": "vm1",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "RBAC+MLS Policy"
+ }
+ ]
+ },
+ {
+ "name": "vm2",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "RBAC+MLS Policy"
+ }
+ ]
+ },
+ {
+ "name": "vm3",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "RBAC+MLS Policy"
+ }
+ ]
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "level",
+ "description": "object level"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "high",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ },
+ {
+ "name": "medium",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ },
+ {
+ "name": "low",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ }
+ ],
+ "object_assignments": [
+ {
+ "object": {"name": "vm1"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "high"}]
+ },
+ {
+ "object": {"name": "vm2"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "medium"}]
+ },
+ {
+ "object": {"name": "vm3"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "low"}]
+ }
+ ],
+ "actions": [
+ {
+ "name": "use_image",
+ "description": "use_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_images",
+ "description": "get_images action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_image",
+ "description": "update_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "set_image",
+ "description": "set_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "type",
+ "description": ""
+ }
+ ],
+ "action_data": [
+ {
+ "name": "read",
+ "description": "read action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ },
+ {
+ "name": "write",
+ "description": "write action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ },
+ {
+ "name": "execute",
+ "description": "execute action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ }
+ ],
+ "action_assignments": [
+ {
+ "action": {"name": "use_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}, {"name": "execute"}]
+ },
+ {
+ "action": {"name": "update_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}, {"name": "write"}]
+ },
+ {
+ "action": {"name": "set_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "write"}]
+ },
+ {
+ "action": {"name": "get_images"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}]
+ }
+ ],
+ "meta_rules": [
+ {
+ "name": "rbac_mls",
+ "description": "",
+ "subject_categories": [{"name": "role"}, {"name": "level"}],
+ "object_categories": [{"name": "level"}],
+ "action_categories": [{"name": "type"}]
+ }
+ ],
+ "rules": [
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "high"}],
+ "object_data": [{"name": "high"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "high"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "high"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "medium"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "medium"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "low"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "high"}],
+ "object_data": [{"name": "high"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "high"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "high"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "medium"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "medium"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "low"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "high"}],
+ "object_data": [{"name": "high"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "high"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "high"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "medium"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "medium"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac_mls"},
+ "rule": {
+ "subject_data": [{"name": "admin"}, {"name": "low"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "RBAC+MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ }
+ ],
+ "checks": {
+ "granted": [
+ ["admin", "vm1", "get_images"],
+ ["admin", "vm1", "set_image"],
+ ["admin", "vm1", "use_image"],
+ ["admin", "vm2", "get_images"],
+ ["admin", "vm2", "set_image"],
+ ["admin", "vm3", "get_images"],
+ ["demo", "vm1", "get_images"],
+ ["demo", "vm1", "set_image"],
+ ["demo", "vm2", "get_images"],
+ ["demo", "vm1", "get_images"]
+ ],
+ "denied": [
+ ["admin", "vm2", "update_image"],
+ ["admin", "vm3", "set_image"],
+ ["admin", "vm3", "update_image"],
+ ["demo", "vm1", "update_image"],
+ ["demo", "vm2", "set_image"],
+ ["demo", "vm2", "update_image"],
+ ["demo", "vm3", "get_images"],
+ ["demo", "vm3", "set_image"],
+ ["demo", "vm3", "update_image"]
+ ]
+ }
+} \ No newline at end of file
diff --git a/moon_engine/moon_engine/__init__.py b/moon_engine/moon_engine/__init__.py
new file mode 100644
index 00000000..0c44540e
--- /dev/null
+++ b/moon_engine/moon_engine/__init__.py
@@ -0,0 +1,30 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+
+__version__ = "0.8"
+
+
+def get_api_key(url, user, password):
+ import requests
+ from requests.auth import HTTPBasicAuth
+ _url = url + "/auth"
+ req = requests.get(_url, auth=HTTPBasicAuth(user, password))
+ if req.status_code != 200:
+ raise Exception("Cannot authenticate on {} with {}".format(_url, user))
+ return req.content.decode("utf-8").strip('"')
+
+
+def serve(hostname="127.0.0.1", port=8080):
+ import hug
+ import moon_engine.server
+ hug.API(moon_engine.server).http.serve(host=hostname, port=port, display_intro=False)
diff --git a/moon_engine/moon_engine/__main__.py b/moon_engine/moon_engine/__main__.py
new file mode 100644
index 00000000..16f1d322
--- /dev/null
+++ b/moon_engine/moon_engine/__main__.py
@@ -0,0 +1,113 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import logging
+import subprocess # nosec
+import os
+import sys
+import hug.interface
+from moon_engine.api import configuration
+
+
+LOGGER = logging.getLogger("moon.engine")
+
+
+@hug.cli("start_server")
+@hug.local()
+def start_server(conf_file):
+ """ Start the server of the engine """
+
+ try:
+ guni_conf_file = get_info(conf_file, "moon").strip('"\n')
+ port = get_info(conf_file, "bind").split(":")[1].strip('"\n')
+ log_dir = get_info(conf_file, "pid_file_dir").strip('"\n')
+ except ValueError:
+ return
+
+ configuration.init_logging(guni_conf_file)
+ LOGGER.setLevel(logging.ERROR)
+
+ pid_filename = log_dir + port + ".pid"
+ _command = ["gunicorn", "moon_engine.server:__hug_wsgi__", "-D", "-p", pid_filename, "-c", conf_file]
+ subprocess.Popen(_command, stdout=subprocess.PIPE, close_fds=True) # nosec
+
+
+@hug.cli("stop_server")
+@hug.local()
+def stop_server(conf_file):
+ """ Stop the server of the engine """
+
+ try:
+ guni_conf_file = get_info(conf_file, "moon").strip('"\n')
+ port = get_info(conf_file, "bind").split(":")[1].strip('"\n')
+ log_dir = get_info(conf_file, "pid_file_dir").strip('"\n')
+ except ValueError:
+ return
+
+ configuration.init_logging(guni_conf_file)
+ LOGGER.setLevel(logging.ERROR)
+
+ pid_filename = log_dir + port + ".pid"
+
+ try:
+ pid_file = open(pid_filename, 'r')
+ except FileNotFoundError:
+ LOGGER.error(f"File {pid_filename} not found. Server on port {port} not running?")
+ return
+
+ try:
+ pid = int(pid_file.read())
+ except ValueError:
+ LOGGER.error(f"The pid found in {pid_filename} is not valid")
+ return
+
+ os.kill(pid, 15)
+
+
+def get_info(conf, key):
+ with open(conf) as config:
+ lines = config.readlines()
+ for line in lines:
+ if line.startswith(key):
+ return line.split("=")[1].strip()
+ LOGGER.error(f"Key \"{key}\" missing from Gunicorn configuration file")
+ raise ValueError
+
+
+def run():
+ if len(sys.argv) > 1:
+
+ command = sys.argv[1]
+ sys.argv.pop(1)
+ # if command == "conf":
+ # configuration.get_configuration.interface.cli()
+ # elif command == "db":
+ # configuration.init_database.interface.cli()
+ if command == "start":
+ start_server.interface.cli()
+ elif command == "stop":
+ stop_server.interface.cli()
+ else:
+ LOGGER.critical("Unknown command {}".format(command))
+
+ else:
+ # TODO: update the command management by using argparse
+ print("""Possible commands are:
+ # - conf
+ # - db
+ - start
+ - stop
+ """)
+
+
+if __name__ == "__main__":
+ run()
diff --git a/moon_engine/moon_engine/api/__init__.py b/moon_engine/moon_engine/api/__init__.py
new file mode 100644
index 00000000..deafe11b
--- /dev/null
+++ b/moon_engine/moon_engine/api/__init__.py
@@ -0,0 +1,29 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+
+from falcon import HTTP_400, HTTP_401, HTTP_402, HTTP_403, HTTP_404, HTTP_405, \
+ HTTP_406, HTTP_407, HTTP_408, HTTP_409, HTTP_500
+
+ERROR_CODE = {
+ 400: HTTP_400,
+ 401: HTTP_401,
+ 402: HTTP_402,
+ 403: HTTP_403,
+ 404: HTTP_404,
+ 405: HTTP_405,
+ 406: HTTP_406,
+ 407: HTTP_407,
+ 408: HTTP_408,
+ 409: HTTP_409,
+ 500: HTTP_500
+}
diff --git a/moon_engine/moon_engine/api/authz/__init__.py b/moon_engine/moon_engine/api/authz/__init__.py
new file mode 100644
index 00000000..1856aa2c
--- /dev/null
+++ b/moon_engine/moon_engine/api/authz/__init__.py
@@ -0,0 +1,12 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
diff --git a/moon_engine/moon_engine/api/authz/authz.py b/moon_engine/moon_engine/api/authz/authz.py
new file mode 100644
index 00000000..caf95f93
--- /dev/null
+++ b/moon_engine/moon_engine/api/authz/authz.py
@@ -0,0 +1,28 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import logging
+from moon_engine.api.authz.managers import Managers
+
+logger = logging.getLogger("moon.engine.api.authz.pipeline")
+
+
+class AuthzManager(Managers):
+
+ def __init__(self, connector=None):
+ self.driver = connector.driver
+ Managers.AuthzManager = self
+
+ def get_authz(self, subject_name, object_name, action_name):
+ return self.driver.get_authz(subject_name=subject_name,
+ object_name=object_name,
+ action_name=action_name)
diff --git a/moon_engine/moon_engine/api/authz/managers.py b/moon_engine/moon_engine/api/authz/managers.py
new file mode 100644
index 00000000..dedb148d
--- /dev/null
+++ b/moon_engine/moon_engine/api/authz/managers.py
@@ -0,0 +1,20 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import logging
+
+logger = logging.getLogger("moon.engine.api.authz.managers")
+
+
+class Managers(object):
+ """Object that links managers together"""
+ AuthzManager = None
diff --git a/moon_engine/moon_engine/api/configuration.py b/moon_engine/moon_engine/api/configuration.py
new file mode 100644
index 00000000..398497a1
--- /dev/null
+++ b/moon_engine/moon_engine/api/configuration.py
@@ -0,0 +1,195 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+"""Configuration API"""
+import hug.interface
+import os
+import logging
+import logging.config
+import yaml
+import copy
+from importlib.machinery import SourceFileLoader
+
+LOGGER = logging.getLogger("moon.engine.api.configuration")
+__CONF = {}
+CONF_FILE = ""
+
+
+def init_logging(log_file=None):
+ """Initialize the logging system
+
+ :return: nothing
+ """
+ logging_conf = get_configuration(key='logging', file=log_file)
+ if get_configuration(key='debug', default=False):
+ logging_conf.get("handlers", {}).get("console", {})['level'] = logging.DEBUG
+ LOGGER.warning("Setting debug to True!")
+ logging.config.dictConfig(logging_conf)
+
+
+def get_plugins_by_type(plugin_type):
+ """
+
+ :param plugin_type:
+ :return:
+ """
+ plugins_dir = __CONF["plugins"]["directory"]
+ LOGGER.info("Getting all plugins for {}".format(plugin_type))
+ import moon_engine.plugins
+ import glob
+ for plugname in glob.glob(os.path.join(moon_engine.plugins.__path__[0], "*.py")):
+ try:
+ plugname = os.path.basename(plugname)[:-3]
+ plug = __import__("moon_engine.plugins.{}".format(plugname), fromlist=["plugins", ])
+ if getattr(plug, "PLUGIN_TYPE", "") == plugin_type:
+ yield plug
+ LOGGER.debug("Plug {} loaded".format(plugname))
+ except ModuleNotFoundError:
+ pass
+ for plugname in glob.glob(os.path.join(plugins_dir, "*.py")):
+ m = SourceFileLoader("myplugs", os.path.join(plugins_dir, plugname+".py"))
+ plug = m.load_module()
+ if getattr(plug, "PLUGIN_TYPE", "") == plugin_type:
+ yield plug
+ LOGGER.debug("Plug {} loaded".format(plugname))
+
+
+def load_plugin(plugname):
+ """Load a python module
+
+ :param plugname: the name of the module to load
+ :return: a reference to the module
+ """
+ plugins_dir = __CONF["plugins"]["directory"]
+ LOGGER.info(f"load_plugin {plugname}")
+ try:
+ return __import__(plugname, fromlist=["plugins", ])
+ except ImportError as e:
+ LOGGER.warning("Cannot import module ({})".format(e))
+ try:
+ m = SourceFileLoader("myplugs", os.path.join(plugins_dir, plugname+".py"))
+ return m.load_module()
+ except ImportError as e:
+ LOGGER.error("Error in importing plugin {} from {}".format(plugname, plugins_dir))
+ LOGGER.exception(e)
+
+
+def get_authz_driver():
+ """Load and check the plugin module
+
+ :return: a reference to the module
+ """
+ plug = load_plugin(__CONF["authorization"]["driver"])
+ if plug.PLUGIN_TYPE != "authz":
+ raise Exception("Trying to load a bad Authz plugin (got {} plugin instead)".format(
+ plug.PLUGIN_TYPE))
+ if "Connector" not in dir(plug):
+ raise Exception("Trying to load a bad Authz plugin (cannot find Connector)")
+ return plug
+
+
+def get_orchestration_driver():
+ """Load and check the plugin module
+
+ :return: a reference to the module
+ """
+ plug = load_plugin(__CONF["orchestration"]["driver"])
+ if plug.PLUGIN_TYPE != "orchestration":
+ raise Exception("Trying to load a bad Orchestration plugin (got {} plugin instead)".format(
+ plug.PLUGIN_TYPE))
+ if "Connector" not in dir(plug):
+ raise Exception("Trying to load a bad Orchestration plugin (cannot find Connector)")
+ return plug
+
+
+def get_pipeline_driver():
+ """Load and check the plugin module
+
+ :return: a reference to the module
+ """
+ plug = load_plugin(__CONF["information"]["driver"])
+ if plug.PLUGIN_TYPE != "information":
+ raise Exception("Trying to load a bad Information plugin (got {} plugin instead)".format(
+ plug.PLUGIN_TYPE))
+ if "Connector" not in dir(plug):
+ raise Exception("Trying to load a bad Information plugin (cannot find Connector)")
+ return plug
+
+
+def search_config_file(filename):
+ """Look for the configuration file
+
+ :param filename: a filename to search for
+ :return: the content of the configuration file
+ """
+ data_config = None
+ for _filename in (filename, "moon.conf", "moon.yaml"):
+ for _dir in (
+ "{}",
+ "/conf/{}",
+ "../{}",
+ "../conf/{}",
+ "/etc/moon/{}",
+ "conf/{}",
+ ):
+ _file = _dir.format(_filename)
+ try:
+ data_config = yaml.safe_load(open(_file))
+ except FileNotFoundError:
+ data_config = None
+ continue
+ else:
+ LOGGER.warning("Configuration file: {}".format(_file))
+ break
+ if data_config:
+ break
+ if not data_config:
+ LOGGER.error("Configuration file not found ({})...".format(filename))
+ raise Exception("Configuration file not found ({})...".format(filename))
+ return data_config
+
+
+def set_configuration(conf):
+ """ Force the configuration dictionary
+
+ :param conf: the configuration dictionary
+ :return: nothing
+ """
+ global __CONF
+ __CONF = conf
+
+
+def reload_configuration():
+ global __CONF, CONF_FILE
+ __CONF = None
+ set_configuration(search_config_file(CONF_FILE))
+
+
+@hug.cli("get_conf")
+@hug.local()
+def get_configuration(key=None, default=None, file=None):
+ """
+ List configuration attributes
+ :return: JSON configuration value
+ """
+ global __CONF
+ if not __CONF:
+ if file:
+ __CONF = search_config_file(file)
+ else:
+ __CONF = search_config_file("moon.yaml")
+ init_logging()
+ if not key:
+ # TODO: delete passwords!
+ return copy.deepcopy(__CONF)
+ else:
+ return copy.deepcopy(__CONF.get(key, default))
diff --git a/moon_engine/moon_engine/api/import_json.py b/moon_engine/moon_engine/api/import_json.py
new file mode 100644
index 00000000..d1296ff1
--- /dev/null
+++ b/moon_engine/moon_engine/api/import_json.py
@@ -0,0 +1,29 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+"""Import JSON API"""
+import hug
+
+
+@hug.local()
+@hug.post("/import/")
+def import_json(body):
+ """Import data into the cache of the pipeline
+
+ :return: OK if imported
+ """
+ if "attributes" in body:
+ description = "Will update " + ", ".join(body.get("attributes"))
+ else:
+ description = "Will update all attributes"
+ # FIXME: dev the real import functionality
+ return {"status": "OK", "description": description}
diff --git a/moon_engine/moon_engine/api/logs.py b/moon_engine/moon_engine/api/logs.py
new file mode 100644
index 00000000..b6269648
--- /dev/null
+++ b/moon_engine/moon_engine/api/logs.py
@@ -0,0 +1,25 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+"""Test hug API (local, command-line, and HTTP access)"""
+import hug
+
+
+@hug.local()
+@hug.get("/logs/")
+def list_logs():
+ """List logs
+
+ :return: JSON status output
+ """
+
+ return {"logs": []}
diff --git a/moon_engine/moon_engine/api/orchestration/__init__.py b/moon_engine/moon_engine/api/orchestration/__init__.py
new file mode 100644
index 00000000..1856aa2c
--- /dev/null
+++ b/moon_engine/moon_engine/api/orchestration/__init__.py
@@ -0,0 +1,12 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
diff --git a/moon_engine/moon_engine/api/orchestration/managers.py b/moon_engine/moon_engine/api/orchestration/managers.py
new file mode 100644
index 00000000..e07851c5
--- /dev/null
+++ b/moon_engine/moon_engine/api/orchestration/managers.py
@@ -0,0 +1,21 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import logging
+
+logger = logging.getLogger("moon.engine.api.orchestration.managers")
+
+
+class Managers(object):
+ """Object that links managers together"""
+ SlaveManager = None
+ PipelineManager = None
diff --git a/moon_engine/moon_engine/api/orchestration/pipeline.py b/moon_engine/moon_engine/api/orchestration/pipeline.py
new file mode 100644
index 00000000..47a84409
--- /dev/null
+++ b/moon_engine/moon_engine/api/orchestration/pipeline.py
@@ -0,0 +1,51 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+from uuid import uuid4
+import logging
+from moon_utilities.security_functions import enforce
+from moon_engine.api.orchestration.managers import Managers
+
+logger = logging.getLogger("moon.engine.api.orchestration.pipeline")
+
+
+class PipelineManager(Managers):
+
+ def __init__(self, connector=None):
+ self.driver = connector.driver
+ Managers.PipelineManager = self
+
+ @enforce(("read", "write"), "pipelines")
+ def update_pipeline(self, moon_user_id, pipeline_id, data):
+ return self.driver.update_pipeline(pipeline_id=pipeline_id, data=data)
+
+ @enforce("write", "pipelines")
+ def delete_pipeline(self, moon_user_id, pipeline_id):
+ return self.driver.delete_pipeline(pipeline_id=pipeline_id)
+
+ @enforce("write", "pipelines")
+ def add_pipeline(self, moon_user_id, pipeline_id=None, data=None):
+ if not pipeline_id:
+ pipeline_id = uuid4().hex
+ if data is None:
+ data = {}
+ if "plugins" not in data:
+ data["plugins"] = ["moon_engine.plugins.authz"]
+ return self.driver.add_pipeline(pipeline_id=pipeline_id, data=data)
+
+ @enforce("read", "pipelines")
+ def get_pipelines(self, moon_user_id, pipeline_id=None):
+ return self.driver.get_pipelines(pipeline_id=pipeline_id)
+
+ @enforce("read", "pipelines")
+ def get_pipeline_api_key(self, moon_user_id, pipeline_id):
+ return self.driver.get_pipeline_api_key(pipeline_id=pipeline_id)
diff --git a/moon_engine/moon_engine/api/orchestration/slave.py b/moon_engine/moon_engine/api/orchestration/slave.py
new file mode 100644
index 00000000..fa4412ba
--- /dev/null
+++ b/moon_engine/moon_engine/api/orchestration/slave.py
@@ -0,0 +1,44 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+from uuid import uuid4
+import logging
+from moon_utilities import exceptions
+from moon_utilities.security_functions import enforce
+from moon_engine.api.orchestration.managers import Managers
+
+logger = logging.getLogger("moon.manager.api.orchestration.pod")
+
+
+class SlaveManager(Managers):
+
+ def __init__(self, connector=None):
+ self.driver = connector.driver
+ Managers.SlaveManager = self
+
+ @enforce(("read", "write"), "slaves")
+ def update_slave(self, user_id, slave_id, value):
+ self.driver.update_slave(slave_id=slave_id, value=value)
+
+ @enforce("write", "slaves")
+ def delete_slave(self, user_id, slave_id):
+ self.driver.delete_slave(slave_id=slave_id)
+
+ @enforce("write", "slaves")
+ def add_slave(self, user_id, slave_id=None, data=None):
+ if not slave_id:
+ slave_id = uuid4().hex
+ self.driver.add_slave(slave_id=slave_id, data=data)
+
+ @enforce("read", "slaves")
+ def get_slaves(self, user_id, slave_id=None):
+ self.driver.get_slaves(slave_id=slave_id)
diff --git a/moon_engine/moon_engine/api/pipeline/__init__.py b/moon_engine/moon_engine/api/pipeline/__init__.py
new file mode 100644
index 00000000..582be686
--- /dev/null
+++ b/moon_engine/moon_engine/api/pipeline/__init__.py
@@ -0,0 +1,11 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
diff --git a/moon_engine/moon_engine/api/pipeline/authz.py b/moon_engine/moon_engine/api/pipeline/authz.py
new file mode 100644
index 00000000..02fb7d30
--- /dev/null
+++ b/moon_engine/moon_engine/api/pipeline/authz.py
@@ -0,0 +1,35 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import hug
+from moon_engine.api.pipeline.validator import Validator
+
+
+class Authz(object):
+
+ @staticmethod
+ @hug.local()
+ @hug.get("/authz/{subject_name}/{object_name}/{action_name}")
+ def get(subject_name: hug.types.text, object_name: hug.types.text,
+ action_name: hug.types.text, response):
+ """Get a response on Main Authorization request
+
+ :param subject_name: name of the subject or the request
+ :param object_name: name of the object
+ :param action_name: name of the action
+ :return:
+ "result": {true or false }
+ :internal_api: authz
+ """
+
+ validator = Validator()
+ response.status = validator.authz(subject_name, object_name, action_name)
diff --git a/moon_engine/moon_engine/api/pipeline/update.py b/moon_engine/moon_engine/api/pipeline/update.py
new file mode 100644
index 00000000..deaf9c12
--- /dev/null
+++ b/moon_engine/moon_engine/api/pipeline/update.py
@@ -0,0 +1,188 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+"""Update API"""
+import hug
+from moon_utilities.auth_functions import api_key_authentication
+from moon_engine.api.pipeline.update_pipeline import Update
+
+
+class PipelineUpdate(object):
+
+ @staticmethod
+ @hug.local()
+ @hug.put("/update/slave/{slave_id}", requires=api_key_authentication)
+ def update_slave(body, slave_id: hug.types.uuid, response):
+ """Tell the moon_engine wrapper that its cache should be updated
+ body may contain the attributes that the moon_engine should get from the manager
+ body example:
+ {
+ "name": "...",
+ "description": "..."
+ }
+ :return: 202 status code
+ """
+ update_pipeline = Update()
+ response.status = update_pipeline.update_slaves(slave_id=str(slave_id).replace("-", ""), is_delete=False,
+ data=body)
+
+ @staticmethod
+ @hug.local()
+ @hug.put("/update/pdp/{pdp_id}", requires=api_key_authentication)
+ def update_pdp(body, pdp_id: hug.types.uuid, response):
+ """Tell the moon_engine wrapper that its cache should be updated
+ body may contain the attributes that the moon_engine should get from the manager
+ if the attributes key is empty, all data should be retrieved
+ body example:
+ {
+ "vim_project_id": "...",
+ "security_pipeline": ["policy_id1", "policy_id2"],
+ "attributes": ["subjects", "subject_assignments", "subject_categories"]
+ }
+ :return: 202 status code
+ """
+
+ # todo call wrapper to update its pdp at the cache
+ update_pipeline = Update()
+ response.status = update_pipeline.update_pdp(is_delete=False, pdp_id=str(pdp_id).replace("-", ""), data=body)
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/pdp/{pdp_id}", requires=api_key_authentication)
+ def delete_pdp(pdp_id: hug.types.uuid, response):
+ """Tell the moon_engine wrapper that its cache should be updated
+ body may contain the attributes that the moon_engine should get from the manager
+ if the attributes key is empty, all data should be retrieved
+ body example:
+ {
+ "vim_project_id": "...",
+ "security_pipeline": ["policy_id1", "policy_id2"],
+ "attributes": ["subjects", "subject_assignments", "subject_categories"]
+ }
+ :return: 202 status code
+ """
+
+ # todo call wrapper to update its pdp at the cache
+ update_pipeline = Update()
+ response.status = update_pipeline.update_pdp(is_delete=True, pdp_id=str(pdp_id).replace("-", ""))
+
+ @staticmethod
+ @hug.local()
+ @hug.put("/update/policy/{policy_id}", requires=api_key_authentication)
+ def update_policy(body, policy_id: hug.types.uuid, response):
+ update_pipeline = Update()
+ response.status = update_pipeline.update_policy(is_delete=False, policy_id=str(policy_id).replace("-", ""),
+ data=body)
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/policy/{policy_id}", requires=api_key_authentication)
+ def delete_policy(policy_id: hug.types.uuid, response):
+ update_pipeline = Update()
+ response.status = update_pipeline.update_policy(is_delete=True, policy_id=str(policy_id).replace("-", ""))
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/assignment/{policy_id}/{type}/", requires=api_key_authentication)
+ @hug.delete("/update/assignment/{policy_id}/{type}/{perimeter_id}",
+ requires=api_key_authentication)
+ @hug.delete("/update/assignment/{policy_id}/{type}/{perimeter_id}/{category_id}",
+ requires=api_key_authentication)
+ @hug.delete("/update/assignment/{policy_id}/{type}/{perimeter_id}/{category_id}/{data_id}",
+ requires=api_key_authentication)
+ def delete_assignment(response, policy_id: hug.types.uuid, type: hug.types.text,
+ perimeter_id: hug.types.uuid = None, category_id: hug.types.uuid = None,
+ data_id: hug.types.uuid = None, authed_user: hug.directives.user=None):
+ update_pipeline = Update()
+ response.status = update_pipeline.delete_assignment(type=type, policy_id=str(policy_id).replace("-", ""),
+ perimeter_id=str(perimeter_id).replace("-", ""),
+ category_id=str(category_id).replace("-", ""),
+ data_id=data_id)
+
+ @staticmethod
+ @hug.local()
+ @hug.put("/update/perimeter/{perimeter_id}/{policy_id}/{type}", requires=api_key_authentication)
+ def update_perimeter(body, perimeter_id: hug.types.uuid, policy_id: hug.types.uuid,
+ type: hug.types.text, response):
+ update_pipeline = Update()
+ response.status = update_pipeline.update_perimeter(is_delete=False, type=type,
+ perimeter_id=str(perimeter_id).replace("-", ""), data=body,
+ policy_id=str(policy_id).replace("-", ""))
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/perimeter/{perimeter_id}/{policy_id}/{type}", requires=api_key_authentication)
+ def delete_perimeter(perimeter_id: hug.types.uuid, policy_id: hug.types.uuid,
+ type: hug.types.text, response):
+ update_pipeline = Update()
+ response.status = update_pipeline.update_perimeter(is_delete=True, type=type,
+ perimeter_id=str(perimeter_id).replace("-", ""),
+ policy_id=str(policy_id).replace("-", ""))
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/rule/{policy_id}/{rule_id}", requires=api_key_authentication)
+ def delete_rule(policy_id: hug.types.uuid, rule_id: hug.types.uuid, response):
+ update_pipeline = Update()
+ response.status = update_pipeline.delete_rule(rule_id=str(rule_id).replace("-", ""), policy_id=str(policy_id).replace("-", ""))
+
+ @staticmethod
+ @hug.local()
+ @hug.put("/update/model/{model_id}", requires=api_key_authentication)
+ def update_model(body, model_id: hug.types.uuid, response):
+ update_pipeline = Update()
+ response.status = update_pipeline.update_model(model_id=str(model_id).replace("-", ""), is_delete=False,
+ data=body)
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/model/{model_id}", requires=api_key_authentication)
+ def delete_model(model_id: hug.types.uuid, response):
+ update_pipeline = Update()
+ response.status = update_pipeline.update_model(model_id=str(model_id).replace("-", ""), is_delete=True)
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/meta_data/{category_id}/{type}", requires=api_key_authentication)
+ def delete_category(category_id: hug.types.uuid, type: hug.types.text, response):
+ update_pipeline = Update()
+ response.status = update_pipeline.delete_category(category_id=str(category_id).replace("-", ""), type=type)
+
+ @staticmethod
+ @hug.local()
+ @hug.put("/update/meta_rule/{meta_rule_id}", requires=api_key_authentication)
+ def update_meta_rule(body, meta_rule_id: hug.types.uuid, response):
+ update_pipeline = Update()
+ response.status = update_pipeline.update_meta_rule(is_delete=False,
+ meta_rule_id=str(meta_rule_id).replace("-", ""), data=body)
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/meta_rule/{meta_rule_id}", requires=api_key_authentication)
+ def delete_meta_rule(meta_rule_id: hug.types.uuid, response):
+ update_pipeline = Update()
+ response.status = update_pipeline.update_meta_rule(is_delete=True,
+ meta_rule_id=str(meta_rule_id).replace("-", ""))
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/data/{data_id}/{type}", requires=api_key_authentication)
+ def delete_data(data_id: hug.types.uuid, type: hug.types.text, response):
+ update_pipeline = Update()
+ response.status = update_pipeline.delete_data(data_id=str(data_id).replace("-", ""), type=type)
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/attributes/{name}", requires=api_key_authentication)
+ def delete_data(name: hug.types.text, response):
+ update_pipeline = Update()
+ response.status = update_pipeline.delete_attributes(name=name)
diff --git a/moon_engine/moon_engine/api/pipeline/update_pipeline.py b/moon_engine/moon_engine/api/pipeline/update_pipeline.py
new file mode 100644
index 00000000..3b312efb
--- /dev/null
+++ b/moon_engine/moon_engine/api/pipeline/update_pipeline.py
@@ -0,0 +1,220 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import hug
+from moon_cache.cache import Cache
+from moon_engine.api.configuration import get_configuration
+import logging
+
+logger = logging.getLogger("moon.engine.api.pipeline.update_pipeline")
+
+
+class Update(object):
+ __CACHE = None
+
+ def __init__(self):
+ if not self.__CACHE:
+ self.__CACHE = Cache.getInstance(manager_url=get_configuration("manager_url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ def update_policy(self, is_delete, policy_id, data=None):
+
+ policies = self.__CACHE.policies
+ if is_delete:
+ if policy_id in policies:
+ del policies[policy_id]
+ else:
+ if policy_id in policies:
+ policies[policy_id] = data
+ else:
+ return hug.HTTP_208
+ return hug.HTTP_202
+
+ def update_pdp(self, is_delete, pdp_id, data=None):
+
+ pdps = self.__CACHE.pdp
+ if is_delete:
+ if pdp_id in pdps:
+ del pdps[pdp_id]
+ else:
+ if pdp_id in pdps:
+ pdps[pdp_id] = data
+ else:
+ return hug.HTTP_208
+ return hug.HTTP_202
+
+ def delete_assignment(self, type, policy_id, perimeter_id=None, category_id=None, data_id=None):
+
+ if type == "subject":
+ assignments = self.__CACHE.subject_assignments
+ if policy_id in assignments:
+ for key in assignments[policy_id]:
+ if (perimeter_id is None or assignments[policy_id][key]['subject_id'] ==
+ perimeter_id) and (
+ category_id is None or assignments[policy_id][key]['category_id'] == category_id):
+ if data_id is None or data_id in assignments[policy_id][key]['assignments']:
+ assignments[policy_id][key]['assignments'].remove(data_id)
+ if len(assignments[policy_id][key]['assignments']) == 0:
+ del assignments[policy_id][key];
+ else:
+ del assignments[policy_id][key]
+ break
+
+ elif type == "object":
+ assignments = self.__CACHE.object_assignments
+ if policy_id in assignments:
+ for key in assignments[policy_id]:
+ if (perimeter_id is None or assignments[policy_id][key]['object_id'] ==
+ perimeter_id) and (
+ category_id is None or assignments[policy_id][key]['category_id'] == category_id):
+ if data_id is None or data_id in assignments[policy_id][key]['assignments']:
+ assignments[policy_id][key]['assignments'].remove(data_id)
+ if len(assignments[policy_id][key]['assignments']) == 0:
+ del assignments[policy_id][key];
+ else:
+ del assignments[policy_id][key]
+ break
+ else:
+ assignments = self.__CACHE.action_assignments
+ if policy_id in assignments:
+ for key in assignments[policy_id]:
+ if (perimeter_id is None or assignments[policy_id][key]['action_id'] ==
+ perimeter_id) and (
+ category_id is None or assignments[policy_id][key]['category_id'] == category_id):
+ if data_id is None or data_id in assignments[policy_id][key]['assignments']:
+ assignments[policy_id][key]['assignments'].remove(data_id)
+ if len(assignments[policy_id][key]['assignments']) == 0:
+ del assignments[policy_id][key];
+ else:
+ del assignments[policy_id][key]
+ break
+ return hug.HTTP_202
+
+ def update_perimeter(self, is_delete, type, perimeter_id, data=None, policy_id=None):
+
+ if is_delete:
+ if type == "subject":
+ perimeters = self.__CACHE.subjects
+ if policy_id in perimeters and perimeter_id in perimeters[policy_id] and \
+ policy_id in perimeters[policy_id][perimeter_id]['policy_list']:
+ del perimeters[policy_id][perimeter_id]
+ elif type == "object":
+ perimeters = self.__CACHE.objects
+ if policy_id in perimeters and perimeter_id in perimeters[policy_id] and \
+ policy_id in perimeters[policy_id][perimeter_id]['policy_list']:
+ del perimeters[policy_id][perimeter_id]
+ else:
+ perimeters = self.__CACHE.actions
+ if policy_id in perimeters and perimeter_id in perimeters[policy_id] and \
+ policy_id in perimeters[policy_id][perimeter_id]['policy_list']:
+ del perimeters[policy_id][perimeter_id]
+ else:
+ if type == "subject":
+ perimeters = self.__CACHE.subjects
+ if policy_id in perimeters and perimeter_id in perimeters[policy_id] and \
+ policy_id in perimeters[policy_id][perimeter_id]['policy_list']:
+ perimeters[policy_id][perimeter_id]['name'] = data['name']
+ perimeters[policy_id][perimeter_id]['description'] = data['description']
+ else:
+ return hug.HTTP_208
+ elif type == "object":
+ perimeters = self.__CACHE.objects
+ if policy_id in perimeters and perimeter_id in perimeters[policy_id] and \
+ policy_id in perimeters[policy_id][perimeter_id]['policy_list']:
+ perimeters[policy_id][perimeter_id]['name'] = data['name']
+ perimeters[policy_id][perimeter_id]['description'] = data['description']
+ else:
+ return hug.HTTP_208
+ else:
+ perimeters = self.__CACHE.actions
+ if policy_id in perimeters and perimeter_id in perimeters[policy_id] and \
+ policy_id in perimeters[policy_id][perimeter_id]['policy_list']:
+ perimeters[policy_id][perimeter_id]['name'] = data['name']
+ perimeters[policy_id][perimeter_id]['description'] = data['description']
+ else:
+ return hug.HTTP_208
+ return hug.HTTP_202
+
+ def delete_rule(self, rule_id, policy_id):
+
+ rules = self.__CACHE.rules
+ if policy_id in rules and rule_id in rules[policy_id]:
+ del rules[policy_id][rule_id]
+ return hug.HTTP_202
+
+ def update_model(self, model_id, is_delete, data=None):
+ if is_delete:
+ models = self.__CACHE.models
+ if model_id in models:
+ del models[model_id]
+ else:
+ models = self.__CACHE.models
+ if model_id in models:
+ models[model_id] = data
+ else:
+ return hug.HTTP_208
+ return hug.HTTP_202
+
+ def delete_category(self, category_id, type):
+
+ if type == "subject":
+ categories = self.__CACHE.subject_categories
+ if category_id in categories:
+ del categories[category_id]
+ elif type == 'object':
+ categories = self.__CACHE.object_categories
+ if category_id in categories:
+ del categories[category_id]
+ else:
+ categories = self.__CACHE.action_categories
+ if category_id in categories:
+ del categories[category_id]
+ return hug.HTTP_202
+
+ def update_meta_rule(self, is_delete, meta_rule_id, data=None):
+
+ if is_delete:
+ meta_rules = self.__CACHE.meta_rules
+ if meta_rule_id in meta_rules:
+ del meta_rules[meta_rule_id]
+ else:
+ meta_rules = self.__CACHE.meta_rules
+ if meta_rule_id in meta_rules:
+ meta_rules[meta_rule_id] = data
+ else:
+ return hug.HTTP_208
+ return hug.HTTP_202
+
+ def delete_data(self, data_id, type):
+
+ if type == 'subject':
+ data = self.__CACHE.subject_data
+ if data_id in data:
+ del data[data_id]
+ elif type == 'object':
+ data = self.__CACHE.object_data
+ if data_id in data:
+ del data[data_id]
+ else:
+ data = self.__CACHE.action_data
+ if data_id in data:
+ del data[data_id]
+
+ return hug.HTTP_202
+
+ def delete_attributes(self, name):
+
+ attributes = self.__CACHE.attributes
+ self.__CACHE.set_attribute(name)
+
+ return hug.HTTP_202
diff --git a/moon_engine/moon_engine/api/pipeline/validator.py b/moon_engine/moon_engine/api/pipeline/validator.py
new file mode 100644
index 00000000..1fc8588a
--- /dev/null
+++ b/moon_engine/moon_engine/api/pipeline/validator.py
@@ -0,0 +1,125 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+from moon_cache.context import Context
+from moon_utilities import exceptions
+import itertools
+import logging
+import hug
+from moon_cache.cache import Cache
+from moon_engine.api.configuration import get_configuration
+
+LOGGER = logging.getLogger("moon.authz.api." + __name__)
+
+
+class Validator(object):
+ __CACHE = None
+
+ def __init__(self):
+
+ self.__CACHE = Cache.getInstance(manager_url=get_configuration("manager_url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+ self.context = None
+
+ def authz(self, subject_name, object_name, action_name):
+
+ ctx = {
+ "pdp_id": get_configuration("uuid"),
+ "subject_name": subject_name,
+ "object_name": object_name,
+ "action_name": action_name
+ }
+ self.context = Context(ctx, self.__CACHE)
+
+ self.context.set_cache(self.__CACHE)
+ self.context.increment_index()
+ response = self.__authz_request()
+ self.context.delete_cache()
+ return response
+
+ def __authz_request(self):
+
+ LOGGER.debug("self.context.pdp_set={}".format(self.context.pdp_set))
+ result, message = self.__check_rules()
+ if result:
+ if self.__exec_instructions(result):
+ return hug.HTTP_204
+ else:
+ self.context.current_state = "deny"
+ return hug.HTTP_403
+
+ def __check_rules(self):
+
+ scopes_list = list()
+ current_header_id = self.context.headers[self.context.index]
+ if not self.context.pdp_set:
+ raise exceptions.PdpUnknown
+ if current_header_id not in self.context.pdp_set:
+ raise Exception('Invalid index')
+ current_pdp = self.context.pdp_set[current_header_id]
+ category_list = list()
+ if 'meta_rules' not in current_pdp:
+ raise exceptions.PdpContentError
+ try:
+ category_list.extend(current_pdp["meta_rules"]["subject_categories"])
+ category_list.extend(current_pdp["meta_rules"]["object_categories"])
+ category_list.extend(current_pdp["meta_rules"]["action_categories"])
+ except Exception:
+ raise exceptions.MetaRuleContentError
+ if 'target' not in current_pdp:
+ raise exceptions.PdpContentError
+ for category in category_list:
+ scope = list(current_pdp['target'][category])
+ scopes_list.append(scope)
+ if self.context.current_policy_id not in self.__CACHE.rules:
+ raise exceptions.PolicyUnknown
+ if 'rules' not in self.__CACHE.rules[self.context.current_policy_id]:
+ raise exceptions.RuleUnknown
+
+ for item in itertools.product(*scopes_list):
+ req = list(item)
+ for rule in self.__CACHE.rules[self.context.current_policy_id]["rules"]:
+ if req == rule['rule']:
+ return rule['instructions'], ""
+ if not list(itertools.product(*scopes_list)):
+ LOGGER.error("There is an error in retrieved scopes ({})".format(scopes_list))
+ cat_list = []
+ categories = dict(self.__CACHE.subject_categories)
+ categories.update(dict(self.__CACHE.object_categories))
+ categories.update(dict(self.__CACHE.action_categories))
+ for category in category_list:
+ if category.startswith("attributes:"):
+ cat_list.append(category)
+ else:
+ cat_list.append(categories[category].get('name'))
+ LOGGER.error("Categories are ({})".format(", ".join(cat_list)))
+ return False, "There is an error in retrieved scopes"
+ LOGGER.warning("No rule match the request...")
+ return False, "No rule match the request..."
+
+ def __exec_instructions(self, instructions):
+
+ for instruction in instructions:
+ for key in instruction:
+ if key == "decision":
+ if instruction["decision"] == "grant":
+ self.context.current_state = "grant"
+ LOGGER.info("__exec_instructions True {}".format(
+ self.context.current_state))
+ return True
+ else:
+ self.context.current_state = instruction["decision"].lower()
+
+ LOGGER.info("__exec_instructions False {}".format(self.context.current_state))
+
+ return False
diff --git a/moon_engine/moon_engine/api/status.py b/moon_engine/moon_engine/api/status.py
new file mode 100644
index 00000000..2a44a865
--- /dev/null
+++ b/moon_engine/moon_engine/api/status.py
@@ -0,0 +1,30 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+"""Status API"""
+import hug
+from moon_engine.api import configuration
+
+@hug.local()
+@hug.get("/status/")
+def list_status():
+ """
+ List statuses
+ :return: JSON status output
+ """
+
+ return {"status": {
+ "uuid": configuration.get_configuration("uuid"),
+ "type": configuration.get_configuration("type"),
+ "log" : configuration.get_configuration("logging").get(
+ "handlers", {}).get("file", {}).get("filename", "")
+ }}
diff --git a/moon_engine/moon_engine/api/wrapper/__init__.py b/moon_engine/moon_engine/api/wrapper/__init__.py
new file mode 100644
index 00000000..582be686
--- /dev/null
+++ b/moon_engine/moon_engine/api/wrapper/__init__.py
@@ -0,0 +1,11 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
diff --git a/moon_engine/moon_engine/api/wrapper/api/__init__.py b/moon_engine/moon_engine/api/wrapper/api/__init__.py
new file mode 100644
index 00000000..582be686
--- /dev/null
+++ b/moon_engine/moon_engine/api/wrapper/api/__init__.py
@@ -0,0 +1,11 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
diff --git a/moon_engine/moon_engine/api/wrapper/api/authz.py b/moon_engine/moon_engine/api/wrapper/api/authz.py
new file mode 100644
index 00000000..4d1e4a84
--- /dev/null
+++ b/moon_engine/moon_engine/api/wrapper/api/authz.py
@@ -0,0 +1,43 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+"""Authz API"""
+
+import hug
+from moon_engine.api.wrapper.router import Router
+
+
+class Authz(object):
+ """
+ Endpoint for Authz requests
+ """
+
+ @staticmethod
+ @hug.local()
+ @hug.get("/authz/{project_id}/{subject_name}/{object_name}/{action_name}")
+ def get(project_id: hug.types.text, subject_name: hug.types.text, object_name: hug.types.text,
+ action_name: hug.types.text):
+ """Get a response on Main Authorization request
+
+ :param project_id: uuid of the project
+ :param subject_name: name of the subject or the request
+ :param object_name: name of the object
+ :param action_name: name of the action
+ :return:
+ "result": {true or false }
+ :internal_api: authz
+ """
+
+ with Router(project_id, subject_name, object_name, action_name) as router:
+
+ response = router.auth_request()
+ return response
diff --git a/moon_engine/moon_engine/api/wrapper/api/pipeline.py b/moon_engine/moon_engine/api/wrapper/api/pipeline.py
new file mode 100644
index 00000000..19b9578a
--- /dev/null
+++ b/moon_engine/moon_engine/api/wrapper/api/pipeline.py
@@ -0,0 +1,100 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+"""Pipeline API"""
+import hug
+from moon_utilities.auth_functions import api_key_authentication
+from moon_engine import orchestration_driver
+from moon_utilities.security_functions import validate_input
+from moon_engine.api import configuration
+from moon_cache.cache import Cache
+
+CACHE = Cache.getInstance(manager_url=configuration.get_configuration("manager_url"),
+ incremental=configuration.get_configuration("incremental_updates"),
+ manager_api_key=configuration.get_configuration("api_token"))
+
+
+class Pipeline(object):
+ """
+ Endpoint for pipelines requests
+ """
+
+ @staticmethod
+ @hug.local()
+ @hug.get("/pipelines", requires=api_key_authentication)
+ @hug.get("/pipeline/{uuid}", requires=api_key_authentication)
+ def get(uuid: hug.types.uuid=None, authed_user: hug.directives.user=None):
+ """Retrieve all pipelines
+
+ :param uuid: uuid of the pipeline
+ :param authed_user: the name of the authenticated user
+ :return: {
+ "pipeline_id1": {
+ "name": "...",
+ "description": "... (optional)",
+ }
+ }
+ """
+ uuid = str(uuid).replace("-", "")
+ orchestration_driver.init()
+ data = orchestration_driver.PipelineManager.get_pipelines(moon_user_id=authed_user,
+ pipeline_id=uuid)
+ return {"pipelines": data}
+
+ @staticmethod
+ @hug.local()
+ @hug.put("/pipeline/{uuid}", requires=api_key_authentication)
+ def put(uuid: hug.types.uuid, body: validate_input("name"),
+ authed_user: hug.directives.user = None):
+ """
+ Ask for the creation of a new pipeline
+ :param uuid: uuid of the pipeline
+ :param body: body of the request
+ :param authed_user: the name of the authenticated user
+ :return: {
+ "name": "my_pdp",
+ "description": "...",
+ "vim_project_id": "an existing ID",
+ "security_pipelines": ["an existing policy ID", ],
+ "slave": ["name of a slave", ]
+ }
+ """
+ uuid = str(uuid).replace("-", "")
+ orchestration_driver.init()
+ data = orchestration_driver.PipelineManager.add_pipeline(moon_user_id=authed_user,
+ pipeline_id=uuid,
+ data=body)
+ CACHE.add_pipeline(uuid, data)
+ return {"pipelines": data}
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/pipeline/{uuid}", requires=api_key_authentication)
+ def delete(uuid: hug.types.uuid, authed_user: hug.directives.user = None):
+ """
+ Ask for the deletion of a new pipeline
+ :param uuid: uuid of the pipeline
+ :param authed_user: the name of the authenticated user
+ :return: {
+ "name": "my_pdp",
+ "description": "...",
+ "vim_project_id": "an existing ID",
+ "security_pipelines": ["an existing policy ID", ],
+ "slave": ["name of a slave", ]
+ }
+ """
+ uuid = str(uuid).replace("-", "")
+ orchestration_driver.init()
+ orchestration_driver.PipelineManager.delete_pipeline(moon_user_id=authed_user,
+ pipeline_id=uuid)
+ CACHE.delete_pipeline(uuid)
+ return True
diff --git a/moon_engine/moon_engine/api/wrapper/api/update.py b/moon_engine/moon_engine/api/wrapper/api/update.py
new file mode 100644
index 00000000..7af274e5
--- /dev/null
+++ b/moon_engine/moon_engine/api/wrapper/api/update.py
@@ -0,0 +1,179 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+"""Update API"""
+import hug
+from moon_utilities.auth_functions import api_key_authentication
+from moon_engine.api.wrapper.update_wrapper import UpdateWrapper as UpdateWrapper
+
+
+class WrapperUpdate(object):
+
+ @staticmethod
+ @hug.local()
+ @hug.put("/update", requires=api_key_authentication)
+ def update(body, response, authed_user: hug.directives.user):
+ """Tell the moon_engine wrapper that its own data should be updated
+ It simply reloads the conf file
+
+ :return: 204 status code
+ """
+
+ # todo call wrapper to update its pdp at the cache
+ update_wrapper = UpdateWrapper()
+ response.status = update_wrapper.update_wrapper(data=body, moon_user_id=authed_user)
+
+ @staticmethod
+ @hug.local()
+ @hug.put("/update/pdp/{pdp_id}", requires=api_key_authentication)
+ def update_pdp(body, pdp_id: hug.types.uuid, response, authed_user: hug.directives.user):
+ """Tell the moon_engine wrapper that its cache should be updated
+ body may contain the attributes that the moon_engine should get from the manager
+ if the attributes key is empty, all data should be retrieved
+ body example:
+ {
+ "vim_project_id": "...",
+ "security_pipeline": ["policy_id1", "policy_id2"],
+ "attributes": ["subjects", "subject_assignments", "subject_categories"]
+ }
+ :return: 202 status code
+ """
+
+ # todo call wrapper to update its pdp at the cache
+ update_wrapper = UpdateWrapper()
+ response.status = update_wrapper.update_pdp(pdp_id=str(pdp_id).replace("-", ""), data=body, moon_user_id=authed_user)
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/pdp/{pdp_id}", requires=api_key_authentication)
+ def delete_pdp(pdp_id: hug.types.uuid, response, authed_user: hug.directives.user):
+ """Tell the moon_engine wrapper that its cache should be updated
+ body may contain the attributes that the moon_engine should get from the manager
+ if the attributes key is empty, all data should be retrieved
+ body example:
+ {
+ "vim_project_id": "...",
+ "security_pipeline": ["policy_id1", "policy_id2"],
+ "attributes": ["subjects", "subject_assignments", "subject_categories"]
+ }
+ :return: 202 status code
+ """
+
+ # todo call wrapper to update its pdp at the cache
+ update_wrapper = UpdateWrapper()
+ response.status = update_wrapper.delete_pdp(pdp_id=str(pdp_id).replace("-", ""), moon_user_id=authed_user)
+
+ @staticmethod
+ @hug.local()
+ @hug.put("/update/policy/{policy_id}", requires=api_key_authentication)
+ def update_policy(body, policy_id: hug.types.uuid, response, authed_user: hug.directives.user):
+ update_wrapper = UpdateWrapper()
+ response.status = update_wrapper.update_policy(policy_id=str(policy_id).replace("-", ""), data=body, moon_user_id=authed_user)
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/policy/{policy_id}", requires=api_key_authentication)
+ def delete_policy(policy_id: hug.types.uuid, response, authed_user: hug.directives.user):
+ update_wrapper = UpdateWrapper()
+ response.status = update_wrapper.delete_policy(policy_id=str(policy_id).replace("-", ""), moon_user_id=authed_user)
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/assignment/{policy_id}/{type}/", requires=api_key_authentication)
+ @hug.delete("/update/assignment/{policy_id}/{type}/{perimeter_id}", requires=api_key_authentication)
+ @hug.delete("/update/assignment/{policy_id}/{type}/{perimeter_id}/{category_id}", requires=api_key_authentication)
+ @hug.delete("/update/assignment/{policy_id}/{type}/{perimeter_id}/{category_id}/{data_id}", requires=api_key_authentication)
+ def delete_assignment(response, policy_id: hug.types.uuid, type: hug.types.text,
+ perimeter_id: hug.types.uuid = None, category_id: hug.types.uuid = None,
+ data_id: hug.types.uuid = None, authed_user: hug.directives.user=None):
+ update_wrapper = UpdateWrapper()
+ response.status = update_wrapper.delete_assignment(type=type, policy_id=str(policy_id).replace("-", ""),
+ perimeter_id=str(perimeter_id).replace("-", ""),
+ category_id=str(category_id).replace("-", ""),
+ data_id=data_id, moon_user_id=authed_user)
+
+ @staticmethod
+ @hug.local()
+ @hug.put("/update/perimeter/{perimeter_id}/{policy_id}/{type}", requires=api_key_authentication)
+ def update_perimeter(body, perimeter_id: hug.types.uuid, policy_id: hug.types.uuid,
+ type: hug.types.text, response, authed_user: hug.directives.user):
+ update_wrapper = UpdateWrapper()
+ response.status = update_wrapper.update_perimeter( type=type,
+ perimeter_id=str(perimeter_id).replace("-", ""), data=body,
+ policy_id=str(policy_id).replace("-", ""), moon_user_id=authed_user)
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/perimeter/{perimeter_id}/{policy_id}/{type}", requires=api_key_authentication)
+ def delete_perimeter(perimeter_id: hug.types.uuid, policy_id: hug.types.uuid,
+ type: hug.types.text, response, authed_user: hug.directives.user):
+ update_wrapper = UpdateWrapper()
+ response.status = update_wrapper.delete_perimeter(type=type,
+ perimeter_id=str(perimeter_id).replace("-", ""),
+ policy_id=str(policy_id).replace("-", ""), moon_user_id=authed_user)
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/rule/{policy_id}/{rule_id}", requires=api_key_authentication)
+ def delete_rule(policy_id: hug.types.uuid, rule_id: hug.types.uuid, response, authed_user: hug.directives.user):
+ update_wrapper = UpdateWrapper()
+ response.status = update_wrapper.delete_rule(rule_id=str(rule_id).replace("-", ""), policy_id=str(policy_id).replace("-", ""), moon_user_id=authed_user)
+
+ @staticmethod
+ @hug.local()
+ @hug.put("/update/model/{model_id}", requires=api_key_authentication)
+ def update_model(body, model_id: hug.types.uuid, response, authed_user: hug.directives.user):
+ update_wrapper = UpdateWrapper()
+ response.status = update_wrapper.update_model(model_id=str(model_id).replace("-", ""), data=body, moon_user_id=authed_user)
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/model/{model_id}", requires=api_key_authentication)
+ def delete_model(model_id: hug.types.uuid, response, authed_user: hug.directives.user):
+ update_wrapper = UpdateWrapper()
+ response.status = update_wrapper.delete_model(model_id=str(model_id).replace("-", ""), moon_user_id=authed_user)
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/meta_data/{category_id}/{type}", requires=api_key_authentication)
+ def delete_category(category_id: hug.types.uuid, type: hug.types.text, response, authed_user: hug.directives.user):
+ update_wrapper = UpdateWrapper()
+ response.status = update_wrapper.delete_category(category_id=str(category_id).replace("-", ""), type=type, moon_user_id=authed_user)
+
+ @staticmethod
+ @hug.local()
+ @hug.put("/update/meta_rule/{meta_rule_id}", requires=api_key_authentication)
+ def update_meta_rule(body, meta_rule_id: hug.types.uuid, response, authed_user: hug.directives.user):
+ update_wrapper = UpdateWrapper()
+ response.status = update_wrapper.update_meta_rule(meta_rule_id=str(meta_rule_id).replace("-", ""), data=body, moon_user_id=authed_user)
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/meta_rule/{meta_rule_id}", requires=api_key_authentication)
+ def delete_meta_rule(meta_rule_id: hug.types.uuid, response, authed_user: hug.directives.user):
+ update_wrapper = UpdateWrapper()
+ response.status = update_wrapper.delete_meta_rule(meta_rule_id=str(meta_rule_id).replace("-", ""), moon_user_id=authed_user)
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/data/{data_id}/{type}", requires=api_key_authentication)
+ def delete_data(data_id: hug.types.uuid, type: hug.types.text, response, authed_user: hug.directives.user):
+ update_wrapper = UpdateWrapper()
+ response.status = update_wrapper.delete_data(data_id=str(data_id).replace("-", ""), type=type, moon_user_id=authed_user)
+
+ @staticmethod
+ @hug.local()
+ @hug.delete("/update/attributes/{name}", requires=api_key_authentication)
+ def delete_data(name: str, response, authed_user: hug.directives.user):
+ update_wrapper = UpdateWrapper()
+ response.status = update_wrapper.delete_attributes(name=name, moon_user_id=authed_user)
+
diff --git a/moon_engine/moon_engine/api/wrapper/router.py b/moon_engine/moon_engine/api/wrapper/router.py
new file mode 100644
index 00000000..db6b6e24
--- /dev/null
+++ b/moon_engine/moon_engine/api/wrapper/router.py
@@ -0,0 +1,115 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+from moon_utilities import exceptions
+from moon_cache.cache import Cache
+from uuid import uuid4
+import logging
+import requests
+from moon_engine.api.configuration import get_configuration
+
+LOGGER = logging.getLogger("moon.engine.wrapper." + __name__)
+
+
+class Router(object):
+ __CACHE = None
+
+ def __init__(self, project_id, subject_name, object_name, action_name):
+
+ if not self.__CACHE:
+ self.__CACHE = Cache.getInstance(manager_url=get_configuration("manager_url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ self.pipeline_id = self.__check_pdp_from_cache(project_id)
+
+ self.request_id = uuid4().hex
+
+ self.ctx = {
+ "project_id": project_id,
+ "subject_name": subject_name,
+ "object_name": object_name,
+ "action_name": action_name
+ }
+
+ # ToDo add status of request
+ self.__CACHE.authz_requests[self.request_id] = {}
+
+ pdp_id = self.__CACHE.get_pdp_from_vim_project(project_id)
+ self.__CACHE.update(pipeline=pdp_id)
+ self.pipeline = []
+ if self.pipeline_id in self.__CACHE.pipelines:
+ self.pipeline = self.__CACHE.pipelines[self.pipeline_id]
+
+ if len(self.pipeline) == 0 or not all(
+ k in self.pipeline for k in ("host", "port")):
+ raise exceptions.MoonError('Void container chaining')
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exc_type, exc_val, exc_tb):
+ self.__CACHE.authz_requests.pop(self.request_id)
+
+ def auth_request(self):
+ req = None
+ endpoint = self.__CACHE.get_pipeline_url(self.ctx["project_id"])
+
+ try:
+ req = requests.get("{}/authz/{}/{}/{}".format(
+ endpoint,
+ self.ctx["subject_name"],
+ self.ctx["object_name"],
+ self.ctx["action_name"]),
+ timeout=2
+ )
+
+ if req.status_code != 200 and req.status_code != 202 and req.status_code != 204:
+ raise exceptions.AuthzException(
+ "Receive bad response from Authz function (with address - {})"
+ .format(req.status_code))
+
+ except requests.exceptions.ConnectionError:
+ LOGGER.error("Cannot connect to {}".format(
+ "{}/authz".format(endpoint))
+ )
+ except requests.exceptions.ReadTimeout:
+ LOGGER.error("Timeout error")
+ return {"result": False, "message": "Timeout during request for pipeline"}, 400
+ except Exception as e:
+ LOGGER.error("Unexpected error:", e)
+ return {"result": False, "message": e}, 400
+
+ if not req:
+ raise exceptions.AuthzException("Cannot connect to Authz function")
+
+ if req.status_code == 204:
+ return {"result": True, "message": ""}
+ return {"result": False, "message": req.content}, 400
+
+ def __check_pdp_from_cache(self, uuid):
+ """Check if a PDP exist with this ID in the cache of this component
+
+ :param uuid: Keystone Project ID
+ :return: True or False
+ """
+
+ if self.__CACHE.get_pdp_from_vim_project(uuid):
+ return self.__CACHE.get_pipeline_id_from_project_id(uuid)
+
+ self.__CACHE.update()
+
+ if self.__CACHE.get_pdp_from_vim_project(uuid):
+ return self.__CACHE.get_pipeline_id_from_project_id(uuid)
+
+ raise exceptions.MoonError("Unknown Project ID {}".format(uuid))
+
diff --git a/moon_engine/moon_engine/api/wrapper/update_wrapper.py b/moon_engine/moon_engine/api/wrapper/update_wrapper.py
new file mode 100644
index 00000000..bb388472
--- /dev/null
+++ b/moon_engine/moon_engine/api/wrapper/update_wrapper.py
@@ -0,0 +1,233 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import logging
+import sys
+
+import hug
+import requests
+from moon_engine import orchestration_driver
+from moon_cache.cache import Cache
+from moon_engine.api.configuration import get_configuration, reload_configuration
+from moon_utilities import exceptions
+
+logger = logging.getLogger("moon.engine.api.wrapper" + __name__)
+
+
+class UpdateWrapper(object):
+ __CACHE = None
+
+ def __init__(self):
+ if not self.__CACHE:
+ self.__CACHE = Cache.getInstance(
+ manager_url=get_configuration("manager_url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ def update_wrapper(self, data, moon_user_id=None):
+ reload_configuration()
+ return hug.HTTP_204
+
+ def update_pdp(self, pdp_id, data, moon_user_id=None):
+
+ url_pattern = "update/pdp/{}".format(pdp_id)
+ return self.__process_request(url_pattern, body=data, moon_user_id=moon_user_id, pdp_id=pdp_id)
+
+ def delete_pdp(self, pdp_id, moon_user_id=None):
+
+ url_pattern = "update/pdp/{}".format(pdp_id)
+ return self.__process_request(url_pattern, moon_user_id=moon_user_id, pdp_id=pdp_id, delete=True)
+
+ def delete_policy(self, policy_id, moon_user_id=None):
+ url_pattern = "update/policy/{}".format(policy_id)
+ return self.__process_request(url_pattern, moon_user_id, policy_id=policy_id, delete=True)
+
+ def update_policy(self, policy_id, data=None, moon_user_id=None):
+
+ url_pattern = "update/policy/{}".format(policy_id)
+ return self.__process_request(url_pattern, body=data, moon_user_id=moon_user_id,
+ policy_id=policy_id)
+
+ def delete_assignment(self, type, policy_id, perimeter_id=None, category_id=None, data_id=None,
+ moon_user_id=None):
+
+ if policy_id and perimeter_id and category_id and data_id:
+ url_pattern = "update/assignment/{}/{}/{}/{}/{}".format(policy_id, type, perimeter_id,
+ category_id,
+ data_id)
+
+ if policy_id and perimeter_id and category_id:
+ url_pattern = "update/assignment/{}/{}/{}/{}".format(policy_id, type, perimeter_id,
+ category_id)
+
+ if policy_id and perimeter_id:
+ url_pattern = "update/assignment/{}/{}/{}".format(policy_id, type, perimeter_id)
+
+ if policy_id:
+ url_pattern = "update/assignment/{}/{}".format(policy_id, type)
+
+ return self.__process_request(url_pattern, moon_user_id, policy_id=policy_id, delete=True)
+
+ def update_perimeter(self, type, perimeter_id, data=None, policy_id=None, moon_user_id=None):
+ url_pattern = "update/perimeter/{}/{}/{}".format(perimeter_id, policy_id, type)
+ return self.__process_request(url_pattern, body=data, moon_user_id=moon_user_id,
+ policy_id=policy_id)
+
+ def delete_perimeter(self, type, perimeter_id, policy_id=None, moon_user_id=None):
+ url_pattern = "update/perimeter/{}/{}/{}".format(perimeter_id, policy_id, type)
+ return self.__process_request(url_pattern, moon_user_id, policy_id=policy_id, delete=True)
+
+ def delete_rule(self, rule_id, policy_id, moon_user_id=None):
+
+ url_pattern = "update/rule/{}/{}".format(policy_id, rule_id)
+ return self.__process_request(url_pattern, moon_user_id=moon_user_id, policy_id=policy_id,
+ delete=True)
+
+ def update_model(self, model_id, data=None, moon_user_id=None):
+
+ url_pattern = "update/model/{}".format(model_id)
+ return self.__process_request(url_pattern, body=data, moon_user_id=moon_user_id)
+
+ def delete_model(self, model_id, moon_user_id=None):
+
+ url_pattern = "update/model/{}".format(model_id)
+ return self.__process_request(url_pattern, moon_user_id=moon_user_id, delete=True)
+
+ def delete_category(self, category_id, type, moon_user_id=None):
+
+ url_pattern = "update/meta_data/{}/{}".format(category_id, type)
+ return self.__process_request(url_pattern, moon_user_id=moon_user_id, delete=True)
+
+ def update_meta_rule(self, meta_rule_id, data=None, moon_user_id=None):
+
+ url_pattern = "update/meta_rule/{}".format(meta_rule_id, type)
+ return self.__process_request(url_pattern, body=data, moon_user_id=moon_user_id)
+
+ def delete_meta_rule(self, meta_rule_id, moon_user_id=None):
+
+ url_pattern = "update/meta_rule/{}".format(meta_rule_id, type)
+ return self.__process_request(url_pattern, moon_user_id=moon_user_id, delete=True)
+
+ def delete_data(self, data_id, type, moon_user_id=None):
+
+ url_pattern = "update/data/{}/{}".format(data_id, type)
+ return self.__process_request(url_pattern, moon_user_id=moon_user_id, delete=True)
+
+ def delete_attributes(self, name, moon_user_id=None):
+
+ url_pattern = "update/attributes/{}".format(name)
+ return self.__process_request(url_pattern, moon_user_id=moon_user_id, delete=True)
+
+ def __process_request(self, url_pattern, body=None, moon_user_id=None, policy_id=None,
+ pdp_id=None, delete=False):
+ if policy_id:
+ endpoint = self.__CACHE.get_pipeline_url(pipeline_id=policy_id)
+ cached_api_key = self.__CACHE.get_api_key(pipeline_id=policy_id)
+ if orchestration_driver.PipelineManager:
+ _pdp_id = self.__CACHE.get_pdp_id_from_policy_id(policy_id=policy_id)
+ api_key = orchestration_driver.PipelineManager.get_pipeline_api_key(moon_user_id=moon_user_id, pipeline_id=_pdp_id)
+ if not api_key:
+ api_key = cached_api_key
+
+ if not endpoint:
+ return hug.HTTP_208
+ if delete:
+ return self.__execute_delete_request(endpoint, url_pattern, api_key)
+ else:
+ return self.__execute_put_request(endpoint, url_pattern, api_key, body)
+
+ elif pdp_id:
+ endpoint = self.__CACHE.get_pipeline_url(pdp_id=pdp_id)
+ cached_api_key = self.__CACHE.get_api_key(pdp_id=pdp_id)
+ if orchestration_driver.PipelineManager:
+ api_key = orchestration_driver.PipelineManager.get_pipeline_api_key(moon_user_id=moon_user_id, pipeline_id=pdp_id)
+ if not api_key:
+ api_key = cached_api_key
+
+ if not endpoint:
+ return hug.HTTP_208
+ if delete:
+ return self.__execute_delete_request(endpoint, url_pattern, api_key)
+ else:
+ return self.__execute_put_request(endpoint, url_pattern, api_key, body)
+
+ else:
+ pdps = self.__CACHE.pdp
+ for _pdp_id in pdps:
+ vim_project_id = pdps.get(_pdp_id, {}).get("vim_project_id")
+ if vim_project_id:
+ cached_api_key = self.__CACHE.get_api_key(project_id=vim_project_id)
+ if orchestration_driver.PipelineManager:
+ api_key = orchestration_driver.PipelineManager.get_pipeline_api_key(moon_user_id=moon_user_id, pipeline_id=_pdp_id)
+ if not api_key:
+ api_key = cached_api_key
+
+
+ endpoint = self.__CACHE.get_pipeline_url(project_id=vim_project_id)
+
+ if delete:
+ return self.__execute_delete_request(endpoint, url_pattern, api_key)
+ else:
+ return self.__execute_put_request(endpoint, url_pattern, api_key, body)
+ return hug.HTTP_206
+
+ @staticmethod
+ def __execute_put_request(endpoint, url_pattern, api_key, body):
+ logger.info(f"Sending a PUT request on {endpoint}/{url_pattern}")
+ try:
+ req = requests.put("{}/{}".format(
+ endpoint, url_pattern), headers={"X-Api-Key": api_key}, json=body)
+ logger.info(req)
+ if req.status_code == 200:
+ return hug.HTTP_200
+ if req.status_code == 202:
+ return hug.HTTP_202
+ if req.status_code == 208:
+ return hug.HTTP_208
+
+ else:
+ raise exceptions.AuthzException(
+ "Receive bad response from Authz function "
+ "(with address - {})".format(req.status_code))
+
+ except requests.exceptions.ConnectionError:
+ logger.error("Cannot connect to {}".format(
+ "{}/authz/{}".format(endpoint, url_pattern))
+ )
+ except Exception as e:
+ logger.exception("Unexpected error:", e)
+
+ @staticmethod
+ def __execute_delete_request(endpoint, url_pattern, api_key):
+ logger.info(f"Sending a DELETE request on {endpoint}/{url_pattern}")
+ try:
+ req = requests.delete("{}/{}".format(
+ endpoint, url_pattern), headers={"X-Api-Key": api_key})
+
+ if req.status_code == 200:
+ return hug.HTTP_200
+ if req.status_code == 202:
+ return hug.HTTP_202
+ if req.status_code == 208:
+ return hug.HTTP_208
+
+ else:
+ raise exceptions.AuthzException(
+ "Receive bad response from Authz function "
+ "(with address - {})".format(req.status_code))
+
+ except requests.exceptions.ConnectionError:
+ logger.error("Cannot connect to {}".format(
+ "{}/authz/{}".format(endpoint, url_pattern))
+ )
+ except Exception as e:
+ logger.exception("Unexpected error:", e)
diff --git a/moon_engine/moon_engine/authz_driver.py b/moon_engine/moon_engine/authz_driver.py
new file mode 100644
index 00000000..d6f0284b
--- /dev/null
+++ b/moon_engine/moon_engine/authz_driver.py
@@ -0,0 +1,68 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+"""Authorization compute Driver"""
+
+import logging
+from moon_engine.api import configuration
+from moon_engine.api.authz import authz
+
+LOGGER = logging.getLogger("moon.manager.authz_driver")
+
+
+AuthzManager = None
+
+
+class Driver:
+ """
+ Generic driver
+ """
+
+ def __init__(self, driver_name, engine_name):
+ self.name = driver_name
+ self.plug = configuration.get_authz_driver()
+ self.driver = self.plug.Connector(driver_name, engine_name)
+
+
+class AuthzDriver(Driver):
+ """
+ Driver for authorization computation
+ """
+
+ def __init__(self, driver_name, engine_name):
+ super(AuthzDriver, self).__init__(driver_name, engine_name)
+ self.engine = engine_name
+
+ def get_authz(self, subject_name, object_name, action_name):
+ """
+ Get the result of the authorization process
+ :param subject_name:
+ :param object_name:
+ :param action_name:
+ :return:
+ """
+ raise NotImplementedError() # pragma: no cover
+
+
+def init():
+ """Initialize the managers
+
+ :return: nothing
+ """
+ global AuthzManager
+
+ LOGGER.info("Initializing driver")
+ conf = configuration.get_configuration("authorization")
+
+ AuthzManager = authz.AuthzManager(
+ AuthzDriver(conf['driver'], conf.get('url'))
+ )
diff --git a/moon_engine/moon_engine/orchestration_driver.py b/moon_engine/moon_engine/orchestration_driver.py
new file mode 100644
index 00000000..85ca436d
--- /dev/null
+++ b/moon_engine/moon_engine/orchestration_driver.py
@@ -0,0 +1,100 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import logging
+from moon_engine.api import configuration
+from moon_engine.api.orchestration import pipeline
+
+logger = logging.getLogger("moon.engine.orchestration_driver")
+
+
+PipelineManager = None
+
+
+class Driver:
+
+ def __init__(self, driver_name, engine_name):
+ self.name = driver_name
+ self.plug = configuration.get_orchestration_driver()
+ self.driver = self.plug.Connector(driver_name, engine_name)
+
+
+class PipelineDriver(Driver):
+
+ def __init__(self, driver_name, engine_name):
+ super(PipelineDriver, self).__init__(driver_name, engine_name)
+ self.engine = engine_name
+
+ def update_pipeline(self, pipeline_id, data):
+ """Update a pipeline
+
+ :param pipeline_id: the ID of the pipeline
+ :param data: a dictionary {
+ "name": "the name of the pipeline",
+ "description": "the description of the pipeline",
+ "wrapper": {"url": "http://127.0.0.1:20000"},
+ # "wrapper": {"url": "local"} # if the pipeline should be configured inside the wrapper
+ "plugins": ["moon_engine.plugins.authz", ] # the first plugin is the default
+ }
+ :return: the pipeline updated
+ """
+ raise NotImplementedError() # pragma: no cover
+
+ def delete_pipeline(self, pipeline_id):
+ """Delete the pipeline
+
+ :param pipeline_id: the ID of the pipeline
+ :return: True if the pipeline has been deleted
+ """
+ raise NotImplementedError() # pragma: no cover
+
+ def add_pipeline(self, pipeline_id=None, data=None):
+ """Create a new pipeline
+
+ :param pipeline_id: (optional) the ID of the pipeline to create
+ :param data: a dictionary {
+ "name": "the name of the pipeline",
+ "description": "the description of the pipeline",
+ "wrapper": {"url": "http://127.0.0.1:20000"},
+ # "wrapper": {"url": "local"} # if the pipeline should be configured inside the wrapper
+ "plugins": ["moon_engine.plugins.authz", ] # the first plugin is the default
+ }
+ :return: the pipeline created
+ """
+ raise NotImplementedError() # pragma: no cover
+
+ def get_pipelines(self, pipeline_id=None):
+ """List one or more pipelines
+
+ :param pipeline_id: (optional) the ID of the pipeline to list
+ :return: a list of one or more pipelines
+ """
+ raise NotImplementedError() # pragma: no cover
+
+ def get_pipeline_api_key(self, pipeline_id):
+ """Returns the api key of the pipeline with id pipeline_id
+
+ :param pipeline_id: the ID of the pipeline to list
+ :return: The api key of the pipeline
+ """
+ raise NotImplementedError() # pragma: no cover
+
+
+def init():
+ global PipelineManager
+
+ logger.info("Initializing driver")
+ conf = configuration.get_configuration("orchestration")
+
+ PipelineManager = pipeline.PipelineManager(
+ PipelineDriver(conf['driver'], conf.get('url'))
+ )
diff --git a/moon_engine/moon_engine/plugins/__init__.py b/moon_engine/moon_engine/plugins/__init__.py
new file mode 100644
index 00000000..1856aa2c
--- /dev/null
+++ b/moon_engine/moon_engine/plugins/__init__.py
@@ -0,0 +1,12 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
diff --git a/moon_engine/moon_engine/plugins/authz.py b/moon_engine/moon_engine/plugins/authz.py
new file mode 100644
index 00000000..e4a9c662
--- /dev/null
+++ b/moon_engine/moon_engine/plugins/authz.py
@@ -0,0 +1,32 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import logging
+from moon_engine.authz_driver import AuthzDriver
+
+PLUGIN_TYPE = "authz"
+LOGGER = logging.getLogger("moon.engine.plugins.authz")
+
+
+class AuthzConnector(AuthzDriver):
+
+ def __init__(self, driver_name, engine_name):
+ self.driver_name = driver_name
+ self.engine_name = engine_name
+
+ def get_authz(self, subject_name, object_name, action_name):
+ # FIXME: must add the real authorization engine here
+ return True
+
+
+class Connector(AuthzConnector):
+ pass
diff --git a/moon_engine/moon_engine/plugins/oslowrapper.py b/moon_engine/moon_engine/plugins/oslowrapper.py
new file mode 100644
index 00000000..020a648a
--- /dev/null
+++ b/moon_engine/moon_engine/plugins/oslowrapper.py
@@ -0,0 +1,137 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+"""
+Authz is the endpoint to get authorization response
+"""
+
+import logging
+import json
+import hug
+import requests
+from moon_utilities import exceptions
+from moon_cache.cache import Cache
+from moon_engine.api.configuration import get_configuration
+
+PLUGIN_TYPE = "wrapper_api"
+LOGGER = logging.getLogger("moon.wrapper.api." + __name__)
+
+
+class OsloWrapper(object):
+ """
+ Endpoint for authz requests
+ """
+
+ def __init__(self, **kwargs):
+ self.TIMEOUT = 5
+
+ @staticmethod
+ @hug.local()
+ @hug.post("/authz/oslo", output=hug.output_format.text)
+ def post(body, response):
+ LOGGER.debug("POST {}".format(body))
+ response.status = hug.HTTP_400
+ response_data = "False"
+ response.set_header('content-type', 'application/octet-stream')
+ try:
+ oslo_wrapper_checker = OsloWrapperChecker()
+ if oslo_wrapper_checker.manage_data(body):
+ response.status = hug.HTTP_200
+ response_data = "True"
+ except exceptions.AuthzException as exception:
+ LOGGER.error(exception, exc_info=True)
+ except Exception as exception:
+ LOGGER.error(exception, exc_info=True)
+
+ return response_data
+
+
+class OsloWrapperChecker(object):
+
+ def __init__(self):
+ self.CACHE = Cache.getInstance()
+
+ @staticmethod
+ def __get_subject(target, credentials):
+ # FIXME: we should use the ID instead of the name
+ _subject = target.get("target.user.name", "")
+ if not _subject and credentials:
+ _subject = credentials.get("token", {}).get("user", {}).get(
+ "name",
+ credentials.get("user_id", "none"))
+ if not _subject:
+ _subject = target.get("user_id", "")
+ return _subject
+
+ @staticmethod
+ def __get_object(target, credentials):
+ try:
+ # note: case of Glance
+ return target['target']['name']
+ except KeyError:
+ pass
+
+ # note: default case
+ return "all"
+
+ @staticmethod
+ def __get_project_id(target, credentials):
+ project_id = credentials.get("project_id")
+ LOGGER.info("project_id {}".format(project_id))
+ return project_id
+
+ def manage_data(self, body):
+ data = body
+ if not dict(body):
+ data = json.loads(body.decode("utf-8"))
+ try:
+ target = json.loads(data.get('target', {}))
+ except TypeError:
+ target = data.get('target', {})
+ try:
+ credentials = json.loads(data.get('credentials', {}))
+ except TypeError:
+ credentials = data.get('credentials', {})
+ rule = data.get('rule', "")
+ _subject = self.__get_subject(target, credentials)
+ _object = self.__get_object(target, credentials)
+ _action = rule.strip('"')
+ _project_id = self.__get_project_id(target, credentials)
+
+ host_url = self.CACHE.get_pipeline_url(project_id=_project_id)
+ if not host_url:
+ if get_configuration("grant_if_unknown_project"):
+ LOGGER.info("No interface found for {}, "
+ "granted anyway : grant_if_unknown_project is true in the conf file".format(_project_id))
+ return True
+ LOGGER.error("No interface found for {}".format(_project_id))
+ else:
+ LOGGER.debug("interface_url={}".format(host_url))
+ _url = "{}/authz/{}/{}/{}".format(
+ host_url,
+ _subject,
+ _object,
+ _action
+ )
+ LOGGER.debug("url={}".format(_url))
+ req = requests.get(_url, timeout=2)
+
+ if req.status_code == 204:
+ LOGGER.info("The request has been granted")
+ return True
+ LOGGER.debug("authz request: {} {}".format(req.status_code, req.content))
+ raise exceptions.AuthzException("error in authz request")
+
+
+def get_apis():
+ yield OsloWrapper
+
diff --git a/moon_engine/moon_engine/plugins/pyorchestrator.py b/moon_engine/moon_engine/plugins/pyorchestrator.py
new file mode 100644
index 00000000..bf2d70f9
--- /dev/null
+++ b/moon_engine/moon_engine/plugins/pyorchestrator.py
@@ -0,0 +1,372 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import logging
+import os
+import time
+import requests
+import subprocess # nosec
+from uuid import uuid4
+import yaml
+from moon_engine.orchestration_driver import PipelineDriver
+from moon_engine.api import configuration
+from moon_engine.api.configuration import get_configuration
+from moon_engine import get_api_key
+from moon_utilities.auth_functions import xor_decode
+from moon_utilities import exceptions
+from datetime import datetime
+
+LOGGER = logging.getLogger("moon.engine.orchestrator.driver.pyorchestrator")
+
+PLUGIN_TYPE = "orchestration"
+pipelines = {}
+ports = []
+
+
+def init():
+ """Initialize the plugin by initializing wrappers
+
+ :return: nothing
+ """
+
+ # FIXME: get pipelines from Manager
+ pass
+
+
+def create_gunicorn_config(host, port, server_type, uuid):
+ """Create a Gunicorn config file in a temporary directory
+
+ :return: filename
+ """
+ config_dir = get_configuration("orchestration").get("config_dir", "/tmp") # nosec
+ # (/tmp is a fallback solution)
+ _log_config = get_configuration("logging")
+ _log_config["handlers"]["file"]["filename"] = os.path.join(config_dir,
+ "moon_{}.log".format(uuid))
+ __manager_url = get_configuration("management")["url"]
+ filename = os.path.join(config_dir, "gunicorn_{}.cfg".format(uuid4().hex))
+ fd = open(filename, "w")
+ fd.write("""bind = "{host}:{port}"
+workers = {workers}
+moon = "{moon_filename}"
+ """.format(
+ host=host,
+ port=port,
+ workers=1,
+ moon_filename=os.path.join(config_dir, "moon_{}.yaml".format(uuid)),
+ ))
+ fd.close()
+ return filename
+
+
+def create_moon_config(uuid, manager_cnx=True, policy_file=None):
+ """Create a Moon config file in a temporary directory
+
+ :return: filename
+ """
+ LOGGER.info(f"create_moon_config({uuid})")
+ config_dir = get_configuration("orchestration").get("config_dir", "/tmp") # nosec
+ _log_config = get_configuration("logging")
+ _log_config["handlers"]["file"]["filename"] = os.path.join(config_dir,
+ "moon_{}.log".format(uuid))
+ if manager_cnx:
+ __manager_url = get_configuration("management")["url"]
+ api_token = get_api_key(get_configuration("management")["url"],
+ get_configuration("management")["user"],
+ get_configuration("management")["password"])
+ else:
+ __manager_url = ""
+ api_token = ""
+ config_dir = get_configuration("orchestration").get("config_dir", "/tmp") # nosec
+ # (/tmp is a fallback solution)
+ filename = os.path.join(config_dir, "moon_{}.yaml".format(uuid))
+ config_dict = {
+ "type": "pipeline",
+ "uuid": uuid,
+ "management": {
+ "url": __manager_url,
+ "token_file": os.path.join(config_dir, "db_{}.json".format(uuid))
+ },
+ "incremental_updates": True,
+ "api_token": api_token,
+ "data": "",
+ "logging": _log_config,
+ "authorization": get_configuration("authorization",
+ {"driver": "moon_engine.plugins.authz"}),
+ "plugins": get_configuration("plugins"),
+ "debug": get_configuration(key='debug', default=False)
+ }
+ if policy_file:
+ config_dict['data'] = policy_file
+ if not manager_cnx:
+ config_dict['uuid'] = ""
+ config_dict['incremental_updates'] = False
+ LOGGER.info("Writing config file to {}".format(filename))
+ yaml.dump(config_dict, open(filename, "w"), default_flow_style=False)
+ return filename
+
+
+def kill_server(uuid):
+ """Kill the server given its UUID
+
+ :param uuid: UUID of the server
+ :return: nothing
+ """
+ LOGGER.info("pipelines={}".format(pipelines))
+ if uuid in pipelines:
+ LOGGER.info("pipeline={}".format(pipelines[uuid]))
+ # Fixme: if the server has been restarted, the process attribute is empty
+ LOGGER.info("Killing server {} after {} of uptime".format(
+ uuid,
+ str(datetime.now() - datetime.fromtimestamp(pipelines[uuid]["starttime"]))
+ ))
+ with open(pipelines[uuid]["process"], 'r') as pid_file:
+ try:
+ pid = int(pid_file.read())
+ except ValueError:
+ LOGGER.error("The pid found in {} is not valid".format(pipelines[uuid]["process"]))
+ return
+
+ os.kill(pid, 15)
+ del_server_port(pipelines[uuid]["port"])
+ pipelines.pop(uuid)
+ else:
+ LOGGER.warning("Cannot find UUID {} in wrappers or interfaces".format(uuid))
+
+
+def get_ports_range():
+ ports_range = get_configuration("orchestration")["port"]
+ return int(ports_range.split(".")[0]), int(ports_range.split(".")[-1])
+
+
+def get_next_port(server_host="127.0.0.1"):
+ port_min, port_max = get_ports_range()
+ _port = port_min
+ _ports = []
+ for _pipeline in pipelines:
+ _ports.append(pipelines[_pipeline]["port"])
+ _ports.sort()
+ if not _ports:
+ _port = port_min
+ elif _ports[-1]+1 > port_max:
+ raise Exception(
+ "Cannot add a new slave because "
+ "the port range is bounded to {}".format(port_max))
+ while True:
+ if _port in _ports:
+ _port += 1
+ continue
+ try:
+ requests.get("http://{}:{}/status".format(server_host, _port), timeout=1)
+ except requests.exceptions.ConnectionError:
+ break
+ if _port > port_max:
+ raise Exception(
+ "Cannot add a new pipeline because "
+ "the port range is bounded to {}".format(port_max))
+ _port += 1
+ return _port
+
+
+def add_server_port(port):
+ ports.append(port)
+
+
+def del_server_port(port):
+ try:
+ ports.remove(port)
+ except ValueError:
+ LOGGER.warning("port {} is not in the known port".format(port))
+
+
+def get_server_url(uuid=None):
+ if not uuid:
+ return
+ url = ""
+ try:
+ if uuid in pipelines:
+ url = "http://{}:{}".format(pipelines[uuid]["server_ip"],
+ pipelines[uuid]["port"])
+ if url:
+ response = requests.get(url + "/status")
+ if response.status_code == 200:
+ return url
+ except TimeoutError:
+ LOGGER.warning("A timeout occurred when connecting to {}".format(url))
+ # if port has not be found in local data, try to get information from remote servers
+ port_min, port_max = get_ports_range()
+ host = "127.0.0.1"
+ for _port in range(port_min, port_max):
+ try:
+ req = requests.get("http://{}:{}/status".format(host, _port), timeout=1)
+ data = req.json()
+ if "status" in data and data["status"]["uuid"] == uuid:
+ return "http://{}:{}".format(host, _port)
+ except Exception as e:
+ LOGGER.warning("Error getting information from {} ({})".format(host, str(e)))
+ return
+
+
+def start_new_server(uuid):
+ """Start a new server in a new process
+
+ :param uuid: UUID of the server
+ :return: nothing
+ """
+ _url = get_server_url(uuid)
+ config_dir = get_configuration("orchestration").get("config_dir", "/tmp") # nosec
+ server_ip = "127.0.0.1"
+ config_filename = os.path.join(config_dir, "moon_{}.yaml".format(uuid))
+ LOGGER.info("Starting server {} {}".format(_url, uuid))
+ if _url:
+ _port = int(_url.split(":")[-1])
+ add_server_port(_port)
+ config = yaml.safe_load(open(config_filename))
+ log_file = config["logging"]["handlers"]["file"]["filename"]
+ _out = {
+ "pipeline_id": uuid,
+ "starttime": time.time(),
+ "port": _port,
+ "host": server_ip,
+ "server_ip": server_ip,
+ "log_file": log_file
+ }
+ else:
+ _port = get_next_port()
+ create_moon_config(uuid=uuid)
+ pid_file = os.path.join(config_dir, uuid + ".pid")
+ # NOTE: we have actually no solution to get the actual IP address
+ # so we need to put 0.0.0.0 in the host address
+ gunicorn_config = create_gunicorn_config(
+ host="0.0.0.0", # nosec
+ port=_port,
+ server_type="pipeline",
+ uuid=uuid)
+ command = ["gunicorn", "moon_engine.server:__hug_wsgi__", "--threads", "10",
+ "-p", pid_file, "-D", "-c", gunicorn_config]
+ LOGGER.info("Executing {}".format(" ".join(command)))
+ subprocess.Popen(command, stdout=subprocess.PIPE, close_fds=True) # nosec
+ # (command attribute is safe)
+ _out = {
+ "pipeline_id": uuid,
+ "starttime": time.time(),
+ "port": _port,
+ "host": server_ip,
+ "server_ip": server_ip,
+ "process": pid_file,
+ }
+ time.sleep(1)
+ config = yaml.safe_load(open(config_filename))
+ log_file = config["logging"]["handlers"]["file"]["filename"]
+ _out["log"] = log_file
+ for cpt in range(10):
+ try:
+ f_sock = open(log_file)
+ except FileNotFoundError:
+ time.sleep(1)
+ else:
+ break
+ else:
+ LOGGER.error("Cannot find log file ({})".format(log_file))
+ return
+ p_sock = 0
+ LOGGER.info("Process running")
+ while True:
+ f_sock.seek(p_sock)
+ latest_data = f_sock.read()
+ p_sock = f_sock.tell()
+ if latest_data and "APIKEY" in latest_data:
+ _index_start = latest_data.index("APIKEY=") + len("APIKEY=")
+ _index_stop = latest_data.index("\n", _index_start)
+ key = latest_data[_index_start:_index_stop].strip()
+ # api_key = get_api_key_for_user("admin")
+ api_key = configuration.get_configuration('api_token')
+ try:
+ engine_api_key = xor_decode(key, api_key)
+ except exceptions.DecryptError:
+ engine_api_key = False
+ _out["api_key"] = engine_api_key
+ break
+ time.sleep(1)
+
+ return _out
+
+
+class PipelineConnector(PipelineDriver):
+
+ def __init__(self, driver_name, engine_name):
+ self.driver_name = driver_name
+ self.engine_name = engine_name
+
+ def update_pipeline(self, pipeline_id, data):
+ _url = get_server_url(pipeline_id)
+ if not _url:
+ self.add_pipeline(pipeline_id, data)
+ if "security_pipeline" in data:
+ req = requests.post("{}/update".format(_url), json={"attributes": "pdp"})
+ if req.status_code == 206:
+ LOGGER.warning("No pipeline available...")
+ elif req.status_code != 202:
+ LOGGER.warning("Error sending upgrade command to pipeline ({})".format(req))
+ if "vim_project_id" in data and data['vim_project_id']:
+ LOGGER.warning("Cannot update vim_project_id for the moment")
+ # FIXME: manage vim_project_id
+
+ def delete_pipeline(self, pipeline_id):
+ LOGGER.info("Deleting pipeline {}".format(pipeline_id))
+ kill_server(pipeline_id)
+
+ def add_pipeline(self, pipeline_id=None, data=None):
+ LOGGER.debug("Adding POD in Engine {} {}".format(pipeline_id, data))
+ if not pipeline_id:
+ pipeline_id = uuid4().hex
+ if not data:
+ content = dict()
+ else:
+ content = dict(data)
+ content.update(start_new_server(pipeline_id))
+ pipelines[pipeline_id] = content
+ return pipelines[pipeline_id]
+
+ def get_pipelines(self, pipeline_id=None):
+ results = {}
+ for interface in pipelines:
+ results[interface] = {
+ "starttime": pipelines[interface]["starttime"],
+ "port": pipelines[interface]["port"],
+ "server_ip": pipelines[interface]["server_ip"],
+ "status": "down",
+ "log": pipelines[interface]["log"]
+ }
+ try:
+ req = requests.get("http://{}:{}/status".format(
+ pipelines[interface]["server_ip"],
+ pipelines[interface]["port"]
+ ))
+ if req.status_code == 200:
+ results[interface]["status"] = "up"
+ except TimeoutError:
+ LOGGER.warning("Timeout connecting {} on port {}".format(
+ pipelines[interface]["server_ip"],
+ pipelines[interface]["port"]
+ ))
+ return results
+
+ def get_pipeline_api_key(self, pipeline_id):
+ return pipelines.get(pipeline_id, {}).get('api_key', "")
+
+
+class Connector(PipelineConnector):
+ pass
+
+
+init()
diff --git a/moon_engine/moon_engine/server.py b/moon_engine/moon_engine/server.py
new file mode 100644
index 00000000..0b0f28b2
--- /dev/null
+++ b/moon_engine/moon_engine/server.py
@@ -0,0 +1,288 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+
+from falcon.http_error import HTTPError
+import hug
+import logging.config
+import json
+import re
+import requests
+import sys
+from uuid import uuid4
+from moon_engine.api import ERROR_CODE
+from moon_engine.api import status, logs, import_json, configuration
+from moon_utilities import exceptions
+from moon_utilities import auth_functions
+from moon_utilities import json_utils
+from moon_cache import cache
+from moon_engine import authz_driver
+
+LOGGER = logging.getLogger("moon.engine.server")
+CACHE = None
+
+
+@hug.directive()
+def server_uuid(default="", **kwargs):
+ """
+ Hug directive allowing to get the UUID of the component everywhere
+ :param default:
+ :param kwargs:
+ :return: UUID of the component
+ """
+ return configuration.get_configuration("uuid")
+
+
+def get_updates_from_manager():
+ """
+ Request the Manager to get all data from the database
+ :return: None
+ """
+ LOGGER.info("Retrieving all data from Manager")
+ for attribute in (
+ "pdp",
+ "models",
+ "policies",
+ "subjects",
+ "objects",
+ "actions",
+ "subject_categories",
+ "object_categories",
+ "action_categories",
+ "subject_assignments",
+ "object_assignments",
+ "action_assignments",
+ "meta_rules",
+ # "rules",
+ ):
+ # Note: force updates by getting attributes
+ LOGGER.info("Retrieving {} from manager {}".format(
+ attribute, configuration.get_configuration("manager_url")))
+ getattr(CACHE, attribute)
+
+
+def get_updates_from_local_conf():
+ """
+ Read the local data file and update the cache
+ :return: None
+ """
+ filename = configuration.get_configuration("data")
+ LOGGER.info("Retrieving all data from configuration ({})".format(filename))
+ data = json.load(open(filename))
+ LOGGER.debug("keys={}".format(list(data.keys())))
+ tool = json_utils.JsonImport(driver_name="cache", driver=CACHE)
+ tool.import_json(body=data)
+
+
+def get_attributes_from_config(filename):
+ """
+ Retrieve the configuration from the file given in the command line
+ :param filename: filename of the configuration file
+ :return: None
+ """
+ # TODO: manage the case if the filename attribute doesn't contain a true filename
+ # => case if it doesn't start with Gunicorn
+ # => generate a temporary RAM file and point to the moon.yaml in the source code
+ for line in open(filename):
+ _match_conf = re.match(r"moon\s*=\s*\"(.+)\"", line)
+ if _match_conf:
+ yaml_filename = _match_conf.groups()[0]
+ configuration.CONF_FILE = yaml_filename
+ _conf = configuration.search_config_file(yaml_filename)
+ break
+ else:
+ LOGGER.warning("Cannot find Moon configuration filename in {}".format(filename))
+ _conf = configuration.search_config_file("moon.yaml")
+
+ configuration.set_configuration(_conf)
+
+
+def get_bind_from_configfile(filename):
+ """
+ Retrieve the binding configuration from the file given in the command line
+ :param filename: filename of the configuration file
+ :return: URL
+ """
+ # TODO: manage the case if the filename attribute doesn't contain a true filename
+ # => case if it doesn't start with Gunicorn
+ # => case during tests
+ # => generate a temporary RAM file and point to the moon.yaml in the source code
+ for line in open(filename):
+ _match_conf = re.match(r"bind\s*=\s*\"(.+)\"", line)
+ if _match_conf:
+ return "http://" + _match_conf.groups()[0].replace("0.0.0.0", "127.0.0.1") # nosec
+ else:
+ LOGGER.warning("Cannot find binding configuration in {}".format(filename))
+
+
+def init_logging_system():
+ """
+ Initialize the logging system
+ either by the configuration given in the configuration file
+ either by the configuration in the Manager
+ :return: None
+ """
+ logging_conf = configuration.get_configuration("logging")
+ manager_url = configuration.get_configuration("manager_url")
+ if logging_conf:
+ configuration.init_logging()
+ elif manager_url:
+ req = requests.get("{}/config".format(manager_url))
+ if req.status_code != 200:
+ raise Exception("Error getting configuration data "
+ "from manager (code={})".format(req.status_code))
+ logging.config.dictConfig(req.json().get("logging", {}))
+
+
+def get_policy_configuration_from_manager():
+ """
+ Retrieve all data from the Manager
+ :return: None
+ """
+ pdp_id = CACHE.get_pdp_from_vim_project(configuration.get_configuration("uuid"))
+ CACHE.update(pdp_id=pdp_id)
+
+
+def init_pipeline():
+ """
+ Initialize the pipeline configuration
+ :return: None
+ """
+ if configuration.get_configuration("management").get("url"):
+ get_policy_configuration_from_manager()
+
+
+def initialize():
+ """Adds initial data to the api on startup"""
+ global CACHE
+ LOGGER.warning("Starting the server and initializing data")
+ filename = sys.argv[-1]
+ try:
+ get_attributes_from_config(filename)
+ except FileNotFoundError:
+ LOGGER.warning("{} file not found".format(filename))
+ except IsADirectoryError:
+ LOGGER.warning("{} file is a directory.".format(filename))
+
+ init_logging_system()
+
+ LOGGER.info("management={}".format(configuration.get_configuration("management")))
+ auth_functions.init_db(configuration.get_configuration("management").get("token_file"))
+ CACHE = cache.Cache.getInstance(
+ manager_url=configuration.get_configuration("management").get('url'),
+ incremental=configuration.get_configuration("incremental_updates"),
+ manager_api_key=configuration.get_configuration("api_token"))
+
+ if configuration.get_configuration("type") == "pipeline":
+ init_pipeline()
+
+ if not configuration.get_configuration("incremental_updates"):
+ if configuration.get_configuration("manager_url"):
+ get_updates_from_manager()
+ elif configuration.get_configuration("data"):
+ get_updates_from_local_conf()
+ auth_functions.add_user("admin", uuid4().hex)
+ # NOTE: the password is not saved anywhere but
+ # the API key is printed in the log
+ # and is xor-ed with the Manager API key
+ api_key = auth_functions.get_api_key_for_user("admin")
+ LOGGER.info(f"api_key={api_key}")
+ LOGGER.info(f"configuration.get_configuration('api_token')={configuration.get_configuration('api_token')}")
+ try:
+ encrypt_key = auth_functions.xor_encode(api_key,
+ configuration.get_configuration("api_token"))
+ except exceptions.EncryptError:
+ encrypt_key = ""
+ try:
+ local_server = get_bind_from_configfile(filename)
+ CACHE.set_current_server(url=local_server, api_key=api_key)
+ except (FileNotFoundError, IsADirectoryError):
+ LOGGER.warning("Cannot find configuration file {}".format(filename))
+ LOGGER.critical("APIKEY={}".format(encrypt_key))
+ authz_driver.init()
+
+
+def __get_status_code(exception):
+ """
+ Return the status code to send depending on the exception thrown
+ :param exception: the exception that will be sent
+ :return:
+ """
+ if isinstance(exception, HTTPError):
+ return exception.status
+ status_code = getattr(exception, "code", 500)
+ if status_code in ERROR_CODE:
+ status_code = ERROR_CODE[status_code]
+ else:
+ status_code = hug.HTTP_500
+ return status_code
+
+
+@hug.exception(exceptions.MoonError)
+def handle_custom_exceptions(exception, response):
+ """
+ Handle Moon exceptions
+ :param exception: the exception that has been raised
+ :param response: the response to send to the client
+ :return: JSON data to send to the client
+ """
+ response.status = __get_status_code(exception)
+ error_message = {"result": False,
+ 'message': str(exception),
+ "code": getattr(exception, "code", 500)}
+ LOGGER.exception(exception)
+ return error_message
+
+
+@hug.exception(Exception)
+def handle_exception(exception, response):
+ """
+ Handle general exceptions
+ :param exception: the exception that has been raised
+ :param response: the response to send to the client
+ :return: JSON data to send to the client
+ """
+ response.status = __get_status_code(exception)
+ LOGGER.exception(exception)
+ return {"result": False, 'message': str(exception), "code": getattr(exception, "code", 500)}
+
+
+def get_api_from_plugins(api_type):
+ return configuration.get_plugins_by_type(api_type)
+
+
+@hug.extend_api()
+def with_other_apis():
+ """
+ Give to Hug all available APIs
+ :return: list of APIs
+ """
+ initialize()
+ _type = configuration.get_configuration("type")
+ if _type == "wrapper":
+ from moon_engine.api.wrapper.api import pipeline
+ from moon_engine.api.wrapper.api import update as wrapper_update
+ from moon_engine.api.wrapper.api import authz as wrapper_authz
+ LOGGER.info("Starting the Wrapper API interfaces")
+ return [status, logs, import_json, wrapper_update, pipeline, wrapper_authz] + \
+ list(configuration.get_plugins_by_type("wrapper_api"))
+ elif _type == "pipeline":
+ from moon_engine.api.pipeline import update as pipeline_update
+ from moon_engine.api.pipeline import authz as pipeline_authz
+ LOGGER.info("Starting the Pipeline API interfaces")
+ return [status, logs, import_json, pipeline_update, pipeline_authz] + \
+ list(configuration.get_plugins_by_type("engine_api"))
+ raise Exception("The type of component must be 'wrapper' or 'pipeline' (got {} instead)".format(
+ _type
+ ))
+
+
diff --git a/moon_engine/moon_engine_users.json b/moon_engine/moon_engine_users.json
new file mode 100644
index 00000000..73b0355c
--- /dev/null
+++ b/moon_engine/moon_engine_users.json
@@ -0,0 +1 @@
+{"_default": {"1": {"username": "admin", "password": "a5791540e51dc5cda1f7c6ffdab6e6357327b958249fb4886b3afff1d958e01b33feb1c8a43217b47d4eea2e35f1570e3596e8ed40329a0e809c8c188e6cf6e1", "salt": "4ec5fdb4037ed533bb8f9bc42dcdd60182279862da45f14196a50a418eb1625e99a755597350158fea6e3ce6877e8dfde8caee9051e3f2b1c87326fdebc0d584", "api_key": "51f80492b399063ef60316ee4d4ef11cfbdb1ee1329c14569d39116e883105465b8730580e73a600df0a939bafbe18bfb0152bf7d2908957fb66c0968727a1e6"}}} \ No newline at end of file
diff --git a/moon_engine/requirements.txt b/moon_engine/requirements.txt
new file mode 100644
index 00000000..e229ef85
--- /dev/null
+++ b/moon_engine/requirements.txt
@@ -0,0 +1,7 @@
+hug
+pyaml
+gunicorn
+
+# only needed if the SQL driver is used
+sqlalchemy
+pymysql
diff --git a/moon_engine/setup.py b/moon_engine/setup.py
new file mode 100644
index 00000000..c2e0e34d
--- /dev/null
+++ b/moon_engine/setup.py
@@ -0,0 +1,55 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+from setuptools import setup, find_packages
+import moon_engine
+
+
+setup(
+
+ name='moon_engine',
+
+ version=moon_engine.__version__,
+
+ packages=find_packages(),
+
+ author="Thomas Duval",
+
+ author_email="thomas.duval@orange.com",
+
+ description="",
+
+ long_description=open('README.md').read(),
+
+ install_requires=list(filter(
+ lambda s: (len(s.strip()) > 0 and s.strip()[0] != '#'),
+ open('requirements.txt').read().split('\n'))),
+
+ include_package_data=True,
+
+ url='',
+
+ classifiers=[
+ "Programming Language :: Python",
+ "Development Status :: 1 - Planning",
+ "License :: OSI Approved",
+ "Natural Language :: French",
+ "Operating System :: OS Independent",
+ "Programming Language :: Python :: 3",
+ ],
+
+ entry_points={
+ 'console_scripts': [
+ 'moon_engine = moon_engine.__main__:run',
+ ],
+ }
+)
diff --git a/moon_engine/tests/func_policies/moon.yaml b/moon_engine/tests/func_policies/moon.yaml
new file mode 100644
index 00000000..128948fa
--- /dev/null
+++ b/moon_engine/tests/func_policies/moon.yaml
@@ -0,0 +1,58 @@
+type: "pipeline"
+uuid:
+manager_url: ""
+incremental_updates: false
+api_token:
+data: policy_rbac.json
+debug: true
+
+management:
+ password: admin
+ url: http://127.0.0.1:8000
+ user: admin
+ token_file: moon_engine_users.json
+
+orchestration:
+ driver: moon_engine.plugins.pyorchestrator
+ connection: local
+ port: 20000...20100
+ config_dir: /tmp
+
+authorization:
+ driver: moon_engine.plugins.authz
+
+plugins:
+ directory: /tmp
+
+logging:
+ version: 1
+
+ formatters:
+ brief:
+ format: "%(levelname)s %(name)s %(message)-30s"
+ custom:
+ format: "%(asctime)-15s %(levelname)s %(name)s %(message)s"
+
+ handlers:
+ console:
+ class : logging.StreamHandler
+ formatter: custom
+ level : INFO
+ stream : ext://sys.stdout
+ file:
+ class : logging.handlers.RotatingFileHandler
+ formatter: custom
+ level : DEBUG
+ filename: /tmp/moon_engine.log
+ maxBytes: 1048576
+ backupCount: 3
+
+ loggers:
+ moon:
+ level: DEBUG
+ handlers: [console, file]
+ propagate: no
+
+ root:
+ level: ERROR
+ handlers: [console] \ No newline at end of file
diff --git a/moon_engine/tests/func_policies/opst_rbac.json b/moon_engine/tests/func_policies/opst_rbac.json
new file mode 100644
index 00000000..6f95db86
--- /dev/null
+++ b/moon_engine/tests/func_policies/opst_rbac.json
@@ -0,0 +1,59378 @@
+{
+ "policies": [
+ {
+ "name": "OpenStack RBAC Policy",
+ "genre": "authz",
+ "description": "A RBAC policy similar of what you can find through policy.json files",
+ "model": {
+ "name": "OPST_RBAC"
+ },
+ "mandatory": true,
+ "override": true
+ }
+ ],
+ "models": [
+ {
+ "name": "OPST_RBAC",
+ "description": "",
+ "meta_rules": [
+ {
+ "name": "rbac"
+ }
+ ],
+ "override": true
+ }
+ ],
+ "subjects": [
+ {
+ "name": "admin",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "OpenStack RBAC Policy"
+ }
+ ]
+ }
+ ],
+ "subject_categories": [
+ {
+ "name": "role",
+ "description": "a role in OpenStack"
+ }
+ ],
+ "subject_data": [
+ {
+ "name": "admin",
+ "description": "the admin role",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ },
+ {
+ "name": "member",
+ "description": "the member role",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ }
+ ],
+ "subject_assignments": [
+ {
+ "subject": {
+ "name": "admin"
+ },
+ "category": {
+ "name": "role"
+ },
+ "assignments": [
+ {
+ "name": "admin"
+ },
+ {
+ "name": "member"
+ }
+ ]
+ }
+ ],
+ "objects": [
+ {
+ "name": "all_vm",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "OpenStack RBAC Policy"
+ }
+ ]
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "id",
+ "description": "the UID of each virtual machine"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm",
+ "description": "represents all virtual machines in this project",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ }
+ ],
+ "object_assignments": [
+ {
+ "object": {
+ "name": "all_vm"
+ },
+ "category": {
+ "name": "id"
+ },
+ "assignments": [
+ {
+ "name": "all_vm"
+ }
+ ]
+ }
+ ],
+ "actions": [
+ {
+ "name": "volume:create",
+ "description": "volume:create action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:delete",
+ "description": "volume:delete action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:get",
+ "description": "volume:get action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:get_all",
+ "description": "volume:get_all action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:get_volume_metadata",
+ "description": "volume:get_volume_metadata action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:delete_volume_metadata",
+ "description": "volume:delete_volume_metadata action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:update_volume_metadata",
+ "description": "volume:update_volume_metadata action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:get_volume_admin_metadata",
+ "description": "volume:get_volume_admin_metadata action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:update_volume_admin_metadata",
+ "description": "volume:update_volume_admin_metadata action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:get_snapshot",
+ "description": "volume:get_snapshot action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:get_all_snapshots",
+ "description": "volume:get_all_snapshots action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:create_snapshot",
+ "description": "volume:create_snapshot action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:delete_snapshot",
+ "description": "volume:delete_snapshot action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:update_snapshot",
+ "description": "volume:update_snapshot action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:extend",
+ "description": "volume:extend action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:update_readonly_flag",
+ "description": "volume:update_readonly_flag action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:retype",
+ "description": "volume:retype action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:update",
+ "description": "volume:update action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:types_manage",
+ "description": "volume_extension:types_manage action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:types_extra_specs",
+ "description": "volume_extension:types_extra_specs action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:access_types_qos_specs_id",
+ "description": "volume_extension:access_types_qos_specs_id action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:access_types_extra_specs",
+ "description": "volume_extension:access_types_extra_specs action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_type_access",
+ "description": "volume_extension:volume_type_access action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_type_access:addProjectAccess",
+ "description": "volume_extension:volume_type_access:addProjectAccess action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_type_access:removeProjectAccess",
+ "description": "volume_extension:volume_type_access:removeProjectAccess action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_type_encryption",
+ "description": "volume_extension:volume_type_encryption action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_encryption_metadata",
+ "description": "volume_extension:volume_encryption_metadata action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:extended_snapshot_attributes",
+ "description": "volume_extension:extended_snapshot_attributes action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_image_metadata",
+ "description": "volume_extension:volume_image_metadata action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:quotas:show",
+ "description": "volume_extension:quotas:show action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:quotas:update",
+ "description": "volume_extension:quotas:update action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:quotas:delete",
+ "description": "volume_extension:quotas:delete action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:quota_classes",
+ "description": "volume_extension:quota_classes action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:quota_classes:validate_setup_for_nested_quota_use",
+ "description": "volume_extension:quota_classes:validate_setup_for_nested_quota_use action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:reset_status",
+ "description": "volume_extension:volume_admin_actions:reset_status action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:snapshot_admin_actions:reset_status",
+ "description": "volume_extension:snapshot_admin_actions:reset_status action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:backup_admin_actions:reset_status",
+ "description": "volume_extension:backup_admin_actions:reset_status action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:force_delete",
+ "description": "volume_extension:volume_admin_actions:force_delete action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:force_detach",
+ "description": "volume_extension:volume_admin_actions:force_detach action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:snapshot_admin_actions:force_delete",
+ "description": "volume_extension:snapshot_admin_actions:force_delete action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:backup_admin_actions:force_delete",
+ "description": "volume_extension:backup_admin_actions:force_delete action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:migrate_volume",
+ "description": "volume_extension:volume_admin_actions:migrate_volume action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:migrate_volume_completion",
+ "description": "volume_extension:volume_admin_actions:migrate_volume_completion action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_host_attribute",
+ "description": "volume_extension:volume_host_attribute action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_tenant_attribute",
+ "description": "volume_extension:volume_tenant_attribute action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_mig_status_attribute",
+ "description": "volume_extension:volume_mig_status_attribute action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:hosts",
+ "description": "volume_extension:hosts action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:services:index",
+ "description": "volume_extension:services:index action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:services:update",
+ "description": "volume_extension:services:update action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_manage",
+ "description": "volume_extension:volume_manage action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_unmanage",
+ "description": "volume_extension:volume_unmanage action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:capabilities",
+ "description": "volume_extension:capabilities action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:create_transfer",
+ "description": "volume:create_transfer action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:accept_transfer",
+ "description": "volume:accept_transfer action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:delete_transfer",
+ "description": "volume:delete_transfer action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:get_all_transfers",
+ "description": "volume:get_all_transfers action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:replication:promote",
+ "description": "volume_extension:replication:promote action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:replication:reenable",
+ "description": "volume_extension:replication:reenable action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:enable_replication",
+ "description": "volume:enable_replication action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:disable_replication",
+ "description": "volume:disable_replication action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:failover_replication",
+ "description": "volume:failover_replication action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:list_replication_targets",
+ "description": "volume:list_replication_targets action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "backup:create",
+ "description": "backup:create action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "backup:delete",
+ "description": "backup:delete action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "backup:get",
+ "description": "backup:get action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "backup:get_all",
+ "description": "backup:get_all action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "backup:restore",
+ "description": "backup:restore action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "backup:backup-import",
+ "description": "backup:backup-import action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "backup:backup-export",
+ "description": "backup:backup-export action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "snapshot_extension:snapshot_actions:update_snapshot_status",
+ "description": "snapshot_extension:snapshot_actions:update_snapshot_status action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "snapshot_extension:snapshot_manage",
+ "description": "snapshot_extension:snapshot_manage action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "snapshot_extension:snapshot_unmanage",
+ "description": "snapshot_extension:snapshot_unmanage action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:create",
+ "description": "consistencygroup:create action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:delete",
+ "description": "consistencygroup:delete action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:update",
+ "description": "consistencygroup:update action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:get",
+ "description": "consistencygroup:get action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:get_all",
+ "description": "consistencygroup:get_all action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:create_cgsnapshot",
+ "description": "consistencygroup:create_cgsnapshot action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:delete_cgsnapshot",
+ "description": "consistencygroup:delete_cgsnapshot action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:get_cgsnapshot",
+ "description": "consistencygroup:get_cgsnapshot action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:get_all_cgsnapshots",
+ "description": "consistencygroup:get_all_cgsnapshots action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "scheduler_extension:scheduler_stats:get_pools",
+ "description": "scheduler_extension:scheduler_stats:get_pools action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_image",
+ "description": "add_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_image",
+ "description": "delete_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_image",
+ "description": "get_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_images",
+ "description": "get_images action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "modify_image",
+ "description": "modify_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "publicize_image",
+ "description": "publicize_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "communitize_image",
+ "description": "communitize_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "copy_from",
+ "description": "copy_from action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "download_image",
+ "description": "download_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "upload_image",
+ "description": "upload_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_image_location",
+ "description": "delete_image_location action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_image_location",
+ "description": "get_image_location action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "set_image_location",
+ "description": "set_image_location action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_member",
+ "description": "add_member action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_member",
+ "description": "delete_member action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_member",
+ "description": "get_member action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_members",
+ "description": "get_members action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "modify_member",
+ "description": "modify_member action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "manage_image_cache",
+ "description": "manage_image_cache action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_task",
+ "description": "get_task action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_tasks",
+ "description": "get_tasks action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_task",
+ "description": "add_task action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "modify_task",
+ "description": "modify_task action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "tasks_api_access",
+ "description": "tasks_api_access action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "deactivate",
+ "description": "deactivate action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "reactivate",
+ "description": "reactivate action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_namespace",
+ "description": "get_metadef_namespace action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_namespaces",
+ "description": "get_metadef_namespaces action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "modify_metadef_namespace",
+ "description": "modify_metadef_namespace action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_metadef_namespace",
+ "description": "add_metadef_namespace action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_object",
+ "description": "get_metadef_object action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_objects",
+ "description": "get_metadef_objects action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "modify_metadef_object",
+ "description": "modify_metadef_object action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_metadef_object",
+ "description": "add_metadef_object action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "list_metadef_resource_types",
+ "description": "list_metadef_resource_types action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_resource_type",
+ "description": "get_metadef_resource_type action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_metadef_resource_type_association",
+ "description": "add_metadef_resource_type_association action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_property",
+ "description": "get_metadef_property action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_properties",
+ "description": "get_metadef_properties action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "modify_metadef_property",
+ "description": "modify_metadef_property action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_metadef_property",
+ "description": "add_metadef_property action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_tag",
+ "description": "get_metadef_tag action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_tags",
+ "description": "get_metadef_tags action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "modify_metadef_tag",
+ "description": "modify_metadef_tag action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_metadef_tag",
+ "description": "add_metadef_tag action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_metadef_tags",
+ "description": "add_metadef_tags action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_region",
+ "description": "identity:get_region action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_regions",
+ "description": "identity:list_regions action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_region",
+ "description": "identity:create_region action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_region",
+ "description": "identity:update_region action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_region",
+ "description": "identity:delete_region action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_service",
+ "description": "identity:get_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_services",
+ "description": "identity:list_services action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_service",
+ "description": "identity:create_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_service",
+ "description": "identity:update_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_service",
+ "description": "identity:delete_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_endpoint",
+ "description": "identity:get_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_endpoints",
+ "description": "identity:list_endpoints action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_endpoint",
+ "description": "identity:create_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_endpoint",
+ "description": "identity:update_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_endpoint",
+ "description": "identity:delete_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_registered_limit",
+ "description": "identity:get_registered_limit action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_registered_limits",
+ "description": "identity:list_registered_limits action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_registered_limits",
+ "description": "identity:create_registered_limits action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_registered_limits",
+ "description": "identity:update_registered_limits action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_registered_limit",
+ "description": "identity:delete_registered_limit action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_limit",
+ "description": "identity:get_limit action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_limits",
+ "description": "identity:list_limits action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_limits",
+ "description": "identity:create_limits action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_limits",
+ "description": "identity:update_limits action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_limit",
+ "description": "identity:delete_limit action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_domain",
+ "description": "identity:get_domain action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_domains",
+ "description": "identity:list_domains action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_domain",
+ "description": "identity:create_domain action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_domain",
+ "description": "identity:update_domain action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_domain",
+ "description": "identity:delete_domain action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_and_matching_target_project_domain_id",
+ "description": "admin_and_matching_target_project_domain_id action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_and_matching_project_domain_id",
+ "description": "admin_and_matching_project_domain_id action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_project",
+ "description": "identity:get_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_projects",
+ "description": "identity:list_projects action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_user_projects",
+ "description": "identity:list_user_projects action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_project",
+ "description": "identity:create_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_project",
+ "description": "identity:update_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_project",
+ "description": "identity:delete_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_project_tag",
+ "description": "identity:create_project_tag action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_project_tag",
+ "description": "identity:delete_project_tag action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_project_tag",
+ "description": "identity:get_project_tag action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_project_tags",
+ "description": "identity:list_project_tags action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_project_tags",
+ "description": "identity:delete_project_tags action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_project_tags",
+ "description": "identity:update_project_tags action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_and_matching_target_user_domain_id",
+ "description": "admin_and_matching_target_user_domain_id action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_and_matching_user_domain_id",
+ "description": "admin_and_matching_user_domain_id action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_user",
+ "description": "identity:get_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_users",
+ "description": "identity:list_users action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_user",
+ "description": "identity:create_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_user",
+ "description": "identity:update_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_user",
+ "description": "identity:delete_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_and_matching_target_group_domain_id",
+ "description": "admin_and_matching_target_group_domain_id action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_and_matching_group_domain_id",
+ "description": "admin_and_matching_group_domain_id action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_group",
+ "description": "identity:get_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_groups",
+ "description": "identity:list_groups action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_groups_for_user",
+ "description": "identity:list_groups_for_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_group",
+ "description": "identity:create_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_group",
+ "description": "identity:update_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_group",
+ "description": "identity:delete_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_users_in_group",
+ "description": "identity:list_users_in_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:remove_user_from_group",
+ "description": "identity:remove_user_from_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_user_in_group",
+ "description": "identity:check_user_in_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:add_user_to_group",
+ "description": "identity:add_user_to_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_credential",
+ "description": "identity:get_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_credentials",
+ "description": "identity:list_credentials action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_credential",
+ "description": "identity:create_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_credential",
+ "description": "identity:update_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_credential",
+ "description": "identity:delete_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:ec2_get_credential",
+ "description": "identity:ec2_get_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:ec2_list_credentials",
+ "description": "identity:ec2_list_credentials action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:ec2_create_credential",
+ "description": "identity:ec2_create_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:ec2_delete_credential",
+ "description": "identity:ec2_delete_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_role",
+ "description": "identity:get_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_roles",
+ "description": "identity:list_roles action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_role",
+ "description": "identity:create_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_role",
+ "description": "identity:update_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_role",
+ "description": "identity:delete_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_domain_role",
+ "description": "identity:get_domain_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_domain_roles",
+ "description": "identity:list_domain_roles action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_domain_role",
+ "description": "identity:create_domain_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_domain_role",
+ "description": "identity:update_domain_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_domain_role",
+ "description": "identity:delete_domain_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "domain_admin_matches_domain_role",
+ "description": "domain_admin_matches_domain_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_domain_roles",
+ "description": "get_domain_roles action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "domain_admin_matches_target_domain_role",
+ "description": "domain_admin_matches_target_domain_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "project_admin_matches_target_domain_role",
+ "description": "project_admin_matches_target_domain_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "list_domain_roles",
+ "description": "list_domain_roles action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "domain_admin_matches_filter_on_list_domain_roles",
+ "description": "domain_admin_matches_filter_on_list_domain_roles action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "project_admin_matches_filter_on_list_domain_roles",
+ "description": "project_admin_matches_filter_on_list_domain_roles action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_and_matching_prior_role_domain_id",
+ "description": "admin_and_matching_prior_role_domain_id action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "implied_role_matches_prior_role_domain_or_global",
+ "description": "implied_role_matches_prior_role_domain_or_global action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_implied_role",
+ "description": "identity:get_implied_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_implied_roles",
+ "description": "identity:list_implied_roles action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_implied_role",
+ "description": "identity:create_implied_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_implied_role",
+ "description": "identity:delete_implied_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_role_inference_rules",
+ "description": "identity:list_role_inference_rules action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_implied_role",
+ "description": "identity:check_implied_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_system_grants_for_user",
+ "description": "identity:list_system_grants_for_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_system_grant_for_user",
+ "description": "identity:check_system_grant_for_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_system_grant_for_user",
+ "description": "identity:create_system_grant_for_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:revoke_system_grant_for_user",
+ "description": "identity:revoke_system_grant_for_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_system_grants_for_group",
+ "description": "identity:list_system_grants_for_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_system_grant_for_group",
+ "description": "identity:check_system_grant_for_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_system_grant_for_group",
+ "description": "identity:create_system_grant_for_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:revoke_system_grant_for_group",
+ "description": "identity:revoke_system_grant_for_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_grant",
+ "description": "identity:check_grant action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_grants",
+ "description": "identity:list_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_grant",
+ "description": "identity:create_grant action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:revoke_grant",
+ "description": "identity:revoke_grant action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "domain_admin_for_grants",
+ "description": "domain_admin_for_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "domain_admin_for_global_role_grants",
+ "description": "domain_admin_for_global_role_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "domain_admin_for_domain_role_grants",
+ "description": "domain_admin_for_domain_role_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "domain_admin_grant_match",
+ "description": "domain_admin_grant_match action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "project_admin_for_grants",
+ "description": "project_admin_for_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "project_admin_for_global_role_grants",
+ "description": "project_admin_for_global_role_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "project_admin_for_domain_role_grants",
+ "description": "project_admin_for_domain_role_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "domain_admin_for_list_grants",
+ "description": "domain_admin_for_list_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "project_admin_for_list_grants",
+ "description": "project_admin_for_list_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_on_domain_filter",
+ "description": "admin_on_domain_filter action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_on_project_filter",
+ "description": "admin_on_project_filter action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_on_domain_of_project_filter",
+ "description": "admin_on_domain_of_project_filter action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_role_assignments",
+ "description": "identity:list_role_assignments action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_role_assignments_for_tree",
+ "description": "identity:list_role_assignments_for_tree action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_policy",
+ "description": "identity:get_policy action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_policies",
+ "description": "identity:list_policies action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_policy",
+ "description": "identity:create_policy action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_policy",
+ "description": "identity:update_policy action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_policy",
+ "description": "identity:delete_policy action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_token",
+ "description": "identity:check_token action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:validate_token",
+ "description": "identity:validate_token action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:validate_token_head",
+ "description": "identity:validate_token_head action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:revocation_list",
+ "description": "identity:revocation_list action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:revoke_token",
+ "description": "identity:revoke_token action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_trust",
+ "description": "identity:create_trust action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_trusts",
+ "description": "identity:list_trusts action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_roles_for_trust",
+ "description": "identity:list_roles_for_trust action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_role_for_trust",
+ "description": "identity:get_role_for_trust action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_trust",
+ "description": "identity:delete_trust action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_trust",
+ "description": "identity:get_trust action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_consumer",
+ "description": "identity:create_consumer action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_consumer",
+ "description": "identity:get_consumer action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_consumers",
+ "description": "identity:list_consumers action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_consumer",
+ "description": "identity:delete_consumer action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_consumer",
+ "description": "identity:update_consumer action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:authorize_request_token",
+ "description": "identity:authorize_request_token action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_access_token_roles",
+ "description": "identity:list_access_token_roles action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_access_token_role",
+ "description": "identity:get_access_token_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_access_tokens",
+ "description": "identity:list_access_tokens action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_access_token",
+ "description": "identity:get_access_token action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_access_token",
+ "description": "identity:delete_access_token action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_projects_for_endpoint",
+ "description": "identity:list_projects_for_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:add_endpoint_to_project",
+ "description": "identity:add_endpoint_to_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_endpoint_in_project",
+ "description": "identity:check_endpoint_in_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_endpoints_for_project",
+ "description": "identity:list_endpoints_for_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:remove_endpoint_from_project",
+ "description": "identity:remove_endpoint_from_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_endpoint_group",
+ "description": "identity:create_endpoint_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_endpoint_groups",
+ "description": "identity:list_endpoint_groups action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_endpoint_group",
+ "description": "identity:get_endpoint_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_endpoint_group",
+ "description": "identity:update_endpoint_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_endpoint_group",
+ "description": "identity:delete_endpoint_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_projects_associated_with_endpoint_group",
+ "description": "identity:list_projects_associated_with_endpoint_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_endpoints_associated_with_endpoint_group",
+ "description": "identity:list_endpoints_associated_with_endpoint_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_endpoint_group_in_project",
+ "description": "identity:get_endpoint_group_in_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_endpoint_groups_for_project",
+ "description": "identity:list_endpoint_groups_for_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:add_endpoint_group_to_project",
+ "description": "identity:add_endpoint_group_to_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:remove_endpoint_group_from_project",
+ "description": "identity:remove_endpoint_group_from_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_identity_provider",
+ "description": "identity:create_identity_provider action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_identity_providers",
+ "description": "identity:list_identity_providers action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_identity_provider",
+ "description": "identity:get_identity_provider action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_identity_provider",
+ "description": "identity:update_identity_provider action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_identity_provider",
+ "description": "identity:delete_identity_provider action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_protocol",
+ "description": "identity:create_protocol action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_protocol",
+ "description": "identity:update_protocol action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_protocol",
+ "description": "identity:get_protocol action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_protocols",
+ "description": "identity:list_protocols action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_protocol",
+ "description": "identity:delete_protocol action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_mapping",
+ "description": "identity:create_mapping action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_mapping",
+ "description": "identity:get_mapping action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_mappings",
+ "description": "identity:list_mappings action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_mapping",
+ "description": "identity:delete_mapping action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_mapping",
+ "description": "identity:update_mapping action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_service_provider",
+ "description": "identity:create_service_provider action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_service_providers",
+ "description": "identity:list_service_providers action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_service_provider",
+ "description": "identity:get_service_provider action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_service_provider",
+ "description": "identity:update_service_provider action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_service_provider",
+ "description": "identity:delete_service_provider action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_auth_catalog",
+ "description": "identity:get_auth_catalog action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_auth_projects",
+ "description": "identity:get_auth_projects action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_auth_domains",
+ "description": "identity:get_auth_domains action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_auth_system",
+ "description": "identity:get_auth_system action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_projects_for_user",
+ "description": "identity:list_projects_for_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_domains_for_user",
+ "description": "identity:list_domains_for_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_revoke_events",
+ "description": "identity:list_revoke_events action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_policy_association_for_endpoint",
+ "description": "identity:create_policy_association_for_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_policy_association_for_endpoint",
+ "description": "identity:check_policy_association_for_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_policy_association_for_endpoint",
+ "description": "identity:delete_policy_association_for_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_policy_association_for_service",
+ "description": "identity:create_policy_association_for_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_policy_association_for_service",
+ "description": "identity:check_policy_association_for_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_policy_association_for_service",
+ "description": "identity:delete_policy_association_for_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_policy_association_for_region_and_service",
+ "description": "identity:create_policy_association_for_region_and_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_policy_association_for_region_and_service",
+ "description": "identity:check_policy_association_for_region_and_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_policy_association_for_region_and_service",
+ "description": "identity:delete_policy_association_for_region_and_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_policy_for_endpoint",
+ "description": "identity:get_policy_for_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_endpoints_for_policy",
+ "description": "identity:list_endpoints_for_policy action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_domain_config",
+ "description": "identity:create_domain_config action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_domain_config",
+ "description": "identity:get_domain_config action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_security_compliance_domain_config",
+ "description": "identity:get_security_compliance_domain_config action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_domain_config",
+ "description": "identity:update_domain_config action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_domain_config",
+ "description": "identity:delete_domain_config action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_domain_config_default",
+ "description": "identity:get_domain_config_default action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_application_credential",
+ "description": "identity:get_application_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_application_credentials",
+ "description": "identity:list_application_credentials action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_application_credential",
+ "description": "identity:create_application_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_application_credential",
+ "description": "identity:delete_application_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_subnet",
+ "description": "create_subnet action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_subnet:segment_id",
+ "description": "create_subnet:segment_id action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_subnet:service_types",
+ "description": "create_subnet:service_types action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_subnet",
+ "description": "get_subnet action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_subnet:segment_id",
+ "description": "get_subnet:segment_id action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_subnet",
+ "description": "update_subnet action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_subnet:service_types",
+ "description": "update_subnet:service_types action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_subnet",
+ "description": "delete_subnet action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_subnetpool",
+ "description": "create_subnetpool action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_subnetpool:shared",
+ "description": "create_subnetpool:shared action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_subnetpool:is_default",
+ "description": "create_subnetpool:is_default action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_subnetpool",
+ "description": "get_subnetpool action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_subnetpool",
+ "description": "update_subnetpool action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_subnetpool:is_default",
+ "description": "update_subnetpool:is_default action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_subnetpool",
+ "description": "delete_subnetpool action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_address_scope",
+ "description": "create_address_scope action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_address_scope:shared",
+ "description": "create_address_scope:shared action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_address_scope",
+ "description": "get_address_scope action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_address_scope",
+ "description": "update_address_scope action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_address_scope:shared",
+ "description": "update_address_scope:shared action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_address_scope",
+ "description": "delete_address_scope action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_network",
+ "description": "create_network action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_network",
+ "description": "get_network action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_network:router:external",
+ "description": "get_network:router:external action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_network:segments",
+ "description": "get_network:segments action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_network:provider:network_type",
+ "description": "get_network:provider:network_type action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_network:provider:physical_network",
+ "description": "get_network:provider:physical_network action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_network:provider:segmentation_id",
+ "description": "get_network:provider:segmentation_id action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_network:queue_id",
+ "description": "get_network:queue_id action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_network_ip_availabilities",
+ "description": "get_network_ip_availabilities action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_network_ip_availability",
+ "description": "get_network_ip_availability action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_network:shared",
+ "description": "create_network:shared action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_network:router:external",
+ "description": "create_network:router:external action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_network:is_default",
+ "description": "create_network:is_default action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_network:segments",
+ "description": "create_network:segments action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_network:provider:network_type",
+ "description": "create_network:provider:network_type action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_network:provider:physical_network",
+ "description": "create_network:provider:physical_network action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_network:provider:segmentation_id",
+ "description": "create_network:provider:segmentation_id action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_network",
+ "description": "update_network action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_network:segments",
+ "description": "update_network:segments action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_network:shared",
+ "description": "update_network:shared action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_network:provider:network_type",
+ "description": "update_network:provider:network_type action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_network:provider:physical_network",
+ "description": "update_network:provider:physical_network action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_network:provider:segmentation_id",
+ "description": "update_network:provider:segmentation_id action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_network:router:external",
+ "description": "update_network:router:external action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_network",
+ "description": "delete_network action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_segment",
+ "description": "create_segment action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_segment",
+ "description": "get_segment action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_segment",
+ "description": "update_segment action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_segment",
+ "description": "delete_segment action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "network_device",
+ "description": "network_device action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_port",
+ "description": "create_port action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_port:device_owner",
+ "description": "create_port:device_owner action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_port:mac_address",
+ "description": "create_port:mac_address action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_port:fixed_ips:ip_address",
+ "description": "create_port:fixed_ips:ip_address action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_port:fixed_ips:subnet_id",
+ "description": "create_port:fixed_ips:subnet_id action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_port:port_security_enabled",
+ "description": "create_port:port_security_enabled action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_port:binding:host_id",
+ "description": "create_port:binding:host_id action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_port:binding:profile",
+ "description": "create_port:binding:profile action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_port:mac_learning_enabled",
+ "description": "create_port:mac_learning_enabled action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_port:allowed_address_pairs",
+ "description": "create_port:allowed_address_pairs action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_port",
+ "description": "get_port action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_port:queue_id",
+ "description": "get_port:queue_id action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_port:binding:vif_type",
+ "description": "get_port:binding:vif_type action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_port:binding:vif_details",
+ "description": "get_port:binding:vif_details action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_port:binding:host_id",
+ "description": "get_port:binding:host_id action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_port:binding:profile",
+ "description": "get_port:binding:profile action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_port",
+ "description": "update_port action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_port:device_owner",
+ "description": "update_port:device_owner action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_port:mac_address",
+ "description": "update_port:mac_address action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_port:fixed_ips:ip_address",
+ "description": "update_port:fixed_ips:ip_address action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_port:fixed_ips:subnet_id",
+ "description": "update_port:fixed_ips:subnet_id action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_port:port_security_enabled",
+ "description": "update_port:port_security_enabled action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_port:binding:host_id",
+ "description": "update_port:binding:host_id action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_port:binding:profile",
+ "description": "update_port:binding:profile action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_port:mac_learning_enabled",
+ "description": "update_port:mac_learning_enabled action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_port:allowed_address_pairs",
+ "description": "update_port:allowed_address_pairs action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_port:data_plane_status",
+ "description": "update_port:data_plane_status action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_port",
+ "description": "delete_port action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_router:ha",
+ "description": "get_router:ha action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_router",
+ "description": "create_router action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_router:external_gateway_info:enable_snat",
+ "description": "create_router:external_gateway_info:enable_snat action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_router:distributed",
+ "description": "create_router:distributed action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_router:ha",
+ "description": "create_router:ha action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_router",
+ "description": "get_router action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_router:distributed",
+ "description": "get_router:distributed action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_router",
+ "description": "update_router action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_router:external_gateway_info",
+ "description": "update_router:external_gateway_info action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_router:external_gateway_info:network_id",
+ "description": "update_router:external_gateway_info:network_id action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_router:external_gateway_info:enable_snat",
+ "description": "update_router:external_gateway_info:enable_snat action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_router:distributed",
+ "description": "update_router:distributed action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_router:ha",
+ "description": "update_router:ha action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_router",
+ "description": "delete_router action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_router_interface",
+ "description": "add_router_interface action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "remove_router_interface",
+ "description": "remove_router_interface action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_router:external_gateway_info:external_fixed_ips",
+ "description": "create_router:external_gateway_info:external_fixed_ips action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_router:external_gateway_info:external_fixed_ips",
+ "description": "update_router:external_gateway_info:external_fixed_ips action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_qos_queue",
+ "description": "create_qos_queue action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_qos_queue",
+ "description": "get_qos_queue action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_agent",
+ "description": "update_agent action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_agent",
+ "description": "delete_agent action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_agent",
+ "description": "get_agent action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_dhcp-network",
+ "description": "create_dhcp-network action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_dhcp-network",
+ "description": "delete_dhcp-network action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_dhcp-networks",
+ "description": "get_dhcp-networks action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_l3-router",
+ "description": "create_l3-router action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_l3-router",
+ "description": "delete_l3-router action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_l3-routers",
+ "description": "get_l3-routers action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_dhcp-agents",
+ "description": "get_dhcp-agents action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_l3-agents",
+ "description": "get_l3-agents action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_loadbalancer-agent",
+ "description": "get_loadbalancer-agent action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_loadbalancer-pools",
+ "description": "get_loadbalancer-pools action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_agent-loadbalancers",
+ "description": "get_agent-loadbalancers action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_loadbalancer-hosting-agent",
+ "description": "get_loadbalancer-hosting-agent action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_floatingip",
+ "description": "create_floatingip action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_floatingip:floating_ip_address",
+ "description": "create_floatingip:floating_ip_address action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_floatingip",
+ "description": "update_floatingip action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_floatingip",
+ "description": "delete_floatingip action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_floatingip",
+ "description": "get_floatingip action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_network_profile",
+ "description": "create_network_profile action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_network_profile",
+ "description": "update_network_profile action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_network_profile",
+ "description": "delete_network_profile action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_network_profiles",
+ "description": "get_network_profiles action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_network_profile",
+ "description": "get_network_profile action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_policy_profiles",
+ "description": "update_policy_profiles action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_policy_profiles",
+ "description": "get_policy_profiles action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_policy_profile",
+ "description": "get_policy_profile action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_metering_label",
+ "description": "create_metering_label action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_metering_label",
+ "description": "delete_metering_label action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metering_label",
+ "description": "get_metering_label action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_metering_label_rule",
+ "description": "create_metering_label_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_metering_label_rule",
+ "description": "delete_metering_label_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metering_label_rule",
+ "description": "get_metering_label_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_service_provider",
+ "description": "get_service_provider action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_lsn",
+ "description": "get_lsn action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_lsn",
+ "description": "create_lsn action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_flavor",
+ "description": "create_flavor action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_flavor",
+ "description": "update_flavor action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_flavor",
+ "description": "delete_flavor action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_flavors",
+ "description": "get_flavors action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_flavor",
+ "description": "get_flavor action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_service_profile",
+ "description": "create_service_profile action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_service_profile",
+ "description": "update_service_profile action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_service_profile",
+ "description": "delete_service_profile action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_service_profiles",
+ "description": "get_service_profiles action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_service_profile",
+ "description": "get_service_profile action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_policy",
+ "description": "get_policy action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_policy",
+ "description": "create_policy action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_policy",
+ "description": "update_policy action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_policy",
+ "description": "delete_policy action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_policy_bandwidth_limit_rule",
+ "description": "get_policy_bandwidth_limit_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_policy_bandwidth_limit_rule",
+ "description": "create_policy_bandwidth_limit_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_policy_bandwidth_limit_rule",
+ "description": "delete_policy_bandwidth_limit_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_policy_bandwidth_limit_rule",
+ "description": "update_policy_bandwidth_limit_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_policy_dscp_marking_rule",
+ "description": "get_policy_dscp_marking_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_policy_dscp_marking_rule",
+ "description": "create_policy_dscp_marking_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_policy_dscp_marking_rule",
+ "description": "delete_policy_dscp_marking_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_policy_dscp_marking_rule",
+ "description": "update_policy_dscp_marking_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_rule_type",
+ "description": "get_rule_type action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_policy_minimum_bandwidth_rule",
+ "description": "get_policy_minimum_bandwidth_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_policy_minimum_bandwidth_rule",
+ "description": "create_policy_minimum_bandwidth_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_policy_minimum_bandwidth_rule",
+ "description": "delete_policy_minimum_bandwidth_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_policy_minimum_bandwidth_rule",
+ "description": "update_policy_minimum_bandwidth_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "restrict_wildcard",
+ "description": "restrict_wildcard action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_rbac_policy",
+ "description": "create_rbac_policy action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_rbac_policy:target_tenant",
+ "description": "create_rbac_policy:target_tenant action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_rbac_policy",
+ "description": "update_rbac_policy action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_rbac_policy:target_tenant",
+ "description": "update_rbac_policy:target_tenant action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_rbac_policy",
+ "description": "get_rbac_policy action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_rbac_policy",
+ "description": "delete_rbac_policy action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_flavor_service_profile",
+ "description": "create_flavor_service_profile action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_flavor_service_profile",
+ "description": "delete_flavor_service_profile action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_flavor_service_profile",
+ "description": "get_flavor_service_profile action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_auto_allocated_topology",
+ "description": "get_auto_allocated_topology action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_trunk",
+ "description": "create_trunk action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_trunk",
+ "description": "get_trunk action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_trunk",
+ "description": "delete_trunk action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_subports",
+ "description": "get_subports action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_subports",
+ "description": "add_subports action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "remove_subports",
+ "description": "remove_subports action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_security_groups",
+ "description": "get_security_groups action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_security_group",
+ "description": "get_security_group action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_security_group",
+ "description": "create_security_group action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_security_group",
+ "description": "update_security_group action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_security_group",
+ "description": "delete_security_group action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_security_group_rules",
+ "description": "get_security_group_rules action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_security_group_rule",
+ "description": "get_security_group_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_security_group_rule",
+ "description": "create_security_group_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_security_group_rule",
+ "description": "delete_security_group_rule action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_loggable_resources",
+ "description": "get_loggable_resources action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "create_log",
+ "description": "create_log action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_log",
+ "description": "update_log action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_log",
+ "description": "delete_log action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_logs",
+ "description": "get_logs action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_log",
+ "description": "get_log action for neutron",
+ "extra": {
+ "component": "neutron"
+ },
+ "policies": []
+ },
+ {
+ "name": "cells_scheduler_filter:TargetCellFilter",
+ "description": "cells_scheduler_filter:TargetCellFilter action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:create",
+ "description": "compute:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:create:attach_network",
+ "description": "compute:create:attach_network action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:create:attach_volume",
+ "description": "compute:create:attach_volume action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:create:forced_host",
+ "description": "compute:create:forced_host action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get",
+ "description": "compute:get action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_all",
+ "description": "compute:get_all action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_all_tenants",
+ "description": "compute:get_all_tenants action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:update",
+ "description": "compute:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_instance_metadata",
+ "description": "compute:get_instance_metadata action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_all_instance_metadata",
+ "description": "compute:get_all_instance_metadata action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_all_instance_system_metadata",
+ "description": "compute:get_all_instance_system_metadata action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:update_instance_metadata",
+ "description": "compute:update_instance_metadata action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:delete_instance_metadata",
+ "description": "compute:delete_instance_metadata action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_instance_faults",
+ "description": "compute:get_instance_faults action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_diagnostics",
+ "description": "compute:get_diagnostics action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_instance_diagnostics",
+ "description": "compute:get_instance_diagnostics action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:start",
+ "description": "compute:start action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:stop",
+ "description": "compute:stop action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_lock",
+ "description": "compute:get_lock action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:lock",
+ "description": "compute:lock action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:unlock",
+ "description": "compute:unlock action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:unlock_override",
+ "description": "compute:unlock_override action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_vnc_console",
+ "description": "compute:get_vnc_console action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_spice_console",
+ "description": "compute:get_spice_console action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_rdp_console",
+ "description": "compute:get_rdp_console action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_serial_console",
+ "description": "compute:get_serial_console action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_mks_console",
+ "description": "compute:get_mks_console action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_console_output",
+ "description": "compute:get_console_output action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:reset_network",
+ "description": "compute:reset_network action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:inject_network_info",
+ "description": "compute:inject_network_info action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:add_fixed_ip",
+ "description": "compute:add_fixed_ip action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:remove_fixed_ip",
+ "description": "compute:remove_fixed_ip action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:attach_volume",
+ "description": "compute:attach_volume action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:detach_volume",
+ "description": "compute:detach_volume action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:swap_volume",
+ "description": "compute:swap_volume action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:attach_interface",
+ "description": "compute:attach_interface action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:detach_interface",
+ "description": "compute:detach_interface action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:set_admin_password",
+ "description": "compute:set_admin_password action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:rescue",
+ "description": "compute:rescue action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:unrescue",
+ "description": "compute:unrescue action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:suspend",
+ "description": "compute:suspend action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:resume",
+ "description": "compute:resume action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:pause",
+ "description": "compute:pause action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:unpause",
+ "description": "compute:unpause action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:shelve",
+ "description": "compute:shelve action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:shelve_offload",
+ "description": "compute:shelve_offload action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:unshelve",
+ "description": "compute:unshelve action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:snapshot",
+ "description": "compute:snapshot action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:snapshot_volume_backed",
+ "description": "compute:snapshot_volume_backed action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:backup",
+ "description": "compute:backup action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:resize",
+ "description": "compute:resize action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:confirm_resize",
+ "description": "compute:confirm_resize action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:revert_resize",
+ "description": "compute:revert_resize action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:rebuild",
+ "description": "compute:rebuild action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:reboot",
+ "description": "compute:reboot action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:delete",
+ "description": "compute:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:soft_delete",
+ "description": "compute:soft_delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:force_delete",
+ "description": "compute:force_delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:security_groups:add_to_instance",
+ "description": "compute:security_groups:add_to_instance action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:security_groups:remove_from_instance",
+ "description": "compute:security_groups:remove_from_instance action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:restore",
+ "description": "compute:restore action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:volume_snapshot_create",
+ "description": "compute:volume_snapshot_create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:volume_snapshot_delete",
+ "description": "compute:volume_snapshot_delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:accounts",
+ "description": "compute_extension:accounts action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions",
+ "description": "compute_extension:admin_actions action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:pause",
+ "description": "compute_extension:admin_actions:pause action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:unpause",
+ "description": "compute_extension:admin_actions:unpause action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:suspend",
+ "description": "compute_extension:admin_actions:suspend action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:resume",
+ "description": "compute_extension:admin_actions:resume action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:lock",
+ "description": "compute_extension:admin_actions:lock action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:unlock",
+ "description": "compute_extension:admin_actions:unlock action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:resetNetwork",
+ "description": "compute_extension:admin_actions:resetNetwork action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:injectNetworkInfo",
+ "description": "compute_extension:admin_actions:injectNetworkInfo action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:createBackup",
+ "description": "compute_extension:admin_actions:createBackup action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:migrateLive",
+ "description": "compute_extension:admin_actions:migrateLive action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:resetState",
+ "description": "compute_extension:admin_actions:resetState action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:migrate",
+ "description": "compute_extension:admin_actions:migrate action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:aggregates",
+ "description": "compute_extension:aggregates action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:agents",
+ "description": "compute_extension:agents action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:attach_interfaces",
+ "description": "compute_extension:attach_interfaces action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:baremetal_nodes",
+ "description": "compute_extension:baremetal_nodes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:cells",
+ "description": "compute_extension:cells action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:cells:create",
+ "description": "compute_extension:cells:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:cells:delete",
+ "description": "compute_extension:cells:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:cells:update",
+ "description": "compute_extension:cells:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:cells:sync_instances",
+ "description": "compute_extension:cells:sync_instances action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:certificates",
+ "description": "compute_extension:certificates action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:cloudpipe",
+ "description": "compute_extension:cloudpipe action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:cloudpipe_update",
+ "description": "compute_extension:cloudpipe_update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:config_drive",
+ "description": "compute_extension:config_drive action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:console_output",
+ "description": "compute_extension:console_output action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:consoles",
+ "description": "compute_extension:consoles action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:createserverext",
+ "description": "compute_extension:createserverext action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:deferred_delete",
+ "description": "compute_extension:deferred_delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:disk_config",
+ "description": "compute_extension:disk_config action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:evacuate",
+ "description": "compute_extension:evacuate action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:extended_server_attributes",
+ "description": "compute_extension:extended_server_attributes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:extended_status",
+ "description": "compute_extension:extended_status action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:extended_availability_zone",
+ "description": "compute_extension:extended_availability_zone action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:extended_ips",
+ "description": "compute_extension:extended_ips action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:extended_ips_mac",
+ "description": "compute_extension:extended_ips_mac action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:extended_vif_net",
+ "description": "compute_extension:extended_vif_net action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:extended_volumes",
+ "description": "compute_extension:extended_volumes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:fixed_ips",
+ "description": "compute_extension:fixed_ips action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavor_access",
+ "description": "compute_extension:flavor_access action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavor_access:addTenantAccess",
+ "description": "compute_extension:flavor_access:addTenantAccess action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavor_access:removeTenantAccess",
+ "description": "compute_extension:flavor_access:removeTenantAccess action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavor_disabled",
+ "description": "compute_extension:flavor_disabled action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavor_rxtx",
+ "description": "compute_extension:flavor_rxtx action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavor_swap",
+ "description": "compute_extension:flavor_swap action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavorextradata",
+ "description": "compute_extension:flavorextradata action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:index",
+ "description": "compute_extension:flavorextraspecs:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:show",
+ "description": "compute_extension:flavorextraspecs:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:create",
+ "description": "compute_extension:flavorextraspecs:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:update",
+ "description": "compute_extension:flavorextraspecs:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:delete",
+ "description": "compute_extension:flavorextraspecs:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavormanage",
+ "description": "compute_extension:flavormanage action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:floating_ip_dns",
+ "description": "compute_extension:floating_ip_dns action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:floating_ip_pools",
+ "description": "compute_extension:floating_ip_pools action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:floating_ips",
+ "description": "compute_extension:floating_ips action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:floating_ips_bulk",
+ "description": "compute_extension:floating_ips_bulk action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:fping",
+ "description": "compute_extension:fping action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:fping:all_tenants",
+ "description": "compute_extension:fping:all_tenants action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:hide_server_addresses",
+ "description": "compute_extension:hide_server_addresses action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:hosts",
+ "description": "compute_extension:hosts action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:hypervisors",
+ "description": "compute_extension:hypervisors action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:image_size",
+ "description": "compute_extension:image_size action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:instance_actions",
+ "description": "compute_extension:instance_actions action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:instance_actions:events",
+ "description": "compute_extension:instance_actions:events action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:instance_usage_audit_log",
+ "description": "compute_extension:instance_usage_audit_log action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:keypairs",
+ "description": "compute_extension:keypairs action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:keypairs:index",
+ "description": "compute_extension:keypairs:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:keypairs:show",
+ "description": "compute_extension:keypairs:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:keypairs:create",
+ "description": "compute_extension:keypairs:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:keypairs:delete",
+ "description": "compute_extension:keypairs:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:multinic",
+ "description": "compute_extension:multinic action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:networks",
+ "description": "compute_extension:networks action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:networks:view",
+ "description": "compute_extension:networks:view action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:networks_associate",
+ "description": "compute_extension:networks_associate action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:os-tenant-networks",
+ "description": "compute_extension:os-tenant-networks action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:quotas:show",
+ "description": "compute_extension:quotas:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:quotas:update",
+ "description": "compute_extension:quotas:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:quotas:delete",
+ "description": "compute_extension:quotas:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:quota_classes",
+ "description": "compute_extension:quota_classes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:rescue",
+ "description": "compute_extension:rescue action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:security_group_default_rules",
+ "description": "compute_extension:security_group_default_rules action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:security_groups",
+ "description": "compute_extension:security_groups action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:server_diagnostics",
+ "description": "compute_extension:server_diagnostics action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:server_groups",
+ "description": "compute_extension:server_groups action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:server_password",
+ "description": "compute_extension:server_password action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:server_usage",
+ "description": "compute_extension:server_usage action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:services",
+ "description": "compute_extension:services action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:shelve",
+ "description": "compute_extension:shelve action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:shelveOffload",
+ "description": "compute_extension:shelveOffload action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:simple_tenant_usage:show",
+ "description": "compute_extension:simple_tenant_usage:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:simple_tenant_usage:list",
+ "description": "compute_extension:simple_tenant_usage:list action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:unshelve",
+ "description": "compute_extension:unshelve action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:users",
+ "description": "compute_extension:users action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:virtual_interfaces",
+ "description": "compute_extension:virtual_interfaces action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:virtual_storage_arrays",
+ "description": "compute_extension:virtual_storage_arrays action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:volumes",
+ "description": "compute_extension:volumes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:volume_attachments:index",
+ "description": "compute_extension:volume_attachments:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:volume_attachments:show",
+ "description": "compute_extension:volume_attachments:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:volume_attachments:create",
+ "description": "compute_extension:volume_attachments:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:volume_attachments:update",
+ "description": "compute_extension:volume_attachments:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:volume_attachments:delete",
+ "description": "compute_extension:volume_attachments:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:volumetypes",
+ "description": "compute_extension:volumetypes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:availability_zone:list",
+ "description": "compute_extension:availability_zone:list action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:availability_zone:detail",
+ "description": "compute_extension:availability_zone:detail action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:used_limits_for_admin",
+ "description": "compute_extension:used_limits_for_admin action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:migrations:index",
+ "description": "compute_extension:migrations:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:os-assisted-volume-snapshots:create",
+ "description": "compute_extension:os-assisted-volume-snapshots:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:os-assisted-volume-snapshots:delete",
+ "description": "compute_extension:os-assisted-volume-snapshots:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:console_auth_tokens",
+ "description": "compute_extension:console_auth_tokens action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:os-server-external-events:create",
+ "description": "compute_extension:os-server-external-events:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_all",
+ "description": "network:get_all action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get",
+ "description": "network:get action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:create",
+ "description": "network:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:delete",
+ "description": "network:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:associate",
+ "description": "network:associate action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:disassociate",
+ "description": "network:disassociate action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_vifs_by_instance",
+ "description": "network:get_vifs_by_instance action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:allocate_for_instance",
+ "description": "network:allocate_for_instance action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:deallocate_for_instance",
+ "description": "network:deallocate_for_instance action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:validate_networks",
+ "description": "network:validate_networks action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_instance_uuids_by_ip_filter",
+ "description": "network:get_instance_uuids_by_ip_filter action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_instance_id_by_floating_address",
+ "description": "network:get_instance_id_by_floating_address action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:setup_networks_on_host",
+ "description": "network:setup_networks_on_host action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_backdoor_port",
+ "description": "network:get_backdoor_port action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_floating_ip",
+ "description": "network:get_floating_ip action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_floating_ip_pools",
+ "description": "network:get_floating_ip_pools action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_floating_ip_by_address",
+ "description": "network:get_floating_ip_by_address action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_floating_ips_by_project",
+ "description": "network:get_floating_ips_by_project action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_floating_ips_by_fixed_address",
+ "description": "network:get_floating_ips_by_fixed_address action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:allocate_floating_ip",
+ "description": "network:allocate_floating_ip action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:associate_floating_ip",
+ "description": "network:associate_floating_ip action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:disassociate_floating_ip",
+ "description": "network:disassociate_floating_ip action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:release_floating_ip",
+ "description": "network:release_floating_ip action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:migrate_instance_start",
+ "description": "network:migrate_instance_start action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:migrate_instance_finish",
+ "description": "network:migrate_instance_finish action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_fixed_ip",
+ "description": "network:get_fixed_ip action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_fixed_ip_by_address",
+ "description": "network:get_fixed_ip_by_address action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:add_fixed_ip_to_instance",
+ "description": "network:add_fixed_ip_to_instance action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:remove_fixed_ip_from_instance",
+ "description": "network:remove_fixed_ip_from_instance action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:add_network_to_project",
+ "description": "network:add_network_to_project action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_instance_nw_info",
+ "description": "network:get_instance_nw_info action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_dns_domains",
+ "description": "network:get_dns_domains action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:add_dns_entry",
+ "description": "network:add_dns_entry action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:modify_dns_entry",
+ "description": "network:modify_dns_entry action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:delete_dns_entry",
+ "description": "network:delete_dns_entry action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_dns_entries_by_address",
+ "description": "network:get_dns_entries_by_address action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_dns_entries_by_name",
+ "description": "network:get_dns_entries_by_name action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:create_private_dns_domain",
+ "description": "network:create_private_dns_domain action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:create_public_dns_domain",
+ "description": "network:create_public_dns_domain action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:delete_dns_domain",
+ "description": "network:delete_dns_domain action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:attach_external_network",
+ "description": "network:attach_external_network action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_vif_by_mac_address",
+ "description": "network:get_vif_by_mac_address action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:detail:get_all_tenants",
+ "description": "os_compute_api:servers:detail:get_all_tenants action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:index:get_all_tenants",
+ "description": "os_compute_api:servers:index:get_all_tenants action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:confirm_resize",
+ "description": "os_compute_api:servers:confirm_resize action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:create",
+ "description": "os_compute_api:servers:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:create:attach_network",
+ "description": "os_compute_api:servers:create:attach_network action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:create:attach_volume",
+ "description": "os_compute_api:servers:create:attach_volume action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:create:forced_host",
+ "description": "os_compute_api:servers:create:forced_host action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:delete",
+ "description": "os_compute_api:servers:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:update",
+ "description": "os_compute_api:servers:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:detail",
+ "description": "os_compute_api:servers:detail action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:index",
+ "description": "os_compute_api:servers:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:reboot",
+ "description": "os_compute_api:servers:reboot action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:rebuild",
+ "description": "os_compute_api:servers:rebuild action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:resize",
+ "description": "os_compute_api:servers:resize action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:revert_resize",
+ "description": "os_compute_api:servers:revert_resize action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:show",
+ "description": "os_compute_api:servers:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:create_image",
+ "description": "os_compute_api:servers:create_image action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:create_image:allow_volume_backed",
+ "description": "os_compute_api:servers:create_image:allow_volume_backed action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:start",
+ "description": "os_compute_api:servers:start action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:stop",
+ "description": "os_compute_api:servers:stop action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-access-ips:discoverable",
+ "description": "os_compute_api:os-access-ips:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-access-ips",
+ "description": "os_compute_api:os-access-ips action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-admin-actions",
+ "description": "os_compute_api:os-admin-actions action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-admin-actions:discoverable",
+ "description": "os_compute_api:os-admin-actions:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-admin-actions:reset_network",
+ "description": "os_compute_api:os-admin-actions:reset_network action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-admin-actions:inject_network_info",
+ "description": "os_compute_api:os-admin-actions:inject_network_info action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-admin-actions:reset_state",
+ "description": "os_compute_api:os-admin-actions:reset_state action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-admin-password",
+ "description": "os_compute_api:os-admin-password action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-admin-password:discoverable",
+ "description": "os_compute_api:os-admin-password:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:discoverable",
+ "description": "os_compute_api:os-aggregates:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:index",
+ "description": "os_compute_api:os-aggregates:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:create",
+ "description": "os_compute_api:os-aggregates:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:show",
+ "description": "os_compute_api:os-aggregates:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:update",
+ "description": "os_compute_api:os-aggregates:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:delete",
+ "description": "os_compute_api:os-aggregates:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:add_host",
+ "description": "os_compute_api:os-aggregates:add_host action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:remove_host",
+ "description": "os_compute_api:os-aggregates:remove_host action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:set_metadata",
+ "description": "os_compute_api:os-aggregates:set_metadata action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-agents",
+ "description": "os_compute_api:os-agents action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-agents:discoverable",
+ "description": "os_compute_api:os-agents:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-attach-interfaces",
+ "description": "os_compute_api:os-attach-interfaces action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-attach-interfaces:discoverable",
+ "description": "os_compute_api:os-attach-interfaces:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-baremetal-nodes",
+ "description": "os_compute_api:os-baremetal-nodes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-baremetal-nodes:discoverable",
+ "description": "os_compute_api:os-baremetal-nodes:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-block-device-mapping-v1:discoverable",
+ "description": "os_compute_api:os-block-device-mapping-v1:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-cells",
+ "description": "os_compute_api:os-cells action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-cells:create",
+ "description": "os_compute_api:os-cells:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-cells:delete",
+ "description": "os_compute_api:os-cells:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-cells:update",
+ "description": "os_compute_api:os-cells:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-cells:sync_instances",
+ "description": "os_compute_api:os-cells:sync_instances action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-cells:discoverable",
+ "description": "os_compute_api:os-cells:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-certificates:create",
+ "description": "os_compute_api:os-certificates:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-certificates:show",
+ "description": "os_compute_api:os-certificates:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-certificates:discoverable",
+ "description": "os_compute_api:os-certificates:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-cloudpipe",
+ "description": "os_compute_api:os-cloudpipe action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-cloudpipe:discoverable",
+ "description": "os_compute_api:os-cloudpipe:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-config-drive",
+ "description": "os_compute_api:os-config-drive action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-consoles:discoverable",
+ "description": "os_compute_api:os-consoles:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-consoles:create",
+ "description": "os_compute_api:os-consoles:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-consoles:delete",
+ "description": "os_compute_api:os-consoles:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-consoles:index",
+ "description": "os_compute_api:os-consoles:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-consoles:show",
+ "description": "os_compute_api:os-consoles:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-console-output:discoverable",
+ "description": "os_compute_api:os-console-output:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-console-output",
+ "description": "os_compute_api:os-console-output action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-remote-consoles",
+ "description": "os_compute_api:os-remote-consoles action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-remote-consoles:discoverable",
+ "description": "os_compute_api:os-remote-consoles:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-create-backup:discoverable",
+ "description": "os_compute_api:os-create-backup:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-create-backup",
+ "description": "os_compute_api:os-create-backup action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-deferred-delete",
+ "description": "os_compute_api:os-deferred-delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-deferred-delete:discoverable",
+ "description": "os_compute_api:os-deferred-delete:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-disk-config",
+ "description": "os_compute_api:os-disk-config action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-disk-config:discoverable",
+ "description": "os_compute_api:os-disk-config:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-evacuate",
+ "description": "os_compute_api:os-evacuate action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-evacuate:discoverable",
+ "description": "os_compute_api:os-evacuate:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-extended-server-attributes",
+ "description": "os_compute_api:os-extended-server-attributes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-extended-server-attributes:discoverable",
+ "description": "os_compute_api:os-extended-server-attributes:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-extended-status",
+ "description": "os_compute_api:os-extended-status action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-extended-status:discoverable",
+ "description": "os_compute_api:os-extended-status:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-extended-availability-zone",
+ "description": "os_compute_api:os-extended-availability-zone action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-extended-availability-zone:discoverable",
+ "description": "os_compute_api:os-extended-availability-zone:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:extensions",
+ "description": "os_compute_api:extensions action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:extension_info:discoverable",
+ "description": "os_compute_api:extension_info:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-extended-volumes",
+ "description": "os_compute_api:os-extended-volumes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-extended-volumes:discoverable",
+ "description": "os_compute_api:os-extended-volumes:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-fixed-ips",
+ "description": "os_compute_api:os-fixed-ips action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-fixed-ips:discoverable",
+ "description": "os_compute_api:os-fixed-ips:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-access",
+ "description": "os_compute_api:os-flavor-access action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-access:discoverable",
+ "description": "os_compute_api:os-flavor-access:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-access:remove_tenant_access",
+ "description": "os_compute_api:os-flavor-access:remove_tenant_access action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-access:add_tenant_access",
+ "description": "os_compute_api:os-flavor-access:add_tenant_access action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-rxtx",
+ "description": "os_compute_api:os-flavor-rxtx action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-rxtx:discoverable",
+ "description": "os_compute_api:os-flavor-rxtx:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:flavors:discoverable",
+ "description": "os_compute_api:flavors:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:discoverable",
+ "description": "os_compute_api:os-flavor-extra-specs:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:index",
+ "description": "os_compute_api:os-flavor-extra-specs:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:show",
+ "description": "os_compute_api:os-flavor-extra-specs:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:create",
+ "description": "os_compute_api:os-flavor-extra-specs:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:update",
+ "description": "os_compute_api:os-flavor-extra-specs:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:delete",
+ "description": "os_compute_api:os-flavor-extra-specs:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-manage:discoverable",
+ "description": "os_compute_api:os-flavor-manage:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-manage",
+ "description": "os_compute_api:os-flavor-manage action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-dns",
+ "description": "os_compute_api:os-floating-ip-dns action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-dns:discoverable",
+ "description": "os_compute_api:os-floating-ip-dns:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-dns:domain:update",
+ "description": "os_compute_api:os-floating-ip-dns:domain:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-dns:domain:delete",
+ "description": "os_compute_api:os-floating-ip-dns:domain:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-pools",
+ "description": "os_compute_api:os-floating-ip-pools action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-pools:discoverable",
+ "description": "os_compute_api:os-floating-ip-pools:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ips",
+ "description": "os_compute_api:os-floating-ips action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ips:discoverable",
+ "description": "os_compute_api:os-floating-ips:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ips-bulk",
+ "description": "os_compute_api:os-floating-ips-bulk action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ips-bulk:discoverable",
+ "description": "os_compute_api:os-floating-ips-bulk:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-fping",
+ "description": "os_compute_api:os-fping action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-fping:discoverable",
+ "description": "os_compute_api:os-fping:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-fping:all_tenants",
+ "description": "os_compute_api:os-fping:all_tenants action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-hide-server-addresses",
+ "description": "os_compute_api:os-hide-server-addresses action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-hide-server-addresses:discoverable",
+ "description": "os_compute_api:os-hide-server-addresses:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-hosts",
+ "description": "os_compute_api:os-hosts action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-hosts:discoverable",
+ "description": "os_compute_api:os-hosts:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-hypervisors",
+ "description": "os_compute_api:os-hypervisors action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-hypervisors:discoverable",
+ "description": "os_compute_api:os-hypervisors:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:images:discoverable",
+ "description": "os_compute_api:images:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:image-size",
+ "description": "os_compute_api:image-size action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:image-size:discoverable",
+ "description": "os_compute_api:image-size:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-instance-actions",
+ "description": "os_compute_api:os-instance-actions action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-instance-actions:discoverable",
+ "description": "os_compute_api:os-instance-actions:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-instance-actions:events",
+ "description": "os_compute_api:os-instance-actions:events action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-instance-usage-audit-log",
+ "description": "os_compute_api:os-instance-usage-audit-log action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-instance-usage-audit-log:discoverable",
+ "description": "os_compute_api:os-instance-usage-audit-log:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:ips:discoverable",
+ "description": "os_compute_api:ips:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:ips:index",
+ "description": "os_compute_api:ips:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:ips:show",
+ "description": "os_compute_api:ips:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-keypairs:discoverable",
+ "description": "os_compute_api:os-keypairs:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-keypairs",
+ "description": "os_compute_api:os-keypairs action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-keypairs:index",
+ "description": "os_compute_api:os-keypairs:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-keypairs:show",
+ "description": "os_compute_api:os-keypairs:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-keypairs:create",
+ "description": "os_compute_api:os-keypairs:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-keypairs:delete",
+ "description": "os_compute_api:os-keypairs:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:limits:discoverable",
+ "description": "os_compute_api:limits:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:limits",
+ "description": "os_compute_api:limits action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-lock-server:discoverable",
+ "description": "os_compute_api:os-lock-server:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-lock-server:lock",
+ "description": "os_compute_api:os-lock-server:lock action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-lock-server:unlock",
+ "description": "os_compute_api:os-lock-server:unlock action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-lock-server:unlock:unlock_override",
+ "description": "os_compute_api:os-lock-server:unlock:unlock_override action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-migrate-server:discoverable",
+ "description": "os_compute_api:os-migrate-server:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-migrate-server:migrate",
+ "description": "os_compute_api:os-migrate-server:migrate action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-migrate-server:migrate_live",
+ "description": "os_compute_api:os-migrate-server:migrate_live action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-multinic",
+ "description": "os_compute_api:os-multinic action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-multinic:discoverable",
+ "description": "os_compute_api:os-multinic:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-networks",
+ "description": "os_compute_api:os-networks action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-networks:view",
+ "description": "os_compute_api:os-networks:view action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-networks:discoverable",
+ "description": "os_compute_api:os-networks:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-networks-associate",
+ "description": "os_compute_api:os-networks-associate action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-networks-associate:discoverable",
+ "description": "os_compute_api:os-networks-associate:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-pause-server:discoverable",
+ "description": "os_compute_api:os-pause-server:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-pause-server:pause",
+ "description": "os_compute_api:os-pause-server:pause action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-pause-server:unpause",
+ "description": "os_compute_api:os-pause-server:unpause action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-pci:pci_servers",
+ "description": "os_compute_api:os-pci:pci_servers action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-pci:discoverable",
+ "description": "os_compute_api:os-pci:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-pci:index",
+ "description": "os_compute_api:os-pci:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-pci:detail",
+ "description": "os_compute_api:os-pci:detail action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-pci:show",
+ "description": "os_compute_api:os-pci:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-personality:discoverable",
+ "description": "os_compute_api:os-personality:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-preserve-ephemeral-rebuild:discoverable",
+ "description": "os_compute_api:os-preserve-ephemeral-rebuild:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:discoverable",
+ "description": "os_compute_api:os-quota-sets:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:show",
+ "description": "os_compute_api:os-quota-sets:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:defaults",
+ "description": "os_compute_api:os-quota-sets:defaults action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:update",
+ "description": "os_compute_api:os-quota-sets:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:delete",
+ "description": "os_compute_api:os-quota-sets:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:detail",
+ "description": "os_compute_api:os-quota-sets:detail action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-class-sets:update",
+ "description": "os_compute_api:os-quota-class-sets:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-class-sets:show",
+ "description": "os_compute_api:os-quota-class-sets:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-class-sets:discoverable",
+ "description": "os_compute_api:os-quota-class-sets:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-rescue",
+ "description": "os_compute_api:os-rescue action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-rescue:discoverable",
+ "description": "os_compute_api:os-rescue:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-scheduler-hints:discoverable",
+ "description": "os_compute_api:os-scheduler-hints:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-security-group-default-rules:discoverable",
+ "description": "os_compute_api:os-security-group-default-rules:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-security-group-default-rules",
+ "description": "os_compute_api:os-security-group-default-rules action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-security-groups",
+ "description": "os_compute_api:os-security-groups action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-security-groups:discoverable",
+ "description": "os_compute_api:os-security-groups:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-diagnostics",
+ "description": "os_compute_api:os-server-diagnostics action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-diagnostics:discoverable",
+ "description": "os_compute_api:os-server-diagnostics:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-password",
+ "description": "os_compute_api:os-server-password action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-password:discoverable",
+ "description": "os_compute_api:os-server-password:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-usage",
+ "description": "os_compute_api:os-server-usage action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-usage:discoverable",
+ "description": "os_compute_api:os-server-usage:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-groups",
+ "description": "os_compute_api:os-server-groups action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-groups:discoverable",
+ "description": "os_compute_api:os-server-groups:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-services",
+ "description": "os_compute_api:os-services action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-services:discoverable",
+ "description": "os_compute_api:os-services:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:server-metadata:discoverable",
+ "description": "os_compute_api:server-metadata:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:server-metadata:index",
+ "description": "os_compute_api:server-metadata:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:server-metadata:show",
+ "description": "os_compute_api:server-metadata:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:server-metadata:delete",
+ "description": "os_compute_api:server-metadata:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:server-metadata:create",
+ "description": "os_compute_api:server-metadata:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:server-metadata:update",
+ "description": "os_compute_api:server-metadata:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:server-metadata:update_all",
+ "description": "os_compute_api:server-metadata:update_all action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:discoverable",
+ "description": "os_compute_api:servers:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-shelve:shelve",
+ "description": "os_compute_api:os-shelve:shelve action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-shelve:shelve:discoverable",
+ "description": "os_compute_api:os-shelve:shelve:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-shelve:shelve_offload",
+ "description": "os_compute_api:os-shelve:shelve_offload action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:discoverable",
+ "description": "os_compute_api:os-simple-tenant-usage:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:show",
+ "description": "os_compute_api:os-simple-tenant-usage:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:list",
+ "description": "os_compute_api:os-simple-tenant-usage:list action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-suspend-server:discoverable",
+ "description": "os_compute_api:os-suspend-server:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-suspend-server:suspend",
+ "description": "os_compute_api:os-suspend-server:suspend action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-suspend-server:resume",
+ "description": "os_compute_api:os-suspend-server:resume action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-tenant-networks",
+ "description": "os_compute_api:os-tenant-networks action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-tenant-networks:discoverable",
+ "description": "os_compute_api:os-tenant-networks:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-shelve:unshelve",
+ "description": "os_compute_api:os-shelve:unshelve action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-user-data:discoverable",
+ "description": "os_compute_api:os-user-data:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-virtual-interfaces",
+ "description": "os_compute_api:os-virtual-interfaces action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-virtual-interfaces:discoverable",
+ "description": "os_compute_api:os-virtual-interfaces:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-volumes",
+ "description": "os_compute_api:os-volumes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-volumes:discoverable",
+ "description": "os_compute_api:os-volumes:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:index",
+ "description": "os_compute_api:os-volumes-attachments:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:show",
+ "description": "os_compute_api:os-volumes-attachments:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:create",
+ "description": "os_compute_api:os-volumes-attachments:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:update",
+ "description": "os_compute_api:os-volumes-attachments:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:delete",
+ "description": "os_compute_api:os-volumes-attachments:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:discoverable",
+ "description": "os_compute_api:os-volumes-attachments:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-availability-zone:list",
+ "description": "os_compute_api:os-availability-zone:list action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-availability-zone:discoverable",
+ "description": "os_compute_api:os-availability-zone:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-availability-zone:detail",
+ "description": "os_compute_api:os-availability-zone:detail action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-used-limits",
+ "description": "os_compute_api:os-used-limits action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-used-limits:discoverable",
+ "description": "os_compute_api:os-used-limits:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-migrations:index",
+ "description": "os_compute_api:os-migrations:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-migrations:discoverable",
+ "description": "os_compute_api:os-migrations:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:create",
+ "description": "os_compute_api:os-assisted-volume-snapshots:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:delete",
+ "description": "os_compute_api:os-assisted-volume-snapshots:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:discoverable",
+ "description": "os_compute_api:os-assisted-volume-snapshots:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-console-auth-tokens",
+ "description": "os_compute_api:os-console-auth-tokens action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-external-events:create",
+ "description": "os_compute_api:os-server-external-events:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "action_id",
+ "description": ""
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:create",
+ "description": "volume:create action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:delete",
+ "description": "volume:delete action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:get",
+ "description": "volume:get action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:get_all",
+ "description": "volume:get_all action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:get_volume_metadata",
+ "description": "volume:get_volume_metadata action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:delete_volume_metadata",
+ "description": "volume:delete_volume_metadata action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:update_volume_metadata",
+ "description": "volume:update_volume_metadata action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:get_volume_admin_metadata",
+ "description": "volume:get_volume_admin_metadata action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:update_volume_admin_metadata",
+ "description": "volume:update_volume_admin_metadata action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:get_snapshot",
+ "description": "volume:get_snapshot action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:get_all_snapshots",
+ "description": "volume:get_all_snapshots action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:create_snapshot",
+ "description": "volume:create_snapshot action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:delete_snapshot",
+ "description": "volume:delete_snapshot action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:update_snapshot",
+ "description": "volume:update_snapshot action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:extend",
+ "description": "volume:extend action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:update_readonly_flag",
+ "description": "volume:update_readonly_flag action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:retype",
+ "description": "volume:retype action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:update",
+ "description": "volume:update action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:types_manage",
+ "description": "volume_extension:types_manage action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:types_extra_specs",
+ "description": "volume_extension:types_extra_specs action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:access_types_qos_specs_id",
+ "description": "volume_extension:access_types_qos_specs_id action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:access_types_extra_specs",
+ "description": "volume_extension:access_types_extra_specs action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_type_access",
+ "description": "volume_extension:volume_type_access action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_type_access:addProjectAccess",
+ "description": "volume_extension:volume_type_access:addProjectAccess action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_type_access:removeProjectAccess",
+ "description": "volume_extension:volume_type_access:removeProjectAccess action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_type_encryption",
+ "description": "volume_extension:volume_type_encryption action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_encryption_metadata",
+ "description": "volume_extension:volume_encryption_metadata action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:extended_snapshot_attributes",
+ "description": "volume_extension:extended_snapshot_attributes action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_image_metadata",
+ "description": "volume_extension:volume_image_metadata action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:quotas:show",
+ "description": "volume_extension:quotas:show action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:quotas:update",
+ "description": "volume_extension:quotas:update action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:quotas:delete",
+ "description": "volume_extension:quotas:delete action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:quota_classes",
+ "description": "volume_extension:quota_classes action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:quota_classes:validate_setup_for_nested_quota_use",
+ "description": "volume_extension:quota_classes:validate_setup_for_nested_quota_use action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:reset_status",
+ "description": "volume_extension:volume_admin_actions:reset_status action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:snapshot_admin_actions:reset_status",
+ "description": "volume_extension:snapshot_admin_actions:reset_status action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:backup_admin_actions:reset_status",
+ "description": "volume_extension:backup_admin_actions:reset_status action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:force_delete",
+ "description": "volume_extension:volume_admin_actions:force_delete action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:force_detach",
+ "description": "volume_extension:volume_admin_actions:force_detach action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:snapshot_admin_actions:force_delete",
+ "description": "volume_extension:snapshot_admin_actions:force_delete action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:backup_admin_actions:force_delete",
+ "description": "volume_extension:backup_admin_actions:force_delete action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:migrate_volume",
+ "description": "volume_extension:volume_admin_actions:migrate_volume action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:migrate_volume_completion",
+ "description": "volume_extension:volume_admin_actions:migrate_volume_completion action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_host_attribute",
+ "description": "volume_extension:volume_host_attribute action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_tenant_attribute",
+ "description": "volume_extension:volume_tenant_attribute action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_mig_status_attribute",
+ "description": "volume_extension:volume_mig_status_attribute action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:hosts",
+ "description": "volume_extension:hosts action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:services:index",
+ "description": "volume_extension:services:index action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:services:update",
+ "description": "volume_extension:services:update action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_manage",
+ "description": "volume_extension:volume_manage action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_unmanage",
+ "description": "volume_extension:volume_unmanage action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:capabilities",
+ "description": "volume_extension:capabilities action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:create_transfer",
+ "description": "volume:create_transfer action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:accept_transfer",
+ "description": "volume:accept_transfer action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:delete_transfer",
+ "description": "volume:delete_transfer action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:get_all_transfers",
+ "description": "volume:get_all_transfers action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:replication:promote",
+ "description": "volume_extension:replication:promote action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:replication:reenable",
+ "description": "volume_extension:replication:reenable action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:enable_replication",
+ "description": "volume:enable_replication action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:disable_replication",
+ "description": "volume:disable_replication action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:failover_replication",
+ "description": "volume:failover_replication action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:list_replication_targets",
+ "description": "volume:list_replication_targets action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "backup:create",
+ "description": "backup:create action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "backup:delete",
+ "description": "backup:delete action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "backup:get",
+ "description": "backup:get action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "backup:get_all",
+ "description": "backup:get_all action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "backup:restore",
+ "description": "backup:restore action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "backup:backup-import",
+ "description": "backup:backup-import action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "backup:backup-export",
+ "description": "backup:backup-export action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "snapshot_extension:snapshot_actions:update_snapshot_status",
+ "description": "snapshot_extension:snapshot_actions:update_snapshot_status action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "snapshot_extension:snapshot_manage",
+ "description": "snapshot_extension:snapshot_manage action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "snapshot_extension:snapshot_unmanage",
+ "description": "snapshot_extension:snapshot_unmanage action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:create",
+ "description": "consistencygroup:create action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:delete",
+ "description": "consistencygroup:delete action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:update",
+ "description": "consistencygroup:update action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:get",
+ "description": "consistencygroup:get action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:get_all",
+ "description": "consistencygroup:get_all action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:create_cgsnapshot",
+ "description": "consistencygroup:create_cgsnapshot action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:delete_cgsnapshot",
+ "description": "consistencygroup:delete_cgsnapshot action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:get_cgsnapshot",
+ "description": "consistencygroup:get_cgsnapshot action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:get_all_cgsnapshots",
+ "description": "consistencygroup:get_all_cgsnapshots action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "scheduler_extension:scheduler_stats:get_pools",
+ "description": "scheduler_extension:scheduler_stats:get_pools action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_image",
+ "description": "add_image action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_image",
+ "description": "delete_image action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_image",
+ "description": "get_image action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_images",
+ "description": "get_images action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "modify_image",
+ "description": "modify_image action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "publicize_image",
+ "description": "publicize_image action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "communitize_image",
+ "description": "communitize_image action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "copy_from",
+ "description": "copy_from action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "download_image",
+ "description": "download_image action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "upload_image",
+ "description": "upload_image action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_image_location",
+ "description": "delete_image_location action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_image_location",
+ "description": "get_image_location action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "set_image_location",
+ "description": "set_image_location action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_member",
+ "description": "add_member action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_member",
+ "description": "delete_member action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_member",
+ "description": "get_member action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_members",
+ "description": "get_members action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "modify_member",
+ "description": "modify_member action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "manage_image_cache",
+ "description": "manage_image_cache action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_task",
+ "description": "get_task action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_tasks",
+ "description": "get_tasks action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_task",
+ "description": "add_task action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "modify_task",
+ "description": "modify_task action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "tasks_api_access",
+ "description": "tasks_api_access action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "deactivate",
+ "description": "deactivate action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "reactivate",
+ "description": "reactivate action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_namespace",
+ "description": "get_metadef_namespace action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_namespaces",
+ "description": "get_metadef_namespaces action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "modify_metadef_namespace",
+ "description": "modify_metadef_namespace action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_metadef_namespace",
+ "description": "add_metadef_namespace action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_object",
+ "description": "get_metadef_object action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_objects",
+ "description": "get_metadef_objects action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "modify_metadef_object",
+ "description": "modify_metadef_object action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_metadef_object",
+ "description": "add_metadef_object action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "list_metadef_resource_types",
+ "description": "list_metadef_resource_types action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_resource_type",
+ "description": "get_metadef_resource_type action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_metadef_resource_type_association",
+ "description": "add_metadef_resource_type_association action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_property",
+ "description": "get_metadef_property action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_properties",
+ "description": "get_metadef_properties action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "modify_metadef_property",
+ "description": "modify_metadef_property action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_metadef_property",
+ "description": "add_metadef_property action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_tag",
+ "description": "get_metadef_tag action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_tags",
+ "description": "get_metadef_tags action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "modify_metadef_tag",
+ "description": "modify_metadef_tag action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_metadef_tag",
+ "description": "add_metadef_tag action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_metadef_tags",
+ "description": "add_metadef_tags action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_region",
+ "description": "identity:get_region action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_regions",
+ "description": "identity:list_regions action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_region",
+ "description": "identity:create_region action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_region",
+ "description": "identity:update_region action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_region",
+ "description": "identity:delete_region action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_service",
+ "description": "identity:get_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_services",
+ "description": "identity:list_services action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_service",
+ "description": "identity:create_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_service",
+ "description": "identity:update_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_service",
+ "description": "identity:delete_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_endpoint",
+ "description": "identity:get_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_endpoints",
+ "description": "identity:list_endpoints action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_endpoint",
+ "description": "identity:create_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_endpoint",
+ "description": "identity:update_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_endpoint",
+ "description": "identity:delete_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_registered_limit",
+ "description": "identity:get_registered_limit action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_registered_limits",
+ "description": "identity:list_registered_limits action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_registered_limits",
+ "description": "identity:create_registered_limits action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_registered_limits",
+ "description": "identity:update_registered_limits action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_registered_limit",
+ "description": "identity:delete_registered_limit action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_limit",
+ "description": "identity:get_limit action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_limits",
+ "description": "identity:list_limits action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_limits",
+ "description": "identity:create_limits action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_limits",
+ "description": "identity:update_limits action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_limit",
+ "description": "identity:delete_limit action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_domain",
+ "description": "identity:get_domain action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_domains",
+ "description": "identity:list_domains action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_domain",
+ "description": "identity:create_domain action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_domain",
+ "description": "identity:update_domain action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_domain",
+ "description": "identity:delete_domain action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_and_matching_target_project_domain_id",
+ "description": "admin_and_matching_target_project_domain_id action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_and_matching_project_domain_id",
+ "description": "admin_and_matching_project_domain_id action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_project",
+ "description": "identity:get_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_projects",
+ "description": "identity:list_projects action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_user_projects",
+ "description": "identity:list_user_projects action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_project",
+ "description": "identity:create_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_project",
+ "description": "identity:update_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_project",
+ "description": "identity:delete_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_project_tag",
+ "description": "identity:create_project_tag action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_project_tag",
+ "description": "identity:delete_project_tag action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_project_tag",
+ "description": "identity:get_project_tag action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_project_tags",
+ "description": "identity:list_project_tags action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_project_tags",
+ "description": "identity:delete_project_tags action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_project_tags",
+ "description": "identity:update_project_tags action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_and_matching_target_user_domain_id",
+ "description": "admin_and_matching_target_user_domain_id action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_and_matching_user_domain_id",
+ "description": "admin_and_matching_user_domain_id action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_user",
+ "description": "identity:get_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_users",
+ "description": "identity:list_users action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_user",
+ "description": "identity:create_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_user",
+ "description": "identity:update_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_user",
+ "description": "identity:delete_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_and_matching_target_group_domain_id",
+ "description": "admin_and_matching_target_group_domain_id action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_and_matching_group_domain_id",
+ "description": "admin_and_matching_group_domain_id action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_group",
+ "description": "identity:get_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_groups",
+ "description": "identity:list_groups action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_groups_for_user",
+ "description": "identity:list_groups_for_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_group",
+ "description": "identity:create_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_group",
+ "description": "identity:update_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_group",
+ "description": "identity:delete_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_users_in_group",
+ "description": "identity:list_users_in_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:remove_user_from_group",
+ "description": "identity:remove_user_from_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_user_in_group",
+ "description": "identity:check_user_in_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:add_user_to_group",
+ "description": "identity:add_user_to_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_credential",
+ "description": "identity:get_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_credentials",
+ "description": "identity:list_credentials action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_credential",
+ "description": "identity:create_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_credential",
+ "description": "identity:update_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_credential",
+ "description": "identity:delete_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:ec2_get_credential",
+ "description": "identity:ec2_get_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:ec2_list_credentials",
+ "description": "identity:ec2_list_credentials action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:ec2_create_credential",
+ "description": "identity:ec2_create_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:ec2_delete_credential",
+ "description": "identity:ec2_delete_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_role",
+ "description": "identity:get_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_roles",
+ "description": "identity:list_roles action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_role",
+ "description": "identity:create_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_role",
+ "description": "identity:update_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_role",
+ "description": "identity:delete_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_domain_role",
+ "description": "identity:get_domain_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_domain_roles",
+ "description": "identity:list_domain_roles action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_domain_role",
+ "description": "identity:create_domain_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_domain_role",
+ "description": "identity:update_domain_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_domain_role",
+ "description": "identity:delete_domain_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "domain_admin_matches_domain_role",
+ "description": "domain_admin_matches_domain_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_domain_roles",
+ "description": "get_domain_roles action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "domain_admin_matches_target_domain_role",
+ "description": "domain_admin_matches_target_domain_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "project_admin_matches_target_domain_role",
+ "description": "project_admin_matches_target_domain_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "list_domain_roles",
+ "description": "list_domain_roles action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "domain_admin_matches_filter_on_list_domain_roles",
+ "description": "domain_admin_matches_filter_on_list_domain_roles action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "project_admin_matches_filter_on_list_domain_roles",
+ "description": "project_admin_matches_filter_on_list_domain_roles action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_and_matching_prior_role_domain_id",
+ "description": "admin_and_matching_prior_role_domain_id action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "implied_role_matches_prior_role_domain_or_global",
+ "description": "implied_role_matches_prior_role_domain_or_global action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_implied_role",
+ "description": "identity:get_implied_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_implied_roles",
+ "description": "identity:list_implied_roles action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_implied_role",
+ "description": "identity:create_implied_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_implied_role",
+ "description": "identity:delete_implied_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_role_inference_rules",
+ "description": "identity:list_role_inference_rules action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_implied_role",
+ "description": "identity:check_implied_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_system_grants_for_user",
+ "description": "identity:list_system_grants_for_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_system_grant_for_user",
+ "description": "identity:check_system_grant_for_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_system_grant_for_user",
+ "description": "identity:create_system_grant_for_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:revoke_system_grant_for_user",
+ "description": "identity:revoke_system_grant_for_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_system_grants_for_group",
+ "description": "identity:list_system_grants_for_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_system_grant_for_group",
+ "description": "identity:check_system_grant_for_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_system_grant_for_group",
+ "description": "identity:create_system_grant_for_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:revoke_system_grant_for_group",
+ "description": "identity:revoke_system_grant_for_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_grant",
+ "description": "identity:check_grant action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_grants",
+ "description": "identity:list_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_grant",
+ "description": "identity:create_grant action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:revoke_grant",
+ "description": "identity:revoke_grant action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "domain_admin_for_grants",
+ "description": "domain_admin_for_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "domain_admin_for_global_role_grants",
+ "description": "domain_admin_for_global_role_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "domain_admin_for_domain_role_grants",
+ "description": "domain_admin_for_domain_role_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "domain_admin_grant_match",
+ "description": "domain_admin_grant_match action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "project_admin_for_grants",
+ "description": "project_admin_for_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "project_admin_for_global_role_grants",
+ "description": "project_admin_for_global_role_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "project_admin_for_domain_role_grants",
+ "description": "project_admin_for_domain_role_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "domain_admin_for_list_grants",
+ "description": "domain_admin_for_list_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "project_admin_for_list_grants",
+ "description": "project_admin_for_list_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_on_domain_filter",
+ "description": "admin_on_domain_filter action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_on_project_filter",
+ "description": "admin_on_project_filter action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_on_domain_of_project_filter",
+ "description": "admin_on_domain_of_project_filter action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_role_assignments",
+ "description": "identity:list_role_assignments action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_role_assignments_for_tree",
+ "description": "identity:list_role_assignments_for_tree action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_policy",
+ "description": "identity:get_policy action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_policies",
+ "description": "identity:list_policies action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_policy",
+ "description": "identity:create_policy action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_policy",
+ "description": "identity:update_policy action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_policy",
+ "description": "identity:delete_policy action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_token",
+ "description": "identity:check_token action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:validate_token",
+ "description": "identity:validate_token action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:validate_token_head",
+ "description": "identity:validate_token_head action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:revocation_list",
+ "description": "identity:revocation_list action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:revoke_token",
+ "description": "identity:revoke_token action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_trust",
+ "description": "identity:create_trust action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_trusts",
+ "description": "identity:list_trusts action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_roles_for_trust",
+ "description": "identity:list_roles_for_trust action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_role_for_trust",
+ "description": "identity:get_role_for_trust action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_trust",
+ "description": "identity:delete_trust action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_trust",
+ "description": "identity:get_trust action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_consumer",
+ "description": "identity:create_consumer action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_consumer",
+ "description": "identity:get_consumer action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_consumers",
+ "description": "identity:list_consumers action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_consumer",
+ "description": "identity:delete_consumer action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_consumer",
+ "description": "identity:update_consumer action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:authorize_request_token",
+ "description": "identity:authorize_request_token action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_access_token_roles",
+ "description": "identity:list_access_token_roles action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_access_token_role",
+ "description": "identity:get_access_token_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_access_tokens",
+ "description": "identity:list_access_tokens action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_access_token",
+ "description": "identity:get_access_token action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_access_token",
+ "description": "identity:delete_access_token action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_projects_for_endpoint",
+ "description": "identity:list_projects_for_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:add_endpoint_to_project",
+ "description": "identity:add_endpoint_to_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_endpoint_in_project",
+ "description": "identity:check_endpoint_in_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_endpoints_for_project",
+ "description": "identity:list_endpoints_for_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:remove_endpoint_from_project",
+ "description": "identity:remove_endpoint_from_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_endpoint_group",
+ "description": "identity:create_endpoint_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_endpoint_groups",
+ "description": "identity:list_endpoint_groups action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_endpoint_group",
+ "description": "identity:get_endpoint_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_endpoint_group",
+ "description": "identity:update_endpoint_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_endpoint_group",
+ "description": "identity:delete_endpoint_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_projects_associated_with_endpoint_group",
+ "description": "identity:list_projects_associated_with_endpoint_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_endpoints_associated_with_endpoint_group",
+ "description": "identity:list_endpoints_associated_with_endpoint_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_endpoint_group_in_project",
+ "description": "identity:get_endpoint_group_in_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_endpoint_groups_for_project",
+ "description": "identity:list_endpoint_groups_for_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:add_endpoint_group_to_project",
+ "description": "identity:add_endpoint_group_to_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:remove_endpoint_group_from_project",
+ "description": "identity:remove_endpoint_group_from_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_identity_provider",
+ "description": "identity:create_identity_provider action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_identity_providers",
+ "description": "identity:list_identity_providers action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_identity_provider",
+ "description": "identity:get_identity_provider action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_identity_provider",
+ "description": "identity:update_identity_provider action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_identity_provider",
+ "description": "identity:delete_identity_provider action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_protocol",
+ "description": "identity:create_protocol action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_protocol",
+ "description": "identity:update_protocol action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_protocol",
+ "description": "identity:get_protocol action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_protocols",
+ "description": "identity:list_protocols action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_protocol",
+ "description": "identity:delete_protocol action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_mapping",
+ "description": "identity:create_mapping action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_mapping",
+ "description": "identity:get_mapping action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_mappings",
+ "description": "identity:list_mappings action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_mapping",
+ "description": "identity:delete_mapping action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_mapping",
+ "description": "identity:update_mapping action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_service_provider",
+ "description": "identity:create_service_provider action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_service_providers",
+ "description": "identity:list_service_providers action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_service_provider",
+ "description": "identity:get_service_provider action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_service_provider",
+ "description": "identity:update_service_provider action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_service_provider",
+ "description": "identity:delete_service_provider action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_auth_catalog",
+ "description": "identity:get_auth_catalog action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_auth_projects",
+ "description": "identity:get_auth_projects action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_auth_domains",
+ "description": "identity:get_auth_domains action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_auth_system",
+ "description": "identity:get_auth_system action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_projects_for_user",
+ "description": "identity:list_projects_for_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_domains_for_user",
+ "description": "identity:list_domains_for_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_revoke_events",
+ "description": "identity:list_revoke_events action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_policy_association_for_endpoint",
+ "description": "identity:create_policy_association_for_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_policy_association_for_endpoint",
+ "description": "identity:check_policy_association_for_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_policy_association_for_endpoint",
+ "description": "identity:delete_policy_association_for_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_policy_association_for_service",
+ "description": "identity:create_policy_association_for_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_policy_association_for_service",
+ "description": "identity:check_policy_association_for_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_policy_association_for_service",
+ "description": "identity:delete_policy_association_for_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_policy_association_for_region_and_service",
+ "description": "identity:create_policy_association_for_region_and_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_policy_association_for_region_and_service",
+ "description": "identity:check_policy_association_for_region_and_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_policy_association_for_region_and_service",
+ "description": "identity:delete_policy_association_for_region_and_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_policy_for_endpoint",
+ "description": "identity:get_policy_for_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_endpoints_for_policy",
+ "description": "identity:list_endpoints_for_policy action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_domain_config",
+ "description": "identity:create_domain_config action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_domain_config",
+ "description": "identity:get_domain_config action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_security_compliance_domain_config",
+ "description": "identity:get_security_compliance_domain_config action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_domain_config",
+ "description": "identity:update_domain_config action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_domain_config",
+ "description": "identity:delete_domain_config action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_domain_config_default",
+ "description": "identity:get_domain_config_default action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_application_credential",
+ "description": "identity:get_application_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_application_credentials",
+ "description": "identity:list_application_credentials action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_application_credential",
+ "description": "identity:create_application_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_application_credential",
+ "description": "identity:delete_application_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_subnet",
+ "description": "create_subnet action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_subnet:segment_id",
+ "description": "create_subnet:segment_id action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_subnet:service_types",
+ "description": "create_subnet:service_types action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_subnet",
+ "description": "get_subnet action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_subnet:segment_id",
+ "description": "get_subnet:segment_id action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_subnet",
+ "description": "update_subnet action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_subnet:service_types",
+ "description": "update_subnet:service_types action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_subnet",
+ "description": "delete_subnet action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_subnetpool",
+ "description": "create_subnetpool action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_subnetpool:shared",
+ "description": "create_subnetpool:shared action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_subnetpool:is_default",
+ "description": "create_subnetpool:is_default action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_subnetpool",
+ "description": "get_subnetpool action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_subnetpool",
+ "description": "update_subnetpool action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_subnetpool:is_default",
+ "description": "update_subnetpool:is_default action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_subnetpool",
+ "description": "delete_subnetpool action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_address_scope",
+ "description": "create_address_scope action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_address_scope:shared",
+ "description": "create_address_scope:shared action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_address_scope",
+ "description": "get_address_scope action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_address_scope",
+ "description": "update_address_scope action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_address_scope:shared",
+ "description": "update_address_scope:shared action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_address_scope",
+ "description": "delete_address_scope action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_network",
+ "description": "create_network action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_network",
+ "description": "get_network action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_network:router:external",
+ "description": "get_network:router:external action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_network:segments",
+ "description": "get_network:segments action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_network:provider:network_type",
+ "description": "get_network:provider:network_type action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_network:provider:physical_network",
+ "description": "get_network:provider:physical_network action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_network:provider:segmentation_id",
+ "description": "get_network:provider:segmentation_id action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_network:queue_id",
+ "description": "get_network:queue_id action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_network_ip_availabilities",
+ "description": "get_network_ip_availabilities action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_network_ip_availability",
+ "description": "get_network_ip_availability action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_network:shared",
+ "description": "create_network:shared action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_network:router:external",
+ "description": "create_network:router:external action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_network:is_default",
+ "description": "create_network:is_default action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_network:segments",
+ "description": "create_network:segments action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_network:provider:network_type",
+ "description": "create_network:provider:network_type action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_network:provider:physical_network",
+ "description": "create_network:provider:physical_network action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_network:provider:segmentation_id",
+ "description": "create_network:provider:segmentation_id action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_network",
+ "description": "update_network action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_network:segments",
+ "description": "update_network:segments action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_network:shared",
+ "description": "update_network:shared action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_network:provider:network_type",
+ "description": "update_network:provider:network_type action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_network:provider:physical_network",
+ "description": "update_network:provider:physical_network action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_network:provider:segmentation_id",
+ "description": "update_network:provider:segmentation_id action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_network:router:external",
+ "description": "update_network:router:external action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_network",
+ "description": "delete_network action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_segment",
+ "description": "create_segment action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_segment",
+ "description": "get_segment action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_segment",
+ "description": "update_segment action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_segment",
+ "description": "delete_segment action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network_device",
+ "description": "network_device action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_port",
+ "description": "create_port action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_port:device_owner",
+ "description": "create_port:device_owner action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_port:mac_address",
+ "description": "create_port:mac_address action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_port:fixed_ips:ip_address",
+ "description": "create_port:fixed_ips:ip_address action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_port:fixed_ips:subnet_id",
+ "description": "create_port:fixed_ips:subnet_id action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_port:port_security_enabled",
+ "description": "create_port:port_security_enabled action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_port:binding:host_id",
+ "description": "create_port:binding:host_id action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_port:binding:profile",
+ "description": "create_port:binding:profile action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_port:mac_learning_enabled",
+ "description": "create_port:mac_learning_enabled action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_port:allowed_address_pairs",
+ "description": "create_port:allowed_address_pairs action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_port",
+ "description": "get_port action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_port:queue_id",
+ "description": "get_port:queue_id action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_port:binding:vif_type",
+ "description": "get_port:binding:vif_type action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_port:binding:vif_details",
+ "description": "get_port:binding:vif_details action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_port:binding:host_id",
+ "description": "get_port:binding:host_id action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_port:binding:profile",
+ "description": "get_port:binding:profile action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_port",
+ "description": "update_port action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_port:device_owner",
+ "description": "update_port:device_owner action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_port:mac_address",
+ "description": "update_port:mac_address action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_port:fixed_ips:ip_address",
+ "description": "update_port:fixed_ips:ip_address action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_port:fixed_ips:subnet_id",
+ "description": "update_port:fixed_ips:subnet_id action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_port:port_security_enabled",
+ "description": "update_port:port_security_enabled action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_port:binding:host_id",
+ "description": "update_port:binding:host_id action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_port:binding:profile",
+ "description": "update_port:binding:profile action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_port:mac_learning_enabled",
+ "description": "update_port:mac_learning_enabled action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_port:allowed_address_pairs",
+ "description": "update_port:allowed_address_pairs action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_port:data_plane_status",
+ "description": "update_port:data_plane_status action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_port",
+ "description": "delete_port action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_router:ha",
+ "description": "get_router:ha action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_router",
+ "description": "create_router action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_router:external_gateway_info:enable_snat",
+ "description": "create_router:external_gateway_info:enable_snat action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_router:distributed",
+ "description": "create_router:distributed action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_router:ha",
+ "description": "create_router:ha action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_router",
+ "description": "get_router action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_router:distributed",
+ "description": "get_router:distributed action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_router",
+ "description": "update_router action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_router:external_gateway_info",
+ "description": "update_router:external_gateway_info action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_router:external_gateway_info:network_id",
+ "description": "update_router:external_gateway_info:network_id action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_router:external_gateway_info:enable_snat",
+ "description": "update_router:external_gateway_info:enable_snat action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_router:distributed",
+ "description": "update_router:distributed action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_router:ha",
+ "description": "update_router:ha action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_router",
+ "description": "delete_router action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_router_interface",
+ "description": "add_router_interface action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "remove_router_interface",
+ "description": "remove_router_interface action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_router:external_gateway_info:external_fixed_ips",
+ "description": "create_router:external_gateway_info:external_fixed_ips action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_router:external_gateway_info:external_fixed_ips",
+ "description": "update_router:external_gateway_info:external_fixed_ips action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_qos_queue",
+ "description": "create_qos_queue action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_qos_queue",
+ "description": "get_qos_queue action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_agent",
+ "description": "update_agent action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_agent",
+ "description": "delete_agent action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_agent",
+ "description": "get_agent action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_dhcp-network",
+ "description": "create_dhcp-network action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_dhcp-network",
+ "description": "delete_dhcp-network action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_dhcp-networks",
+ "description": "get_dhcp-networks action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_l3-router",
+ "description": "create_l3-router action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_l3-router",
+ "description": "delete_l3-router action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_l3-routers",
+ "description": "get_l3-routers action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_dhcp-agents",
+ "description": "get_dhcp-agents action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_l3-agents",
+ "description": "get_l3-agents action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_loadbalancer-agent",
+ "description": "get_loadbalancer-agent action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_loadbalancer-pools",
+ "description": "get_loadbalancer-pools action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_agent-loadbalancers",
+ "description": "get_agent-loadbalancers action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_loadbalancer-hosting-agent",
+ "description": "get_loadbalancer-hosting-agent action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_floatingip",
+ "description": "create_floatingip action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_floatingip:floating_ip_address",
+ "description": "create_floatingip:floating_ip_address action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_floatingip",
+ "description": "update_floatingip action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_floatingip",
+ "description": "delete_floatingip action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_floatingip",
+ "description": "get_floatingip action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_network_profile",
+ "description": "create_network_profile action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_network_profile",
+ "description": "update_network_profile action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_network_profile",
+ "description": "delete_network_profile action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_network_profiles",
+ "description": "get_network_profiles action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_network_profile",
+ "description": "get_network_profile action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_policy_profiles",
+ "description": "update_policy_profiles action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_policy_profiles",
+ "description": "get_policy_profiles action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_policy_profile",
+ "description": "get_policy_profile action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_metering_label",
+ "description": "create_metering_label action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_metering_label",
+ "description": "delete_metering_label action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metering_label",
+ "description": "get_metering_label action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_metering_label_rule",
+ "description": "create_metering_label_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_metering_label_rule",
+ "description": "delete_metering_label_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metering_label_rule",
+ "description": "get_metering_label_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_service_provider",
+ "description": "get_service_provider action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_lsn",
+ "description": "get_lsn action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_lsn",
+ "description": "create_lsn action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_flavor",
+ "description": "create_flavor action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_flavor",
+ "description": "update_flavor action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_flavor",
+ "description": "delete_flavor action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_flavors",
+ "description": "get_flavors action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_flavor",
+ "description": "get_flavor action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_service_profile",
+ "description": "create_service_profile action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_service_profile",
+ "description": "update_service_profile action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_service_profile",
+ "description": "delete_service_profile action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_service_profiles",
+ "description": "get_service_profiles action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_service_profile",
+ "description": "get_service_profile action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_policy",
+ "description": "get_policy action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_policy",
+ "description": "create_policy action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_policy",
+ "description": "update_policy action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_policy",
+ "description": "delete_policy action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_policy_bandwidth_limit_rule",
+ "description": "get_policy_bandwidth_limit_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_policy_bandwidth_limit_rule",
+ "description": "create_policy_bandwidth_limit_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_policy_bandwidth_limit_rule",
+ "description": "delete_policy_bandwidth_limit_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_policy_bandwidth_limit_rule",
+ "description": "update_policy_bandwidth_limit_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_policy_dscp_marking_rule",
+ "description": "get_policy_dscp_marking_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_policy_dscp_marking_rule",
+ "description": "create_policy_dscp_marking_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_policy_dscp_marking_rule",
+ "description": "delete_policy_dscp_marking_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_policy_dscp_marking_rule",
+ "description": "update_policy_dscp_marking_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_rule_type",
+ "description": "get_rule_type action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_policy_minimum_bandwidth_rule",
+ "description": "get_policy_minimum_bandwidth_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_policy_minimum_bandwidth_rule",
+ "description": "create_policy_minimum_bandwidth_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_policy_minimum_bandwidth_rule",
+ "description": "delete_policy_minimum_bandwidth_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_policy_minimum_bandwidth_rule",
+ "description": "update_policy_minimum_bandwidth_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "restrict_wildcard",
+ "description": "restrict_wildcard action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_rbac_policy",
+ "description": "create_rbac_policy action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_rbac_policy:target_tenant",
+ "description": "create_rbac_policy:target_tenant action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_rbac_policy",
+ "description": "update_rbac_policy action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_rbac_policy:target_tenant",
+ "description": "update_rbac_policy:target_tenant action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_rbac_policy",
+ "description": "get_rbac_policy action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_rbac_policy",
+ "description": "delete_rbac_policy action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_flavor_service_profile",
+ "description": "create_flavor_service_profile action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_flavor_service_profile",
+ "description": "delete_flavor_service_profile action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_flavor_service_profile",
+ "description": "get_flavor_service_profile action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_auto_allocated_topology",
+ "description": "get_auto_allocated_topology action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_trunk",
+ "description": "create_trunk action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_trunk",
+ "description": "get_trunk action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_trunk",
+ "description": "delete_trunk action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_subports",
+ "description": "get_subports action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_subports",
+ "description": "add_subports action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "remove_subports",
+ "description": "remove_subports action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_security_groups",
+ "description": "get_security_groups action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_security_group",
+ "description": "get_security_group action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_security_group",
+ "description": "create_security_group action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_security_group",
+ "description": "update_security_group action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_security_group",
+ "description": "delete_security_group action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_security_group_rules",
+ "description": "get_security_group_rules action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_security_group_rule",
+ "description": "get_security_group_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_security_group_rule",
+ "description": "create_security_group_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_security_group_rule",
+ "description": "delete_security_group_rule action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_loggable_resources",
+ "description": "get_loggable_resources action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "create_log",
+ "description": "create_log action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "update_log",
+ "description": "update_log action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_log",
+ "description": "delete_log action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_logs",
+ "description": "get_logs action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_log",
+ "description": "get_log action for neutron",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "cells_scheduler_filter:TargetCellFilter",
+ "description": "cells_scheduler_filter:TargetCellFilter action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:create",
+ "description": "compute:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:create:attach_network",
+ "description": "compute:create:attach_network action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:create:attach_volume",
+ "description": "compute:create:attach_volume action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:create:forced_host",
+ "description": "compute:create:forced_host action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get",
+ "description": "compute:get action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_all",
+ "description": "compute:get_all action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_all_tenants",
+ "description": "compute:get_all_tenants action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:update",
+ "description": "compute:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_instance_metadata",
+ "description": "compute:get_instance_metadata action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_all_instance_metadata",
+ "description": "compute:get_all_instance_metadata action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_all_instance_system_metadata",
+ "description": "compute:get_all_instance_system_metadata action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:update_instance_metadata",
+ "description": "compute:update_instance_metadata action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:delete_instance_metadata",
+ "description": "compute:delete_instance_metadata action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_instance_faults",
+ "description": "compute:get_instance_faults action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_diagnostics",
+ "description": "compute:get_diagnostics action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_instance_diagnostics",
+ "description": "compute:get_instance_diagnostics action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:start",
+ "description": "compute:start action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:stop",
+ "description": "compute:stop action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_lock",
+ "description": "compute:get_lock action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:lock",
+ "description": "compute:lock action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:unlock",
+ "description": "compute:unlock action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:unlock_override",
+ "description": "compute:unlock_override action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_vnc_console",
+ "description": "compute:get_vnc_console action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_spice_console",
+ "description": "compute:get_spice_console action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_rdp_console",
+ "description": "compute:get_rdp_console action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_serial_console",
+ "description": "compute:get_serial_console action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_mks_console",
+ "description": "compute:get_mks_console action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_console_output",
+ "description": "compute:get_console_output action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:reset_network",
+ "description": "compute:reset_network action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:inject_network_info",
+ "description": "compute:inject_network_info action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:add_fixed_ip",
+ "description": "compute:add_fixed_ip action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:remove_fixed_ip",
+ "description": "compute:remove_fixed_ip action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:attach_volume",
+ "description": "compute:attach_volume action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:detach_volume",
+ "description": "compute:detach_volume action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:swap_volume",
+ "description": "compute:swap_volume action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:attach_interface",
+ "description": "compute:attach_interface action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:detach_interface",
+ "description": "compute:detach_interface action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:set_admin_password",
+ "description": "compute:set_admin_password action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:rescue",
+ "description": "compute:rescue action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:unrescue",
+ "description": "compute:unrescue action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:suspend",
+ "description": "compute:suspend action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:resume",
+ "description": "compute:resume action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:pause",
+ "description": "compute:pause action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:unpause",
+ "description": "compute:unpause action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:shelve",
+ "description": "compute:shelve action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:shelve_offload",
+ "description": "compute:shelve_offload action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:unshelve",
+ "description": "compute:unshelve action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:snapshot",
+ "description": "compute:snapshot action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:snapshot_volume_backed",
+ "description": "compute:snapshot_volume_backed action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:backup",
+ "description": "compute:backup action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:resize",
+ "description": "compute:resize action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:confirm_resize",
+ "description": "compute:confirm_resize action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:revert_resize",
+ "description": "compute:revert_resize action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:rebuild",
+ "description": "compute:rebuild action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:reboot",
+ "description": "compute:reboot action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:delete",
+ "description": "compute:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:soft_delete",
+ "description": "compute:soft_delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:force_delete",
+ "description": "compute:force_delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:security_groups:add_to_instance",
+ "description": "compute:security_groups:add_to_instance action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:security_groups:remove_from_instance",
+ "description": "compute:security_groups:remove_from_instance action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:restore",
+ "description": "compute:restore action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:volume_snapshot_create",
+ "description": "compute:volume_snapshot_create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:volume_snapshot_delete",
+ "description": "compute:volume_snapshot_delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:accounts",
+ "description": "compute_extension:accounts action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions",
+ "description": "compute_extension:admin_actions action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:pause",
+ "description": "compute_extension:admin_actions:pause action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:unpause",
+ "description": "compute_extension:admin_actions:unpause action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:suspend",
+ "description": "compute_extension:admin_actions:suspend action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:resume",
+ "description": "compute_extension:admin_actions:resume action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:lock",
+ "description": "compute_extension:admin_actions:lock action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:unlock",
+ "description": "compute_extension:admin_actions:unlock action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:resetNetwork",
+ "description": "compute_extension:admin_actions:resetNetwork action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:injectNetworkInfo",
+ "description": "compute_extension:admin_actions:injectNetworkInfo action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:createBackup",
+ "description": "compute_extension:admin_actions:createBackup action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:migrateLive",
+ "description": "compute_extension:admin_actions:migrateLive action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:resetState",
+ "description": "compute_extension:admin_actions:resetState action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:migrate",
+ "description": "compute_extension:admin_actions:migrate action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:aggregates",
+ "description": "compute_extension:aggregates action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:agents",
+ "description": "compute_extension:agents action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:attach_interfaces",
+ "description": "compute_extension:attach_interfaces action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:baremetal_nodes",
+ "description": "compute_extension:baremetal_nodes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:cells",
+ "description": "compute_extension:cells action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:cells:create",
+ "description": "compute_extension:cells:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:cells:delete",
+ "description": "compute_extension:cells:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:cells:update",
+ "description": "compute_extension:cells:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:cells:sync_instances",
+ "description": "compute_extension:cells:sync_instances action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:certificates",
+ "description": "compute_extension:certificates action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:cloudpipe",
+ "description": "compute_extension:cloudpipe action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:cloudpipe_update",
+ "description": "compute_extension:cloudpipe_update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:config_drive",
+ "description": "compute_extension:config_drive action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:console_output",
+ "description": "compute_extension:console_output action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:consoles",
+ "description": "compute_extension:consoles action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:createserverext",
+ "description": "compute_extension:createserverext action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:deferred_delete",
+ "description": "compute_extension:deferred_delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:disk_config",
+ "description": "compute_extension:disk_config action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:evacuate",
+ "description": "compute_extension:evacuate action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:extended_server_attributes",
+ "description": "compute_extension:extended_server_attributes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:extended_status",
+ "description": "compute_extension:extended_status action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:extended_availability_zone",
+ "description": "compute_extension:extended_availability_zone action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:extended_ips",
+ "description": "compute_extension:extended_ips action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:extended_ips_mac",
+ "description": "compute_extension:extended_ips_mac action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:extended_vif_net",
+ "description": "compute_extension:extended_vif_net action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:extended_volumes",
+ "description": "compute_extension:extended_volumes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:fixed_ips",
+ "description": "compute_extension:fixed_ips action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavor_access",
+ "description": "compute_extension:flavor_access action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavor_access:addTenantAccess",
+ "description": "compute_extension:flavor_access:addTenantAccess action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavor_access:removeTenantAccess",
+ "description": "compute_extension:flavor_access:removeTenantAccess action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavor_disabled",
+ "description": "compute_extension:flavor_disabled action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavor_rxtx",
+ "description": "compute_extension:flavor_rxtx action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavor_swap",
+ "description": "compute_extension:flavor_swap action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavorextradata",
+ "description": "compute_extension:flavorextradata action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:index",
+ "description": "compute_extension:flavorextraspecs:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:show",
+ "description": "compute_extension:flavorextraspecs:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:create",
+ "description": "compute_extension:flavorextraspecs:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:update",
+ "description": "compute_extension:flavorextraspecs:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:delete",
+ "description": "compute_extension:flavorextraspecs:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavormanage",
+ "description": "compute_extension:flavormanage action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:floating_ip_dns",
+ "description": "compute_extension:floating_ip_dns action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:floating_ip_pools",
+ "description": "compute_extension:floating_ip_pools action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:floating_ips",
+ "description": "compute_extension:floating_ips action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:floating_ips_bulk",
+ "description": "compute_extension:floating_ips_bulk action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:fping",
+ "description": "compute_extension:fping action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:fping:all_tenants",
+ "description": "compute_extension:fping:all_tenants action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:hide_server_addresses",
+ "description": "compute_extension:hide_server_addresses action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:hosts",
+ "description": "compute_extension:hosts action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:hypervisors",
+ "description": "compute_extension:hypervisors action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:image_size",
+ "description": "compute_extension:image_size action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:instance_actions",
+ "description": "compute_extension:instance_actions action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:instance_actions:events",
+ "description": "compute_extension:instance_actions:events action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:instance_usage_audit_log",
+ "description": "compute_extension:instance_usage_audit_log action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:keypairs",
+ "description": "compute_extension:keypairs action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:keypairs:index",
+ "description": "compute_extension:keypairs:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:keypairs:show",
+ "description": "compute_extension:keypairs:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:keypairs:create",
+ "description": "compute_extension:keypairs:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:keypairs:delete",
+ "description": "compute_extension:keypairs:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:multinic",
+ "description": "compute_extension:multinic action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:networks",
+ "description": "compute_extension:networks action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:networks:view",
+ "description": "compute_extension:networks:view action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:networks_associate",
+ "description": "compute_extension:networks_associate action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:os-tenant-networks",
+ "description": "compute_extension:os-tenant-networks action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:quotas:show",
+ "description": "compute_extension:quotas:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:quotas:update",
+ "description": "compute_extension:quotas:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:quotas:delete",
+ "description": "compute_extension:quotas:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:quota_classes",
+ "description": "compute_extension:quota_classes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:rescue",
+ "description": "compute_extension:rescue action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:security_group_default_rules",
+ "description": "compute_extension:security_group_default_rules action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:security_groups",
+ "description": "compute_extension:security_groups action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:server_diagnostics",
+ "description": "compute_extension:server_diagnostics action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:server_groups",
+ "description": "compute_extension:server_groups action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:server_password",
+ "description": "compute_extension:server_password action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:server_usage",
+ "description": "compute_extension:server_usage action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:services",
+ "description": "compute_extension:services action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:shelve",
+ "description": "compute_extension:shelve action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:shelveOffload",
+ "description": "compute_extension:shelveOffload action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:simple_tenant_usage:show",
+ "description": "compute_extension:simple_tenant_usage:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:simple_tenant_usage:list",
+ "description": "compute_extension:simple_tenant_usage:list action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:unshelve",
+ "description": "compute_extension:unshelve action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:users",
+ "description": "compute_extension:users action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:virtual_interfaces",
+ "description": "compute_extension:virtual_interfaces action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:virtual_storage_arrays",
+ "description": "compute_extension:virtual_storage_arrays action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:volumes",
+ "description": "compute_extension:volumes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:volume_attachments:index",
+ "description": "compute_extension:volume_attachments:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:volume_attachments:show",
+ "description": "compute_extension:volume_attachments:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:volume_attachments:create",
+ "description": "compute_extension:volume_attachments:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:volume_attachments:update",
+ "description": "compute_extension:volume_attachments:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:volume_attachments:delete",
+ "description": "compute_extension:volume_attachments:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:volumetypes",
+ "description": "compute_extension:volumetypes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:availability_zone:list",
+ "description": "compute_extension:availability_zone:list action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:availability_zone:detail",
+ "description": "compute_extension:availability_zone:detail action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:used_limits_for_admin",
+ "description": "compute_extension:used_limits_for_admin action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:migrations:index",
+ "description": "compute_extension:migrations:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:os-assisted-volume-snapshots:create",
+ "description": "compute_extension:os-assisted-volume-snapshots:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:os-assisted-volume-snapshots:delete",
+ "description": "compute_extension:os-assisted-volume-snapshots:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:console_auth_tokens",
+ "description": "compute_extension:console_auth_tokens action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:os-server-external-events:create",
+ "description": "compute_extension:os-server-external-events:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_all",
+ "description": "network:get_all action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get",
+ "description": "network:get action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:create",
+ "description": "network:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:delete",
+ "description": "network:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:associate",
+ "description": "network:associate action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:disassociate",
+ "description": "network:disassociate action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_vifs_by_instance",
+ "description": "network:get_vifs_by_instance action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:allocate_for_instance",
+ "description": "network:allocate_for_instance action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:deallocate_for_instance",
+ "description": "network:deallocate_for_instance action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:validate_networks",
+ "description": "network:validate_networks action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_instance_uuids_by_ip_filter",
+ "description": "network:get_instance_uuids_by_ip_filter action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_instance_id_by_floating_address",
+ "description": "network:get_instance_id_by_floating_address action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:setup_networks_on_host",
+ "description": "network:setup_networks_on_host action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_backdoor_port",
+ "description": "network:get_backdoor_port action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_floating_ip",
+ "description": "network:get_floating_ip action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_floating_ip_pools",
+ "description": "network:get_floating_ip_pools action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_floating_ip_by_address",
+ "description": "network:get_floating_ip_by_address action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_floating_ips_by_project",
+ "description": "network:get_floating_ips_by_project action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_floating_ips_by_fixed_address",
+ "description": "network:get_floating_ips_by_fixed_address action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:allocate_floating_ip",
+ "description": "network:allocate_floating_ip action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:associate_floating_ip",
+ "description": "network:associate_floating_ip action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:disassociate_floating_ip",
+ "description": "network:disassociate_floating_ip action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:release_floating_ip",
+ "description": "network:release_floating_ip action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:migrate_instance_start",
+ "description": "network:migrate_instance_start action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:migrate_instance_finish",
+ "description": "network:migrate_instance_finish action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_fixed_ip",
+ "description": "network:get_fixed_ip action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_fixed_ip_by_address",
+ "description": "network:get_fixed_ip_by_address action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:add_fixed_ip_to_instance",
+ "description": "network:add_fixed_ip_to_instance action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:remove_fixed_ip_from_instance",
+ "description": "network:remove_fixed_ip_from_instance action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:add_network_to_project",
+ "description": "network:add_network_to_project action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_instance_nw_info",
+ "description": "network:get_instance_nw_info action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_dns_domains",
+ "description": "network:get_dns_domains action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:add_dns_entry",
+ "description": "network:add_dns_entry action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:modify_dns_entry",
+ "description": "network:modify_dns_entry action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:delete_dns_entry",
+ "description": "network:delete_dns_entry action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_dns_entries_by_address",
+ "description": "network:get_dns_entries_by_address action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_dns_entries_by_name",
+ "description": "network:get_dns_entries_by_name action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:create_private_dns_domain",
+ "description": "network:create_private_dns_domain action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:create_public_dns_domain",
+ "description": "network:create_public_dns_domain action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:delete_dns_domain",
+ "description": "network:delete_dns_domain action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:attach_external_network",
+ "description": "network:attach_external_network action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_vif_by_mac_address",
+ "description": "network:get_vif_by_mac_address action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:detail:get_all_tenants",
+ "description": "os_compute_api:servers:detail:get_all_tenants action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:index:get_all_tenants",
+ "description": "os_compute_api:servers:index:get_all_tenants action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:confirm_resize",
+ "description": "os_compute_api:servers:confirm_resize action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:create",
+ "description": "os_compute_api:servers:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:create:attach_network",
+ "description": "os_compute_api:servers:create:attach_network action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:create:attach_volume",
+ "description": "os_compute_api:servers:create:attach_volume action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:create:forced_host",
+ "description": "os_compute_api:servers:create:forced_host action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:delete",
+ "description": "os_compute_api:servers:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:update",
+ "description": "os_compute_api:servers:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:detail",
+ "description": "os_compute_api:servers:detail action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:index",
+ "description": "os_compute_api:servers:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:reboot",
+ "description": "os_compute_api:servers:reboot action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:rebuild",
+ "description": "os_compute_api:servers:rebuild action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:resize",
+ "description": "os_compute_api:servers:resize action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:revert_resize",
+ "description": "os_compute_api:servers:revert_resize action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:show",
+ "description": "os_compute_api:servers:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:create_image",
+ "description": "os_compute_api:servers:create_image action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:create_image:allow_volume_backed",
+ "description": "os_compute_api:servers:create_image:allow_volume_backed action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:start",
+ "description": "os_compute_api:servers:start action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:stop",
+ "description": "os_compute_api:servers:stop action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-access-ips:discoverable",
+ "description": "os_compute_api:os-access-ips:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-access-ips",
+ "description": "os_compute_api:os-access-ips action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-admin-actions",
+ "description": "os_compute_api:os-admin-actions action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-admin-actions:discoverable",
+ "description": "os_compute_api:os-admin-actions:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-admin-actions:reset_network",
+ "description": "os_compute_api:os-admin-actions:reset_network action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-admin-actions:inject_network_info",
+ "description": "os_compute_api:os-admin-actions:inject_network_info action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-admin-actions:reset_state",
+ "description": "os_compute_api:os-admin-actions:reset_state action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-admin-password",
+ "description": "os_compute_api:os-admin-password action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-admin-password:discoverable",
+ "description": "os_compute_api:os-admin-password:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:discoverable",
+ "description": "os_compute_api:os-aggregates:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:index",
+ "description": "os_compute_api:os-aggregates:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:create",
+ "description": "os_compute_api:os-aggregates:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:show",
+ "description": "os_compute_api:os-aggregates:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:update",
+ "description": "os_compute_api:os-aggregates:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:delete",
+ "description": "os_compute_api:os-aggregates:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:add_host",
+ "description": "os_compute_api:os-aggregates:add_host action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:remove_host",
+ "description": "os_compute_api:os-aggregates:remove_host action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:set_metadata",
+ "description": "os_compute_api:os-aggregates:set_metadata action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-agents",
+ "description": "os_compute_api:os-agents action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-agents:discoverable",
+ "description": "os_compute_api:os-agents:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-attach-interfaces",
+ "description": "os_compute_api:os-attach-interfaces action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-attach-interfaces:discoverable",
+ "description": "os_compute_api:os-attach-interfaces:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-baremetal-nodes",
+ "description": "os_compute_api:os-baremetal-nodes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-baremetal-nodes:discoverable",
+ "description": "os_compute_api:os-baremetal-nodes:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-block-device-mapping-v1:discoverable",
+ "description": "os_compute_api:os-block-device-mapping-v1:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-cells",
+ "description": "os_compute_api:os-cells action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-cells:create",
+ "description": "os_compute_api:os-cells:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-cells:delete",
+ "description": "os_compute_api:os-cells:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-cells:update",
+ "description": "os_compute_api:os-cells:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-cells:sync_instances",
+ "description": "os_compute_api:os-cells:sync_instances action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-cells:discoverable",
+ "description": "os_compute_api:os-cells:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-certificates:create",
+ "description": "os_compute_api:os-certificates:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-certificates:show",
+ "description": "os_compute_api:os-certificates:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-certificates:discoverable",
+ "description": "os_compute_api:os-certificates:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-cloudpipe",
+ "description": "os_compute_api:os-cloudpipe action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-cloudpipe:discoverable",
+ "description": "os_compute_api:os-cloudpipe:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-config-drive",
+ "description": "os_compute_api:os-config-drive action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-consoles:discoverable",
+ "description": "os_compute_api:os-consoles:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-consoles:create",
+ "description": "os_compute_api:os-consoles:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-consoles:delete",
+ "description": "os_compute_api:os-consoles:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-consoles:index",
+ "description": "os_compute_api:os-consoles:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-consoles:show",
+ "description": "os_compute_api:os-consoles:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-console-output:discoverable",
+ "description": "os_compute_api:os-console-output:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-console-output",
+ "description": "os_compute_api:os-console-output action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-remote-consoles",
+ "description": "os_compute_api:os-remote-consoles action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-remote-consoles:discoverable",
+ "description": "os_compute_api:os-remote-consoles:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-create-backup:discoverable",
+ "description": "os_compute_api:os-create-backup:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-create-backup",
+ "description": "os_compute_api:os-create-backup action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-deferred-delete",
+ "description": "os_compute_api:os-deferred-delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-deferred-delete:discoverable",
+ "description": "os_compute_api:os-deferred-delete:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-disk-config",
+ "description": "os_compute_api:os-disk-config action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-disk-config:discoverable",
+ "description": "os_compute_api:os-disk-config:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-evacuate",
+ "description": "os_compute_api:os-evacuate action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-evacuate:discoverable",
+ "description": "os_compute_api:os-evacuate:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-extended-server-attributes",
+ "description": "os_compute_api:os-extended-server-attributes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-extended-server-attributes:discoverable",
+ "description": "os_compute_api:os-extended-server-attributes:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-extended-status",
+ "description": "os_compute_api:os-extended-status action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-extended-status:discoverable",
+ "description": "os_compute_api:os-extended-status:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-extended-availability-zone",
+ "description": "os_compute_api:os-extended-availability-zone action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-extended-availability-zone:discoverable",
+ "description": "os_compute_api:os-extended-availability-zone:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:extensions",
+ "description": "os_compute_api:extensions action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:extension_info:discoverable",
+ "description": "os_compute_api:extension_info:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-extended-volumes",
+ "description": "os_compute_api:os-extended-volumes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-extended-volumes:discoverable",
+ "description": "os_compute_api:os-extended-volumes:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-fixed-ips",
+ "description": "os_compute_api:os-fixed-ips action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-fixed-ips:discoverable",
+ "description": "os_compute_api:os-fixed-ips:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-access",
+ "description": "os_compute_api:os-flavor-access action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-access:discoverable",
+ "description": "os_compute_api:os-flavor-access:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-access:remove_tenant_access",
+ "description": "os_compute_api:os-flavor-access:remove_tenant_access action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-access:add_tenant_access",
+ "description": "os_compute_api:os-flavor-access:add_tenant_access action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-rxtx",
+ "description": "os_compute_api:os-flavor-rxtx action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-rxtx:discoverable",
+ "description": "os_compute_api:os-flavor-rxtx:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:flavors:discoverable",
+ "description": "os_compute_api:flavors:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:discoverable",
+ "description": "os_compute_api:os-flavor-extra-specs:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:index",
+ "description": "os_compute_api:os-flavor-extra-specs:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:show",
+ "description": "os_compute_api:os-flavor-extra-specs:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:create",
+ "description": "os_compute_api:os-flavor-extra-specs:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:update",
+ "description": "os_compute_api:os-flavor-extra-specs:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:delete",
+ "description": "os_compute_api:os-flavor-extra-specs:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-manage:discoverable",
+ "description": "os_compute_api:os-flavor-manage:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-manage",
+ "description": "os_compute_api:os-flavor-manage action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-dns",
+ "description": "os_compute_api:os-floating-ip-dns action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-dns:discoverable",
+ "description": "os_compute_api:os-floating-ip-dns:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-dns:domain:update",
+ "description": "os_compute_api:os-floating-ip-dns:domain:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-dns:domain:delete",
+ "description": "os_compute_api:os-floating-ip-dns:domain:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-pools",
+ "description": "os_compute_api:os-floating-ip-pools action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-pools:discoverable",
+ "description": "os_compute_api:os-floating-ip-pools:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ips",
+ "description": "os_compute_api:os-floating-ips action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ips:discoverable",
+ "description": "os_compute_api:os-floating-ips:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ips-bulk",
+ "description": "os_compute_api:os-floating-ips-bulk action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ips-bulk:discoverable",
+ "description": "os_compute_api:os-floating-ips-bulk:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-fping",
+ "description": "os_compute_api:os-fping action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-fping:discoverable",
+ "description": "os_compute_api:os-fping:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-fping:all_tenants",
+ "description": "os_compute_api:os-fping:all_tenants action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-hide-server-addresses",
+ "description": "os_compute_api:os-hide-server-addresses action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-hide-server-addresses:discoverable",
+ "description": "os_compute_api:os-hide-server-addresses:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-hosts",
+ "description": "os_compute_api:os-hosts action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-hosts:discoverable",
+ "description": "os_compute_api:os-hosts:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-hypervisors",
+ "description": "os_compute_api:os-hypervisors action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-hypervisors:discoverable",
+ "description": "os_compute_api:os-hypervisors:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:images:discoverable",
+ "description": "os_compute_api:images:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:image-size",
+ "description": "os_compute_api:image-size action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:image-size:discoverable",
+ "description": "os_compute_api:image-size:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-instance-actions",
+ "description": "os_compute_api:os-instance-actions action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-instance-actions:discoverable",
+ "description": "os_compute_api:os-instance-actions:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-instance-actions:events",
+ "description": "os_compute_api:os-instance-actions:events action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-instance-usage-audit-log",
+ "description": "os_compute_api:os-instance-usage-audit-log action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-instance-usage-audit-log:discoverable",
+ "description": "os_compute_api:os-instance-usage-audit-log:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:ips:discoverable",
+ "description": "os_compute_api:ips:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:ips:index",
+ "description": "os_compute_api:ips:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:ips:show",
+ "description": "os_compute_api:ips:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-keypairs:discoverable",
+ "description": "os_compute_api:os-keypairs:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-keypairs",
+ "description": "os_compute_api:os-keypairs action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-keypairs:index",
+ "description": "os_compute_api:os-keypairs:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-keypairs:show",
+ "description": "os_compute_api:os-keypairs:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-keypairs:create",
+ "description": "os_compute_api:os-keypairs:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-keypairs:delete",
+ "description": "os_compute_api:os-keypairs:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:limits:discoverable",
+ "description": "os_compute_api:limits:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:limits",
+ "description": "os_compute_api:limits action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-lock-server:discoverable",
+ "description": "os_compute_api:os-lock-server:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-lock-server:lock",
+ "description": "os_compute_api:os-lock-server:lock action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-lock-server:unlock",
+ "description": "os_compute_api:os-lock-server:unlock action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-lock-server:unlock:unlock_override",
+ "description": "os_compute_api:os-lock-server:unlock:unlock_override action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-migrate-server:discoverable",
+ "description": "os_compute_api:os-migrate-server:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-migrate-server:migrate",
+ "description": "os_compute_api:os-migrate-server:migrate action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-migrate-server:migrate_live",
+ "description": "os_compute_api:os-migrate-server:migrate_live action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-multinic",
+ "description": "os_compute_api:os-multinic action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-multinic:discoverable",
+ "description": "os_compute_api:os-multinic:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-networks",
+ "description": "os_compute_api:os-networks action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-networks:view",
+ "description": "os_compute_api:os-networks:view action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-networks:discoverable",
+ "description": "os_compute_api:os-networks:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-networks-associate",
+ "description": "os_compute_api:os-networks-associate action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-networks-associate:discoverable",
+ "description": "os_compute_api:os-networks-associate:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-pause-server:discoverable",
+ "description": "os_compute_api:os-pause-server:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-pause-server:pause",
+ "description": "os_compute_api:os-pause-server:pause action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-pause-server:unpause",
+ "description": "os_compute_api:os-pause-server:unpause action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-pci:pci_servers",
+ "description": "os_compute_api:os-pci:pci_servers action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-pci:discoverable",
+ "description": "os_compute_api:os-pci:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-pci:index",
+ "description": "os_compute_api:os-pci:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-pci:detail",
+ "description": "os_compute_api:os-pci:detail action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-pci:show",
+ "description": "os_compute_api:os-pci:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-personality:discoverable",
+ "description": "os_compute_api:os-personality:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-preserve-ephemeral-rebuild:discoverable",
+ "description": "os_compute_api:os-preserve-ephemeral-rebuild:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:discoverable",
+ "description": "os_compute_api:os-quota-sets:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:show",
+ "description": "os_compute_api:os-quota-sets:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:defaults",
+ "description": "os_compute_api:os-quota-sets:defaults action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:update",
+ "description": "os_compute_api:os-quota-sets:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:delete",
+ "description": "os_compute_api:os-quota-sets:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:detail",
+ "description": "os_compute_api:os-quota-sets:detail action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-class-sets:update",
+ "description": "os_compute_api:os-quota-class-sets:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-class-sets:show",
+ "description": "os_compute_api:os-quota-class-sets:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-class-sets:discoverable",
+ "description": "os_compute_api:os-quota-class-sets:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-rescue",
+ "description": "os_compute_api:os-rescue action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-rescue:discoverable",
+ "description": "os_compute_api:os-rescue:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-scheduler-hints:discoverable",
+ "description": "os_compute_api:os-scheduler-hints:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-security-group-default-rules:discoverable",
+ "description": "os_compute_api:os-security-group-default-rules:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-security-group-default-rules",
+ "description": "os_compute_api:os-security-group-default-rules action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-security-groups",
+ "description": "os_compute_api:os-security-groups action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-security-groups:discoverable",
+ "description": "os_compute_api:os-security-groups:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-diagnostics",
+ "description": "os_compute_api:os-server-diagnostics action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-diagnostics:discoverable",
+ "description": "os_compute_api:os-server-diagnostics:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-password",
+ "description": "os_compute_api:os-server-password action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-password:discoverable",
+ "description": "os_compute_api:os-server-password:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-usage",
+ "description": "os_compute_api:os-server-usage action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-usage:discoverable",
+ "description": "os_compute_api:os-server-usage:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-groups",
+ "description": "os_compute_api:os-server-groups action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-groups:discoverable",
+ "description": "os_compute_api:os-server-groups:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-services",
+ "description": "os_compute_api:os-services action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-services:discoverable",
+ "description": "os_compute_api:os-services:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:server-metadata:discoverable",
+ "description": "os_compute_api:server-metadata:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:server-metadata:index",
+ "description": "os_compute_api:server-metadata:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:server-metadata:show",
+ "description": "os_compute_api:server-metadata:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:server-metadata:delete",
+ "description": "os_compute_api:server-metadata:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:server-metadata:create",
+ "description": "os_compute_api:server-metadata:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:server-metadata:update",
+ "description": "os_compute_api:server-metadata:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:server-metadata:update_all",
+ "description": "os_compute_api:server-metadata:update_all action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:discoverable",
+ "description": "os_compute_api:servers:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-shelve:shelve",
+ "description": "os_compute_api:os-shelve:shelve action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-shelve:shelve:discoverable",
+ "description": "os_compute_api:os-shelve:shelve:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-shelve:shelve_offload",
+ "description": "os_compute_api:os-shelve:shelve_offload action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:discoverable",
+ "description": "os_compute_api:os-simple-tenant-usage:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:show",
+ "description": "os_compute_api:os-simple-tenant-usage:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:list",
+ "description": "os_compute_api:os-simple-tenant-usage:list action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-suspend-server:discoverable",
+ "description": "os_compute_api:os-suspend-server:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-suspend-server:suspend",
+ "description": "os_compute_api:os-suspend-server:suspend action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-suspend-server:resume",
+ "description": "os_compute_api:os-suspend-server:resume action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-tenant-networks",
+ "description": "os_compute_api:os-tenant-networks action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-tenant-networks:discoverable",
+ "description": "os_compute_api:os-tenant-networks:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-shelve:unshelve",
+ "description": "os_compute_api:os-shelve:unshelve action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-user-data:discoverable",
+ "description": "os_compute_api:os-user-data:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-virtual-interfaces",
+ "description": "os_compute_api:os-virtual-interfaces action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-virtual-interfaces:discoverable",
+ "description": "os_compute_api:os-virtual-interfaces:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-volumes",
+ "description": "os_compute_api:os-volumes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-volumes:discoverable",
+ "description": "os_compute_api:os-volumes:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:index",
+ "description": "os_compute_api:os-volumes-attachments:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:show",
+ "description": "os_compute_api:os-volumes-attachments:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:create",
+ "description": "os_compute_api:os-volumes-attachments:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:update",
+ "description": "os_compute_api:os-volumes-attachments:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:delete",
+ "description": "os_compute_api:os-volumes-attachments:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:discoverable",
+ "description": "os_compute_api:os-volumes-attachments:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-availability-zone:list",
+ "description": "os_compute_api:os-availability-zone:list action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-availability-zone:discoverable",
+ "description": "os_compute_api:os-availability-zone:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-availability-zone:detail",
+ "description": "os_compute_api:os-availability-zone:detail action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-used-limits",
+ "description": "os_compute_api:os-used-limits action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-used-limits:discoverable",
+ "description": "os_compute_api:os-used-limits:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-migrations:index",
+ "description": "os_compute_api:os-migrations:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-migrations:discoverable",
+ "description": "os_compute_api:os-migrations:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:create",
+ "description": "os_compute_api:os-assisted-volume-snapshots:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:delete",
+ "description": "os_compute_api:os-assisted-volume-snapshots:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:discoverable",
+ "description": "os_compute_api:os-assisted-volume-snapshots:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-console-auth-tokens",
+ "description": "os_compute_api:os-console-auth-tokens action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-external-events:create",
+ "description": "os_compute_api:os-server-external-events:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ }
+ ],
+ "action_assignments": [
+ {
+ "action": {
+ "name": "volume:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:get"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:get"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:get_all"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:get_all"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:get_volume_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:get_volume_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:delete_volume_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:delete_volume_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:update_volume_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:update_volume_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:get_volume_admin_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:get_volume_admin_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:update_volume_admin_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:update_volume_admin_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:get_snapshot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:get_snapshot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:get_all_snapshots"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:get_all_snapshots"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:create_snapshot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:create_snapshot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:delete_snapshot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:delete_snapshot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:update_snapshot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:update_snapshot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:extend"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:extend"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:update_readonly_flag"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:update_readonly_flag"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:retype"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:retype"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:types_manage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:types_manage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:types_extra_specs"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:types_extra_specs"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:access_types_qos_specs_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:access_types_qos_specs_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:access_types_extra_specs"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:access_types_extra_specs"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_type_access"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_type_access"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_type_access:addProjectAccess"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_type_access:addProjectAccess"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_type_access:removeProjectAccess"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_type_access:removeProjectAccess"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_type_encryption"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_type_encryption"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_encryption_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_encryption_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:extended_snapshot_attributes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:extended_snapshot_attributes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_image_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_image_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:quotas:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:quotas:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:quotas:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:quotas:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:quotas:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:quotas:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:quota_classes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:quota_classes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:quota_classes:validate_setup_for_nested_quota_use"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:quota_classes:validate_setup_for_nested_quota_use"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_admin_actions:reset_status"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_admin_actions:reset_status"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:snapshot_admin_actions:reset_status"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:snapshot_admin_actions:reset_status"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:backup_admin_actions:reset_status"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:backup_admin_actions:reset_status"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_admin_actions:force_delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_admin_actions:force_delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_admin_actions:force_detach"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_admin_actions:force_detach"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:snapshot_admin_actions:force_delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:snapshot_admin_actions:force_delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:backup_admin_actions:force_delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:backup_admin_actions:force_delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_admin_actions:migrate_volume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_admin_actions:migrate_volume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_admin_actions:migrate_volume_completion"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_admin_actions:migrate_volume_completion"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_host_attribute"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_host_attribute"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_tenant_attribute"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_tenant_attribute"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_mig_status_attribute"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_mig_status_attribute"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:hosts"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:hosts"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:services:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:services:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:services:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:services:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_manage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_manage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_unmanage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_unmanage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:capabilities"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:capabilities"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:create_transfer"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:create_transfer"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:accept_transfer"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:accept_transfer"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:delete_transfer"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:delete_transfer"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:get_all_transfers"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:get_all_transfers"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:replication:promote"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:replication:promote"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:replication:reenable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:replication:reenable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:enable_replication"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:enable_replication"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:disable_replication"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:disable_replication"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:failover_replication"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:failover_replication"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:list_replication_targets"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:list_replication_targets"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "backup:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "backup:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "backup:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "backup:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "backup:get"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "backup:get"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "backup:get_all"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "backup:get_all"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "backup:restore"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "backup:restore"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "backup:backup-import"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "backup:backup-import"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "backup:backup-export"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "backup:backup-export"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "snapshot_extension:snapshot_actions:update_snapshot_status"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "snapshot_extension:snapshot_actions:update_snapshot_status"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "snapshot_extension:snapshot_manage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "snapshot_extension:snapshot_manage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "snapshot_extension:snapshot_unmanage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "snapshot_extension:snapshot_unmanage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:get"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:get"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:get_all"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:get_all"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:create_cgsnapshot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:create_cgsnapshot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:delete_cgsnapshot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:delete_cgsnapshot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:get_cgsnapshot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:get_cgsnapshot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:get_all_cgsnapshots"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:get_all_cgsnapshots"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "scheduler_extension:scheduler_stats:get_pools"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "scheduler_extension:scheduler_stats:get_pools"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_images"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_images"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "modify_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "modify_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "publicize_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "publicize_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "communitize_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "communitize_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "copy_from"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "copy_from"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "download_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "download_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "upload_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "upload_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_image_location"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_image_location"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_image_location"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_image_location"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "set_image_location"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "set_image_location"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_member"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_member"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_member"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_member"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_member"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_member"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_members"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_members"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "modify_member"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "modify_member"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "manage_image_cache"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "manage_image_cache"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_task"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_task"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_tasks"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_tasks"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_task"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_task"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "modify_task"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "modify_task"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "tasks_api_access"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "tasks_api_access"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "deactivate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "deactivate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "reactivate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "reactivate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_namespace"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_namespace"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_namespaces"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_namespaces"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "modify_metadef_namespace"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "modify_metadef_namespace"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_metadef_namespace"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_metadef_namespace"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_object"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_object"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_objects"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_objects"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "modify_metadef_object"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "modify_metadef_object"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_metadef_object"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_metadef_object"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "list_metadef_resource_types"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "list_metadef_resource_types"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_resource_type"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_resource_type"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_metadef_resource_type_association"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_metadef_resource_type_association"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_property"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_property"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_properties"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_properties"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "modify_metadef_property"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "modify_metadef_property"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_metadef_property"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_metadef_property"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_tag"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_tag"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_tags"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_tags"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "modify_metadef_tag"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "modify_metadef_tag"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_metadef_tag"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_metadef_tag"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_metadef_tags"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_metadef_tags"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_region"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_region"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_regions"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_regions"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_region"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_region"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_region"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_region"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_region"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_region"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_services"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_services"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_endpoints"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_endpoints"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_registered_limit"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_registered_limit"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_registered_limits"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_registered_limits"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_registered_limits"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_registered_limits"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_registered_limits"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_registered_limits"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_registered_limit"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_registered_limit"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_limit"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_limit"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_limits"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_limits"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_limits"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_limits"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_limits"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_limits"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_limit"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_limit"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_domain"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_domain"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_domains"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_domains"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_domain"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_domain"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_domain"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_domain"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_domain"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_domain"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_and_matching_target_project_domain_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_and_matching_target_project_domain_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_and_matching_project_domain_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_and_matching_project_domain_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_projects"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_projects"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_user_projects"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_user_projects"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_project_tag"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_project_tag"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_project_tag"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_project_tag"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_project_tag"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_project_tag"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_project_tags"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_project_tags"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_project_tags"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_project_tags"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_project_tags"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_project_tags"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_and_matching_target_user_domain_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_and_matching_target_user_domain_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_and_matching_user_domain_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_and_matching_user_domain_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_users"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_users"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_and_matching_target_group_domain_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_and_matching_target_group_domain_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_and_matching_group_domain_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_and_matching_group_domain_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_groups"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_groups"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_groups_for_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_groups_for_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_users_in_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_users_in_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:remove_user_from_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:remove_user_from_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_user_in_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_user_in_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:add_user_to_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:add_user_to_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_credentials"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_credentials"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:ec2_get_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:ec2_get_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:ec2_list_credentials"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:ec2_list_credentials"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:ec2_create_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:ec2_create_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:ec2_delete_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:ec2_delete_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_roles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_roles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_domain_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_domain_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_domain_roles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_domain_roles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_domain_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_domain_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_domain_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_domain_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_domain_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_domain_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "domain_admin_matches_domain_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "domain_admin_matches_domain_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_domain_roles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_domain_roles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "domain_admin_matches_target_domain_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "domain_admin_matches_target_domain_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "project_admin_matches_target_domain_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "project_admin_matches_target_domain_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "list_domain_roles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "list_domain_roles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "domain_admin_matches_filter_on_list_domain_roles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "domain_admin_matches_filter_on_list_domain_roles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "project_admin_matches_filter_on_list_domain_roles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "project_admin_matches_filter_on_list_domain_roles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_and_matching_prior_role_domain_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_and_matching_prior_role_domain_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "implied_role_matches_prior_role_domain_or_global"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "implied_role_matches_prior_role_domain_or_global"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_implied_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_implied_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_implied_roles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_implied_roles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_implied_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_implied_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_implied_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_implied_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_role_inference_rules"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_role_inference_rules"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_implied_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_implied_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_system_grants_for_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_system_grants_for_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_system_grant_for_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_system_grant_for_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_system_grant_for_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_system_grant_for_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:revoke_system_grant_for_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:revoke_system_grant_for_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_system_grants_for_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_system_grants_for_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_system_grant_for_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_system_grant_for_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_system_grant_for_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_system_grant_for_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:revoke_system_grant_for_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:revoke_system_grant_for_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_grant"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_grant"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_grant"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_grant"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:revoke_grant"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:revoke_grant"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "domain_admin_for_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "domain_admin_for_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "domain_admin_for_global_role_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "domain_admin_for_global_role_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "domain_admin_for_domain_role_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "domain_admin_for_domain_role_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "domain_admin_grant_match"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "domain_admin_grant_match"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "project_admin_for_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "project_admin_for_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "project_admin_for_global_role_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "project_admin_for_global_role_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "project_admin_for_domain_role_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "project_admin_for_domain_role_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "domain_admin_for_list_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "domain_admin_for_list_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "project_admin_for_list_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "project_admin_for_list_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_on_domain_filter"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_on_domain_filter"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_on_project_filter"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_on_project_filter"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_on_domain_of_project_filter"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_on_domain_of_project_filter"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_role_assignments"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_role_assignments"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_role_assignments_for_tree"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_role_assignments_for_tree"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_policies"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_policies"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_token"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_token"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:validate_token"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:validate_token"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:validate_token_head"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:validate_token_head"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:revocation_list"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:revocation_list"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:revoke_token"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:revoke_token"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_trust"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_trust"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_trusts"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_trusts"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_roles_for_trust"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_roles_for_trust"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_role_for_trust"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_role_for_trust"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_trust"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_trust"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_trust"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_trust"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_consumer"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_consumer"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_consumer"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_consumer"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_consumers"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_consumers"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_consumer"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_consumer"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_consumer"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_consumer"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:authorize_request_token"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:authorize_request_token"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_access_token_roles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_access_token_roles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_access_token_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_access_token_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_access_tokens"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_access_tokens"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_access_token"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_access_token"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_access_token"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_access_token"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_projects_for_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_projects_for_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:add_endpoint_to_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:add_endpoint_to_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_endpoint_in_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_endpoint_in_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_endpoints_for_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_endpoints_for_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:remove_endpoint_from_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:remove_endpoint_from_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_endpoint_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_endpoint_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_endpoint_groups"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_endpoint_groups"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_endpoint_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_endpoint_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_endpoint_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_endpoint_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_endpoint_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_endpoint_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_projects_associated_with_endpoint_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_projects_associated_with_endpoint_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_endpoints_associated_with_endpoint_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_endpoints_associated_with_endpoint_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_endpoint_group_in_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_endpoint_group_in_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_endpoint_groups_for_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_endpoint_groups_for_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:add_endpoint_group_to_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:add_endpoint_group_to_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:remove_endpoint_group_from_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:remove_endpoint_group_from_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_identity_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_identity_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_identity_providers"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_identity_providers"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_identity_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_identity_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_identity_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_identity_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_identity_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_identity_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_protocol"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_protocol"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_protocol"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_protocol"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_protocol"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_protocol"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_protocols"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_protocols"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_protocol"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_protocol"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_mapping"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_mapping"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_mapping"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_mapping"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_mappings"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_mappings"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_mapping"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_mapping"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_mapping"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_mapping"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_service_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_service_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_service_providers"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_service_providers"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_service_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_service_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_service_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_service_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_service_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_service_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_auth_catalog"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_auth_catalog"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_auth_projects"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_auth_projects"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_auth_domains"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_auth_domains"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_auth_system"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_auth_system"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_projects_for_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_projects_for_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_domains_for_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_domains_for_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_revoke_events"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_revoke_events"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_policy_association_for_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_policy_association_for_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_policy_association_for_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_policy_association_for_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_policy_association_for_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_policy_association_for_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_policy_association_for_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_policy_association_for_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_policy_association_for_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_policy_association_for_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_policy_association_for_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_policy_association_for_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_policy_association_for_region_and_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_policy_association_for_region_and_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_policy_association_for_region_and_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_policy_association_for_region_and_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_policy_association_for_region_and_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_policy_association_for_region_and_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_policy_for_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_policy_for_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_endpoints_for_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_endpoints_for_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_domain_config"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_domain_config"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_domain_config"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_domain_config"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_security_compliance_domain_config"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_security_compliance_domain_config"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_domain_config"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_domain_config"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_domain_config"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_domain_config"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_domain_config_default"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_domain_config_default"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_application_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_application_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_application_credentials"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_application_credentials"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_application_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_application_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_application_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_application_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_subnet"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_subnet"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_subnet:segment_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_subnet:segment_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_subnet:service_types"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_subnet:service_types"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_subnet"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_subnet"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_subnet:segment_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_subnet:segment_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_subnet"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_subnet"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_subnet:service_types"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_subnet:service_types"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_subnet"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_subnet"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_subnetpool"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_subnetpool"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_subnetpool:shared"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_subnetpool:shared"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_subnetpool:is_default"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_subnetpool:is_default"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_subnetpool"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_subnetpool"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_subnetpool"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_subnetpool"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_subnetpool:is_default"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_subnetpool:is_default"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_subnetpool"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_subnetpool"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_address_scope"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_address_scope"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_address_scope:shared"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_address_scope:shared"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_address_scope"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_address_scope"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_address_scope"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_address_scope"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_address_scope:shared"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_address_scope:shared"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_address_scope"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_address_scope"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_network:router:external"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_network:router:external"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_network:segments"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_network:segments"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_network:provider:network_type"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_network:provider:network_type"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_network:provider:physical_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_network:provider:physical_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_network:provider:segmentation_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_network:provider:segmentation_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_network:queue_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_network:queue_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_network_ip_availabilities"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_network_ip_availabilities"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_network_ip_availability"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_network_ip_availability"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_network:shared"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_network:shared"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_network:router:external"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_network:router:external"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_network:is_default"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_network:is_default"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_network:segments"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_network:segments"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_network:provider:network_type"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_network:provider:network_type"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_network:provider:physical_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_network:provider:physical_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_network:provider:segmentation_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_network:provider:segmentation_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_network:segments"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_network:segments"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_network:shared"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_network:shared"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_network:provider:network_type"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_network:provider:network_type"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_network:provider:physical_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_network:provider:physical_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_network:provider:segmentation_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_network:provider:segmentation_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_network:router:external"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_network:router:external"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_segment"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_segment"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_segment"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_segment"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_segment"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_segment"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_segment"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_segment"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network_device"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network_device"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_port"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_port"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_port:device_owner"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_port:device_owner"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_port:mac_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_port:mac_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_port:fixed_ips:ip_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_port:fixed_ips:ip_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_port:fixed_ips:subnet_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_port:fixed_ips:subnet_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_port:port_security_enabled"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_port:port_security_enabled"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_port:binding:host_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_port:binding:host_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_port:binding:profile"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_port:binding:profile"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_port:mac_learning_enabled"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_port:mac_learning_enabled"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_port:allowed_address_pairs"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_port:allowed_address_pairs"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_port"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_port"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_port:queue_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_port:queue_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_port:binding:vif_type"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_port:binding:vif_type"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_port:binding:vif_details"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_port:binding:vif_details"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_port:binding:host_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_port:binding:host_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_port:binding:profile"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_port:binding:profile"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_port"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_port"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_port:device_owner"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_port:device_owner"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_port:mac_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_port:mac_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_port:fixed_ips:ip_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_port:fixed_ips:ip_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_port:fixed_ips:subnet_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_port:fixed_ips:subnet_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_port:port_security_enabled"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_port:port_security_enabled"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_port:binding:host_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_port:binding:host_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_port:binding:profile"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_port:binding:profile"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_port:mac_learning_enabled"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_port:mac_learning_enabled"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_port:allowed_address_pairs"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_port:allowed_address_pairs"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_port:data_plane_status"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_port:data_plane_status"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_port"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_port"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_router:ha"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_router:ha"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_router"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_router"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_router:external_gateway_info:enable_snat"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_router:external_gateway_info:enable_snat"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_router:distributed"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_router:distributed"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_router:ha"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_router:ha"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_router"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_router"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_router:distributed"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_router:distributed"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_router"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_router"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_router:external_gateway_info"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_router:external_gateway_info"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_router:external_gateway_info:network_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_router:external_gateway_info:network_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_router:external_gateway_info:enable_snat"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_router:external_gateway_info:enable_snat"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_router:distributed"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_router:distributed"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_router:ha"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_router:ha"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_router"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_router"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_router_interface"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_router_interface"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "remove_router_interface"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "remove_router_interface"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_router:external_gateway_info:external_fixed_ips"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_router:external_gateway_info:external_fixed_ips"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_router:external_gateway_info:external_fixed_ips"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_router:external_gateway_info:external_fixed_ips"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_qos_queue"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_qos_queue"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_qos_queue"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_qos_queue"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_agent"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_agent"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_agent"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_agent"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_agent"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_agent"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_dhcp-network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_dhcp-network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_dhcp-network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_dhcp-network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_dhcp-networks"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_dhcp-networks"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_l3-router"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_l3-router"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_l3-router"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_l3-router"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_l3-routers"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_l3-routers"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_dhcp-agents"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_dhcp-agents"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_l3-agents"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_l3-agents"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_loadbalancer-agent"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_loadbalancer-agent"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_loadbalancer-pools"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_loadbalancer-pools"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_agent-loadbalancers"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_agent-loadbalancers"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_loadbalancer-hosting-agent"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_loadbalancer-hosting-agent"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_floatingip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_floatingip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_floatingip:floating_ip_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_floatingip:floating_ip_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_floatingip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_floatingip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_floatingip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_floatingip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_floatingip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_floatingip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_network_profile"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_network_profile"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_network_profile"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_network_profile"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_network_profile"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_network_profile"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_network_profiles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_network_profiles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_network_profile"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_network_profile"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_policy_profiles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_policy_profiles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_policy_profiles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_policy_profiles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_policy_profile"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_policy_profile"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_metering_label"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_metering_label"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_metering_label"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_metering_label"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metering_label"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metering_label"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_metering_label_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_metering_label_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_metering_label_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_metering_label_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metering_label_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metering_label_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_service_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_service_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_lsn"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_lsn"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_lsn"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_lsn"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_flavor"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_flavor"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_flavor"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_flavor"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_flavor"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_flavor"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_flavors"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_flavors"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_flavor"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_flavor"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_service_profile"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_service_profile"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_service_profile"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_service_profile"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_service_profile"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_service_profile"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_service_profiles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_service_profiles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_service_profile"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_service_profile"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_policy_bandwidth_limit_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_policy_bandwidth_limit_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_policy_bandwidth_limit_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_policy_bandwidth_limit_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_policy_bandwidth_limit_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_policy_bandwidth_limit_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_policy_bandwidth_limit_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_policy_bandwidth_limit_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_policy_dscp_marking_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_policy_dscp_marking_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_policy_dscp_marking_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_policy_dscp_marking_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_policy_dscp_marking_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_policy_dscp_marking_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_policy_dscp_marking_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_policy_dscp_marking_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_rule_type"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_rule_type"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_policy_minimum_bandwidth_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_policy_minimum_bandwidth_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_policy_minimum_bandwidth_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_policy_minimum_bandwidth_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_policy_minimum_bandwidth_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_policy_minimum_bandwidth_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_policy_minimum_bandwidth_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_policy_minimum_bandwidth_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "restrict_wildcard"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "restrict_wildcard"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_rbac_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_rbac_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_rbac_policy:target_tenant"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_rbac_policy:target_tenant"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_rbac_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_rbac_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_rbac_policy:target_tenant"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_rbac_policy:target_tenant"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_rbac_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_rbac_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_rbac_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_rbac_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_flavor_service_profile"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_flavor_service_profile"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_flavor_service_profile"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_flavor_service_profile"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_flavor_service_profile"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_flavor_service_profile"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_auto_allocated_topology"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_auto_allocated_topology"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_trunk"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_trunk"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_trunk"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_trunk"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_trunk"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_trunk"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_subports"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_subports"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_subports"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_subports"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "remove_subports"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "remove_subports"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_security_groups"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_security_groups"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_security_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_security_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_security_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_security_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_security_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_security_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_security_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_security_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_security_group_rules"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_security_group_rules"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_security_group_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_security_group_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_security_group_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_security_group_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_security_group_rule"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_security_group_rule"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_loggable_resources"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_loggable_resources"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "create_log"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "create_log"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "update_log"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "update_log"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_log"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_log"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_logs"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_logs"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_log"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_log"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "cells_scheduler_filter:TargetCellFilter"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "cells_scheduler_filter:TargetCellFilter"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:create:attach_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:create:attach_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:create:attach_volume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:create:attach_volume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:create:forced_host"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:create:forced_host"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_all"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_all"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_all_tenants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_all_tenants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_instance_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_instance_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_all_instance_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_all_instance_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_all_instance_system_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_all_instance_system_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:update_instance_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:update_instance_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:delete_instance_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:delete_instance_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_instance_faults"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_instance_faults"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_diagnostics"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_diagnostics"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_instance_diagnostics"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_instance_diagnostics"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:start"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:start"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:stop"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:stop"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_lock"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_lock"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:lock"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:lock"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:unlock"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:unlock"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:unlock_override"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:unlock_override"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_vnc_console"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_vnc_console"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_spice_console"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_spice_console"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_rdp_console"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_rdp_console"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_serial_console"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_serial_console"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_mks_console"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_mks_console"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_console_output"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_console_output"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:reset_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:reset_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:inject_network_info"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:inject_network_info"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:add_fixed_ip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:add_fixed_ip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:remove_fixed_ip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:remove_fixed_ip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:attach_volume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:attach_volume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:detach_volume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:detach_volume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:swap_volume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:swap_volume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:attach_interface"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:attach_interface"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:detach_interface"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:detach_interface"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:set_admin_password"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:set_admin_password"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:rescue"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:rescue"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:unrescue"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:unrescue"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:suspend"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:suspend"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:resume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:resume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:pause"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:pause"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:unpause"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:unpause"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:shelve"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:shelve"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:shelve_offload"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:shelve_offload"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:unshelve"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:unshelve"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:snapshot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:snapshot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:snapshot_volume_backed"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:snapshot_volume_backed"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:backup"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:backup"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:resize"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:resize"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:confirm_resize"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:confirm_resize"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:revert_resize"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:revert_resize"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:rebuild"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:rebuild"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:reboot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:reboot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:soft_delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:soft_delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:force_delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:force_delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:security_groups:add_to_instance"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:security_groups:add_to_instance"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:security_groups:remove_from_instance"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:security_groups:remove_from_instance"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:restore"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:restore"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:volume_snapshot_create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:volume_snapshot_create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:volume_snapshot_delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:volume_snapshot_delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:accounts"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:accounts"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:pause"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:pause"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:unpause"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:unpause"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:suspend"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:suspend"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:resume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:resume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:lock"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:lock"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:unlock"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:unlock"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:resetNetwork"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:resetNetwork"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:injectNetworkInfo"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:injectNetworkInfo"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:createBackup"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:createBackup"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:migrateLive"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:migrateLive"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:resetState"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:resetState"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:migrate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:migrate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:aggregates"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:aggregates"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:agents"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:agents"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:attach_interfaces"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:attach_interfaces"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:baremetal_nodes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:baremetal_nodes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:cells"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:cells"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:cells:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:cells:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:cells:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:cells:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:cells:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:cells:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:cells:sync_instances"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:cells:sync_instances"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:certificates"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:certificates"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:cloudpipe"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:cloudpipe"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:cloudpipe_update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:cloudpipe_update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:config_drive"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:config_drive"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:console_output"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:console_output"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:consoles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:consoles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:createserverext"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:createserverext"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:deferred_delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:deferred_delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:disk_config"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:disk_config"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:evacuate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:evacuate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:extended_server_attributes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:extended_server_attributes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:extended_status"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:extended_status"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:extended_availability_zone"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:extended_availability_zone"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:extended_ips"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:extended_ips"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:extended_ips_mac"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:extended_ips_mac"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:extended_vif_net"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:extended_vif_net"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:extended_volumes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:extended_volumes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:fixed_ips"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:fixed_ips"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavor_access"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavor_access"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavor_access:addTenantAccess"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavor_access:addTenantAccess"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavor_access:removeTenantAccess"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavor_access:removeTenantAccess"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavor_disabled"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavor_disabled"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavor_rxtx"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavor_rxtx"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavor_swap"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavor_swap"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavorextradata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavorextradata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavorextraspecs:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavorextraspecs:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavorextraspecs:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavorextraspecs:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavorextraspecs:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavorextraspecs:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavorextraspecs:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavorextraspecs:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavorextraspecs:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavorextraspecs:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavormanage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavormanage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:floating_ip_dns"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:floating_ip_dns"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:floating_ip_pools"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:floating_ip_pools"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:floating_ips"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:floating_ips"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:floating_ips_bulk"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:floating_ips_bulk"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:fping"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:fping"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:fping:all_tenants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:fping:all_tenants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:hide_server_addresses"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:hide_server_addresses"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:hosts"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:hosts"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:hypervisors"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:hypervisors"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:image_size"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:image_size"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:instance_actions"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:instance_actions"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:instance_actions:events"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:instance_actions:events"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:instance_usage_audit_log"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:instance_usage_audit_log"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:keypairs"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:keypairs"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:keypairs:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:keypairs:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:keypairs:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:keypairs:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:keypairs:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:keypairs:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:keypairs:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:keypairs:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:multinic"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:multinic"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:networks"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:networks"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:networks:view"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:networks:view"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:networks_associate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:networks_associate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:os-tenant-networks"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:os-tenant-networks"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:quotas:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:quotas:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:quotas:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:quotas:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:quotas:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:quotas:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:quota_classes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:quota_classes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:rescue"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:rescue"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:security_group_default_rules"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:security_group_default_rules"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:security_groups"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:security_groups"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:server_diagnostics"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:server_diagnostics"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:server_groups"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:server_groups"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:server_password"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:server_password"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:server_usage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:server_usage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:services"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:services"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:shelve"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:shelve"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:shelveOffload"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:shelveOffload"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:simple_tenant_usage:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:simple_tenant_usage:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:simple_tenant_usage:list"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:simple_tenant_usage:list"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:unshelve"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:unshelve"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:users"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:users"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:virtual_interfaces"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:virtual_interfaces"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:virtual_storage_arrays"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:virtual_storage_arrays"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:volumes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:volumes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:volume_attachments:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:volume_attachments:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:volume_attachments:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:volume_attachments:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:volume_attachments:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:volume_attachments:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:volume_attachments:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:volume_attachments:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:volume_attachments:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:volume_attachments:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:volumetypes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:volumetypes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:availability_zone:list"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:availability_zone:list"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:availability_zone:detail"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:availability_zone:detail"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:used_limits_for_admin"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:used_limits_for_admin"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:migrations:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:migrations:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:os-assisted-volume-snapshots:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:os-assisted-volume-snapshots:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:os-assisted-volume-snapshots:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:os-assisted-volume-snapshots:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:console_auth_tokens"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:console_auth_tokens"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:os-server-external-events:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:os-server-external-events:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_all"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_all"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:associate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:associate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:disassociate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:disassociate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_vifs_by_instance"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_vifs_by_instance"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:allocate_for_instance"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:allocate_for_instance"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:deallocate_for_instance"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:deallocate_for_instance"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:validate_networks"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:validate_networks"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_instance_uuids_by_ip_filter"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_instance_uuids_by_ip_filter"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_instance_id_by_floating_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_instance_id_by_floating_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:setup_networks_on_host"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:setup_networks_on_host"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_backdoor_port"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_backdoor_port"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_floating_ip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_floating_ip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_floating_ip_pools"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_floating_ip_pools"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_floating_ip_by_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_floating_ip_by_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_floating_ips_by_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_floating_ips_by_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_floating_ips_by_fixed_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_floating_ips_by_fixed_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:allocate_floating_ip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:allocate_floating_ip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:associate_floating_ip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:associate_floating_ip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:disassociate_floating_ip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:disassociate_floating_ip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:release_floating_ip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:release_floating_ip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:migrate_instance_start"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:migrate_instance_start"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:migrate_instance_finish"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:migrate_instance_finish"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_fixed_ip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_fixed_ip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_fixed_ip_by_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_fixed_ip_by_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:add_fixed_ip_to_instance"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:add_fixed_ip_to_instance"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:remove_fixed_ip_from_instance"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:remove_fixed_ip_from_instance"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:add_network_to_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:add_network_to_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_instance_nw_info"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_instance_nw_info"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_dns_domains"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_dns_domains"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:add_dns_entry"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:add_dns_entry"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:modify_dns_entry"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:modify_dns_entry"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:delete_dns_entry"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:delete_dns_entry"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_dns_entries_by_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_dns_entries_by_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_dns_entries_by_name"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_dns_entries_by_name"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:create_private_dns_domain"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:create_private_dns_domain"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:create_public_dns_domain"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:create_public_dns_domain"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:delete_dns_domain"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:delete_dns_domain"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:attach_external_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:attach_external_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_vif_by_mac_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_vif_by_mac_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:detail:get_all_tenants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:detail:get_all_tenants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:index:get_all_tenants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:index:get_all_tenants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:confirm_resize"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:confirm_resize"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:create:attach_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:create:attach_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:create:attach_volume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:create:attach_volume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:create:forced_host"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:create:forced_host"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:detail"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:detail"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:reboot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:reboot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:rebuild"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:rebuild"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:resize"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:resize"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:revert_resize"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:revert_resize"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:create_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:create_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:create_image:allow_volume_backed"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:create_image:allow_volume_backed"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:start"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:start"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:stop"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:stop"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-access-ips:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-access-ips:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-access-ips"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-access-ips"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-admin-actions"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-admin-actions"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-admin-actions:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-admin-actions:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-admin-actions:reset_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-admin-actions:reset_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-admin-actions:inject_network_info"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-admin-actions:inject_network_info"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-admin-actions:reset_state"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-admin-actions:reset_state"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-admin-password"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-admin-password"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-admin-password:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-admin-password:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:add_host"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:add_host"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:remove_host"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:remove_host"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:set_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:set_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-agents"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-agents"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-agents:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-agents:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-attach-interfaces"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-attach-interfaces"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-attach-interfaces:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-attach-interfaces:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-baremetal-nodes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-baremetal-nodes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-baremetal-nodes:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-baremetal-nodes:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-block-device-mapping-v1:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-block-device-mapping-v1:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-cells"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-cells"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-cells:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-cells:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-cells:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-cells:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-cells:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-cells:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-cells:sync_instances"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-cells:sync_instances"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-cells:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-cells:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-certificates:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-certificates:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-certificates:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-certificates:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-certificates:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-certificates:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-cloudpipe"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-cloudpipe"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-cloudpipe:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-cloudpipe:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-config-drive"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-config-drive"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-consoles:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-consoles:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-consoles:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-consoles:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-consoles:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-consoles:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-consoles:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-consoles:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-consoles:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-consoles:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-console-output:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-console-output:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-console-output"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-console-output"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-remote-consoles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-remote-consoles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-remote-consoles:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-remote-consoles:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-create-backup:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-create-backup:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-create-backup"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-create-backup"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-deferred-delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-deferred-delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-deferred-delete:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-deferred-delete:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-disk-config"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-disk-config"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-disk-config:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-disk-config:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-evacuate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-evacuate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-evacuate:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-evacuate:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-extended-server-attributes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-extended-server-attributes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-extended-server-attributes:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-extended-server-attributes:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-extended-status"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-extended-status"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-extended-status:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-extended-status:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-extended-availability-zone"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-extended-availability-zone"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-extended-availability-zone:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-extended-availability-zone:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:extensions"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:extensions"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:extension_info:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:extension_info:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-extended-volumes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-extended-volumes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-extended-volumes:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-extended-volumes:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-fixed-ips"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-fixed-ips"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-fixed-ips:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-fixed-ips:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-access"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-access"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-access:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-access:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-access:remove_tenant_access"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-access:remove_tenant_access"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-access:add_tenant_access"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-access:add_tenant_access"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-rxtx"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-rxtx"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-rxtx:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-rxtx:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:flavors:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:flavors:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-extra-specs:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-extra-specs:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-extra-specs:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-extra-specs:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-extra-specs:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-extra-specs:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-manage:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-manage:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-manage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-manage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ip-dns"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ip-dns"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ip-dns:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ip-dns:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ip-dns:domain:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ip-dns:domain:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ip-dns:domain:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ip-dns:domain:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ip-pools"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ip-pools"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ip-pools:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ip-pools:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ips"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ips"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ips:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ips:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ips-bulk"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ips-bulk"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ips-bulk:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ips-bulk:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-fping"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-fping"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-fping:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-fping:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-fping:all_tenants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-fping:all_tenants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-hide-server-addresses"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-hide-server-addresses"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-hide-server-addresses:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-hide-server-addresses:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-hosts"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-hosts"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-hosts:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-hosts:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-hypervisors"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-hypervisors"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-hypervisors:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-hypervisors:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:images:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:images:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:image-size"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:image-size"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:image-size:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:image-size:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-instance-actions"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-instance-actions"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-instance-actions:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-instance-actions:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-instance-actions:events"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-instance-actions:events"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-instance-usage-audit-log"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-instance-usage-audit-log"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-instance-usage-audit-log:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-instance-usage-audit-log:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:ips:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:ips:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:ips:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:ips:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:ips:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:ips:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-keypairs:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-keypairs:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-keypairs"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-keypairs"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-keypairs:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-keypairs:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-keypairs:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-keypairs:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-keypairs:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-keypairs:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-keypairs:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-keypairs:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:limits:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:limits:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:limits"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:limits"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-lock-server:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-lock-server:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-lock-server:lock"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-lock-server:lock"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-lock-server:unlock"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-lock-server:unlock"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-lock-server:unlock:unlock_override"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-lock-server:unlock:unlock_override"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-migrate-server:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-migrate-server:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-migrate-server:migrate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-migrate-server:migrate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-migrate-server:migrate_live"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-migrate-server:migrate_live"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-multinic"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-multinic"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-multinic:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-multinic:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-networks"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-networks"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-networks:view"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-networks:view"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-networks:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-networks:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-networks-associate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-networks-associate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-networks-associate:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-networks-associate:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-pause-server:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-pause-server:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-pause-server:pause"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-pause-server:pause"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-pause-server:unpause"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-pause-server:unpause"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-pci:pci_servers"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-pci:pci_servers"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-pci:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-pci:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-pci:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-pci:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-pci:detail"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-pci:detail"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-pci:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-pci:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-personality:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-personality:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-preserve-ephemeral-rebuild:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-preserve-ephemeral-rebuild:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-sets:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-sets:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-sets:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-sets:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-sets:defaults"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-sets:defaults"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-sets:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-sets:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-sets:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-sets:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-sets:detail"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-sets:detail"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-class-sets:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-class-sets:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-class-sets:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-class-sets:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-class-sets:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-class-sets:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-rescue"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-rescue"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-rescue:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-rescue:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-scheduler-hints:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-scheduler-hints:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-security-group-default-rules:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-security-group-default-rules:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-security-group-default-rules"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-security-group-default-rules"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-security-groups"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-security-groups"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-security-groups:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-security-groups:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-diagnostics"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-diagnostics"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-diagnostics:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-diagnostics:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-password"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-password"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-password:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-password:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-usage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-usage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-usage:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-usage:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-groups"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-groups"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-groups:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-groups:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-services"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-services"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-services:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-services:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:server-metadata:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:server-metadata:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:server-metadata:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:server-metadata:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:server-metadata:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:server-metadata:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:server-metadata:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:server-metadata:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:server-metadata:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:server-metadata:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:server-metadata:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:server-metadata:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:server-metadata:update_all"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:server-metadata:update_all"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-shelve:shelve"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-shelve:shelve"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-shelve:shelve:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-shelve:shelve:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-shelve:shelve_offload"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-shelve:shelve_offload"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-simple-tenant-usage:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-simple-tenant-usage:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-simple-tenant-usage:list"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:list"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-suspend-server:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-suspend-server:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-suspend-server:suspend"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-suspend-server:suspend"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-suspend-server:resume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-suspend-server:resume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-tenant-networks"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-tenant-networks"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-tenant-networks:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-tenant-networks:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-shelve:unshelve"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-shelve:unshelve"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-user-data:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-user-data:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-virtual-interfaces"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-virtual-interfaces"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-virtual-interfaces:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-virtual-interfaces:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-volumes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-volumes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-volumes:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-volumes:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-volumes-attachments:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-volumes-attachments:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-volumes-attachments:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-volumes-attachments:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-volumes-attachments:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-volumes-attachments:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-availability-zone:list"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-availability-zone:list"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-availability-zone:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-availability-zone:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-availability-zone:detail"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-availability-zone:detail"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-used-limits"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-used-limits"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-used-limits:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-used-limits:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-migrations:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-migrations:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-migrations:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-migrations:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-assisted-volume-snapshots:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-assisted-volume-snapshots:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-assisted-volume-snapshots:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-console-auth-tokens"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-console-auth-tokens"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-external-events:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-external-events:create"
+ }
+ ]
+ }
+ ],
+ "meta_rules": [
+ {
+ "name": "rbac",
+ "description": "",
+ "subject_categories": [
+ {
+ "name": "role"
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "id"
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "action_id"
+ }
+ ]
+ }
+ ],
+ "rules": [
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:get"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:get_all"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:get_volume_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:delete_volume_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:update_volume_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:get_volume_admin_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:update_volume_admin_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:get_snapshot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:get_all_snapshots"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:create_snapshot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:delete_snapshot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:update_snapshot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:extend"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:update_readonly_flag"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:retype"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:types_manage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:types_extra_specs"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:access_types_qos_specs_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:access_types_extra_specs"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_type_access"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_type_access:addProjectAccess"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_type_access:removeProjectAccess"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_type_encryption"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_encryption_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:extended_snapshot_attributes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_image_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:quotas:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:quotas:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:quotas:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:quota_classes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:quota_classes:validate_setup_for_nested_quota_use"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_admin_actions:reset_status"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:snapshot_admin_actions:reset_status"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:backup_admin_actions:reset_status"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_admin_actions:force_delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_admin_actions:force_detach"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:snapshot_admin_actions:force_delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:backup_admin_actions:force_delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_admin_actions:migrate_volume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_admin_actions:migrate_volume_completion"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_host_attribute"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_tenant_attribute"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_mig_status_attribute"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:hosts"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:services:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:services:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_manage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_unmanage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:capabilities"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:create_transfer"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:accept_transfer"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:delete_transfer"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:get_all_transfers"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:replication:promote"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:replication:reenable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:enable_replication"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:disable_replication"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:failover_replication"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:list_replication_targets"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "backup:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "backup:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "backup:get"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "backup:get_all"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "backup:restore"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "backup:backup-import"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "backup:backup-export"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "snapshot_extension:snapshot_actions:update_snapshot_status"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "snapshot_extension:snapshot_manage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "snapshot_extension:snapshot_unmanage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:get"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:get_all"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:create_cgsnapshot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:delete_cgsnapshot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:get_cgsnapshot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:get_all_cgsnapshots"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "scheduler_extension:scheduler_stats:get_pools"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_images"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "modify_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "publicize_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "communitize_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "copy_from"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "download_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "upload_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_image_location"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_image_location"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "set_image_location"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_member"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_member"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_member"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_members"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "modify_member"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "manage_image_cache"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_task"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_tasks"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_task"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "modify_task"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "tasks_api_access"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "deactivate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "reactivate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_namespace"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_namespaces"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "modify_metadef_namespace"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_metadef_namespace"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_object"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_objects"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "modify_metadef_object"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_metadef_object"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "list_metadef_resource_types"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_resource_type"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_metadef_resource_type_association"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_property"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_properties"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "modify_metadef_property"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_metadef_property"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_tag"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_tags"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "modify_metadef_tag"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_metadef_tag"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_metadef_tags"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_region"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_regions"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_region"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_region"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_region"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_services"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_endpoints"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_registered_limit"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_registered_limits"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_registered_limits"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_registered_limits"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_registered_limit"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_limit"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_limits"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_limits"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_limits"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_limit"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_domain"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_domains"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_domain"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_domain"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_domain"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_and_matching_target_project_domain_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_and_matching_project_domain_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_projects"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_user_projects"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_project_tag"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_project_tag"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_project_tag"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_project_tags"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_project_tags"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_project_tags"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_and_matching_target_user_domain_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_and_matching_user_domain_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_users"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_and_matching_target_group_domain_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_and_matching_group_domain_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_groups"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_groups_for_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_users_in_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:remove_user_from_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_user_in_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:add_user_to_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_credentials"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:ec2_get_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:ec2_list_credentials"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:ec2_create_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:ec2_delete_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_roles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_domain_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_domain_roles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_domain_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_domain_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_domain_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "domain_admin_matches_domain_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_domain_roles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "domain_admin_matches_target_domain_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "project_admin_matches_target_domain_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "list_domain_roles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "domain_admin_matches_filter_on_list_domain_roles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "project_admin_matches_filter_on_list_domain_roles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_and_matching_prior_role_domain_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "implied_role_matches_prior_role_domain_or_global"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_implied_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_implied_roles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_implied_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_implied_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_role_inference_rules"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_implied_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_system_grants_for_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_system_grant_for_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_system_grant_for_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:revoke_system_grant_for_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_system_grants_for_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_system_grant_for_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_system_grant_for_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:revoke_system_grant_for_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_grant"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_grant"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:revoke_grant"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "domain_admin_for_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "domain_admin_for_global_role_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "domain_admin_for_domain_role_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "domain_admin_grant_match"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "project_admin_for_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "project_admin_for_global_role_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "project_admin_for_domain_role_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "domain_admin_for_list_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "project_admin_for_list_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_on_domain_filter"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_on_project_filter"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_on_domain_of_project_filter"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_role_assignments"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_role_assignments_for_tree"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_policies"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_token"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:validate_token"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:validate_token_head"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:revocation_list"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:revoke_token"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_trust"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_trusts"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_roles_for_trust"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_role_for_trust"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_trust"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_trust"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_consumer"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_consumer"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_consumers"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_consumer"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_consumer"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:authorize_request_token"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_access_token_roles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_access_token_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_access_tokens"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_access_token"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_access_token"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_projects_for_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:add_endpoint_to_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_endpoint_in_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_endpoints_for_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:remove_endpoint_from_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_endpoint_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_endpoint_groups"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_endpoint_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_endpoint_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_endpoint_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_projects_associated_with_endpoint_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_endpoints_associated_with_endpoint_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_endpoint_group_in_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_endpoint_groups_for_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:add_endpoint_group_to_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:remove_endpoint_group_from_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_identity_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_identity_providers"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_identity_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_identity_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_identity_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_protocol"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_protocol"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_protocol"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_protocols"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_protocol"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_mapping"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_mapping"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_mappings"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_mapping"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_mapping"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_service_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_service_providers"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_service_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_service_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_service_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_auth_catalog"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_auth_projects"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_auth_domains"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_auth_system"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_projects_for_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_domains_for_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_revoke_events"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_policy_association_for_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_policy_association_for_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_policy_association_for_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_policy_association_for_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_policy_association_for_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_policy_association_for_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_policy_association_for_region_and_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_policy_association_for_region_and_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_policy_association_for_region_and_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_policy_for_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_endpoints_for_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_domain_config"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_domain_config"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_security_compliance_domain_config"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_domain_config"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_domain_config"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_domain_config_default"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_application_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_application_credentials"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_application_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_application_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_subnet"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_subnet:segment_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_subnet:service_types"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_subnet"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_subnet:segment_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_subnet"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_subnet:service_types"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_subnet"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_subnetpool"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_subnetpool:shared"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_subnetpool:is_default"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_subnetpool"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_subnetpool"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_subnetpool:is_default"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_subnetpool"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_address_scope"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_address_scope:shared"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_address_scope"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_address_scope"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_address_scope:shared"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_address_scope"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_network:router:external"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_network:segments"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_network:provider:network_type"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_network:provider:physical_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_network:provider:segmentation_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_network:queue_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_network_ip_availabilities"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_network_ip_availability"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_network:shared"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_network:router:external"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_network:is_default"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_network:segments"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_network:provider:network_type"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_network:provider:physical_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_network:provider:segmentation_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_network:segments"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_network:shared"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_network:provider:network_type"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_network:provider:physical_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_network:provider:segmentation_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_network:router:external"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_segment"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_segment"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_segment"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_segment"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network_device"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_port"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_port:device_owner"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_port:mac_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_port:fixed_ips:ip_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_port:fixed_ips:subnet_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_port:port_security_enabled"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_port:binding:host_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_port:binding:profile"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_port:mac_learning_enabled"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_port:allowed_address_pairs"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_port"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_port:queue_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_port:binding:vif_type"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_port:binding:vif_details"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_port:binding:host_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_port:binding:profile"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_port"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_port:device_owner"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_port:mac_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_port:fixed_ips:ip_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_port:fixed_ips:subnet_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_port:port_security_enabled"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_port:binding:host_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_port:binding:profile"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_port:mac_learning_enabled"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_port:allowed_address_pairs"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_port:data_plane_status"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_port"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_router:ha"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_router"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_router:external_gateway_info:enable_snat"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_router:distributed"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_router:ha"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_router"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_router:distributed"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_router"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_router:external_gateway_info"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_router:external_gateway_info:network_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_router:external_gateway_info:enable_snat"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_router:distributed"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_router:ha"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_router"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_router_interface"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "remove_router_interface"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_router:external_gateway_info:external_fixed_ips"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_router:external_gateway_info:external_fixed_ips"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_qos_queue"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_qos_queue"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_agent"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_agent"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_agent"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_dhcp-network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_dhcp-network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_dhcp-networks"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_l3-router"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_l3-router"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_l3-routers"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_dhcp-agents"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_l3-agents"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_loadbalancer-agent"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_loadbalancer-pools"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_agent-loadbalancers"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_loadbalancer-hosting-agent"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_floatingip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_floatingip:floating_ip_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_floatingip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_floatingip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_floatingip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_network_profile"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_network_profile"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_network_profile"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_network_profiles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_network_profile"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_policy_profiles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_policy_profiles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_policy_profile"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_metering_label"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_metering_label"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metering_label"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_metering_label_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_metering_label_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metering_label_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_service_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_lsn"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_lsn"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_flavor"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_flavor"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_flavor"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_flavors"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_flavor"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_service_profile"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_service_profile"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_service_profile"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_service_profiles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_service_profile"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_policy_bandwidth_limit_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_policy_bandwidth_limit_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_policy_bandwidth_limit_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_policy_bandwidth_limit_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_policy_dscp_marking_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_policy_dscp_marking_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_policy_dscp_marking_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_policy_dscp_marking_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_rule_type"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_policy_minimum_bandwidth_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_policy_minimum_bandwidth_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_policy_minimum_bandwidth_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_policy_minimum_bandwidth_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "restrict_wildcard"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_rbac_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_rbac_policy:target_tenant"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_rbac_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_rbac_policy:target_tenant"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_rbac_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_rbac_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_flavor_service_profile"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_flavor_service_profile"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_flavor_service_profile"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_auto_allocated_topology"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_trunk"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_trunk"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_trunk"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_subports"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_subports"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "remove_subports"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_security_groups"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_security_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_security_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_security_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_security_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_security_group_rules"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_security_group_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_security_group_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_security_group_rule"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_loggable_resources"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "create_log"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "update_log"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_log"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_logs"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_log"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "cells_scheduler_filter:TargetCellFilter"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:create:attach_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:create:attach_volume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:create:forced_host"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_all"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_all_tenants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_instance_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_all_instance_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_all_instance_system_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:update_instance_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:delete_instance_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_instance_faults"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_diagnostics"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_instance_diagnostics"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:start"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:stop"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_lock"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:lock"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:unlock"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:unlock_override"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_vnc_console"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_spice_console"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_rdp_console"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_serial_console"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_mks_console"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_console_output"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:reset_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:inject_network_info"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:add_fixed_ip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:remove_fixed_ip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:attach_volume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:detach_volume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:swap_volume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:attach_interface"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:detach_interface"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:set_admin_password"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:rescue"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:unrescue"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:suspend"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:resume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:pause"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:unpause"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:shelve"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:shelve_offload"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:unshelve"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:snapshot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:snapshot_volume_backed"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:backup"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:resize"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:confirm_resize"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:revert_resize"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:rebuild"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:reboot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:soft_delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:force_delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:security_groups:add_to_instance"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:security_groups:remove_from_instance"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:restore"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:volume_snapshot_create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:volume_snapshot_delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:accounts"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:pause"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:unpause"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:suspend"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:resume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:lock"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:unlock"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:resetNetwork"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:injectNetworkInfo"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:createBackup"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:migrateLive"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:resetState"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:migrate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:aggregates"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:agents"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:attach_interfaces"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:baremetal_nodes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:cells"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:cells:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:cells:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:cells:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:cells:sync_instances"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:certificates"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:cloudpipe"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:cloudpipe_update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:config_drive"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:console_output"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:consoles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:createserverext"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:deferred_delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:disk_config"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:evacuate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:extended_server_attributes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:extended_status"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:extended_availability_zone"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:extended_ips"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:extended_ips_mac"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:extended_vif_net"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:extended_volumes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:fixed_ips"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavor_access"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavor_access:addTenantAccess"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavor_access:removeTenantAccess"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavor_disabled"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavor_rxtx"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavor_swap"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavorextradata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavorextraspecs:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavorextraspecs:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavorextraspecs:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavorextraspecs:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavorextraspecs:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavormanage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:floating_ip_dns"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:floating_ip_pools"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:floating_ips"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:floating_ips_bulk"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:fping"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:fping:all_tenants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:hide_server_addresses"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:hosts"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:hypervisors"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:image_size"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:instance_actions"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:instance_actions:events"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:instance_usage_audit_log"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:keypairs"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:keypairs:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:keypairs:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:keypairs:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:keypairs:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:multinic"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:networks"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:networks:view"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:networks_associate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:os-tenant-networks"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:quotas:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:quotas:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:quotas:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:quota_classes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:rescue"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:security_group_default_rules"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:security_groups"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:server_diagnostics"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:server_groups"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:server_password"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:server_usage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:services"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:shelve"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:shelveOffload"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:simple_tenant_usage:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:simple_tenant_usage:list"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:unshelve"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:users"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:virtual_interfaces"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:virtual_storage_arrays"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:volumes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:volume_attachments:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:volume_attachments:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:volume_attachments:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:volume_attachments:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:volume_attachments:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:volumetypes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:availability_zone:list"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:availability_zone:detail"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:used_limits_for_admin"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:migrations:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:os-assisted-volume-snapshots:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:os-assisted-volume-snapshots:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:console_auth_tokens"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:os-server-external-events:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_all"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:associate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:disassociate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_vifs_by_instance"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:allocate_for_instance"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:deallocate_for_instance"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:validate_networks"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_instance_uuids_by_ip_filter"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_instance_id_by_floating_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:setup_networks_on_host"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_backdoor_port"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_floating_ip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_floating_ip_pools"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_floating_ip_by_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_floating_ips_by_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_floating_ips_by_fixed_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:allocate_floating_ip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:associate_floating_ip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:disassociate_floating_ip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:release_floating_ip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:migrate_instance_start"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:migrate_instance_finish"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_fixed_ip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_fixed_ip_by_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:add_fixed_ip_to_instance"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:remove_fixed_ip_from_instance"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:add_network_to_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_instance_nw_info"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_dns_domains"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:add_dns_entry"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:modify_dns_entry"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:delete_dns_entry"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_dns_entries_by_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_dns_entries_by_name"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:create_private_dns_domain"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:create_public_dns_domain"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:delete_dns_domain"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:attach_external_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_vif_by_mac_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:detail:get_all_tenants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:index:get_all_tenants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:confirm_resize"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:create:attach_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:create:attach_volume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:create:forced_host"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:detail"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:reboot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:rebuild"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:resize"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:revert_resize"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:create_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:create_image:allow_volume_backed"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:start"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:stop"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-access-ips:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-access-ips"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-admin-actions"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-admin-actions:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-admin-actions:reset_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-admin-actions:inject_network_info"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-admin-actions:reset_state"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-admin-password"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-admin-password:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:add_host"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:remove_host"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:set_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-agents"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-agents:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-attach-interfaces"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-attach-interfaces:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-baremetal-nodes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-baremetal-nodes:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-block-device-mapping-v1:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-cells"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-cells:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-cells:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-cells:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-cells:sync_instances"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-cells:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-certificates:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-certificates:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-certificates:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-cloudpipe"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-cloudpipe:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-config-drive"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-consoles:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-consoles:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-consoles:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-consoles:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-consoles:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-console-output:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-console-output"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-remote-consoles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-remote-consoles:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-create-backup:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-create-backup"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-deferred-delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-deferred-delete:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-disk-config"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-disk-config:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-evacuate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-evacuate:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-extended-server-attributes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-extended-server-attributes:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-extended-status"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-extended-status:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-extended-availability-zone"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-extended-availability-zone:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:extensions"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:extension_info:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-extended-volumes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-extended-volumes:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-fixed-ips"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-fixed-ips:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-access"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-access:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-access:remove_tenant_access"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-access:add_tenant_access"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-rxtx"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-rxtx:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:flavors:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-manage:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-manage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ip-dns"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ip-dns:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ip-dns:domain:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ip-dns:domain:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ip-pools"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ip-pools:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ips"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ips:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ips-bulk"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ips-bulk:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-fping"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-fping:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-fping:all_tenants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-hide-server-addresses"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-hide-server-addresses:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-hosts"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-hosts:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-hypervisors"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-hypervisors:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:images:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:image-size"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:image-size:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-instance-actions"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-instance-actions:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-instance-actions:events"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-instance-usage-audit-log"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-instance-usage-audit-log:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:ips:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:ips:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:ips:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-keypairs:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-keypairs"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-keypairs:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-keypairs:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-keypairs:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-keypairs:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:limits:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:limits"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-lock-server:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-lock-server:lock"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-lock-server:unlock"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-lock-server:unlock:unlock_override"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-migrate-server:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-migrate-server:migrate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-migrate-server:migrate_live"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-multinic"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-multinic:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-networks"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-networks:view"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-networks:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-networks-associate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-networks-associate:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-pause-server:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-pause-server:pause"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-pause-server:unpause"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-pci:pci_servers"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-pci:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-pci:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-pci:detail"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-pci:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-personality:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-preserve-ephemeral-rebuild:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-sets:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-sets:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-sets:defaults"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-sets:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-sets:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-sets:detail"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-class-sets:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-class-sets:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-class-sets:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-rescue"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-rescue:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-scheduler-hints:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-security-group-default-rules:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-security-group-default-rules"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-security-groups"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-security-groups:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-diagnostics"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-diagnostics:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-password"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-password:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-usage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-usage:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-groups"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-groups:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-services"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-services:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:server-metadata:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:server-metadata:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:server-metadata:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:server-metadata:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:server-metadata:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:server-metadata:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:server-metadata:update_all"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-shelve:shelve"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-shelve:shelve:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-shelve:shelve_offload"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:list"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-suspend-server:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-suspend-server:suspend"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-suspend-server:resume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-tenant-networks"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-tenant-networks:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-shelve:unshelve"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-user-data:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-virtual-interfaces"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-virtual-interfaces:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-volumes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-volumes:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-availability-zone:list"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-availability-zone:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-availability-zone:detail"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-used-limits"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-used-limits:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-migrations:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-migrations:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-console-auth-tokens"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-external-events:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ }
+ ]
+} \ No newline at end of file
diff --git a/moon_engine/tests/func_policies/opst_rbac_cinder.json b/moon_engine/tests/func_policies/opst_rbac_cinder.json
new file mode 100644
index 00000000..f0cba96b
--- /dev/null
+++ b/moon_engine/tests/func_policies/opst_rbac_cinder.json
@@ -0,0 +1,5078 @@
+{
+ "policies": [
+ {
+ "name": "OpenStack RBAC Policy",
+ "genre": "authz",
+ "description": "A RBAC policy similar of what you can find through policy.json files",
+ "model": {
+ "name": "OPST_RBAC"
+ },
+ "mandatory": true,
+ "override": true
+ }
+ ],
+ "models": [
+ {
+ "name": "OPST_RBAC",
+ "description": "",
+ "meta_rules": [
+ {
+ "name": "rbac"
+ }
+ ],
+ "override": true
+ }
+ ],
+ "subjects": [
+ {
+ "name": "admin",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "OpenStack RBAC Policy"
+ }
+ ]
+ }
+ ],
+ "subject_categories": [
+ {
+ "name": "role",
+ "description": "a role in OpenStack"
+ }
+ ],
+ "subject_data": [
+ {
+ "name": "admin",
+ "description": "the admin role",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ },
+ {
+ "name": "member",
+ "description": "the member role",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ }
+ ],
+ "subject_assignments": [
+ {
+ "subject": {
+ "name": "admin"
+ },
+ "category": {
+ "name": "role"
+ },
+ "assignments": [
+ {
+ "name": "admin"
+ },
+ {
+ "name": "member"
+ }
+ ]
+ }
+ ],
+ "objects": [
+ {
+ "name": "all_vm",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "OpenStack RBAC Policy"
+ }
+ ]
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "id",
+ "description": "the UID of each virtual machine"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm",
+ "description": "represents all virtual machines in this project",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ }
+ ],
+ "object_assignments": [
+ {
+ "object": {
+ "name": "all_vm"
+ },
+ "category": {
+ "name": "id"
+ },
+ "assignments": [
+ {
+ "name": "all_vm"
+ }
+ ]
+ }
+ ],
+ "actions": [
+ {
+ "name": "volume:create",
+ "description": "volume:create action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:delete",
+ "description": "volume:delete action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:get",
+ "description": "volume:get action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:get_all",
+ "description": "volume:get_all action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:get_volume_metadata",
+ "description": "volume:get_volume_metadata action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:delete_volume_metadata",
+ "description": "volume:delete_volume_metadata action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:update_volume_metadata",
+ "description": "volume:update_volume_metadata action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:get_volume_admin_metadata",
+ "description": "volume:get_volume_admin_metadata action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:update_volume_admin_metadata",
+ "description": "volume:update_volume_admin_metadata action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:get_snapshot",
+ "description": "volume:get_snapshot action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:get_all_snapshots",
+ "description": "volume:get_all_snapshots action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:create_snapshot",
+ "description": "volume:create_snapshot action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:delete_snapshot",
+ "description": "volume:delete_snapshot action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:update_snapshot",
+ "description": "volume:update_snapshot action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:extend",
+ "description": "volume:extend action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:update_readonly_flag",
+ "description": "volume:update_readonly_flag action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:retype",
+ "description": "volume:retype action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:update",
+ "description": "volume:update action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:types_manage",
+ "description": "volume_extension:types_manage action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:types_extra_specs",
+ "description": "volume_extension:types_extra_specs action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:access_types_qos_specs_id",
+ "description": "volume_extension:access_types_qos_specs_id action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:access_types_extra_specs",
+ "description": "volume_extension:access_types_extra_specs action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_type_access",
+ "description": "volume_extension:volume_type_access action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_type_access:addProjectAccess",
+ "description": "volume_extension:volume_type_access:addProjectAccess action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_type_access:removeProjectAccess",
+ "description": "volume_extension:volume_type_access:removeProjectAccess action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_type_encryption",
+ "description": "volume_extension:volume_type_encryption action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_encryption_metadata",
+ "description": "volume_extension:volume_encryption_metadata action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:extended_snapshot_attributes",
+ "description": "volume_extension:extended_snapshot_attributes action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_image_metadata",
+ "description": "volume_extension:volume_image_metadata action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:quotas:show",
+ "description": "volume_extension:quotas:show action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:quotas:update",
+ "description": "volume_extension:quotas:update action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:quotas:delete",
+ "description": "volume_extension:quotas:delete action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:quota_classes",
+ "description": "volume_extension:quota_classes action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:quota_classes:validate_setup_for_nested_quota_use",
+ "description": "volume_extension:quota_classes:validate_setup_for_nested_quota_use action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:reset_status",
+ "description": "volume_extension:volume_admin_actions:reset_status action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:snapshot_admin_actions:reset_status",
+ "description": "volume_extension:snapshot_admin_actions:reset_status action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:backup_admin_actions:reset_status",
+ "description": "volume_extension:backup_admin_actions:reset_status action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:force_delete",
+ "description": "volume_extension:volume_admin_actions:force_delete action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:force_detach",
+ "description": "volume_extension:volume_admin_actions:force_detach action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:snapshot_admin_actions:force_delete",
+ "description": "volume_extension:snapshot_admin_actions:force_delete action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:backup_admin_actions:force_delete",
+ "description": "volume_extension:backup_admin_actions:force_delete action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:migrate_volume",
+ "description": "volume_extension:volume_admin_actions:migrate_volume action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:migrate_volume_completion",
+ "description": "volume_extension:volume_admin_actions:migrate_volume_completion action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_host_attribute",
+ "description": "volume_extension:volume_host_attribute action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_tenant_attribute",
+ "description": "volume_extension:volume_tenant_attribute action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_mig_status_attribute",
+ "description": "volume_extension:volume_mig_status_attribute action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:hosts",
+ "description": "volume_extension:hosts action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:services:index",
+ "description": "volume_extension:services:index action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:services:update",
+ "description": "volume_extension:services:update action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_manage",
+ "description": "volume_extension:volume_manage action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:volume_unmanage",
+ "description": "volume_extension:volume_unmanage action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:capabilities",
+ "description": "volume_extension:capabilities action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:create_transfer",
+ "description": "volume:create_transfer action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:accept_transfer",
+ "description": "volume:accept_transfer action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:delete_transfer",
+ "description": "volume:delete_transfer action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:get_all_transfers",
+ "description": "volume:get_all_transfers action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:replication:promote",
+ "description": "volume_extension:replication:promote action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume_extension:replication:reenable",
+ "description": "volume_extension:replication:reenable action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:enable_replication",
+ "description": "volume:enable_replication action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:disable_replication",
+ "description": "volume:disable_replication action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:failover_replication",
+ "description": "volume:failover_replication action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "volume:list_replication_targets",
+ "description": "volume:list_replication_targets action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "backup:create",
+ "description": "backup:create action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "backup:delete",
+ "description": "backup:delete action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "backup:get",
+ "description": "backup:get action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "backup:get_all",
+ "description": "backup:get_all action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "backup:restore",
+ "description": "backup:restore action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "backup:backup-import",
+ "description": "backup:backup-import action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "backup:backup-export",
+ "description": "backup:backup-export action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "snapshot_extension:snapshot_actions:update_snapshot_status",
+ "description": "snapshot_extension:snapshot_actions:update_snapshot_status action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "snapshot_extension:snapshot_manage",
+ "description": "snapshot_extension:snapshot_manage action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "snapshot_extension:snapshot_unmanage",
+ "description": "snapshot_extension:snapshot_unmanage action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:create",
+ "description": "consistencygroup:create action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:delete",
+ "description": "consistencygroup:delete action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:update",
+ "description": "consistencygroup:update action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:get",
+ "description": "consistencygroup:get action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:get_all",
+ "description": "consistencygroup:get_all action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:create_cgsnapshot",
+ "description": "consistencygroup:create_cgsnapshot action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:delete_cgsnapshot",
+ "description": "consistencygroup:delete_cgsnapshot action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:get_cgsnapshot",
+ "description": "consistencygroup:get_cgsnapshot action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "consistencygroup:get_all_cgsnapshots",
+ "description": "consistencygroup:get_all_cgsnapshots action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ },
+ {
+ "name": "scheduler_extension:scheduler_stats:get_pools",
+ "description": "scheduler_extension:scheduler_stats:get_pools action for cinder",
+ "extra": {
+ "component": "cinder"
+ },
+ "policies": []
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "action_id",
+ "description": ""
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:create",
+ "description": "volume:create action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:delete",
+ "description": "volume:delete action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:get",
+ "description": "volume:get action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:get_all",
+ "description": "volume:get_all action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:get_volume_metadata",
+ "description": "volume:get_volume_metadata action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:delete_volume_metadata",
+ "description": "volume:delete_volume_metadata action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:update_volume_metadata",
+ "description": "volume:update_volume_metadata action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:get_volume_admin_metadata",
+ "description": "volume:get_volume_admin_metadata action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:update_volume_admin_metadata",
+ "description": "volume:update_volume_admin_metadata action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:get_snapshot",
+ "description": "volume:get_snapshot action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:get_all_snapshots",
+ "description": "volume:get_all_snapshots action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:create_snapshot",
+ "description": "volume:create_snapshot action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:delete_snapshot",
+ "description": "volume:delete_snapshot action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:update_snapshot",
+ "description": "volume:update_snapshot action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:extend",
+ "description": "volume:extend action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:update_readonly_flag",
+ "description": "volume:update_readonly_flag action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:retype",
+ "description": "volume:retype action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:update",
+ "description": "volume:update action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:types_manage",
+ "description": "volume_extension:types_manage action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:types_extra_specs",
+ "description": "volume_extension:types_extra_specs action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:access_types_qos_specs_id",
+ "description": "volume_extension:access_types_qos_specs_id action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:access_types_extra_specs",
+ "description": "volume_extension:access_types_extra_specs action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_type_access",
+ "description": "volume_extension:volume_type_access action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_type_access:addProjectAccess",
+ "description": "volume_extension:volume_type_access:addProjectAccess action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_type_access:removeProjectAccess",
+ "description": "volume_extension:volume_type_access:removeProjectAccess action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_type_encryption",
+ "description": "volume_extension:volume_type_encryption action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_encryption_metadata",
+ "description": "volume_extension:volume_encryption_metadata action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:extended_snapshot_attributes",
+ "description": "volume_extension:extended_snapshot_attributes action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_image_metadata",
+ "description": "volume_extension:volume_image_metadata action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:quotas:show",
+ "description": "volume_extension:quotas:show action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:quotas:update",
+ "description": "volume_extension:quotas:update action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:quotas:delete",
+ "description": "volume_extension:quotas:delete action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:quota_classes",
+ "description": "volume_extension:quota_classes action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:quota_classes:validate_setup_for_nested_quota_use",
+ "description": "volume_extension:quota_classes:validate_setup_for_nested_quota_use action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:reset_status",
+ "description": "volume_extension:volume_admin_actions:reset_status action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:snapshot_admin_actions:reset_status",
+ "description": "volume_extension:snapshot_admin_actions:reset_status action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:backup_admin_actions:reset_status",
+ "description": "volume_extension:backup_admin_actions:reset_status action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:force_delete",
+ "description": "volume_extension:volume_admin_actions:force_delete action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:force_detach",
+ "description": "volume_extension:volume_admin_actions:force_detach action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:snapshot_admin_actions:force_delete",
+ "description": "volume_extension:snapshot_admin_actions:force_delete action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:backup_admin_actions:force_delete",
+ "description": "volume_extension:backup_admin_actions:force_delete action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:migrate_volume",
+ "description": "volume_extension:volume_admin_actions:migrate_volume action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_admin_actions:migrate_volume_completion",
+ "description": "volume_extension:volume_admin_actions:migrate_volume_completion action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_host_attribute",
+ "description": "volume_extension:volume_host_attribute action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_tenant_attribute",
+ "description": "volume_extension:volume_tenant_attribute action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_mig_status_attribute",
+ "description": "volume_extension:volume_mig_status_attribute action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:hosts",
+ "description": "volume_extension:hosts action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:services:index",
+ "description": "volume_extension:services:index action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:services:update",
+ "description": "volume_extension:services:update action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_manage",
+ "description": "volume_extension:volume_manage action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:volume_unmanage",
+ "description": "volume_extension:volume_unmanage action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:capabilities",
+ "description": "volume_extension:capabilities action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:create_transfer",
+ "description": "volume:create_transfer action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:accept_transfer",
+ "description": "volume:accept_transfer action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:delete_transfer",
+ "description": "volume:delete_transfer action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:get_all_transfers",
+ "description": "volume:get_all_transfers action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:replication:promote",
+ "description": "volume_extension:replication:promote action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume_extension:replication:reenable",
+ "description": "volume_extension:replication:reenable action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:enable_replication",
+ "description": "volume:enable_replication action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:disable_replication",
+ "description": "volume:disable_replication action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:failover_replication",
+ "description": "volume:failover_replication action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "volume:list_replication_targets",
+ "description": "volume:list_replication_targets action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "backup:create",
+ "description": "backup:create action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "backup:delete",
+ "description": "backup:delete action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "backup:get",
+ "description": "backup:get action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "backup:get_all",
+ "description": "backup:get_all action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "backup:restore",
+ "description": "backup:restore action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "backup:backup-import",
+ "description": "backup:backup-import action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "backup:backup-export",
+ "description": "backup:backup-export action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "snapshot_extension:snapshot_actions:update_snapshot_status",
+ "description": "snapshot_extension:snapshot_actions:update_snapshot_status action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "snapshot_extension:snapshot_manage",
+ "description": "snapshot_extension:snapshot_manage action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "snapshot_extension:snapshot_unmanage",
+ "description": "snapshot_extension:snapshot_unmanage action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:create",
+ "description": "consistencygroup:create action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:delete",
+ "description": "consistencygroup:delete action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:update",
+ "description": "consistencygroup:update action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:get",
+ "description": "consistencygroup:get action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:get_all",
+ "description": "consistencygroup:get_all action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:create_cgsnapshot",
+ "description": "consistencygroup:create_cgsnapshot action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:delete_cgsnapshot",
+ "description": "consistencygroup:delete_cgsnapshot action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:get_cgsnapshot",
+ "description": "consistencygroup:get_cgsnapshot action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "consistencygroup:get_all_cgsnapshots",
+ "description": "consistencygroup:get_all_cgsnapshots action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "scheduler_extension:scheduler_stats:get_pools",
+ "description": "scheduler_extension:scheduler_stats:get_pools action for cinder",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ }
+ ],
+ "action_assignments": [
+ {
+ "action": {
+ "name": "volume:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:get"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:get"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:get_all"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:get_all"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:get_volume_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:get_volume_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:delete_volume_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:delete_volume_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:update_volume_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:update_volume_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:get_volume_admin_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:get_volume_admin_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:update_volume_admin_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:update_volume_admin_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:get_snapshot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:get_snapshot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:get_all_snapshots"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:get_all_snapshots"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:create_snapshot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:create_snapshot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:delete_snapshot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:delete_snapshot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:update_snapshot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:update_snapshot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:extend"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:extend"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:update_readonly_flag"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:update_readonly_flag"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:retype"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:retype"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:types_manage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:types_manage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:types_extra_specs"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:types_extra_specs"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:access_types_qos_specs_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:access_types_qos_specs_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:access_types_extra_specs"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:access_types_extra_specs"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_type_access"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_type_access"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_type_access:addProjectAccess"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_type_access:addProjectAccess"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_type_access:removeProjectAccess"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_type_access:removeProjectAccess"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_type_encryption"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_type_encryption"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_encryption_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_encryption_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:extended_snapshot_attributes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:extended_snapshot_attributes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_image_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_image_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:quotas:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:quotas:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:quotas:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:quotas:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:quotas:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:quotas:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:quota_classes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:quota_classes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:quota_classes:validate_setup_for_nested_quota_use"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:quota_classes:validate_setup_for_nested_quota_use"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_admin_actions:reset_status"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_admin_actions:reset_status"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:snapshot_admin_actions:reset_status"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:snapshot_admin_actions:reset_status"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:backup_admin_actions:reset_status"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:backup_admin_actions:reset_status"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_admin_actions:force_delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_admin_actions:force_delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_admin_actions:force_detach"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_admin_actions:force_detach"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:snapshot_admin_actions:force_delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:snapshot_admin_actions:force_delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:backup_admin_actions:force_delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:backup_admin_actions:force_delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_admin_actions:migrate_volume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_admin_actions:migrate_volume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_admin_actions:migrate_volume_completion"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_admin_actions:migrate_volume_completion"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_host_attribute"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_host_attribute"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_tenant_attribute"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_tenant_attribute"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_mig_status_attribute"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_mig_status_attribute"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:hosts"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:hosts"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:services:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:services:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:services:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:services:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_manage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_manage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:volume_unmanage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:volume_unmanage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:capabilities"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:capabilities"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:create_transfer"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:create_transfer"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:accept_transfer"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:accept_transfer"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:delete_transfer"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:delete_transfer"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:get_all_transfers"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:get_all_transfers"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:replication:promote"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:replication:promote"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume_extension:replication:reenable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume_extension:replication:reenable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:enable_replication"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:enable_replication"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:disable_replication"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:disable_replication"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:failover_replication"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:failover_replication"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "volume:list_replication_targets"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "volume:list_replication_targets"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "backup:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "backup:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "backup:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "backup:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "backup:get"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "backup:get"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "backup:get_all"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "backup:get_all"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "backup:restore"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "backup:restore"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "backup:backup-import"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "backup:backup-import"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "backup:backup-export"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "backup:backup-export"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "snapshot_extension:snapshot_actions:update_snapshot_status"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "snapshot_extension:snapshot_actions:update_snapshot_status"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "snapshot_extension:snapshot_manage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "snapshot_extension:snapshot_manage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "snapshot_extension:snapshot_unmanage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "snapshot_extension:snapshot_unmanage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:get"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:get"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:get_all"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:get_all"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:create_cgsnapshot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:create_cgsnapshot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:delete_cgsnapshot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:delete_cgsnapshot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:get_cgsnapshot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:get_cgsnapshot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "consistencygroup:get_all_cgsnapshots"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "consistencygroup:get_all_cgsnapshots"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "scheduler_extension:scheduler_stats:get_pools"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "scheduler_extension:scheduler_stats:get_pools"
+ }
+ ]
+ }
+ ],
+ "meta_rules": [
+ {
+ "name": "rbac",
+ "description": "",
+ "subject_categories": [
+ {
+ "name": "role"
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "id"
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "action_id"
+ }
+ ]
+ }
+ ],
+ "rules": [
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:get"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:get_all"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:get_volume_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:delete_volume_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:update_volume_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:get_volume_admin_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:update_volume_admin_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:get_snapshot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:get_all_snapshots"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:create_snapshot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:delete_snapshot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:update_snapshot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:extend"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:update_readonly_flag"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:retype"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:types_manage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:types_extra_specs"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:access_types_qos_specs_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:access_types_extra_specs"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_type_access"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_type_access:addProjectAccess"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_type_access:removeProjectAccess"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_type_encryption"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_encryption_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:extended_snapshot_attributes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_image_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:quotas:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:quotas:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:quotas:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:quota_classes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:quota_classes:validate_setup_for_nested_quota_use"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_admin_actions:reset_status"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:snapshot_admin_actions:reset_status"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:backup_admin_actions:reset_status"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_admin_actions:force_delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_admin_actions:force_detach"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:snapshot_admin_actions:force_delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:backup_admin_actions:force_delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_admin_actions:migrate_volume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_admin_actions:migrate_volume_completion"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_host_attribute"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_tenant_attribute"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_mig_status_attribute"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:hosts"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:services:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:services:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_manage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:volume_unmanage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:capabilities"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:create_transfer"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:accept_transfer"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:delete_transfer"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:get_all_transfers"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:replication:promote"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume_extension:replication:reenable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:enable_replication"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:disable_replication"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:failover_replication"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "volume:list_replication_targets"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "backup:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "backup:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "backup:get"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "backup:get_all"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "backup:restore"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "backup:backup-import"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "backup:backup-export"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "snapshot_extension:snapshot_actions:update_snapshot_status"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "snapshot_extension:snapshot_manage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "snapshot_extension:snapshot_unmanage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:get"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:get_all"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:create_cgsnapshot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:delete_cgsnapshot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:get_cgsnapshot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "consistencygroup:get_all_cgsnapshots"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "scheduler_extension:scheduler_stats:get_pools"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ }
+ ]
+} \ No newline at end of file
diff --git a/moon_engine/tests/func_policies/opst_rbac_glance.json b/moon_engine/tests/func_policies/opst_rbac_glance.json
new file mode 100644
index 00000000..276d1e3b
--- /dev/null
+++ b/moon_engine/tests/func_policies/opst_rbac_glance.json
@@ -0,0 +1,2918 @@
+{
+ "policies": [
+ {
+ "name": "OpenStack RBAC Policy",
+ "genre": "authz",
+ "description": "A RBAC policy similar of what you can find through policy.json files",
+ "model": {
+ "name": "OPST_RBAC"
+ },
+ "mandatory": true,
+ "override": true
+ }
+ ],
+ "models": [
+ {
+ "name": "OPST_RBAC",
+ "description": "",
+ "meta_rules": [
+ {
+ "name": "rbac"
+ }
+ ],
+ "override": true
+ }
+ ],
+ "subjects": [
+ {
+ "name": "admin",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "OpenStack RBAC Policy"
+ }
+ ]
+ }
+ ],
+ "subject_categories": [
+ {
+ "name": "role",
+ "description": "a role in OpenStack"
+ }
+ ],
+ "subject_data": [
+ {
+ "name": "admin",
+ "description": "the admin role",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ },
+ {
+ "name": "member",
+ "description": "the member role",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ }
+ ],
+ "subject_assignments": [
+ {
+ "subject": {
+ "name": "admin"
+ },
+ "category": {
+ "name": "role"
+ },
+ "assignments": [
+ {
+ "name": "admin"
+ },
+ {
+ "name": "member"
+ }
+ ]
+ }
+ ],
+ "objects": [
+ {
+ "name": "all",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "OpenStack RBAC Policy"
+ }
+ ]
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "id",
+ "description": "the UID of each virtual machine"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all",
+ "description": "represents all virtual machines in this project",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ }
+ ],
+ "object_assignments": [
+ {
+ "object": {
+ "name": "all"
+ },
+ "category": {
+ "name": "id"
+ },
+ "assignments": [
+ {
+ "name": "all"
+ }
+ ]
+ }
+ ],
+ "actions": [
+ {
+ "name": "add_image",
+ "description": "add_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_image",
+ "description": "delete_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_image",
+ "description": "get_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_images",
+ "description": "get_images action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "modify_image",
+ "description": "modify_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "publicize_image",
+ "description": "publicize_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "communitize_image",
+ "description": "communitize_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "copy_from",
+ "description": "copy_from action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "download_image",
+ "description": "download_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "upload_image",
+ "description": "upload_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_image_location",
+ "description": "delete_image_location action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_image_location",
+ "description": "get_image_location action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "set_image_location",
+ "description": "set_image_location action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_member",
+ "description": "add_member action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "delete_member",
+ "description": "delete_member action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_member",
+ "description": "get_member action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_members",
+ "description": "get_members action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "modify_member",
+ "description": "modify_member action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "manage_image_cache",
+ "description": "manage_image_cache action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_task",
+ "description": "get_task action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_tasks",
+ "description": "get_tasks action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_task",
+ "description": "add_task action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "modify_task",
+ "description": "modify_task action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "tasks_api_access",
+ "description": "tasks_api_access action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "deactivate",
+ "description": "deactivate action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "reactivate",
+ "description": "reactivate action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_namespace",
+ "description": "get_metadef_namespace action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_namespaces",
+ "description": "get_metadef_namespaces action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "modify_metadef_namespace",
+ "description": "modify_metadef_namespace action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_metadef_namespace",
+ "description": "add_metadef_namespace action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_object",
+ "description": "get_metadef_object action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_objects",
+ "description": "get_metadef_objects action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "modify_metadef_object",
+ "description": "modify_metadef_object action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_metadef_object",
+ "description": "add_metadef_object action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "list_metadef_resource_types",
+ "description": "list_metadef_resource_types action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_resource_type",
+ "description": "get_metadef_resource_type action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_metadef_resource_type_association",
+ "description": "add_metadef_resource_type_association action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_property",
+ "description": "get_metadef_property action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_properties",
+ "description": "get_metadef_properties action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "modify_metadef_property",
+ "description": "modify_metadef_property action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_metadef_property",
+ "description": "add_metadef_property action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_tag",
+ "description": "get_metadef_tag action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_metadef_tags",
+ "description": "get_metadef_tags action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "modify_metadef_tag",
+ "description": "modify_metadef_tag action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_metadef_tag",
+ "description": "add_metadef_tag action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "add_metadef_tags",
+ "description": "add_metadef_tags action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "action_id",
+ "description": ""
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_image",
+ "description": "add_image action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_image",
+ "description": "delete_image action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_image",
+ "description": "get_image action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_images",
+ "description": "get_images action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "modify_image",
+ "description": "modify_image action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "publicize_image",
+ "description": "publicize_image action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "communitize_image",
+ "description": "communitize_image action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "copy_from",
+ "description": "copy_from action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "download_image",
+ "description": "download_image action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "upload_image",
+ "description": "upload_image action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_image_location",
+ "description": "delete_image_location action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_image_location",
+ "description": "get_image_location action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "set_image_location",
+ "description": "set_image_location action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_member",
+ "description": "add_member action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "delete_member",
+ "description": "delete_member action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_member",
+ "description": "get_member action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_members",
+ "description": "get_members action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "modify_member",
+ "description": "modify_member action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "manage_image_cache",
+ "description": "manage_image_cache action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_task",
+ "description": "get_task action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_tasks",
+ "description": "get_tasks action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_task",
+ "description": "add_task action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "modify_task",
+ "description": "modify_task action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "tasks_api_access",
+ "description": "tasks_api_access action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "deactivate",
+ "description": "deactivate action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "reactivate",
+ "description": "reactivate action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_namespace",
+ "description": "get_metadef_namespace action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_namespaces",
+ "description": "get_metadef_namespaces action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "modify_metadef_namespace",
+ "description": "modify_metadef_namespace action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_metadef_namespace",
+ "description": "add_metadef_namespace action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_object",
+ "description": "get_metadef_object action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_objects",
+ "description": "get_metadef_objects action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "modify_metadef_object",
+ "description": "modify_metadef_object action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_metadef_object",
+ "description": "add_metadef_object action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "list_metadef_resource_types",
+ "description": "list_metadef_resource_types action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_resource_type",
+ "description": "get_metadef_resource_type action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_metadef_resource_type_association",
+ "description": "add_metadef_resource_type_association action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_property",
+ "description": "get_metadef_property action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_properties",
+ "description": "get_metadef_properties action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "modify_metadef_property",
+ "description": "modify_metadef_property action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_metadef_property",
+ "description": "add_metadef_property action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_tag",
+ "description": "get_metadef_tag action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_metadef_tags",
+ "description": "get_metadef_tags action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "modify_metadef_tag",
+ "description": "modify_metadef_tag action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_metadef_tag",
+ "description": "add_metadef_tag action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "add_metadef_tags",
+ "description": "add_metadef_tags action for glance",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ }
+ ],
+ "action_assignments": [
+ {
+ "action": {
+ "name": "add_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_images"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_images"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "modify_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "modify_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "publicize_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "publicize_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "communitize_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "communitize_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "copy_from"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "copy_from"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "download_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "download_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "upload_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "upload_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_image_location"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_image_location"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_image_location"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_image_location"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "set_image_location"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "set_image_location"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_member"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_member"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "delete_member"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "delete_member"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_member"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_member"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_members"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_members"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "modify_member"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "modify_member"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "manage_image_cache"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "manage_image_cache"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_task"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_task"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_tasks"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_tasks"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_task"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_task"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "modify_task"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "modify_task"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "tasks_api_access"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "tasks_api_access"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "deactivate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "deactivate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "reactivate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "reactivate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_namespace"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_namespace"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_namespaces"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_namespaces"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "modify_metadef_namespace"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "modify_metadef_namespace"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_metadef_namespace"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_metadef_namespace"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_object"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_object"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_objects"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_objects"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "modify_metadef_object"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "modify_metadef_object"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_metadef_object"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_metadef_object"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "list_metadef_resource_types"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "list_metadef_resource_types"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_resource_type"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_resource_type"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_metadef_resource_type_association"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_metadef_resource_type_association"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_property"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_property"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_properties"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_properties"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "modify_metadef_property"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "modify_metadef_property"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_metadef_property"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_metadef_property"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_tag"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_tag"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_metadef_tags"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_metadef_tags"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "modify_metadef_tag"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "modify_metadef_tag"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_metadef_tag"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_metadef_tag"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "add_metadef_tags"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "add_metadef_tags"
+ }
+ ]
+ }
+ ],
+ "meta_rules": [
+ {
+ "name": "rbac",
+ "description": "",
+ "subject_categories": [
+ {
+ "name": "role"
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "id"
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "action_id"
+ }
+ ]
+ }
+ ],
+ "rules": [
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_images"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "modify_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "publicize_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "communitize_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "copy_from"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "download_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "upload_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_image_location"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_image_location"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "set_image_location"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_member"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "delete_member"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_member"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_members"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "modify_member"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "manage_image_cache"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_task"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_tasks"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_task"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "modify_task"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "tasks_api_access"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "deactivate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "reactivate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_namespace"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_namespaces"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "modify_metadef_namespace"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_metadef_namespace"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_object"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_objects"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "modify_metadef_object"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_metadef_object"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "list_metadef_resource_types"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_resource_type"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_metadef_resource_type_association"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_property"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_properties"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "modify_metadef_property"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_metadef_property"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_tag"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_metadef_tags"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "modify_metadef_tag"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_metadef_tag"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "add_metadef_tags"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ }
+ ]
+} \ No newline at end of file
diff --git a/moon_engine/tests/func_policies/opst_rbac_keystone.json b/moon_engine/tests/func_policies/opst_rbac_keystone.json
new file mode 100644
index 00000000..6ccf975f
--- /dev/null
+++ b/moon_engine/tests/func_policies/opst_rbac_keystone.json
@@ -0,0 +1,12998 @@
+{
+ "policies": [
+ {
+ "name": "OpenStack RBAC Policy",
+ "genre": "authz",
+ "description": "A RBAC policy similar of what you can find through policy.json files",
+ "model": {
+ "name": "OPST_RBAC"
+ },
+ "mandatory": true,
+ "override": true
+ }
+ ],
+ "models": [
+ {
+ "name": "OPST_RBAC",
+ "description": "",
+ "meta_rules": [
+ {
+ "name": "rbac"
+ }
+ ],
+ "override": true
+ }
+ ],
+ "subjects": [
+ {
+ "name": "admin",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "OpenStack RBAC Policy"
+ }
+ ]
+ }
+ ],
+ "subject_categories": [
+ {
+ "name": "role",
+ "description": "a role in OpenStack"
+ }
+ ],
+ "subject_data": [
+ {
+ "name": "admin",
+ "description": "the admin role",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ },
+ {
+ "name": "member",
+ "description": "the member role",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ }
+ ],
+ "subject_assignments": [
+ {
+ "subject": {
+ "name": "admin"
+ },
+ "category": {
+ "name": "role"
+ },
+ "assignments": [
+ {
+ "name": "admin"
+ },
+ {
+ "name": "member"
+ }
+ ]
+ }
+ ],
+ "objects": [
+ {
+ "name": "all_vm",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "OpenStack RBAC Policy"
+ }
+ ]
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "id",
+ "description": "the UID of each virtual machine"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm",
+ "description": "represents all virtual machines in this project",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ }
+ ],
+ "object_assignments": [
+ {
+ "object": {
+ "name": "all_vm"
+ },
+ "category": {
+ "name": "id"
+ },
+ "assignments": [
+ {
+ "name": "all_vm"
+ }
+ ]
+ }
+ ],
+ "actions": [
+ {
+ "name": "identity:get_region",
+ "description": "identity:get_region action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_regions",
+ "description": "identity:list_regions action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_region",
+ "description": "identity:create_region action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_region",
+ "description": "identity:update_region action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_region",
+ "description": "identity:delete_region action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_service",
+ "description": "identity:get_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_services",
+ "description": "identity:list_services action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_service",
+ "description": "identity:create_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_service",
+ "description": "identity:update_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_service",
+ "description": "identity:delete_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_endpoint",
+ "description": "identity:get_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_endpoints",
+ "description": "identity:list_endpoints action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_endpoint",
+ "description": "identity:create_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_endpoint",
+ "description": "identity:update_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_endpoint",
+ "description": "identity:delete_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_registered_limit",
+ "description": "identity:get_registered_limit action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_registered_limits",
+ "description": "identity:list_registered_limits action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_registered_limits",
+ "description": "identity:create_registered_limits action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_registered_limits",
+ "description": "identity:update_registered_limits action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_registered_limit",
+ "description": "identity:delete_registered_limit action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_limit",
+ "description": "identity:get_limit action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_limits",
+ "description": "identity:list_limits action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_limits",
+ "description": "identity:create_limits action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_limits",
+ "description": "identity:update_limits action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_limit",
+ "description": "identity:delete_limit action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_domain",
+ "description": "identity:get_domain action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_domains",
+ "description": "identity:list_domains action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_domain",
+ "description": "identity:create_domain action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_domain",
+ "description": "identity:update_domain action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_domain",
+ "description": "identity:delete_domain action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_and_matching_target_project_domain_id",
+ "description": "admin_and_matching_target_project_domain_id action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_and_matching_project_domain_id",
+ "description": "admin_and_matching_project_domain_id action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_project",
+ "description": "identity:get_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_projects",
+ "description": "identity:list_projects action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_user_projects",
+ "description": "identity:list_user_projects action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_project",
+ "description": "identity:create_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_project",
+ "description": "identity:update_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_project",
+ "description": "identity:delete_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_project_tag",
+ "description": "identity:create_project_tag action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_project_tag",
+ "description": "identity:delete_project_tag action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_project_tag",
+ "description": "identity:get_project_tag action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_project_tags",
+ "description": "identity:list_project_tags action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_project_tags",
+ "description": "identity:delete_project_tags action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_project_tags",
+ "description": "identity:update_project_tags action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_and_matching_target_user_domain_id",
+ "description": "admin_and_matching_target_user_domain_id action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_and_matching_user_domain_id",
+ "description": "admin_and_matching_user_domain_id action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_user",
+ "description": "identity:get_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_users",
+ "description": "identity:list_users action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_user",
+ "description": "identity:create_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_user",
+ "description": "identity:update_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_user",
+ "description": "identity:delete_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_and_matching_target_group_domain_id",
+ "description": "admin_and_matching_target_group_domain_id action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_and_matching_group_domain_id",
+ "description": "admin_and_matching_group_domain_id action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_group",
+ "description": "identity:get_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_groups",
+ "description": "identity:list_groups action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_groups_for_user",
+ "description": "identity:list_groups_for_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_group",
+ "description": "identity:create_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_group",
+ "description": "identity:update_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_group",
+ "description": "identity:delete_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_users_in_group",
+ "description": "identity:list_users_in_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:remove_user_from_group",
+ "description": "identity:remove_user_from_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_user_in_group",
+ "description": "identity:check_user_in_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:add_user_to_group",
+ "description": "identity:add_user_to_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_credential",
+ "description": "identity:get_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_credentials",
+ "description": "identity:list_credentials action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_credential",
+ "description": "identity:create_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_credential",
+ "description": "identity:update_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_credential",
+ "description": "identity:delete_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:ec2_get_credential",
+ "description": "identity:ec2_get_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:ec2_list_credentials",
+ "description": "identity:ec2_list_credentials action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:ec2_create_credential",
+ "description": "identity:ec2_create_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:ec2_delete_credential",
+ "description": "identity:ec2_delete_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_role",
+ "description": "identity:get_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_roles",
+ "description": "identity:list_roles action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_role",
+ "description": "identity:create_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_role",
+ "description": "identity:update_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_role",
+ "description": "identity:delete_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_domain_role",
+ "description": "identity:get_domain_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_domain_roles",
+ "description": "identity:list_domain_roles action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_domain_role",
+ "description": "identity:create_domain_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_domain_role",
+ "description": "identity:update_domain_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_domain_role",
+ "description": "identity:delete_domain_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "domain_admin_matches_domain_role",
+ "description": "domain_admin_matches_domain_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_domain_roles",
+ "description": "get_domain_roles action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "domain_admin_matches_target_domain_role",
+ "description": "domain_admin_matches_target_domain_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "project_admin_matches_target_domain_role",
+ "description": "project_admin_matches_target_domain_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "list_domain_roles",
+ "description": "list_domain_roles action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "domain_admin_matches_filter_on_list_domain_roles",
+ "description": "domain_admin_matches_filter_on_list_domain_roles action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "project_admin_matches_filter_on_list_domain_roles",
+ "description": "project_admin_matches_filter_on_list_domain_roles action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_and_matching_prior_role_domain_id",
+ "description": "admin_and_matching_prior_role_domain_id action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "implied_role_matches_prior_role_domain_or_global",
+ "description": "implied_role_matches_prior_role_domain_or_global action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_implied_role",
+ "description": "identity:get_implied_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_implied_roles",
+ "description": "identity:list_implied_roles action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_implied_role",
+ "description": "identity:create_implied_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_implied_role",
+ "description": "identity:delete_implied_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_role_inference_rules",
+ "description": "identity:list_role_inference_rules action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_implied_role",
+ "description": "identity:check_implied_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_system_grants_for_user",
+ "description": "identity:list_system_grants_for_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_system_grant_for_user",
+ "description": "identity:check_system_grant_for_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_system_grant_for_user",
+ "description": "identity:create_system_grant_for_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:revoke_system_grant_for_user",
+ "description": "identity:revoke_system_grant_for_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_system_grants_for_group",
+ "description": "identity:list_system_grants_for_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_system_grant_for_group",
+ "description": "identity:check_system_grant_for_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_system_grant_for_group",
+ "description": "identity:create_system_grant_for_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:revoke_system_grant_for_group",
+ "description": "identity:revoke_system_grant_for_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_grant",
+ "description": "identity:check_grant action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_grants",
+ "description": "identity:list_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_grant",
+ "description": "identity:create_grant action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:revoke_grant",
+ "description": "identity:revoke_grant action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "domain_admin_for_grants",
+ "description": "domain_admin_for_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "domain_admin_for_global_role_grants",
+ "description": "domain_admin_for_global_role_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "domain_admin_for_domain_role_grants",
+ "description": "domain_admin_for_domain_role_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "domain_admin_grant_match",
+ "description": "domain_admin_grant_match action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "project_admin_for_grants",
+ "description": "project_admin_for_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "project_admin_for_global_role_grants",
+ "description": "project_admin_for_global_role_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "project_admin_for_domain_role_grants",
+ "description": "project_admin_for_domain_role_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "domain_admin_for_list_grants",
+ "description": "domain_admin_for_list_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "project_admin_for_list_grants",
+ "description": "project_admin_for_list_grants action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_on_domain_filter",
+ "description": "admin_on_domain_filter action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_on_project_filter",
+ "description": "admin_on_project_filter action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "admin_on_domain_of_project_filter",
+ "description": "admin_on_domain_of_project_filter action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_role_assignments",
+ "description": "identity:list_role_assignments action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_role_assignments_for_tree",
+ "description": "identity:list_role_assignments_for_tree action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_policy",
+ "description": "identity:get_policy action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_policies",
+ "description": "identity:list_policies action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_policy",
+ "description": "identity:create_policy action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_policy",
+ "description": "identity:update_policy action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_policy",
+ "description": "identity:delete_policy action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_token",
+ "description": "identity:check_token action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:validate_token",
+ "description": "identity:validate_token action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:validate_token_head",
+ "description": "identity:validate_token_head action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:revocation_list",
+ "description": "identity:revocation_list action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:revoke_token",
+ "description": "identity:revoke_token action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_trust",
+ "description": "identity:create_trust action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_trusts",
+ "description": "identity:list_trusts action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_roles_for_trust",
+ "description": "identity:list_roles_for_trust action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_role_for_trust",
+ "description": "identity:get_role_for_trust action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_trust",
+ "description": "identity:delete_trust action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_trust",
+ "description": "identity:get_trust action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_consumer",
+ "description": "identity:create_consumer action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_consumer",
+ "description": "identity:get_consumer action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_consumers",
+ "description": "identity:list_consumers action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_consumer",
+ "description": "identity:delete_consumer action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_consumer",
+ "description": "identity:update_consumer action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:authorize_request_token",
+ "description": "identity:authorize_request_token action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_access_token_roles",
+ "description": "identity:list_access_token_roles action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_access_token_role",
+ "description": "identity:get_access_token_role action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_access_tokens",
+ "description": "identity:list_access_tokens action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_access_token",
+ "description": "identity:get_access_token action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_access_token",
+ "description": "identity:delete_access_token action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_projects_for_endpoint",
+ "description": "identity:list_projects_for_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:add_endpoint_to_project",
+ "description": "identity:add_endpoint_to_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_endpoint_in_project",
+ "description": "identity:check_endpoint_in_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_endpoints_for_project",
+ "description": "identity:list_endpoints_for_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:remove_endpoint_from_project",
+ "description": "identity:remove_endpoint_from_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_endpoint_group",
+ "description": "identity:create_endpoint_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_endpoint_groups",
+ "description": "identity:list_endpoint_groups action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_endpoint_group",
+ "description": "identity:get_endpoint_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_endpoint_group",
+ "description": "identity:update_endpoint_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_endpoint_group",
+ "description": "identity:delete_endpoint_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_projects_associated_with_endpoint_group",
+ "description": "identity:list_projects_associated_with_endpoint_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_endpoints_associated_with_endpoint_group",
+ "description": "identity:list_endpoints_associated_with_endpoint_group action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_endpoint_group_in_project",
+ "description": "identity:get_endpoint_group_in_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_endpoint_groups_for_project",
+ "description": "identity:list_endpoint_groups_for_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:add_endpoint_group_to_project",
+ "description": "identity:add_endpoint_group_to_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:remove_endpoint_group_from_project",
+ "description": "identity:remove_endpoint_group_from_project action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_identity_provider",
+ "description": "identity:create_identity_provider action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_identity_providers",
+ "description": "identity:list_identity_providers action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_identity_provider",
+ "description": "identity:get_identity_provider action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_identity_provider",
+ "description": "identity:update_identity_provider action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_identity_provider",
+ "description": "identity:delete_identity_provider action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_protocol",
+ "description": "identity:create_protocol action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_protocol",
+ "description": "identity:update_protocol action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_protocol",
+ "description": "identity:get_protocol action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_protocols",
+ "description": "identity:list_protocols action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_protocol",
+ "description": "identity:delete_protocol action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_mapping",
+ "description": "identity:create_mapping action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_mapping",
+ "description": "identity:get_mapping action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_mappings",
+ "description": "identity:list_mappings action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_mapping",
+ "description": "identity:delete_mapping action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_mapping",
+ "description": "identity:update_mapping action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_service_provider",
+ "description": "identity:create_service_provider action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_service_providers",
+ "description": "identity:list_service_providers action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_service_provider",
+ "description": "identity:get_service_provider action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_service_provider",
+ "description": "identity:update_service_provider action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_service_provider",
+ "description": "identity:delete_service_provider action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_auth_catalog",
+ "description": "identity:get_auth_catalog action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_auth_projects",
+ "description": "identity:get_auth_projects action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_auth_domains",
+ "description": "identity:get_auth_domains action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_auth_system",
+ "description": "identity:get_auth_system action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_projects_for_user",
+ "description": "identity:list_projects_for_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_domains_for_user",
+ "description": "identity:list_domains_for_user action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_revoke_events",
+ "description": "identity:list_revoke_events action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_policy_association_for_endpoint",
+ "description": "identity:create_policy_association_for_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_policy_association_for_endpoint",
+ "description": "identity:check_policy_association_for_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_policy_association_for_endpoint",
+ "description": "identity:delete_policy_association_for_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_policy_association_for_service",
+ "description": "identity:create_policy_association_for_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_policy_association_for_service",
+ "description": "identity:check_policy_association_for_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_policy_association_for_service",
+ "description": "identity:delete_policy_association_for_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_policy_association_for_region_and_service",
+ "description": "identity:create_policy_association_for_region_and_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:check_policy_association_for_region_and_service",
+ "description": "identity:check_policy_association_for_region_and_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_policy_association_for_region_and_service",
+ "description": "identity:delete_policy_association_for_region_and_service action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_policy_for_endpoint",
+ "description": "identity:get_policy_for_endpoint action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_endpoints_for_policy",
+ "description": "identity:list_endpoints_for_policy action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_domain_config",
+ "description": "identity:create_domain_config action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_domain_config",
+ "description": "identity:get_domain_config action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_security_compliance_domain_config",
+ "description": "identity:get_security_compliance_domain_config action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:update_domain_config",
+ "description": "identity:update_domain_config action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_domain_config",
+ "description": "identity:delete_domain_config action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_domain_config_default",
+ "description": "identity:get_domain_config_default action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:get_application_credential",
+ "description": "identity:get_application_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:list_application_credentials",
+ "description": "identity:list_application_credentials action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:create_application_credential",
+ "description": "identity:create_application_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ },
+ {
+ "name": "identity:delete_application_credential",
+ "description": "identity:delete_application_credential action for keystone",
+ "extra": {
+ "component": "keystone"
+ },
+ "policies": []
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "action_id",
+ "description": ""
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_region",
+ "description": "identity:get_region action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_regions",
+ "description": "identity:list_regions action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_region",
+ "description": "identity:create_region action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_region",
+ "description": "identity:update_region action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_region",
+ "description": "identity:delete_region action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_service",
+ "description": "identity:get_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_services",
+ "description": "identity:list_services action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_service",
+ "description": "identity:create_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_service",
+ "description": "identity:update_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_service",
+ "description": "identity:delete_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_endpoint",
+ "description": "identity:get_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_endpoints",
+ "description": "identity:list_endpoints action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_endpoint",
+ "description": "identity:create_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_endpoint",
+ "description": "identity:update_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_endpoint",
+ "description": "identity:delete_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_registered_limit",
+ "description": "identity:get_registered_limit action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_registered_limits",
+ "description": "identity:list_registered_limits action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_registered_limits",
+ "description": "identity:create_registered_limits action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_registered_limits",
+ "description": "identity:update_registered_limits action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_registered_limit",
+ "description": "identity:delete_registered_limit action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_limit",
+ "description": "identity:get_limit action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_limits",
+ "description": "identity:list_limits action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_limits",
+ "description": "identity:create_limits action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_limits",
+ "description": "identity:update_limits action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_limit",
+ "description": "identity:delete_limit action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_domain",
+ "description": "identity:get_domain action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_domains",
+ "description": "identity:list_domains action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_domain",
+ "description": "identity:create_domain action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_domain",
+ "description": "identity:update_domain action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_domain",
+ "description": "identity:delete_domain action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_and_matching_target_project_domain_id",
+ "description": "admin_and_matching_target_project_domain_id action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_and_matching_project_domain_id",
+ "description": "admin_and_matching_project_domain_id action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_project",
+ "description": "identity:get_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_projects",
+ "description": "identity:list_projects action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_user_projects",
+ "description": "identity:list_user_projects action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_project",
+ "description": "identity:create_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_project",
+ "description": "identity:update_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_project",
+ "description": "identity:delete_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_project_tag",
+ "description": "identity:create_project_tag action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_project_tag",
+ "description": "identity:delete_project_tag action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_project_tag",
+ "description": "identity:get_project_tag action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_project_tags",
+ "description": "identity:list_project_tags action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_project_tags",
+ "description": "identity:delete_project_tags action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_project_tags",
+ "description": "identity:update_project_tags action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_and_matching_target_user_domain_id",
+ "description": "admin_and_matching_target_user_domain_id action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_and_matching_user_domain_id",
+ "description": "admin_and_matching_user_domain_id action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_user",
+ "description": "identity:get_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_users",
+ "description": "identity:list_users action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_user",
+ "description": "identity:create_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_user",
+ "description": "identity:update_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_user",
+ "description": "identity:delete_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_and_matching_target_group_domain_id",
+ "description": "admin_and_matching_target_group_domain_id action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_and_matching_group_domain_id",
+ "description": "admin_and_matching_group_domain_id action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_group",
+ "description": "identity:get_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_groups",
+ "description": "identity:list_groups action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_groups_for_user",
+ "description": "identity:list_groups_for_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_group",
+ "description": "identity:create_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_group",
+ "description": "identity:update_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_group",
+ "description": "identity:delete_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_users_in_group",
+ "description": "identity:list_users_in_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:remove_user_from_group",
+ "description": "identity:remove_user_from_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_user_in_group",
+ "description": "identity:check_user_in_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:add_user_to_group",
+ "description": "identity:add_user_to_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_credential",
+ "description": "identity:get_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_credentials",
+ "description": "identity:list_credentials action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_credential",
+ "description": "identity:create_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_credential",
+ "description": "identity:update_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_credential",
+ "description": "identity:delete_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:ec2_get_credential",
+ "description": "identity:ec2_get_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:ec2_list_credentials",
+ "description": "identity:ec2_list_credentials action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:ec2_create_credential",
+ "description": "identity:ec2_create_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:ec2_delete_credential",
+ "description": "identity:ec2_delete_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_role",
+ "description": "identity:get_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_roles",
+ "description": "identity:list_roles action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_role",
+ "description": "identity:create_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_role",
+ "description": "identity:update_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_role",
+ "description": "identity:delete_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_domain_role",
+ "description": "identity:get_domain_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_domain_roles",
+ "description": "identity:list_domain_roles action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_domain_role",
+ "description": "identity:create_domain_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_domain_role",
+ "description": "identity:update_domain_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_domain_role",
+ "description": "identity:delete_domain_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "domain_admin_matches_domain_role",
+ "description": "domain_admin_matches_domain_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "get_domain_roles",
+ "description": "get_domain_roles action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "domain_admin_matches_target_domain_role",
+ "description": "domain_admin_matches_target_domain_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "project_admin_matches_target_domain_role",
+ "description": "project_admin_matches_target_domain_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "list_domain_roles",
+ "description": "list_domain_roles action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "domain_admin_matches_filter_on_list_domain_roles",
+ "description": "domain_admin_matches_filter_on_list_domain_roles action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "project_admin_matches_filter_on_list_domain_roles",
+ "description": "project_admin_matches_filter_on_list_domain_roles action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_and_matching_prior_role_domain_id",
+ "description": "admin_and_matching_prior_role_domain_id action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "implied_role_matches_prior_role_domain_or_global",
+ "description": "implied_role_matches_prior_role_domain_or_global action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_implied_role",
+ "description": "identity:get_implied_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_implied_roles",
+ "description": "identity:list_implied_roles action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_implied_role",
+ "description": "identity:create_implied_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_implied_role",
+ "description": "identity:delete_implied_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_role_inference_rules",
+ "description": "identity:list_role_inference_rules action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_implied_role",
+ "description": "identity:check_implied_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_system_grants_for_user",
+ "description": "identity:list_system_grants_for_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_system_grant_for_user",
+ "description": "identity:check_system_grant_for_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_system_grant_for_user",
+ "description": "identity:create_system_grant_for_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:revoke_system_grant_for_user",
+ "description": "identity:revoke_system_grant_for_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_system_grants_for_group",
+ "description": "identity:list_system_grants_for_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_system_grant_for_group",
+ "description": "identity:check_system_grant_for_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_system_grant_for_group",
+ "description": "identity:create_system_grant_for_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:revoke_system_grant_for_group",
+ "description": "identity:revoke_system_grant_for_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_grant",
+ "description": "identity:check_grant action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_grants",
+ "description": "identity:list_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_grant",
+ "description": "identity:create_grant action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:revoke_grant",
+ "description": "identity:revoke_grant action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "domain_admin_for_grants",
+ "description": "domain_admin_for_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "domain_admin_for_global_role_grants",
+ "description": "domain_admin_for_global_role_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "domain_admin_for_domain_role_grants",
+ "description": "domain_admin_for_domain_role_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "domain_admin_grant_match",
+ "description": "domain_admin_grant_match action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "project_admin_for_grants",
+ "description": "project_admin_for_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "project_admin_for_global_role_grants",
+ "description": "project_admin_for_global_role_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "project_admin_for_domain_role_grants",
+ "description": "project_admin_for_domain_role_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "domain_admin_for_list_grants",
+ "description": "domain_admin_for_list_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "project_admin_for_list_grants",
+ "description": "project_admin_for_list_grants action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_on_domain_filter",
+ "description": "admin_on_domain_filter action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_on_project_filter",
+ "description": "admin_on_project_filter action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "admin_on_domain_of_project_filter",
+ "description": "admin_on_domain_of_project_filter action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_role_assignments",
+ "description": "identity:list_role_assignments action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_role_assignments_for_tree",
+ "description": "identity:list_role_assignments_for_tree action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_policy",
+ "description": "identity:get_policy action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_policies",
+ "description": "identity:list_policies action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_policy",
+ "description": "identity:create_policy action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_policy",
+ "description": "identity:update_policy action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_policy",
+ "description": "identity:delete_policy action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_token",
+ "description": "identity:check_token action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:validate_token",
+ "description": "identity:validate_token action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:validate_token_head",
+ "description": "identity:validate_token_head action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:revocation_list",
+ "description": "identity:revocation_list action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:revoke_token",
+ "description": "identity:revoke_token action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_trust",
+ "description": "identity:create_trust action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_trusts",
+ "description": "identity:list_trusts action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_roles_for_trust",
+ "description": "identity:list_roles_for_trust action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_role_for_trust",
+ "description": "identity:get_role_for_trust action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_trust",
+ "description": "identity:delete_trust action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_trust",
+ "description": "identity:get_trust action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_consumer",
+ "description": "identity:create_consumer action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_consumer",
+ "description": "identity:get_consumer action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_consumers",
+ "description": "identity:list_consumers action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_consumer",
+ "description": "identity:delete_consumer action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_consumer",
+ "description": "identity:update_consumer action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:authorize_request_token",
+ "description": "identity:authorize_request_token action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_access_token_roles",
+ "description": "identity:list_access_token_roles action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_access_token_role",
+ "description": "identity:get_access_token_role action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_access_tokens",
+ "description": "identity:list_access_tokens action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_access_token",
+ "description": "identity:get_access_token action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_access_token",
+ "description": "identity:delete_access_token action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_projects_for_endpoint",
+ "description": "identity:list_projects_for_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:add_endpoint_to_project",
+ "description": "identity:add_endpoint_to_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_endpoint_in_project",
+ "description": "identity:check_endpoint_in_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_endpoints_for_project",
+ "description": "identity:list_endpoints_for_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:remove_endpoint_from_project",
+ "description": "identity:remove_endpoint_from_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_endpoint_group",
+ "description": "identity:create_endpoint_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_endpoint_groups",
+ "description": "identity:list_endpoint_groups action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_endpoint_group",
+ "description": "identity:get_endpoint_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_endpoint_group",
+ "description": "identity:update_endpoint_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_endpoint_group",
+ "description": "identity:delete_endpoint_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_projects_associated_with_endpoint_group",
+ "description": "identity:list_projects_associated_with_endpoint_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_endpoints_associated_with_endpoint_group",
+ "description": "identity:list_endpoints_associated_with_endpoint_group action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_endpoint_group_in_project",
+ "description": "identity:get_endpoint_group_in_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_endpoint_groups_for_project",
+ "description": "identity:list_endpoint_groups_for_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:add_endpoint_group_to_project",
+ "description": "identity:add_endpoint_group_to_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:remove_endpoint_group_from_project",
+ "description": "identity:remove_endpoint_group_from_project action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_identity_provider",
+ "description": "identity:create_identity_provider action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_identity_providers",
+ "description": "identity:list_identity_providers action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_identity_provider",
+ "description": "identity:get_identity_provider action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_identity_provider",
+ "description": "identity:update_identity_provider action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_identity_provider",
+ "description": "identity:delete_identity_provider action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_protocol",
+ "description": "identity:create_protocol action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_protocol",
+ "description": "identity:update_protocol action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_protocol",
+ "description": "identity:get_protocol action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_protocols",
+ "description": "identity:list_protocols action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_protocol",
+ "description": "identity:delete_protocol action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_mapping",
+ "description": "identity:create_mapping action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_mapping",
+ "description": "identity:get_mapping action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_mappings",
+ "description": "identity:list_mappings action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_mapping",
+ "description": "identity:delete_mapping action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_mapping",
+ "description": "identity:update_mapping action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_service_provider",
+ "description": "identity:create_service_provider action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_service_providers",
+ "description": "identity:list_service_providers action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_service_provider",
+ "description": "identity:get_service_provider action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_service_provider",
+ "description": "identity:update_service_provider action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_service_provider",
+ "description": "identity:delete_service_provider action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_auth_catalog",
+ "description": "identity:get_auth_catalog action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_auth_projects",
+ "description": "identity:get_auth_projects action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_auth_domains",
+ "description": "identity:get_auth_domains action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_auth_system",
+ "description": "identity:get_auth_system action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_projects_for_user",
+ "description": "identity:list_projects_for_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_domains_for_user",
+ "description": "identity:list_domains_for_user action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_revoke_events",
+ "description": "identity:list_revoke_events action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_policy_association_for_endpoint",
+ "description": "identity:create_policy_association_for_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_policy_association_for_endpoint",
+ "description": "identity:check_policy_association_for_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_policy_association_for_endpoint",
+ "description": "identity:delete_policy_association_for_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_policy_association_for_service",
+ "description": "identity:create_policy_association_for_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_policy_association_for_service",
+ "description": "identity:check_policy_association_for_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_policy_association_for_service",
+ "description": "identity:delete_policy_association_for_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_policy_association_for_region_and_service",
+ "description": "identity:create_policy_association_for_region_and_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:check_policy_association_for_region_and_service",
+ "description": "identity:check_policy_association_for_region_and_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_policy_association_for_region_and_service",
+ "description": "identity:delete_policy_association_for_region_and_service action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_policy_for_endpoint",
+ "description": "identity:get_policy_for_endpoint action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_endpoints_for_policy",
+ "description": "identity:list_endpoints_for_policy action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_domain_config",
+ "description": "identity:create_domain_config action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_domain_config",
+ "description": "identity:get_domain_config action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_security_compliance_domain_config",
+ "description": "identity:get_security_compliance_domain_config action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:update_domain_config",
+ "description": "identity:update_domain_config action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_domain_config",
+ "description": "identity:delete_domain_config action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_domain_config_default",
+ "description": "identity:get_domain_config_default action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:get_application_credential",
+ "description": "identity:get_application_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:list_application_credentials",
+ "description": "identity:list_application_credentials action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:create_application_credential",
+ "description": "identity:create_application_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "identity:delete_application_credential",
+ "description": "identity:delete_application_credential action for keystone",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ }
+ ],
+ "action_assignments": [
+ {
+ "action": {
+ "name": "identity:get_region"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_region"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_regions"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_regions"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_region"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_region"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_region"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_region"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_region"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_region"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_services"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_services"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_endpoints"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_endpoints"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_registered_limit"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_registered_limit"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_registered_limits"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_registered_limits"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_registered_limits"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_registered_limits"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_registered_limits"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_registered_limits"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_registered_limit"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_registered_limit"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_limit"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_limit"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_limits"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_limits"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_limits"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_limits"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_limits"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_limits"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_limit"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_limit"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_domain"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_domain"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_domains"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_domains"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_domain"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_domain"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_domain"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_domain"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_domain"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_domain"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_and_matching_target_project_domain_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_and_matching_target_project_domain_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_and_matching_project_domain_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_and_matching_project_domain_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_projects"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_projects"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_user_projects"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_user_projects"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_project_tag"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_project_tag"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_project_tag"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_project_tag"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_project_tag"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_project_tag"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_project_tags"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_project_tags"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_project_tags"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_project_tags"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_project_tags"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_project_tags"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_and_matching_target_user_domain_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_and_matching_target_user_domain_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_and_matching_user_domain_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_and_matching_user_domain_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_users"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_users"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_and_matching_target_group_domain_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_and_matching_target_group_domain_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_and_matching_group_domain_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_and_matching_group_domain_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_groups"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_groups"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_groups_for_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_groups_for_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_users_in_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_users_in_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:remove_user_from_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:remove_user_from_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_user_in_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_user_in_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:add_user_to_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:add_user_to_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_credentials"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_credentials"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:ec2_get_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:ec2_get_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:ec2_list_credentials"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:ec2_list_credentials"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:ec2_create_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:ec2_create_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:ec2_delete_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:ec2_delete_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_roles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_roles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_domain_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_domain_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_domain_roles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_domain_roles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_domain_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_domain_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_domain_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_domain_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_domain_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_domain_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "domain_admin_matches_domain_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "domain_admin_matches_domain_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "get_domain_roles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "get_domain_roles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "domain_admin_matches_target_domain_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "domain_admin_matches_target_domain_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "project_admin_matches_target_domain_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "project_admin_matches_target_domain_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "list_domain_roles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "list_domain_roles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "domain_admin_matches_filter_on_list_domain_roles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "domain_admin_matches_filter_on_list_domain_roles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "project_admin_matches_filter_on_list_domain_roles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "project_admin_matches_filter_on_list_domain_roles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_and_matching_prior_role_domain_id"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_and_matching_prior_role_domain_id"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "implied_role_matches_prior_role_domain_or_global"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "implied_role_matches_prior_role_domain_or_global"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_implied_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_implied_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_implied_roles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_implied_roles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_implied_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_implied_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_implied_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_implied_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_role_inference_rules"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_role_inference_rules"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_implied_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_implied_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_system_grants_for_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_system_grants_for_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_system_grant_for_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_system_grant_for_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_system_grant_for_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_system_grant_for_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:revoke_system_grant_for_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:revoke_system_grant_for_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_system_grants_for_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_system_grants_for_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_system_grant_for_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_system_grant_for_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_system_grant_for_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_system_grant_for_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:revoke_system_grant_for_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:revoke_system_grant_for_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_grant"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_grant"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_grant"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_grant"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:revoke_grant"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:revoke_grant"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "domain_admin_for_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "domain_admin_for_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "domain_admin_for_global_role_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "domain_admin_for_global_role_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "domain_admin_for_domain_role_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "domain_admin_for_domain_role_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "domain_admin_grant_match"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "domain_admin_grant_match"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "project_admin_for_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "project_admin_for_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "project_admin_for_global_role_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "project_admin_for_global_role_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "project_admin_for_domain_role_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "project_admin_for_domain_role_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "domain_admin_for_list_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "domain_admin_for_list_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "project_admin_for_list_grants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "project_admin_for_list_grants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_on_domain_filter"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_on_domain_filter"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_on_project_filter"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_on_project_filter"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "admin_on_domain_of_project_filter"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "admin_on_domain_of_project_filter"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_role_assignments"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_role_assignments"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_role_assignments_for_tree"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_role_assignments_for_tree"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_policies"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_policies"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_token"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_token"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:validate_token"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:validate_token"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:validate_token_head"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:validate_token_head"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:revocation_list"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:revocation_list"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:revoke_token"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:revoke_token"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_trust"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_trust"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_trusts"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_trusts"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_roles_for_trust"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_roles_for_trust"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_role_for_trust"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_role_for_trust"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_trust"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_trust"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_trust"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_trust"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_consumer"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_consumer"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_consumer"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_consumer"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_consumers"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_consumers"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_consumer"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_consumer"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_consumer"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_consumer"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:authorize_request_token"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:authorize_request_token"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_access_token_roles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_access_token_roles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_access_token_role"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_access_token_role"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_access_tokens"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_access_tokens"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_access_token"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_access_token"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_access_token"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_access_token"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_projects_for_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_projects_for_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:add_endpoint_to_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:add_endpoint_to_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_endpoint_in_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_endpoint_in_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_endpoints_for_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_endpoints_for_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:remove_endpoint_from_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:remove_endpoint_from_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_endpoint_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_endpoint_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_endpoint_groups"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_endpoint_groups"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_endpoint_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_endpoint_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_endpoint_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_endpoint_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_endpoint_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_endpoint_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_projects_associated_with_endpoint_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_projects_associated_with_endpoint_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_endpoints_associated_with_endpoint_group"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_endpoints_associated_with_endpoint_group"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_endpoint_group_in_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_endpoint_group_in_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_endpoint_groups_for_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_endpoint_groups_for_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:add_endpoint_group_to_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:add_endpoint_group_to_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:remove_endpoint_group_from_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:remove_endpoint_group_from_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_identity_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_identity_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_identity_providers"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_identity_providers"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_identity_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_identity_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_identity_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_identity_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_identity_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_identity_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_protocol"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_protocol"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_protocol"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_protocol"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_protocol"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_protocol"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_protocols"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_protocols"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_protocol"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_protocol"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_mapping"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_mapping"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_mapping"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_mapping"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_mappings"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_mappings"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_mapping"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_mapping"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_mapping"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_mapping"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_service_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_service_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_service_providers"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_service_providers"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_service_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_service_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_service_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_service_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_service_provider"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_service_provider"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_auth_catalog"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_auth_catalog"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_auth_projects"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_auth_projects"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_auth_domains"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_auth_domains"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_auth_system"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_auth_system"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_projects_for_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_projects_for_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_domains_for_user"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_domains_for_user"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_revoke_events"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_revoke_events"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_policy_association_for_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_policy_association_for_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_policy_association_for_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_policy_association_for_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_policy_association_for_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_policy_association_for_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_policy_association_for_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_policy_association_for_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_policy_association_for_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_policy_association_for_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_policy_association_for_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_policy_association_for_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_policy_association_for_region_and_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_policy_association_for_region_and_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:check_policy_association_for_region_and_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:check_policy_association_for_region_and_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_policy_association_for_region_and_service"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_policy_association_for_region_and_service"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_policy_for_endpoint"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_policy_for_endpoint"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_endpoints_for_policy"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_endpoints_for_policy"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_domain_config"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_domain_config"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_domain_config"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_domain_config"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_security_compliance_domain_config"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_security_compliance_domain_config"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:update_domain_config"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:update_domain_config"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_domain_config"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_domain_config"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_domain_config_default"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_domain_config_default"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:get_application_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:get_application_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:list_application_credentials"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:list_application_credentials"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:create_application_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:create_application_credential"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "identity:delete_application_credential"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "identity:delete_application_credential"
+ }
+ ]
+ }
+ ],
+ "meta_rules": [
+ {
+ "name": "rbac",
+ "description": "",
+ "subject_categories": [
+ {
+ "name": "role"
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "id"
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "action_id"
+ }
+ ]
+ }
+ ],
+ "rules": [
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_region"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_regions"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_region"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_region"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_region"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_services"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_endpoints"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_registered_limit"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_registered_limits"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_registered_limits"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_registered_limits"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_registered_limit"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_limit"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_limits"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_limits"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_limits"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_limit"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_domain"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_domains"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_domain"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_domain"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_domain"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_and_matching_target_project_domain_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_and_matching_project_domain_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_projects"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_user_projects"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_project_tag"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_project_tag"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_project_tag"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_project_tags"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_project_tags"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_project_tags"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_and_matching_target_user_domain_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_and_matching_user_domain_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_users"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_and_matching_target_group_domain_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_and_matching_group_domain_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_groups"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_groups_for_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_users_in_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:remove_user_from_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_user_in_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:add_user_to_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_credentials"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:ec2_get_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:ec2_list_credentials"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:ec2_create_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:ec2_delete_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_roles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_domain_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_domain_roles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_domain_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_domain_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_domain_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "domain_admin_matches_domain_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "get_domain_roles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "domain_admin_matches_target_domain_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "project_admin_matches_target_domain_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "list_domain_roles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "domain_admin_matches_filter_on_list_domain_roles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "project_admin_matches_filter_on_list_domain_roles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_and_matching_prior_role_domain_id"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "implied_role_matches_prior_role_domain_or_global"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_implied_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_implied_roles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_implied_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_implied_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_role_inference_rules"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_implied_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_system_grants_for_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_system_grant_for_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_system_grant_for_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:revoke_system_grant_for_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_system_grants_for_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_system_grant_for_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_system_grant_for_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:revoke_system_grant_for_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_grant"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_grant"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:revoke_grant"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "domain_admin_for_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "domain_admin_for_global_role_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "domain_admin_for_domain_role_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "domain_admin_grant_match"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "project_admin_for_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "project_admin_for_global_role_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "project_admin_for_domain_role_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "domain_admin_for_list_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "project_admin_for_list_grants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_on_domain_filter"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_on_project_filter"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "admin_on_domain_of_project_filter"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_role_assignments"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_role_assignments_for_tree"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_policies"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_token"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:validate_token"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:validate_token_head"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:revocation_list"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:revoke_token"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_trust"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_trusts"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_roles_for_trust"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_role_for_trust"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_trust"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_trust"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_consumer"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_consumer"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_consumers"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_consumer"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_consumer"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:authorize_request_token"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_access_token_roles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_access_token_role"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_access_tokens"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_access_token"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_access_token"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_projects_for_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:add_endpoint_to_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_endpoint_in_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_endpoints_for_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:remove_endpoint_from_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_endpoint_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_endpoint_groups"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_endpoint_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_endpoint_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_endpoint_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_projects_associated_with_endpoint_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_endpoints_associated_with_endpoint_group"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_endpoint_group_in_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_endpoint_groups_for_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:add_endpoint_group_to_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:remove_endpoint_group_from_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_identity_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_identity_providers"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_identity_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_identity_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_identity_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_protocol"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_protocol"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_protocol"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_protocols"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_protocol"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_mapping"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_mapping"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_mappings"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_mapping"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_mapping"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_service_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_service_providers"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_service_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_service_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_service_provider"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_auth_catalog"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_auth_projects"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_auth_domains"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_auth_system"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_projects_for_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_domains_for_user"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_revoke_events"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_policy_association_for_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_policy_association_for_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_policy_association_for_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_policy_association_for_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_policy_association_for_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_policy_association_for_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_policy_association_for_region_and_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:check_policy_association_for_region_and_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_policy_association_for_region_and_service"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_policy_for_endpoint"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_endpoints_for_policy"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_domain_config"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_domain_config"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_security_compliance_domain_config"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:update_domain_config"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_domain_config"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_domain_config_default"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:get_application_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:list_application_credentials"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:create_application_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "identity:delete_application_credential"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ }
+ ]
+} \ No newline at end of file
diff --git a/moon_engine/tests/func_policies/opst_rbac_kg.json b/moon_engine/tests/func_policies/opst_rbac_kg.json
new file mode 100644
index 00000000..5fc27b8c
--- /dev/null
+++ b/moon_engine/tests/func_policies/opst_rbac_kg.json
@@ -0,0 +1 @@
+{"policies": [{"name": "OpenStack RBAC Policy", "genre": "authz", "description": "A RBAC policy similar of what you can find through policy.json files", "model": {"name": "OPST_RBAC"}, "mandatory": true, "override": true}], "models": [{"name": "OPST_RBAC", "description": "", "meta_rules": [{"name": "rbac"}], "override": true}], "subjects": [{"name": "admin", "description": "", "extra": {}, "policies": [{"name": "OpenStack RBAC Policy"}]}], "subject_categories": [{"name": "role", "description": "a role in OpenStack"}], "subject_data": [{"name": "admin", "description": "the admin role", "policies": [], "category": {"name": "role"}}, {"name": "member", "description": "the member role", "policies": [], "category": {"name": "role"}}], "subject_assignments": [{"subject": {"name": "admin"}, "category": {"name": "role"}, "assignments": [{"name": "admin"}, {"name": "member"}]}], "objects": [{"name": "all_vm", "description": "", "extra": {}, "policies": [{"name": "OpenStack RBAC Policy"}]}], "object_categories": [{"name": "id", "description": "the UID of each virtual machine"}], "object_data": [{"name": "all_vm", "description": "represents all virtual machines in this project", "policies": [], "category": {"name": "id"}}], "object_assignments": [{"object": {"name": "all_vm"}, "category": {"name": "id"}, "assignments": [{"name": "all_vm"}]}], "actions": [{"name": "add_image", "description": "add_image action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "delete_image", "description": "delete_image action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "get_image", "description": "get_image action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "get_images", "description": "get_images action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "modify_image", "description": "modify_image action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "publicize_image", "description": "publicize_image action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "communitize_image", "description": "communitize_image action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "copy_from", "description": "copy_from action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "download_image", "description": "download_image action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "upload_image", "description": "upload_image action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "delete_image_location", "description": "delete_image_location action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "get_image_location", "description": "get_image_location action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "set_image_location", "description": "set_image_location action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "add_member", "description": "add_member action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "delete_member", "description": "delete_member action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "get_member", "description": "get_member action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "get_members", "description": "get_members action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "modify_member", "description": "modify_member action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "manage_image_cache", "description": "manage_image_cache action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "get_task", "description": "get_task action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "get_tasks", "description": "get_tasks action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "add_task", "description": "add_task action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "modify_task", "description": "modify_task action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "tasks_api_access", "description": "tasks_api_access action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "deactivate", "description": "deactivate action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "reactivate", "description": "reactivate action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "get_metadef_namespace", "description": "get_metadef_namespace action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "get_metadef_namespaces", "description": "get_metadef_namespaces action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "modify_metadef_namespace", "description": "modify_metadef_namespace action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "add_metadef_namespace", "description": "add_metadef_namespace action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "get_metadef_object", "description": "get_metadef_object action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "get_metadef_objects", "description": "get_metadef_objects action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "modify_metadef_object", "description": "modify_metadef_object action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "add_metadef_object", "description": "add_metadef_object action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "list_metadef_resource_types", "description": "list_metadef_resource_types action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "get_metadef_resource_type", "description": "get_metadef_resource_type action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "add_metadef_resource_type_association", "description": "add_metadef_resource_type_association action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "get_metadef_property", "description": "get_metadef_property action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "get_metadef_properties", "description": "get_metadef_properties action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "modify_metadef_property", "description": "modify_metadef_property action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "add_metadef_property", "description": "add_metadef_property action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "get_metadef_tag", "description": "get_metadef_tag action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "get_metadef_tags", "description": "get_metadef_tags action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "modify_metadef_tag", "description": "modify_metadef_tag action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "add_metadef_tag", "description": "add_metadef_tag action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "add_metadef_tags", "description": "add_metadef_tags action for glance", "extra": {"component": "glance"}, "policies": []}, {"name": "identity:get_region", "description": "identity:get_region action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_regions", "description": "identity:list_regions action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_region", "description": "identity:create_region action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_region", "description": "identity:update_region action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_region", "description": "identity:delete_region action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_service", "description": "identity:get_service action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_services", "description": "identity:list_services action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_service", "description": "identity:create_service action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_service", "description": "identity:update_service action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_service", "description": "identity:delete_service action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_endpoint", "description": "identity:get_endpoint action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_endpoints", "description": "identity:list_endpoints action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_endpoint", "description": "identity:create_endpoint action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_endpoint", "description": "identity:update_endpoint action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_endpoint", "description": "identity:delete_endpoint action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_registered_limit", "description": "identity:get_registered_limit action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_registered_limits", "description": "identity:list_registered_limits action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_registered_limits", "description": "identity:create_registered_limits action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_registered_limits", "description": "identity:update_registered_limits action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_registered_limit", "description": "identity:delete_registered_limit action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_limit", "description": "identity:get_limit action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_limits", "description": "identity:list_limits action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_limits", "description": "identity:create_limits action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_limits", "description": "identity:update_limits action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_limit", "description": "identity:delete_limit action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_domain", "description": "identity:get_domain action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_domains", "description": "identity:list_domains action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_domain", "description": "identity:create_domain action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_domain", "description": "identity:update_domain action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_domain", "description": "identity:delete_domain action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "admin_and_matching_target_project_domain_id", "description": "admin_and_matching_target_project_domain_id action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "admin_and_matching_project_domain_id", "description": "admin_and_matching_project_domain_id action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_project", "description": "identity:get_project action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_projects", "description": "identity:list_projects action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_user_projects", "description": "identity:list_user_projects action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_project", "description": "identity:create_project action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_project", "description": "identity:update_project action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_project", "description": "identity:delete_project action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_project_tag", "description": "identity:create_project_tag action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_project_tag", "description": "identity:delete_project_tag action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_project_tag", "description": "identity:get_project_tag action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_project_tags", "description": "identity:list_project_tags action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_project_tags", "description": "identity:delete_project_tags action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_project_tags", "description": "identity:update_project_tags action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "admin_and_matching_target_user_domain_id", "description": "admin_and_matching_target_user_domain_id action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "admin_and_matching_user_domain_id", "description": "admin_and_matching_user_domain_id action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_user", "description": "identity:get_user action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_users", "description": "identity:list_users action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_user", "description": "identity:create_user action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_user", "description": "identity:update_user action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_user", "description": "identity:delete_user action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "admin_and_matching_target_group_domain_id", "description": "admin_and_matching_target_group_domain_id action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "admin_and_matching_group_domain_id", "description": "admin_and_matching_group_domain_id action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_group", "description": "identity:get_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_groups", "description": "identity:list_groups action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_groups_for_user", "description": "identity:list_groups_for_user action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_group", "description": "identity:create_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_group", "description": "identity:update_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_group", "description": "identity:delete_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_users_in_group", "description": "identity:list_users_in_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:remove_user_from_group", "description": "identity:remove_user_from_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:check_user_in_group", "description": "identity:check_user_in_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:add_user_to_group", "description": "identity:add_user_to_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_credential", "description": "identity:get_credential action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_credentials", "description": "identity:list_credentials action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_credential", "description": "identity:create_credential action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_credential", "description": "identity:update_credential action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_credential", "description": "identity:delete_credential action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:ec2_get_credential", "description": "identity:ec2_get_credential action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:ec2_list_credentials", "description": "identity:ec2_list_credentials action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:ec2_create_credential", "description": "identity:ec2_create_credential action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:ec2_delete_credential", "description": "identity:ec2_delete_credential action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_role", "description": "identity:get_role action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_roles", "description": "identity:list_roles action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_role", "description": "identity:create_role action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_role", "description": "identity:update_role action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_role", "description": "identity:delete_role action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_domain_role", "description": "identity:get_domain_role action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_domain_roles", "description": "identity:list_domain_roles action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_domain_role", "description": "identity:create_domain_role action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_domain_role", "description": "identity:update_domain_role action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_domain_role", "description": "identity:delete_domain_role action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "domain_admin_matches_domain_role", "description": "domain_admin_matches_domain_role action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "get_domain_roles", "description": "get_domain_roles action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "domain_admin_matches_target_domain_role", "description": "domain_admin_matches_target_domain_role action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "project_admin_matches_target_domain_role", "description": "project_admin_matches_target_domain_role action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "list_domain_roles", "description": "list_domain_roles action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "domain_admin_matches_filter_on_list_domain_roles", "description": "domain_admin_matches_filter_on_list_domain_roles action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "project_admin_matches_filter_on_list_domain_roles", "description": "project_admin_matches_filter_on_list_domain_roles action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "admin_and_matching_prior_role_domain_id", "description": "admin_and_matching_prior_role_domain_id action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "implied_role_matches_prior_role_domain_or_global", "description": "implied_role_matches_prior_role_domain_or_global action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_implied_role", "description": "identity:get_implied_role action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_implied_roles", "description": "identity:list_implied_roles action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_implied_role", "description": "identity:create_implied_role action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_implied_role", "description": "identity:delete_implied_role action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_role_inference_rules", "description": "identity:list_role_inference_rules action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:check_implied_role", "description": "identity:check_implied_role action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_system_grants_for_user", "description": "identity:list_system_grants_for_user action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:check_system_grant_for_user", "description": "identity:check_system_grant_for_user action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_system_grant_for_user", "description": "identity:create_system_grant_for_user action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:revoke_system_grant_for_user", "description": "identity:revoke_system_grant_for_user action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_system_grants_for_group", "description": "identity:list_system_grants_for_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:check_system_grant_for_group", "description": "identity:check_system_grant_for_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_system_grant_for_group", "description": "identity:create_system_grant_for_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:revoke_system_grant_for_group", "description": "identity:revoke_system_grant_for_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:check_grant", "description": "identity:check_grant action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_grants", "description": "identity:list_grants action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_grant", "description": "identity:create_grant action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:revoke_grant", "description": "identity:revoke_grant action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "domain_admin_for_grants", "description": "domain_admin_for_grants action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "domain_admin_for_global_role_grants", "description": "domain_admin_for_global_role_grants action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "domain_admin_for_domain_role_grants", "description": "domain_admin_for_domain_role_grants action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "domain_admin_grant_match", "description": "domain_admin_grant_match action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "project_admin_for_grants", "description": "project_admin_for_grants action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "project_admin_for_global_role_grants", "description": "project_admin_for_global_role_grants action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "project_admin_for_domain_role_grants", "description": "project_admin_for_domain_role_grants action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "domain_admin_for_list_grants", "description": "domain_admin_for_list_grants action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "project_admin_for_list_grants", "description": "project_admin_for_list_grants action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "admin_on_domain_filter", "description": "admin_on_domain_filter action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "admin_on_project_filter", "description": "admin_on_project_filter action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "admin_on_domain_of_project_filter", "description": "admin_on_domain_of_project_filter action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_role_assignments", "description": "identity:list_role_assignments action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_role_assignments_for_tree", "description": "identity:list_role_assignments_for_tree action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_policy", "description": "identity:get_policy action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_policies", "description": "identity:list_policies action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_policy", "description": "identity:create_policy action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_policy", "description": "identity:update_policy action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_policy", "description": "identity:delete_policy action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:check_token", "description": "identity:check_token action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:validate_token", "description": "identity:validate_token action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:validate_token_head", "description": "identity:validate_token_head action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:revocation_list", "description": "identity:revocation_list action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:revoke_token", "description": "identity:revoke_token action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_trust", "description": "identity:create_trust action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_trusts", "description": "identity:list_trusts action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_roles_for_trust", "description": "identity:list_roles_for_trust action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_role_for_trust", "description": "identity:get_role_for_trust action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_trust", "description": "identity:delete_trust action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_trust", "description": "identity:get_trust action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_consumer", "description": "identity:create_consumer action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_consumer", "description": "identity:get_consumer action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_consumers", "description": "identity:list_consumers action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_consumer", "description": "identity:delete_consumer action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_consumer", "description": "identity:update_consumer action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:authorize_request_token", "description": "identity:authorize_request_token action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_access_token_roles", "description": "identity:list_access_token_roles action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_access_token_role", "description": "identity:get_access_token_role action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_access_tokens", "description": "identity:list_access_tokens action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_access_token", "description": "identity:get_access_token action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_access_token", "description": "identity:delete_access_token action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_projects_for_endpoint", "description": "identity:list_projects_for_endpoint action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:add_endpoint_to_project", "description": "identity:add_endpoint_to_project action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:check_endpoint_in_project", "description": "identity:check_endpoint_in_project action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_endpoints_for_project", "description": "identity:list_endpoints_for_project action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:remove_endpoint_from_project", "description": "identity:remove_endpoint_from_project action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_endpoint_group", "description": "identity:create_endpoint_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_endpoint_groups", "description": "identity:list_endpoint_groups action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_endpoint_group", "description": "identity:get_endpoint_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_endpoint_group", "description": "identity:update_endpoint_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_endpoint_group", "description": "identity:delete_endpoint_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_projects_associated_with_endpoint_group", "description": "identity:list_projects_associated_with_endpoint_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_endpoints_associated_with_endpoint_group", "description": "identity:list_endpoints_associated_with_endpoint_group action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_endpoint_group_in_project", "description": "identity:get_endpoint_group_in_project action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_endpoint_groups_for_project", "description": "identity:list_endpoint_groups_for_project action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:add_endpoint_group_to_project", "description": "identity:add_endpoint_group_to_project action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:remove_endpoint_group_from_project", "description": "identity:remove_endpoint_group_from_project action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_identity_provider", "description": "identity:create_identity_provider action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_identity_providers", "description": "identity:list_identity_providers action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_identity_provider", "description": "identity:get_identity_provider action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_identity_provider", "description": "identity:update_identity_provider action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_identity_provider", "description": "identity:delete_identity_provider action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_protocol", "description": "identity:create_protocol action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_protocol", "description": "identity:update_protocol action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_protocol", "description": "identity:get_protocol action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_protocols", "description": "identity:list_protocols action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_protocol", "description": "identity:delete_protocol action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_mapping", "description": "identity:create_mapping action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_mapping", "description": "identity:get_mapping action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_mappings", "description": "identity:list_mappings action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_mapping", "description": "identity:delete_mapping action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_mapping", "description": "identity:update_mapping action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_service_provider", "description": "identity:create_service_provider action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_service_providers", "description": "identity:list_service_providers action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_service_provider", "description": "identity:get_service_provider action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_service_provider", "description": "identity:update_service_provider action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_service_provider", "description": "identity:delete_service_provider action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_auth_catalog", "description": "identity:get_auth_catalog action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_auth_projects", "description": "identity:get_auth_projects action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_auth_domains", "description": "identity:get_auth_domains action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_auth_system", "description": "identity:get_auth_system action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_projects_for_user", "description": "identity:list_projects_for_user action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_domains_for_user", "description": "identity:list_domains_for_user action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_revoke_events", "description": "identity:list_revoke_events action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_policy_association_for_endpoint", "description": "identity:create_policy_association_for_endpoint action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:check_policy_association_for_endpoint", "description": "identity:check_policy_association_for_endpoint action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_policy_association_for_endpoint", "description": "identity:delete_policy_association_for_endpoint action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_policy_association_for_service", "description": "identity:create_policy_association_for_service action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:check_policy_association_for_service", "description": "identity:check_policy_association_for_service action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_policy_association_for_service", "description": "identity:delete_policy_association_for_service action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_policy_association_for_region_and_service", "description": "identity:create_policy_association_for_region_and_service action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:check_policy_association_for_region_and_service", "description": "identity:check_policy_association_for_region_and_service action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_policy_association_for_region_and_service", "description": "identity:delete_policy_association_for_region_and_service action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_policy_for_endpoint", "description": "identity:get_policy_for_endpoint action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_endpoints_for_policy", "description": "identity:list_endpoints_for_policy action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_domain_config", "description": "identity:create_domain_config action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_domain_config", "description": "identity:get_domain_config action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_security_compliance_domain_config", "description": "identity:get_security_compliance_domain_config action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:update_domain_config", "description": "identity:update_domain_config action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_domain_config", "description": "identity:delete_domain_config action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_domain_config_default", "description": "identity:get_domain_config_default action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:get_application_credential", "description": "identity:get_application_credential action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:list_application_credentials", "description": "identity:list_application_credentials action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:create_application_credential", "description": "identity:create_application_credential action for keystone", "extra": {"component": "keystone"}, "policies": []}, {"name": "identity:delete_application_credential", "description": "identity:delete_application_credential action for keystone", "extra": {"component": "keystone"}, "policies": []}], "action_categories": [{"name": "action_id", "description": ""}], "action_data": [{"name": "add_image", "description": "add_image action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "delete_image", "description": "delete_image action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "get_image", "description": "get_image action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "get_images", "description": "get_images action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "modify_image", "description": "modify_image action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "publicize_image", "description": "publicize_image action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "communitize_image", "description": "communitize_image action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "copy_from", "description": "copy_from action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "download_image", "description": "download_image action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "upload_image", "description": "upload_image action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "delete_image_location", "description": "delete_image_location action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "get_image_location", "description": "get_image_location action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "set_image_location", "description": "set_image_location action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "add_member", "description": "add_member action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "delete_member", "description": "delete_member action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "get_member", "description": "get_member action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "get_members", "description": "get_members action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "modify_member", "description": "modify_member action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "manage_image_cache", "description": "manage_image_cache action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "get_task", "description": "get_task action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "get_tasks", "description": "get_tasks action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "add_task", "description": "add_task action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "modify_task", "description": "modify_task action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "tasks_api_access", "description": "tasks_api_access action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "deactivate", "description": "deactivate action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "reactivate", "description": "reactivate action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "get_metadef_namespace", "description": "get_metadef_namespace action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "get_metadef_namespaces", "description": "get_metadef_namespaces action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "modify_metadef_namespace", "description": "modify_metadef_namespace action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "add_metadef_namespace", "description": "add_metadef_namespace action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "get_metadef_object", "description": "get_metadef_object action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "get_metadef_objects", "description": "get_metadef_objects action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "modify_metadef_object", "description": "modify_metadef_object action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "add_metadef_object", "description": "add_metadef_object action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "list_metadef_resource_types", "description": "list_metadef_resource_types action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "get_metadef_resource_type", "description": "get_metadef_resource_type action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "add_metadef_resource_type_association", "description": "add_metadef_resource_type_association action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "get_metadef_property", "description": "get_metadef_property action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "get_metadef_properties", "description": "get_metadef_properties action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "modify_metadef_property", "description": "modify_metadef_property action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "add_metadef_property", "description": "add_metadef_property action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "get_metadef_tag", "description": "get_metadef_tag action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "get_metadef_tags", "description": "get_metadef_tags action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "modify_metadef_tag", "description": "modify_metadef_tag action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "add_metadef_tag", "description": "add_metadef_tag action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "add_metadef_tags", "description": "add_metadef_tags action for glance", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_region", "description": "identity:get_region action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_regions", "description": "identity:list_regions action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_region", "description": "identity:create_region action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_region", "description": "identity:update_region action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_region", "description": "identity:delete_region action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_service", "description": "identity:get_service action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_services", "description": "identity:list_services action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_service", "description": "identity:create_service action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_service", "description": "identity:update_service action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_service", "description": "identity:delete_service action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_endpoint", "description": "identity:get_endpoint action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_endpoints", "description": "identity:list_endpoints action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_endpoint", "description": "identity:create_endpoint action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_endpoint", "description": "identity:update_endpoint action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_endpoint", "description": "identity:delete_endpoint action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_registered_limit", "description": "identity:get_registered_limit action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_registered_limits", "description": "identity:list_registered_limits action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_registered_limits", "description": "identity:create_registered_limits action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_registered_limits", "description": "identity:update_registered_limits action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_registered_limit", "description": "identity:delete_registered_limit action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_limit", "description": "identity:get_limit action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_limits", "description": "identity:list_limits action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_limits", "description": "identity:create_limits action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_limits", "description": "identity:update_limits action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_limit", "description": "identity:delete_limit action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_domain", "description": "identity:get_domain action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_domains", "description": "identity:list_domains action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_domain", "description": "identity:create_domain action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_domain", "description": "identity:update_domain action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_domain", "description": "identity:delete_domain action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "admin_and_matching_target_project_domain_id", "description": "admin_and_matching_target_project_domain_id action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "admin_and_matching_project_domain_id", "description": "admin_and_matching_project_domain_id action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_project", "description": "identity:get_project action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_projects", "description": "identity:list_projects action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_user_projects", "description": "identity:list_user_projects action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_project", "description": "identity:create_project action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_project", "description": "identity:update_project action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_project", "description": "identity:delete_project action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_project_tag", "description": "identity:create_project_tag action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_project_tag", "description": "identity:delete_project_tag action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_project_tag", "description": "identity:get_project_tag action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_project_tags", "description": "identity:list_project_tags action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_project_tags", "description": "identity:delete_project_tags action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_project_tags", "description": "identity:update_project_tags action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "admin_and_matching_target_user_domain_id", "description": "admin_and_matching_target_user_domain_id action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "admin_and_matching_user_domain_id", "description": "admin_and_matching_user_domain_id action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_user", "description": "identity:get_user action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_users", "description": "identity:list_users action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_user", "description": "identity:create_user action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_user", "description": "identity:update_user action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_user", "description": "identity:delete_user action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "admin_and_matching_target_group_domain_id", "description": "admin_and_matching_target_group_domain_id action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "admin_and_matching_group_domain_id", "description": "admin_and_matching_group_domain_id action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_group", "description": "identity:get_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_groups", "description": "identity:list_groups action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_groups_for_user", "description": "identity:list_groups_for_user action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_group", "description": "identity:create_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_group", "description": "identity:update_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_group", "description": "identity:delete_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_users_in_group", "description": "identity:list_users_in_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:remove_user_from_group", "description": "identity:remove_user_from_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:check_user_in_group", "description": "identity:check_user_in_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:add_user_to_group", "description": "identity:add_user_to_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_credential", "description": "identity:get_credential action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_credentials", "description": "identity:list_credentials action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_credential", "description": "identity:create_credential action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_credential", "description": "identity:update_credential action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_credential", "description": "identity:delete_credential action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:ec2_get_credential", "description": "identity:ec2_get_credential action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:ec2_list_credentials", "description": "identity:ec2_list_credentials action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:ec2_create_credential", "description": "identity:ec2_create_credential action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:ec2_delete_credential", "description": "identity:ec2_delete_credential action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_role", "description": "identity:get_role action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_roles", "description": "identity:list_roles action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_role", "description": "identity:create_role action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_role", "description": "identity:update_role action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_role", "description": "identity:delete_role action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_domain_role", "description": "identity:get_domain_role action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_domain_roles", "description": "identity:list_domain_roles action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_domain_role", "description": "identity:create_domain_role action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_domain_role", "description": "identity:update_domain_role action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_domain_role", "description": "identity:delete_domain_role action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "domain_admin_matches_domain_role", "description": "domain_admin_matches_domain_role action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "get_domain_roles", "description": "get_domain_roles action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "domain_admin_matches_target_domain_role", "description": "domain_admin_matches_target_domain_role action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "project_admin_matches_target_domain_role", "description": "project_admin_matches_target_domain_role action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "list_domain_roles", "description": "list_domain_roles action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "domain_admin_matches_filter_on_list_domain_roles", "description": "domain_admin_matches_filter_on_list_domain_roles action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "project_admin_matches_filter_on_list_domain_roles", "description": "project_admin_matches_filter_on_list_domain_roles action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "admin_and_matching_prior_role_domain_id", "description": "admin_and_matching_prior_role_domain_id action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "implied_role_matches_prior_role_domain_or_global", "description": "implied_role_matches_prior_role_domain_or_global action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_implied_role", "description": "identity:get_implied_role action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_implied_roles", "description": "identity:list_implied_roles action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_implied_role", "description": "identity:create_implied_role action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_implied_role", "description": "identity:delete_implied_role action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_role_inference_rules", "description": "identity:list_role_inference_rules action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:check_implied_role", "description": "identity:check_implied_role action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_system_grants_for_user", "description": "identity:list_system_grants_for_user action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:check_system_grant_for_user", "description": "identity:check_system_grant_for_user action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_system_grant_for_user", "description": "identity:create_system_grant_for_user action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:revoke_system_grant_for_user", "description": "identity:revoke_system_grant_for_user action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_system_grants_for_group", "description": "identity:list_system_grants_for_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:check_system_grant_for_group", "description": "identity:check_system_grant_for_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_system_grant_for_group", "description": "identity:create_system_grant_for_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:revoke_system_grant_for_group", "description": "identity:revoke_system_grant_for_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:check_grant", "description": "identity:check_grant action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_grants", "description": "identity:list_grants action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_grant", "description": "identity:create_grant action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:revoke_grant", "description": "identity:revoke_grant action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "domain_admin_for_grants", "description": "domain_admin_for_grants action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "domain_admin_for_global_role_grants", "description": "domain_admin_for_global_role_grants action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "domain_admin_for_domain_role_grants", "description": "domain_admin_for_domain_role_grants action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "domain_admin_grant_match", "description": "domain_admin_grant_match action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "project_admin_for_grants", "description": "project_admin_for_grants action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "project_admin_for_global_role_grants", "description": "project_admin_for_global_role_grants action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "project_admin_for_domain_role_grants", "description": "project_admin_for_domain_role_grants action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "domain_admin_for_list_grants", "description": "domain_admin_for_list_grants action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "project_admin_for_list_grants", "description": "project_admin_for_list_grants action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "admin_on_domain_filter", "description": "admin_on_domain_filter action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "admin_on_project_filter", "description": "admin_on_project_filter action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "admin_on_domain_of_project_filter", "description": "admin_on_domain_of_project_filter action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_role_assignments", "description": "identity:list_role_assignments action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_role_assignments_for_tree", "description": "identity:list_role_assignments_for_tree action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_policy", "description": "identity:get_policy action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_policies", "description": "identity:list_policies action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_policy", "description": "identity:create_policy action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_policy", "description": "identity:update_policy action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_policy", "description": "identity:delete_policy action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:check_token", "description": "identity:check_token action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:validate_token", "description": "identity:validate_token action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:validate_token_head", "description": "identity:validate_token_head action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:revocation_list", "description": "identity:revocation_list action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:revoke_token", "description": "identity:revoke_token action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_trust", "description": "identity:create_trust action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_trusts", "description": "identity:list_trusts action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_roles_for_trust", "description": "identity:list_roles_for_trust action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_role_for_trust", "description": "identity:get_role_for_trust action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_trust", "description": "identity:delete_trust action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_trust", "description": "identity:get_trust action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_consumer", "description": "identity:create_consumer action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_consumer", "description": "identity:get_consumer action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_consumers", "description": "identity:list_consumers action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_consumer", "description": "identity:delete_consumer action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_consumer", "description": "identity:update_consumer action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:authorize_request_token", "description": "identity:authorize_request_token action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_access_token_roles", "description": "identity:list_access_token_roles action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_access_token_role", "description": "identity:get_access_token_role action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_access_tokens", "description": "identity:list_access_tokens action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_access_token", "description": "identity:get_access_token action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_access_token", "description": "identity:delete_access_token action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_projects_for_endpoint", "description": "identity:list_projects_for_endpoint action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:add_endpoint_to_project", "description": "identity:add_endpoint_to_project action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:check_endpoint_in_project", "description": "identity:check_endpoint_in_project action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_endpoints_for_project", "description": "identity:list_endpoints_for_project action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:remove_endpoint_from_project", "description": "identity:remove_endpoint_from_project action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_endpoint_group", "description": "identity:create_endpoint_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_endpoint_groups", "description": "identity:list_endpoint_groups action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_endpoint_group", "description": "identity:get_endpoint_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_endpoint_group", "description": "identity:update_endpoint_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_endpoint_group", "description": "identity:delete_endpoint_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_projects_associated_with_endpoint_group", "description": "identity:list_projects_associated_with_endpoint_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_endpoints_associated_with_endpoint_group", "description": "identity:list_endpoints_associated_with_endpoint_group action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_endpoint_group_in_project", "description": "identity:get_endpoint_group_in_project action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_endpoint_groups_for_project", "description": "identity:list_endpoint_groups_for_project action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:add_endpoint_group_to_project", "description": "identity:add_endpoint_group_to_project action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:remove_endpoint_group_from_project", "description": "identity:remove_endpoint_group_from_project action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_identity_provider", "description": "identity:create_identity_provider action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_identity_providers", "description": "identity:list_identity_providers action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_identity_provider", "description": "identity:get_identity_provider action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_identity_provider", "description": "identity:update_identity_provider action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_identity_provider", "description": "identity:delete_identity_provider action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_protocol", "description": "identity:create_protocol action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_protocol", "description": "identity:update_protocol action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_protocol", "description": "identity:get_protocol action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_protocols", "description": "identity:list_protocols action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_protocol", "description": "identity:delete_protocol action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_mapping", "description": "identity:create_mapping action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_mapping", "description": "identity:get_mapping action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_mappings", "description": "identity:list_mappings action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_mapping", "description": "identity:delete_mapping action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_mapping", "description": "identity:update_mapping action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_service_provider", "description": "identity:create_service_provider action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_service_providers", "description": "identity:list_service_providers action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_service_provider", "description": "identity:get_service_provider action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_service_provider", "description": "identity:update_service_provider action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_service_provider", "description": "identity:delete_service_provider action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_auth_catalog", "description": "identity:get_auth_catalog action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_auth_projects", "description": "identity:get_auth_projects action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_auth_domains", "description": "identity:get_auth_domains action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_auth_system", "description": "identity:get_auth_system action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_projects_for_user", "description": "identity:list_projects_for_user action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_domains_for_user", "description": "identity:list_domains_for_user action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_revoke_events", "description": "identity:list_revoke_events action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_policy_association_for_endpoint", "description": "identity:create_policy_association_for_endpoint action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:check_policy_association_for_endpoint", "description": "identity:check_policy_association_for_endpoint action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_policy_association_for_endpoint", "description": "identity:delete_policy_association_for_endpoint action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_policy_association_for_service", "description": "identity:create_policy_association_for_service action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:check_policy_association_for_service", "description": "identity:check_policy_association_for_service action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_policy_association_for_service", "description": "identity:delete_policy_association_for_service action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_policy_association_for_region_and_service", "description": "identity:create_policy_association_for_region_and_service action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:check_policy_association_for_region_and_service", "description": "identity:check_policy_association_for_region_and_service action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_policy_association_for_region_and_service", "description": "identity:delete_policy_association_for_region_and_service action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_policy_for_endpoint", "description": "identity:get_policy_for_endpoint action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_endpoints_for_policy", "description": "identity:list_endpoints_for_policy action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_domain_config", "description": "identity:create_domain_config action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_domain_config", "description": "identity:get_domain_config action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_security_compliance_domain_config", "description": "identity:get_security_compliance_domain_config action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:update_domain_config", "description": "identity:update_domain_config action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_domain_config", "description": "identity:delete_domain_config action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_domain_config_default", "description": "identity:get_domain_config_default action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:get_application_credential", "description": "identity:get_application_credential action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:list_application_credentials", "description": "identity:list_application_credentials action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:create_application_credential", "description": "identity:create_application_credential action for keystone", "policies": [], "category": {"name": "action_id"}}, {"name": "identity:delete_application_credential", "description": "identity:delete_application_credential action for keystone", "policies": [], "category": {"name": "action_id"}}], "action_assignments": [{"action": {"name": "add_image"}, "category": {"name": "action_id"}, "assignments": [{"name": "add_image"}]}, {"action": {"name": "delete_image"}, "category": {"name": "action_id"}, "assignments": [{"name": "delete_image"}]}, {"action": {"name": "get_image"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_image"}]}, {"action": {"name": "get_images"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_images"}]}, {"action": {"name": "modify_image"}, "category": {"name": "action_id"}, "assignments": [{"name": "modify_image"}]}, {"action": {"name": "publicize_image"}, "category": {"name": "action_id"}, "assignments": [{"name": "publicize_image"}]}, {"action": {"name": "communitize_image"}, "category": {"name": "action_id"}, "assignments": [{"name": "communitize_image"}]}, {"action": {"name": "copy_from"}, "category": {"name": "action_id"}, "assignments": [{"name": "copy_from"}]}, {"action": {"name": "download_image"}, "category": {"name": "action_id"}, "assignments": [{"name": "download_image"}]}, {"action": {"name": "upload_image"}, "category": {"name": "action_id"}, "assignments": [{"name": "upload_image"}]}, {"action": {"name": "delete_image_location"}, "category": {"name": "action_id"}, "assignments": [{"name": "delete_image_location"}]}, {"action": {"name": "get_image_location"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_image_location"}]}, {"action": {"name": "set_image_location"}, "category": {"name": "action_id"}, "assignments": [{"name": "set_image_location"}]}, {"action": {"name": "add_member"}, "category": {"name": "action_id"}, "assignments": [{"name": "add_member"}]}, {"action": {"name": "delete_member"}, "category": {"name": "action_id"}, "assignments": [{"name": "delete_member"}]}, {"action": {"name": "get_member"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_member"}]}, {"action": {"name": "get_members"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_members"}]}, {"action": {"name": "modify_member"}, "category": {"name": "action_id"}, "assignments": [{"name": "modify_member"}]}, {"action": {"name": "manage_image_cache"}, "category": {"name": "action_id"}, "assignments": [{"name": "manage_image_cache"}]}, {"action": {"name": "get_task"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_task"}]}, {"action": {"name": "get_tasks"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_tasks"}]}, {"action": {"name": "add_task"}, "category": {"name": "action_id"}, "assignments": [{"name": "add_task"}]}, {"action": {"name": "modify_task"}, "category": {"name": "action_id"}, "assignments": [{"name": "modify_task"}]}, {"action": {"name": "tasks_api_access"}, "category": {"name": "action_id"}, "assignments": [{"name": "tasks_api_access"}]}, {"action": {"name": "deactivate"}, "category": {"name": "action_id"}, "assignments": [{"name": "deactivate"}]}, {"action": {"name": "reactivate"}, "category": {"name": "action_id"}, "assignments": [{"name": "reactivate"}]}, {"action": {"name": "get_metadef_namespace"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_metadef_namespace"}]}, {"action": {"name": "get_metadef_namespaces"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_metadef_namespaces"}]}, {"action": {"name": "modify_metadef_namespace"}, "category": {"name": "action_id"}, "assignments": [{"name": "modify_metadef_namespace"}]}, {"action": {"name": "add_metadef_namespace"}, "category": {"name": "action_id"}, "assignments": [{"name": "add_metadef_namespace"}]}, {"action": {"name": "get_metadef_object"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_metadef_object"}]}, {"action": {"name": "get_metadef_objects"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_metadef_objects"}]}, {"action": {"name": "modify_metadef_object"}, "category": {"name": "action_id"}, "assignments": [{"name": "modify_metadef_object"}]}, {"action": {"name": "add_metadef_object"}, "category": {"name": "action_id"}, "assignments": [{"name": "add_metadef_object"}]}, {"action": {"name": "list_metadef_resource_types"}, "category": {"name": "action_id"}, "assignments": [{"name": "list_metadef_resource_types"}]}, {"action": {"name": "get_metadef_resource_type"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_metadef_resource_type"}]}, {"action": {"name": "add_metadef_resource_type_association"}, "category": {"name": "action_id"}, "assignments": [{"name": "add_metadef_resource_type_association"}]}, {"action": {"name": "get_metadef_property"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_metadef_property"}]}, {"action": {"name": "get_metadef_properties"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_metadef_properties"}]}, {"action": {"name": "modify_metadef_property"}, "category": {"name": "action_id"}, "assignments": [{"name": "modify_metadef_property"}]}, {"action": {"name": "add_metadef_property"}, "category": {"name": "action_id"}, "assignments": [{"name": "add_metadef_property"}]}, {"action": {"name": "get_metadef_tag"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_metadef_tag"}]}, {"action": {"name": "get_metadef_tags"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_metadef_tags"}]}, {"action": {"name": "modify_metadef_tag"}, "category": {"name": "action_id"}, "assignments": [{"name": "modify_metadef_tag"}]}, {"action": {"name": "add_metadef_tag"}, "category": {"name": "action_id"}, "assignments": [{"name": "add_metadef_tag"}]}, {"action": {"name": "add_metadef_tags"}, "category": {"name": "action_id"}, "assignments": [{"name": "add_metadef_tags"}]}, {"action": {"name": "identity:get_region"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_region"}]}, {"action": {"name": "identity:list_regions"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_regions"}]}, {"action": {"name": "identity:create_region"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_region"}]}, {"action": {"name": "identity:update_region"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_region"}]}, {"action": {"name": "identity:delete_region"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_region"}]}, {"action": {"name": "identity:get_service"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_service"}]}, {"action": {"name": "identity:list_services"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_services"}]}, {"action": {"name": "identity:create_service"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_service"}]}, {"action": {"name": "identity:update_service"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_service"}]}, {"action": {"name": "identity:delete_service"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_service"}]}, {"action": {"name": "identity:get_endpoint"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_endpoint"}]}, {"action": {"name": "identity:list_endpoints"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_endpoints"}]}, {"action": {"name": "identity:create_endpoint"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_endpoint"}]}, {"action": {"name": "identity:update_endpoint"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_endpoint"}]}, {"action": {"name": "identity:delete_endpoint"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_endpoint"}]}, {"action": {"name": "identity:get_registered_limit"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_registered_limit"}]}, {"action": {"name": "identity:list_registered_limits"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_registered_limits"}]}, {"action": {"name": "identity:create_registered_limits"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_registered_limits"}]}, {"action": {"name": "identity:update_registered_limits"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_registered_limits"}]}, {"action": {"name": "identity:delete_registered_limit"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_registered_limit"}]}, {"action": {"name": "identity:get_limit"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_limit"}]}, {"action": {"name": "identity:list_limits"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_limits"}]}, {"action": {"name": "identity:create_limits"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_limits"}]}, {"action": {"name": "identity:update_limits"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_limits"}]}, {"action": {"name": "identity:delete_limit"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_limit"}]}, {"action": {"name": "identity:get_domain"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_domain"}]}, {"action": {"name": "identity:list_domains"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_domains"}]}, {"action": {"name": "identity:create_domain"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_domain"}]}, {"action": {"name": "identity:update_domain"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_domain"}]}, {"action": {"name": "identity:delete_domain"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_domain"}]}, {"action": {"name": "admin_and_matching_target_project_domain_id"}, "category": {"name": "action_id"}, "assignments": [{"name": "admin_and_matching_target_project_domain_id"}]}, {"action": {"name": "admin_and_matching_project_domain_id"}, "category": {"name": "action_id"}, "assignments": [{"name": "admin_and_matching_project_domain_id"}]}, {"action": {"name": "identity:get_project"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_project"}]}, {"action": {"name": "identity:list_projects"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_projects"}]}, {"action": {"name": "identity:list_user_projects"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_user_projects"}]}, {"action": {"name": "identity:create_project"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_project"}]}, {"action": {"name": "identity:update_project"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_project"}]}, {"action": {"name": "identity:delete_project"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_project"}]}, {"action": {"name": "identity:create_project_tag"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_project_tag"}]}, {"action": {"name": "identity:delete_project_tag"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_project_tag"}]}, {"action": {"name": "identity:get_project_tag"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_project_tag"}]}, {"action": {"name": "identity:list_project_tags"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_project_tags"}]}, {"action": {"name": "identity:delete_project_tags"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_project_tags"}]}, {"action": {"name": "identity:update_project_tags"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_project_tags"}]}, {"action": {"name": "admin_and_matching_target_user_domain_id"}, "category": {"name": "action_id"}, "assignments": [{"name": "admin_and_matching_target_user_domain_id"}]}, {"action": {"name": "admin_and_matching_user_domain_id"}, "category": {"name": "action_id"}, "assignments": [{"name": "admin_and_matching_user_domain_id"}]}, {"action": {"name": "identity:get_user"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_user"}]}, {"action": {"name": "identity:list_users"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_users"}]}, {"action": {"name": "identity:create_user"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_user"}]}, {"action": {"name": "identity:update_user"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_user"}]}, {"action": {"name": "identity:delete_user"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_user"}]}, {"action": {"name": "admin_and_matching_target_group_domain_id"}, "category": {"name": "action_id"}, "assignments": [{"name": "admin_and_matching_target_group_domain_id"}]}, {"action": {"name": "admin_and_matching_group_domain_id"}, "category": {"name": "action_id"}, "assignments": [{"name": "admin_and_matching_group_domain_id"}]}, {"action": {"name": "identity:get_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_group"}]}, {"action": {"name": "identity:list_groups"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_groups"}]}, {"action": {"name": "identity:list_groups_for_user"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_groups_for_user"}]}, {"action": {"name": "identity:create_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_group"}]}, {"action": {"name": "identity:update_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_group"}]}, {"action": {"name": "identity:delete_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_group"}]}, {"action": {"name": "identity:list_users_in_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_users_in_group"}]}, {"action": {"name": "identity:remove_user_from_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:remove_user_from_group"}]}, {"action": {"name": "identity:check_user_in_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:check_user_in_group"}]}, {"action": {"name": "identity:add_user_to_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:add_user_to_group"}]}, {"action": {"name": "identity:get_credential"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_credential"}]}, {"action": {"name": "identity:list_credentials"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_credentials"}]}, {"action": {"name": "identity:create_credential"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_credential"}]}, {"action": {"name": "identity:update_credential"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_credential"}]}, {"action": {"name": "identity:delete_credential"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_credential"}]}, {"action": {"name": "identity:ec2_get_credential"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:ec2_get_credential"}]}, {"action": {"name": "identity:ec2_list_credentials"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:ec2_list_credentials"}]}, {"action": {"name": "identity:ec2_create_credential"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:ec2_create_credential"}]}, {"action": {"name": "identity:ec2_delete_credential"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:ec2_delete_credential"}]}, {"action": {"name": "identity:get_role"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_role"}]}, {"action": {"name": "identity:list_roles"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_roles"}]}, {"action": {"name": "identity:create_role"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_role"}]}, {"action": {"name": "identity:update_role"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_role"}]}, {"action": {"name": "identity:delete_role"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_role"}]}, {"action": {"name": "identity:get_domain_role"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_domain_role"}]}, {"action": {"name": "identity:list_domain_roles"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_domain_roles"}]}, {"action": {"name": "identity:create_domain_role"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_domain_role"}]}, {"action": {"name": "identity:update_domain_role"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_domain_role"}]}, {"action": {"name": "identity:delete_domain_role"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_domain_role"}]}, {"action": {"name": "domain_admin_matches_domain_role"}, "category": {"name": "action_id"}, "assignments": [{"name": "domain_admin_matches_domain_role"}]}, {"action": {"name": "get_domain_roles"}, "category": {"name": "action_id"}, "assignments": [{"name": "get_domain_roles"}]}, {"action": {"name": "domain_admin_matches_target_domain_role"}, "category": {"name": "action_id"}, "assignments": [{"name": "domain_admin_matches_target_domain_role"}]}, {"action": {"name": "project_admin_matches_target_domain_role"}, "category": {"name": "action_id"}, "assignments": [{"name": "project_admin_matches_target_domain_role"}]}, {"action": {"name": "list_domain_roles"}, "category": {"name": "action_id"}, "assignments": [{"name": "list_domain_roles"}]}, {"action": {"name": "domain_admin_matches_filter_on_list_domain_roles"}, "category": {"name": "action_id"}, "assignments": [{"name": "domain_admin_matches_filter_on_list_domain_roles"}]}, {"action": {"name": "project_admin_matches_filter_on_list_domain_roles"}, "category": {"name": "action_id"}, "assignments": [{"name": "project_admin_matches_filter_on_list_domain_roles"}]}, {"action": {"name": "admin_and_matching_prior_role_domain_id"}, "category": {"name": "action_id"}, "assignments": [{"name": "admin_and_matching_prior_role_domain_id"}]}, {"action": {"name": "implied_role_matches_prior_role_domain_or_global"}, "category": {"name": "action_id"}, "assignments": [{"name": "implied_role_matches_prior_role_domain_or_global"}]}, {"action": {"name": "identity:get_implied_role"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_implied_role"}]}, {"action": {"name": "identity:list_implied_roles"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_implied_roles"}]}, {"action": {"name": "identity:create_implied_role"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_implied_role"}]}, {"action": {"name": "identity:delete_implied_role"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_implied_role"}]}, {"action": {"name": "identity:list_role_inference_rules"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_role_inference_rules"}]}, {"action": {"name": "identity:check_implied_role"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:check_implied_role"}]}, {"action": {"name": "identity:list_system_grants_for_user"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_system_grants_for_user"}]}, {"action": {"name": "identity:check_system_grant_for_user"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:check_system_grant_for_user"}]}, {"action": {"name": "identity:create_system_grant_for_user"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_system_grant_for_user"}]}, {"action": {"name": "identity:revoke_system_grant_for_user"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:revoke_system_grant_for_user"}]}, {"action": {"name": "identity:list_system_grants_for_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_system_grants_for_group"}]}, {"action": {"name": "identity:check_system_grant_for_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:check_system_grant_for_group"}]}, {"action": {"name": "identity:create_system_grant_for_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_system_grant_for_group"}]}, {"action": {"name": "identity:revoke_system_grant_for_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:revoke_system_grant_for_group"}]}, {"action": {"name": "identity:check_grant"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:check_grant"}]}, {"action": {"name": "identity:list_grants"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_grants"}]}, {"action": {"name": "identity:create_grant"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_grant"}]}, {"action": {"name": "identity:revoke_grant"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:revoke_grant"}]}, {"action": {"name": "domain_admin_for_grants"}, "category": {"name": "action_id"}, "assignments": [{"name": "domain_admin_for_grants"}]}, {"action": {"name": "domain_admin_for_global_role_grants"}, "category": {"name": "action_id"}, "assignments": [{"name": "domain_admin_for_global_role_grants"}]}, {"action": {"name": "domain_admin_for_domain_role_grants"}, "category": {"name": "action_id"}, "assignments": [{"name": "domain_admin_for_domain_role_grants"}]}, {"action": {"name": "domain_admin_grant_match"}, "category": {"name": "action_id"}, "assignments": [{"name": "domain_admin_grant_match"}]}, {"action": {"name": "project_admin_for_grants"}, "category": {"name": "action_id"}, "assignments": [{"name": "project_admin_for_grants"}]}, {"action": {"name": "project_admin_for_global_role_grants"}, "category": {"name": "action_id"}, "assignments": [{"name": "project_admin_for_global_role_grants"}]}, {"action": {"name": "project_admin_for_domain_role_grants"}, "category": {"name": "action_id"}, "assignments": [{"name": "project_admin_for_domain_role_grants"}]}, {"action": {"name": "domain_admin_for_list_grants"}, "category": {"name": "action_id"}, "assignments": [{"name": "domain_admin_for_list_grants"}]}, {"action": {"name": "project_admin_for_list_grants"}, "category": {"name": "action_id"}, "assignments": [{"name": "project_admin_for_list_grants"}]}, {"action": {"name": "admin_on_domain_filter"}, "category": {"name": "action_id"}, "assignments": [{"name": "admin_on_domain_filter"}]}, {"action": {"name": "admin_on_project_filter"}, "category": {"name": "action_id"}, "assignments": [{"name": "admin_on_project_filter"}]}, {"action": {"name": "admin_on_domain_of_project_filter"}, "category": {"name": "action_id"}, "assignments": [{"name": "admin_on_domain_of_project_filter"}]}, {"action": {"name": "identity:list_role_assignments"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_role_assignments"}]}, {"action": {"name": "identity:list_role_assignments_for_tree"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_role_assignments_for_tree"}]}, {"action": {"name": "identity:get_policy"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_policy"}]}, {"action": {"name": "identity:list_policies"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_policies"}]}, {"action": {"name": "identity:create_policy"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_policy"}]}, {"action": {"name": "identity:update_policy"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_policy"}]}, {"action": {"name": "identity:delete_policy"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_policy"}]}, {"action": {"name": "identity:check_token"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:check_token"}]}, {"action": {"name": "identity:validate_token"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:validate_token"}]}, {"action": {"name": "identity:validate_token_head"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:validate_token_head"}]}, {"action": {"name": "identity:revocation_list"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:revocation_list"}]}, {"action": {"name": "identity:revoke_token"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:revoke_token"}]}, {"action": {"name": "identity:create_trust"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_trust"}]}, {"action": {"name": "identity:list_trusts"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_trusts"}]}, {"action": {"name": "identity:list_roles_for_trust"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_roles_for_trust"}]}, {"action": {"name": "identity:get_role_for_trust"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_role_for_trust"}]}, {"action": {"name": "identity:delete_trust"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_trust"}]}, {"action": {"name": "identity:get_trust"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_trust"}]}, {"action": {"name": "identity:create_consumer"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_consumer"}]}, {"action": {"name": "identity:get_consumer"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_consumer"}]}, {"action": {"name": "identity:list_consumers"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_consumers"}]}, {"action": {"name": "identity:delete_consumer"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_consumer"}]}, {"action": {"name": "identity:update_consumer"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_consumer"}]}, {"action": {"name": "identity:authorize_request_token"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:authorize_request_token"}]}, {"action": {"name": "identity:list_access_token_roles"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_access_token_roles"}]}, {"action": {"name": "identity:get_access_token_role"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_access_token_role"}]}, {"action": {"name": "identity:list_access_tokens"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_access_tokens"}]}, {"action": {"name": "identity:get_access_token"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_access_token"}]}, {"action": {"name": "identity:delete_access_token"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_access_token"}]}, {"action": {"name": "identity:list_projects_for_endpoint"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_projects_for_endpoint"}]}, {"action": {"name": "identity:add_endpoint_to_project"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:add_endpoint_to_project"}]}, {"action": {"name": "identity:check_endpoint_in_project"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:check_endpoint_in_project"}]}, {"action": {"name": "identity:list_endpoints_for_project"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_endpoints_for_project"}]}, {"action": {"name": "identity:remove_endpoint_from_project"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:remove_endpoint_from_project"}]}, {"action": {"name": "identity:create_endpoint_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_endpoint_group"}]}, {"action": {"name": "identity:list_endpoint_groups"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_endpoint_groups"}]}, {"action": {"name": "identity:get_endpoint_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_endpoint_group"}]}, {"action": {"name": "identity:update_endpoint_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_endpoint_group"}]}, {"action": {"name": "identity:delete_endpoint_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_endpoint_group"}]}, {"action": {"name": "identity:list_projects_associated_with_endpoint_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_projects_associated_with_endpoint_group"}]}, {"action": {"name": "identity:list_endpoints_associated_with_endpoint_group"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_endpoints_associated_with_endpoint_group"}]}, {"action": {"name": "identity:get_endpoint_group_in_project"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_endpoint_group_in_project"}]}, {"action": {"name": "identity:list_endpoint_groups_for_project"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_endpoint_groups_for_project"}]}, {"action": {"name": "identity:add_endpoint_group_to_project"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:add_endpoint_group_to_project"}]}, {"action": {"name": "identity:remove_endpoint_group_from_project"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:remove_endpoint_group_from_project"}]}, {"action": {"name": "identity:create_identity_provider"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_identity_provider"}]}, {"action": {"name": "identity:list_identity_providers"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_identity_providers"}]}, {"action": {"name": "identity:get_identity_provider"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_identity_provider"}]}, {"action": {"name": "identity:update_identity_provider"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_identity_provider"}]}, {"action": {"name": "identity:delete_identity_provider"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_identity_provider"}]}, {"action": {"name": "identity:create_protocol"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_protocol"}]}, {"action": {"name": "identity:update_protocol"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_protocol"}]}, {"action": {"name": "identity:get_protocol"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_protocol"}]}, {"action": {"name": "identity:list_protocols"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_protocols"}]}, {"action": {"name": "identity:delete_protocol"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_protocol"}]}, {"action": {"name": "identity:create_mapping"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_mapping"}]}, {"action": {"name": "identity:get_mapping"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_mapping"}]}, {"action": {"name": "identity:list_mappings"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_mappings"}]}, {"action": {"name": "identity:delete_mapping"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_mapping"}]}, {"action": {"name": "identity:update_mapping"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_mapping"}]}, {"action": {"name": "identity:create_service_provider"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_service_provider"}]}, {"action": {"name": "identity:list_service_providers"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_service_providers"}]}, {"action": {"name": "identity:get_service_provider"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_service_provider"}]}, {"action": {"name": "identity:update_service_provider"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_service_provider"}]}, {"action": {"name": "identity:delete_service_provider"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_service_provider"}]}, {"action": {"name": "identity:get_auth_catalog"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_auth_catalog"}]}, {"action": {"name": "identity:get_auth_projects"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_auth_projects"}]}, {"action": {"name": "identity:get_auth_domains"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_auth_domains"}]}, {"action": {"name": "identity:get_auth_system"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_auth_system"}]}, {"action": {"name": "identity:list_projects_for_user"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_projects_for_user"}]}, {"action": {"name": "identity:list_domains_for_user"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_domains_for_user"}]}, {"action": {"name": "identity:list_revoke_events"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_revoke_events"}]}, {"action": {"name": "identity:create_policy_association_for_endpoint"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_policy_association_for_endpoint"}]}, {"action": {"name": "identity:check_policy_association_for_endpoint"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:check_policy_association_for_endpoint"}]}, {"action": {"name": "identity:delete_policy_association_for_endpoint"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_policy_association_for_endpoint"}]}, {"action": {"name": "identity:create_policy_association_for_service"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_policy_association_for_service"}]}, {"action": {"name": "identity:check_policy_association_for_service"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:check_policy_association_for_service"}]}, {"action": {"name": "identity:delete_policy_association_for_service"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_policy_association_for_service"}]}, {"action": {"name": "identity:create_policy_association_for_region_and_service"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_policy_association_for_region_and_service"}]}, {"action": {"name": "identity:check_policy_association_for_region_and_service"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:check_policy_association_for_region_and_service"}]}, {"action": {"name": "identity:delete_policy_association_for_region_and_service"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_policy_association_for_region_and_service"}]}, {"action": {"name": "identity:get_policy_for_endpoint"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_policy_for_endpoint"}]}, {"action": {"name": "identity:list_endpoints_for_policy"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_endpoints_for_policy"}]}, {"action": {"name": "identity:create_domain_config"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_domain_config"}]}, {"action": {"name": "identity:get_domain_config"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_domain_config"}]}, {"action": {"name": "identity:get_security_compliance_domain_config"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_security_compliance_domain_config"}]}, {"action": {"name": "identity:update_domain_config"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:update_domain_config"}]}, {"action": {"name": "identity:delete_domain_config"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_domain_config"}]}, {"action": {"name": "identity:get_domain_config_default"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_domain_config_default"}]}, {"action": {"name": "identity:get_application_credential"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:get_application_credential"}]}, {"action": {"name": "identity:list_application_credentials"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:list_application_credentials"}]}, {"action": {"name": "identity:create_application_credential"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:create_application_credential"}]}, {"action": {"name": "identity:delete_application_credential"}, "category": {"name": "action_id"}, "assignments": [{"name": "identity:delete_application_credential"}]}], "meta_rules": [{"name": "rbac", "description": "", "subject_categories": [{"name": "role"}], "object_categories": [{"name": "id"}], "action_categories": [{"name": "action_id"}]}], "rules": [{"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "add_image"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "delete_image"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_image"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_images"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "modify_image"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "publicize_image"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "communitize_image"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "copy_from"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "download_image"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "upload_image"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "delete_image_location"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_image_location"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "set_image_location"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "add_member"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "delete_member"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_member"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_members"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "modify_member"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "manage_image_cache"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_task"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_tasks"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "add_task"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "modify_task"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "tasks_api_access"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "deactivate"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "reactivate"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_metadef_namespace"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_metadef_namespaces"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "modify_metadef_namespace"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "add_metadef_namespace"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_metadef_object"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_metadef_objects"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "modify_metadef_object"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "add_metadef_object"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "list_metadef_resource_types"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_metadef_resource_type"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "add_metadef_resource_type_association"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_metadef_property"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_metadef_properties"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "modify_metadef_property"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "add_metadef_property"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_metadef_tag"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_metadef_tags"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "modify_metadef_tag"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "add_metadef_tag"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "add_metadef_tags"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_region"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_regions"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_region"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_region"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_region"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_service"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_services"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_service"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_service"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_service"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_endpoint"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_endpoints"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_endpoint"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_endpoint"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_endpoint"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_registered_limit"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_registered_limits"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_registered_limits"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_registered_limits"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_registered_limit"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_limit"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_limits"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_limits"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_limits"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_limit"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_domain"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_domains"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_domain"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_domain"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_domain"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "admin_and_matching_target_project_domain_id"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "admin_and_matching_project_domain_id"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_project"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_projects"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_user_projects"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_project"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_project"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_project"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_project_tag"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_project_tag"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_project_tag"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_project_tags"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_project_tags"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_project_tags"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "admin_and_matching_target_user_domain_id"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "admin_and_matching_user_domain_id"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_user"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_users"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_user"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_user"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_user"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "admin_and_matching_target_group_domain_id"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "admin_and_matching_group_domain_id"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_groups"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_groups_for_user"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_users_in_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:remove_user_from_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:check_user_in_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:add_user_to_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_credential"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_credentials"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_credential"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_credential"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_credential"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:ec2_get_credential"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:ec2_list_credentials"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:ec2_create_credential"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:ec2_delete_credential"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_role"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_roles"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_role"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_role"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_role"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_domain_role"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_domain_roles"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_domain_role"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_domain_role"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_domain_role"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "domain_admin_matches_domain_role"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "get_domain_roles"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "domain_admin_matches_target_domain_role"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "project_admin_matches_target_domain_role"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "list_domain_roles"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "domain_admin_matches_filter_on_list_domain_roles"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "project_admin_matches_filter_on_list_domain_roles"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "admin_and_matching_prior_role_domain_id"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "implied_role_matches_prior_role_domain_or_global"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_implied_role"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_implied_roles"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_implied_role"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_implied_role"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_role_inference_rules"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:check_implied_role"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_system_grants_for_user"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:check_system_grant_for_user"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_system_grant_for_user"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:revoke_system_grant_for_user"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_system_grants_for_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:check_system_grant_for_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_system_grant_for_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:revoke_system_grant_for_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:check_grant"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_grants"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_grant"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:revoke_grant"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "domain_admin_for_grants"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "domain_admin_for_global_role_grants"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "domain_admin_for_domain_role_grants"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "domain_admin_grant_match"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "project_admin_for_grants"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "project_admin_for_global_role_grants"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "project_admin_for_domain_role_grants"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "domain_admin_for_list_grants"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "project_admin_for_list_grants"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "admin_on_domain_filter"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "admin_on_project_filter"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "admin_on_domain_of_project_filter"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_role_assignments"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_role_assignments_for_tree"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_policy"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_policies"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_policy"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_policy"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_policy"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:check_token"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:validate_token"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:validate_token_head"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:revocation_list"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:revoke_token"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_trust"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_trusts"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_roles_for_trust"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_role_for_trust"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_trust"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_trust"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_consumer"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_consumer"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_consumers"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_consumer"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_consumer"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:authorize_request_token"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_access_token_roles"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_access_token_role"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_access_tokens"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_access_token"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_access_token"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_projects_for_endpoint"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:add_endpoint_to_project"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:check_endpoint_in_project"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_endpoints_for_project"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:remove_endpoint_from_project"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_endpoint_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_endpoint_groups"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_endpoint_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_endpoint_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_endpoint_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_projects_associated_with_endpoint_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_endpoints_associated_with_endpoint_group"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_endpoint_group_in_project"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_endpoint_groups_for_project"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:add_endpoint_group_to_project"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:remove_endpoint_group_from_project"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_identity_provider"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_identity_providers"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_identity_provider"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_identity_provider"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_identity_provider"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_protocol"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_protocol"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_protocol"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_protocols"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_protocol"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_mapping"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_mapping"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_mappings"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_mapping"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_mapping"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_service_provider"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_service_providers"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_service_provider"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_service_provider"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_service_provider"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_auth_catalog"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_auth_projects"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_auth_domains"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_auth_system"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_projects_for_user"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_domains_for_user"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_revoke_events"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_policy_association_for_endpoint"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:check_policy_association_for_endpoint"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_policy_association_for_endpoint"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_policy_association_for_service"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:check_policy_association_for_service"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_policy_association_for_service"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_policy_association_for_region_and_service"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:check_policy_association_for_region_and_service"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_policy_association_for_region_and_service"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_policy_for_endpoint"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_endpoints_for_policy"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_domain_config"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_domain_config"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_security_compliance_domain_config"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:update_domain_config"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_domain_config"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_domain_config_default"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:get_application_credential"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:list_application_credentials"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:create_application_credential"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}, {"meta_rule": {"name": "rbac"}, "rule": {"subject_data": [{"name": "admin"}], "object_data": [{"name": "all_vm"}], "action_data": [{"name": "identity:delete_application_credential"}]}, "policy": {"name": "OpenStack RBAC Policy"}, "instructions": [{"decision": "grant"}], "enabled": true}]} \ No newline at end of file
diff --git a/moon_engine/tests/func_policies/opst_rbac_nova.json b/moon_engine/tests/func_policies/opst_rbac_nova.json
new file mode 100644
index 00000000..2d5b9016
--- /dev/null
+++ b/moon_engine/tests/func_policies/opst_rbac_nova.json
@@ -0,0 +1,27158 @@
+{
+ "policies": [
+ {
+ "name": "OpenStack RBAC Policy",
+ "genre": "authz",
+ "description": "A RBAC policy similar of what you can find through policy.json files",
+ "model": {
+ "name": "OPST_RBAC"
+ },
+ "mandatory": true,
+ "override": true
+ }
+ ],
+ "models": [
+ {
+ "name": "OPST_RBAC",
+ "description": "",
+ "meta_rules": [
+ {
+ "name": "rbac"
+ }
+ ],
+ "override": true
+ }
+ ],
+ "subjects": [
+ {
+ "name": "admin",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "OpenStack RBAC Policy"
+ }
+ ]
+ }
+ ],
+ "subject_categories": [
+ {
+ "name": "role",
+ "description": "a role in OpenStack"
+ }
+ ],
+ "subject_data": [
+ {
+ "name": "admin",
+ "description": "the admin role",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ },
+ {
+ "name": "member",
+ "description": "the member role",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ }
+ ],
+ "subject_assignments": [
+ {
+ "subject": {
+ "name": "admin"
+ },
+ "category": {
+ "name": "role"
+ },
+ "assignments": [
+ {
+ "name": "admin"
+ },
+ {
+ "name": "member"
+ }
+ ]
+ }
+ ],
+ "objects": [
+ {
+ "name": "all_vm",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "OpenStack RBAC Policy"
+ }
+ ]
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "id",
+ "description": "the UID of each virtual machine"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm",
+ "description": "represents all virtual machines in this project",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ }
+ ],
+ "object_assignments": [
+ {
+ "object": {
+ "name": "all_vm"
+ },
+ "category": {
+ "name": "id"
+ },
+ "assignments": [
+ {
+ "name": "all_vm"
+ }
+ ]
+ }
+ ],
+ "actions": [
+ {
+ "name": "cells_scheduler_filter:TargetCellFilter",
+ "description": "cells_scheduler_filter:TargetCellFilter action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:create",
+ "description": "compute:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:create:attach_network",
+ "description": "compute:create:attach_network action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:create:attach_volume",
+ "description": "compute:create:attach_volume action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:create:forced_host",
+ "description": "compute:create:forced_host action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get",
+ "description": "compute:get action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_all",
+ "description": "compute:get_all action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_all_tenants",
+ "description": "compute:get_all_tenants action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:update",
+ "description": "compute:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_instance_metadata",
+ "description": "compute:get_instance_metadata action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_all_instance_metadata",
+ "description": "compute:get_all_instance_metadata action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_all_instance_system_metadata",
+ "description": "compute:get_all_instance_system_metadata action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:update_instance_metadata",
+ "description": "compute:update_instance_metadata action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:delete_instance_metadata",
+ "description": "compute:delete_instance_metadata action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_instance_faults",
+ "description": "compute:get_instance_faults action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_diagnostics",
+ "description": "compute:get_diagnostics action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_instance_diagnostics",
+ "description": "compute:get_instance_diagnostics action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:start",
+ "description": "compute:start action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:stop",
+ "description": "compute:stop action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_lock",
+ "description": "compute:get_lock action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:lock",
+ "description": "compute:lock action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:unlock",
+ "description": "compute:unlock action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:unlock_override",
+ "description": "compute:unlock_override action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_vnc_console",
+ "description": "compute:get_vnc_console action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_spice_console",
+ "description": "compute:get_spice_console action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_rdp_console",
+ "description": "compute:get_rdp_console action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_serial_console",
+ "description": "compute:get_serial_console action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_mks_console",
+ "description": "compute:get_mks_console action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:get_console_output",
+ "description": "compute:get_console_output action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:reset_network",
+ "description": "compute:reset_network action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:inject_network_info",
+ "description": "compute:inject_network_info action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:add_fixed_ip",
+ "description": "compute:add_fixed_ip action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:remove_fixed_ip",
+ "description": "compute:remove_fixed_ip action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:attach_volume",
+ "description": "compute:attach_volume action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:detach_volume",
+ "description": "compute:detach_volume action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:swap_volume",
+ "description": "compute:swap_volume action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:attach_interface",
+ "description": "compute:attach_interface action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:detach_interface",
+ "description": "compute:detach_interface action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:set_admin_password",
+ "description": "compute:set_admin_password action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:rescue",
+ "description": "compute:rescue action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:unrescue",
+ "description": "compute:unrescue action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:suspend",
+ "description": "compute:suspend action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:resume",
+ "description": "compute:resume action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:pause",
+ "description": "compute:pause action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:unpause",
+ "description": "compute:unpause action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:shelve",
+ "description": "compute:shelve action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:shelve_offload",
+ "description": "compute:shelve_offload action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:unshelve",
+ "description": "compute:unshelve action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:snapshot",
+ "description": "compute:snapshot action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:snapshot_volume_backed",
+ "description": "compute:snapshot_volume_backed action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:backup",
+ "description": "compute:backup action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:resize",
+ "description": "compute:resize action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:confirm_resize",
+ "description": "compute:confirm_resize action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:revert_resize",
+ "description": "compute:revert_resize action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:rebuild",
+ "description": "compute:rebuild action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:reboot",
+ "description": "compute:reboot action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:delete",
+ "description": "compute:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:soft_delete",
+ "description": "compute:soft_delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:force_delete",
+ "description": "compute:force_delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:security_groups:add_to_instance",
+ "description": "compute:security_groups:add_to_instance action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:security_groups:remove_from_instance",
+ "description": "compute:security_groups:remove_from_instance action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:restore",
+ "description": "compute:restore action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:volume_snapshot_create",
+ "description": "compute:volume_snapshot_create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute:volume_snapshot_delete",
+ "description": "compute:volume_snapshot_delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:accounts",
+ "description": "compute_extension:accounts action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions",
+ "description": "compute_extension:admin_actions action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:pause",
+ "description": "compute_extension:admin_actions:pause action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:unpause",
+ "description": "compute_extension:admin_actions:unpause action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:suspend",
+ "description": "compute_extension:admin_actions:suspend action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:resume",
+ "description": "compute_extension:admin_actions:resume action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:lock",
+ "description": "compute_extension:admin_actions:lock action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:unlock",
+ "description": "compute_extension:admin_actions:unlock action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:resetNetwork",
+ "description": "compute_extension:admin_actions:resetNetwork action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:injectNetworkInfo",
+ "description": "compute_extension:admin_actions:injectNetworkInfo action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:createBackup",
+ "description": "compute_extension:admin_actions:createBackup action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:migrateLive",
+ "description": "compute_extension:admin_actions:migrateLive action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:resetState",
+ "description": "compute_extension:admin_actions:resetState action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:admin_actions:migrate",
+ "description": "compute_extension:admin_actions:migrate action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:aggregates",
+ "description": "compute_extension:aggregates action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:agents",
+ "description": "compute_extension:agents action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:attach_interfaces",
+ "description": "compute_extension:attach_interfaces action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:baremetal_nodes",
+ "description": "compute_extension:baremetal_nodes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:cells",
+ "description": "compute_extension:cells action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:cells:create",
+ "description": "compute_extension:cells:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:cells:delete",
+ "description": "compute_extension:cells:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:cells:update",
+ "description": "compute_extension:cells:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:cells:sync_instances",
+ "description": "compute_extension:cells:sync_instances action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:certificates",
+ "description": "compute_extension:certificates action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:cloudpipe",
+ "description": "compute_extension:cloudpipe action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:cloudpipe_update",
+ "description": "compute_extension:cloudpipe_update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:config_drive",
+ "description": "compute_extension:config_drive action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:console_output",
+ "description": "compute_extension:console_output action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:consoles",
+ "description": "compute_extension:consoles action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:createserverext",
+ "description": "compute_extension:createserverext action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:deferred_delete",
+ "description": "compute_extension:deferred_delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:disk_config",
+ "description": "compute_extension:disk_config action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:evacuate",
+ "description": "compute_extension:evacuate action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:extended_server_attributes",
+ "description": "compute_extension:extended_server_attributes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:extended_status",
+ "description": "compute_extension:extended_status action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:extended_availability_zone",
+ "description": "compute_extension:extended_availability_zone action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:extended_ips",
+ "description": "compute_extension:extended_ips action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:extended_ips_mac",
+ "description": "compute_extension:extended_ips_mac action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:extended_vif_net",
+ "description": "compute_extension:extended_vif_net action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:extended_volumes",
+ "description": "compute_extension:extended_volumes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:fixed_ips",
+ "description": "compute_extension:fixed_ips action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavor_access",
+ "description": "compute_extension:flavor_access action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavor_access:addTenantAccess",
+ "description": "compute_extension:flavor_access:addTenantAccess action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavor_access:removeTenantAccess",
+ "description": "compute_extension:flavor_access:removeTenantAccess action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavor_disabled",
+ "description": "compute_extension:flavor_disabled action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavor_rxtx",
+ "description": "compute_extension:flavor_rxtx action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavor_swap",
+ "description": "compute_extension:flavor_swap action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavorextradata",
+ "description": "compute_extension:flavorextradata action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:index",
+ "description": "compute_extension:flavorextraspecs:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:show",
+ "description": "compute_extension:flavorextraspecs:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:create",
+ "description": "compute_extension:flavorextraspecs:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:update",
+ "description": "compute_extension:flavorextraspecs:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:delete",
+ "description": "compute_extension:flavorextraspecs:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:flavormanage",
+ "description": "compute_extension:flavormanage action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:floating_ip_dns",
+ "description": "compute_extension:floating_ip_dns action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:floating_ip_pools",
+ "description": "compute_extension:floating_ip_pools action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:floating_ips",
+ "description": "compute_extension:floating_ips action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:floating_ips_bulk",
+ "description": "compute_extension:floating_ips_bulk action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:fping",
+ "description": "compute_extension:fping action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:fping:all_tenants",
+ "description": "compute_extension:fping:all_tenants action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:hide_server_addresses",
+ "description": "compute_extension:hide_server_addresses action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:hosts",
+ "description": "compute_extension:hosts action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:hypervisors",
+ "description": "compute_extension:hypervisors action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:image_size",
+ "description": "compute_extension:image_size action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:instance_actions",
+ "description": "compute_extension:instance_actions action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:instance_actions:events",
+ "description": "compute_extension:instance_actions:events action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:instance_usage_audit_log",
+ "description": "compute_extension:instance_usage_audit_log action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:keypairs",
+ "description": "compute_extension:keypairs action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:keypairs:index",
+ "description": "compute_extension:keypairs:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:keypairs:show",
+ "description": "compute_extension:keypairs:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:keypairs:create",
+ "description": "compute_extension:keypairs:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:keypairs:delete",
+ "description": "compute_extension:keypairs:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:multinic",
+ "description": "compute_extension:multinic action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:networks",
+ "description": "compute_extension:networks action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:networks:view",
+ "description": "compute_extension:networks:view action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:networks_associate",
+ "description": "compute_extension:networks_associate action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:os-tenant-networks",
+ "description": "compute_extension:os-tenant-networks action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:quotas:show",
+ "description": "compute_extension:quotas:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:quotas:update",
+ "description": "compute_extension:quotas:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:quotas:delete",
+ "description": "compute_extension:quotas:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:quota_classes",
+ "description": "compute_extension:quota_classes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:rescue",
+ "description": "compute_extension:rescue action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:security_group_default_rules",
+ "description": "compute_extension:security_group_default_rules action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:security_groups",
+ "description": "compute_extension:security_groups action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:server_diagnostics",
+ "description": "compute_extension:server_diagnostics action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:server_groups",
+ "description": "compute_extension:server_groups action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:server_password",
+ "description": "compute_extension:server_password action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:server_usage",
+ "description": "compute_extension:server_usage action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:services",
+ "description": "compute_extension:services action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:shelve",
+ "description": "compute_extension:shelve action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:shelveOffload",
+ "description": "compute_extension:shelveOffload action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:simple_tenant_usage:show",
+ "description": "compute_extension:simple_tenant_usage:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:simple_tenant_usage:list",
+ "description": "compute_extension:simple_tenant_usage:list action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:unshelve",
+ "description": "compute_extension:unshelve action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:users",
+ "description": "compute_extension:users action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:virtual_interfaces",
+ "description": "compute_extension:virtual_interfaces action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:virtual_storage_arrays",
+ "description": "compute_extension:virtual_storage_arrays action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:volumes",
+ "description": "compute_extension:volumes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:volume_attachments:index",
+ "description": "compute_extension:volume_attachments:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:volume_attachments:show",
+ "description": "compute_extension:volume_attachments:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:volume_attachments:create",
+ "description": "compute_extension:volume_attachments:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:volume_attachments:update",
+ "description": "compute_extension:volume_attachments:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:volume_attachments:delete",
+ "description": "compute_extension:volume_attachments:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:volumetypes",
+ "description": "compute_extension:volumetypes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:availability_zone:list",
+ "description": "compute_extension:availability_zone:list action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:availability_zone:detail",
+ "description": "compute_extension:availability_zone:detail action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:used_limits_for_admin",
+ "description": "compute_extension:used_limits_for_admin action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:migrations:index",
+ "description": "compute_extension:migrations:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:os-assisted-volume-snapshots:create",
+ "description": "compute_extension:os-assisted-volume-snapshots:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:os-assisted-volume-snapshots:delete",
+ "description": "compute_extension:os-assisted-volume-snapshots:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:console_auth_tokens",
+ "description": "compute_extension:console_auth_tokens action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "compute_extension:os-server-external-events:create",
+ "description": "compute_extension:os-server-external-events:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_all",
+ "description": "network:get_all action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get",
+ "description": "network:get action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:create",
+ "description": "network:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:delete",
+ "description": "network:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:associate",
+ "description": "network:associate action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:disassociate",
+ "description": "network:disassociate action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_vifs_by_instance",
+ "description": "network:get_vifs_by_instance action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:allocate_for_instance",
+ "description": "network:allocate_for_instance action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:deallocate_for_instance",
+ "description": "network:deallocate_for_instance action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:validate_networks",
+ "description": "network:validate_networks action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_instance_uuids_by_ip_filter",
+ "description": "network:get_instance_uuids_by_ip_filter action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_instance_id_by_floating_address",
+ "description": "network:get_instance_id_by_floating_address action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:setup_networks_on_host",
+ "description": "network:setup_networks_on_host action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_backdoor_port",
+ "description": "network:get_backdoor_port action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_floating_ip",
+ "description": "network:get_floating_ip action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_floating_ip_pools",
+ "description": "network:get_floating_ip_pools action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_floating_ip_by_address",
+ "description": "network:get_floating_ip_by_address action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_floating_ips_by_project",
+ "description": "network:get_floating_ips_by_project action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_floating_ips_by_fixed_address",
+ "description": "network:get_floating_ips_by_fixed_address action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:allocate_floating_ip",
+ "description": "network:allocate_floating_ip action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:associate_floating_ip",
+ "description": "network:associate_floating_ip action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:disassociate_floating_ip",
+ "description": "network:disassociate_floating_ip action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:release_floating_ip",
+ "description": "network:release_floating_ip action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:migrate_instance_start",
+ "description": "network:migrate_instance_start action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:migrate_instance_finish",
+ "description": "network:migrate_instance_finish action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_fixed_ip",
+ "description": "network:get_fixed_ip action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_fixed_ip_by_address",
+ "description": "network:get_fixed_ip_by_address action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:add_fixed_ip_to_instance",
+ "description": "network:add_fixed_ip_to_instance action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:remove_fixed_ip_from_instance",
+ "description": "network:remove_fixed_ip_from_instance action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:add_network_to_project",
+ "description": "network:add_network_to_project action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_instance_nw_info",
+ "description": "network:get_instance_nw_info action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_dns_domains",
+ "description": "network:get_dns_domains action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:add_dns_entry",
+ "description": "network:add_dns_entry action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:modify_dns_entry",
+ "description": "network:modify_dns_entry action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:delete_dns_entry",
+ "description": "network:delete_dns_entry action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_dns_entries_by_address",
+ "description": "network:get_dns_entries_by_address action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_dns_entries_by_name",
+ "description": "network:get_dns_entries_by_name action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:create_private_dns_domain",
+ "description": "network:create_private_dns_domain action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:create_public_dns_domain",
+ "description": "network:create_public_dns_domain action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:delete_dns_domain",
+ "description": "network:delete_dns_domain action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:attach_external_network",
+ "description": "network:attach_external_network action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "network:get_vif_by_mac_address",
+ "description": "network:get_vif_by_mac_address action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:detail:get_all_tenants",
+ "description": "os_compute_api:servers:detail:get_all_tenants action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:index:get_all_tenants",
+ "description": "os_compute_api:servers:index:get_all_tenants action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:confirm_resize",
+ "description": "os_compute_api:servers:confirm_resize action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:create",
+ "description": "os_compute_api:servers:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:create:attach_network",
+ "description": "os_compute_api:servers:create:attach_network action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:create:attach_volume",
+ "description": "os_compute_api:servers:create:attach_volume action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:create:forced_host",
+ "description": "os_compute_api:servers:create:forced_host action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:delete",
+ "description": "os_compute_api:servers:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:update",
+ "description": "os_compute_api:servers:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:detail",
+ "description": "os_compute_api:servers:detail action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:index",
+ "description": "os_compute_api:servers:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:reboot",
+ "description": "os_compute_api:servers:reboot action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:rebuild",
+ "description": "os_compute_api:servers:rebuild action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:resize",
+ "description": "os_compute_api:servers:resize action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:revert_resize",
+ "description": "os_compute_api:servers:revert_resize action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:show",
+ "description": "os_compute_api:servers:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:create_image",
+ "description": "os_compute_api:servers:create_image action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:create_image:allow_volume_backed",
+ "description": "os_compute_api:servers:create_image:allow_volume_backed action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:start",
+ "description": "os_compute_api:servers:start action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:stop",
+ "description": "os_compute_api:servers:stop action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-access-ips:discoverable",
+ "description": "os_compute_api:os-access-ips:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-access-ips",
+ "description": "os_compute_api:os-access-ips action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-admin-actions",
+ "description": "os_compute_api:os-admin-actions action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-admin-actions:discoverable",
+ "description": "os_compute_api:os-admin-actions:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-admin-actions:reset_network",
+ "description": "os_compute_api:os-admin-actions:reset_network action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-admin-actions:inject_network_info",
+ "description": "os_compute_api:os-admin-actions:inject_network_info action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-admin-actions:reset_state",
+ "description": "os_compute_api:os-admin-actions:reset_state action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-admin-password",
+ "description": "os_compute_api:os-admin-password action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-admin-password:discoverable",
+ "description": "os_compute_api:os-admin-password:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:discoverable",
+ "description": "os_compute_api:os-aggregates:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:index",
+ "description": "os_compute_api:os-aggregates:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:create",
+ "description": "os_compute_api:os-aggregates:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:show",
+ "description": "os_compute_api:os-aggregates:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:update",
+ "description": "os_compute_api:os-aggregates:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:delete",
+ "description": "os_compute_api:os-aggregates:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:add_host",
+ "description": "os_compute_api:os-aggregates:add_host action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:remove_host",
+ "description": "os_compute_api:os-aggregates:remove_host action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-aggregates:set_metadata",
+ "description": "os_compute_api:os-aggregates:set_metadata action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-agents",
+ "description": "os_compute_api:os-agents action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-agents:discoverable",
+ "description": "os_compute_api:os-agents:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-attach-interfaces",
+ "description": "os_compute_api:os-attach-interfaces action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-attach-interfaces:discoverable",
+ "description": "os_compute_api:os-attach-interfaces:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-baremetal-nodes",
+ "description": "os_compute_api:os-baremetal-nodes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-baremetal-nodes:discoverable",
+ "description": "os_compute_api:os-baremetal-nodes:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-block-device-mapping-v1:discoverable",
+ "description": "os_compute_api:os-block-device-mapping-v1:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-cells",
+ "description": "os_compute_api:os-cells action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-cells:create",
+ "description": "os_compute_api:os-cells:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-cells:delete",
+ "description": "os_compute_api:os-cells:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-cells:update",
+ "description": "os_compute_api:os-cells:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-cells:sync_instances",
+ "description": "os_compute_api:os-cells:sync_instances action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-cells:discoverable",
+ "description": "os_compute_api:os-cells:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-certificates:create",
+ "description": "os_compute_api:os-certificates:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-certificates:show",
+ "description": "os_compute_api:os-certificates:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-certificates:discoverable",
+ "description": "os_compute_api:os-certificates:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-cloudpipe",
+ "description": "os_compute_api:os-cloudpipe action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-cloudpipe:discoverable",
+ "description": "os_compute_api:os-cloudpipe:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-config-drive",
+ "description": "os_compute_api:os-config-drive action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-consoles:discoverable",
+ "description": "os_compute_api:os-consoles:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-consoles:create",
+ "description": "os_compute_api:os-consoles:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-consoles:delete",
+ "description": "os_compute_api:os-consoles:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-consoles:index",
+ "description": "os_compute_api:os-consoles:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-consoles:show",
+ "description": "os_compute_api:os-consoles:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-console-output:discoverable",
+ "description": "os_compute_api:os-console-output:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-console-output",
+ "description": "os_compute_api:os-console-output action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-remote-consoles",
+ "description": "os_compute_api:os-remote-consoles action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-remote-consoles:discoverable",
+ "description": "os_compute_api:os-remote-consoles:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-create-backup:discoverable",
+ "description": "os_compute_api:os-create-backup:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-create-backup",
+ "description": "os_compute_api:os-create-backup action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-deferred-delete",
+ "description": "os_compute_api:os-deferred-delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-deferred-delete:discoverable",
+ "description": "os_compute_api:os-deferred-delete:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-disk-config",
+ "description": "os_compute_api:os-disk-config action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-disk-config:discoverable",
+ "description": "os_compute_api:os-disk-config:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-evacuate",
+ "description": "os_compute_api:os-evacuate action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-evacuate:discoverable",
+ "description": "os_compute_api:os-evacuate:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-extended-server-attributes",
+ "description": "os_compute_api:os-extended-server-attributes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-extended-server-attributes:discoverable",
+ "description": "os_compute_api:os-extended-server-attributes:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-extended-status",
+ "description": "os_compute_api:os-extended-status action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-extended-status:discoverable",
+ "description": "os_compute_api:os-extended-status:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-extended-availability-zone",
+ "description": "os_compute_api:os-extended-availability-zone action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-extended-availability-zone:discoverable",
+ "description": "os_compute_api:os-extended-availability-zone:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:extensions",
+ "description": "os_compute_api:extensions action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:extension_info:discoverable",
+ "description": "os_compute_api:extension_info:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-extended-volumes",
+ "description": "os_compute_api:os-extended-volumes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-extended-volumes:discoverable",
+ "description": "os_compute_api:os-extended-volumes:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-fixed-ips",
+ "description": "os_compute_api:os-fixed-ips action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-fixed-ips:discoverable",
+ "description": "os_compute_api:os-fixed-ips:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-access",
+ "description": "os_compute_api:os-flavor-access action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-access:discoverable",
+ "description": "os_compute_api:os-flavor-access:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-access:remove_tenant_access",
+ "description": "os_compute_api:os-flavor-access:remove_tenant_access action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-access:add_tenant_access",
+ "description": "os_compute_api:os-flavor-access:add_tenant_access action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-rxtx",
+ "description": "os_compute_api:os-flavor-rxtx action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-rxtx:discoverable",
+ "description": "os_compute_api:os-flavor-rxtx:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:flavors:discoverable",
+ "description": "os_compute_api:flavors:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:discoverable",
+ "description": "os_compute_api:os-flavor-extra-specs:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:index",
+ "description": "os_compute_api:os-flavor-extra-specs:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:show",
+ "description": "os_compute_api:os-flavor-extra-specs:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:create",
+ "description": "os_compute_api:os-flavor-extra-specs:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:update",
+ "description": "os_compute_api:os-flavor-extra-specs:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:delete",
+ "description": "os_compute_api:os-flavor-extra-specs:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-manage:discoverable",
+ "description": "os_compute_api:os-flavor-manage:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-flavor-manage",
+ "description": "os_compute_api:os-flavor-manage action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-dns",
+ "description": "os_compute_api:os-floating-ip-dns action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-dns:discoverable",
+ "description": "os_compute_api:os-floating-ip-dns:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-dns:domain:update",
+ "description": "os_compute_api:os-floating-ip-dns:domain:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-dns:domain:delete",
+ "description": "os_compute_api:os-floating-ip-dns:domain:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-pools",
+ "description": "os_compute_api:os-floating-ip-pools action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-pools:discoverable",
+ "description": "os_compute_api:os-floating-ip-pools:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ips",
+ "description": "os_compute_api:os-floating-ips action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ips:discoverable",
+ "description": "os_compute_api:os-floating-ips:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ips-bulk",
+ "description": "os_compute_api:os-floating-ips-bulk action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-floating-ips-bulk:discoverable",
+ "description": "os_compute_api:os-floating-ips-bulk:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-fping",
+ "description": "os_compute_api:os-fping action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-fping:discoverable",
+ "description": "os_compute_api:os-fping:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-fping:all_tenants",
+ "description": "os_compute_api:os-fping:all_tenants action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-hide-server-addresses",
+ "description": "os_compute_api:os-hide-server-addresses action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-hide-server-addresses:discoverable",
+ "description": "os_compute_api:os-hide-server-addresses:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-hosts",
+ "description": "os_compute_api:os-hosts action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-hosts:discoverable",
+ "description": "os_compute_api:os-hosts:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-hypervisors",
+ "description": "os_compute_api:os-hypervisors action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-hypervisors:discoverable",
+ "description": "os_compute_api:os-hypervisors:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:images:discoverable",
+ "description": "os_compute_api:images:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:image-size",
+ "description": "os_compute_api:image-size action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:image-size:discoverable",
+ "description": "os_compute_api:image-size:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-instance-actions",
+ "description": "os_compute_api:os-instance-actions action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-instance-actions:discoverable",
+ "description": "os_compute_api:os-instance-actions:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-instance-actions:events",
+ "description": "os_compute_api:os-instance-actions:events action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-instance-usage-audit-log",
+ "description": "os_compute_api:os-instance-usage-audit-log action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-instance-usage-audit-log:discoverable",
+ "description": "os_compute_api:os-instance-usage-audit-log:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:ips:discoverable",
+ "description": "os_compute_api:ips:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:ips:index",
+ "description": "os_compute_api:ips:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:ips:show",
+ "description": "os_compute_api:ips:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-keypairs:discoverable",
+ "description": "os_compute_api:os-keypairs:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-keypairs",
+ "description": "os_compute_api:os-keypairs action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-keypairs:index",
+ "description": "os_compute_api:os-keypairs:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-keypairs:show",
+ "description": "os_compute_api:os-keypairs:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-keypairs:create",
+ "description": "os_compute_api:os-keypairs:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-keypairs:delete",
+ "description": "os_compute_api:os-keypairs:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:limits:discoverable",
+ "description": "os_compute_api:limits:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:limits",
+ "description": "os_compute_api:limits action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-lock-server:discoverable",
+ "description": "os_compute_api:os-lock-server:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-lock-server:lock",
+ "description": "os_compute_api:os-lock-server:lock action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-lock-server:unlock",
+ "description": "os_compute_api:os-lock-server:unlock action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-lock-server:unlock:unlock_override",
+ "description": "os_compute_api:os-lock-server:unlock:unlock_override action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-migrate-server:discoverable",
+ "description": "os_compute_api:os-migrate-server:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-migrate-server:migrate",
+ "description": "os_compute_api:os-migrate-server:migrate action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-migrate-server:migrate_live",
+ "description": "os_compute_api:os-migrate-server:migrate_live action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-multinic",
+ "description": "os_compute_api:os-multinic action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-multinic:discoverable",
+ "description": "os_compute_api:os-multinic:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-networks",
+ "description": "os_compute_api:os-networks action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-networks:view",
+ "description": "os_compute_api:os-networks:view action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-networks:discoverable",
+ "description": "os_compute_api:os-networks:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-networks-associate",
+ "description": "os_compute_api:os-networks-associate action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-networks-associate:discoverable",
+ "description": "os_compute_api:os-networks-associate:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-pause-server:discoverable",
+ "description": "os_compute_api:os-pause-server:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-pause-server:pause",
+ "description": "os_compute_api:os-pause-server:pause action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-pause-server:unpause",
+ "description": "os_compute_api:os-pause-server:unpause action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-pci:pci_servers",
+ "description": "os_compute_api:os-pci:pci_servers action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-pci:discoverable",
+ "description": "os_compute_api:os-pci:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-pci:index",
+ "description": "os_compute_api:os-pci:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-pci:detail",
+ "description": "os_compute_api:os-pci:detail action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-pci:show",
+ "description": "os_compute_api:os-pci:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-personality:discoverable",
+ "description": "os_compute_api:os-personality:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-preserve-ephemeral-rebuild:discoverable",
+ "description": "os_compute_api:os-preserve-ephemeral-rebuild:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:discoverable",
+ "description": "os_compute_api:os-quota-sets:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:show",
+ "description": "os_compute_api:os-quota-sets:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:defaults",
+ "description": "os_compute_api:os-quota-sets:defaults action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:update",
+ "description": "os_compute_api:os-quota-sets:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:delete",
+ "description": "os_compute_api:os-quota-sets:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:detail",
+ "description": "os_compute_api:os-quota-sets:detail action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-class-sets:update",
+ "description": "os_compute_api:os-quota-class-sets:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-class-sets:show",
+ "description": "os_compute_api:os-quota-class-sets:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-quota-class-sets:discoverable",
+ "description": "os_compute_api:os-quota-class-sets:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-rescue",
+ "description": "os_compute_api:os-rescue action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-rescue:discoverable",
+ "description": "os_compute_api:os-rescue:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-scheduler-hints:discoverable",
+ "description": "os_compute_api:os-scheduler-hints:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-security-group-default-rules:discoverable",
+ "description": "os_compute_api:os-security-group-default-rules:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-security-group-default-rules",
+ "description": "os_compute_api:os-security-group-default-rules action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-security-groups",
+ "description": "os_compute_api:os-security-groups action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-security-groups:discoverable",
+ "description": "os_compute_api:os-security-groups:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-diagnostics",
+ "description": "os_compute_api:os-server-diagnostics action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-diagnostics:discoverable",
+ "description": "os_compute_api:os-server-diagnostics:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-password",
+ "description": "os_compute_api:os-server-password action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-password:discoverable",
+ "description": "os_compute_api:os-server-password:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-usage",
+ "description": "os_compute_api:os-server-usage action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-usage:discoverable",
+ "description": "os_compute_api:os-server-usage:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-groups",
+ "description": "os_compute_api:os-server-groups action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-groups:discoverable",
+ "description": "os_compute_api:os-server-groups:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-services",
+ "description": "os_compute_api:os-services action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-services:discoverable",
+ "description": "os_compute_api:os-services:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:server-metadata:discoverable",
+ "description": "os_compute_api:server-metadata:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:server-metadata:index",
+ "description": "os_compute_api:server-metadata:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:server-metadata:show",
+ "description": "os_compute_api:server-metadata:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:server-metadata:delete",
+ "description": "os_compute_api:server-metadata:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:server-metadata:create",
+ "description": "os_compute_api:server-metadata:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:server-metadata:update",
+ "description": "os_compute_api:server-metadata:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:server-metadata:update_all",
+ "description": "os_compute_api:server-metadata:update_all action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:servers:discoverable",
+ "description": "os_compute_api:servers:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-shelve:shelve",
+ "description": "os_compute_api:os-shelve:shelve action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-shelve:shelve:discoverable",
+ "description": "os_compute_api:os-shelve:shelve:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-shelve:shelve_offload",
+ "description": "os_compute_api:os-shelve:shelve_offload action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:discoverable",
+ "description": "os_compute_api:os-simple-tenant-usage:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:show",
+ "description": "os_compute_api:os-simple-tenant-usage:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:list",
+ "description": "os_compute_api:os-simple-tenant-usage:list action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-suspend-server:discoverable",
+ "description": "os_compute_api:os-suspend-server:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-suspend-server:suspend",
+ "description": "os_compute_api:os-suspend-server:suspend action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-suspend-server:resume",
+ "description": "os_compute_api:os-suspend-server:resume action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-tenant-networks",
+ "description": "os_compute_api:os-tenant-networks action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-tenant-networks:discoverable",
+ "description": "os_compute_api:os-tenant-networks:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-shelve:unshelve",
+ "description": "os_compute_api:os-shelve:unshelve action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-user-data:discoverable",
+ "description": "os_compute_api:os-user-data:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-virtual-interfaces",
+ "description": "os_compute_api:os-virtual-interfaces action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-virtual-interfaces:discoverable",
+ "description": "os_compute_api:os-virtual-interfaces:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-volumes",
+ "description": "os_compute_api:os-volumes action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-volumes:discoverable",
+ "description": "os_compute_api:os-volumes:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:index",
+ "description": "os_compute_api:os-volumes-attachments:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:show",
+ "description": "os_compute_api:os-volumes-attachments:show action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:create",
+ "description": "os_compute_api:os-volumes-attachments:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:update",
+ "description": "os_compute_api:os-volumes-attachments:update action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:delete",
+ "description": "os_compute_api:os-volumes-attachments:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:discoverable",
+ "description": "os_compute_api:os-volumes-attachments:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-availability-zone:list",
+ "description": "os_compute_api:os-availability-zone:list action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-availability-zone:discoverable",
+ "description": "os_compute_api:os-availability-zone:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-availability-zone:detail",
+ "description": "os_compute_api:os-availability-zone:detail action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-used-limits",
+ "description": "os_compute_api:os-used-limits action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-used-limits:discoverable",
+ "description": "os_compute_api:os-used-limits:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-migrations:index",
+ "description": "os_compute_api:os-migrations:index action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-migrations:discoverable",
+ "description": "os_compute_api:os-migrations:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:create",
+ "description": "os_compute_api:os-assisted-volume-snapshots:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:delete",
+ "description": "os_compute_api:os-assisted-volume-snapshots:delete action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:discoverable",
+ "description": "os_compute_api:os-assisted-volume-snapshots:discoverable action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-console-auth-tokens",
+ "description": "os_compute_api:os-console-auth-tokens action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ },
+ {
+ "name": "os_compute_api:os-server-external-events:create",
+ "description": "os_compute_api:os-server-external-events:create action for nova",
+ "extra": {
+ "component": "nova"
+ },
+ "policies": []
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "action_id",
+ "description": ""
+ }
+ ],
+ "action_data": [
+ {
+ "name": "cells_scheduler_filter:TargetCellFilter",
+ "description": "cells_scheduler_filter:TargetCellFilter action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:create",
+ "description": "compute:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:create:attach_network",
+ "description": "compute:create:attach_network action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:create:attach_volume",
+ "description": "compute:create:attach_volume action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:create:forced_host",
+ "description": "compute:create:forced_host action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get",
+ "description": "compute:get action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_all",
+ "description": "compute:get_all action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_all_tenants",
+ "description": "compute:get_all_tenants action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:update",
+ "description": "compute:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_instance_metadata",
+ "description": "compute:get_instance_metadata action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_all_instance_metadata",
+ "description": "compute:get_all_instance_metadata action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_all_instance_system_metadata",
+ "description": "compute:get_all_instance_system_metadata action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:update_instance_metadata",
+ "description": "compute:update_instance_metadata action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:delete_instance_metadata",
+ "description": "compute:delete_instance_metadata action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_instance_faults",
+ "description": "compute:get_instance_faults action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_diagnostics",
+ "description": "compute:get_diagnostics action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_instance_diagnostics",
+ "description": "compute:get_instance_diagnostics action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:start",
+ "description": "compute:start action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:stop",
+ "description": "compute:stop action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_lock",
+ "description": "compute:get_lock action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:lock",
+ "description": "compute:lock action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:unlock",
+ "description": "compute:unlock action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:unlock_override",
+ "description": "compute:unlock_override action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_vnc_console",
+ "description": "compute:get_vnc_console action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_spice_console",
+ "description": "compute:get_spice_console action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_rdp_console",
+ "description": "compute:get_rdp_console action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_serial_console",
+ "description": "compute:get_serial_console action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_mks_console",
+ "description": "compute:get_mks_console action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:get_console_output",
+ "description": "compute:get_console_output action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:reset_network",
+ "description": "compute:reset_network action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:inject_network_info",
+ "description": "compute:inject_network_info action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:add_fixed_ip",
+ "description": "compute:add_fixed_ip action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:remove_fixed_ip",
+ "description": "compute:remove_fixed_ip action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:attach_volume",
+ "description": "compute:attach_volume action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:detach_volume",
+ "description": "compute:detach_volume action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:swap_volume",
+ "description": "compute:swap_volume action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:attach_interface",
+ "description": "compute:attach_interface action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:detach_interface",
+ "description": "compute:detach_interface action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:set_admin_password",
+ "description": "compute:set_admin_password action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:rescue",
+ "description": "compute:rescue action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:unrescue",
+ "description": "compute:unrescue action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:suspend",
+ "description": "compute:suspend action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:resume",
+ "description": "compute:resume action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:pause",
+ "description": "compute:pause action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:unpause",
+ "description": "compute:unpause action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:shelve",
+ "description": "compute:shelve action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:shelve_offload",
+ "description": "compute:shelve_offload action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:unshelve",
+ "description": "compute:unshelve action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:snapshot",
+ "description": "compute:snapshot action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:snapshot_volume_backed",
+ "description": "compute:snapshot_volume_backed action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:backup",
+ "description": "compute:backup action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:resize",
+ "description": "compute:resize action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:confirm_resize",
+ "description": "compute:confirm_resize action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:revert_resize",
+ "description": "compute:revert_resize action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:rebuild",
+ "description": "compute:rebuild action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:reboot",
+ "description": "compute:reboot action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:delete",
+ "description": "compute:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:soft_delete",
+ "description": "compute:soft_delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:force_delete",
+ "description": "compute:force_delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:security_groups:add_to_instance",
+ "description": "compute:security_groups:add_to_instance action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:security_groups:remove_from_instance",
+ "description": "compute:security_groups:remove_from_instance action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:restore",
+ "description": "compute:restore action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:volume_snapshot_create",
+ "description": "compute:volume_snapshot_create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute:volume_snapshot_delete",
+ "description": "compute:volume_snapshot_delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:accounts",
+ "description": "compute_extension:accounts action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions",
+ "description": "compute_extension:admin_actions action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:pause",
+ "description": "compute_extension:admin_actions:pause action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:unpause",
+ "description": "compute_extension:admin_actions:unpause action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:suspend",
+ "description": "compute_extension:admin_actions:suspend action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:resume",
+ "description": "compute_extension:admin_actions:resume action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:lock",
+ "description": "compute_extension:admin_actions:lock action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:unlock",
+ "description": "compute_extension:admin_actions:unlock action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:resetNetwork",
+ "description": "compute_extension:admin_actions:resetNetwork action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:injectNetworkInfo",
+ "description": "compute_extension:admin_actions:injectNetworkInfo action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:createBackup",
+ "description": "compute_extension:admin_actions:createBackup action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:migrateLive",
+ "description": "compute_extension:admin_actions:migrateLive action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:resetState",
+ "description": "compute_extension:admin_actions:resetState action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:admin_actions:migrate",
+ "description": "compute_extension:admin_actions:migrate action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:aggregates",
+ "description": "compute_extension:aggregates action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:agents",
+ "description": "compute_extension:agents action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:attach_interfaces",
+ "description": "compute_extension:attach_interfaces action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:baremetal_nodes",
+ "description": "compute_extension:baremetal_nodes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:cells",
+ "description": "compute_extension:cells action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:cells:create",
+ "description": "compute_extension:cells:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:cells:delete",
+ "description": "compute_extension:cells:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:cells:update",
+ "description": "compute_extension:cells:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:cells:sync_instances",
+ "description": "compute_extension:cells:sync_instances action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:certificates",
+ "description": "compute_extension:certificates action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:cloudpipe",
+ "description": "compute_extension:cloudpipe action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:cloudpipe_update",
+ "description": "compute_extension:cloudpipe_update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:config_drive",
+ "description": "compute_extension:config_drive action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:console_output",
+ "description": "compute_extension:console_output action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:consoles",
+ "description": "compute_extension:consoles action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:createserverext",
+ "description": "compute_extension:createserverext action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:deferred_delete",
+ "description": "compute_extension:deferred_delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:disk_config",
+ "description": "compute_extension:disk_config action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:evacuate",
+ "description": "compute_extension:evacuate action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:extended_server_attributes",
+ "description": "compute_extension:extended_server_attributes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:extended_status",
+ "description": "compute_extension:extended_status action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:extended_availability_zone",
+ "description": "compute_extension:extended_availability_zone action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:extended_ips",
+ "description": "compute_extension:extended_ips action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:extended_ips_mac",
+ "description": "compute_extension:extended_ips_mac action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:extended_vif_net",
+ "description": "compute_extension:extended_vif_net action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:extended_volumes",
+ "description": "compute_extension:extended_volumes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:fixed_ips",
+ "description": "compute_extension:fixed_ips action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavor_access",
+ "description": "compute_extension:flavor_access action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavor_access:addTenantAccess",
+ "description": "compute_extension:flavor_access:addTenantAccess action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavor_access:removeTenantAccess",
+ "description": "compute_extension:flavor_access:removeTenantAccess action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavor_disabled",
+ "description": "compute_extension:flavor_disabled action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavor_rxtx",
+ "description": "compute_extension:flavor_rxtx action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavor_swap",
+ "description": "compute_extension:flavor_swap action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavorextradata",
+ "description": "compute_extension:flavorextradata action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:index",
+ "description": "compute_extension:flavorextraspecs:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:show",
+ "description": "compute_extension:flavorextraspecs:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:create",
+ "description": "compute_extension:flavorextraspecs:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:update",
+ "description": "compute_extension:flavorextraspecs:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavorextraspecs:delete",
+ "description": "compute_extension:flavorextraspecs:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:flavormanage",
+ "description": "compute_extension:flavormanage action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:floating_ip_dns",
+ "description": "compute_extension:floating_ip_dns action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:floating_ip_pools",
+ "description": "compute_extension:floating_ip_pools action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:floating_ips",
+ "description": "compute_extension:floating_ips action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:floating_ips_bulk",
+ "description": "compute_extension:floating_ips_bulk action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:fping",
+ "description": "compute_extension:fping action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:fping:all_tenants",
+ "description": "compute_extension:fping:all_tenants action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:hide_server_addresses",
+ "description": "compute_extension:hide_server_addresses action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:hosts",
+ "description": "compute_extension:hosts action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:hypervisors",
+ "description": "compute_extension:hypervisors action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:image_size",
+ "description": "compute_extension:image_size action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:instance_actions",
+ "description": "compute_extension:instance_actions action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:instance_actions:events",
+ "description": "compute_extension:instance_actions:events action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:instance_usage_audit_log",
+ "description": "compute_extension:instance_usage_audit_log action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:keypairs",
+ "description": "compute_extension:keypairs action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:keypairs:index",
+ "description": "compute_extension:keypairs:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:keypairs:show",
+ "description": "compute_extension:keypairs:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:keypairs:create",
+ "description": "compute_extension:keypairs:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:keypairs:delete",
+ "description": "compute_extension:keypairs:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:multinic",
+ "description": "compute_extension:multinic action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:networks",
+ "description": "compute_extension:networks action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:networks:view",
+ "description": "compute_extension:networks:view action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:networks_associate",
+ "description": "compute_extension:networks_associate action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:os-tenant-networks",
+ "description": "compute_extension:os-tenant-networks action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:quotas:show",
+ "description": "compute_extension:quotas:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:quotas:update",
+ "description": "compute_extension:quotas:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:quotas:delete",
+ "description": "compute_extension:quotas:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:quota_classes",
+ "description": "compute_extension:quota_classes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:rescue",
+ "description": "compute_extension:rescue action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:security_group_default_rules",
+ "description": "compute_extension:security_group_default_rules action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:security_groups",
+ "description": "compute_extension:security_groups action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:server_diagnostics",
+ "description": "compute_extension:server_diagnostics action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:server_groups",
+ "description": "compute_extension:server_groups action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:server_password",
+ "description": "compute_extension:server_password action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:server_usage",
+ "description": "compute_extension:server_usage action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:services",
+ "description": "compute_extension:services action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:shelve",
+ "description": "compute_extension:shelve action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:shelveOffload",
+ "description": "compute_extension:shelveOffload action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:simple_tenant_usage:show",
+ "description": "compute_extension:simple_tenant_usage:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:simple_tenant_usage:list",
+ "description": "compute_extension:simple_tenant_usage:list action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:unshelve",
+ "description": "compute_extension:unshelve action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:users",
+ "description": "compute_extension:users action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:virtual_interfaces",
+ "description": "compute_extension:virtual_interfaces action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:virtual_storage_arrays",
+ "description": "compute_extension:virtual_storage_arrays action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:volumes",
+ "description": "compute_extension:volumes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:volume_attachments:index",
+ "description": "compute_extension:volume_attachments:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:volume_attachments:show",
+ "description": "compute_extension:volume_attachments:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:volume_attachments:create",
+ "description": "compute_extension:volume_attachments:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:volume_attachments:update",
+ "description": "compute_extension:volume_attachments:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:volume_attachments:delete",
+ "description": "compute_extension:volume_attachments:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:volumetypes",
+ "description": "compute_extension:volumetypes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:availability_zone:list",
+ "description": "compute_extension:availability_zone:list action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:availability_zone:detail",
+ "description": "compute_extension:availability_zone:detail action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:used_limits_for_admin",
+ "description": "compute_extension:used_limits_for_admin action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:migrations:index",
+ "description": "compute_extension:migrations:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:os-assisted-volume-snapshots:create",
+ "description": "compute_extension:os-assisted-volume-snapshots:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:os-assisted-volume-snapshots:delete",
+ "description": "compute_extension:os-assisted-volume-snapshots:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:console_auth_tokens",
+ "description": "compute_extension:console_auth_tokens action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "compute_extension:os-server-external-events:create",
+ "description": "compute_extension:os-server-external-events:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_all",
+ "description": "network:get_all action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get",
+ "description": "network:get action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:create",
+ "description": "network:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:delete",
+ "description": "network:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:associate",
+ "description": "network:associate action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:disassociate",
+ "description": "network:disassociate action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_vifs_by_instance",
+ "description": "network:get_vifs_by_instance action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:allocate_for_instance",
+ "description": "network:allocate_for_instance action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:deallocate_for_instance",
+ "description": "network:deallocate_for_instance action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:validate_networks",
+ "description": "network:validate_networks action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_instance_uuids_by_ip_filter",
+ "description": "network:get_instance_uuids_by_ip_filter action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_instance_id_by_floating_address",
+ "description": "network:get_instance_id_by_floating_address action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:setup_networks_on_host",
+ "description": "network:setup_networks_on_host action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_backdoor_port",
+ "description": "network:get_backdoor_port action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_floating_ip",
+ "description": "network:get_floating_ip action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_floating_ip_pools",
+ "description": "network:get_floating_ip_pools action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_floating_ip_by_address",
+ "description": "network:get_floating_ip_by_address action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_floating_ips_by_project",
+ "description": "network:get_floating_ips_by_project action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_floating_ips_by_fixed_address",
+ "description": "network:get_floating_ips_by_fixed_address action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:allocate_floating_ip",
+ "description": "network:allocate_floating_ip action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:associate_floating_ip",
+ "description": "network:associate_floating_ip action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:disassociate_floating_ip",
+ "description": "network:disassociate_floating_ip action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:release_floating_ip",
+ "description": "network:release_floating_ip action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:migrate_instance_start",
+ "description": "network:migrate_instance_start action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:migrate_instance_finish",
+ "description": "network:migrate_instance_finish action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_fixed_ip",
+ "description": "network:get_fixed_ip action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_fixed_ip_by_address",
+ "description": "network:get_fixed_ip_by_address action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:add_fixed_ip_to_instance",
+ "description": "network:add_fixed_ip_to_instance action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:remove_fixed_ip_from_instance",
+ "description": "network:remove_fixed_ip_from_instance action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:add_network_to_project",
+ "description": "network:add_network_to_project action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_instance_nw_info",
+ "description": "network:get_instance_nw_info action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_dns_domains",
+ "description": "network:get_dns_domains action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:add_dns_entry",
+ "description": "network:add_dns_entry action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:modify_dns_entry",
+ "description": "network:modify_dns_entry action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:delete_dns_entry",
+ "description": "network:delete_dns_entry action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_dns_entries_by_address",
+ "description": "network:get_dns_entries_by_address action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_dns_entries_by_name",
+ "description": "network:get_dns_entries_by_name action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:create_private_dns_domain",
+ "description": "network:create_private_dns_domain action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:create_public_dns_domain",
+ "description": "network:create_public_dns_domain action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:delete_dns_domain",
+ "description": "network:delete_dns_domain action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:attach_external_network",
+ "description": "network:attach_external_network action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "network:get_vif_by_mac_address",
+ "description": "network:get_vif_by_mac_address action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:detail:get_all_tenants",
+ "description": "os_compute_api:servers:detail:get_all_tenants action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:index:get_all_tenants",
+ "description": "os_compute_api:servers:index:get_all_tenants action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:confirm_resize",
+ "description": "os_compute_api:servers:confirm_resize action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:create",
+ "description": "os_compute_api:servers:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:create:attach_network",
+ "description": "os_compute_api:servers:create:attach_network action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:create:attach_volume",
+ "description": "os_compute_api:servers:create:attach_volume action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:create:forced_host",
+ "description": "os_compute_api:servers:create:forced_host action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:delete",
+ "description": "os_compute_api:servers:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:update",
+ "description": "os_compute_api:servers:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:detail",
+ "description": "os_compute_api:servers:detail action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:index",
+ "description": "os_compute_api:servers:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:reboot",
+ "description": "os_compute_api:servers:reboot action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:rebuild",
+ "description": "os_compute_api:servers:rebuild action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:resize",
+ "description": "os_compute_api:servers:resize action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:revert_resize",
+ "description": "os_compute_api:servers:revert_resize action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:show",
+ "description": "os_compute_api:servers:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:create_image",
+ "description": "os_compute_api:servers:create_image action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:create_image:allow_volume_backed",
+ "description": "os_compute_api:servers:create_image:allow_volume_backed action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:start",
+ "description": "os_compute_api:servers:start action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:stop",
+ "description": "os_compute_api:servers:stop action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-access-ips:discoverable",
+ "description": "os_compute_api:os-access-ips:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-access-ips",
+ "description": "os_compute_api:os-access-ips action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-admin-actions",
+ "description": "os_compute_api:os-admin-actions action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-admin-actions:discoverable",
+ "description": "os_compute_api:os-admin-actions:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-admin-actions:reset_network",
+ "description": "os_compute_api:os-admin-actions:reset_network action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-admin-actions:inject_network_info",
+ "description": "os_compute_api:os-admin-actions:inject_network_info action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-admin-actions:reset_state",
+ "description": "os_compute_api:os-admin-actions:reset_state action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-admin-password",
+ "description": "os_compute_api:os-admin-password action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-admin-password:discoverable",
+ "description": "os_compute_api:os-admin-password:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:discoverable",
+ "description": "os_compute_api:os-aggregates:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:index",
+ "description": "os_compute_api:os-aggregates:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:create",
+ "description": "os_compute_api:os-aggregates:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:show",
+ "description": "os_compute_api:os-aggregates:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:update",
+ "description": "os_compute_api:os-aggregates:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:delete",
+ "description": "os_compute_api:os-aggregates:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:add_host",
+ "description": "os_compute_api:os-aggregates:add_host action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:remove_host",
+ "description": "os_compute_api:os-aggregates:remove_host action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-aggregates:set_metadata",
+ "description": "os_compute_api:os-aggregates:set_metadata action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-agents",
+ "description": "os_compute_api:os-agents action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-agents:discoverable",
+ "description": "os_compute_api:os-agents:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-attach-interfaces",
+ "description": "os_compute_api:os-attach-interfaces action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-attach-interfaces:discoverable",
+ "description": "os_compute_api:os-attach-interfaces:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-baremetal-nodes",
+ "description": "os_compute_api:os-baremetal-nodes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-baremetal-nodes:discoverable",
+ "description": "os_compute_api:os-baremetal-nodes:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-block-device-mapping-v1:discoverable",
+ "description": "os_compute_api:os-block-device-mapping-v1:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-cells",
+ "description": "os_compute_api:os-cells action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-cells:create",
+ "description": "os_compute_api:os-cells:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-cells:delete",
+ "description": "os_compute_api:os-cells:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-cells:update",
+ "description": "os_compute_api:os-cells:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-cells:sync_instances",
+ "description": "os_compute_api:os-cells:sync_instances action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-cells:discoverable",
+ "description": "os_compute_api:os-cells:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-certificates:create",
+ "description": "os_compute_api:os-certificates:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-certificates:show",
+ "description": "os_compute_api:os-certificates:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-certificates:discoverable",
+ "description": "os_compute_api:os-certificates:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-cloudpipe",
+ "description": "os_compute_api:os-cloudpipe action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-cloudpipe:discoverable",
+ "description": "os_compute_api:os-cloudpipe:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-config-drive",
+ "description": "os_compute_api:os-config-drive action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-consoles:discoverable",
+ "description": "os_compute_api:os-consoles:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-consoles:create",
+ "description": "os_compute_api:os-consoles:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-consoles:delete",
+ "description": "os_compute_api:os-consoles:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-consoles:index",
+ "description": "os_compute_api:os-consoles:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-consoles:show",
+ "description": "os_compute_api:os-consoles:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-console-output:discoverable",
+ "description": "os_compute_api:os-console-output:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-console-output",
+ "description": "os_compute_api:os-console-output action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-remote-consoles",
+ "description": "os_compute_api:os-remote-consoles action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-remote-consoles:discoverable",
+ "description": "os_compute_api:os-remote-consoles:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-create-backup:discoverable",
+ "description": "os_compute_api:os-create-backup:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-create-backup",
+ "description": "os_compute_api:os-create-backup action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-deferred-delete",
+ "description": "os_compute_api:os-deferred-delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-deferred-delete:discoverable",
+ "description": "os_compute_api:os-deferred-delete:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-disk-config",
+ "description": "os_compute_api:os-disk-config action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-disk-config:discoverable",
+ "description": "os_compute_api:os-disk-config:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-evacuate",
+ "description": "os_compute_api:os-evacuate action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-evacuate:discoverable",
+ "description": "os_compute_api:os-evacuate:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-extended-server-attributes",
+ "description": "os_compute_api:os-extended-server-attributes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-extended-server-attributes:discoverable",
+ "description": "os_compute_api:os-extended-server-attributes:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-extended-status",
+ "description": "os_compute_api:os-extended-status action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-extended-status:discoverable",
+ "description": "os_compute_api:os-extended-status:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-extended-availability-zone",
+ "description": "os_compute_api:os-extended-availability-zone action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-extended-availability-zone:discoverable",
+ "description": "os_compute_api:os-extended-availability-zone:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:extensions",
+ "description": "os_compute_api:extensions action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:extension_info:discoverable",
+ "description": "os_compute_api:extension_info:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-extended-volumes",
+ "description": "os_compute_api:os-extended-volumes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-extended-volumes:discoverable",
+ "description": "os_compute_api:os-extended-volumes:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-fixed-ips",
+ "description": "os_compute_api:os-fixed-ips action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-fixed-ips:discoverable",
+ "description": "os_compute_api:os-fixed-ips:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-access",
+ "description": "os_compute_api:os-flavor-access action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-access:discoverable",
+ "description": "os_compute_api:os-flavor-access:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-access:remove_tenant_access",
+ "description": "os_compute_api:os-flavor-access:remove_tenant_access action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-access:add_tenant_access",
+ "description": "os_compute_api:os-flavor-access:add_tenant_access action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-rxtx",
+ "description": "os_compute_api:os-flavor-rxtx action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-rxtx:discoverable",
+ "description": "os_compute_api:os-flavor-rxtx:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:flavors:discoverable",
+ "description": "os_compute_api:flavors:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:discoverable",
+ "description": "os_compute_api:os-flavor-extra-specs:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:index",
+ "description": "os_compute_api:os-flavor-extra-specs:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:show",
+ "description": "os_compute_api:os-flavor-extra-specs:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:create",
+ "description": "os_compute_api:os-flavor-extra-specs:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:update",
+ "description": "os_compute_api:os-flavor-extra-specs:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:delete",
+ "description": "os_compute_api:os-flavor-extra-specs:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-manage:discoverable",
+ "description": "os_compute_api:os-flavor-manage:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-flavor-manage",
+ "description": "os_compute_api:os-flavor-manage action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-dns",
+ "description": "os_compute_api:os-floating-ip-dns action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-dns:discoverable",
+ "description": "os_compute_api:os-floating-ip-dns:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-dns:domain:update",
+ "description": "os_compute_api:os-floating-ip-dns:domain:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-dns:domain:delete",
+ "description": "os_compute_api:os-floating-ip-dns:domain:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-pools",
+ "description": "os_compute_api:os-floating-ip-pools action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ip-pools:discoverable",
+ "description": "os_compute_api:os-floating-ip-pools:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ips",
+ "description": "os_compute_api:os-floating-ips action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ips:discoverable",
+ "description": "os_compute_api:os-floating-ips:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ips-bulk",
+ "description": "os_compute_api:os-floating-ips-bulk action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-floating-ips-bulk:discoverable",
+ "description": "os_compute_api:os-floating-ips-bulk:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-fping",
+ "description": "os_compute_api:os-fping action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-fping:discoverable",
+ "description": "os_compute_api:os-fping:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-fping:all_tenants",
+ "description": "os_compute_api:os-fping:all_tenants action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-hide-server-addresses",
+ "description": "os_compute_api:os-hide-server-addresses action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-hide-server-addresses:discoverable",
+ "description": "os_compute_api:os-hide-server-addresses:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-hosts",
+ "description": "os_compute_api:os-hosts action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-hosts:discoverable",
+ "description": "os_compute_api:os-hosts:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-hypervisors",
+ "description": "os_compute_api:os-hypervisors action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-hypervisors:discoverable",
+ "description": "os_compute_api:os-hypervisors:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:images:discoverable",
+ "description": "os_compute_api:images:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:image-size",
+ "description": "os_compute_api:image-size action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:image-size:discoverable",
+ "description": "os_compute_api:image-size:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-instance-actions",
+ "description": "os_compute_api:os-instance-actions action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-instance-actions:discoverable",
+ "description": "os_compute_api:os-instance-actions:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-instance-actions:events",
+ "description": "os_compute_api:os-instance-actions:events action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-instance-usage-audit-log",
+ "description": "os_compute_api:os-instance-usage-audit-log action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-instance-usage-audit-log:discoverable",
+ "description": "os_compute_api:os-instance-usage-audit-log:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:ips:discoverable",
+ "description": "os_compute_api:ips:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:ips:index",
+ "description": "os_compute_api:ips:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:ips:show",
+ "description": "os_compute_api:ips:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-keypairs:discoverable",
+ "description": "os_compute_api:os-keypairs:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-keypairs",
+ "description": "os_compute_api:os-keypairs action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-keypairs:index",
+ "description": "os_compute_api:os-keypairs:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-keypairs:show",
+ "description": "os_compute_api:os-keypairs:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-keypairs:create",
+ "description": "os_compute_api:os-keypairs:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-keypairs:delete",
+ "description": "os_compute_api:os-keypairs:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:limits:discoverable",
+ "description": "os_compute_api:limits:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:limits",
+ "description": "os_compute_api:limits action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-lock-server:discoverable",
+ "description": "os_compute_api:os-lock-server:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-lock-server:lock",
+ "description": "os_compute_api:os-lock-server:lock action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-lock-server:unlock",
+ "description": "os_compute_api:os-lock-server:unlock action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-lock-server:unlock:unlock_override",
+ "description": "os_compute_api:os-lock-server:unlock:unlock_override action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-migrate-server:discoverable",
+ "description": "os_compute_api:os-migrate-server:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-migrate-server:migrate",
+ "description": "os_compute_api:os-migrate-server:migrate action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-migrate-server:migrate_live",
+ "description": "os_compute_api:os-migrate-server:migrate_live action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-multinic",
+ "description": "os_compute_api:os-multinic action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-multinic:discoverable",
+ "description": "os_compute_api:os-multinic:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-networks",
+ "description": "os_compute_api:os-networks action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-networks:view",
+ "description": "os_compute_api:os-networks:view action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-networks:discoverable",
+ "description": "os_compute_api:os-networks:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-networks-associate",
+ "description": "os_compute_api:os-networks-associate action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-networks-associate:discoverable",
+ "description": "os_compute_api:os-networks-associate:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-pause-server:discoverable",
+ "description": "os_compute_api:os-pause-server:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-pause-server:pause",
+ "description": "os_compute_api:os-pause-server:pause action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-pause-server:unpause",
+ "description": "os_compute_api:os-pause-server:unpause action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-pci:pci_servers",
+ "description": "os_compute_api:os-pci:pci_servers action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-pci:discoverable",
+ "description": "os_compute_api:os-pci:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-pci:index",
+ "description": "os_compute_api:os-pci:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-pci:detail",
+ "description": "os_compute_api:os-pci:detail action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-pci:show",
+ "description": "os_compute_api:os-pci:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-personality:discoverable",
+ "description": "os_compute_api:os-personality:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-preserve-ephemeral-rebuild:discoverable",
+ "description": "os_compute_api:os-preserve-ephemeral-rebuild:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:discoverable",
+ "description": "os_compute_api:os-quota-sets:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:show",
+ "description": "os_compute_api:os-quota-sets:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:defaults",
+ "description": "os_compute_api:os-quota-sets:defaults action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:update",
+ "description": "os_compute_api:os-quota-sets:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:delete",
+ "description": "os_compute_api:os-quota-sets:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-sets:detail",
+ "description": "os_compute_api:os-quota-sets:detail action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-class-sets:update",
+ "description": "os_compute_api:os-quota-class-sets:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-class-sets:show",
+ "description": "os_compute_api:os-quota-class-sets:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-quota-class-sets:discoverable",
+ "description": "os_compute_api:os-quota-class-sets:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-rescue",
+ "description": "os_compute_api:os-rescue action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-rescue:discoverable",
+ "description": "os_compute_api:os-rescue:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-scheduler-hints:discoverable",
+ "description": "os_compute_api:os-scheduler-hints:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-security-group-default-rules:discoverable",
+ "description": "os_compute_api:os-security-group-default-rules:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-security-group-default-rules",
+ "description": "os_compute_api:os-security-group-default-rules action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-security-groups",
+ "description": "os_compute_api:os-security-groups action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-security-groups:discoverable",
+ "description": "os_compute_api:os-security-groups:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-diagnostics",
+ "description": "os_compute_api:os-server-diagnostics action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-diagnostics:discoverable",
+ "description": "os_compute_api:os-server-diagnostics:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-password",
+ "description": "os_compute_api:os-server-password action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-password:discoverable",
+ "description": "os_compute_api:os-server-password:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-usage",
+ "description": "os_compute_api:os-server-usage action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-usage:discoverable",
+ "description": "os_compute_api:os-server-usage:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-groups",
+ "description": "os_compute_api:os-server-groups action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-groups:discoverable",
+ "description": "os_compute_api:os-server-groups:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-services",
+ "description": "os_compute_api:os-services action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-services:discoverable",
+ "description": "os_compute_api:os-services:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:server-metadata:discoverable",
+ "description": "os_compute_api:server-metadata:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:server-metadata:index",
+ "description": "os_compute_api:server-metadata:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:server-metadata:show",
+ "description": "os_compute_api:server-metadata:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:server-metadata:delete",
+ "description": "os_compute_api:server-metadata:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:server-metadata:create",
+ "description": "os_compute_api:server-metadata:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:server-metadata:update",
+ "description": "os_compute_api:server-metadata:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:server-metadata:update_all",
+ "description": "os_compute_api:server-metadata:update_all action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:servers:discoverable",
+ "description": "os_compute_api:servers:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-shelve:shelve",
+ "description": "os_compute_api:os-shelve:shelve action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-shelve:shelve:discoverable",
+ "description": "os_compute_api:os-shelve:shelve:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-shelve:shelve_offload",
+ "description": "os_compute_api:os-shelve:shelve_offload action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:discoverable",
+ "description": "os_compute_api:os-simple-tenant-usage:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:show",
+ "description": "os_compute_api:os-simple-tenant-usage:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:list",
+ "description": "os_compute_api:os-simple-tenant-usage:list action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-suspend-server:discoverable",
+ "description": "os_compute_api:os-suspend-server:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-suspend-server:suspend",
+ "description": "os_compute_api:os-suspend-server:suspend action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-suspend-server:resume",
+ "description": "os_compute_api:os-suspend-server:resume action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-tenant-networks",
+ "description": "os_compute_api:os-tenant-networks action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-tenant-networks:discoverable",
+ "description": "os_compute_api:os-tenant-networks:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-shelve:unshelve",
+ "description": "os_compute_api:os-shelve:unshelve action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-user-data:discoverable",
+ "description": "os_compute_api:os-user-data:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-virtual-interfaces",
+ "description": "os_compute_api:os-virtual-interfaces action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-virtual-interfaces:discoverable",
+ "description": "os_compute_api:os-virtual-interfaces:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-volumes",
+ "description": "os_compute_api:os-volumes action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-volumes:discoverable",
+ "description": "os_compute_api:os-volumes:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:index",
+ "description": "os_compute_api:os-volumes-attachments:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:show",
+ "description": "os_compute_api:os-volumes-attachments:show action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:create",
+ "description": "os_compute_api:os-volumes-attachments:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:update",
+ "description": "os_compute_api:os-volumes-attachments:update action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:delete",
+ "description": "os_compute_api:os-volumes-attachments:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-volumes-attachments:discoverable",
+ "description": "os_compute_api:os-volumes-attachments:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-availability-zone:list",
+ "description": "os_compute_api:os-availability-zone:list action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-availability-zone:discoverable",
+ "description": "os_compute_api:os-availability-zone:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-availability-zone:detail",
+ "description": "os_compute_api:os-availability-zone:detail action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-used-limits",
+ "description": "os_compute_api:os-used-limits action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-used-limits:discoverable",
+ "description": "os_compute_api:os-used-limits:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-migrations:index",
+ "description": "os_compute_api:os-migrations:index action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-migrations:discoverable",
+ "description": "os_compute_api:os-migrations:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:create",
+ "description": "os_compute_api:os-assisted-volume-snapshots:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:delete",
+ "description": "os_compute_api:os-assisted-volume-snapshots:delete action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:discoverable",
+ "description": "os_compute_api:os-assisted-volume-snapshots:discoverable action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-console-auth-tokens",
+ "description": "os_compute_api:os-console-auth-tokens action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ },
+ {
+ "name": "os_compute_api:os-server-external-events:create",
+ "description": "os_compute_api:os-server-external-events:create action for nova",
+ "policies": [],
+ "category": {
+ "name": "action_id"
+ }
+ }
+ ],
+ "action_assignments": [
+ {
+ "action": {
+ "name": "cells_scheduler_filter:TargetCellFilter"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "cells_scheduler_filter:TargetCellFilter"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:create:attach_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:create:attach_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:create:attach_volume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:create:attach_volume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:create:forced_host"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:create:forced_host"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_all"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_all"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_all_tenants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_all_tenants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_instance_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_instance_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_all_instance_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_all_instance_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_all_instance_system_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_all_instance_system_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:update_instance_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:update_instance_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:delete_instance_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:delete_instance_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_instance_faults"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_instance_faults"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_diagnostics"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_diagnostics"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_instance_diagnostics"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_instance_diagnostics"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:start"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:start"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:stop"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:stop"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_lock"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_lock"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:lock"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:lock"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:unlock"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:unlock"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:unlock_override"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:unlock_override"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_vnc_console"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_vnc_console"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_spice_console"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_spice_console"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_rdp_console"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_rdp_console"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_serial_console"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_serial_console"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_mks_console"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_mks_console"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:get_console_output"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:get_console_output"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:reset_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:reset_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:inject_network_info"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:inject_network_info"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:add_fixed_ip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:add_fixed_ip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:remove_fixed_ip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:remove_fixed_ip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:attach_volume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:attach_volume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:detach_volume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:detach_volume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:swap_volume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:swap_volume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:attach_interface"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:attach_interface"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:detach_interface"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:detach_interface"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:set_admin_password"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:set_admin_password"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:rescue"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:rescue"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:unrescue"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:unrescue"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:suspend"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:suspend"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:resume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:resume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:pause"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:pause"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:unpause"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:unpause"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:shelve"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:shelve"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:shelve_offload"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:shelve_offload"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:unshelve"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:unshelve"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:snapshot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:snapshot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:snapshot_volume_backed"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:snapshot_volume_backed"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:backup"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:backup"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:resize"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:resize"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:confirm_resize"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:confirm_resize"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:revert_resize"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:revert_resize"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:rebuild"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:rebuild"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:reboot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:reboot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:soft_delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:soft_delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:force_delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:force_delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:security_groups:add_to_instance"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:security_groups:add_to_instance"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:security_groups:remove_from_instance"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:security_groups:remove_from_instance"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:restore"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:restore"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:volume_snapshot_create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:volume_snapshot_create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute:volume_snapshot_delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute:volume_snapshot_delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:accounts"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:accounts"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:pause"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:pause"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:unpause"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:unpause"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:suspend"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:suspend"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:resume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:resume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:lock"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:lock"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:unlock"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:unlock"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:resetNetwork"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:resetNetwork"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:injectNetworkInfo"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:injectNetworkInfo"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:createBackup"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:createBackup"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:migrateLive"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:migrateLive"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:resetState"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:resetState"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:admin_actions:migrate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:admin_actions:migrate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:aggregates"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:aggregates"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:agents"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:agents"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:attach_interfaces"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:attach_interfaces"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:baremetal_nodes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:baremetal_nodes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:cells"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:cells"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:cells:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:cells:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:cells:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:cells:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:cells:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:cells:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:cells:sync_instances"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:cells:sync_instances"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:certificates"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:certificates"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:cloudpipe"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:cloudpipe"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:cloudpipe_update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:cloudpipe_update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:config_drive"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:config_drive"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:console_output"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:console_output"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:consoles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:consoles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:createserverext"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:createserverext"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:deferred_delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:deferred_delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:disk_config"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:disk_config"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:evacuate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:evacuate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:extended_server_attributes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:extended_server_attributes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:extended_status"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:extended_status"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:extended_availability_zone"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:extended_availability_zone"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:extended_ips"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:extended_ips"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:extended_ips_mac"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:extended_ips_mac"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:extended_vif_net"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:extended_vif_net"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:extended_volumes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:extended_volumes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:fixed_ips"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:fixed_ips"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavor_access"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavor_access"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavor_access:addTenantAccess"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavor_access:addTenantAccess"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavor_access:removeTenantAccess"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavor_access:removeTenantAccess"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavor_disabled"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavor_disabled"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavor_rxtx"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavor_rxtx"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavor_swap"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavor_swap"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavorextradata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavorextradata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavorextraspecs:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavorextraspecs:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavorextraspecs:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavorextraspecs:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavorextraspecs:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavorextraspecs:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavorextraspecs:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavorextraspecs:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavorextraspecs:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavorextraspecs:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:flavormanage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:flavormanage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:floating_ip_dns"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:floating_ip_dns"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:floating_ip_pools"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:floating_ip_pools"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:floating_ips"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:floating_ips"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:floating_ips_bulk"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:floating_ips_bulk"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:fping"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:fping"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:fping:all_tenants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:fping:all_tenants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:hide_server_addresses"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:hide_server_addresses"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:hosts"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:hosts"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:hypervisors"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:hypervisors"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:image_size"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:image_size"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:instance_actions"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:instance_actions"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:instance_actions:events"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:instance_actions:events"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:instance_usage_audit_log"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:instance_usage_audit_log"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:keypairs"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:keypairs"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:keypairs:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:keypairs:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:keypairs:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:keypairs:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:keypairs:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:keypairs:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:keypairs:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:keypairs:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:multinic"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:multinic"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:networks"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:networks"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:networks:view"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:networks:view"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:networks_associate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:networks_associate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:os-tenant-networks"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:os-tenant-networks"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:quotas:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:quotas:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:quotas:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:quotas:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:quotas:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:quotas:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:quota_classes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:quota_classes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:rescue"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:rescue"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:security_group_default_rules"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:security_group_default_rules"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:security_groups"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:security_groups"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:server_diagnostics"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:server_diagnostics"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:server_groups"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:server_groups"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:server_password"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:server_password"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:server_usage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:server_usage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:services"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:services"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:shelve"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:shelve"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:shelveOffload"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:shelveOffload"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:simple_tenant_usage:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:simple_tenant_usage:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:simple_tenant_usage:list"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:simple_tenant_usage:list"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:unshelve"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:unshelve"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:users"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:users"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:virtual_interfaces"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:virtual_interfaces"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:virtual_storage_arrays"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:virtual_storage_arrays"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:volumes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:volumes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:volume_attachments:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:volume_attachments:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:volume_attachments:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:volume_attachments:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:volume_attachments:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:volume_attachments:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:volume_attachments:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:volume_attachments:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:volume_attachments:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:volume_attachments:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:volumetypes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:volumetypes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:availability_zone:list"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:availability_zone:list"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:availability_zone:detail"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:availability_zone:detail"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:used_limits_for_admin"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:used_limits_for_admin"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:migrations:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:migrations:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:os-assisted-volume-snapshots:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:os-assisted-volume-snapshots:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:os-assisted-volume-snapshots:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:os-assisted-volume-snapshots:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:console_auth_tokens"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:console_auth_tokens"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "compute_extension:os-server-external-events:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "compute_extension:os-server-external-events:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_all"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_all"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:associate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:associate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:disassociate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:disassociate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_vifs_by_instance"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_vifs_by_instance"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:allocate_for_instance"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:allocate_for_instance"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:deallocate_for_instance"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:deallocate_for_instance"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:validate_networks"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:validate_networks"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_instance_uuids_by_ip_filter"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_instance_uuids_by_ip_filter"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_instance_id_by_floating_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_instance_id_by_floating_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:setup_networks_on_host"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:setup_networks_on_host"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_backdoor_port"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_backdoor_port"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_floating_ip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_floating_ip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_floating_ip_pools"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_floating_ip_pools"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_floating_ip_by_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_floating_ip_by_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_floating_ips_by_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_floating_ips_by_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_floating_ips_by_fixed_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_floating_ips_by_fixed_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:allocate_floating_ip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:allocate_floating_ip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:associate_floating_ip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:associate_floating_ip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:disassociate_floating_ip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:disassociate_floating_ip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:release_floating_ip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:release_floating_ip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:migrate_instance_start"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:migrate_instance_start"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:migrate_instance_finish"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:migrate_instance_finish"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_fixed_ip"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_fixed_ip"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_fixed_ip_by_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_fixed_ip_by_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:add_fixed_ip_to_instance"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:add_fixed_ip_to_instance"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:remove_fixed_ip_from_instance"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:remove_fixed_ip_from_instance"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:add_network_to_project"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:add_network_to_project"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_instance_nw_info"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_instance_nw_info"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_dns_domains"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_dns_domains"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:add_dns_entry"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:add_dns_entry"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:modify_dns_entry"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:modify_dns_entry"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:delete_dns_entry"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:delete_dns_entry"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_dns_entries_by_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_dns_entries_by_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_dns_entries_by_name"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_dns_entries_by_name"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:create_private_dns_domain"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:create_private_dns_domain"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:create_public_dns_domain"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:create_public_dns_domain"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:delete_dns_domain"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:delete_dns_domain"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:attach_external_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:attach_external_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "network:get_vif_by_mac_address"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "network:get_vif_by_mac_address"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:detail:get_all_tenants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:detail:get_all_tenants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:index:get_all_tenants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:index:get_all_tenants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:confirm_resize"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:confirm_resize"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:create:attach_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:create:attach_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:create:attach_volume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:create:attach_volume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:create:forced_host"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:create:forced_host"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:detail"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:detail"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:reboot"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:reboot"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:rebuild"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:rebuild"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:resize"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:resize"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:revert_resize"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:revert_resize"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:create_image"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:create_image"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:create_image:allow_volume_backed"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:create_image:allow_volume_backed"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:start"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:start"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:stop"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:stop"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-access-ips:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-access-ips:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-access-ips"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-access-ips"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-admin-actions"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-admin-actions"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-admin-actions:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-admin-actions:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-admin-actions:reset_network"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-admin-actions:reset_network"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-admin-actions:inject_network_info"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-admin-actions:inject_network_info"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-admin-actions:reset_state"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-admin-actions:reset_state"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-admin-password"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-admin-password"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-admin-password:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-admin-password:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:add_host"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:add_host"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:remove_host"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:remove_host"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-aggregates:set_metadata"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-aggregates:set_metadata"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-agents"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-agents"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-agents:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-agents:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-attach-interfaces"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-attach-interfaces"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-attach-interfaces:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-attach-interfaces:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-baremetal-nodes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-baremetal-nodes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-baremetal-nodes:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-baremetal-nodes:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-block-device-mapping-v1:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-block-device-mapping-v1:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-cells"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-cells"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-cells:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-cells:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-cells:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-cells:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-cells:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-cells:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-cells:sync_instances"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-cells:sync_instances"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-cells:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-cells:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-certificates:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-certificates:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-certificates:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-certificates:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-certificates:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-certificates:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-cloudpipe"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-cloudpipe"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-cloudpipe:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-cloudpipe:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-config-drive"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-config-drive"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-consoles:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-consoles:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-consoles:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-consoles:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-consoles:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-consoles:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-consoles:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-consoles:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-consoles:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-consoles:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-console-output:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-console-output:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-console-output"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-console-output"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-remote-consoles"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-remote-consoles"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-remote-consoles:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-remote-consoles:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-create-backup:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-create-backup:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-create-backup"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-create-backup"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-deferred-delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-deferred-delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-deferred-delete:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-deferred-delete:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-disk-config"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-disk-config"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-disk-config:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-disk-config:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-evacuate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-evacuate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-evacuate:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-evacuate:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-extended-server-attributes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-extended-server-attributes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-extended-server-attributes:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-extended-server-attributes:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-extended-status"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-extended-status"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-extended-status:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-extended-status:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-extended-availability-zone"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-extended-availability-zone"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-extended-availability-zone:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-extended-availability-zone:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:extensions"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:extensions"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:extension_info:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:extension_info:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-extended-volumes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-extended-volumes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-extended-volumes:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-extended-volumes:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-fixed-ips"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-fixed-ips"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-fixed-ips:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-fixed-ips:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-access"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-access"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-access:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-access:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-access:remove_tenant_access"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-access:remove_tenant_access"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-access:add_tenant_access"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-access:add_tenant_access"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-rxtx"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-rxtx"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-rxtx:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-rxtx:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:flavors:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:flavors:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-extra-specs:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-extra-specs:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-extra-specs:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-extra-specs:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-extra-specs:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-extra-specs:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-manage:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-manage:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-flavor-manage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-flavor-manage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ip-dns"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ip-dns"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ip-dns:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ip-dns:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ip-dns:domain:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ip-dns:domain:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ip-dns:domain:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ip-dns:domain:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ip-pools"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ip-pools"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ip-pools:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ip-pools:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ips"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ips"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ips:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ips:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ips-bulk"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ips-bulk"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-floating-ips-bulk:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-floating-ips-bulk:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-fping"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-fping"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-fping:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-fping:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-fping:all_tenants"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-fping:all_tenants"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-hide-server-addresses"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-hide-server-addresses"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-hide-server-addresses:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-hide-server-addresses:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-hosts"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-hosts"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-hosts:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-hosts:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-hypervisors"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-hypervisors"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-hypervisors:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-hypervisors:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:images:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:images:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:image-size"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:image-size"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:image-size:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:image-size:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-instance-actions"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-instance-actions"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-instance-actions:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-instance-actions:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-instance-actions:events"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-instance-actions:events"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-instance-usage-audit-log"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-instance-usage-audit-log"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-instance-usage-audit-log:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-instance-usage-audit-log:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:ips:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:ips:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:ips:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:ips:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:ips:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:ips:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-keypairs:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-keypairs:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-keypairs"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-keypairs"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-keypairs:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-keypairs:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-keypairs:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-keypairs:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-keypairs:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-keypairs:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-keypairs:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-keypairs:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:limits:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:limits:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:limits"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:limits"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-lock-server:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-lock-server:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-lock-server:lock"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-lock-server:lock"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-lock-server:unlock"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-lock-server:unlock"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-lock-server:unlock:unlock_override"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-lock-server:unlock:unlock_override"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-migrate-server:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-migrate-server:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-migrate-server:migrate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-migrate-server:migrate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-migrate-server:migrate_live"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-migrate-server:migrate_live"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-multinic"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-multinic"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-multinic:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-multinic:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-networks"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-networks"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-networks:view"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-networks:view"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-networks:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-networks:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-networks-associate"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-networks-associate"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-networks-associate:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-networks-associate:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-pause-server:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-pause-server:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-pause-server:pause"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-pause-server:pause"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-pause-server:unpause"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-pause-server:unpause"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-pci:pci_servers"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-pci:pci_servers"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-pci:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-pci:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-pci:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-pci:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-pci:detail"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-pci:detail"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-pci:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-pci:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-personality:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-personality:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-preserve-ephemeral-rebuild:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-preserve-ephemeral-rebuild:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-sets:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-sets:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-sets:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-sets:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-sets:defaults"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-sets:defaults"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-sets:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-sets:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-sets:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-sets:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-sets:detail"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-sets:detail"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-class-sets:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-class-sets:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-class-sets:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-class-sets:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-quota-class-sets:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-quota-class-sets:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-rescue"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-rescue"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-rescue:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-rescue:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-scheduler-hints:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-scheduler-hints:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-security-group-default-rules:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-security-group-default-rules:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-security-group-default-rules"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-security-group-default-rules"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-security-groups"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-security-groups"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-security-groups:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-security-groups:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-diagnostics"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-diagnostics"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-diagnostics:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-diagnostics:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-password"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-password"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-password:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-password:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-usage"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-usage"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-usage:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-usage:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-groups"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-groups"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-groups:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-groups:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-services"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-services"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-services:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-services:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:server-metadata:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:server-metadata:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:server-metadata:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:server-metadata:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:server-metadata:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:server-metadata:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:server-metadata:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:server-metadata:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:server-metadata:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:server-metadata:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:server-metadata:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:server-metadata:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:server-metadata:update_all"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:server-metadata:update_all"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:servers:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:servers:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-shelve:shelve"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-shelve:shelve"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-shelve:shelve:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-shelve:shelve:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-shelve:shelve_offload"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-shelve:shelve_offload"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-simple-tenant-usage:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-simple-tenant-usage:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-simple-tenant-usage:list"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:list"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-suspend-server:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-suspend-server:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-suspend-server:suspend"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-suspend-server:suspend"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-suspend-server:resume"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-suspend-server:resume"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-tenant-networks"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-tenant-networks"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-tenant-networks:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-tenant-networks:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-shelve:unshelve"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-shelve:unshelve"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-user-data:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-user-data:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-virtual-interfaces"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-virtual-interfaces"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-virtual-interfaces:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-virtual-interfaces:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-volumes"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-volumes"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-volumes:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-volumes:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-volumes-attachments:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-volumes-attachments:show"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:show"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-volumes-attachments:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-volumes-attachments:update"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:update"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-volumes-attachments:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-volumes-attachments:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-availability-zone:list"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-availability-zone:list"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-availability-zone:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-availability-zone:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-availability-zone:detail"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-availability-zone:detail"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-used-limits"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-used-limits"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-used-limits:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-used-limits:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-migrations:index"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-migrations:index"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-migrations:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-migrations:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-assisted-volume-snapshots:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:create"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-assisted-volume-snapshots:delete"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:delete"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-assisted-volume-snapshots:discoverable"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:discoverable"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-console-auth-tokens"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-console-auth-tokens"
+ }
+ ]
+ },
+ {
+ "action": {
+ "name": "os_compute_api:os-server-external-events:create"
+ },
+ "category": {
+ "name": "action_id"
+ },
+ "assignments": [
+ {
+ "name": "os_compute_api:os-server-external-events:create"
+ }
+ ]
+ }
+ ],
+ "meta_rules": [
+ {
+ "name": "rbac",
+ "description": "",
+ "subject_categories": [
+ {
+ "name": "role"
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "id"
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "action_id"
+ }
+ ]
+ }
+ ],
+ "rules": [
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "cells_scheduler_filter:TargetCellFilter"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:create:attach_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:create:attach_volume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:create:forced_host"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_all"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_all_tenants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_instance_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_all_instance_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_all_instance_system_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:update_instance_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:delete_instance_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_instance_faults"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_diagnostics"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_instance_diagnostics"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:start"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:stop"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_lock"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:lock"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:unlock"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:unlock_override"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_vnc_console"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_spice_console"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_rdp_console"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_serial_console"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_mks_console"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:get_console_output"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:reset_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:inject_network_info"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:add_fixed_ip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:remove_fixed_ip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:attach_volume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:detach_volume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:swap_volume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:attach_interface"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:detach_interface"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:set_admin_password"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:rescue"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:unrescue"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:suspend"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:resume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:pause"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:unpause"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:shelve"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:shelve_offload"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:unshelve"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:snapshot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:snapshot_volume_backed"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:backup"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:resize"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:confirm_resize"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:revert_resize"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:rebuild"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:reboot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:soft_delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:force_delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:security_groups:add_to_instance"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:security_groups:remove_from_instance"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:restore"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:volume_snapshot_create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute:volume_snapshot_delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:accounts"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:pause"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:unpause"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:suspend"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:resume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:lock"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:unlock"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:resetNetwork"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:injectNetworkInfo"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:createBackup"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:migrateLive"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:resetState"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:admin_actions:migrate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:aggregates"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:agents"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:attach_interfaces"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:baremetal_nodes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:cells"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:cells:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:cells:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:cells:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:cells:sync_instances"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:certificates"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:cloudpipe"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:cloudpipe_update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:config_drive"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:console_output"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:consoles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:createserverext"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:deferred_delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:disk_config"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:evacuate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:extended_server_attributes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:extended_status"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:extended_availability_zone"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:extended_ips"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:extended_ips_mac"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:extended_vif_net"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:extended_volumes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:fixed_ips"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavor_access"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavor_access:addTenantAccess"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavor_access:removeTenantAccess"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavor_disabled"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavor_rxtx"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavor_swap"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavorextradata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavorextraspecs:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavorextraspecs:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavorextraspecs:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavorextraspecs:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavorextraspecs:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:flavormanage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:floating_ip_dns"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:floating_ip_pools"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:floating_ips"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:floating_ips_bulk"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:fping"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:fping:all_tenants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:hide_server_addresses"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:hosts"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:hypervisors"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:image_size"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:instance_actions"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:instance_actions:events"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:instance_usage_audit_log"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:keypairs"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:keypairs:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:keypairs:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:keypairs:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:keypairs:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:multinic"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:networks"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:networks:view"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:networks_associate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:os-tenant-networks"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:quotas:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:quotas:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:quotas:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:quota_classes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:rescue"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:security_group_default_rules"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:security_groups"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:server_diagnostics"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:server_groups"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:server_password"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:server_usage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:services"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:shelve"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:shelveOffload"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:simple_tenant_usage:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:simple_tenant_usage:list"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:unshelve"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:users"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:virtual_interfaces"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:virtual_storage_arrays"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:volumes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:volume_attachments:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:volume_attachments:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:volume_attachments:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:volume_attachments:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:volume_attachments:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:volumetypes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:availability_zone:list"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:availability_zone:detail"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:used_limits_for_admin"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:migrations:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:os-assisted-volume-snapshots:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:os-assisted-volume-snapshots:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:console_auth_tokens"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "compute_extension:os-server-external-events:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_all"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:associate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:disassociate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_vifs_by_instance"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:allocate_for_instance"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:deallocate_for_instance"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:validate_networks"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_instance_uuids_by_ip_filter"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_instance_id_by_floating_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:setup_networks_on_host"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_backdoor_port"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_floating_ip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_floating_ip_pools"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_floating_ip_by_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_floating_ips_by_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_floating_ips_by_fixed_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:allocate_floating_ip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:associate_floating_ip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:disassociate_floating_ip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:release_floating_ip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:migrate_instance_start"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:migrate_instance_finish"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_fixed_ip"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_fixed_ip_by_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:add_fixed_ip_to_instance"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:remove_fixed_ip_from_instance"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:add_network_to_project"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_instance_nw_info"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_dns_domains"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:add_dns_entry"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:modify_dns_entry"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:delete_dns_entry"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_dns_entries_by_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_dns_entries_by_name"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:create_private_dns_domain"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:create_public_dns_domain"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:delete_dns_domain"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:attach_external_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "network:get_vif_by_mac_address"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:detail:get_all_tenants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:index:get_all_tenants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:confirm_resize"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:create:attach_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:create:attach_volume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:create:forced_host"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:detail"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:reboot"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:rebuild"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:resize"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:revert_resize"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:create_image"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:create_image:allow_volume_backed"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:start"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:stop"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-access-ips:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-access-ips"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-admin-actions"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-admin-actions:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-admin-actions:reset_network"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-admin-actions:inject_network_info"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-admin-actions:reset_state"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-admin-password"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-admin-password:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:add_host"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:remove_host"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-aggregates:set_metadata"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-agents"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-agents:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-attach-interfaces"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-attach-interfaces:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-baremetal-nodes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-baremetal-nodes:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-block-device-mapping-v1:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-cells"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-cells:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-cells:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-cells:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-cells:sync_instances"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-cells:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-certificates:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-certificates:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-certificates:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-cloudpipe"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-cloudpipe:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-config-drive"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-consoles:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-consoles:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-consoles:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-consoles:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-consoles:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-console-output:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-console-output"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-remote-consoles"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-remote-consoles:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-create-backup:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-create-backup"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-deferred-delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-deferred-delete:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-disk-config"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-disk-config:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-evacuate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-evacuate:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-extended-server-attributes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-extended-server-attributes:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-extended-status"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-extended-status:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-extended-availability-zone"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-extended-availability-zone:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:extensions"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:extension_info:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-extended-volumes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-extended-volumes:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-fixed-ips"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-fixed-ips:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-access"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-access:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-access:remove_tenant_access"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-access:add_tenant_access"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-rxtx"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-rxtx:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:flavors:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-extra-specs:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-manage:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-flavor-manage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ip-dns"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ip-dns:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ip-dns:domain:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ip-dns:domain:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ip-pools"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ip-pools:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ips"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ips:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ips-bulk"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-floating-ips-bulk:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-fping"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-fping:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-fping:all_tenants"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-hide-server-addresses"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-hide-server-addresses:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-hosts"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-hosts:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-hypervisors"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-hypervisors:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:images:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:image-size"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:image-size:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-instance-actions"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-instance-actions:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-instance-actions:events"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-instance-usage-audit-log"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-instance-usage-audit-log:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:ips:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:ips:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:ips:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-keypairs:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-keypairs"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-keypairs:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-keypairs:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-keypairs:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-keypairs:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:limits:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:limits"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-lock-server:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-lock-server:lock"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-lock-server:unlock"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-lock-server:unlock:unlock_override"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-migrate-server:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-migrate-server:migrate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-migrate-server:migrate_live"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-multinic"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-multinic:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-networks"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-networks:view"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-networks:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-networks-associate"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-networks-associate:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-pause-server:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-pause-server:pause"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-pause-server:unpause"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-pci:pci_servers"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-pci:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-pci:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-pci:detail"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-pci:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-personality:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-preserve-ephemeral-rebuild:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-sets:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-sets:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-sets:defaults"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-sets:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-sets:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-sets:detail"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-class-sets:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-class-sets:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-quota-class-sets:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-rescue"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-rescue:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-scheduler-hints:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-security-group-default-rules:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-security-group-default-rules"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-security-groups"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-security-groups:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-diagnostics"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-diagnostics:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-password"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-password:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-usage"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-usage:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-groups"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-groups:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-services"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-services:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:server-metadata:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:server-metadata:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:server-metadata:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:server-metadata:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:server-metadata:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:server-metadata:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:server-metadata:update_all"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:servers:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-shelve:shelve"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-shelve:shelve:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-shelve:shelve_offload"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-simple-tenant-usage:list"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-suspend-server:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-suspend-server:suspend"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-suspend-server:resume"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-tenant-networks"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-tenant-networks:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-shelve:unshelve"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-user-data:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-virtual-interfaces"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-virtual-interfaces:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-volumes"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-volumes:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:show"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:update"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-volumes-attachments:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-availability-zone:list"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-availability-zone:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-availability-zone:detail"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-used-limits"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-used-limits:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-migrations:index"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-migrations:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:delete"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-assisted-volume-snapshots:discoverable"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-console-auth-tokens"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ },
+ {
+ "meta_rule": {
+ "name": "rbac"
+ },
+ "rule": {
+ "subject_data": [
+ {
+ "name": "admin"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "all_vm"
+ }
+ ],
+ "action_data": [
+ {
+ "name": "os_compute_api:os-server-external-events:create"
+ }
+ ]
+ },
+ "policy": {
+ "name": "OpenStack RBAC Policy"
+ },
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "enabled": true
+ }
+ ]
+} \ No newline at end of file
diff --git a/moon_engine/tests/func_policies/policy_attributes.json b/moon_engine/tests/func_policies/policy_attributes.json
new file mode 100644
index 00000000..1b6aec83
--- /dev/null
+++ b/moon_engine/tests/func_policies/policy_attributes.json
@@ -0,0 +1,452 @@
+{
+ "policies": [
+ {
+ "name": "Attrs Policy",
+ "genre": "authz",
+ "description": "Attrs Policy with custom attributes",
+ "model": {
+ "name": "ATTRS"
+ },
+ "mandatory": true,
+ "override": true
+ }
+ ],
+ "models": [
+ {
+ "name": "ATTRS",
+ "description": "",
+ "meta_rules": [
+ {
+ "name": "attrs"
+ }
+ ],
+ "override": true
+ }
+ ],
+ "subjects": [
+ {
+ "name": "admin",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "Attrs Policy"
+ }
+ ]
+ },
+ {
+ "name": "demo",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "Attrs Policy"
+ }
+ ]
+ }
+ ],
+ "subject_categories": [
+ {
+ "name": "role",
+ "description": "role of a user"
+ }
+ ],
+ "subject_data": [
+ {
+ "name": "admin",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ },
+ {
+ "name": "user",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ }
+ ],
+ "subject_assignments": [
+ {
+ "subject": {"name": "admin"},
+ "category": {"name": "role"},
+ "assignments": [{"name": "admin"}]
+ },
+ {
+ "subject": {"name": "admin"},
+ "category": {"name": "role"},
+ "assignments": [{"name": "user"}]
+ },
+ {
+ "subject": {"name": "demo"},
+ "category": {"name": "role"},
+ "assignments": [{"name": "user"}]
+ }
+ ],
+ "objects": [
+ {
+ "name": "vm1",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "Attrs Policy"
+ }
+ ]
+ },
+ {
+ "name": "vm2",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "Attrs Policy"
+ }
+ ]
+ },
+ {
+ "name": "vm3",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "Attrs Policy"
+ }
+ ]
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "id",
+ "description": "identification of the object"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "vm1",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ },
+ {
+ "name": "vm2",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ },
+ {
+ "name": "vm3",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ }
+ ],
+ "object_assignments": [
+ {
+ "object": {"name": "vm1"},
+ "category": {"name": "id"},
+ "assignments": [{"name": "vm1"}]
+ },
+ {
+ "object": {"name": "vm2"},
+ "category": {"name": "id"},
+ "assignments": [{"name": "vm2"}]
+ },
+ {
+ "object": {"name": "vm3"},
+ "category": {"name": "id"},
+ "assignments": [{"name": "vm3"}]
+ }
+ ],
+ "actions": [
+ {
+ "name": "use_image",
+ "description": "use_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_images",
+ "description": "get_images action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_image",
+ "description": "update_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "set_image",
+ "description": "set_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "type",
+ "description": ""
+ },
+ {
+ "name": "mode",
+ "description": ""
+ }
+ ],
+ "action_data": [
+ {
+ "name": "read",
+ "description": "read action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ },
+ {
+ "name": "write",
+ "description": "write action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ },
+ {
+ "name": "execute",
+ "description": "execute action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ }
+ ],
+ "action_assignments": [
+ {
+ "action": {"name": "use_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}, {"name": "execute"}]
+ },
+ {
+ "action": {"name": "update_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}, {"name": "write"}]
+ },
+ {
+ "action": {"name": "set_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "write"}]
+ },
+ {
+ "action": {"name": "get_images"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}]
+ }
+ ],
+ "meta_rules": [
+ {
+ "name": "attrs",
+ "description": "",
+ "subject_categories": [{"name": "role"}],
+ "object_categories": [{"name": "id"}],
+ "action_categories": [{"name": "type"}, {"attr": "mode"}]
+ }
+ ],
+ "rules": [
+ {
+ "meta_rule": {"name": "attrs"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "read"}, {"attr": "run"}]
+ },
+ "policy": {"name": "Attrs Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "attrs"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "read"}, {"attr": "build"}]
+ },
+ "policy": {"name": "Attrs Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "attrs"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "write"}, {"attr": "build"}]
+ },
+ "policy": {"name": "Attrs Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "attrs"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "execute"}, {"attr": "build"}]
+ },
+ "policy": {"name": "Attrs Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "attrs"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm2"}],
+ "action_data": [{"name": "read"}, {"attr": "run"}]
+ },
+ "policy": {"name": "Attrs Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "attrs"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm2"}],
+ "action_data": [{"name": "read"}, {"attr": "build"}]
+ },
+ "policy": {"name": "Attrs Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "attrs"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm2"}],
+ "action_data": [{"name": "write"}, {"attr": "build"}]
+ },
+ "policy": {"name": "Attrs Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "attrs"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm3"}],
+ "action_data": [{"name": "read"}, {"attr": "run"}]
+ },
+ "policy": {"name": "Attrs Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "attrs"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm3"}],
+ "action_data": [{"name": "read"}, {"attr": "build"}]
+ },
+ "policy": {"name": "Attrs Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "attrs"},
+ "rule": {
+ "subject_data": [{"name": "user"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "read"}, {"attr": "run"}]
+ },
+ "policy": {"name": "Attrs Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "attrs"},
+ "rule": {
+ "subject_data": [{"name": "user"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "read"}, {"attr": "build"}]
+ },
+ "policy": {"name": "Attrs Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "attrs"},
+ "rule": {
+ "subject_data": [{"name": "user"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "write"}, {"attr": "build"}]
+ },
+ "policy": {"name": "Attrs Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "attrs"},
+ "rule": {
+ "subject_data": [{"name": "user"}],
+ "object_data": [{"name": "vm2"}],
+ "action_data": [{"name": "read"}, {"attr": "run"}]
+ },
+ "policy": {"name": "Attrs Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "attrs"},
+ "rule": {
+ "subject_data": [{"name": "user"}],
+ "object_data": [{"name": "vm2"}],
+ "action_data": [{"name": "read"}, {"attr": "build"}]
+ },
+ "policy": {"name": "Attrs Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ }
+ ],
+ "checks": {
+ "granted": [
+ ["admin", "vm1", "get_images"],
+ ["admin", "vm1", "set_image"],
+ ["admin", "vm1", "use_image"],
+ ["admin", "vm2", "get_images"],
+ ["admin", "vm2", "set_image"],
+ ["admin", "vm3", "get_images"],
+ ["demo", "vm1", "get_images"],
+ ["demo", "vm1", "set_image"],
+ ["demo", "vm2", "get_images"],
+ ["demo", "vm1", "get_images"]
+ ],
+ "denied": [
+ ["admin", "vm2", "update_image"],
+ ["admin", "vm3", "set_image"],
+ ["admin", "vm3", "update_image"],
+ ["demo", "vm1", "update_image"],
+ ["demo", "vm2", "set_image"],
+ ["demo", "vm2", "update_image"],
+ ["demo", "vm3", "get_images"],
+ ["demo", "vm3", "set_image"],
+ ["demo", "vm3", "update_image"]
+ ]
+ }
+} \ No newline at end of file
diff --git a/moon_engine/tests/func_policies/policy_mls.json b/moon_engine/tests/func_policies/policy_mls.json
new file mode 100644
index 00000000..6a8f22e9
--- /dev/null
+++ b/moon_engine/tests/func_policies/policy_mls.json
@@ -0,0 +1,495 @@
+{
+ "policies": [
+ {
+ "name": "MLS Policy",
+ "genre": "authz",
+ "description": "MLS policy",
+ "model": {
+ "name": "MLS"
+ },
+ "mandatory": true,
+ "override": true
+ }
+ ],
+ "models": [
+ {
+ "name": "MLS",
+ "description": "",
+ "meta_rules": [
+ {
+ "name": "mls"
+ }
+ ],
+ "override": true
+ }
+ ],
+ "subjects": [
+ {
+ "name": "admin",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "MLS Policy"
+ }
+ ]
+ },
+ {
+ "name": "demo",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "MLS Policy"
+ }
+ ]
+ }
+ ],
+ "subject_categories": [
+ {
+ "name": "level",
+ "description": "subject level"
+ }
+ ],
+ "subject_data": [
+ {
+ "name": "high",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ },
+ {
+ "name": "medium",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ },
+ {
+ "name": "low",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ }
+ ],
+ "subject_assignments": [
+ {
+ "subject": {"name": "admin"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "high"}]
+ },
+ {
+ "subject": {"name": "demo"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "low"}]
+ }
+ ],
+ "objects": [
+ {
+ "name": "vm1",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "MLS Policy"
+ }
+ ]
+ },
+ {
+ "name": "vm2",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "MLS Policy"
+ }
+ ]
+ },
+ {
+ "name": "vm3",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "MLS Policy"
+ }
+ ]
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "level",
+ "description": "object level"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "high",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ },
+ {
+ "name": "medium",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ },
+ {
+ "name": "low",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ }
+ ],
+ "object_assignments": [
+ {
+ "object": {"name": "vm1"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "high"}]
+ },
+ {
+ "object": {"name": "vm2"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "medium"}]
+ },
+ {
+ "object": {"name": "vm3"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "low"}]
+ }
+ ],
+ "actions": [
+ {
+ "name": "use_image",
+ "description": "use_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_images",
+ "description": "get_images action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_image",
+ "description": "update_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "set_image",
+ "description": "set_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "type",
+ "description": ""
+ }
+ ],
+ "action_data": [
+ {
+ "name": "read",
+ "description": "read action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ },
+ {
+ "name": "write",
+ "description": "write action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ },
+ {
+ "name": "execute",
+ "description": "execute action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ }
+ ],
+ "action_assignments": [
+ {
+ "action": {"name": "use_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}, {"name": "execute"}]
+ },
+ {
+ "action": {"name": "update_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}, {"name": "write"}]
+ },
+ {
+ "action": {"name": "set_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "write"}]
+ },
+ {
+ "action": {"name": "get_images"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}]
+ }
+ ],
+ "meta_rules": [
+ {
+ "name": "mls",
+ "description": "",
+ "subject_categories": [{"name": "level"}],
+ "object_categories": [{"name": "level"}],
+ "action_categories": [{"name": "type"}]
+ }
+ ],
+ "rules": [
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "high"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "low"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "high"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "low"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "high"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "low"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ }
+ ],
+ "checks": {
+ "granted": [
+ ["admin", "vm1", "get_images"],
+ ["admin", "vm1", "set_image"],
+ ["admin", "vm1", "use_image"],
+ ["admin", "vm2", "get_images"],
+ ["admin", "vm2", "set_image"],
+ ["admin", "vm3", "get_images"],
+ ["demo", "vm3", "get_images"],
+ ["demo", "vm3", "set_image"],
+ ["demo", "vm3", "get_images"],
+ ["demo", "vm3Unknown data with id", "get_images"]
+ ],
+ "denied": [
+ ["admin", "vm2", "update_image"],
+ ["admin", "vm3", "set_image"],
+ ["admin", "vm3", "update_image"],
+ ["demo", "vm1", "update_image"],
+ ["demo", "vm2", "set_image"],
+ ["demo", "vm2", "update_image"],
+ ["demo", "vm3", "get_images"],
+ ["demo", "vm3", "set_image"],
+ ["demo", "vm3", "update_image"]
+ ]
+ }
+} \ No newline at end of file
diff --git a/moon_engine/tests/func_policies/policy_rbac.json b/moon_engine/tests/func_policies/policy_rbac.json
new file mode 100644
index 00000000..a4bc959c
--- /dev/null
+++ b/moon_engine/tests/func_policies/policy_rbac.json
@@ -0,0 +1,393 @@
+{
+ "policies": [
+ {
+ "name": "RBAC Policy",
+ "genre": "authz",
+ "description": "RBAC policy",
+ "model": {
+ "name": "RBAC"
+ },
+ "mandatory": true,
+ "override": true
+ }
+ ],
+ "models": [
+ {
+ "name": "RBAC",
+ "description": "",
+ "meta_rules": [
+ {
+ "name": "rbac"
+ }
+ ],
+ "override": true
+ }
+ ],
+ "subjects": [
+ {
+ "name": "admin",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "RBAC Policy"
+ }
+ ]
+ },
+ {
+ "name": "demo",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "RBAC Policy"
+ }
+ ]
+ }
+ ],
+ "subject_categories": [
+ {
+ "name": "role",
+ "description": "role of a user"
+ }
+ ],
+ "subject_data": [
+ {
+ "name": "admin",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ },
+ {
+ "name": "user",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ }
+ ],
+ "subject_assignments": [
+ {
+ "subject": {"name": "admin"},
+ "category": {"name": "role"},
+ "assignments": [{"name": "admin"}]
+ },
+ {
+ "subject": {"name": "admin"},
+ "category": {"name": "role"},
+ "assignments": [{"name": "user"}]
+ },
+ {
+ "subject": {"name": "demo"},
+ "category": {"name": "role"},
+ "assignments": [{"name": "user"}]
+ }
+ ],
+ "objects": [
+ {
+ "name": "vm1",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "RBAC Policy"
+ }
+ ]
+ },
+ {
+ "name": "vm2",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "RBAC Policy"
+ }
+ ]
+ },
+ {
+ "name": "vm3",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "RBAC Policy"
+ }
+ ]
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "id",
+ "description": "identification of the object"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "vm1",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ },
+ {
+ "name": "vm2",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ },
+ {
+ "name": "vm3",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ }
+ ],
+ "object_assignments": [
+ {
+ "object": {"name": "vm1"},
+ "category": {"name": "id"},
+ "assignments": [{"name": "vm1"}]
+ },
+ {
+ "object": {"name": "vm2"},
+ "category": {"name": "id"},
+ "assignments": [{"name": "vm2"}]
+ },
+ {
+ "object": {"name": "vm3"},
+ "category": {"name": "id"},
+ "assignments": [{"name": "vm3"}]
+ }
+ ],
+ "actions": [
+ {
+ "name": "use_image",
+ "description": "use_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_images",
+ "description": "get_images action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_image",
+ "description": "update_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "set_image",
+ "description": "set_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "type",
+ "description": ""
+ }
+ ],
+ "action_data": [
+ {
+ "name": "read",
+ "description": "read action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ },
+ {
+ "name": "write",
+ "description": "write action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ },
+ {
+ "name": "execute",
+ "description": "execute action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ }
+ ],
+ "action_assignments": [
+ {
+ "action": {"name": "use_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}, {"name": "execute"}]
+ },
+ {
+ "action": {"name": "update_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}, {"name": "write"}]
+ },
+ {
+ "action": {"name": "set_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "write"}]
+ },
+ {
+ "action": {"name": "get_images"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}]
+ }
+ ],
+ "meta_rules": [
+ {
+ "name": "rbac",
+ "description": "",
+ "subject_categories": [{"name": "role"}],
+ "object_categories": [{"name": "id"}],
+ "action_categories": [{"name": "type"}]
+ }
+ ],
+ "rules": [
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm2"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm2"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm3"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "user"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "user"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "user"}],
+ "object_data": [{"name": "vm2"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "RBAC Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ }
+ ],
+ "checks": {
+ "granted": [
+ ["admin", "vm1", "get_images"],
+ ["admin", "vm1", "set_image"],
+ ["admin", "vm1", "use_image"],
+ ["admin", "vm2", "get_images"],
+ ["admin", "vm2", "set_image"],
+ ["admin", "vm3", "get_images"],
+ ["demo", "vm1", "get_images"],
+ ["demo", "vm1", "set_image"],
+ ["demo", "vm2", "get_images"],
+ ["demo", "vm1", "get_images"]
+ ],
+ "denied": [
+ ["admin", "vm2", "update_image"],
+ ["admin", "vm3", "set_image"],
+ ["admin", "vm3", "update_image"],
+ ["demo", "vm1", "update_image"],
+ ["demo", "vm2", "set_image"],
+ ["demo", "vm2", "update_image"],
+ ["demo", "vm3", "get_images"],
+ ["demo", "vm3", "set_image"],
+ ["demo", "vm3", "update_image"]
+ ]
+ }
+} \ No newline at end of file
diff --git a/moon_engine/tests/func_policies/test_base_configuration.py b/moon_engine/tests/func_policies/test_base_configuration.py
new file mode 100644
index 00000000..77f97df2
--- /dev/null
+++ b/moon_engine/tests/func_policies/test_base_configuration.py
@@ -0,0 +1,30 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import json
+import logging
+import requests
+import yaml
+from moon_engine.api import configuration
+
+LOGGER = logging.getLogger("moon.engine.server")
+
+
+def test_rbac():
+ filename = "moon.yaml"
+ configuration.set_configuration(yaml.safe_load(open(filename)))
+ data = json.loads(open(configuration.get_configuration("data")).read())
+ for granted in data.get("checks", {}).get("granted", {}):
+ req = requests.get("http://127.0.0.1:10000/authz/{}/{}/{}".format(
+ granted[0], granted[1], granted[2]
+ ))
+ assert req.status_code == 204
diff --git a/moon_engine/tests/func_policies/tmp/glance.policy.json b/moon_engine/tests/func_policies/tmp/glance.policy.json
new file mode 100644
index 00000000..5b1f6be7
--- /dev/null
+++ b/moon_engine/tests/func_policies/tmp/glance.policy.json
@@ -0,0 +1,63 @@
+{
+ "context_is_admin": "role:admin",
+ "default": "role:admin",
+
+ "add_image": "",
+ "delete_image": "",
+ "get_image": "",
+ "get_images": "",
+ "modify_image": "",
+ "publicize_image": "role:admin",
+ "communitize_image": "",
+ "copy_from": "",
+
+ "download_image": "",
+ "upload_image": "",
+
+ "delete_image_location": "",
+ "get_image_location": "",
+ "set_image_location": "",
+
+ "add_member": "",
+ "delete_member": "",
+ "get_member": "",
+ "get_members": "",
+ "modify_member": "",
+
+ "manage_image_cache": "role:admin",
+
+ "get_task": "",
+ "get_tasks": "",
+ "add_task": "",
+ "modify_task": "",
+ "tasks_api_access": "role:admin",
+
+ "deactivate": "",
+ "reactivate": "",
+
+ "get_metadef_namespace": "",
+ "get_metadef_namespaces":"",
+ "modify_metadef_namespace":"",
+ "add_metadef_namespace":"",
+
+ "get_metadef_object":"",
+ "get_metadef_objects":"",
+ "modify_metadef_object":"",
+ "add_metadef_object":"",
+
+ "list_metadef_resource_types":"",
+ "get_metadef_resource_type":"",
+ "add_metadef_resource_type_association":"",
+
+ "get_metadef_property":"",
+ "get_metadef_properties":"",
+ "modify_metadef_property":"",
+ "add_metadef_property":"",
+
+ "get_metadef_tag":"",
+ "get_metadef_tags":"",
+ "modify_metadef_tag":"",
+ "add_metadef_tag":"",
+ "add_metadef_tags":""
+
+}
diff --git a/moon_engine/tests/func_policies/tmp/keystone.policy.json b/moon_engine/tests/func_policies/tmp/keystone.policy.json
new file mode 100644
index 00000000..263912bf
--- /dev/null
+++ b/moon_engine/tests/func_policies/tmp/keystone.policy.json
@@ -0,0 +1,260 @@
+{
+ "admin_required": "role:admin",
+ "cloud_admin": "role:admin and (is_admin_project:True or domain_id:admin_domain_id)",
+ "service_role": "role:service",
+ "service_or_admin": "rule:admin_required or rule:service_role",
+ "owner": "user_id:%(user_id)s or user_id:%(target.token.user_id)s",
+ "admin_or_owner": "(rule:admin_required and domain_id:%(target.token.user.domain.id)s) or rule:owner",
+ "admin_and_matching_domain_id": "rule:admin_required and domain_id:%(domain_id)s",
+ "service_admin_or_owner": "rule:service_or_admin or rule:owner",
+
+ "default": "rule:admin_required",
+
+ "identity:get_region": "",
+ "identity:list_regions": "",
+ "identity:create_region": "rule:cloud_admin",
+ "identity:update_region": "rule:cloud_admin",
+ "identity:delete_region": "rule:cloud_admin",
+
+ "identity:get_service": "rule:admin_required",
+ "identity:list_services": "rule:admin_required",
+ "identity:create_service": "rule:cloud_admin",
+ "identity:update_service": "rule:cloud_admin",
+ "identity:delete_service": "rule:cloud_admin",
+
+ "identity:get_endpoint": "rule:admin_required",
+ "identity:list_endpoints": "rule:admin_required",
+ "identity:create_endpoint": "rule:cloud_admin",
+ "identity:update_endpoint": "rule:cloud_admin",
+ "identity:delete_endpoint": "rule:cloud_admin",
+
+ "identity:get_registered_limit": "",
+ "identity:list_registered_limits": "",
+ "identity:create_registered_limits": "rule:admin_required",
+ "identity:update_registered_limits": "rule:admin_required",
+ "identity:delete_registered_limit": "rule:admin_required",
+
+ "identity:get_limit": "",
+ "identity:list_limits": "",
+ "identity:create_limits": "rule:admin_required",
+ "identity:update_limits": "rule:admin_required",
+ "identity:delete_limit": "rule:admin_required",
+
+ "identity:get_domain": "rule:cloud_admin or rule:admin_and_matching_domain_id or token.project.domain.id:%(target.domain.id)s",
+ "identity:list_domains": "rule:cloud_admin",
+ "identity:create_domain": "rule:cloud_admin",
+ "identity:update_domain": "rule:cloud_admin",
+ "identity:delete_domain": "rule:cloud_admin",
+
+ "admin_and_matching_target_project_domain_id": "rule:admin_required and domain_id:%(target.project.domain_id)s",
+ "admin_and_matching_project_domain_id": "rule:admin_required and domain_id:%(project.domain_id)s",
+ "identity:get_project": "rule:cloud_admin or rule:admin_and_matching_target_project_domain_id or project_id:%(target.project.id)s",
+ "identity:list_projects": "rule:cloud_admin or rule:admin_and_matching_domain_id",
+ "identity:list_user_projects": "rule:owner or rule:admin_and_matching_domain_id",
+ "identity:create_project": "rule:cloud_admin or rule:admin_and_matching_project_domain_id",
+ "identity:update_project": "rule:cloud_admin or rule:admin_and_matching_target_project_domain_id",
+ "identity:delete_project": "rule:cloud_admin or rule:admin_and_matching_target_project_domain_id",
+ "identity:create_project_tag": "rule:admin_required",
+ "identity:delete_project_tag": "rule:admin_required",
+ "identity:get_project_tag": "rule:admin_required",
+ "identity:list_project_tags": "rule:admin_required",
+ "identity:delete_project_tags": "rule:admin_required",
+ "identity:update_project_tags": "rule:admin_required",
+
+ "admin_and_matching_target_user_domain_id": "rule:admin_required and domain_id:%(target.user.domain_id)s",
+ "admin_and_matching_user_domain_id": "rule:admin_required and domain_id:%(user.domain_id)s",
+ "identity:get_user": "rule:cloud_admin or rule:admin_and_matching_target_user_domain_id or rule:owner",
+ "identity:list_users": "rule:cloud_admin or rule:admin_and_matching_domain_id",
+ "identity:create_user": "rule:cloud_admin or rule:admin_and_matching_user_domain_id",
+ "identity:update_user": "rule:cloud_admin or rule:admin_and_matching_target_user_domain_id",
+ "identity:delete_user": "rule:cloud_admin or rule:admin_and_matching_target_user_domain_id",
+
+ "admin_and_matching_target_group_domain_id": "rule:admin_required and domain_id:%(target.group.domain_id)s",
+ "admin_and_matching_group_domain_id": "rule:admin_required and domain_id:%(group.domain_id)s",
+ "identity:get_group": "rule:cloud_admin or rule:admin_and_matching_target_group_domain_id",
+ "identity:list_groups": "rule:cloud_admin or rule:admin_and_matching_domain_id",
+ "identity:list_groups_for_user": "rule:owner or rule:admin_and_matching_target_user_domain_id",
+ "identity:create_group": "rule:cloud_admin or rule:admin_and_matching_group_domain_id",
+ "identity:update_group": "rule:cloud_admin or rule:admin_and_matching_target_group_domain_id",
+ "identity:delete_group": "rule:cloud_admin or rule:admin_and_matching_target_group_domain_id",
+ "identity:list_users_in_group": "rule:cloud_admin or rule:admin_and_matching_target_group_domain_id",
+ "identity:remove_user_from_group": "rule:cloud_admin or rule:admin_and_matching_target_group_domain_id",
+ "identity:check_user_in_group": "rule:cloud_admin or rule:admin_and_matching_target_group_domain_id",
+ "identity:add_user_to_group": "rule:cloud_admin or rule:admin_and_matching_target_group_domain_id",
+
+ "identity:get_credential": "rule:admin_required",
+ "identity:list_credentials": "rule:admin_required or user_id:%(user_id)s",
+ "identity:create_credential": "rule:admin_required",
+ "identity:update_credential": "rule:admin_required",
+ "identity:delete_credential": "rule:admin_required",
+
+ "identity:ec2_get_credential": "rule:admin_required or (rule:owner and user_id:%(target.credential.user_id)s)",
+ "identity:ec2_list_credentials": "rule:admin_required or rule:owner",
+ "identity:ec2_create_credential": "rule:admin_required or rule:owner",
+ "identity:ec2_delete_credential": "rule:admin_required or (rule:owner and user_id:%(target.credential.user_id)s)",
+
+ "identity:get_role": "rule:admin_required",
+ "identity:list_roles": "rule:admin_required",
+ "identity:create_role": "rule:cloud_admin",
+ "identity:update_role": "rule:cloud_admin",
+ "identity:delete_role": "rule:cloud_admin",
+
+ "identity:get_domain_role": "rule:cloud_admin or rule:get_domain_roles",
+ "identity:list_domain_roles": "rule:cloud_admin or rule:list_domain_roles",
+ "identity:create_domain_role": "rule:cloud_admin or rule:domain_admin_matches_domain_role",
+ "identity:update_domain_role": "rule:cloud_admin or rule:domain_admin_matches_target_domain_role",
+ "identity:delete_domain_role": "rule:cloud_admin or rule:domain_admin_matches_target_domain_role",
+ "domain_admin_matches_domain_role": "rule:admin_required and domain_id:%(role.domain_id)s",
+ "get_domain_roles": "rule:domain_admin_matches_target_domain_role or rule:project_admin_matches_target_domain_role",
+ "domain_admin_matches_target_domain_role": "rule:admin_required and domain_id:%(target.role.domain_id)s",
+ "project_admin_matches_target_domain_role": "rule:admin_required and project_domain_id:%(target.role.domain_id)s",
+ "list_domain_roles": "rule:domain_admin_matches_filter_on_list_domain_roles or rule:project_admin_matches_filter_on_list_domain_roles",
+ "domain_admin_matches_filter_on_list_domain_roles": "rule:admin_required and domain_id:%(domain_id)s",
+ "project_admin_matches_filter_on_list_domain_roles": "rule:admin_required and project_domain_id:%(domain_id)s",
+ "admin_and_matching_prior_role_domain_id": "rule:admin_required and domain_id:%(target.prior_role.domain_id)s",
+ "implied_role_matches_prior_role_domain_or_global": "(domain_id:%(target.implied_role.domain_id)s or None:%(target.implied_role.domain_id)s)",
+
+ "identity:get_implied_role": "rule:cloud_admin or rule:admin_and_matching_prior_role_domain_id",
+ "identity:list_implied_roles": "rule:cloud_admin or rule:admin_and_matching_prior_role_domain_id",
+ "identity:create_implied_role": "rule:cloud_admin or (rule:admin_and_matching_prior_role_domain_id and rule:implied_role_matches_prior_role_domain_or_global)",
+ "identity:delete_implied_role": "rule:cloud_admin or rule:admin_and_matching_prior_role_domain_id",
+ "identity:list_role_inference_rules": "rule:cloud_admin",
+ "identity:check_implied_role": "rule:cloud_admin or rule:admin_and_matching_prior_role_domain_id",
+
+ "identity:list_system_grants_for_user": "rule:admin_required",
+ "identity:check_system_grant_for_user": "rule:admin_required",
+ "identity:create_system_grant_for_user": "rule:admin_required",
+ "identity:revoke_system_grant_for_user": "rule:admin_required",
+
+ "identity:list_system_grants_for_group": "rule:admin_required",
+ "identity:check_system_grant_for_group": "rule:admin_required",
+ "identity:create_system_grant_for_group": "rule:admin_required",
+ "identity:revoke_system_grant_for_group": "rule:admin_required",
+
+ "identity:check_grant": "rule:cloud_admin or rule:domain_admin_for_grants or rule:project_admin_for_grants",
+ "identity:list_grants": "rule:cloud_admin or rule:domain_admin_for_list_grants or rule:project_admin_for_list_grants",
+ "identity:create_grant": "rule:cloud_admin or rule:domain_admin_for_grants or rule:project_admin_for_grants",
+ "identity:revoke_grant": "rule:cloud_admin or rule:domain_admin_for_grants or rule:project_admin_for_grants",
+ "domain_admin_for_grants": "rule:domain_admin_for_global_role_grants or rule:domain_admin_for_domain_role_grants",
+ "domain_admin_for_global_role_grants": "rule:admin_required and None:%(target.role.domain_id)s and rule:domain_admin_grant_match",
+ "domain_admin_for_domain_role_grants": "rule:admin_required and domain_id:%(target.role.domain_id)s and rule:domain_admin_grant_match",
+ "domain_admin_grant_match": "domain_id:%(domain_id)s or domain_id:%(target.project.domain_id)s",
+ "project_admin_for_grants": "rule:project_admin_for_global_role_grants or rule:project_admin_for_domain_role_grants",
+ "project_admin_for_global_role_grants": "rule:admin_required and None:%(target.role.domain_id)s and project_id:%(project_id)s",
+ "project_admin_for_domain_role_grants": "rule:admin_required and project_domain_id:%(target.role.domain_id)s and project_id:%(project_id)s",
+ "domain_admin_for_list_grants": "rule:admin_required and rule:domain_admin_grant_match",
+ "project_admin_for_list_grants": "rule:admin_required and project_id:%(project_id)s",
+
+ "admin_on_domain_filter": "rule:admin_required and domain_id:%(scope.domain.id)s",
+ "admin_on_project_filter": "rule:admin_required and project_id:%(scope.project.id)s",
+ "admin_on_domain_of_project_filter": "rule:admin_required and domain_id:%(target.project.domain_id)s",
+ "identity:list_role_assignments": "rule:cloud_admin or rule:admin_on_domain_filter or rule:admin_on_project_filter",
+ "identity:list_role_assignments_for_tree": "rule:cloud_admin or rule:admin_on_domain_of_project_filter",
+ "identity:get_policy": "rule:cloud_admin",
+ "identity:list_policies": "rule:cloud_admin",
+ "identity:create_policy": "rule:cloud_admin",
+ "identity:update_policy": "rule:cloud_admin",
+ "identity:delete_policy": "rule:cloud_admin",
+
+ "identity:check_token": "rule:admin_or_owner",
+ "identity:validate_token": "rule:service_admin_or_owner",
+ "identity:validate_token_head": "rule:service_or_admin",
+ "identity:revocation_list": "rule:service_or_admin",
+ "identity:revoke_token": "rule:admin_or_owner",
+
+ "identity:create_trust": "user_id:%(trust.trustor_user_id)s",
+ "identity:list_trusts": "",
+ "identity:list_roles_for_trust": "",
+ "identity:get_role_for_trust": "",
+ "identity:delete_trust": "",
+ "identity:get_trust": "",
+
+ "identity:create_consumer": "rule:admin_required",
+ "identity:get_consumer": "rule:admin_required",
+ "identity:list_consumers": "rule:admin_required",
+ "identity:delete_consumer": "rule:admin_required",
+ "identity:update_consumer": "rule:admin_required",
+
+ "identity:authorize_request_token": "rule:admin_required",
+ "identity:list_access_token_roles": "rule:admin_required",
+ "identity:get_access_token_role": "rule:admin_required",
+ "identity:list_access_tokens": "rule:admin_required",
+ "identity:get_access_token": "rule:admin_required",
+ "identity:delete_access_token": "rule:admin_required",
+
+ "identity:list_projects_for_endpoint": "rule:admin_required",
+ "identity:add_endpoint_to_project": "rule:admin_required",
+ "identity:check_endpoint_in_project": "rule:admin_required",
+ "identity:list_endpoints_for_project": "rule:admin_required",
+ "identity:remove_endpoint_from_project": "rule:admin_required",
+
+ "identity:create_endpoint_group": "rule:admin_required",
+ "identity:list_endpoint_groups": "rule:admin_required",
+ "identity:get_endpoint_group": "rule:admin_required",
+ "identity:update_endpoint_group": "rule:admin_required",
+ "identity:delete_endpoint_group": "rule:admin_required",
+ "identity:list_projects_associated_with_endpoint_group": "rule:admin_required",
+ "identity:list_endpoints_associated_with_endpoint_group": "rule:admin_required",
+ "identity:get_endpoint_group_in_project": "rule:admin_required",
+ "identity:list_endpoint_groups_for_project": "rule:admin_required",
+ "identity:add_endpoint_group_to_project": "rule:admin_required",
+ "identity:remove_endpoint_group_from_project": "rule:admin_required",
+
+ "identity:create_identity_provider": "rule:cloud_admin",
+ "identity:list_identity_providers": "rule:cloud_admin",
+ "identity:get_identity_provider": "rule:cloud_admin",
+ "identity:update_identity_provider": "rule:cloud_admin",
+ "identity:delete_identity_provider": "rule:cloud_admin",
+
+ "identity:create_protocol": "rule:cloud_admin",
+ "identity:update_protocol": "rule:cloud_admin",
+ "identity:get_protocol": "rule:cloud_admin",
+ "identity:list_protocols": "rule:cloud_admin",
+ "identity:delete_protocol": "rule:cloud_admin",
+
+ "identity:create_mapping": "rule:cloud_admin",
+ "identity:get_mapping": "rule:cloud_admin",
+ "identity:list_mappings": "rule:cloud_admin",
+ "identity:delete_mapping": "rule:cloud_admin",
+ "identity:update_mapping": "rule:cloud_admin",
+
+ "identity:create_service_provider": "rule:cloud_admin",
+ "identity:list_service_providers": "rule:cloud_admin",
+ "identity:get_service_provider": "rule:cloud_admin",
+ "identity:update_service_provider": "rule:cloud_admin",
+ "identity:delete_service_provider": "rule:cloud_admin",
+
+ "identity:get_auth_catalog": "",
+ "identity:get_auth_projects": "",
+ "identity:get_auth_domains": "",
+ "identity:get_auth_system": "",
+
+ "identity:list_projects_for_user": "",
+ "identity:list_domains_for_user": "",
+
+ "identity:list_revoke_events": "rule:service_or_admin",
+
+ "identity:create_policy_association_for_endpoint": "rule:cloud_admin",
+ "identity:check_policy_association_for_endpoint": "rule:cloud_admin",
+ "identity:delete_policy_association_for_endpoint": "rule:cloud_admin",
+ "identity:create_policy_association_for_service": "rule:cloud_admin",
+ "identity:check_policy_association_for_service": "rule:cloud_admin",
+ "identity:delete_policy_association_for_service": "rule:cloud_admin",
+ "identity:create_policy_association_for_region_and_service": "rule:cloud_admin",
+ "identity:check_policy_association_for_region_and_service": "rule:cloud_admin",
+ "identity:delete_policy_association_for_region_and_service": "rule:cloud_admin",
+ "identity:get_policy_for_endpoint": "rule:cloud_admin",
+ "identity:list_endpoints_for_policy": "rule:cloud_admin",
+
+ "identity:create_domain_config": "rule:cloud_admin",
+ "identity:get_domain_config": "rule:cloud_admin",
+ "identity:get_security_compliance_domain_config": "",
+ "identity:update_domain_config": "rule:cloud_admin",
+ "identity:delete_domain_config": "rule:cloud_admin",
+ "identity:get_domain_config_default": "rule:cloud_admin",
+
+ "identity:get_application_credential": "rule:admin_or_owner",
+ "identity:list_application_credentials": "rule:admin_or_owner",
+ "identity:create_application_credential": "rule:admin_or_owner",
+ "identity:delete_application_credential": "rule:admin_or_owner"
+}
diff --git a/moon_engine/tests/func_postman/Test Authz through Wrapper.postman_collection.json b/moon_engine/tests/func_postman/Test Authz through Wrapper.postman_collection.json
new file mode 100644
index 00000000..bd710eb2
--- /dev/null
+++ b/moon_engine/tests/func_postman/Test Authz through Wrapper.postman_collection.json
@@ -0,0 +1,24 @@
+{
+ "info": {
+ "_postman_id": "91449fd3-9f70-4e95-b3b7-84365cbc057d",
+ "name": "Test Authz through Wrapper",
+ "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
+ },
+ "item": [
+ {
+ "name": "Get status",
+ "request": {
+ "method": "GET",
+ "header": [],
+ "body": {
+ "mode": "raw",
+ "raw": ""
+ },
+ "url": {
+ "raw": ""
+ }
+ },
+ "response": []
+ }
+ ]
+} \ No newline at end of file
diff --git a/moon_engine/tests/func_postman/db.json b/moon_engine/tests/func_postman/db.json
new file mode 100644
index 00000000..a06285d9
--- /dev/null
+++ b/moon_engine/tests/func_postman/db.json
@@ -0,0 +1 @@
+{"_default": {"1": {"username": "admin", "password": "2ee64edbdc7e6b7f298b6a06b04b066ee8a9e0531e93d16239ff1fa13be19c041d86e7fef8771e09dcc3295421c2ef1bd9dc80209f0f18413572363b4c510d47", "salt": "9d52dcaedac33f02454bcc2abc06c65c28070cbbe50cbbdfd89e483259cd1616ad240c2c69545c2a53644e49b2692e33a9f9947b5a2608eb185ec87ac5ed1c7f", "api_key": "f9615b75d70d2425bc8d107927d88dddf901444e540d8d7bd309b78c3246eb7106bf91fc5f7e9a404407ea348a6ecb75e865d6d60d0aa0294dd7cd032dfb0401"}}} \ No newline at end of file
diff --git a/moon_engine/tests/func_postman/gunicorn.cfg b/moon_engine/tests/func_postman/gunicorn.cfg
new file mode 100644
index 00000000..a1ec8f9c
--- /dev/null
+++ b/moon_engine/tests/func_postman/gunicorn.cfg
@@ -0,0 +1,3 @@
+bind = "127.0.0.1:10000"
+workers = 2
+moon = "moon.yaml"
diff --git a/moon_engine/tests/func_postman/moon.yaml b/moon_engine/tests/func_postman/moon.yaml
new file mode 100644
index 00000000..523bb75a
--- /dev/null
+++ b/moon_engine/tests/func_postman/moon.yaml
@@ -0,0 +1,49 @@
+api_token: false
+data: ''
+database:
+ pwd_file: db.json
+incremental_updates: false
+logging:
+ formatters:
+ brief:
+ format: '%(levelname)s %(name)s %(message)-30s'
+ custom:
+ format: '%(asctime)-15s %(levelname)s %(name)s %(message)s'
+ handlers:
+ console:
+ class: logging.StreamHandler
+ formatter: custom
+ level: 10
+ stream: ext://sys.stdout
+ file:
+ backupCount: 3
+ class: logging.handlers.RotatingFileHandler
+ filename: moon.log
+ formatter: custom
+ level: DEBUG
+ maxBytes: 1048576
+ loggers:
+ moon:
+ handlers:
+ - console
+ - file
+ level: DEBUG
+ propagate: false
+ root:
+ handlers:
+ - console
+ level: ERROR
+ version: 1
+management:
+ password: admin
+ url: http://127.0.0.1:8000
+ user: admin
+orchestration:
+ config_dir: /tmp
+ connection: local
+ driver: moon_engine.plugins.pyorchestrator
+ port: 20000...20100
+plugins:
+ directory: /var/moon/plugins
+type: wrapper
+uuid: 2dd13f3dd36048d88346962d62920ac6
diff --git a/moon_engine/tests/func_postman/run.sh b/moon_engine/tests/func_postman/run.sh
new file mode 100755
index 00000000..f4153d28
--- /dev/null
+++ b/moon_engine/tests/func_postman/run.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+
+hug -m moon_engine.server -p 10000 gunicorn.cfg
diff --git a/moon_engine/tests/performance_tests/authz_pipeline.py b/moon_engine/tests/performance_tests/authz_pipeline.py
new file mode 100644
index 00000000..7d2b48ce
--- /dev/null
+++ b/moon_engine/tests/performance_tests/authz_pipeline.py
@@ -0,0 +1,115 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+from locust import TaskSet, task
+import logging
+import json
+
+LOGGER = logging.getLogger("locust")
+
+
+class AuthzPipelineRequests(TaskSet):
+ token = ""
+ moon_errors = 0
+ moon_requests = 0
+ stats_filename = "/tmp/perf_stats.log"
+
+ def on_start(self):
+ """ on_start is called when a Locust start before any task is scheduled """
+ self.moon_errors = []
+
+ def __del__(self):
+ """ on_stop is called when the TaskSet is stopping """
+ stats = {}
+ try:
+ stats = json.loads(open(self.stats_filename).read())
+ except Exception:
+ pass
+ _num = stats.get("errors", 0)
+ _num += len(self.moon_errors)
+ _total = stats.get("total", 0)
+ _total += self.moon_requests
+ _list = stats.get("list", [])
+ _list.extend(self.moon_errors)
+ _percent = _num * 100 / _total
+ json.dump({"errors": _num, "total": _total,
+ "percentage": "{0:.2f}".format(_percent),
+ "list": _list},
+ open(self.stats_filename, "w"), indent=4)
+
+ def get(self, url, status_code=200):
+ with self.client.get(url, catch_response=True) as response:
+ self.moon_requests += 1
+ if response.status_code != status_code:
+ self.moon_errors.append((url, f"{response.status_code}/{status_code}"))
+ response.success()
+
+ @task(10)
+ def authz_ok1(self):
+ url = "/authz/{}/{}/{}".format(
+ "admin", "vm1", "use_image"
+ )
+ self.get(url)
+
+ @task(10)
+ def authz_ok2(self):
+ url = "/authz/{}/{}/{}".format(
+ "admin", "vm1", "get_images"
+ )
+ self.get(url)
+
+ @task(10)
+ def authz_ok3(self):
+ url = "/authz/{}/{}/{}".format(
+ "admin", "vm1", "set_image"
+ )
+ self.get(url)
+
+ @task(10)
+ def authz_ok4(self):
+ url = "/authz/{}/{}/{}".format(
+ "demo", "vm1", "set_image"
+ )
+ self.get(url)
+
+ @task(10)
+ def authz_ok5(self):
+ url = "/authz/{}/{}/{}".format(
+ "demo", "vm1", "get_images"
+ )
+ self.get(url)
+
+ @task(10)
+ def authz_rule_ko(self):
+ url = "/authz/{}/{}/{}".format("demo", "vm1", "use_image")
+ self.get(url, 403)
+
+ @task(10)
+ def authz_subject_ko(self):
+ url = "/authz/{}/{}/{}".format("admins", "vm1", "use_image")
+ self.get(url, 403)
+
+ @task(10)
+ def authz_object_ko(self):
+ url = "/authz/{}/{}/{}".format("admin", "vm4", "use_image")
+ self.get(url, 403)
+
+ @task(10)
+ def authz_action_ko(self):
+ url = "/authz/{}/{}/{}".format("admin", "vm1", "use_images")
+ self.get(url, 403)
+
+ @task(1)
+ def status(self):
+ self.client.get("/status/")
+
+
diff --git a/moon_engine/tests/performance_tests/locustfile.py b/moon_engine/tests/performance_tests/locustfile.py
new file mode 100644
index 00000000..cf077720
--- /dev/null
+++ b/moon_engine/tests/performance_tests/locustfile.py
@@ -0,0 +1,26 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+from locust import HttpLocust, TaskSet
+import authz_pipeline
+
+
+class MoonRequests(TaskSet):
+ tasks = {
+ authz_pipeline.AuthzPipelineRequests: 10,
+ }
+
+
+class MoonUser(HttpLocust):
+ task_set = MoonRequests
+ min_wait = 10
+ max_wait = 100
diff --git a/moon_engine/tests/performance_tests/policy_rbac.json b/moon_engine/tests/performance_tests/policy_rbac.json
new file mode 100644
index 00000000..2f7c704e
--- /dev/null
+++ b/moon_engine/tests/performance_tests/policy_rbac.json
@@ -0,0 +1,411 @@
+{
+ "policies": [
+ {
+ "name": "Policy for Locust",
+ "genre": "authz",
+ "description": "Policy for Locust",
+ "model": {
+ "name": "RBAC"
+ },
+ "mandatory": true,
+ "override": true
+ }
+ ],
+ "models": [
+ {
+ "name": "RBAC",
+ "description": "",
+ "meta_rules": [
+ {
+ "name": "rbac"
+ }
+ ],
+ "override": true
+ }
+ ],
+ "subjects": [
+ {
+ "name": "admin",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "Policy for Locust"
+ }
+ ]
+ },
+ {
+ "name": "demo",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "Policy for Locust"
+ }
+ ]
+ }
+ ],
+ "subject_categories": [
+ {
+ "name": "role",
+ "description": "role of a user"
+ }
+ ],
+ "subject_data": [
+ {
+ "name": "admin",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ },
+ {
+ "name": "user",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "role"
+ }
+ }
+ ],
+ "subject_assignments": [
+ {
+ "subject": {"name": "admin"},
+ "category": {"name": "role"},
+ "assignments": [{"name": "admin"}]
+ },
+ {
+ "subject": {"name": "admin"},
+ "category": {"name": "role"},
+ "assignments": [{"name": "user"}]
+ },
+ {
+ "subject": {"name": "demo"},
+ "category": {"name": "role"},
+ "assignments": [{"name": "user"}]
+ }
+ ],
+ "objects": [
+ {
+ "name": "vm1",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "Policy for Locust"
+ }
+ ]
+ },
+ {
+ "name": "vm2",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "Policy for Locust"
+ }
+ ]
+ },
+ {
+ "name": "vm3",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "Policy for Locust"
+ }
+ ]
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "id",
+ "description": "identification of the object"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "vm1",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ },
+ {
+ "name": "vm2",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ },
+ {
+ "name": "vm3",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "id"
+ }
+ }
+ ],
+ "object_assignments": [
+ {
+ "object": {"name": "vm1"},
+ "category": {"name": "id"},
+ "assignments": [{"name": "vm1"}]
+ },
+ {
+ "object": {"name": "vm2"},
+ "category": {"name": "id"},
+ "assignments": [{"name": "vm2"}]
+ },
+ {
+ "object": {"name": "vm3"},
+ "category": {"name": "id"},
+ "assignments": [{"name": "vm3"}]
+ }
+ ],
+ "actions": [
+ {
+ "name": "use_image",
+ "description": "use_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": [
+ {
+ "name": "Policy for Locust"
+ }
+ ]
+ },
+ {
+ "name": "get_images",
+ "description": "get_images action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": [
+ {
+ "name": "Policy for Locust"
+ }
+ ]
+ },
+ {
+ "name": "update_image",
+ "description": "update_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": [
+ {
+ "name": "Policy for Locust"
+ }
+ ]
+ },
+ {
+ "name": "set_image",
+ "description": "set_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": [
+ {
+ "name": "Policy for Locust"
+ }
+ ]
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "type",
+ "description": ""
+ }
+ ],
+ "action_data": [
+ {
+ "name": "read",
+ "description": "read action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ },
+ {
+ "name": "write",
+ "description": "write action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ },
+ {
+ "name": "execute",
+ "description": "execute action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ }
+ ],
+ "action_assignments": [
+ {
+ "action": {"name": "use_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}, {"name": "execute"}]
+ },
+ {
+ "action": {"name": "update_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}, {"name": "write"}]
+ },
+ {
+ "action": {"name": "set_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "write"}]
+ },
+ {
+ "action": {"name": "get_images"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}]
+ }
+ ],
+ "meta_rules": [
+ {
+ "name": "rbac",
+ "description": "",
+ "subject_categories": [{"name": "role"}],
+ "object_categories": [{"name": "id"}],
+ "action_categories": [{"name": "type"}]
+ }
+ ],
+ "rules": [
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "Policy for Locust"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "Policy for Locust"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "Policy for Locust"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm2"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "Policy for Locust"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm2"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "Policy for Locust"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "admin"}],
+ "object_data": [{"name": "vm3"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "Policy for Locust"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "user"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "Policy for Locust"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "user"}],
+ "object_data": [{"name": "vm1"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "Policy for Locust"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "rbac"},
+ "rule": {
+ "subject_data": [{"name": "user"}],
+ "object_data": [{"name": "vm2"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "Policy for Locust"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ }
+ ],
+ "checks": {
+ "granted": [
+ ["admin", "vm1", "get_images"],
+ ["admin", "vm1", "set_image"],
+ ["admin", "vm1", "use_image"],
+ ["admin", "vm2", "get_images"],
+ ["admin", "vm2", "set_image"],
+ ["admin", "vm3", "get_images"],
+ ["user", "vm1", "get_images"],
+ ["user", "vm1", "set_image"],
+ ["user", "vm2", "get_images"],
+ ["user", "vm1", "get_images"]
+ ],
+ "denied": [
+ ["admin", "vm2", "update_image"],
+ ["admin", "vm3", "set_image"],
+ ["admin", "vm3", "update_image"],
+ ["user", "vm1", "update_image"],
+ ["user", "vm2", "set_image"],
+ ["user", "vm2", "update_image"],
+ ["user", "vm1", "use_image"],
+ ["user", "vm2", "use_image"],
+ ["user", "vm3", "get_images"],
+ ["user", "vm3", "set_image"],
+ ["user", "vm3", "update_image"]
+ ]
+ }
+} \ No newline at end of file
diff --git a/moon_engine/tests/performance_tests/utils.py b/moon_engine/tests/performance_tests/utils.py
new file mode 100644
index 00000000..21ac78bb
--- /dev/null
+++ b/moon_engine/tests/performance_tests/utils.py
@@ -0,0 +1,60 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import json
+
+
+def login(taskset):
+ req = taskset.client.get("/auth", auth=("admin", "admin"))
+ taskset.token = req.content.decode("utf-8").strip('"')
+
+
+def logout(taskset):
+ pass
+
+
+def log(msg):
+ open("/tmp/tests.log", 'a').write(str(msg) + "\n")
+
+
+def import_policy(client, token):
+ import_data = open("policy_rbac.json").read()
+ req = client.post("/import", headers={"X-Api-Key": token}, data=json.loads(import_data))
+ print(req)
+ content = json.loads(req.content.decode("utf-8"))
+ for policy_key, policy_value in content.get("policies", {}).items():
+ if policy_value.get("name") == "Policy for Locust":
+ return policy_key
+
+
+def create_pdp(client, token, policy_id, vim_project_id=111111111111):
+ req = client.post("/pdp", headers={"X-Api-Key": token}, data={
+ "name": "PDP for Locust",
+ "vim_project_id": vim_project_id,
+ "security_pipeline": [policy_id]
+ })
+ content = json.loads(req.content.decode("utf-8"))
+ for pdp_key, pdp_value in content.get("pdp", {}).items():
+ if pdp_value.get("name") == "PDP for Locust":
+ return pdp_key
+
+
+def delete_policy(client, token, policy_id):
+ print("deleting Policy {}".format(policy_id))
+ client.delete("/policies/{}".format(policy_id), headers={"X-Api-Key": token})
+
+
+def delete_pdp(client, token, pdp_id):
+ print("deleting PDP {}".format(pdp_id))
+ client.delete("/pdp/{}".format(pdp_id), headers={"X-Api-Key": token})
+
+
diff --git a/moon_engine/tests/unit_python/api/__init__.py b/moon_engine/tests/unit_python/api/__init__.py
new file mode 100644
index 00000000..1856aa2c
--- /dev/null
+++ b/moon_engine/tests/unit_python/api/__init__.py
@@ -0,0 +1,12 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
diff --git a/moon_engine/tests/unit_python/api/moon.yaml b/moon_engine/tests/unit_python/api/moon.yaml
new file mode 100644
index 00000000..9272ccce
--- /dev/null
+++ b/moon_engine/tests/unit_python/api/moon.yaml
@@ -0,0 +1,54 @@
+type: "pipeline"
+uuid: "a64beb1c-c224-474f-b4ba-dd43173e7101"
+manager_url: "http://127.0.0.1:20000"
+incremental_updates: false
+api_token:
+data: conf/policy_example.json
+debug: true
+management:
+ token_file: moon_engine_users.json
+
+orchestration:
+ driver: moon_engine.plugins.pyorchestrator
+ connection: local
+ port: 20000...20100
+ config_dir: /tmp
+
+authorization:
+ driver: moon_engine.plugins.authz
+
+plugins:
+ directory: /tmp
+
+logging:
+ version: 1
+
+ formatters:
+ brief:
+ format: "%(levelname)s %(name)s %(message)-30s"
+ custom:
+ format: "%(asctime)-15s %(levelname)s %(name)s %(message)s"
+
+ handlers:
+ console:
+ class : logging.StreamHandler
+ formatter: custom
+ level : INFO
+ stream : ext://sys.stdout
+ file:
+ class : logging.handlers.RotatingFileHandler
+ formatter: custom
+ level : DEBUG
+ filename: /tmp/moon_engine.log
+ maxBytes: 1048576
+ backupCount: 3
+
+ loggers:
+ moon:
+ level: DEBUG
+ handlers: [console, file]
+ propagate: no
+
+ root:
+ level: ERROR
+ handlers: [console] \ No newline at end of file
diff --git a/moon_engine/tests/unit_python/api/pipeline/__init__.py b/moon_engine/tests/unit_python/api/pipeline/__init__.py
new file mode 100644
index 00000000..582be686
--- /dev/null
+++ b/moon_engine/tests/unit_python/api/pipeline/__init__.py
@@ -0,0 +1,11 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
diff --git a/moon_engine/tests/unit_python/api/pipeline/test_authz.py b/moon_engine/tests/unit_python/api/pipeline/test_authz.py
new file mode 100644
index 00000000..c405ddfd
--- /dev/null
+++ b/moon_engine/tests/unit_python/api/pipeline/test_authz.py
@@ -0,0 +1,37 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import hug
+
+
+def test_get_authz_authorized():
+ from moon_engine.api.pipeline import authz
+ from moon_utilities.auth_functions import get_api_key_for_user
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+ # FIXME: https://gitlab.forge.orange-labs.fr/moon/moon_cache/issues/1
+ # req = benchmark(hug.test.get, authz,
+ # "/authz/89ba91c1-8dd5-4abf-bfde-7a66936c51a6/67b8008a-3f8d-4f8e-847e-b628f0f7ca0e/cdb3df22-0dc0"
+ # "-5a6e-a333-4b994827b068", headers=auth_headers)
+ # # req = hug.test.get(authz, "/authz/test/test/test", headers=auth_headers)
+ # assert req.status == hug.HTTP_204
+
+
+def test_get_authz_unauthorized():
+ from moon_engine.api.pipeline import authz
+ from moon_utilities.auth_functions import get_api_key_for_user
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+ # FIXME: https://gitlab.forge.orange-labs.fr/moon/moon_cache/issues/1
+ # req = benchmark(hug.test.get, authz,
+ # "/authz/31fd15ad-1478-4a96-96fc-c887dddbfaf9/67b8008a-3f8d-4f8e-847e-b628f0f7ca0e/cdb3df22-0dc0"
+ # "-5a6e-a333-4b994827b068", headers=auth_headers)
+ # # req = hug.test.get(authz, "/authz/test/test/test", headers=auth_headers)
+ # assert req.status == hug.HTTP_403
diff --git a/moon_engine/tests/unit_python/api/pipeline/test_update.py b/moon_engine/tests/unit_python/api/pipeline/test_update.py
new file mode 100644
index 00000000..94d5a4e4
--- /dev/null
+++ b/moon_engine/tests/unit_python/api/pipeline/test_update.py
@@ -0,0 +1,525 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import hug
+import requests
+from uuid import uuid4
+
+
+def test_pipeline_update_policy_existed():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ policies = response.json()
+ key = next(iter(policies['policies']))
+ policies['policies'][key]['name'] = "new " + policies['policies'][key]['name']
+ req = hug.test.put(update, "/update/policy/{}".format(key),
+ policies['policies'][key], headers=auth_headers)
+ assert req.status == hug.HTTP_208
+
+
+def test_pipeline_update_policy_not_existed():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ policies = response.json()
+ key = next(iter(policies['policies']))
+ policies['policies'][key]['name'] = "new " + policies['policies'][key]['name']
+ req = hug.test.put(update, "/update/policy/{}".format(uuid4().hex),
+ policies['policies'][key], headers=auth_headers)
+ assert req.status == hug.HTTP_208
+
+
+def test_pipeline_delete_policy():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+ policies = response.json()
+ key = next(iter(policies['policies']))
+ req = hug.test.delete(update, "/update/policy/{}".format(key),
+ headers=auth_headers)
+ assert req.status == hug.HTTP_202
+
+
+def test_pipeline_update_pdp_existed():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/pdp".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ pdps = response.json()
+ key = next(iter(pdps['pdps']))
+ pdps['pdps'][key]['name'] = "new " + pdps['pdps'][key]['name']
+ req = hug.test.put(update, "/update/pdp/{}".format(key),
+ pdps['pdps'][key], headers=auth_headers)
+ assert req.status == hug.HTTP_208
+
+
+def test_pipeline_update_pdp_not_existed():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/pdp".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ pdps = response.json()
+ key = next(iter(pdps['pdps']))
+ pdps['pdps'][key]['name'] = "new " + pdps['pdps'][key]['name']
+ req = hug.test.put(update, "/update/pdp/{}".format(uuid4().hex),
+ pdps['pdps'][key], headers=auth_headers)
+ assert req.status == hug.HTTP_208
+
+
+def test_pipeline_delete_pdp_existed():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/pdp".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ pdps = response.json()
+ key = next(iter(pdps['pdps']))
+ req = hug.test.delete(update, "/update/pdp/{}".format(key), headers=auth_headers)
+ assert req.status == hug.HTTP_202
+
+
+def test_pipeline_update_perimeter_existed():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ policies = response.json()
+ policy_key = next(iter(policies['policies']))
+
+ subject_response = requests.get("{}/policies/{}/subjects".format(get_configuration(
+ "management").get("url"), policy_key), headers=auth_headers)
+ subjects = subject_response.json()
+ subj_key = next(iter(subjects['subjects']))
+ subjects['subjects'][subj_key]['name'] = "updated_" + subjects['subjects'][subj_key]['name']
+
+ subject_req = hug.test.put(update, "/update/perimeter/{}/{}/{}".format(subj_key, policy_key,
+ "subject"),
+ subjects['subjects'][subj_key], headers=auth_headers)
+ assert subject_req.status == hug.HTTP_208
+
+ """ object category """
+ object_response = requests.get("{}/policies/{}/objects".format(get_configuration(
+ "management").get("url"), policy_key), headers=auth_headers)
+ objects = object_response.json()
+ obj_key = next(iter(objects['objects']))
+ objects['objects'][obj_key]['name'] = "updated_" + objects['objects'][obj_key]['name']
+
+ object_req = hug.test.put(update, "/update/perimeter/{}/{}/{}".format(obj_key, policy_key, "object")
+ , objects['objects'][obj_key], headers=auth_headers)
+ assert object_req.status == hug.HTTP_208
+
+ """ action category """
+ action_response = requests.get("{}/policies/{}/actions".format(get_configuration(
+ "management").get("url"), policy_key), headers=auth_headers)
+ actions = action_response.json()
+ action_key = next(iter(actions['actions']))
+ actions['actions'][action_key]['name'] = "updated_" + actions['actions'][action_key]['name']
+
+ action_req = hug.test.put(update, "/update/perimeter/{}/{}/{}".format(action_key, policy_key,
+ "action"),
+ actions['actions'][action_key], headers=auth_headers)
+ assert action_req.status == hug.HTTP_208
+
+
+def test_pipeline_update_perimeter_not_existed():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ policies = response.json()
+ policy_key = next(iter(policies['policies']))
+
+ subject_response = requests.get("{}/policies/{}/subjects".format(get_configuration(
+ "management").get("url"), policy_key), headers=auth_headers)
+ subjects = subject_response.json()
+ subj_key = next(iter(subjects['subjects']))
+ subjects['subjects'][subj_key]['name'] = "updated_" + subjects['subjects'][subj_key]['name']
+
+ subject_req = hug.test.put(update, "/update/perimeter/{}/{}/{}".format(uuid4().hex, policy_key,
+ "subject"),
+ subjects['subjects'][subj_key], headers=auth_headers)
+ assert subject_req.status == hug.HTTP_208
+
+ """ object category """
+ object_response = requests.get("{}/policies/{}/objects".format(get_configuration(
+ "management").get("url"), policy_key), headers=auth_headers)
+ objects = object_response.json()
+ obj_key = next(iter(objects['objects']))
+ objects['objects'][obj_key]['name'] = "updated_" + objects['objects'][obj_key]['name']
+
+ object_req = hug.test.put(update, "/update/perimeter/{}/{}/{}".format(uuid4().hex, policy_key, "object")
+ , objects['objects'][obj_key], headers=auth_headers)
+ assert object_req.status == hug.HTTP_208
+
+ """ action category """
+ action_response = requests.get("{}/policies/{}/actions".format(get_configuration(
+ "management").get("url"), policy_key), headers=auth_headers)
+ actions = action_response.json()
+ action_key = next(iter(actions['actions']))
+ actions['actions'][action_key]['name'] = "updated_" + actions['actions'][action_key]['name']
+
+ action_req = hug.test.put(update, "/update/perimeter/{}/{}/{}".format(uuid4().hex, policy_key,
+ "action"),
+ actions['actions'][action_key], headers=auth_headers)
+ assert action_req.status == hug.HTTP_208
+
+
+def test_pipeline_delete_perimeter_existed():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ policies_response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ policies = policies_response.json()
+ policy_key = next(iter(policies['policies']))
+
+ subject_response = requests.get("{}/policies/{}/subjects".format(get_configuration(
+ "management").get("url"), policy_key), headers=auth_headers)
+ subjects = subject_response.json()
+ subj_key = next(iter(subjects['subjects']))
+ subjects['subjects'][subj_key]['name'] = "updated_" + subjects['subjects'][subj_key]['name']
+
+ delete_subject_response = hug.test.delete(update, "/update/perimeter/{}/{}/{}".format(subj_key, policy_key,
+ "subject"),
+ headers=auth_headers)
+ assert delete_subject_response.status == hug.HTTP_202
+
+ object_response = requests.get("{}/policies/{}/objects".format(get_configuration(
+ "management").get("url"), policy_key), headers=auth_headers)
+ objects = object_response.json()
+ assert 'objects' in objects and len(objects['objects'])
+
+ for key in objects['objects']:
+ delete_object_response = hug.test.delete(update, "/update/perimeter/{}/{}/{}".format(key, policy_key, 'object'),
+ headers=auth_headers)
+ assert delete_object_response.status == hug.HTTP_202
+
+ action_response = requests.get("{}/policies/{}/actions".format(get_configuration(
+ "management").get("url"), policy_key), headers=auth_headers)
+ actions = action_response.json()
+ assert 'actions' in actions and len(actions['actions'])
+
+ for key in actions['actions']:
+ delete_action_response = hug.test.delete(update, "/update/perimeter/{}/{}/{}".format(key, policy_key, 'action'),
+ headers=auth_headers)
+ assert delete_action_response.status == hug.HTTP_202
+
+
+def test_pipeline_delete_assignments():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+ policies = response.json()
+ policy_id = next(iter(policies['policies']))
+
+ sub_assig_response = requests.get("{}/policies/{}/subject_assignments".format(get_configuration("management").get("url"),
+ policy_id), headers=auth_headers)
+
+ subject_assignments = sub_assig_response.json()
+ assert 'subject_assignments' in subject_assignments and len(
+ subject_assignments['subject_assignments'])
+ req = hug.test.delete(update,
+ "/update/assignment/{}/{}/".format(policy_id, "subject"),
+ headers=auth_headers)
+ assert req.status == hug.HTTP_202
+
+ obj_assig_response = requests.get("{}/policies/{}/object_assignments".format(get_configuration(
+ "management").get("url"), policy_id),
+ headers=auth_headers)
+ object_assignments = obj_assig_response.json()
+ assert 'object_assignments' in object_assignments and len(
+ object_assignments['object_assignments'])
+ req = hug.test.delete(update,
+ "/update/assignment/{}/{}/".format(policy_id, "object"),
+ headers=auth_headers)
+ assert req.status == hug.HTTP_202
+
+ action_assig_response = requests.get("{}/policies/{}/action_assignments".format(get_configuration(
+ "management").get("url"), policy_id),
+ headers=auth_headers)
+ action_assignments = action_assig_response.json()
+ assert 'action_assignments' in action_assignments and len(
+ action_assignments['action_assignments'])
+ req = hug.test.delete(update,
+ "/update/assignment/{}/{}/".format(policy_id, "action"),
+ headers=auth_headers)
+ assert req.status == hug.HTTP_202
+
+
+def test_pipeline_delete_rule():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ policy_response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+ policies = policy_response.json()
+ policy_id = next(iter(policies['policies']))
+
+ rules_response = requests.get(
+ "{}/policies/{}/rules".format(get_configuration("management").get("url"), policy_id),
+ headers=auth_headers)
+ rules = rules_response.json()
+
+ assert len(rules['rules']['rules'])
+ for i in range(0, len(rules['rules']['rules'])):
+ req = hug.test.delete(update, "/update/rule/{}/{}".format(policy_id, rules['rules'][
+ 'rules'][i]['id']), headers=auth_headers)
+ assert req.status == hug.HTTP_202
+
+
+def test_pipeline_update_model_existed():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ model_response = requests.get("{}/models".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ models = model_response.json()
+ key = next(iter(models['models']))
+ models['models'][key]['name'] = "new " + models['models'][key]['name']
+ req = hug.test.put(update, "/update/model/{}".format(key),
+ models['models'][key], headers=auth_headers)
+ assert req.status == hug.HTTP_208
+
+
+def test_pipeline_update_model_not_existed():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ model_response = requests.get("{}/models".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ models = model_response.json()
+ key = next(iter(models['models']))
+ models['models'][key]['name'] = "new " + models['models'][key]['name']
+ req = hug.test.put(update, "/update/model/{}".format(uuid4().hex),
+ models['models'][key], headers=auth_headers)
+ assert req.status == hug.HTTP_208
+
+
+def test_pipeline_delete_model_existed():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ model_response = requests.get("{}/models".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ models = model_response.json()
+ key = next(iter(models['models']))
+ req = hug.test.delete(update, "/update/model/{}".format(key), headers=auth_headers)
+ assert req.status == hug.HTTP_202
+
+
+def test_pipeline_delete_category():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ subject_cat_response = requests.get("{}/subject_categories".format(get_configuration(
+ "management").get("url")), headers=auth_headers)
+ subject_categories = subject_cat_response.json()
+ category_id = next(iter(subject_categories['subject_categories']))
+ req = hug.test.delete(update, "/update/meta_data/{}/{}".format(category_id, 'subject'),
+ headers=auth_headers)
+ assert req.status == hug.HTTP_202
+
+ action_cat_response = requests.get("{}/action_categories".format(get_configuration(
+ "management").get("url")),
+ headers=auth_headers)
+ action_categories = action_cat_response.json()
+ category_id = next(iter(action_categories['action_categories']))
+ req = hug.test.delete(update, "/update/meta_data/{}/{}".format(category_id, 'action'),
+ headers=auth_headers)
+ assert req.status == hug.HTTP_202
+
+ obj_cat_response = requests.get("{}/object_categories".format(get_configuration(
+ "management").get("url")),
+ headers=auth_headers)
+ object_categories = obj_cat_response.json()
+ category_id = next(iter(object_categories['object_categories']))
+ req = hug.test.delete(update, "/update/meta_data/{}/{}".format(category_id, 'object'),
+ headers=auth_headers)
+ assert req.status == hug.HTTP_202
+
+
+def test_pipeline_update_meta_rule_existed():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ meta_rules_response = requests.get("{}/meta_rules".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ meta_rules = meta_rules_response.json()
+ key = next(iter(meta_rules['meta_rules']))
+ meta_rules['meta_rules'][key]['name'] = "new " + meta_rules['meta_rules'][key]['name']
+ req = hug.test.put(update, "/update/meta_rule/{}".format(key),
+ meta_rules['meta_rules'][key], headers=auth_headers)
+ assert req.status == hug.HTTP_208
+
+
+def test_pipeline_update_meta_rule_not_existed():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ meta_rules_response = requests.get("{}/meta_rules".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ meta_rules = meta_rules_response.json()
+ key = next(iter(meta_rules['meta_rules']))
+ meta_rules['meta_rules'][key]['name'] = "new " + meta_rules['meta_rules'][key]['name']
+ req = hug.test.put(update, "/update/meta_rule/{}".format(uuid4().hex),
+ meta_rules['meta_rules'][key], headers=auth_headers)
+ assert req.status == hug.HTTP_208
+
+
+def test_pipeline_delete_meta_rule():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ meta_rules_response = requests.get("{}/meta_rules".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ meta_rules = meta_rules_response.json()
+ key = next(iter(meta_rules['meta_rules']))
+ req = hug.test.delete(update, "/update/meta_rule/{}".format(key), headers=auth_headers)
+ assert req.status == hug.HTTP_202
+
+
+def test_pipeline_delete_data():
+ from moon_engine.api.pipeline import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_engine.api.configuration import get_configuration
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ policies_response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ policies = policies_response.json()
+ policy_id = next(iter(policies['policies']))
+
+ subject_data_response = requests.get(
+ "{}/policies/{}/subject_data".format(get_configuration("management").get("url"), policy_id),
+ headers=auth_headers)
+ subject_data_id = next(iter(subject_data_response.json()['subject_data'][0]['data']))
+ delete_subject_data_response = hug.test.delete(update, "/update/data/{}/{}".format(subject_data_id, 'subject'),
+ headers=auth_headers)
+ assert delete_subject_data_response.status == hug.HTTP_202
+
+ object_data_response = requests.get(
+ "{}/policies/{}/object_data".format(get_configuration("management").get("url"), policy_id),
+ headers=auth_headers)
+ object_data_id = next(iter(object_data_response.json()['object_data'][0]['data']))
+ delete_object_data_response = hug.test.delete(update, "/update/data/{}/{}".format(object_data_id, 'object'),
+ headers=auth_headers)
+ assert delete_object_data_response.status == hug.HTTP_202
+
+ action_data_response = requests.get(
+ "{}/policies/{}/action_data".format(get_configuration("management").get("url"), policy_id),
+ headers=auth_headers)
+ action_data_id = next(iter(action_data_response.json()['action_data'][0]['data']))
+ delete_action_data_response = hug.test.delete(update, "/update/data/{}/{}".format(action_data_id, 'action'),
+ headers=auth_headers)
+ assert delete_action_data_response.status == hug.HTTP_202
+
+
+# def test_pipeline_delete_attributes():
+# from moon_engine.api.pipeline import update
+# from moon_utilities.auth_functions import get_api_key_for_user
+# from moon_engine.api.configuration import get_configuration
+#
+# auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+#
+# attributes_response = requests.get(
+# "{}/attributes".format(get_configuration("management").get("url")),
+# headers=auth_headers)
+#
+# attributes = attributes_response.json()
+# key = next(iter(attributes['attributes']))
+# req = hug.test.delete(update, "/update/attributes/{}".format(key), headers=auth_headers)
+# assert req.status == hug.HTTP_202
+
+
diff --git a/moon_engine/tests/unit_python/api/test_status.py b/moon_engine/tests/unit_python/api/test_status.py
new file mode 100644
index 00000000..e38f35e6
--- /dev/null
+++ b/moon_engine/tests/unit_python/api/test_status.py
@@ -0,0 +1,21 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import hug
+
+
+def test_status(benchmark):
+ from moon_engine.api import status
+
+ # Fixme: Add tests on enforce function to have a benchmark on enforce rapidity
+ req = benchmark(hug.test.get, status, "/status")
+ assert isinstance(req.data, dict)
diff --git a/moon_engine/tests/unit_python/api/wrapper/__init__.py b/moon_engine/tests/unit_python/api/wrapper/__init__.py
new file mode 100644
index 00000000..582be686
--- /dev/null
+++ b/moon_engine/tests/unit_python/api/wrapper/__init__.py
@@ -0,0 +1,11 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
diff --git a/moon_engine/tests/unit_python/api/wrapper/test_oslo_wrapper.py b/moon_engine/tests/unit_python/api/wrapper/test_oslo_wrapper.py
new file mode 100644
index 00000000..770e9bb6
--- /dev/null
+++ b/moon_engine/tests/unit_python/api/wrapper/test_oslo_wrapper.py
@@ -0,0 +1,209 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import hug
+import json
+import requests
+
+
+def get_subject_object_action():
+ from moon_engine.api.configuration import get_configuration
+ from moon_cache.cache import Cache
+ from moon_utilities.auth_functions import get_api_key_for_user
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"),
+ api_key=get_api_key_for_user("admin"))
+
+ # Note: patching the cache for the test
+ CACHE.add_pipeline("b3d3e18a-bf33-40e8-b635-fd49e6634ccd", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ CACHE.add_pipeline("f8f49a77-9ceb-47b3-ac81-0f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ response = requests.get("{}/pdp".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+ pdp = response.json()
+ pdp_id = next(iter(pdp['pdps']))
+ policy_id = pdp['pdps'][pdp_id].get("security_pipeline")[0]
+ project_id = pdp['pdps'][pdp_id].get("vim_project_id")
+
+ # response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ # headers=auth_headers)
+ # policies = response.json()
+ # policy_id = next(iter(policies['policies']))
+
+ response = requests.get("{}/policies/{}/subjects".format(
+ get_configuration("management").get("url"), policy_id), headers=auth_headers)
+ subjects = response.json()
+
+ response = requests.get("{}/policies/{}/objects".format(
+ get_configuration("management").get("url"), policy_id), headers=auth_headers)
+ objects = response.json()
+
+ response = requests.get("{}/policies/{}/actions".format(
+ get_configuration("management").get("url"), policy_id), headers=auth_headers)
+ actions = response.json()
+ return subjects, objects, actions, project_id
+
+
+def test_post_authz():
+ from moon_engine.plugins import oslowrapper
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"), api_key=get_api_key_for_user(
+ "admin"))
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/pdp".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+ pdp = response.json()
+ pdp_id = next(iter(pdp['pdps']))
+ policy_id = pdp['pdps'][pdp_id].get("security_pipeline")[0]
+ project_id = pdp['pdps'][pdp_id].get("vim_project_id")
+
+ response = requests.get("{}/policies/{}/subjects".format(get_configuration(
+ "management").get("url"), policy_id), headers=auth_headers)
+ subjects = response.json()
+
+ response = requests.get("{}/policies/{}/objects".format(get_configuration(
+ "management").get("url"), policy_id), headers=auth_headers)
+ objects = response.json()
+
+ response = requests.get("{}/policies/{}/actions".format(get_configuration(
+ "management").get("url"), policy_id), headers=auth_headers)
+ actions = response.json()
+
+ subjects_name = subjects['subjects'][next(iter(subjects['subjects']))]['name']
+ objects_name = objects['objects'][next(iter(objects['objects']))]['name']
+ actions_name = actions['actions'][next(iter(actions['actions']))]['name']
+
+ # Note: patching the cache for the test
+ from moon_cache.cache import Cache
+ CACHE = Cache.getInstance()
+ CACHE.add_pipeline("b3d3e18abf3340e8b635fd49e6634ccd", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ CACHE.add_pipeline("f8f49a779ceb47b3ac810f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+
+ _target = {
+ 'target': {
+ "name": objects_name,
+ },
+ "project_id": project_id,
+ "user_id": subjects_name
+ }
+ _credentials = {
+ "project_id": project_id,
+ "user_id": subjects_name
+ }
+
+ authz_data = {
+ 'rule': actions_name,
+ 'target': json.dumps(_target),
+ 'credentials': json.dumps(_credentials)}
+ req = hug.test.post(oslowrapper, "/authz/oslo", authz_data)
+ assert req.status == hug.HTTP_200
+
+
+def test_authz_true():
+ from moon_engine.plugins import oslowrapper
+
+ subjects, objects, actions, project_id = get_subject_object_action()
+
+ _target = {
+ 'target': {
+ "name": objects['objects'][next(iter(objects['objects']))]['name'],
+ },
+ "project_id": project_id,
+ "user_id": subjects['subjects'][next(iter(subjects['subjects']))]['name']
+ }
+ _credentials = {
+ "project_id": project_id,
+ "user_id": subjects['subjects'][next(iter(subjects['subjects']))]['name']
+ }
+ authz_data = {
+ 'rule': actions['actions'][next(iter(actions['actions']))]['name'],
+ 'target': json.dumps(_target),
+ 'credentials': json.dumps(_credentials)}
+
+ req = hug.test.post(oslowrapper, "/authz/oslo", body=authz_data)
+
+ assert req.status == hug.HTTP_200 and req.data is not None and req.data
+
+
+def test_authz_error_response_code():
+ from moon_engine.plugins import oslowrapper
+
+ subjects, objects, actions, project_id = get_subject_object_action()
+
+ _target = {
+ 'target': {
+ "name": objects['objects'][next(iter(objects['objects']))]['name'],
+ },
+ "project_id": "a64beb1cc224474fb4badd431f3e7106", # invalid project id
+ "user_id": subjects['subjects'][next(iter(subjects['subjects']))]['name']
+ }
+ authz_data = {
+ 'rule': actions['actions'][next(iter(actions['actions']))]['name'],
+ 'target': json.dumps(_target),
+ 'credentials': 'null'}
+
+ print(authz_data)
+ req = hug.test.post(oslowrapper, "/authz/oslo", body=authz_data)
+
+ assert req.status != hug.HTTP_200
+
+# def test_authz_error_no_interface_key(context):
+# import moon_wrapper.server
+# server = moon_wrapper.server.main()
+# client = server.app.test_client()
+# _target = {
+# 'target': {
+# "name": context.get('object_name'),
+# },
+# "project_id": context.get('project_with_no_interface_key'),
+# "user_id": context.get('subject_name')
+# }
+# authz_data = {
+# 'rule': context.get('action_name'),
+# 'target': json.dumps(_target),
+# 'credentials': 'null'}
+# req = client.post("/authz/oslo", data=json.dumps(authz_data))
+#
+# assert req.data == b"False"
diff --git a/moon_engine/tests/unit_python/api/wrapper/test_pipeline.py b/moon_engine/tests/unit_python/api/wrapper/test_pipeline.py
new file mode 100644
index 00000000..ed16883d
--- /dev/null
+++ b/moon_engine/tests/unit_python/api/wrapper/test_pipeline.py
@@ -0,0 +1,32 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import hug
+
+
+def test_get_pipelines():
+ from moon_engine.api.wrapper.api import pipeline
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"), api_key=get_api_key_for_user(
+ "admin"))
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+ req = hug.test.get(pipeline, "/pipelines", headers=auth_headers )
+ assert req.status == hug.HTTP_200
+ assert isinstance(req.data, dict)
+ assert "pipelines" in req.data
diff --git a/moon_engine/tests/unit_python/api/wrapper/test_update.py b/moon_engine/tests/unit_python/api/wrapper/test_update.py
new file mode 100644
index 00000000..75e7ef2d
--- /dev/null
+++ b/moon_engine/tests/unit_python/api/wrapper/test_update.py
@@ -0,0 +1,602 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import hug
+import requests
+
+
+def test_wrapper_update_policy_existed():
+ from moon_engine.api.wrapper.api import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"),
+ api_key=get_api_key_for_user("admin"))
+
+ CACHE.add_pipeline("eac0ecd09ceb47b3ac810f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ policies = response.json()
+ key = next(iter(policies['policies']))
+ policies['policies'][key]['name'] = "new " + policies['policies'][key]['name']
+ req = hug.test.put(update, "/update/policy/{}".format(key),
+ policies['policies'][key], headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+
+def test_wrapper_delete_policy():
+ from moon_engine.api.wrapper.api import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"),
+ api_key=get_api_key_for_user("admin"))
+
+ CACHE.add_pipeline("eac0ecd09ceb47b3ac810f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+ policies = response.json()
+ key = next(iter(policies['policies']))
+ req = hug.test.delete(update, "/update/policy/{}".format(key),
+ headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+
+def test_wrapper_update_policy_not_existed():
+ from moon_engine.api.wrapper.api import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"),
+ api_key=get_api_key_for_user("admin"))
+
+ CACHE.add_pipeline("eac0ecd09ceb47b3ac810f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+ policies = response.json()
+ key = next(iter(policies['policies']))
+ policies['policies'][key]['name'] = "new " + policies['policies'][key]['name']
+ req = hug.test.put(update, "/update/policy/{}".format("eac0ecd09ceb47b3ac810f01ef71b4e0"),
+ policies['policies'][key], headers=auth_headers)
+ assert req.status == hug.HTTP_208
+
+
+def test_wrapper_update_pdp_existed():
+ from moon_engine.api.wrapper.api import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"), api_key=get_api_key_for_user(
+ "admin"))
+
+ CACHE.add_pipeline("eac0ecd09ceb47b3ac810f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/pdp".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ pdps = response.json()
+ key = next(iter(pdps['pdps']))
+ pdps['pdps'][key]['name'] = "new " + pdps['pdps'][key]['name']
+ req = hug.test.put(update, "/update/pdp/{}".format(key),
+ pdps['pdps'][key], headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+
+def test_wrapper_delete_pdp():
+ from moon_engine.api.wrapper.api import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"), api_key=get_api_key_for_user(
+ "admin"))
+
+ CACHE.add_pipeline("eac0ecd09ceb47b3ac810f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/pdp".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ pdps = response.json()
+ key = next(iter(pdps['pdps']))
+ req = hug.test.delete(update, "/update/pdp/{}".format(key), headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+
+def test_wrapper_delete_assignments():
+ from moon_engine.api.wrapper.api import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"), api_key=get_api_key_for_user(
+ "admin"))
+
+ CACHE.add_pipeline("eac0ecd09ceb47b3ac810f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+ policies = response.json()
+ policy_id = next(iter(policies['policies']))
+
+ response = requests.get("{}/policies/{}/subject_assignments".format(get_configuration(
+ "management").get("url"), policy_id),
+ headers=auth_headers)
+ subject_assignments = response.json()
+ assert 'subject_assignments' in subject_assignments and len(
+ subject_assignments['subject_assignments'])
+ req = hug.test.delete(update,
+ "/update/assignment/{}/{}/".format(policy_id, "subject"),
+ headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+ response = requests.get("{}/policies/{}/object_assignments".format(get_configuration(
+ "management").get("url"), policy_id),
+ headers=auth_headers)
+ object_assignments = response.json()
+ assert 'object_assignments' in object_assignments and len(
+ object_assignments['object_assignments'])
+ req = hug.test.delete(update,
+ "/update/assignment/{}/{}/".format(policy_id, "object"),
+ headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+ response = requests.get("{}/policies/{}/action_assignments".format(get_configuration(
+ "management").get("url"), policy_id),
+ headers=auth_headers)
+ action_assignments = response.json()
+ assert 'action_assignments' in action_assignments and len(
+ action_assignments['action_assignments'])
+ req = hug.test.delete(update,
+ "/update/assignment/{}/{}/".format(policy_id, "action"),
+ headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+
+def test_wrapper_update_perimeter_existed():
+ from moon_engine.api.wrapper.api import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"), api_key=get_api_key_for_user(
+ "admin"))
+
+ CACHE.add_pipeline("eac0ecd09ceb47b3ac810f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ policies = response.json()
+ policy_id = next(iter(policies['policies']))
+
+ response = requests.get("{}/policies/{}/subjects".format(get_configuration(
+ "management").get("url"), policy_id), headers=auth_headers)
+ subjects = response.json()
+ assert 'subjects' in subjects and len(subjects['subjects'])
+
+ for key in subjects['subjects']:
+ subjects['subjects'][key]['name'] = "new " + subjects['subjects'][key]['name']
+ req = hug.test.put(update, "/update/perimeter/{}/{}/{}".format(key, policy_id, 'subject'),
+ subjects['subjects'][key], headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+ response = requests.get("{}/policies/{}/objects".format(get_configuration(
+ "management").get("url"), policy_id), headers=auth_headers)
+ objects = response.json()
+ assert 'objects' in objects and len(objects['objects'])
+
+ for key in objects['objects']:
+ objects['objects'][key]['name'] = "new " + objects['objects'][key]['name']
+ req = hug.test.put(update, "/update/perimeter/{}/{}/{}".format(key, policy_id, 'object'),
+ objects['objects'][key], headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+ response = requests.get("{}/policies/{}/actions".format(get_configuration(
+ "management").get("url"), policy_id), headers=auth_headers)
+ actions = response.json()
+ assert 'actions' in actions and len(actions['actions'])
+
+ for key in actions['actions']:
+ actions['actions'][key]['name'] = "new " + actions['actions'][key]['name']
+ req = hug.test.put(update, "/update/perimeter/{}/{}/{}".format(key, policy_id, 'action'),
+ actions['actions'][key], headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+
+def test_wrapper_delete_perimeter():
+ from moon_engine.api.wrapper.api import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"),
+ api_key=get_api_key_for_user("admin"))
+
+ CACHE.add_pipeline("eac0ecd09ceb47b3ac810f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ policies = response.json()
+ policy_id = next(iter(policies['policies']))
+
+ response = requests.get("{}/policies/{}/subjects".format(get_configuration(
+ "management").get("url"), policy_id), headers=auth_headers)
+ subjects = response.json()
+ assert 'subjects' in subjects and len(subjects['subjects'])
+
+ for key in subjects['subjects']:
+ req = hug.test.delete(update,
+ "/update/perimeter/{}/{}/{}".format(key, policy_id, 'subject'),
+ headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+ response = requests.get("{}/policies/{}/objects".format(get_configuration(
+ "management").get("url"), policy_id), headers=auth_headers)
+ objects = response.json()
+ assert 'objects' in objects and len(objects['objects'])
+
+ for key in objects['objects']:
+ req = hug.test.delete(update, "/update/perimeter/{}/{}/{}".format(key, policy_id, 'object'),
+ headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+ response = requests.get("{}/policies/{}/actions".format(get_configuration(
+ "management").get("url"), policy_id), headers=auth_headers)
+ actions = response.json()
+ assert 'actions' in actions and len(actions['actions'])
+
+ for key in actions['actions']:
+ req = hug.test.delete(update, "/update/perimeter/{}/{}/{}".format(key, policy_id, 'action'),
+ headers=auth_headers)
+
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+
+def test_wrapper_delete_rule():
+ from moon_engine.api.wrapper.api import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"), api_key=get_api_key_for_user(
+ "admin"))
+
+ CACHE.add_pipeline("eac0ecd09ceb47b3ac810f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+ policies = response.json()
+ policy_id = next(iter(policies['policies']))
+
+ response = requests.get(
+ "{}/policies/{}/rules".format(get_configuration("management").get("url"), policy_id),
+ headers=auth_headers)
+ rules = response.json()
+ assert 'rules' in rules and 'policy_id' in rules['rules']
+ assert rules['rules']['policy_id'] == policy_id
+ assert len(rules['rules']['rules'])
+ for i in range(0, len(rules['rules']['rules'])):
+ req = hug.test.delete(update, "/update/rule/{}/{}".format(policy_id,
+ rules['rules']['rules'][i]['id']), headers=auth_headers)
+
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+
+def test_wrapper_update_model_existed():
+ from moon_engine.api.wrapper.api import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"), api_key=get_api_key_for_user(
+ "admin"))
+
+ CACHE.add_pipeline("eac0ecd09ceb47b3ac810f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/models".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ models = response.json()
+ key = next(iter(models['models']))
+ models['models'][key]['name'] = "new " + models['models'][key]['name']
+ req = hug.test.put(update, "/update/model/{}".format(key),
+ models['models'][key], headers=auth_headers)
+
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+
+def test_wrapper_delete_model():
+ from moon_engine.api.wrapper.api import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"), api_key=get_api_key_for_user(
+ "admin"))
+
+ CACHE.add_pipeline("eac0ecd09ceb47b3ac810f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/models".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ models = response.json()
+ key = next(iter(models['models']))
+ req = hug.test.delete(update, "/update/model/{}".format(key), headers=auth_headers)
+
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+
+def test_wrapper_delete_category():
+ from moon_engine.api.wrapper.api import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"), api_key=get_api_key_for_user(
+ "admin"))
+
+ CACHE.add_pipeline("eac0ecd09ceb47b3ac810f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/subject_categories".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+ subject_categories = response.json()
+ category_id = next(iter(subject_categories['subject_categories']))
+ req = hug.test.delete(update, "/update/meta_data/{}/{}".format(category_id, 'subject'),
+ headers=auth_headers)
+
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+ response = requests.get("{}/action_categories".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+ action_categories = response.json()
+ category_id = next(iter(action_categories['action_categories']))
+ req = hug.test.delete(update, "/update/meta_data/{}/{}".format(category_id, 'action'),
+ headers=auth_headers)
+
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+ response = requests.get("{}/object_categories".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+ object_categories = response.json()
+ category_id = next(iter(object_categories['object_categories']))
+ req = hug.test.delete(update, "/update/meta_data/{}/{}".format(category_id, 'object'),
+ headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+
+def test_wrapper_update_meta_rule_existed():
+ from moon_engine.api.wrapper.api import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"), api_key=get_api_key_for_user(
+ "admin"))
+
+ CACHE.add_pipeline("eac0ecd09ceb47b3ac810f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/meta_rules".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ meta_rules = response.json()
+ key = next(iter(meta_rules['meta_rules']))
+ meta_rules['meta_rules'][key]['name'] = "new " + meta_rules['meta_rules'][key]['name']
+ req = hug.test.put(update, "/update/meta_rule/{}".format(key),
+ meta_rules['meta_rules'][key], headers=auth_headers)
+
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+
+def test_wrapper_delete_meta_rule():
+ from moon_engine.api.wrapper.api import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"), api_key=get_api_key_for_user(
+ "admin"))
+
+ CACHE.add_pipeline("eac0ecd09ceb47b3ac810f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/meta_rules".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ meta_rules = response.json()
+ key = next(iter(meta_rules['meta_rules']))
+ req = hug.test.delete(update, "/update/meta_rule/{}".format(key), headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+
+def test_wrapper_delete_data():
+ from moon_engine.api.wrapper.api import update
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"), api_key=get_api_key_for_user(
+ "admin"))
+
+ CACHE.add_pipeline("eac0ecd09ceb47b3ac810f01ef71b4e0", {
+ "name": "test",
+ "description": "test",
+ "host": "127.0.0.1",
+ "port": 20000,
+ })
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/policies".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ policies = response.json()
+ policy_id = next(iter(policies['policies']))
+
+ response = requests.get(
+ "{}/policies/{}/subject_data".format(get_configuration("management").get("url"), policy_id),
+ headers=auth_headers)
+ subject_data_id = next(iter(response.json()['subject_data'][0]['data']))
+ req = hug.test.delete(update, "/update/data/{}/{}".format(subject_data_id,'subject'),
+ headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+ response = requests.get(
+ "{}/policies/{}/object_data".format(get_configuration("management").get("url"), policy_id),
+ headers=auth_headers)
+ object_data_id = next(iter(response.json()['object_data'][0]['data']))
+ req = hug.test.delete(update, "/update/data/{}/{}".format(object_data_id, 'object'),
+ headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
+
+ response = requests.get(
+ "{}/policies/{}/action_data".format(get_configuration("management").get("url"), policy_id),
+ headers=auth_headers)
+ action_data_id = next(iter(response.json()['action_data'][0]['data']))
+ req = hug.test.delete(update, "/update/data/{}/{}".format(action_data_id, 'action'),
+ headers=auth_headers)
+ assert (req.status == hug.HTTP_202 or req.status == hug.HTTP_200)
diff --git a/moon_engine/tests/unit_python/api/wrapper/test_wrapper_authz.py b/moon_engine/tests/unit_python/api/wrapper/test_wrapper_authz.py
new file mode 100644
index 00000000..c4df249f
--- /dev/null
+++ b/moon_engine/tests/unit_python/api/wrapper/test_wrapper_authz.py
@@ -0,0 +1,57 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import hug
+import requests
+
+
+def test_wrapper_get_authz():
+ from moon_engine.api.wrapper.api import authz
+ from moon_utilities.auth_functions import get_api_key_for_user
+ from moon_cache.cache import Cache
+ from moon_engine.api.configuration import get_configuration
+ CACHE = Cache.getInstance(manager_url=get_configuration("management").get("url"),
+ incremental=get_configuration("incremental_updates"),
+ manager_api_key=get_configuration("api_token"))
+
+ CACHE.set_current_server(url=get_configuration("management").get("url"),
+ api_key=get_api_key_for_user("admin"))
+
+ auth_headers = {"X-Api-Key": get_api_key_for_user("admin")}
+
+ response = requests.get("{}/pdp".format(get_configuration("management").get("url")),
+ headers=auth_headers)
+
+ pdp = response.json()
+ pdp_id = next(iter(pdp['pdps']))
+ policy_id = pdp['pdps'][pdp_id].get("security_pipeline")[0]
+ project_id = pdp['pdps'][pdp_id].get("vim_project_id")
+
+ response = requests.get("{}/policies/{}/subjects".format(get_configuration(
+ "management").get("url"), policy_id), headers=auth_headers)
+ subjects = response.json()
+
+ response = requests.get("{}/policies/{}/objects".format(get_configuration(
+ "management").get("url"), policy_id), headers=auth_headers)
+ objects = response.json()
+
+ response = requests.get("{}/policies/{}/actions".format(get_configuration(
+ "management").get("url"), policy_id), headers=auth_headers)
+ actions = response.json()
+
+ subjects_name = subjects['subjects'][next(iter(subjects['subjects']))]['name']
+ objects_name = objects['objects'][next(iter(objects['objects']))]['name']
+ actions_name = actions['actions'][next(iter(actions['actions']))]['name']
+
+ req = hug.test.get(authz, "/authz/{}/{}/{}/{}".format(
+ project_id, subjects_name, objects_name, actions_name))
+ assert req.status == hug.HTTP_200
diff --git a/moon_engine/tests/unit_python/conftest.py b/moon_engine/tests/unit_python/conftest.py
new file mode 100644
index 00000000..6b7ab339
--- /dev/null
+++ b/moon_engine/tests/unit_python/conftest.py
@@ -0,0 +1,60 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+import os
+import pytest
+import requests_mock
+import mock_require_data
+
+
+@pytest.fixture(autouse=True)
+def no_requests(monkeypatch):
+ """ Modify the response from Requests module
+ """
+ global manager_api_key
+ with requests_mock.Mocker(real_http=True) as m:
+ try:
+ os.remove("/tmp/database_test.db")
+ except FileNotFoundError:
+ pass
+ try:
+ os.remove("/tmp/moon.pwd")
+ except FileNotFoundError:
+ pass
+ print("Configure...")
+ mock_require_data.register_require_data(m)
+ #from moon_engine.api.configuration import set_configuration
+ #set_configuration(yaml.safe_load(__CONF))
+ print("Create a new user")
+ from moon_utilities.auth_functions import add_user, init_db, get_api_key_for_user
+ init_db("/tmp/moon.pwd")
+ try:
+ user = add_user("admin", "admin")
+ manager_api_key = user["api_key"]
+ except KeyError:
+ print("User already exists")
+ manager_api_key = get_api_key_for_user("admin")
+ print("Initialize the database")
+ # init_database()
+ # from moon_manager import db_driver
+ # db_driver.init()
+
+ # mock_engine.register_engine(m)
+ # mock_slaves.register_slaves(m)
+
+ # from moon_manager.pip_driver import InformationManager
+ # InformationManager.set_auth()
+
+ from moon_cache.cache import Cache
+ Cache.deleteInstance()
+ yield m
+ # InformationManager.unset_auth()
diff --git a/moon_engine/tests/unit_python/mock_require_data.py b/moon_engine/tests/unit_python/mock_require_data.py
new file mode 100644
index 00000000..63557285
--- /dev/null
+++ b/moon_engine/tests/unit_python/mock_require_data.py
@@ -0,0 +1,762 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+
+def register_require_data(m):
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:20000/authz/testuser/vm1/boot',
+ json={},
+ status_code=204
+ )
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:10000/authz/a64beb1cc224474fb4badd43173e7101/testuser/vm1/boot',
+ json={},
+ status_code=204
+ )
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/pdp',
+ json={
+ "pdps": {
+ "b3d3e18abf3340e8b635fd49e6634ccd": {
+ "description": "test",
+ "security_pipeline": [
+ "f8f49a779ceb47b3ac810f01ef71b4e0"
+ ],
+ "name": "pdp_rbac",
+ "vim_project_id": "a64beb1cc224474fb4badd43173e7101"
+ },
+ "eac0ecd09ceb47b3ac810f01ef71b4e0": {
+ "description": "test",
+ "security_pipeline": [
+ "f8f49a779ceb47b3ac810f01ef71b4e0"
+ ],
+ "name": "pdp_rbac2",
+ "vim_project_id": "z64beb1cc224474fb4badd43173e7108"
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/pdp/b3d3e18abf3340e8b635fd49e6634ccd',
+ json={
+ "pdps": {
+ "b3d3e18abf3340e8b635fd49e6634ccd": {
+ "description": "test",
+ "security_pipeline": [
+ "f8f49a779ceb47b3ac810f01ef71b4e0"
+ ],
+ "name": "pdp_rbac",
+ "vim_project_id": "a64beb1cc224474fb4badd43173e7101"
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/pdp/eac0ecd09ceb47b3ac810f01ef71b4e0',
+ json={
+ "pdps": {
+ "eac0ecd09ceb47b3ac810f01ef71b4e0": {
+ "description": "test",
+ "security_pipeline": [
+ "f8f49a779ceb47b3ac810f01ef71b4e0"
+ ],
+ "name": "pdp_rbac",
+ "vim_project_id": "z64beb1cc224474fb4badd43173e7108"
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/policies',
+ json={
+ "policies": {
+ "f8f49a779ceb47b3ac810f01ef71b4e0": {
+ "name": "RBAC policy example",
+ "model_id": "cd923d8633ff4978ab0e99938f5153d6",
+ "description": "test",
+ "genre": "authz"
+ }
+ }
+ }
+ )
+
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/policies/f8f49a779ceb47b3ac810f01ef71b4e0',
+ json={
+ "f8f49a779ceb47b3ac810f01ef71b4e0": {
+ "name": "RBAC policy example",
+ "model_id": "cd923d8633ff4978ab0e99938f5153d6",
+ "description": "test",
+ "genre": "authz"
+ }
+ }
+ )
+
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/models',
+ json={
+ "models": {
+ "cd923d8633ff4978ab0e99938f5153d6": {
+ "name": "RBAC",
+ "meta_rules": [
+ "4700cc0e38ef4cffa34025602d267c9e"
+ ],
+ "description": "test"
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/meta_rules',
+ json={
+ "meta_rules": {
+ "4700cc0e38ef4cffa34025602d267c9e": {
+ "subject_categories": [
+ "14e6ae0ba34d458b876c791b73aa17bd"
+ ],
+ "action_categories": [
+ "241a2a791554421a91c9f1bc564aa94d"
+ ],
+ "description": "",
+ "name": "rbac",
+ "object_categories": [
+ "6d48500f639d4c2cab2b1f33ef93a1e8"
+ ]
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/subject_categories',
+ json={
+ 'subject_categories':
+ {
+ '14e6ae0ba34d458b876c791b73aa17bd':
+ {
+ 'id': '14e6ae0ba34d458b876c791b73aa17bd',
+ 'name': 'testuser14e6ae0ba34d458b876c791b73aa17bd',
+ 'description': 'description of testuser14e6ae0ba34d458b876c791b73aa17bd'
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/action_categories',
+ json={
+ 'action_categories':
+ {
+ '241a2a791554421a91c9f1bc564aa94d':
+ {
+ 'id': '241a2a791554421a91c9f1bc564aa94d',
+ 'name': 'testuser241a2a791554421a91c9f1bc564aa94d',
+ 'description': 'description of testuser241a2a791554421a91c9f1bc564aa94d'
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/object_categories',
+ json={
+ 'object_categories':
+ {
+ '6d48500f639d4c2cab2b1f33ef93a1e8':
+ {
+ 'id': '6d48500f639d4c2cab2b1f33ef93a1e8',
+ 'name': '6d48500f639d4c2cab2b1f33ef93a1e8',
+ 'description': 'description of testuser6d48500f639d4c2cab2b1f33ef93a1e8'
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/policies/f8f49a779ceb47b3ac810f01ef71b4e0/subjects',
+ json={
+ "subjects": {
+ "89ba91c18dd54abfbfde7a66936c51a6": {
+ "description": "test",
+ "policy_list": [
+ "f8f49a779ceb47b3ac810f01ef71b4e0",
+ "636cd473324f4c0bbd9102cb5b62a16d"
+ ],
+ "name": "testuser",
+ "email": "mail",
+ "id": "89ba91c18dd54abfbfde7a66936c51a6",
+ "extra": {}
+ },
+ "31fd15ad14784a9696fcc887dddbfaf9": {
+ "description": "test",
+ "policy_list": [
+ "f8f49a779ceb47b3ac810f01ef71b4e0",
+ "636cd473324f4c0bbd9102cb5b62a16d"
+ ],
+ "name": "adminuser",
+ "email": "mail",
+ "id": "31fd15ad14784a9696fcc887dddbfaf9",
+ "extra": {}
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/policies/f8f49a779ceb47b3ac810f01ef71b4e0/objects',
+ json={
+ "objects": {
+ "67b8008a3f8d4f8e847eb628f0f7ca0e": {
+ "name": "vm1",
+ "description": "test",
+ "id": "67b8008a3f8d4f8e847eb628f0f7ca0e",
+ "extra": {},
+ "policy_list": [
+ "f8f49a779ceb47b3ac810f01ef71b4e0",
+ "636cd473324f4c0bbd9102cb5b62a16d"
+ ]
+ },
+ "9089b3d2ce5b4e929ffc7e35b55eba1a": {
+ "name": "vm0",
+ "description": "test",
+ "id": "9089b3d2ce5b4e929ffc7e35b55eba1a",
+ "extra": {},
+ "policy_list": [
+ "f8f49a779ceb47b3ac810f01ef71b4e0",
+ "636cd473324f4c0bbd9102cb5b62a16d"
+ ]
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/policies/f8f49a779ceb47b3ac810f01ef71b4e0/actions',
+ json={
+ "actions": {
+ "cdb3df220dc05a6ea3334b994827b068": {
+ "name": "boot",
+ "description": "test",
+ "id": "cdb3df220dc05a6ea3334b994827b068",
+ "extra": {},
+ "policy_list": [
+ "f8f49a779ceb47b3ac810f01ef71b4e0",
+ "636cd473324f4c0bbd9102cb5b62a16d"
+ ]
+ },
+ "9f5112afe9b34a6c894eb87246ccb7aa": {
+ "name": "start",
+ "description": "test",
+ "id": "9f5112afe9b34a6c894eb87246ccb7aa",
+ "extra": {},
+ "policy_list": [
+ "f8f49a779ceb47b3ac810f01ef71b4e0",
+ "636cd473324f4c0bbd9102cb5b62a16d"
+ ]
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET',
+ 'http://127.0.0.1:8000/policies/f8f49a779ceb47b3ac810f01ef71b4e0/subject_assignments',
+ json={
+ "subject_assignments": {
+ "826c1156d0284fc9b4b2ddb279f63c52": {
+ "category_id": "14e6ae0ba34d458b876c791b73aa17bd",
+ "assignments": [
+ "24ea95256c5f4c888c1bb30a187788df",
+ "6b227b77184c48b6a5e2f3ed1de0c02a",
+ "31928b17ec90438ba5a2e50ae7650e63",
+ "4e60f554dd3147af87595fb6b37dcb13",
+ "7a5541b63a024fa88170a6b59f99ccd7",
+ "dd2af27812f742029d289df9687d6126",
+ "4d4b3c3ba45e48589b382a6e369bafbe",
+ ],
+ "id": "826c1156d0284fc9b4b2ddb279f63c52",
+ "subject_id": "89ba91c18dd54abfbfde7a66936c51a6",
+ "policy_id": "f8f49a779ceb47b3ac810f01ef71b4e0"
+ },
+ "7407ffc1232944279b0cbcb0847c86f7": {
+ "category_id": "315072d40d774c43a89ff33937ed24eb",
+ "assignments": [
+ "6b227b77184c48b6a5e2f3ed1de0c02a",
+ "31928b17ec90438ba5a2e50ae7650e63",
+ "7a5541b63a024fa88170a6b59f99ccd7",
+ "dd2af27812f742029d289df9687d6126",
+ ],
+ "id": "7407ffc1232944279b0cbcb0847c86f7",
+ "subject_id": "89ba91c18dd54abfbfde7a66936c51a6",
+ "policy_id": "3e65256389b448cb9897917ea235f0bb"
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET',
+ 'http://127.0.0.1:8000/policies/f8f49a779ceb47b3ac810f01ef71b4e0/object_assignments',
+ json={
+ "object_assignments": {
+ "201ad05fd3f940948b769ab9214fe295": {
+ "object_id": "9089b3d2ce5b4e929ffc7e35b55eba1a",
+ "assignments": [
+ "030fbb34002e4236a7b74eeb5fd71e35",
+ "4b7793dbae434c31a77da9d92de9fa8c",
+ '11209d83b167438cb8ab3e5d5351329e',
+ ],
+ "id": "201ad05fd3f940948b769ab9214fe295",
+ "category_id": "33aece52d45b4474a20dc48a76800daf",
+ "policy_id": "f8f49a779ceb47b3ac810f01ef71b4e0"
+ },
+ "90c5e86f8be34c0298fbd1973e4fb043": {
+ "object_id": "67b8008a3f8d4f8e847eb628f0f7ca0e",
+ "assignments": [
+ "7dc76c6142af47c88b60cc2b0df650ba",
+ "4b7793dbae434c31a77da9d92de9fa8c",
+ '11209d83b167438cb8ab3e5d5351329e'
+ ],
+ "id": "90c5e86f8be34c0298fbd1973e4fb043",
+ "category_id": "6d48500f639d4c2cab2b1f33ef93a1e8",
+ "policy_id": "3e65256389b448cb9897917ea235f0bb"
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET',
+ 'http://127.0.0.1:8000/policies/f8f49a779ceb47b3ac810f01ef71b4e0/action_assignments',
+ json={
+ "action_assignments": {
+ "2128e3ffbd1c4ef5be515d625745c2d4": {
+ "category_id": "241a2a791554421a91c9f1bc564aa94d",
+ "action_id": "cdb3df220dc05a6ea3334b994827b068",
+ "policy_id": "f8f49a779ceb47b3ac810f01ef71b4e0",
+ "id": "2128e3ffbd1c4ef5be515d625745c2d4",
+ "assignments": [
+ "570c036781e540dc9395b83098c40ba7",
+ "7fe17d7a2e3542719f8349c3f2273182",
+ "015ca6f40338422ba3f692260377d638",
+ "23d44c17bf88480f83e8d57d2aa1ea79",
+ '5ced7ea5e1714f0888d6b4f94c32c29c',
+ ]
+ },
+ "cffb98852f3a4110af7a0ddfc4e19201": {
+ "category_id": "4a2c5abaeaf644fcaf3ca8df64000d53",
+ "action_id": "cdb3df220dc04a6ea3334b994827b068",
+ "policy_id": "3e65256389b448cb9897917ea235f0bb",
+ "id": "cffb98852f3a4110af7a0ddfc4e19201",
+ "assignments": [
+ "570c036781e540dc9395b83098c40ba7",
+ "7fe17d7a2e3542719f8349c3f2273182",
+ "015ca6f40338422ba3f692260377d638",
+ "23d44c17bf88480f83e8d57d2aa1ea79"
+ ]
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET',
+ 'http://127.0.0.1:8000/policies/f8f49a779ceb47b3ac810f01ef71b4e0/subject_assignments/'
+ '89ba91c18dd54abfbfde7a66936c51a6',
+ json={
+ "subject_assignments": {
+ "826c1156d0284fc9b4b2ddb279f63c52": {
+ "category_id": "14e6ae0ba34d458b876c791b73aa17bd",
+ "assignments": [
+ "24ea95256c5f4c888c1bb30a187788df",
+ "6b227b77184c48b6a5e2f3ed1de0c02a",
+ "31928b17ec90438ba5a2e50ae7650e63",
+ "4e60f554dd3147af87595fb6b37dcb13",
+ "7a5541b63a024fa88170a6b59f99ccd7",
+ "4d4b3c3ba45e48589b382a6e369bafbe"
+ ],
+ "id": "826c1156d0284fc9b4b2ddb279f63c52",
+ "subject_id": "89ba91c18dd54abfbfde7a66936c51a6",
+ "policy_id": "f8f49a779ceb47b3ac810f01ef71b4e0"
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET',
+ 'http://127.0.0.1:8000/policies/f8f49a779ceb47b3ac810f01ef71b4e0/object_assignments/'
+ '67b8008a3f8d4f8e847eb628f0f7ca0e',
+ json={
+ "object_assignments": {
+ "201ad05fd3f940948b769ab9214fe295": {
+ "object_id": "67b8008a3f8d4f8e847eb628f0f7ca0e",
+ "assignments": [
+ "030fbb34002e4236a7b74eeb5fd71e35",
+ "11209d83b167438cb8ab3e5d5351329e"
+ ],
+ "id": "201ad05fd3f940948b769ab9214fe295",
+ "category_id": "6d48500f639d4c2cab2b1f33ef93a1e8",
+ "policy_id": "f8f49a779ceb47b3ac810f01ef71b4e0"
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET',
+ 'http://127.0.0.1:8000/policies/f8f49a779ceb47b3ac810f01ef71b4e0/action_assignments/'
+ 'cdb3df220dc05a6ea3334b994827b068',
+ json={
+ "action_assignments": {
+ "2128e3ffbd1c4ef5be515d625745c2d4": {
+ "category_id": "241a2a791554421a91c9f1bc564aa94d",
+ "action_id": "cdb3df220dc05a6ea3334b994827b068",
+ "policy_id": "f8f49a779ceb47b3ac810f01ef71b4e0",
+ "id": "2128e3ffbd1c4ef5be515d625745c2d4",
+ "assignments": [
+ "570c036781e540dc9395b83098c40ba7",
+ "7fe17d7a2e3542719f8349c3f2273182",
+ "015ca6f40338422ba3f692260377d638",
+ "f8f49a779ceb47b3ac810f01ef71b4e0"
+ ]
+ }
+ }
+ }
+ )
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/policies/f8f49a779ceb47b3ac810f01ef71b4e0/rules',
+ json={
+ "rules": {
+ "policy_id": "f8f49a779ceb47b3ac810f01ef71b4e0",
+ "rules": [
+ {
+ "policy_id": "f8f49a779ceb47b3ac810f01ef71b4e0",
+ "rule": [
+ "24ea95256c5f4c888c1bb30a187788df",
+ "030fbb34002e4236a7b74eeb5fd71e35",
+ "570c036781e540dc9395b83098c40ba7"
+ ],
+ "enabled": True,
+ "id": "0201a2bcf56943c1904dbac016289b71",
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "meta_rule_id": "4700cc0e38ef4cffa34025602d267c9e"
+ },
+ {
+ "policy_id": "f8f49a779ceb47b3ac810f01ef71b4e0",
+ "rule": [
+ "4d4b3c3ba45e48589b382a6e369bafbe",
+ '11209d83b167438cb8ab3e5d5351329e',
+ '5ced7ea5e1714f0888d6b4f94c32c29c'
+ ],
+ "enabled": True,
+ "id": "0bd7da3b20bb4b57af10c0e362aac847",
+ "instructions": [
+ {
+ "decision": "grant"
+ }
+ ],
+ "meta_rule_id": "4700cc0e38ef4cffa34025602d267c9e"
+ }
+ ]
+ }
+ }
+ )
+
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/pipelines',
+ json={
+ "pipelines": {
+ 'b3d3e18abf3340e8b635fd49e6634ccd': {
+ 'starttime': '1548688120.3931532',
+ "port": '20000',
+ "server_ip": '127.0.0.1',
+ "status": 'up',
+ "log": '/tmp/moon_policy_id_2.log'
+ }
+
+ }
+ }
+ )
+
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/policies/f8f49a779ceb47b3ac810f01ef71b4e0/subject_data',
+ json={
+ 'subject_data': [
+ {
+ 'policy_id': 'f8f49a779ceb47b3ac810f01ef71b4e0',
+ 'category_id': '14e6ae0ba34d458b876c791b73aa17bd',
+ 'data': {
+ '4d4b3c3ba45e48589b382a6e369bafbe': {
+ 'id': '4d4b3c3ba45e48589b382a6e369bafbe',
+ 'name': 'testuser',
+ 'description': 'description of testuser',
+ 'category_id': '14e6ae0ba34d458b876c791b73aa17bd',
+ 'policy_id': 'f8f49a779ceb47b3ac810f01ef71b4e0'
+ }
+ }
+ },
+ ]
+ }
+ )
+
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/policies/f8f49a779ceb47b3ac810f01ef71b4e0/object_data',
+ json={
+ 'object_data': [
+ {
+ 'policy_id': 'f8f49a779ceb47b3ac810f01ef71b4e0',
+ 'category_id': '6d48500f639d4c2cab2b1f33ef93a1e8',
+ 'data': {
+ '11209d83b167438cb8ab3e5d5351329e': {
+ 'id': '11209d83b167438cb8ab3e5d5351329e',
+ 'name': 'testuser',
+ 'description': 'description of testuser',
+ 'category_id': '6d48500f639d4c2cab2b1f33ef93a1e8',
+ 'policy_id': 'f8f49a779ceb47b3ac810f01ef71b4e0'
+ }
+ }
+ },
+ ]
+ }
+ )
+
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/policies/f8f49a779ceb47b3ac810f01ef71b4e0/action_data',
+ json={
+ 'action_data': [
+ {
+ 'policy_id': 'f8f49a779ceb47b3ac810f01ef71b4e0',
+ 'category_id': '241a2a791554421a91c9f1bc564aa94d',
+ 'data': {
+ '5ced7ea5e1714f0888d6b4f94c32c29c': {
+ 'id': '5ced7ea5e1714f0888d6b4f94c32c29c',
+ 'name': 'testuser',
+ 'description': 'description of testuser',
+ 'category_id': '241a2a791554421a91c9f1bc564aa94d',
+ 'policy_id': 'f8f49a779ceb47b3ac810f01ef71b4e0'
+ }
+ }
+ }
+ ]
+ }
+ )
+
+ m.register_uri(
+ 'GET', 'http://127.0.0.1:8000/slaves',
+ json={
+ "slaves": {
+ "24aa2a391554421a98c9f1bc564ae94d": {
+ "name": "slave name",
+ "address": "http://slave"
+ }
+ }
+ }
+ )
+
+ m.register_uri(
+ 'PUT', 'http://127.0.0.1:20000/update/policy/f8f49a779ceb47b3ac810f01ef71b4e0',
+ json={}
+ )
+ m.register_uri(
+ 'DELETE', 'http://127.0.0.1:20000/update/policy/f8f49a779ceb47b3ac810f01ef71b4e0',
+ json={}
+ )
+ m.register_uri(
+ 'PUT', 'http://127.0.0.1:20000/update/policy/eac0ecd09ceb47b3ac810f01ef71b4e0',
+ json={},
+ status_code=208
+ )
+ m.register_uri(
+ 'DELETE', 'http://127.0.0.1:20000/update/policy/eac0ecd09ceb47b3ac810f01ef71b4e0',
+ json={}
+ )
+ m.register_uri(
+ 'PUT', 'http://127.0.0.1:20000/update/pdp/b3d3e18abf3340e8b635fd49e6634ccd',
+ json={}
+ )
+ m.register_uri(
+ 'DELETE', 'http://127.0.0.1:20000/update/pdp/b3d3e18abf3340e8b635fd49e6634ccd',
+ json={}
+ )
+ m.register_uri(
+ 'DELETE', 'http://127.0.0.1:20000/update/assignment/'
+ 'f8f49a779ceb47b3ac810f01ef71b4e0/subject',
+ json={}
+ )
+ m.register_uri(
+ 'DELETE', 'http://127.0.0.1:20000/update/assignment/'
+ 'f8f49a779ceb47b3ac810f01ef71b4e0/object',
+ json={}
+ )
+ m.register_uri(
+ 'DELETE', 'http://127.0.0.1:20000/update/assignment/'
+ 'f8f49a779ceb47b3ac810f01ef71b4e0/action',
+ json={}
+ )
+ m.register_uri(
+ 'PUT',
+ 'http://127.0.0.1:20000/update/perimeter/89ba91c18dd54abfbfde7a66936c51a6/'
+ 'f8f49a779ceb47b3ac810f01ef71b4e0/subject',
+ json={}
+ )
+ m.register_uri(
+ 'PUT',
+ 'http://127.0.0.1:20000/update/perimeter/31fd15ad14784a9696fcc887dddbfaf9/'
+ 'f8f49a779ceb47b3ac810f01ef71b4e0/subject',
+ json={}
+ )
+ m.register_uri(
+ 'PUT',
+ 'http://127.0.0.1:20000/update/perimeter/67b8008a3f8d4f8e847eb628f0f7ca0e/'
+ 'f8f49a779ceb47b3ac810f01ef71b4e0/object',
+ json={}
+ )
+ m.register_uri(
+ 'PUT',
+ 'http://127.0.0.1:20000/update/perimeter/9089b3d2ce5b4e929ffc7e35b55eba1a/'
+ 'f8f49a779ceb47b3ac810f01ef71b4e0/object',
+ json={}
+ )
+ m.register_uri(
+ 'PUT',
+ 'http://127.0.0.1:20000/update/perimeter/cdb3df220dc05a6ea3334b994827b068/'
+ 'f8f49a779ceb47b3ac810f01ef71b4e0/action',
+ json={}
+ )
+ m.register_uri(
+ 'PUT',
+ 'http://127.0.0.1:20000/update/perimeter/9f5112afe9b34a6c894eb87246ccb7aa/'
+ 'f8f49a779ceb47b3ac810f01ef71b4e0/action',
+ json={}
+ )
+
+ m.register_uri(
+ 'DELETE',
+ 'http://127.0.0.1:20000/update/perimeter/89ba91c18dd54abfbfde7a66936c51a6/'
+ 'f8f49a779ceb47b3ac810f01ef71b4e0/subject',
+ json={}
+ )
+ m.register_uri(
+ 'DELETE',
+ 'http://127.0.0.1:20000/update/perimeter/31fd15ad14784a9696fcc887dddbfaf9/'
+ 'f8f49a779ceb47b3ac810f01ef71b4e0/subject',
+ json={}
+ )
+ m.register_uri(
+ 'DELETE',
+ 'http://127.0.0.1:20000/update/perimeter/67b8008a3f8d4f8e847eb628f0f7ca0e/'
+ 'f8f49a779ceb47b3ac810f01ef71b4e0/object',
+ json={}
+ )
+ m.register_uri(
+ 'DELETE',
+ 'http://127.0.0.1:20000/update/perimeter/9089b3d2ce5b4e929ffc7e35b55eba1a/'
+ 'f8f49a779ceb47b3ac810f01ef71b4e0/object',
+ json={}
+ )
+ m.register_uri(
+ 'DELETE',
+ 'http://127.0.0.1:20000/update/perimeter/cdb3df220dc05a6ea3334b994827b068/'
+ 'f8f49a779ceb47b3ac810f01ef71b4e0/action',
+ json={}
+ )
+ m.register_uri(
+ 'DELETE',
+ 'http://127.0.0.1:20000/update/perimeter/9f5112afe9b34a6c894eb87246ccb7aa/'
+ 'f8f49a779ceb47b3ac810f01ef71b4e0/action',
+ json={}
+ )
+
+ m.register_uri(
+ 'DELETE',
+ 'http://127.0.0.1:20000/update/rule/f8f49a779ceb47b3ac810f01ef71b4e0/'
+ '0201a2bcf56943c1904dbac016289b71',
+ json={}
+ )
+
+ m.register_uri(
+ 'DELETE',
+ 'http://127.0.0.1:20000/update/rule/f8f49a779ceb47b3ac810f01ef71b4e0/'
+ '0bd7da3b20bb4b57af10c0e362aac847',
+ json={}
+ )
+ m.register_uri(
+ 'PUT',
+ 'http://127.0.0.1:20000/update/model/cd923d8633ff4978ab0e99938f5153d6',
+ json={}
+ )
+ m.register_uri(
+ 'DELETE',
+ 'http://127.0.0.1:20000/update/model/cd923d8633ff4978ab0e99938f5153d6',
+ json={}
+ )
+
+ m.register_uri(
+ 'DELETE',
+ 'http://127.0.0.1:20000/update/meta_data/14e6ae0ba34d458b876c791b73aa17bd/subject',
+ json={}
+ )
+
+ m.register_uri(
+ 'DELETE',
+ 'http://127.0.0.1:20000/update/meta_data/241a2a791554421a91c9f1bc564aa94d/action',
+ json={}
+ )
+
+ m.register_uri(
+ 'DELETE',
+ 'http://127.0.0.1:20000/update/meta_data/6d48500f639d4c2cab2b1f33ef93a1e8/object',
+ json={}
+ )
+
+ m.register_uri(
+ 'PUT',
+ 'http://127.0.0.1:20000/update/meta_rule/4700cc0e38ef4cffa34025602d267c9e',
+ json={}
+ )
+ m.register_uri(
+ 'DELETE',
+ 'http://127.0.0.1:20000/update/meta_rule/4700cc0e38ef4cffa34025602d267c9e',
+ json={}
+ )
+ m.register_uri(
+ 'GET',
+ 'http://127.0.0.1:20000/authz/testuser/vm1/boot',
+ json={},
+ status_code=204
+ )
+ m.register_uri(
+ 'DELETE',
+ 'http://127.0.0.1:20000/update/data/4d4b3c3ba45e48589b382a6e369bafbe/subject',
+ json={}
+ )
+
+ m.register_uri(
+ 'DELETE',
+ 'http://127.0.0.1:20000/update/data/11209d83b167438cb8ab3e5d5351329e/object',
+ json={}
+ )
+ m.register_uri(
+ 'DELETE',
+ 'http://127.0.0.1:20000/update/data/5ced7ea5e1714f0888d6b4f94c32c29c/action',
+ json={}
+ )
+ m.register_uri(
+ 'PUT',
+ 'http://127.0.0.1:20000/update/slave/24aa2a391554421a98c9f1bc564ae94d',
+ json={}
+ )
+ m.register_uri(
+ 'GET',
+ '/authz/a64beb1cc224474fb4badd43173e7101/testuser/vm1/boot',
+ json={"result": True}
+ )
+ m.register_uri(
+ 'GET',
+ 'http://127.0.0.1:20000/authz/a64beb1cc224474fb4badd43173e7101/testuser/vm1/boot',
+ json={"result": True}
+ )
+
+
diff --git a/moon_engine/tests/unit_python/moon.yaml b/moon_engine/tests/unit_python/moon.yaml
new file mode 100644
index 00000000..a1257a20
--- /dev/null
+++ b/moon_engine/tests/unit_python/moon.yaml
@@ -0,0 +1,54 @@
+type: "pipeline"
+uuid: "a64beb1c-c224-474f-b4ba-dd43173e7101"
+management:
+ url: "http://127.0.0.1:8000"
+ token_file: moon_engine_users.json
+incremental_updates: false
+api_token:
+data: conf/policy_example.json
+debug: true
+
+orchestration:
+ driver: moon_engine.plugins.pyorchestrator
+ connection: local
+ port: 20000...20100
+ config_dir: /tmp
+
+authorization:
+ driver: moon_engine.plugins.authz
+
+plugins:
+ directory: /tmp
+
+logging:
+ version: 1
+
+ formatters:
+ brief:
+ format: "%(levelname)s %(name)s %(message)-30s"
+ custom:
+ format: "%(asctime)-15s %(levelname)s %(name)s %(message)s"
+
+ handlers:
+ console:
+ class : logging.StreamHandler
+ formatter: custom
+ level : INFO
+ stream : ext://sys.stdout
+ file:
+ class : logging.handlers.RotatingFileHandler
+ formatter: custom
+ level : DEBUG
+ filename: /tmp/moon_engine.log
+ maxBytes: 1048576
+ backupCount: 3
+
+ loggers:
+ moon:
+ level: DEBUG
+ handlers: [console, file]
+ propagate: no
+
+ root:
+ level: ERROR
+ handlers: [console] \ No newline at end of file
diff --git a/moon_engine/tests/unit_python/moon_engine_users.json b/moon_engine/tests/unit_python/moon_engine_users.json
new file mode 100644
index 00000000..97602c98
--- /dev/null
+++ b/moon_engine/tests/unit_python/moon_engine_users.json
@@ -0,0 +1 @@
+{"_default": {"1": {"username": "admin", "password": "0ded616e9bc4dcf292e3d282adb66b76eb28335bec14608fc860f96bd0f85210486085f59eb582fc1da9e965de0735dadbeda05ddaefe3db7c9cc8b1755eb0dc", "salt": "6704f5bdd5e0193be205e04661c6b998238debd74f8c7da5503a0493b8c710358ebe6303bac9c2758521a5d228cf3954a99334604e7ea3ecd0fe240a39210a12", "api_key": "30d200fee36bfeceb0cbd1479f8dcda92720392e92c5ddb63ea06979a75b9a055516b6c840def90de49eb02abac1f78ddfe38618cc1c36000e59875acb4664d3"}}} \ No newline at end of file
diff --git a/moon_engine/tests/unit_python/policy_example.json b/moon_engine/tests/unit_python/policy_example.json
new file mode 100644
index 00000000..6adddd06
--- /dev/null
+++ b/moon_engine/tests/unit_python/policy_example.json
@@ -0,0 +1,470 @@
+{
+ "policies": [
+ {
+ "name": "MLS Policy",
+ "genre": "authz",
+ "description": "MLS policy",
+ "model": {
+ "name": "MLS"
+ },
+ "mandatory": true,
+ "override": true
+ }
+ ],
+ "models": [
+ {
+ "name": "MLS",
+ "description": "",
+ "meta_rules": [
+ {
+ "name": "mls"
+ }
+ ],
+ "override": true
+ }
+ ],
+ "subjects": [
+ {
+ "name": "admin",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "MLS Policy"
+ }
+ ]
+ },
+ {
+ "name": "demo",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "MLS Policy"
+ }
+ ]
+ }
+ ],
+ "subject_categories": [
+ {
+ "name": "level",
+ "description": "subject level"
+ }
+ ],
+ "subject_data": [
+ {
+ "name": "high",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ },
+ {
+ "name": "medium",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ },
+ {
+ "name": "low",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ }
+ ],
+ "subject_assignments": [
+ {
+ "subject": {"name": "admin"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "high"}]
+ },
+ {
+ "subject": {"name": "demo"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "low"}]
+ }
+ ],
+ "objects": [
+ {
+ "name": "vm1",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "MLS Policy"
+ }
+ ]
+ },
+ {
+ "name": "vm2",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "MLS Policy"
+ }
+ ]
+ },
+ {
+ "name": "vm3",
+ "description": "",
+ "extra": {},
+ "policies": [
+ {
+ "name": "MLS Policy"
+ }
+ ]
+ }
+ ],
+ "object_categories": [
+ {
+ "name": "level",
+ "description": "object level"
+ }
+ ],
+ "object_data": [
+ {
+ "name": "high",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ },
+ {
+ "name": "medium",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ },
+ {
+ "name": "low",
+ "description": "",
+ "policies": [],
+ "category": {
+ "name": "level"
+ }
+ }
+ ],
+ "object_assignments": [
+ {
+ "object": {"name": "vm1"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "high"}]
+ },
+ {
+ "object": {"name": "vm2"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "medium"}]
+ },
+ {
+ "object": {"name": "vm3"},
+ "category": {"name": "level"},
+ "assignments": [{"name": "low"}]
+ }
+ ],
+ "actions": [
+ {
+ "name": "use_image",
+ "description": "use_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "get_images",
+ "description": "get_images action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "update_image",
+ "description": "update_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ },
+ {
+ "name": "set_image",
+ "description": "set_image action for glance",
+ "extra": {
+ "component": "glance"
+ },
+ "policies": []
+ }
+ ],
+ "action_categories": [
+ {
+ "name": "type",
+ "description": ""
+ }
+ ],
+ "action_data": [
+ {
+ "name": "read",
+ "description": "read action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ },
+ {
+ "name": "write",
+ "description": "write action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ },
+ {
+ "name": "execute",
+ "description": "execute action",
+ "policies": [],
+ "category": {
+ "name": "type"
+ }
+ }
+ ],
+ "action_assignments": [
+ {
+ "action": {"name": "use_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}, {"name": "execute"}]
+ },
+ {
+ "action": {"name": "update_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}, {"name": "write"}]
+ },
+ {
+ "action": {"name": "set_image"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "write"}]
+ },
+ {
+ "action": {"name": "get_images"},
+ "category": {"name": "type"},
+ "assignments": [{"name": "read"}]
+ }
+ ],
+ "meta_rules": [
+ {
+ "name": "mls",
+ "description": "",
+ "subject_categories": [{"name": "level"}],
+ "object_categories": [{"name": "level"}],
+ "action_categories": [{"name": "type"}]
+ }
+ ],
+ "rules": [
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "high"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "low"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "read"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "high"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "low"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "write"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "high"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "high"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "medium"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "medium"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ },
+ {
+ "meta_rule": {"name": "mls"},
+ "rule": {
+ "subject_data": [{"name": "low"}],
+ "object_data": [{"name": "low"}],
+ "action_data": [{"name": "execute"}]
+ },
+ "policy": {"name": "MLS Policy"},
+ "instructions": [{"decision": "grant"}],
+ "enabled": true
+ }
+ ]
+} \ No newline at end of file
diff --git a/moon_engine/tests/unit_python/requirements.txt b/moon_engine/tests/unit_python/requirements.txt
new file mode 100644
index 00000000..611c265c
--- /dev/null
+++ b/moon_engine/tests/unit_python/requirements.txt
@@ -0,0 +1,5 @@
+hug!=2.5.0
+moon_utilities
+moon_cache
+requests_mock
+pytest-benchmark \ No newline at end of file