FWaaS v2 API reference
Add API references for Firewall as a Service v2. Co-Authored-By: Yushiro FURUKAWA <y.furukawa_2@jp.fujitsu.com> Change-Id: Icc6f8b5f04268a7efc3522b28f30df1283fcdfda Partial-Implements: blueprint fwaas-api-2.0
This commit is contained in:
parent
864b1c025e
commit
0841296497
847
api-ref/source/v2/fwaas-v2.inc
Normal file
847
api-ref/source/v2/fwaas-v2.inc
Normal file
@ -0,0 +1,847 @@
|
||||
.. -*- rst -*-
|
||||
|
||||
================================================================================
|
||||
FWaaS v2.0 (CURRENT) (fwaas, firewall_groups, firewall_policies, firewall_rules)
|
||||
================================================================================
|
||||
|
||||
Use the Firewall-as-a-Service (FWaaS) v2.0 extension to deploy
|
||||
firewall groups to protect your networks.
|
||||
|
||||
The FWaaS extension enables you to:
|
||||
|
||||
- Apply firewall rules on traffic entering and leaving project
|
||||
networks.
|
||||
|
||||
- Apply TCP, UDP, ICMP, or protocol-agnostic rules.
|
||||
|
||||
- Create and share firewall policies that hold an ordered collection
|
||||
of firewall rules.
|
||||
|
||||
- Audit firewall rules and policies.
|
||||
|
||||
This extension introduces the following resources:
|
||||
|
||||
- ``firewall_group``. A logical firewall resource that a project can
|
||||
create and manage. A firewall group can have a firewall policy for
|
||||
ingress traffic and/or a firewall policy for egress traffic.
|
||||
|
||||
- ``firewall_policy``. An ordered collection of firewall rules. You
|
||||
can share a firewall policy across projects. You can include a
|
||||
firewall policy as part of an audit workflow so that an
|
||||
authorized relevant entity can audit the firewall policy. This
|
||||
entity can differ from the user who created, or the projects
|
||||
that use, the firewall policy.
|
||||
|
||||
- ``firewall_rule``. A collection of attributes, such as source and
|
||||
destination ports, source and destination IP addresses, protocol,
|
||||
and IP version. These attributes define match criteria and an
|
||||
action to take, such as allow, reject, or deny, on matched data
|
||||
traffic.
|
||||
|
||||
List firewall groups
|
||||
====================
|
||||
|
||||
.. rest_method:: GET /v2.0/fwaas/firewall_groups
|
||||
|
||||
Lists all firewall groups.
|
||||
|
||||
The list might be empty.
|
||||
|
||||
Use the ``fields`` query parameter to control which fields are
|
||||
returned in the response body. Additionally, you can filter results
|
||||
by using query string parameters. For information, see `Filtering
|
||||
and Column Selection <https://wiki.openstack.org/wiki/Neutron/APIv2
|
||||
-specification#Filtering_and_Column_Selection>`__.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 401, 403
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- fields: fields
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_groups: firewall_groups_object
|
||||
- admin_state_up: firewall_group_admin_state_up-body-required
|
||||
- description: firewall_group_description-body-required
|
||||
- egress_firewall_policy_id: egress_firewall_policy_id-body-required
|
||||
- id: firewall_group_id-body-required
|
||||
- ingress_firewall_policy_id: ingress_firewall_policy_id-body-required
|
||||
- name: firewall_group_name-body-required
|
||||
- ports: firewall_group_ports-body-required
|
||||
- project_id: project_id-body-required
|
||||
- public: firewall_group_shared-body-required
|
||||
- status: firewall_group_status-body-required
|
||||
- tenant_id: project_id-body-required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-groups-list-response.json
|
||||
:language: javascript
|
||||
|
||||
Show firewall group details
|
||||
===========================
|
||||
|
||||
.. rest_method:: GET /v2.0/fwaas/firewall_groups/{firewall_group_id}
|
||||
|
||||
Shows details for a firewall group.
|
||||
|
||||
If the user is not an administrative user and the firewall group
|
||||
object does not belong to the project, this call returns the
|
||||
``FirewallGroupNotFound (404)`` response code.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 401, 403, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_group_id: firewall_group_id-path-required
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_group: firewall_group_object
|
||||
- admin_state_up: firewall_group_admin_state_up-body-required
|
||||
- description: firewall_group_description-body-required
|
||||
- egress_firewall_policy_id: egress_firewall_policy_id-body-required
|
||||
- id: firewall_group_id-body-required
|
||||
- ingress_firewall_policy_id: ingress_firewall_policy_id-body-required
|
||||
- name: firewall_group_name-body-required
|
||||
- ports: firewall_group_ports-body-required
|
||||
- project_id: project_id-body-required
|
||||
- public: firewall_group_shared-body-required
|
||||
- status: firewall_group_status-body-required
|
||||
- tenant_id: project_id-body-required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-group-show-response.json
|
||||
:language: javascript
|
||||
|
||||
Create firewall group
|
||||
=====================
|
||||
|
||||
.. rest_method:: POST /v2.0/fwaas/firewall_groups
|
||||
|
||||
Creates a firewall group.
|
||||
|
||||
The firewall group may be associated with an ingress firewall policy
|
||||
and/or an egress firewall policy.
|
||||
|
||||
If ``admin_state_up`` is ``false``, the firewall group will block all
|
||||
traffic.
|
||||
|
||||
Normal response codes: 201
|
||||
|
||||
Error response codes: 400, 401
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_group: firewall_group_object
|
||||
- admin_state_up: firewall_group_admin_state_up-body-optional
|
||||
- description: firewall_group_description-body-optional
|
||||
- egress_firewall_policy_id: egress_firewall_policy_id-body-optional
|
||||
- ingress_firewall_policy_id: ingress_firewall_policy_id-body-optional
|
||||
- name: firewall_group_name-body-optional
|
||||
- ports: firewall_group_ports-body-optional
|
||||
- project_id: project_id-body-optional
|
||||
- public: firewall_group_shared-body-optional
|
||||
- status: firewall_group_status-body-optional
|
||||
- tenant_id: project_id-body-optional
|
||||
|
||||
Request Example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-group-create-request.json
|
||||
:language: javascript
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_group: firewall_group_object
|
||||
- admin_state_up: firewall_group_admin_state_up-body-required
|
||||
- description: firewall_group_description-body-required
|
||||
- egress_firewall_policy_id: egress_firewall_policy_id-body-required
|
||||
- id: firewall_group_id-body-required
|
||||
- ingress_firewall_policy_id: ingress_firewall_policy_id-body-required
|
||||
- name: firewall_group_name-body-required
|
||||
- ports: firewall_group_ports-body-required
|
||||
- project_id: project_id-body-required
|
||||
- public: firewall_group_shared-body-required
|
||||
- status: firewall_group_status-body-required
|
||||
- tenant_id: project_id-body-required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-group-create-response.json
|
||||
:language: javascript
|
||||
|
||||
Update firewall group
|
||||
=====================
|
||||
|
||||
.. rest_method:: PUT /v2.0/fwaas/firewall_groups/{firewall_group_id}
|
||||
|
||||
Updates a firewall group.
|
||||
|
||||
The firewall group cannot be updated if its status is a PENDING_* status.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 400, 401, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_group_id: firewall_group_id-path-required
|
||||
- firewall_group: firewall_group_object
|
||||
- admin_state_up: firewall_group_admin_state_up-body-optional
|
||||
- description: firewall_group_description-body-optional
|
||||
- egress_firewall_policy_id: egress_firewall_policy_id-body-optional
|
||||
- ingress_firewall_policy_id: ingress_firewall_policy_id-body-optional
|
||||
- name: firewall_group_name-body-optional
|
||||
- ports: firewall_group_ports-body-optional
|
||||
- status: firewall_group_status-body-optional
|
||||
|
||||
Request Example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-group-update-request.json
|
||||
:language: javascript
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_group: firewall_group_object
|
||||
- admin_state_up: firewall_group_admin_state_up-body-required
|
||||
- description: firewall_group_description-body-required
|
||||
- egress_firewall_policy_id: egress_firewall_policy_id-body-required
|
||||
- id: firewall_group_id-body-required
|
||||
- ingress_firewall_policy_id: ingress_firewall_policy_id-body-required
|
||||
- name: firewall_group_name-body-required
|
||||
- ports: firewall_group_ports-body-required
|
||||
- project_id: project_id-body-required
|
||||
- public: firewall_group_shared-body-required
|
||||
- status: firewall_group_status-body-required
|
||||
- tenant_id: project_id-body-required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-group-update-response.json
|
||||
:language: javascript
|
||||
|
||||
Delete firewall group
|
||||
=====================
|
||||
|
||||
.. rest_method:: DELETE /v2.0/fwaas/firewall_groups/{firewall_group_id}
|
||||
|
||||
Deletes a firewall group.
|
||||
|
||||
Normal response codes: 204
|
||||
|
||||
Error response codes: 401, 404, 409
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_group_id: firewall_group_id-path-required
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
There is no body content for the response of a successful DELETE request.
|
||||
|
||||
List firewall policies
|
||||
======================
|
||||
|
||||
.. rest_method:: GET /v2.0/fwaas/firewall_policies
|
||||
|
||||
Lists all firewall policies.
|
||||
|
||||
The list might be empty.
|
||||
|
||||
Use the ``fields`` query parameter to control which fields are
|
||||
returned in the response body. Additionally, you can filter results
|
||||
by using query string parameters. For information, see `Filtering
|
||||
and Column Selection <https://wiki.openstack.org/wiki/Neutron/APIv2
|
||||
-specification#Filtering_and_Column_Selection>`__.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 401, 403
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- fields: fields
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_policies: firewall_policies_object
|
||||
- audited: firewall_policy_audited-body-required
|
||||
- description: firewall_policy_description-body-required
|
||||
- id: firewall_policy_id-body-required
|
||||
- firewall_rules: firewall_rules-body-required
|
||||
- name: firewall_policy_name-body-required
|
||||
- project_id: project_id-body-required
|
||||
- public: firewall_policy_shared-body-required
|
||||
- tenant_id: project_id-body-required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-policies-list-response.json
|
||||
:language: javascript
|
||||
|
||||
Show firewall policy details
|
||||
============================
|
||||
|
||||
.. rest_method:: GET /v2.0/fwaas/firewall_policies/{firewall_policy_id}
|
||||
|
||||
Shows details of a firewall policy.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 401, 403, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_policy_id: firewall_policy_id-path-required
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- audited: firewall_policy_audited-body-required
|
||||
- description: firewall_policy_description-body-required
|
||||
- firewall_rules: firewall_rules-body-required
|
||||
- id: firewall_policy_id-body-required
|
||||
- name: firewall_policy_name-body-required
|
||||
- project_id: project_id-body-required
|
||||
- public: firewall_policy_shared-body-required
|
||||
- tenant_id: project_id-body-required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-policy-show-response.json
|
||||
:language: javascript
|
||||
|
||||
Create firewall policy
|
||||
======================
|
||||
|
||||
.. rest_method:: POST /v2.0/fwaas/firewall_policies
|
||||
|
||||
Creates a firewall policy.
|
||||
|
||||
Normal response codes: 201
|
||||
|
||||
Error response codes: 400, 401
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_policy: firewall_policy_object
|
||||
- audited: firewall_policy_audited-body-optional
|
||||
- description: firewall_policy_description-body-optional
|
||||
- firewall_rules: firewall_rules-body-optional
|
||||
- name: firewall_policy_name-body-optional
|
||||
- project_id: project_id-body-optional
|
||||
- public: firewall_policy_shared-body-optional
|
||||
- tenant_id: project_id-body-optional
|
||||
|
||||
Request Example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-policy-create-request.json
|
||||
:language: javascript
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_policy: firewall_policy_object
|
||||
- audited: firewall_policy_audited-body-required
|
||||
- description: firewall_policy_description-body-required
|
||||
- firewall_rules: firewall_rules-body-required
|
||||
- id: firewall_policy_id-body-required
|
||||
- name: firewall_policy_name-body-required
|
||||
- project_id: project_id-body-required
|
||||
- public: firewall_policy_shared-body-required
|
||||
- tenant_id: project_id-body-required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-policy-create-response.json
|
||||
:language: javascript
|
||||
|
||||
Update firewall policy
|
||||
======================
|
||||
|
||||
.. rest_method:: PUT /v2.0/fwaas/firewall_policies/{firewall_policy_id}
|
||||
|
||||
Updates a firewall policy.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 400, 401, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_policy_id: firewall_policy_id-path-required
|
||||
- firewall_policy: firewall_policy_object
|
||||
- audited: firewall_policy_audited-body-optional
|
||||
- description: firewall_policy_description-body-optional
|
||||
- firewall_rules: firewall_rules-body-optional
|
||||
- name: firewall_policy_name-body-optional
|
||||
- project_id: project_id-body-optional
|
||||
- public: firewall_policy_shared-body-optional
|
||||
- tenant_id: project_id-body-optional
|
||||
|
||||
Request Example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-policy-update-request.json
|
||||
:language: javascript
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_policy: firewall_policy_object
|
||||
- audited: firewall_policy_audited-body-required
|
||||
- description: firewall_policy_description-body-required
|
||||
- firewall_rules: firewall_rules-body-required
|
||||
- id: firewall_policy_id-body-required
|
||||
- name: firewall_policy_name-body-required
|
||||
- public: firewall_policy_shared-body-required
|
||||
- project_id: project_id-body-required
|
||||
- tenant_id: project_id-body-required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-policy-update-response.json
|
||||
:language: javascript
|
||||
|
||||
Delete firewall policy
|
||||
======================
|
||||
|
||||
.. rest_method:: DELETE /v2.0/fwaas/firewall_policies/{firewall_policy_id}
|
||||
|
||||
Deletes a firewall policy.
|
||||
|
||||
Normal response codes: 204
|
||||
|
||||
Error response codes: 401, 404, 409
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_policy_id: firewall_policy_id-path-required
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
There is no body content for the response of a successful DELETE request.
|
||||
|
||||
List firewall rules
|
||||
===================
|
||||
|
||||
.. rest_method:: GET /v2.0/fwaas/firewall_rules
|
||||
|
||||
Lists all firewall rules.
|
||||
|
||||
The list might be empty.
|
||||
|
||||
Use the ``fields`` query parameter to control which fields are
|
||||
returned in the response body. Additionally, you can filter results
|
||||
by using query string parameters. For information, see `Filtering
|
||||
and Column Selection <https://wiki.openstack.org/wiki/Neutron/APIv2
|
||||
-specification#Filtering_and_Column_Selection>`__.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 401, 403
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- fields: fields
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_rules: firewall_rules_object
|
||||
- action: firewall_rule_action-body-required
|
||||
- description: firewall_rule_description-body-required
|
||||
- destination_ip_address: firewall_rule_destination_ip_address-body-required
|
||||
- destination_port: firewall_rule_destination_port-body-required
|
||||
- enabled: firewall_rule_enabled-body-required
|
||||
- firewall_policy_id: firewall_policy_id-body-required
|
||||
- id: firewall_rule_id-body-required
|
||||
- ip_version: firewall_rule_ip_version-body-required
|
||||
- name: firewall_rule_name-body-required
|
||||
- project_id: project_id-body-required
|
||||
- protocol: firewall_rule_protocol-body-required
|
||||
- public: firewall_rule_shared-body-required
|
||||
- source_ip_address: firewall_rule_source_ip_address-body-required
|
||||
- source_port: firewall_rule_source_port-body-required
|
||||
- tenant_id: project_id-body-required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-rules-list-response.json
|
||||
:language: javascript
|
||||
|
||||
Show firewall rule details
|
||||
==========================
|
||||
|
||||
.. rest_method:: GET /v2.0/fwaas/firewall_rules/{firewall_rule_id}
|
||||
|
||||
Shows details for a firewall rule.
|
||||
|
||||
If the user is not an administrative user and the firewall rule
|
||||
object does not belong to the project, this call returns the
|
||||
``Forbidden (403)`` response code.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 401, 403, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_rule_id: firewall_rule_id-path-required
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_rule: firewall_rule_object
|
||||
- action: firewall_rule_action-body-required
|
||||
- description: firewall_rule_description-body-required
|
||||
- destination_ip_address: firewall_rule_destination_ip_address-body-required
|
||||
- destination_port: firewall_rule_destination_port-body-required
|
||||
- enabled: firewall_rule_enabled-body-required
|
||||
- firewall_policy_id: firewall_policy_id-body-required
|
||||
- id: firewall_rule_id-body-required
|
||||
- ip_version: firewall_rule_ip_version-body-required
|
||||
- name: firewall_rule_name-body-required
|
||||
- project_id: project_id-body-required
|
||||
- protocol: firewall_rule_protocol-body-required
|
||||
- public: firewall_rule_shared-body-required
|
||||
- source_ip_address: firewall_rule_source_ip_address-body-required
|
||||
- source_port: firewall_rule_source_port-body-required
|
||||
- tenant_id: project_id-body-required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-rule-show-response.json
|
||||
:language: javascript
|
||||
|
||||
Create firewall rule
|
||||
====================
|
||||
|
||||
.. rest_method:: POST /v2.0/fwaas/firewall_rules
|
||||
|
||||
Creates a firewall rule.
|
||||
|
||||
Normal response codes: 201
|
||||
|
||||
Error response codes: 400, 401
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_rule: firewall_rule_object
|
||||
- action: firewall_rule_action-body-optional
|
||||
- description: firewall_rule_description-body-optional
|
||||
- destination_ip_address: firewall_rule_destination_ip_address-body-optional
|
||||
- destination_port: firewall_rule_destination_port-body-optional
|
||||
- enabled: firewall_rule_enabled-body-optional
|
||||
- ip_version: firewall_rule_ip_version-body-optional
|
||||
- name: firewall_rule_name-body-optional
|
||||
- project_id: project_id-body-optional
|
||||
- protocol: firewall_rule_protocol-body-optional
|
||||
- public: firewall_rule_shared-body-optional
|
||||
- source_ip_address: firewall_rule_source_ip_address-body-optional
|
||||
- source_port: firewall_rule_source_port-body-optional
|
||||
- tenant_id: project_id-body-optional
|
||||
|
||||
Request Example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-rule-create-request.json
|
||||
:language: javascript
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_rule: firewall_rule_object
|
||||
- action: firewall_rule_action-body-required
|
||||
- description: firewall_rule_description-body-required
|
||||
- destination_ip_address: firewall_rule_destination_ip_address-body-required
|
||||
- destination_port: firewall_rule_destination_port-body-required
|
||||
- enabled: firewall_rule_enabled-body-required
|
||||
- firewall_policy_id: firewall_policy_id-body-required
|
||||
- id: firewall_rule_id-body-required
|
||||
- ip_version: firewall_rule_ip_version-body-required
|
||||
- name: firewall_rule_name-body-required
|
||||
- project_id: project_id-body-required
|
||||
- protocol: firewall_rule_protocol-body-required
|
||||
- public: firewall_rule_shared-body-required
|
||||
- source_ip_address: firewall_rule_source_ip_address-body-required
|
||||
- source_port: firewall_rule_source_port-body-required
|
||||
- tenant_id: project_id-body-required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-rule-create-response.json
|
||||
:language: javascript
|
||||
|
||||
Update firewall rule
|
||||
====================
|
||||
|
||||
.. rest_method:: PUT /v2.0/fwaas/firewall_rules/{firewall_rule_id}
|
||||
|
||||
Updates a firewall rule.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 400, 401, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_rule_id: firewall_rule_id-path-required
|
||||
- firewall_rule: firewall_rule_object
|
||||
- action: firewall_rule_action-body-optional
|
||||
- description: firewall_rule_description-body-optional
|
||||
- destination_ip_address: firewall_rule_destination_ip_address-body-optional
|
||||
- destination_port: firewall_rule_destination_port-body-optional
|
||||
- enabled: firewall_rule_enabled-body-optional
|
||||
- firewall_policy_id: firewall_policy_id-body-required
|
||||
- ip_version: firewall_rule_ip_version-body-optional
|
||||
- name: firewall_rule_name-body-optional
|
||||
- project_id: project_id-body-optional
|
||||
- protocol: firewall_rule_protocol-body-optional
|
||||
- public: firewall_rule_shared-body-optional
|
||||
- source_ip_address: firewall_rule_source_ip_address-body-optional
|
||||
- source_port: firewall_rule_source_port-body-optional
|
||||
- tenant_id: project_id-body-optional
|
||||
|
||||
Request Example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-rule-update-request.json
|
||||
:language: javascript
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_rule: firewall_rule_object
|
||||
- action: firewall_rule_action-body-required
|
||||
- description: firewall_rule_description-body-required
|
||||
- destination_ip_address: firewall_rule_destination_ip_address-body-required
|
||||
- destination_port: firewall_rule_destination_port-body-required
|
||||
- enabled: firewall_rule_enabled-body-required
|
||||
- firewall_policy_id: firewall_policy_id-body-required
|
||||
- id: firewall_rule_id-body-required
|
||||
- ip_version: firewall_rule_ip_version-body-required
|
||||
- name: firewall_rule_name-body-required
|
||||
- project_id: project_id-body-required
|
||||
- protocol: firewall_rule_protocol-body-required
|
||||
- public: firewall_rule_shared-body-required
|
||||
- source_ip_address: firewall_rule_source_ip_address-body-required
|
||||
- source_port: firewall_rule_source_port-body-required
|
||||
- tenant_id: project_id-body-required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-rule-update-response.json
|
||||
:language: javascript
|
||||
|
||||
Delete firewall rule
|
||||
====================
|
||||
|
||||
.. rest_method:: DELETE /v2.0/fwaas/firewall_rules/{firewall_rule_id}
|
||||
|
||||
Deletes a firewall rule.
|
||||
samples/firewall-v2/firewall-policy-create-response.json
|
||||
|
||||
Normal response codes: 204
|
||||
|
||||
Error response codes: 401, 404, 409
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_rule_id: firewall_rule_id-path-required
|
||||
|
||||
Insert rule into a firewall policy
|
||||
==================================
|
||||
|
||||
.. rest_method:: PUT /v2.0/fwaas/firewall_policies/{firewall_policy_id}/insert_rule
|
||||
|
||||
Insert firewall rule into a policy.
|
||||
|
||||
A firewall_rule_id is inserted relative to the position of the
|
||||
firewall_rule_id set in ``insert_before`` or ``insert_after``. If
|
||||
``insert_before`` is set, ``insert_after`` is ignored. If both
|
||||
``insert_before`` and ``insert_after`` are not set, the new
|
||||
firewall_rule_id is inserted as the first rule of the policy.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 400, 401, 404, 409
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_policy_id: firewall_policy_id-path-required
|
||||
- firewall_rule_id: firewall_rule_id-body-required
|
||||
- insert_after: firewall_rule_insert_after-body-required
|
||||
- insert_before: firewall_rule_insert_before-body-required
|
||||
|
||||
Request Example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-policy-insert-rule-request.json
|
||||
:language: javascript
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- audited: firewall_policy_audited-body-required
|
||||
- description: firewall_policy_description-body-required
|
||||
- firewall_rules: firewall_rules-body-required
|
||||
- id: firewall_policy_id-body-required
|
||||
- name: firewall_policy_name-body-required
|
||||
- project_id: project_id-body-required
|
||||
- public: firewall_policy_shared-body-required
|
||||
- tenant_id: project_id-body-required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-policy-insert-rule-response.json
|
||||
:language: javascript
|
||||
|
||||
Remove rule from firewall policy
|
||||
================================
|
||||
|
||||
.. rest_method:: PUT /v2.0/fwaas/firewall_policies/{firewall_policy_id}/remove_rule
|
||||
|
||||
Remove firewall rule from a policy.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 400, 401, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- firewall_policy_id: firewall_policy_id-path-required
|
||||
- firewall_rule_id: firewall_rule_id-body-required
|
||||
|
||||
Request Example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-policy-remove-rule-request.json
|
||||
:language: javascript
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- audited: firewall_policy_audited-body-required
|
||||
- description: firewall_policy_description-body-required
|
||||
- firewall_rules: firewall_rules-body-required
|
||||
- id: firewall_policy_id-body-required
|
||||
- name: firewall_policy_name-body-required
|
||||
- project_id: project_id-body-required
|
||||
- public: firewall_policy_shared-body-required
|
||||
- tenant_id: project_id-body-required
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/firewall-v2/firewall-policy-remove-rule-response.json
|
||||
:language: javascript
|
||||
|
@ -36,6 +36,7 @@ Layer 3 Networking
|
||||
Security
|
||||
########
|
||||
.. include:: fwaas.inc
|
||||
.. include:: fwaas-v2.inc
|
||||
.. include:: security-group-rules.inc
|
||||
.. include:: security-groups.inc
|
||||
.. include:: vpnaas.inc
|
||||
|
@ -19,6 +19,12 @@ extensions-alias-path:
|
||||
in: path
|
||||
required: true
|
||||
type: string
|
||||
firewall_group_id-path-required:
|
||||
description: |
|
||||
The ID of the firewall group.
|
||||
in: path
|
||||
required: true
|
||||
type: string
|
||||
firewall_id:
|
||||
description: |
|
||||
The ID of the firewall.
|
||||
@ -31,12 +37,24 @@ firewall_policy_id-path:
|
||||
in: path
|
||||
required: true
|
||||
type: string
|
||||
firewall_policy_id-path-required:
|
||||
description: |
|
||||
The ID of the firewall policy.
|
||||
in: path
|
||||
required: true
|
||||
type: string
|
||||
firewall_rule_id:
|
||||
description: |
|
||||
The ID for the firewall rule.
|
||||
in: path
|
||||
required: true
|
||||
type: string
|
||||
firewall_rule_id-path-required:
|
||||
description: |
|
||||
The ID for the firewall rule.
|
||||
in: path
|
||||
required: true
|
||||
type: string
|
||||
flavor_id:
|
||||
description: |
|
||||
The UUID of the flavor.
|
||||
@ -830,19 +848,19 @@ delay_2:
|
||||
type: integer
|
||||
description:
|
||||
description: |
|
||||
The human-readable description for the resource.
|
||||
A human-readable description for the resource.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
description-request:
|
||||
description: |
|
||||
The human-readable description for the resource.
|
||||
A human-readable description for the resource.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
description_1:
|
||||
description: |
|
||||
Human readable description for the firewall rule.
|
||||
A human-readable description for the firewall rule.
|
||||
The maximum length is 1024 characters. No default.
|
||||
in: body
|
||||
required: false
|
||||
@ -855,7 +873,7 @@ description_10:
|
||||
type: string
|
||||
description_11:
|
||||
description: |
|
||||
Human-readable description for the pool.
|
||||
A human-readable description for the pool.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
@ -867,33 +885,33 @@ description_12:
|
||||
type: string
|
||||
description_13:
|
||||
description: |
|
||||
Human-readable description for the service
|
||||
A human-readable description for the service
|
||||
profile.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
description_14:
|
||||
description: |
|
||||
Human-readable description for the VIP.
|
||||
A human-readable description for the VIP.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
description_15:
|
||||
description: |
|
||||
Human-readable description for the VPN endpoint
|
||||
A human-readable description for the VPN endpoint
|
||||
group.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
description_16:
|
||||
description: |
|
||||
Human-readable description for the VPN service.
|
||||
A human-readable description for the VPN service.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
description_17:
|
||||
description: |
|
||||
The human-readable description for the firewall
|
||||
A human-readable description for the firewall
|
||||
policy.
|
||||
in: body
|
||||
required: true
|
||||
@ -906,39 +924,39 @@ description_18:
|
||||
type: string
|
||||
description_19:
|
||||
description: |
|
||||
Human readable description for the firewall rule.
|
||||
A human-readable description for the firewall rule.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
description_2:
|
||||
description: |
|
||||
Human-readable description for the firewall
|
||||
A human-readable description for the firewall
|
||||
service.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
description_20:
|
||||
description: |
|
||||
The human-readable description for the firewall
|
||||
A human-readable description for the firewall
|
||||
service.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
description_21:
|
||||
description: |
|
||||
Human-readable description for the flavor.
|
||||
A human-readable description for the flavor.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
description_22:
|
||||
description: |
|
||||
Human-readable description for the IKE policy.
|
||||
A human-readable description for the IKE policy.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
description_23:
|
||||
description: |
|
||||
Human-readable description for the IPSec
|
||||
A human-readable description for the IPSec
|
||||
connection.
|
||||
in: body
|
||||
required: true
|
||||
@ -981,33 +999,33 @@ description_29:
|
||||
type: string
|
||||
description_3:
|
||||
description: |
|
||||
Human-readable description for the flavor.
|
||||
A human-readable description for the flavor.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
description_30:
|
||||
description: |
|
||||
Human-readable description for the service
|
||||
A human-readable description for the service
|
||||
profile.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
description_31:
|
||||
description: |
|
||||
Human-readable description for the VIP.
|
||||
A human-readable description for the VIP.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
description_32:
|
||||
description: |
|
||||
Human-readable description for the VPN endpoint
|
||||
A human-readable description for the VPN endpoint
|
||||
group.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
description_33:
|
||||
description: |
|
||||
Human-readable description for the VPN service.
|
||||
A human-readable description for the VPN service.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
@ -1025,19 +1043,19 @@ description_35:
|
||||
type: string
|
||||
description_4:
|
||||
description: |
|
||||
Human-readable description for the IKE policy.
|
||||
A human-readable description for the IKE policy.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
description_5:
|
||||
description: |
|
||||
Human-readable description for the IPSec policy.
|
||||
A human-readable description for the IPSec policy.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
description_6:
|
||||
description: |
|
||||
Human-readable description for the IPSec
|
||||
A human-readable description for the IPSec
|
||||
connection.
|
||||
in: body
|
||||
required: false
|
||||
@ -1217,6 +1235,18 @@ dscp_marking_rules:
|
||||
in: body
|
||||
required: true
|
||||
type: array
|
||||
egress_firewall_policy_id-body-optional:
|
||||
description: |
|
||||
The ID of the egress firewall policy for the firewall group.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
egress_firewall_policy_id-body-required:
|
||||
description: |
|
||||
The ID of the egress firewall policy for the firewall group.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
enabled:
|
||||
description: |
|
||||
Set to ``false`` to disable this rule in the
|
||||
@ -1226,6 +1256,13 @@ enabled:
|
||||
in: body
|
||||
required: false
|
||||
type: boolean
|
||||
enabled-body-required:
|
||||
description: |
|
||||
Indicates whether this resource is enabled or
|
||||
disabled.
|
||||
in: body
|
||||
required: true
|
||||
type: boolean
|
||||
enabled-response:
|
||||
description: |
|
||||
Set to ``false`` to disable this rule in the
|
||||
@ -1457,6 +1494,118 @@ firewall-status:
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_audited-body-required:
|
||||
description: |
|
||||
Each time that the firewall policy or its
|
||||
associated rules are changed, the API sets this attribute to
|
||||
``false``. To audit the policy, explicitly set this attribute to
|
||||
``true``.
|
||||
in: body
|
||||
required: true
|
||||
type: boolean
|
||||
firewall_group_admin_state_up-body-optional:
|
||||
description: |
|
||||
The administrative state of the firewall group, which
|
||||
is up (``true``) or down (``false``). Default is ``true``.
|
||||
in: body
|
||||
required: false
|
||||
type: boolean
|
||||
firewall_group_admin_state_up-body-required:
|
||||
description: |
|
||||
The administrative state of the firewall group, which
|
||||
is up (``true``) or down (``false``). Default is ``true``.
|
||||
in: body
|
||||
required: true
|
||||
type: boolean
|
||||
firewall_group_description-body-optional:
|
||||
description: |
|
||||
A human-readable description of the firewall group.
|
||||
in: body
|
||||
required: false
|
||||
type: object
|
||||
firewall_group_description-body-required:
|
||||
description: |
|
||||
A human-readable description of the firewall group.
|
||||
in: body
|
||||
required: true
|
||||
type: object
|
||||
firewall_group_id-body-required:
|
||||
description: |
|
||||
The ID of the firewall group.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_group_list-body-required:
|
||||
description: |
|
||||
A list of the IDs of firewall groups associated with
|
||||
the firewall policy.
|
||||
in: body
|
||||
required: true
|
||||
type: array
|
||||
firewall_group_name-body-optional:
|
||||
description: |
|
||||
A human-readable name for the firewall group.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
firewall_group_name-body-required:
|
||||
description: |
|
||||
A human-readable name for the firewall group.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_group_object:
|
||||
description: |
|
||||
A ``firewall_group`` object.
|
||||
in: body
|
||||
required: true
|
||||
type: object
|
||||
firewall_group_ports-body-optional:
|
||||
description: |
|
||||
A list of the IDs of the ports associated with the firewall group.
|
||||
in: body
|
||||
required: false
|
||||
type: array
|
||||
firewall_group_ports-body-required:
|
||||
description: |
|
||||
A list of the IDs of the ports associated with the firewall group.
|
||||
in: body
|
||||
required: true
|
||||
type: array
|
||||
firewall_group_shared-body-optional:
|
||||
description: |
|
||||
Indicates whether this firewall group is shared across all projects.
|
||||
in: body
|
||||
required: false
|
||||
type: boolean
|
||||
firewall_group_shared-body-required:
|
||||
description: |
|
||||
Indicates whether this firewall group is shared across all projects.
|
||||
in: body
|
||||
required: true
|
||||
type: boolean
|
||||
firewall_group_status-body-optional:
|
||||
description: |
|
||||
The status of the firewall group. Valid values are ``ACTIVE``,
|
||||
``INACTIVE``, ``ERROR``, ``PENDING_UPDATE``, or
|
||||
``PENDING_DELETE``.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
firewall_group_status-body-required:
|
||||
description: |
|
||||
The status of the firewall group. Valid values are ``ACTIVE``,
|
||||
``INACTIVE``, ``ERROR``, ``PENDING_UPDATE``, or
|
||||
``PENDING_DELETE``.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_groups_object:
|
||||
description: |
|
||||
A list of ``firewall_group`` objects.
|
||||
in: body
|
||||
required: true
|
||||
type: array
|
||||
firewall_id-body:
|
||||
description: |
|
||||
The ID of the firewall.
|
||||
@ -1465,7 +1614,7 @@ firewall_id-body:
|
||||
type: string
|
||||
firewall_list:
|
||||
description: |
|
||||
A list of the IDs for firewall associated with
|
||||
A list of the IDs of firewalls associated with
|
||||
the firewall policy.
|
||||
in: body
|
||||
required: true
|
||||
@ -1476,12 +1625,46 @@ firewall_policies:
|
||||
in: body
|
||||
required: true
|
||||
type: array
|
||||
firewall_policies_object:
|
||||
description: |
|
||||
A list of ``firewall_policy`` objects.
|
||||
in: body
|
||||
required: true
|
||||
type: array
|
||||
firewall_policy:
|
||||
description: |
|
||||
A ``firewall_policy`` object.
|
||||
in: body
|
||||
required: true
|
||||
type: object
|
||||
firewall_policy_audited-body-optional:
|
||||
description: |
|
||||
Each time that the firewall policy or its associated rules are
|
||||
changed, the API sets this attribute to ``false``. To audit the
|
||||
policy, explicitly set this attribute to ``true``.
|
||||
in: body
|
||||
required: false
|
||||
type: boolean
|
||||
firewall_policy_audited-body-required:
|
||||
description: |
|
||||
Each time that the firewall policy or its associated rules are
|
||||
changed, the API sets this attribute to ``false``. To audit the
|
||||
policy, explicitly set this attribute to ``true``.
|
||||
in: body
|
||||
required: true
|
||||
type: boolean
|
||||
firewall_policy_description-body-optional:
|
||||
description: |
|
||||
A human-readable name of the firewall policy.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
firewall_policy_description-body-required:
|
||||
description: |
|
||||
A human-readable name of the firewall policy.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_policy_id:
|
||||
description: |
|
||||
Read-only attribute that the API populates with
|
||||
@ -1500,6 +1683,12 @@ firewall_policy_id-body:
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_policy_id-body-required:
|
||||
description: |
|
||||
The ID of the firewall policy.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_policy_id_3:
|
||||
description: |
|
||||
The ID of the policy that is associated with
|
||||
@ -1507,18 +1696,276 @@ firewall_policy_id_3:
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
firewall_policy_id_description-body-optional:
|
||||
description: |
|
||||
A human-readable description of the firewall policy.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
firewall_policy_id_description-body-required:
|
||||
description: |
|
||||
A human-readable description of the firewall policy.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_policy_name-body-optional:
|
||||
description: |
|
||||
A human-readable name of the firewall policy.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
firewall_policy_name-body-required:
|
||||
description: |
|
||||
A human-readable name of the firewall policy.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_policy_object:
|
||||
description: |
|
||||
A ``firewall_policy`` object.
|
||||
in: body
|
||||
required: true
|
||||
type: object
|
||||
firewall_policy_shared-body-optional:
|
||||
description: |
|
||||
Set to ``true`` to make this firewall policy
|
||||
visible to other projects. Default is ``false``.
|
||||
in: body
|
||||
required: false
|
||||
type: boolean
|
||||
firewall_policy_shared-body-required:
|
||||
description: |
|
||||
Set to ``true`` to make this firewall policy
|
||||
visible to other projects. Default is ``false``.
|
||||
in: body
|
||||
required: true
|
||||
type: boolean
|
||||
firewall_rule:
|
||||
description: |
|
||||
A ``firewall_rule`` object.
|
||||
in: body
|
||||
required: true
|
||||
type: object
|
||||
firewall_rule_action-body-optional:
|
||||
description: |
|
||||
The action that the API performs on traffic that
|
||||
matches the firewall rule. Valid values are ``allow`` or ``deny``.
|
||||
Default is ``deny``.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
firewall_rule_action-body-required:
|
||||
description: |
|
||||
The action that the API performs on traffic that
|
||||
matches the firewall rule. Valid values are ``allow`` or ``deny``.
|
||||
Default is ``deny``.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_rule_description-body-optional:
|
||||
description: |
|
||||
A human-readable description of the firewall rule.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
firewall_rule_description-body-required:
|
||||
description: |
|
||||
A human-readable description of the firewall rule.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_rule_destination_ip_address-body-optional:
|
||||
description: |
|
||||
The destination IPv4 or IPv6 address or CIDR for the firewall rule. No
|
||||
default.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
firewall_rule_destination_ip_address-body-required:
|
||||
description: |
|
||||
The destination IPv4 or IPv6 address or CIDR for the firewall rule. No
|
||||
default.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_rule_destination_port-body-optional:
|
||||
description: |
|
||||
The destination port or port range for the firewall rule. A valid
|
||||
value is a port number, as an integer, or a port range, in the
|
||||
format of a ``:`` separated range. For a port range, include both
|
||||
ends of the range. For example, ``80:90``.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
firewall_rule_destination_port-body-required:
|
||||
description: |
|
||||
The destination port or port range for the firewall rule. A valid
|
||||
value is a port number, as an integer, or a port range, in the
|
||||
format of a ``:`` separated range. For a port range, include both
|
||||
ends of the range. For example, ``80:90``.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_rule_enabled-body-optional:
|
||||
description: |
|
||||
Set to ``false`` to disable this rule in the firewall policy.
|
||||
Facilitates selectively turning off rules without having to
|
||||
disassociate the rule from the firewall policy. Valid values are
|
||||
``true`` or ``false``. Default is ``true``.
|
||||
in: body
|
||||
required: false
|
||||
type: boolean
|
||||
firewall_rule_enabled-body-required:
|
||||
description: |
|
||||
Set to ``false`` to disable this rule in the firewall policy.
|
||||
Facilitates selectively turning off rules without having to
|
||||
disassociate the rule from the firewall policy. Valid values are
|
||||
``true`` or ``false``. Default is ``true``.
|
||||
in: body
|
||||
required: true
|
||||
type: boolean
|
||||
firewall_rule_id-body:
|
||||
description: |
|
||||
The ID of the firewall rule.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_rule_id-body-required:
|
||||
description: |
|
||||
The ID of the firewall rule.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_rule_insert_after-body-required:
|
||||
description: |
|
||||
The ID of the firewall_rule to insert the new rule after. The new
|
||||
rule will be inserted immediately after the specified firewall_rule.
|
||||
If both ``before`` and ``after`` values are supplied, the ``after`` value
|
||||
will be ignored. To insert a rule into a policy with no rules yet,
|
||||
the both the ``before`` and the ``after`` values must be "".
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_rule_insert_before-body-required:
|
||||
description: |
|
||||
The ID of the firewall_rule to insert the new rule before. The new
|
||||
rule will be inserted immediately before the specified firewall_rule.
|
||||
If both ``before`` and ``after`` values are supplied, the ``after`` value
|
||||
will be ignored. To insert a rule into a policy with no rules yet,
|
||||
the both the ``before`` and the ``after`` values must be "".
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_rule_ip_version-body-optional:
|
||||
description: |
|
||||
The IP protocol version for the firewall rule. Valid values are
|
||||
``4`` or ``6``. Default is ``4``.
|
||||
in: body
|
||||
required: false
|
||||
type: integer
|
||||
firewall_rule_ip_version-body-required:
|
||||
description: |
|
||||
The IP protocol version for the firewall rule. Valid values
|
||||
are ``4`` or ``6``. Default is ``4``.
|
||||
in: body
|
||||
required: true
|
||||
type: integer
|
||||
firewall_rule_name-body-optional:
|
||||
description: |
|
||||
A human-readable name of the firewall rule.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
firewall_rule_name-body-required:
|
||||
description: |
|
||||
A human-readable name of the firewall rule.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_rule_object:
|
||||
description: |
|
||||
A ``firewall_rule`` object.
|
||||
in: body
|
||||
required: true
|
||||
type: object
|
||||
firewall_rule_position-body-optional:
|
||||
description: |
|
||||
Read-only attribute that the API assigns to this
|
||||
rule when it associates it with a firewall policy. This value
|
||||
indicates the position of this rule in that firewall policy. This
|
||||
position number starts at 1. If the firewall rule is not
|
||||
associated with any policy, the position is ``null``.
|
||||
in: body
|
||||
required: false
|
||||
type: integer
|
||||
firewall_rule_position-body-required:
|
||||
description: |
|
||||
Read-only attribute that the API assigns to this
|
||||
rule when it associates it with a firewall policy. This value
|
||||
indicates the position of this rule in that firewall policy. This
|
||||
position number starts at 1. If the firewall rule is not
|
||||
associated with any policy, the position is ``null``.
|
||||
in: body
|
||||
required: true
|
||||
type: integer
|
||||
firewall_rule_protocol-body-optional:
|
||||
description: |
|
||||
The IP protocol for the firewall rule. Possible values are ``icmp``, ``tcp``,
|
||||
``udp``, or ``null``.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
firewall_rule_protocol-body-required:
|
||||
description: |
|
||||
The IP protocol for the firewall rule. Possible values are ``icmp``, ``tcp``,
|
||||
``udp``, or ``null``.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_rule_shared-body-optional:
|
||||
description: |
|
||||
Indicates whether this firewall rule is shared across all projects.
|
||||
in: body
|
||||
required: false
|
||||
type: boolean
|
||||
firewall_rule_shared-body-required:
|
||||
description: |
|
||||
Indicates whether this firewall rule is shared across all projects.
|
||||
in: body
|
||||
required: true
|
||||
type: boolean
|
||||
firewall_rule_source_ip_address-body-optional:
|
||||
description: |
|
||||
The source IPv4 or IPv6 address or CIDR for the firewall rule. No
|
||||
default.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
firewall_rule_source_ip_address-body-required:
|
||||
description: |
|
||||
The source IPv4 or IPv6 address or CIDR for the firewall rule. No
|
||||
default.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_rule_source_port-body-optional:
|
||||
description: |
|
||||
The source port or port range for the firewall rule. A valid
|
||||
value is a port number, as an integer, or a port range, in the
|
||||
format of a ``:`` separated range. For a port range, include both
|
||||
ends of the range. For example, ``80:90``.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
firewall_rule_source_port-body-required:
|
||||
description: |
|
||||
The source port or port range for the firewall rule. A valid
|
||||
value is a port number, as an integer, or a port range, in the
|
||||
format of a ``:`` separated range. For a port range, include both
|
||||
ends of the range. For example, ``80:90``.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
firewall_rules:
|
||||
description: |
|
||||
A list of the IDs for firewall rule associated
|
||||
@ -1526,6 +1973,20 @@ firewall_rules:
|
||||
in: body
|
||||
required: true
|
||||
type: array
|
||||
firewall_rules-body-optional:
|
||||
description: |
|
||||
A list of the IDs of the firewall rules associated
|
||||
with the firewall policy.
|
||||
in: body
|
||||
required: false
|
||||
type: array
|
||||
firewall_rules-body-required:
|
||||
description: |
|
||||
A list of the IDs of the firewall rules associated
|
||||
with the firewall policy.
|
||||
in: body
|
||||
required: true
|
||||
type: array
|
||||
firewall_rules_id:
|
||||
description: |
|
||||
A list of rules to associate with the firewall
|
||||
@ -1533,6 +1994,12 @@ firewall_rules_id:
|
||||
in: body
|
||||
required: false
|
||||
type: array
|
||||
firewall_rules_object:
|
||||
description: |
|
||||
A list of ``firewall_rule`` objects.
|
||||
in: body
|
||||
required: true
|
||||
type: object
|
||||
firewalls:
|
||||
description: |
|
||||
A list of ``firewall_rule`` objects.
|
||||
@ -2001,6 +2468,18 @@ ikepolicy_id:
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
ingress_firewall_policy_id-body-optional:
|
||||
description: |
|
||||
The ID of the ingress firewall policy for the firewall group.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
ingress_firewall_policy_id-body-required:
|
||||
description: |
|
||||
The ID of the ingress firewall policy for the firewall group.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
initiator:
|
||||
description: |
|
||||
Indicates whether this VPN can only respond to
|
||||
@ -2594,7 +3073,7 @@ name_20:
|
||||
type: string
|
||||
name_21:
|
||||
description: |
|
||||
Human readable name for the firewall rule.
|
||||
A human-readable name for the firewall rule.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
@ -2730,7 +3209,7 @@ name_4:
|
||||
type: string
|
||||
name_40:
|
||||
description: |
|
||||
Human readable name for the firewall rule.
|
||||
A human-readable name for the firewall rule.
|
||||
Maximum length is 255 characters. Does not have to be unique. No
|
||||
default.
|
||||
in: body
|
||||
@ -2738,14 +3217,14 @@ name_40:
|
||||
type: string
|
||||
name_41:
|
||||
description: |
|
||||
Human-readable name for the flavor. Can be "" and
|
||||
A human-readable name for the flavor. Can be "" and
|
||||
non-unique.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
name_42:
|
||||
description: |
|
||||
The human-readable name for the firewall service.
|
||||
A human-readable name for the firewall service.
|
||||
Does not have to be unique.
|
||||
in: body
|
||||
required: false
|
||||
@ -2759,7 +3238,7 @@ name_43:
|
||||
type: string
|
||||
name_5:
|
||||
description: |
|
||||
Human-readable name for the IPSec policy. Does
|
||||
A human-readable name for the IPSec policy. Does
|
||||
not have to be unique.
|
||||
in: body
|
||||
required: true
|
||||
@ -3204,6 +3683,18 @@ project_id:
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
project_id-body-optional:
|
||||
description: |
|
||||
The ID of the project.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
project_id-body-required:
|
||||
description: |
|
||||
The ID of the project.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
project_id-request:
|
||||
description: |
|
||||
The ID of the project that owns the resource.
|
||||
@ -4464,7 +4955,7 @@ tenant_id:
|
||||
description: |
|
||||
The ID of the project that owns the resource.
|
||||
in: body
|
||||
required: true
|
||||
required: false
|
||||
type: string
|
||||
tenant_id-request:
|
||||
description: |
|
||||
@ -4561,9 +5052,7 @@ tenant_id_19:
|
||||
type: string
|
||||
tenant_id_2:
|
||||
description: |
|
||||
The UUID of the tenant who owns the network. Only
|
||||
administrative users can specify a tenant UUID other than their
|
||||
own.
|
||||
The ID of the project that owns the resource.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
|
@ -0,0 +1,7 @@
|
||||
{
|
||||
"firewall_group": {
|
||||
"admin_state_up": false,
|
||||
"egress_firewall_policy_id": "14c9d3c1-b472-44f9-8226-30dc4ffd454c"
|
||||
"ingress_firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c"
|
||||
}
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
{
|
||||
"firewall_group": {
|
||||
"admin_state_up": true,
|
||||
"description": "",
|
||||
"egress_firewall_policy_id": "1244ed87-b472-44f9-8226-30dc4ffd454c",
|
||||
"ingress_firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
|
||||
"id": "3b0ef8f4-82c7-44d4-a4fb-6177f9a21977",
|
||||
"name": "",
|
||||
"ports": [
|
||||
"650bfd2f-7766-4a0d-839f-218f33e16998"
|
||||
],
|
||||
"project_id": "45977fa2dbd7482098dd68d0d8970117",
|
||||
"public": true,
|
||||
"status": "PENDING_CREATE",
|
||||
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
{
|
||||
"firewall_group": {
|
||||
"admin_state_up": true,
|
||||
"description": "",
|
||||
"egress_firewall_policy_id": null,
|
||||
"id": "07411bda-0147-418b-af05-c8665630d937",
|
||||
"ingress_firewall_policy_id": null,
|
||||
"name": "",
|
||||
"project_id": "96108b04417b416e9b9bc788c11c42c9",
|
||||
"public": false,
|
||||
"status": "INACTIVE",
|
||||
"tenant_id": "96108b04417b416e9b9bc788c11c42c9"
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"firewall_group": {
|
||||
"admin_state_up": "false"
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
{
|
||||
"firewall_group": {
|
||||
"admin_state_up": false,
|
||||
"description": "",
|
||||
"egress_firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
|
||||
"ingress_firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
|
||||
"id": "3b0ef8f4-82c7-44d4-a4fb-6177f9a21977",
|
||||
"name": "",
|
||||
"ports": [
|
||||
"650bfd2f-7766-4a0d-839f-218f33e16998"
|
||||
],
|
||||
"project_id": "45977fa2dbd7482098dd68d0d8970117",
|
||||
"status": "PENDING_UPDATE",
|
||||
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
|
||||
}
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
{
|
||||
"firewall_groups": [
|
||||
{
|
||||
"admin_state_up": true,
|
||||
"description": "",
|
||||
"egress_firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
|
||||
"id": "3b0ef8f4-82c7-44d4-a4fb-6177f9a21977",
|
||||
"ingress_firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
|
||||
"name": "",
|
||||
"ports": [
|
||||
"650bfd2f-7766-4a0d-839f-218f33e16998"
|
||||
],
|
||||
"project_id": "45977fa2dbd7482098dd68d0d8970117",
|
||||
"status": "ACTIVE",
|
||||
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
{
|
||||
"firewall_policies": [
|
||||
{
|
||||
"audited": false,
|
||||
"description": "",
|
||||
"firewall_rules": [
|
||||
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
|
||||
],
|
||||
"id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
|
||||
"name": "test-policy",
|
||||
"project_id": "45977fa2dbd7482098dd68d0d8970117",
|
||||
"public": false,
|
||||
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"firewall_policy": {
|
||||
"name": "test-policy"
|
||||
"firewall_rules": [
|
||||
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
|
||||
],
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
{
|
||||
"firewall_policy": {
|
||||
"audited": false,
|
||||
"description": "",
|
||||
"firewall_rules": [
|
||||
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
|
||||
],
|
||||
"id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
|
||||
"name": "test-policy",
|
||||
"project_id": "45977fa2dbd7482098dd68d0d8970117",
|
||||
"public": false,
|
||||
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"firewall_rule_id": "7bc34b8c-8d3b-4ada-a9c8-1f4c11c65692",
|
||||
"insert_after": "a08ef905-0ff6-4784-8374-175fffe7dade",
|
||||
"insert_before": ""
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
{
|
||||
"audited": false,
|
||||
"description": "",
|
||||
"firewall_rules": [
|
||||
"acbdfead-eca2-4456-838c-8b531e47b9c7"
|
||||
],
|
||||
"id": "c9e15d6e-b6ba-4ef4-8715-985d1f100467",
|
||||
"name": "policy2"
|
||||
"public": false,
|
||||
"project_id": "95573613ec554b4b8df9f2679c64557b",
|
||||
"tenant_id": "95573613ec554b4b8df9f2679c64557b",
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"firewall_rule_id": "7bc34b8c-8d3b-4ada-a9c8-1f4c11c65692"
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
{
|
||||
"audited": false,
|
||||
"description": "",
|
||||
"firewall_rules": [],
|
||||
"id": "c9e15d6e-b6ba-4ef4-8715-985d1f100467",
|
||||
"name": "policy2"
|
||||
"project_id": "95573613ec554b4b8df9f2679c64557b",
|
||||
"public": false,
|
||||
"tenant_id": "95573613ec554b4b8df9f2679c64557b",
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
{
|
||||
"firewall_policy": {
|
||||
"audited": false,
|
||||
"description": "",
|
||||
"firewall_rules": [
|
||||
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
|
||||
],
|
||||
"id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
|
||||
"name": "test-policy",
|
||||
"project_id": "45977fa2dbd7482098dd68d0d8970117",
|
||||
"public": false,
|
||||
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"firewall_policy": {
|
||||
"firewall_rules": [
|
||||
"a08ef905-0ff6-4784-8374-175fffe7dade",
|
||||
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
|
||||
]
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
{
|
||||
"firewall_policy": {
|
||||
"audited": false,
|
||||
"description": "",
|
||||
"firewall_rules": [
|
||||
"a08ef905-0ff6-4784-8374-175fffe7dade",
|
||||
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
|
||||
],
|
||||
"id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
|
||||
"name": "test-policy",
|
||||
"project_id": "45977fa2dbd7482098dd68d0d8970117",
|
||||
"public": false,
|
||||
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
{
|
||||
"firewall_rule": {
|
||||
"action": "allow",
|
||||
"destination_port": "80",
|
||||
"enabled": true,
|
||||
"name": "ALLOW_HTTP",
|
||||
"protocol": "tcp"
|
||||
}
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
{
|
||||
"firewall_rule": {
|
||||
"action": "deny",
|
||||
"description": "",
|
||||
"destination_ip_address": null,
|
||||
"destination_port": null,
|
||||
"enabled": true,
|
||||
"id": "1fd59b2f-cc87-435f-a244-1df2c0cc3f70",
|
||||
"ip_version": 4,
|
||||
"name": "rule3",
|
||||
"project_id": "95573613ec554b4b8df9f2679c64557b",
|
||||
"protocol": null,
|
||||
"public": false,
|
||||
"source_ip_address": null,
|
||||
"source_port": null,
|
||||
"tenant_id": "95573613ec554b4b8df9f2679c64557b"
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
{
|
||||
"firewall_rule": {
|
||||
"action": "allow",
|
||||
"description": "",
|
||||
"destination_ip_address": null,
|
||||
"destination_port": "80",
|
||||
"enabled": true,
|
||||
"firewall_policy_id": null,
|
||||
"id": "8722e0e0-9cc9-4490-9660-8c9a5732fbb0",
|
||||
"ip_version": 4,
|
||||
"name": "ALLOW_HTTP",
|
||||
"position": null,
|
||||
"project_id": "45977fa2dbd7482098dd68d0d8970117",
|
||||
"protocol": "tcp",
|
||||
"public": false,
|
||||
"source_ip_address": null,
|
||||
"source_port": null,
|
||||
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"firewall_rule": {
|
||||
"public": "true"
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
{
|
||||
"firewall_rule": {
|
||||
"action": "allow",
|
||||
"description": "",
|
||||
"destination_ip_address": null,
|
||||
"destination_port": "80",
|
||||
"enabled": true,
|
||||
"firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
|
||||
"id": "8722e0e0-9cc9-4490-9660-8c9a5732fbb0",
|
||||
"ip_version": 4,
|
||||
"name": "ALLOW_HTTP",
|
||||
"position": 1,
|
||||
"project_id": "45977fa2dbd7482098dd68d0d8970117",
|
||||
"protocol": "tcp",
|
||||
"public": true,
|
||||
"source_ip_address": null,
|
||||
"source_port": null,
|
||||
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
{
|
||||
"firewall_rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"description": "",
|
||||
"destination_ip_address": null,
|
||||
"destination_port": "80",
|
||||
"enabled": true,
|
||||
"firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
|
||||
"id": "8722e0e0-9cc9-4490-9660-8c9a5732fbb0",
|
||||
"ip_version": 4,
|
||||
"name": "ALLOW_HTTP",
|
||||
"position": 1,
|
||||
"project_id": "45977fa2dbd7482098dd68d0d8970117",
|
||||
"protocol": "tcp",
|
||||
"public": false,
|
||||
"source_ip_address": null,
|
||||
"source_port": null,
|
||||
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
|
||||
}
|
||||
]
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user