Updated on 2024-07-02 GMT+08:00

Querying Features Available at a Site

Function

This API is used to query the features available at specific site.

Calling Method

For details, see Calling APIs.

URI

GET /v1/{project_id}/waf/config/console

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID. To obtain it, go to Huawei Cloud management cons**. Then, in the Projects area, view Project ID of the corresponding project.

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token. It can be obtained by calling the IAM API (value of X-Subject-Token in the response header).

Content-Type

Yes

String

Content type.

Response Parameters

Status code: 200

Table 3 Response body parameters

Parameter

Type

Description

eps

Boolean

Whether EPS is supported. The options are false and true.

  • True: EPS is supported.

  • false: EPS is not supported.

tls

Boolean

Whether to support the TLS version. The value can be true or false. If you set it to true, you can configure TLS v1.0, TLS v1.1, or TLS v1.2. The default value is TLS v1.0.

  • True: TLS version is supported.

  • false: TLS version is not supported.

ipv6

Boolean

Whether IPv6 protection is supported. The options are false and true.

  • True: IPv6 protection is supported.

  • false: IPv6 protection is not supported.

alert

Boolean

Whether alarm reporting is supported. The options are false and true.

  • True: Alarm reporting is supported.

  • false: Alarm reporting is not supported.

custom

Boolean

Whether precise protection is supported. The options are false and true.

  • True: Precise protection is supported.

  • false: Precise protection is not supported.

elb_mode

Boolean

Whether ELB mode is supported. The options are false and true.

  • True: The ELB mode is supported.

  • false: The ELB mode is not supported.

event_lts

Boolean

Whether LTS logging is supported. The options are false and true.

  • True: LTS logging is supported.

  • false: LTS logging is not supported.

multi_dns

Boolean

Whether multi-DNS resolution is supported. The options are false and true.

  • True: The multi-DNS resolution is supported.

  • false: The multi-DNS resolution is not supported.

search_ip

Boolean

Whether IP address search is supported. The options are false and true.

  • True: IP address search is supported.

  • false: IP address search is not supported.

cc_enhance

Boolean

Whether CC attack protection is supported. The options are false and true.

  • True: CC attack protection is supported.

  • false: CC attack protection is not supported.

cname_switch

Boolean

Whether CNAME switchover is supported. The options are false and true.

  • True: CNAME switchover is supported.

  • false: CNAME switchover is not supported.

custom_block

Boolean

Whether custom block page is supported. The options are false and true.

  • True: The custom block page is supported.

  • false: The custom block page is not supported.

advanced_ignore

Boolean

Whether false alarm masking is supported. The options are false and true.

  • True: The false alarm masking is supported.

  • false: The false alarm masking is not supported.

js_crawler_enable

Boolean

Whether JavaScript-based anti-crawler is supported. The options are false and true.

  • True: The JavaScript-based anti-crawler is supported.

  • false: The JavaScript-based anti-crawler is not supported.

deep_decode_enable

Boolean

Whether deep inspection in basic web protection is supported. The options are false and true.

  • True: The deep inspection is supported.

  • false: The deep inspection is not supported.

overview_bandwidth

Boolean

Whether in-depth resolution is supported. The options are false and true.

  • True: The in-depth resolution is supported.

  • false: The in-depth resolution is not supported.

proxy_use_oldcname

Boolean

Whether old CNAME resolution is supported. The options are false and true.

  • True: The old CNAME resolution is supported.

  • false: The old CNAME resolution is not supported.

check_all_headers_enable

Boolean

Whether header inspection is supported. The options are false and true.

  • True: The header inspection is supported.

  • false: The header inspection is not supported.

geoip_enable

Boolean

Whether to support geolocation access control. The options are false: not supported; true: supported.

load_balance_enable

Boolean

Whether to support domain name access load balancing. The options are false: not supported; true: supported.

ipv6_protection_enable

Boolean

Whether IPv6 defense is supported. The options are false: not supported; true: supported.

policy_sharing_enable

Boolean

Whether to support policy sharing. The options are false: not supported; true: supported.

ip_group

Boolean

Whether the IP address group is supported. The options are false: not supported; true: supported.

robot_action_enable

Boolean

Whether to support website anti-crawler. The options are false: not supported; true: supported.

http2_enable

Boolean

Whether to support HTTP2. The options are false: not supported; true: supported.

timeout_config_enable

Boolean

Whether to support the timeout configuration. The options are false: not supported; true: supported.

Status code: 400

Table 4 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Status code: 401

Table 5 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Status code: 500

Table 6 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Example Requests

The following example shows how to query the features enabled at a site. The project ID is specified by project_id and the time is from 2022-04-21 00:00:00 to 2022-04-21 14:45:20.

GET https://{Endpoint}/v1/{project_id}/waf/config/console?enterprise_project_id=0&from=1650470400089&to=1650523520089

Example Responses

Status code: 200

OK

{
  "eps" : true,
  "tls" : true,
  "ipv6" : true,
  "alert" : true,
  "custom" : true,
  "ip_group" : true,
  "event_lts" : true,
  "multi_dns" : true,
  "search_ip" : true,
  "cc_enhance" : true,
  "cname_switch" : true,
  "custom_block" : true,
  "geoip_enable" : true,
  "http2_enable" : true,
  "advanced_ignore" : true,
  "js_crawler_enable" : true,
  "deep_decode_enable" : true,
  "overview_bandwidth" : true,
  "proxy_use_oldcname" : false,
  "load_balance_enable" : true,
  "robot_action_enable" : true,
  "policy_sharing_enable" : true,
  "timeout_config_enable" : true,
  "ipv6_protection_enable" : true,
  "check_all_headers_enable" : true,
  "elb_mode" : true
}

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.waf.v1.region.WafRegion;
import com.huaweicloud.sdk.waf.v1.*;
import com.huaweicloud.sdk.waf.v1.model.*;


public class ShowConsoleConfigSolution {

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

        WafClient client = WafClient.newBuilder()
                .withCredential(auth)
                .withRegion(WafRegion.valueOf("<YOUR REGION>"))
                .build();
        ShowConsoleConfigRequest request = new ShowConsoleConfigRequest();
        try {
            ShowConsoleConfigResponse response = client.showConsoleConfig(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 huaweicloudsdkwaf.v1.region.waf_region import WafRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkwaf.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 = WafClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(WafRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ShowConsoleConfigRequest()
        response = client.show_console_config(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"
    waf "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/waf/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/waf/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/waf/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 := waf.NewWafClient(
        waf.WafClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ShowConsoleConfigRequest{}
	response, err := client.ShowConsoleConfig(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

OK

400

Request failed.

401

The token does not have required permissions.

500

Internal server error.

Error Codes

See Error Codes.