# 创建订阅事件 - CreateEventSub
#### 功能介绍
添加订阅的事件。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-dws/dws_02_0062.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-dws/dws_02_0056.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                          | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名                  | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | dws:event:createSubscription | Write | -           | -   | dws:eventSub:create | -      |
     
  
 
#### URI
POST /v2/{project_id}/event-subs
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释**： 项目ID。获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-dws/dws_02_0011.html)。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。 |
   
#### 请求参数
表2请求Body参数 
| 参数                       | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| name                     | 是    | String  | **参数解释**： 事件订阅名称。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| source_type              | 否    | String  | **参数解释**： 事件源类型。 **取值范围**： - cluster：集群。   - backup：快照。   - disaster-recovery：容灾。   - data.migration：数据迁移。   - dws.ingestion：DWS数据接入。    |
| source_id                | 否    | String  | **参数解释**： 事件源ID。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| category                 | 否    | String  | **参数解释**： 事件类别。 **取值范围**： 支持management、monitor、security、system alarm。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| severity                 | 否    | String  | **参数解释**： 事件级别。 **取值范围**： 支持normal、warning，可同时包含多值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| tag                      | 否    | String  | **参数解释**： 事件标签。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| enable                   | 否    | Integer | **参数解释**： 是否开启订阅。 **取值范围**： 1为开启，0为关闭。 **默认取值**： 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| notification_target      | 是    | String  | **参数解释**： 消息通知地址。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| notification_target_name | 是    | String  | **参数解释**： 消息主题名称。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| notification_target_type | 是    | String  | **参数解释**： 消息主题类型。 **取值范围**： - SMN：简单消息通知服务                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| time_zone                | 否    | String  | **参数解释**： 时区。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   
#### 响应参数
**状态码：200**
表3响应Body参数 
| 参数                       | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|
| id                       | String  | **参数解释**： 订阅ID。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| name                     | String  | **参数解释**： 订阅名称。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| source_type              | String  | **参数解释**： 事件源类型。 **取值范围**： - cluster：集群。   - backup：快照。   - disaster-recovery：容灾。   - data.migration：数据迁移。   - dws.ingestion：DWS数据接入。    |
| source_id                | String  | **参数解释**： 事件源ID。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| category                 | String  | **参数解释**： 事件类别。 **取值范围**： - management：管理。   - monitor：监控。   - security：安全。   - system alarm：系统告警。                                                                                                                                                                                                                                                                                                                                                                                                          |
| severity                 | String  | **参数解释**： 事件级别。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| tag                      | String  | **参数解释**： 事件标签。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| enable                   | Integer | **参数解释**： 是否开启订阅。 **取值范围**： 1为开启，0为关闭。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| project_id               | String  | **参数解释**： 项目ID。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| name_space               | String  | **参数解释**： 所属服务。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| notification_target      | String  | **参数解释**： 消息通知主题地址。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| notification_target_name | String  | **参数解释**： 消息通知主题名称。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| notification_target_type | String  | **参数解释**： 消息主题类型。 **取值范围**： - SMN：简单消息通知服务                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| language                 | String  | **参数解释**： 语言。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| time_zone                | String  | **参数解释**： 时区。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   
#### 请求示例
开启名为dws-test-66的正常和警告事件订阅，并选择地址为"urn:smn:cn-north-7:4cf650fd46704908aa071b4df2453e1e:dws-test-nodelete"的SMN消息主题"dws-test-nodelete"。
```
post https://{Endpoint}/v2/4cf650fd46704908aa071b4df2453e1e/event-subs
{
  "severity" : "normal",
  "source_id" : "",
  "source_type" : "cluster",
  "tag" : "",
  "category" : "management",
  "enable" : 1,
  "name" : "dws-test-66",
  "notification_target" : "urn:smn:cn-north-7:4cf650fd46704908aa071b4df2453e1e:dws-test-nodelete",
  "notification_target_name" : "dws-test-nodelete",
  "notification_target_type" : "SMN",
  "time_zone" : "GMT+08:00"
}
```
#### 响应示例
**状态码：200**
```
{
  "id" : "41eb162b-cd3b-4c66-88d0-0c2c17fdfc2b",
  "name" : "dws-test-66",
  "category" : "management",
  "severity" : "normal",
  "enable" : 1,
  "language" : "zh-cn",
  "source_type" : "cluster",
  "tag" : "",
  "source_id" : "",
  "project_id" : "4cf650fd46704908aa071b4df2453e1e",
  "name_space" : "DWS",
  "notification_target" : "urn:smn:cn-north-7:4cf650fd46704908aa071b4df2453e1e:dws-test-nodelete",
  "notification_target_name" : "dws-test-nodelete",
  "notification_target_type" : "SMN",
  "time_zone" : "GMT+08:00"
}
```
#### SDK代码示例
SDK代码示例如下。
- [Java]
  开启名为dws-test-66的正常和警告事件订阅，并选择地址为"urn:smn:cn-north-7:4cf650fd46704908aa071b4df2453e1e:dws-test-nodelete"的SMN消息主题"dws-test-nodelete"。
  ```
  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.dws.v2.region.DwsRegion;
  import com.huaweicloud.sdk.dws.v2.*;
  import com.huaweicloud.sdk.dws.v2.model.*;
  public class CreateEventSubSolution {
      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);
          DwsClient client = DwsClient.newBuilder()
                  .withCredential(auth)
                  .withRegion(DwsRegion.valueOf("<YOUR REGION>"))
                  .build();
          CreateEventSubRequest request = new CreateEventSubRequest();
          EventSubRequest body = new EventSubRequest();
          body.withTimeZone("GMT+08:00");
          body.withNotificationTargetType("SMN");
          body.withNotificationTargetName("dws-test-nodelete");
          body.withNotificationTarget("urn:smn:cn-north-7:4cf650fd46704908aa071b4df2453e1e:dws-test-nodelete");
          body.withEnable(1);
          body.withTag("");
          body.withSeverity("normal");
          body.withCategory("management");
          body.withSourceId("");
          body.withSourceType("cluster");
          body.withName("dws-test-66");
          request.withBody(body);
          try {
              CreateEventSubResponse response = client.createEventSub(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]
  开启名为dws-test-66的正常和警告事件订阅，并选择地址为"urn:smn:cn-north-7:4cf650fd46704908aa071b4df2453e1e:dws-test-nodelete"的SMN消息主题"dws-test-nodelete"。
  ```
  # coding: utf-8
  import os
  from huaweicloudsdkcore.auth.credentials import BasicCredentials
  from huaweicloudsdkdws.v2.region.dws_region import DwsRegion
  from huaweicloudsdkcore.exceptions import exceptions
  from huaweicloudsdkdws.v2 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 = DwsClient.new_builder() \
          .with_credentials(credentials) \
          .with_region(DwsRegion.value_of("<YOUR REGION>")) \
          .build()
      try:
          request = CreateEventSubRequest()
          request.body = EventSubRequest(
              time_zone="GMT+08:00",
              notification_target_type="SMN",
              notification_target_name="dws-test-nodelete",
              notification_target="urn:smn:cn-north-7:4cf650fd46704908aa071b4df2453e1e:dws-test-nodelete",
              enable=1,
              tag="",
              severity="normal",
              category="management",
              source_id="",
              source_type="cluster",
              name="dws-test-66"
          )
          response = client.create_event_sub(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]
  开启名为dws-test-66的正常和警告事件订阅，并选择地址为"urn:smn:cn-north-7:4cf650fd46704908aa071b4df2453e1e:dws-test-nodelete"的SMN消息主题"dws-test-nodelete"。
  ```
  package main
  import (
  "fmt"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
      dws "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dws/v2"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dws/v2/model"
      region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dws/v2/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, err := basic.NewCredentialsBuilder().
          WithAk(ak).
          WithSk(sk).
          WithProjectId(projectId).
          SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      hcClient, err := dws.DwsClientBuilder().
           WithRegion(region.ValueOf("<YOUR REGION>")).
           WithCredential(auth).
           SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      client := dws.NewDwsClient(hcClient)
      request := &model.CreateEventSubRequest{}
  timeZoneEventSubRequest:= "GMT+08:00"
  enableEventSubRequest:= int32(1)
  tagEventSubRequest:= ""
  severityEventSubRequest:= "normal"
  categoryEventSubRequest:= "management"
  sourceIdEventSubRequest:= ""
  sourceTypeEventSubRequest:= "cluster"
  request.Body = &model.EventSubRequest{
  TimeZone: &timeZoneEventSubRequest,
  NotificationTargetType: "SMN",
  NotificationTargetName: "dws-test-nodelete",
  NotificationTarget: "urn:smn:cn-north-7:4cf650fd46704908aa071b4df2453e1e:dws-test-nodelete",
  Enable: &enableEventSubRequest,
  Tag: &tagEventSubRequest,
  Severity: &severityEventSubRequest,
  Category: &categoryEventSubRequest,
  SourceId: &sourceIdEventSubRequest,
  SourceType: &sourceTypeEventSubRequest,
  Name: "dws-test-66",
  }
  response, err := client.CreateEventSub(request)
  if err == nil {
          fmt.Printf("%+v\n", response)
      } else {
          fmt.Println(err)
      }
  }
  ```
- [更多]
  更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/DWS/sdk?api=CreateEventSub)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述        |
|:---|:---|
| 200 | 添加事件订阅成功。 |
| 400 | 请求错误。     |
| 401 | 鉴权失败。     |
| 403 | 没有操作权限。   |
| 404 | 找不到资源。    |
| 500 | 服务内部错误。   |
| 503 | 服务不可用。    |
   
