Updated on 2024-05-13 GMT+08:00

Changing the Status of a Vulnerability

Function

This API is used to change the status of a vulnerability.

Calling Method

For details, see Calling APIs.

URI

PUT /v5/{project_id}/vulnerability/status

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID

Minimum: 1

Maximum: 256

Table 2 Query Parameters

Parameter

Mandatory

Type

Description

enterprise_project_id

No

String

Enterprise project ID. To query all enterprise projects, set this parameter to all_granted_eps.

Minimum: 0

Maximum: 128

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 user token.

Minimum: 32

Maximum: 4096

Content-Type

No

String

Default value: application/json; charset=utf-8

Minimum: 0

Maximum: 128

Table 4 Request body parameters

Parameter

Mandatory

Type

Description

operate_type

Yes

String

Operation type.

  • ignore

  • not_ignore: unignore

  • immediate_repair: fix

  • verify

Minimum: 1

Maximum: 64

remark

No

String

Remarks

Minimum: 0

Maximum: 512

select_type

No

String

Select vulnerabilities.

  • all_vul: Select all vulnerabilities.

  • all_host: Select all server vulnerabilities.

Minimum: 1

Maximum: 64

type

No

String

Vulnerability type. The default value is linux_vul. The options are as follows:

  • linux_vul: Linux vulnerability

  • windows_vul: Windows vulnerability

  • web_cms: Web-CMS vulnerability

  • app_vul: application vulnerability

Minimum: 0

Maximum: 64

data_list

No

Array of VulOperateInfo objects

Vulnerability list

Array Length: 1 - 500

host_data_list

No

Array of HostVulOperateInfo objects

Vulnerability list in the server dimension

Array Length: 1 - 500

backup_info_id

No

String

Specifies the ID of the backup information processed by the vulnerability. If this parameter is not specified, the backup is not performed.

Minimum: 1

Maximum: 128

custom_backup_hosts

No

Array of custom_backup_hosts objects

Customize the vault and backup name used by the backup host. For hosts that are not in the list, the system automatically selects the vault with the largest remaining space and generates a backup name.

Array Length: 1 - 50

Table 5 VulOperateInfo

Parameter

Mandatory

Type

Description

vul_id

Yes

String

Vulnerability ID

Minimum: 1

Maximum: 64

host_id_list

Yes

Array of strings

Server list

Minimum: 1

Maximum: 64

Array Length: 1 - 500

Table 6 HostVulOperateInfo

Parameter

Mandatory

Type

Description

host_id

Yes

String

Server ID

Minimum: 1

Maximum: 64

vul_id_list

Yes

Array of strings

Vulnerability list

Minimum: 1

Maximum: 64

Array Length: 1 - 500

Table 7 custom_backup_hosts

Parameter

Mandatory

Type

Description

host_id

No

String

Host ID

Minimum: 1

Maximum: 128

vault_id

No

String

Vault ID

Minimum: 1

Maximum: 128

backup_name

No

String

Backup name

Minimum: 1

Maximum: 64

Response Parameters

None

Example Requests

Change the vulnerability status of the server whose ID is 71a15ecc-049f-4cca-bd28-5e90aca1817f. Change the status of EulerOS-SA-2021-1894 to ignored.

{
  "operate_type" : "ignore",
  "data_list" : [ {
    "vul_id" : "EulerOS-SA-2021-1894",
    "host_id_list" : [ "71a15ecc-049f-4cca-bd28-5e90aca1817f" ]
  } ]
}

Example Responses

None

SDK Sample Code

The SDK sample code is as follows.

Change the vulnerability status of the server whose ID is 71a15ecc-049f-4cca-bd28-5e90aca1817f. Change the status of EulerOS-SA-2021-1894 to ignored.

 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
50
51
52
53
54
55
56
57
58
59
60
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.hss.v5.region.HssRegion;
import com.huaweicloud.sdk.hss.v5.*;
import com.huaweicloud.sdk.hss.v5.model.*;

import java.util.List;
import java.util.ArrayList;

public class ChangeVulStatusSolution {

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

        HssClient client = HssClient.newBuilder()
                .withCredential(auth)
                .withRegion(HssRegion.valueOf("<YOUR REGION>"))
                .build();
        ChangeVulStatusRequest request = new ChangeVulStatusRequest();
        request.withEnterpriseProjectId("<enterprise_project_id>");
        ChangeVulStatusRequestInfo body = new ChangeVulStatusRequestInfo();
        List<String> listDataListHostIdList = new ArrayList<>();
        listDataListHostIdList.add("71a15ecc-049f-4cca-bd28-5e90aca1817f");
        List<VulOperateInfo> listbodyDataList = new ArrayList<>();
        listbodyDataList.add(
            new VulOperateInfo()
                .withVulId("EulerOS-SA-2021-1894")
                .withHostIdList(listDataListHostIdList)
        );
        body.withDataList(listbodyDataList);
        body.withOperateType("ignore");
        request.withBody(body);
        try {
            ChangeVulStatusResponse response = client.changeVulStatus(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());
        }
    }
}

Change the vulnerability status of the server whose ID is 71a15ecc-049f-4cca-bd28-5e90aca1817f. Change the status of EulerOS-SA-2021-1894 to ignored.

 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
# coding: utf-8

from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkhss.v5.region.hss_region import HssRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkhss.v5 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 = __import__('os').getenv("CLOUD_SDK_AK")
    sk = __import__('os').getenv("CLOUD_SDK_SK")

    credentials = BasicCredentials(ak, sk) \

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

    try:
        request = ChangeVulStatusRequest()
        request.enterprise_project_id = "<enterprise_project_id>"
        listHostIdListDataList = [
            "71a15ecc-049f-4cca-bd28-5e90aca1817f"
        ]
        listDataListbody = [
            VulOperateInfo(
                vul_id="EulerOS-SA-2021-1894",
                host_id_list=listHostIdListDataList
            )
        ]
        request.body = ChangeVulStatusRequestInfo(
            data_list=listDataListbody,
            operate_type="ignore"
        )
        response = client.change_vul_status(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Change the vulnerability status of the server whose ID is 71a15ecc-049f-4cca-bd28-5e90aca1817f. Change the status of EulerOS-SA-2021-1894 to ignored.

 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
50
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    hss "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5/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 := hss.NewHssClient(
        hss.HssClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ChangeVulStatusRequest{}
	enterpriseProjectIdRequest:= "<enterprise_project_id>"
	request.EnterpriseProjectId = &enterpriseProjectIdRequest
	var listHostIdListDataList = []string{
        "71a15ecc-049f-4cca-bd28-5e90aca1817f",
    }
	var listDataListbody = []model.VulOperateInfo{
        {
            VulId: "EulerOS-SA-2021-1894",
            HostIdList: listHostIdListDataList,
        },
    }
	request.Body = &model.ChangeVulStatusRequestInfo{
		DataList: &listDataListbody,
		OperateType: "ignore",
	}
	response, err := client.ChangeVulStatus(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

successful response

Error Codes

See Error Codes.