:original_name: vpc_apiv3_0011.html
.. _vpc_apiv3_0011:
Querying Security Groups
========================
Function
--------
This API is used to query all security groups of a tenant.
Constraints
-----------
This API is used to query all security groups accessible to the tenant submitting the request. A maximum of 2000 records can be returned for each query. If the number of records exceeds 2000, the pagination marker will be returned.
URI
---
GET /v3/{project_id}/vpc/security-groups
.. table:: **Table 1** Parameter description
========== ========= ====== ===========
Name Mandatory Type Description
========== ========= ====== ===========
project_id Yes String Project ID.
========== ========= ====== ===========
.. table:: **Table 2** Query parameters
+-----------------------+-----------------+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Parameter | Mandatory | Type | Description |
+=======================+=================+==================+================================================================================================================================================================================+
| limit | No | Integer | Number of records displayed on each page. |
| | | | |
| | | | Value range: 0 to 2000 |
+-----------------------+-----------------+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| marker | No | String | Start resource ID of pagination query. If the parameter is left blank, only resources on the first page are queried. |
+-----------------------+-----------------+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| id | No | String | Security group ID. This field can be used to precisely filter security groups. Multiple IDs can be specified for filtering. |
+-----------------------+-----------------+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| name | No | Array of strings | Security group name. This field can be used to precisely filter security groups. Multiple names can be specified for filtering. |
+-----------------------+-----------------+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| description | No | Array of strings | Provides supplementary information about the security group. This field can be used to precisely filter security groups. Multiple descriptions can be specified for filtering. |
+-----------------------+-----------------+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| enterprise_project_id | No | String | Enterprise project ID. This field can be used to filter the security groups of an enterprise project. |
| | | | |
| | | | The value is **0** or a string that contains a maximum of 36 characters in UUID format with hyphens (-). Value **0** indicates the default enterprise project. |
| | | | |
| | | | To obtain the security groups bound to all enterprise projects of the user, set **all_granted_eps**. |
+-----------------------+-----------------+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Request Parameter
-----------------
None
Example Request
---------------
- Query security groups.
.. code-block::
"GET https://{Endpoint}/v3/{project_id}/vpc/security-groups"
Response Parameter
------------------
When the status code is **200**, the response parameters are as follows:
.. table:: **Table 3** Response body parameters
+-----------------+-------------------------------------------------------------------------------------------------------+----------------------------------+
| Parameter | Type | Description |
+=================+=======================================================================================================+==================================+
| security_groups | Array of :ref:`SecurityGroup ` objects | Response body of security groups |
+-----------------+-------------------------------------------------------------------------------------------------------+----------------------------------+
| request_id | String | Request ID |
+-----------------+-------------------------------------------------------------------------------------------------------+----------------------------------+
| page_info | :ref:`PageInfo ` object | Pagination information |
+-----------------+-------------------------------------------------------------------------------------------------------+----------------------------------+
.. _vpc_apiv3_0011__en-us_topic_0267488948_response_securitygroup:
.. table:: **Table 4** SecurityGroup
+-----------------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Parameter | Type | Description |
+=======================+=======================+================================================================================================================================================================+
| id | String | Security group ID, which uniquely identifies the security group |
| | | |
| | | The value is in UUID format with hyphens (-). |
+-----------------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| name | String | Security group name |
| | | |
| | | The value can contain 1 to 64 characters, including letters, digits, underscores (_), hyphens (-), and periods (.). |
+-----------------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| description | String | Provides supplementary information about the security group. |
| | | |
| | | The value can contain no more than 255 characters and cannot contain angle brackets (< or >). |
+-----------------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| project_id | String | ID of the project to which the security group belongs |
+-----------------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| created_at | String | Time when the security group is created |
| | | |
| | | UTC time in the format of yyyy-MM-ddTHH:mmss |
+-----------------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| updated_at | String | Time when the security group is updated |
| | | |
| | | UTC time in the format of yyyy-MM-ddTHH:mmss |
+-----------------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| enterprise_project_id | String | ID of the enterprise project to which the security group belongs |
| | | |
| | | The value is **0** or a string that contains a maximum of 36 characters in UUID format with hyphens (-). Value **0** indicates the default enterprise project. |
+-----------------------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. _vpc_apiv3_0011__table297961720337:
.. table:: **Table 5** page_info
+-----------------+---------+---------------------------------------------------------------------------------------------+
| Parameter | Type | Description |
+=================+=========+=============================================================================================+
| previous_marker | String | First record on the current page |
+-----------------+---------+---------------------------------------------------------------------------------------------+
| current_count | Integer | Total number of records on the current page |
+-----------------+---------+---------------------------------------------------------------------------------------------+
| next_marker | String | Last record on the current page. This parameter does not exist if the page is the last one. |
+-----------------+---------+---------------------------------------------------------------------------------------------+
When the status code is **400**, the response parameters are as follows:
.. table:: **Table 6** Response body parameters
========== ====== =============
Parameter Type Description
========== ====== =============
request_id String Request ID
error_msg String Error message
error_code String Error code
========== ====== =============
When the status code is **401**, the response parameters are as follows:
.. table:: **Table 7** Response body parameters
========== ====== =============
Parameter Type Description
========== ====== =============
request_id String Request ID
error_msg String Error message
error_code String Error code
========== ====== =============
When the status code is **403**, the response parameters are as follows:
.. table:: **Table 8** Response body parameters
========== ====== =============
Parameter Type Description
========== ====== =============
request_id String Request ID
error_msg String Error message
error_code String Error code
========== ====== =============
When the status code is **500**, the response parameters are as follows:
.. table:: **Table 9** Response body parameters
========== ====== =============
Parameter Type Description
========== ====== =============
request_id String Request ID
error_msg String Error message
error_code String Error code
========== ====== =============
Example Response
----------------
When the status code is **200**, the response parameters are as follows:
OK
.. code-block::
{
"request_id": "d31cb32ca06f3c1a294fa24e6cbc5a56",
"security_groups": [
{
"id": "0552091e-b83a-49dd-88a7-4a5c86fd9ec3",
"name": "Sys-FullAccess--",
"project_id": "060576782980d5762f9ec014dd2f1148",
"description": "~!@#¥",
"enterprise_project_id": "0",
"created_at": "2019-10-16T11:11:14Z",
"updated_at": "2020-03-25T10:53:46Z"
},
{
"id": "0b8cb773-197c-4c91-94f1-e051f0563e5a",
"name": "test-sg",
"project_id": "060576782980d5762f9ec014dd2f1148",
""description": "The security group is for general-purpose web servers and includes default rules that allow all inbound ICMP traffic and allow inbound traffic on ports 22, 3389, 80, and 443. This security group is suitable for ECSs that require remote login, public network ping, and website services.",
"enterprise_project_id": "0",
"created_at": "2019-12-03T09:02:11Z",
"updated_at": "2019-12-03T09:02:11Z"
}
],
"page_info": {
"previous_marker": "0552091e-b83a-49dd-88a7-4a5c86fd9ec3",
"current_count": 2
}
}
Status Code
-----------
See :ref:`Status Codes `.
Error Code
----------
See :ref:`Error Codes `.