Help Center/ Cloud Firewall/ API Reference/ API/ Firewall Management/ Obtaining East-West Firewall Information
Updated on 2025-08-11 GMT+08:00

Obtaining East-West Firewall Information

Function

This API is used to obtain east-west firewall information.

Calling Method

For details, see Calling APIs.

URI

GET /v1/{project_id}/firewall/east-west

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID, which can be obtained by calling an API or from the console. For details, see Obtaining a Project ID.

Table 2 Query Parameters

Parameter

Mandatory

Type

Description

limit

Yes

Integer

Number of records displayed on each page. The value ranges from 1 to 1024.

offset

Yes

Integer

Offset, which specifies the start position of the record to be returned. The value must be a number no less than 0. The default value is 0.

enterprise_project_id

No

String

Enterprise project ID, which is the ID of a project planned based on organizations. You can obtain the enterprise project ID by referring to Obtaining an Enterprise Project ID. If the enterprise project function is not enabled, the value is 0.

fw_instance_id

Yes

String

Firewall ID, which can be obtained by referring to Obtaining a Firewall ID.

Request Parameters

Table 3 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token. You can obtain the token by referring to Obtaining a User Token.

Response Parameters

Status code: 200

Table 4 Response body parameters

Parameter

Type

Description

data

GetEastWestFirewallResponseBody object

Returned data for obtaining the east-west firewall list.

Table 5 GetEastWestFirewallResponseBody

Parameter

Type

Description

object_id

String

Protected object ID, which is used to distinguish between Internet border protection and VPC border protection after a cloud firewall is created. You can obtain the ID by calling the API for querying firewall instances. In the return value, find the ID in data.records.protect_objects.object_id (The period [.] is used to separate different levels of objects). If type is 0, object_id is the ID of a protected object on the Internet border. If type is 1, object_id is the ID of a protected object on the VPC border. Here, a protected object ID whose type is 1 is used. You can obtain the value of type from data.records.protect_objects.type (The period [.] is used to separate different levels of objects).

project_id

String

Project ID, which can be obtained by calling an API or from the console. For details, see Obtaining a Project ID.

status

Integer

Protection status: 0 (enabled), 1 (disabled).

firewall_associated_subnets

Array of SubnetInfo objects

Information about the subnet associated with a cloud firewall.

er

ErInstance object

Information about the associated enterprise router in the outbound direction.

inspection_vpc

VpcDetail object

Information about the traffic diversion VPC.

protect_infos

Array of EwProtectResourceInfo objects

East-west protected resource information.

total

Integer

Total number of protected VPCs.

offset

Integer

Offset, which specifies the start position of the record to be returned. The value must be a number no less than 0. The default value is 0.

limit

Integer

Number of records displayed on each page. The value ranges from 1 to 1024.

mode

String

Protection mode. Its value is er.

Table 6 SubnetInfo

Parameter

Type

Description

availability_zone

String

ID of the AZ where a subnet is located, which is obtained from an endpoint. For details, see Endpoints.

cidr

String

Available IP address ranges for subnets in a VPC.

Ranges:

10.0.0.0/8-24

172.16.0.0/12-24

192.168.0.0/16-24

If cidr is not specified, it is left blank by default.

The value must be in CIDR format, for example, 192.168.0.0/16.

name

String

Subnet name.

id

String

Subnet ID.

gateway_ip

String

Subnet gateway. The value is the IP address in the subnet CIDR block cidr.

vpc_id

String

UUID generated when a VPC is created.

ipv6_enable

Boolean

Whether IPv6 is supported: true (yes), false (no).

Table 7 ErInstance

Parameter

Type

Description

id

String

Enterprise router ID, which is generated when an enterprise router is created.

name

String

Enterprise router name.

project_id

String

Project ID, which can be obtained by calling an API or from the console. For details, see Obtaining a Project ID.

attachment_id

String

Connection ID of an enterprise router. This connection is used to connect the firewall and the enterprise router. This field can be used to obtain the connection details on the connection management page after querying a specified enterprise router by its ID on the Enterprise Router page.

Table 8 VpcDetail

Parameter

Type

Description

id

String

Random UUID generated when a traffic diversion VPC is created.

name

String

Traffic diversion VPC name.

cidr

String

Available subnet ranges in a VPC. Ranges: 10.0.0.0/8-24; 172.16.0.0/12-24; and 192.168.0.0/16-24. If cidr is not specified, it is left blank by default. Constraint: The value must be in CIDR format, for example, 192.168.0.0/16.

Table 9 EwProtectResourceInfo

Parameter

Type

Description

protected_resource_type

Integer

Protected resource type: 0 (VPC), 1 (VGW), 2 (VPN), or 3 (peering).

protected_resource_name

String

Protected resource name.

protected_resource_id

String

Protected resource ID.

protected_resource_nat_name

String

Name of the NAT gateway to be protected. The professional edition supports NAT rules.

protected_resource_nat_id

String

ID of the NAT gateway to be protected. The professional edition supports NAT rules.

protected_resource_project_id

String

Tenant ID of a protected resource. The firewall supports cross-account protection.

protected_resource_mode

String

Protected resource mode. Its value is er.

status

Integer

Protection status of a protected resource: 0 (associated), 1 (not associated).

Status code: 500

Table 10 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error description.

Example Requests

Obtain information about the east-west firewall 80e0f2df-24fd-49c2-8398-11f9a0299b3e whose project ID is 09bb24e6f280d23d0f9fc0104b901480.

https://{Endpoint}/v1/09bb24e6f280d23d0f9fc0104b901480/firewall/east-west?limit=10&offset=0&fw_instance_id=80e0f2df-24fd-49c2-8398-11f9a0299b3e

Example Responses

Status code: 200

Response to the request for querying east-west firewall information.

{
  "data" : {
    "er" : {
      "id" : "f0f5275a-40aa-4d1e-ac78-2550f7818d43",
      "name" : "er",
      "project_id" : "5c69cf330cda42369cbd726ee1bc5e76",
      "attachment_id" : "e978c028-0ccf-4168-a015-0094ac631e88"
    },
    "inspection_vpc" : {
      "cidr" : "10.13.13.0/24",
      "id" : "3baa2248-03d4-47ac-aefa-ec6f9a30ed80",
      "name" : "inspection-vpc"
    },
    "limit" : 50,
    "mode" : "er",
    "object_id" : "6cc31075-0b03-461d-aa3a-73c4765bf9ac",
    "offset" : 0,
    "project_id" : "5c69cf330cda42369cbd726ee1bc5e76",
    "protect_infos" : [ {
      "protected_resource_id" : "09b26b83-4b7c-499f-805b-50820900cd9f",
      "protected_resource_mode" : "er",
      "protected_resource_name" : "vpc-4",
      "protected_resource_project_id" : "5c69cf330cda42369cbd726ee1bc5e76",
      "protected_resource_type" : 0,
      "status" : 0
    }, {
      "protected_resource_id" : "2956f917-af18-44a2-a0f2-f592633d4431",
      "protected_resource_mode" : "er",
      "protected_resource_name" : "vpc-t3",
      "protected_resource_project_id" : "5c69cf330cda42369cbd726ee1bc5e76",
      "protected_resource_type" : 0,
      "status" : 0
    }, {
      "protected_resource_id" : "69d4c81f-80bd-4c28-9074-f26b400b3a34",
      "protected_resource_mode" : "er",
      "protected_resource_name" : "vpc-t2",
      "protected_resource_project_id" : "5c69cf330cda42369cbd726ee1bc5e76",
      "protected_resource_type" : 0,
      "status" : 0
    }, {
      "protected_resource_id" : "e1b18d3e-8f7d-4c4e-a326-37db7bd89a3a",
      "protected_resource_mode" : "er",
      "protected_resource_name" : "vpc-t1",
      "protected_resource_project_id" : "5c69cf330cda42369cbd726ee1bc5e76",
      "protected_resource_type" : 0,
      "status" : 0
    }, {
      "protected_resource_id" : "f91c1747-1325-4b39-9d58-7fac0bd2786f",
      "protected_resource_mode" : "er",
      "protected_resource_name" : "vpc-5",
      "protected_resource_project_id" : "5c69cf330cda42369cbd726ee1bc5e76",
      "protected_resource_type" : 0,
      "status" : 0
    }, {
      "protected_resource_id" : "bd556a7d-447e-49eb-be17-f93af09769f5",
      "protected_resource_mode" : "er",
      "protected_resource_name" : "inspct-a",
      "protected_resource_project_id" : "5c69cf330cda42369cbd726ee1bc5e76",
      "protected_resource_type" : 0,
      "status" : 1
    } ],
    "status" : 0,
    "total" : 6
  }
}

SDK Sample Code

The SDK sample code is as follows.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.cfw.v1.region.CfwRegion;
import com.huaweicloud.sdk.cfw.v1.*;
import com.huaweicloud.sdk.cfw.v1.model.*;


public class ListEastWestFirewallSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        CfwClient client = CfwClient.newBuilder()
                .withCredential(auth)
                .withRegion(CfwRegion.valueOf("<YOUR REGION>"))
                .build();
        ListEastWestFirewallRequest request = new ListEastWestFirewallRequest();
        try {
            ListEastWestFirewallResponse response = client.listEastWestFirewall(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcfw.v1.region.cfw_region import CfwRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcfw.v1 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = CfwClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CfwRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ListEastWestFirewallRequest()
        response = client.list_east_west_firewall(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    cfw "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cfw/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cfw/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cfw/v1/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := cfw.NewCfwClient(
        cfw.CfwClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ListEastWestFirewallRequest{}
	response, err := client.ListEastWestFirewall(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

200

Response to the request for querying east-west firewall information.

400

Bad Request

401

Unauthorized: Request error.

403

Forbidden: Access forbidden.

404

Not Found: Web page not found.

500

Internal Server Error: Internal service error.

Error Codes

See Error Codes.