
# SMN
#### 功能说明
安全云脑系统内置插件，可调用SMN（消息通知服务）云服务接口执行操作。
系统内置插件均已存在对应内置的操作连接。
#### 查看SMN插件详情和操作连接
1. [登录安全云脑 SecMaster控制台](https://console.huaweicloud.com/secmaster/#/secmaster/ssa/overview)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-secmaster/zh-cn_image_0000002020168740.png)，选择区域和项目。
3. 在左侧导航栏选择"工作空间 \> 空间管理"，并在工作空间列表中，单击目标工作空间名称，进入目标工作空间管理页面。 
   图1进入目标工作空间管理页面   
   ![](https://support.huaweicloud.com/usermanual-secmaster/zh-cn_image_0000002572515210.png "点击放大")
   
   
   
4. 在左侧导航栏选择"安全编排 \> 插件管理"，进入插件管理页面。 
   
   图2插件管理页面   
   ![](https://support.huaweicloud.com/usermanual-secmaster/zh-cn_image_0000002364484993.png "点击放大")
   
   
5. 在插件管理页面，选择华为云目录下的SMN，默认进入插件"详情"页签。详情页签展示插件已关联操作连接的登录凭证信息。 
   
   
   
6. 单击SMN插件的"操作连接"页签，进入操作连接页面，可查看SMN插件已关联的操作连接信息。 
   
   
   
7. 若用户需编辑或删除操作连接，可参见[编辑操作连接](https://support.huaweicloud.com/usermanual-secmaster/secmaster_01_0085.html#secmaster_01_0085__zh-cn_topic_0000001371632197_section161617451014)、[删除操作连接](https://support.huaweicloud.com/usermanual-secmaster/secmaster_01_0085.html#secmaster_01_0085__zh-cn_topic_0000001371632197_section89310558011)。新增插件操作连接可参见[新增操作连接](https://support.huaweicloud.com/usermanual-secmaster/secmaster_01_0085.html#secmaster_01_0085__zh-cn_topic_0000001371632197_section693372612019)，一个插件可存在多个操作连接。
 
#### 插件执行函数listSubscriptionsByTopic说明
- [函数listSubscriptionsByTopic参数说明]：介绍函数的输入参数和输出参数。
- [函数listSubscriptionsByTopic输出示例]：给出函数的输出示例。
 
 #### 函数listSubscriptionsByTopic参数说明
函数功能：调用SMN（消息通知服务）接口，分页获取特定Topic的订阅列表，订阅列表按照订阅创建时间进行升序排列。
表1函数listSubscriptionsByTopic入参说明 
| 参数名称     | 参数类型   | 参数描述                              | 是否必填 |
|:---|:---|:---|:---|
| topicUrn | String | 消息通知服务主题唯一的资源标识，可在SMN服务主题页面获取该标识。 | 是    |
| page     | Int    | 分页查询页码，默认为1。                      | 否    |
| size     | Int    | 分页查询每页数据条数，默认为100，最大值为100。        | 否    |
| endpoint | String | 指定查询某订阅者终端名称。                     | 否    |
   
表2函数listSubscriptionsByTopic出参说明 
| 参数名称              | 参数类型  | 参数描述       |
|:---|:---|:---|
| subscriptionCount | Int   | 该主题订阅者数量。  |
| subscriptions     | Array | 订阅者详细信息列表。 |
   
 #### 函数listSubscriptionsByTopic输出示例
```
{
  "subscriptionCount": 2,
  "subscriptions": [
    {
      "topic_urn": "urn:smn:cn-north-7:f8ae07xxxx8f4e418c5fxxxxx6b105:SecMaster-Notification",
      "protocol": "email",
      "subscription_urn": "urn:smn:cn-north-7:f8axxx4148fxxxxxxxe15833f6b105:SecMaster-Notification:27fd07xxx9f442xxxxxxxx8935813ad3",
      "owner": "f8ae07d4148f4e418c5fe15833f6b105",
      "endpoint": "yexxxx0@h-parxxxxnxxrs.com",
      "remark": "",
      "status": 3
    },
    {
      "topic_urn": "urn:smn:cn-north-7:f8ae07d4xxxxe418xxx3f6b105:SecMaster-Notification",
      "protocol": "email",
      "subscription_urn": "urn:smn:cn-north-7:f8aexxx8f4exxx5833f6b105:SecMaster-Notification:b0xxxea82xxx097a65d2e1a1edbe8",
      "owner": "f8ae07d4xxxxxe4xxxxfe15833f6b105",
      "endpoint": "zhxxxxxxxg2@h-paxxxxx.com",
      "remark": "",
      "status": 3
    }
  ]
}
```
#### 插件执行函数publishMessage说明
- [函数publishMessage参数说明]：介绍函数的输入参数和输出参数。
- [函数publishMessage输出示例]：给出函数的输出示例。
 
 #### 函数publishMessage参数说明
函数功能：调用SMN（消息通知服务）接口，将消息发送给Topic的所有订阅端点。
表3函数publishMessage入参说明 
| 参数名称        | 参数类型   | 参数描述                                                                                                                                                                                 | 是否必填 |
|:---|:---|:---|:---|
| topicUrn    | String | 消息通知服务主题唯一标识，可在SMN服务主题页面获取该标识。                                                                                                                                                       | 否    |
| subject     | String | 消息标题，给邮箱订阅者发送邮件时作为邮件主题。                                                                                                                                                              | 否    |
| message     | String | 发送的消息，最多256KB。                                                                                                                                                                       | 否    |
| language    | String | 查询结果的响应语言，可取值范围：zh-cn、en-us，不支持大写，不支持其他取值。 其中zh-cn表示查询结果显示语言为简体中文；en-us表示查询结果显示语言为英语。 | 否    |
| agency_type | String | 多账号统一适配参数，使用默认值即可。                                                                                                                                                                   | 否    |
   
表4函数publishMessage出参说明 
| 参数名称   | 参数类型   | 参数描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|
| header | Object | 接口返回的响应结果的header，包含请求和响应的基本信息，如请求时间、响应服务、请求Id等信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| code   | Int    | 状态码，表明请求是否成功。 "code"取值示例说明： - "code"为"200"：表示请求成功。  - "code"为"401"：表示账号或密码错误。  - "code"为"403"：表示权限不足。  - "code"为"404"：表示请求资源不存在。   |
| body   | Object | 接口返回参数的具体内容，包含情报的详细信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   
 #### 函数publishMessage输出示例
```
{
  "headers": {
    "content-length": "97",
    "X-Request-Id": "6962c9b0f7f946d4ac557044d2aa61bd",
    "content-type": "application/json; charset=UTF-8"
  },
  "code": 200,
  "body": {
    "message_id": "6a93a879a41b4746958aad33e2dec017",
    "request_id": "6962c9b0f7f946d4ac557044d2aa61bd"
  }
}
```
#### 插件执行函数showTopicList说明
- [函数showTopicList参数说明]：介绍函数的输入参数和输出参数。
- [函数showTopicList输出示例]：给出函数的输出示例。
 
 #### 函数showTopicList参数说明
函数功能：调用SMN（消息通知服务）接口，分页查询Topic列表。
表5函数showTopicList入参说明 
| 参数名称      | 参数类型   | 参数描述                       | 是否必填 |
|:---|:---|:---|:---|
| topicName | String | 消息通知服务主题唯一标识，检索的主题名称，模糊匹配。 | 否    |
| page      | Int    | 分页查询页码，默认为1。               | 否    |
| size      | Int    | 分页查询每页数据条数，默认为100，最大值为100。 | 否    |
   
表6函数showTopicList出参说明 
| 参数名称       | 参数类型  | 参数描述        |
|:---|:---|:---|
| topicList  | Array | Topic结构体数组。 |
| topicCount | Int   | 返回的Topic个数。 |
   
 #### 函数showTopicList输出示例
```
{
"request_id": "6a63a18b8bab4xxxxxxxxxxbd9cb80d0085",
"topic_count": 1,
"topics": [{
"topic_urn": "urn:smn:regionId:8bad8a40e0f746xxxxxxe3f93a8183:xxxxx",
"display_name": "testtest",
"name": "test_topic_v1",
"push_policy": 0,
"enterprise_project_id": "0",
"topic_id": "84698185xxxxxx31aa441d8e2cf2",
"create_time": "2016-08-02T08:22:18Z",
"update_time": "2016-08-02T08:22:18Z"
}]
}
```
#### 插件执行函数deleteSubscription说明
- [函数deleteSubscription参数说明]：介绍函数的输入参数和输出参数。
- [函数deleteSubscription输出示例]：给出函数的输出示例。
 
 #### 函数deleteSubscription参数说明
函数功能：调用SMN（消息通知服务）接口，删除订阅用户。
表7函数deleteSubscription入参说明 
| 参数名称            | 参数类型   | 参数描述                         | 是否必填 |
|:---|:---|:---|:---|
| topicUrn        | String | 消息通知服务主题唯一标识，可在SMN服务主题页面查看。  | 否    |
| subscriptionUrn | String | 消息通知服务订阅者唯一标识，可在SMN服务订阅页面查看。 | 否    |
| agency_type     | String | 多账号统一适配参数，使用默认值即可。           | 否    |
   
表8函数deleteSubscription出参说明 
| 参数名称   | 参数类型   | 参数描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|
| header | Object | 接口返回的响应结果的header，包含请求和响应的基本信息，如请求时间、响应服务、请求Id等信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| code   | Int    | 状态码，表明请求是否成功。 "code"取值示例说明： - "code"为"200"：表示请求成功。  - "code"为"401"：表示账号或密码错误。  - "code"为"403"：表示权限不足。  - "code"为"404"：表示请求资源不存在。   |
| body   | Object | 接口返回参数的具体内容，包含情报的详细信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   
 #### 函数deleteSubscription输出示例
```
{
  "headers": {
    "content-length": "49",
    "X-Request-Id": "6d34c5dad23c4a56993efba96b064aad",
    "content-type": "application/json; charset=UTF-8"
  },
  "code": 200,
  "body": {
    "request_id": "6d34c5dad23c4a56993efba96b064aad"
  }
}
```
#### 插件执行函数createTopic说明
- [函数createTopic参数说明]：介绍函数的输入参数和输出参数。
- [函数createTopic输出示例]：给出函数的输出示例。
 
 #### 函数createTopic参数说明
函数功能：调用SMN（消息通知服务）接口，创建消息通知主题Topic，可通过订阅主题进行消息通知。
表9函数createTopic入参说明 
| 参数名称        | 参数类型   | 参数描述                          | 是否必填 |
|:---|:---|:---|:---|
| topicName   | String | 创建消息通知服务主题唯一标识，后续查询使用该主题的key。 | 否    |
| displayName | String | 创建消息通知服务主题别名，消息通知时显示名称。       | 否    |
| agency_type | String | 多账号统一适配参数，使用默认值即可。            | 否    |
   
表10函数createTopic出参说明 
| 参数名称   | 参数类型   | 参数描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| header | Object | 接口返回的响应结果的header，包含请求和响应的基本信息，如请求时间、响应服务、请求Id等信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| code   | Int    | 状态码，表明请求是否成功。 "code"取值示例说明： - "code"为"200"：表示请求成功。  - "code"为"401"：表示账号或密码错误。  - "code"为"403"：表示权限不足。  - "code"为"404"：表示请求资源不存在。   |
| body   | Object | 接口返回参数的具体内容，包含情报的详细信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
 #### 函数createTopic输出示例
```
{
  "headers": {
    "content-length": "120",
    "X-Request-Id": "06b920f350e4452cbc9f5194720158cf",
    "content-type": "application/json; charset=UTF-8"
  },
  "code": 201,
  "body": {
    "topic_urn": "urn:smn:cn-north-7:f8aexxxx418c5fe15xxx05:test",
    "request_id": "06b920f350e4452cbc9f5194720158cf"
  }
}
```
#### 插件执行函数addSubscription说明
- [函数addSubscription参数说明]：介绍函数的输入参数和输出参数。
- [函数addSubscription输出示例]：给出函数的输出示例。
 
 #### 函数addSubscription参数说明
函数功能：调用SMN（消息通知服务）接口，为指定Topic添加一个订阅者，如果订阅者的状态为未确认，则向订阅者发送一个确认的消息。**待订阅者进行ConfirmSubscription确认后，该订阅者才能收到Topic发布的消息**。
表11函数addSubscription入参说明 
| 参数名称        | 参数类型   | 参数描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 是否必填 |
|:---|:---|:---|:---|
| topicUrn    | String | 创建消息通知服务主题唯一标识，可在SMN服务主题页面查看                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 否    |
| protocol    | String | 不同协议对应不同的endpoint（接收消息的接入点）。 目前支持的协议包括： - "email"：邮件传输协议，endpoint为邮箱地址。  - "sms"：短信传输协议，endpoint为手机号码。   | 否    |
| endpoint    | String | 订阅者终端： - email协议，接入点必须是邮件地址。  - sms协议，接入点必须是一个电话号码。                                                                                                                   | 否    |
| agency_type | String | 多账号统一适配参数，使用默认值即可。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 否    |
   
表12函数addSubscription出参说明 
| 参数名称   | 参数类型   | 参数描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| header | Object | 接口返回的响应结果的header，包含请求和响应的基本信息，如请求时间、响应服务、请求Id等信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| code   | Int    | 状态码，表明请求是否成功。 "code"取值示例说明： - "code"为"200"：表示请求成功。  - "code"为"401"：表示账号或密码错误。  - "code"为"403"：表示权限不足。  - "code"为"404"：表示请求资源不存在。   |
| body   | Object | 接口返回参数的具体内容，包含情报的详细信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
 #### 函数addSubscription输出示例
```
{
  "headers": {
    "content-length": "160",
    "X-Request-Id": "c000414f92854bcc89cedd5709522aff",
    "content-type": "application/json; charset=UTF-8"
  },
  "code": 201,
  "body": {
    "subscription_urn": "urn:smn:cn-north-7:f8ae07d4148f4xxxx15833f6b105:test:5e1a12580fxxxx22745666408ec",
    "request_id": "c000xxxxx4bcc89cedd5709522aff"
  }
}
```
