Help Center/ Cloud Firewall/ API Reference/ API/ Firewall Management/ Obtaining East-West Firewall Information
Updated on 2024-08-12 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

Table 2 Query Parameters

Parameter

Mandatory

Type

Description

limit

Yes

Integer

Number of records displayed on each page, in the range 1-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, the id generated by the enterprise project after the user supports the enterprise project.

fw_instance_id

No

String

Firewall instance ID, which is automatically generated after a CFW instance is created. You can obtain the ID by calling the API used for querying a firewall instance. For details, see the API Explorer and Help Center FAQ.By default, if fw_instance_Id is not specified, information about the first firewall under the account is returned. If fw_instance_Id is specified, information about the firewall with this fw_instance_Id is returned.If object_Id is specified, information about the firewall with this object_Id is returned by default. If both fw_instance_Id and object_Id are specified, the specified object_Id must belong to the specified firewall.

Request Parameters

Table 3 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token. It can be obtained by calling the IAM API used to obtain a user token. The value of X-Subject-Token in the response header is a token.

Response Parameters

Status code: 200

Table 4 Response body parameters

Parameter

Type

Description

data

GetEastWestFirewallResponseBody object

Get east west firewall data response

Table 5 GetEastWestFirewallResponseBody

Parameter

Type

Description

object_id

String

Protected object ID, which is used to distinguish Internet border protection from VPC border protection after a CFW instance is created. You can obtain the ID by calling the API used for querying a firewall instance. Note that the value 0 indicates the ID of a protected object on the Internet border, and the value 1 indicates the ID of a protected object on the VPC border. For details, see the API Explorer and Help Center FAQ.

project_id

String

Project ID

status

Integer

Protection status. The value can be 0 (protection enabled) or 1 (protection disabled).

er_associated_subnet

SubnetInfo object

Information about the subnet associated with ER

firewall_associated_subnets

Array of SubnetInfo objects

Subnet associated with CFW

er

ErInstance object

Information about the associated outbound enterprise router

inspection_vpc

VpcDetail object

Monitoring VPC information

protect_infos

Array of EwProtectResourceInfo objects

East-west protection 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, in the range 1-1024

mode

String

mode

ew_vpc_route_limit

Integer

east west vpc route limit

Table 6 SubnetInfo

Parameter

Type

Description

availability_zone

String

Subnet ID

cidr

String

vpc cidr

name

String

Subnet name

id

String

Subnet ID

gateway_ip

String

Subnet gateway IP address

vpc_id

String

vpc id

status

String

Subnet status

ipv6_enable

Boolean

Whether IPv6 is supported. The value true indicates yes and the value false indicates no.

Table 7 ErInstance

Parameter

Type

Description

id

String

ER instance ID

name

String

ER name

state

String

ER status

enterprise_project_id

String

Enterprise user ID

project_id

String

User ID

enable_ipv6

String

Whether to enable IPv6

attachment_id

String

ER attachment id

Table 8 VpcDetail

Parameter

Type

Description

id

String

id

name

String

Name

cidr

String

vpc cidr

status

String

Status

Table 9 EwProtectResourceInfo

Parameter

Type

Description

protected_resource_type

Integer

Protection resource type. The value can be 0 (VPC) or 1 (VGW).

protected_resource_name

String

Protected resource name

protected_resource_id

String

Protected resource ID

protected_resource_nat_name

String

Name of the NAT gateway of the protected resource

protected_resource_nat_id

String

ID of the NAT gateway of the protected resource

protected_resource_project_id

String

Tenant ID of the protected resource

protected_resource_mode

String

protected resource mode

status

Integer

The protection status of the protected VPC, 0 indicates that it is associated, and 1 indicates that it is not associated.

Status code: 500

Table 10 Response body parameters

Parameter

Type

Description

error_code

String

Error code

Minimum: 8

Maximum: 36

error_msg

String

Description

Minimum: 2

Maximum: 512

Example Requests

Get EastWest Firewall Response

https://{Endpoint}/v1/09bb24e6f280d23d0f9fc0104b901480/firewall/east-west?limit=10&offset=0

Example Responses

Status code: 200

Get EastWest Firewall Response

{
  "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,
    "special_vpc" : [ ]
  }
}

SDK Sample Code

The SDK sample code is as follows.

Java

 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
48
49
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");

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

        CfwClient client = CfwClient.newBuilder()
                .withCredential(auth)
                .withRegion(CfwRegion.valueOf("<YOUR REGION>"))
                .build();
        ListEastWestFirewallRequest request = new ListEastWestFirewallRequest();
        request.withLimit(<limit>);
        request.withOffset(<offset>);
        request.withEnterpriseProjectId("<enterprise_project_id>");
        request.withFwInstanceId("<fw_instance_id>");
        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());
        }
    }
}

Python

 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
# 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"]

    credentials = BasicCredentials(ak, sk)

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

    try:
        request = ListEastWestFirewallRequest()
        request.limit = <limit>
        request.offset = <offset>
        request.enterprise_project_id = "<enterprise_project_id>"
        request.fw_instance_id = "<fw_instance_id>"
        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)

Go

 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
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")

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

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

    request := &model.ListEastWestFirewallRequest{}
	request.Limit = int32(<limit>)
	request.Offset = int32(<offset>)
	enterpriseProjectIdRequest:= "<enterprise_project_id>"
	request.EnterpriseProjectId = &enterpriseProjectIdRequest
	request.FwInstanceId = "<fw_instance_id>"
	response, err := client.ListEastWestFirewall(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

More

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

Get EastWest Firewall Response

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

Error Codes

See Error Codes.