
# 创建泛协议配置 - CreateProtocolConfig
#### 功能介绍
提供创建泛协议配置的功能。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-iothub/iot_06_v5_0004.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-iothub/iot_06_v5_0201.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                          | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | iotda:protocolconfigs:create | Write | instance \* | - g:EnterpriseProjectId   - g:ResourceTag/\<tag-key\>   - iotda:ProtocolConfigEnableSSL    | -  | -      |
     
  
 
#### URI
POST /v5/iot/{project_id}/protocol-configs
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                               |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数说明** ：项目ID。获取方法请参见 [获取项目ID](https://support.huaweicloud.com/api-iothub/iot_06_v5_1001.html)。 |
   
#### 请求参数
表2请求Header参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                          |
|:---|:---|:---|:---|
| Instance-Id | 否    | String | **参数说明** ：实例ID。物理多租下各实例的唯一标识，建议携带该参数，在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面，选择左侧导航栏"总览"页签查看当前实例的ID，具体获取方式请参考[查看实例详情](https://support.huaweicloud.com/usermanual-iothub/iot_01_0079.html#section1)。 |
   
表3请求Body参数 
| 参数                   | 是否必选 | 参数类型                                                                                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| port                 | 是    | Integer                                                                                                                     | **参数说明**：泛协议配置的端口号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| keepalive_timeout    | 否    | Integer                                                                                                                     | **参数说明**：连接空闲断链时间，单位（s）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| protocol_type        | 是    | String                                                                                                                      | **参数说明**：协议类型。 **取值范围**：TCP：通用TCP协议接入                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| description          | 否    | String                                                                                                                      | **参数说明**：泛协议的描述信息。 **取值范围**：长度不超过2048，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ssl_enable           | 否    | Boolean                                                                                                                     | **参数说明**：是否开启tls加密传输。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| frame_decode_configs | 否    | Array of [FrameDecodeConfig] objects | **参数说明**：码流拆包组包配置列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| codec_mode           | 是    | String                                                                                                                      | **参数说明**：编解码类型。 **取值范围**： - FGS：将编解码插件以函数形式部署到FunctionGraph。   - PLUGIN：将编解码插件以OSGI插件形式部署到设备接入平台，使用该方式需提工单联系技术支持。    |
| func_urn             | 否    | String                                                                                                                      | **参数说明**：函数的URN（Uniform Resource Name），唯一标识函数，采用FGS进行编解码的对应函数地址。 **取值范围**：长度不超过256，只允许字母、数字、下划线（_）、连接符（-）、分隔符（:）的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
 表4FrameDecodeConfig 
| 参数                     | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| frame_decode_type      | 否    | String  | **参数说明**：拆包组包规则。 **取值范围**： - DELIMITER：通过特定分隔符（如逗号、换行符等）来拆分或组合数据包。   - FIXED_LENGTH：按照固定的字节长度，对每一帧数据进行拆分或组合。   - FIELD_LENGTH：每一帧的长度可变，通过数据包中携带的长度字段信息进行拆分或组合。    |
| max_frame_length       | 否    | Integer | **参数说明**：单个帧的最大长度。拆包规则为DELIMITER\|FIELD_LENGTH时，该参数必选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| delimiter              | 否    | String  | **参数说明**：分隔符，hex string格式。拆包规则为DELIMITER，该参数必选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| fixed_frame_length     | 否    | Integer | **参数说明**：单个帧的固定长度。拆包规则为FIXED_LENGTH，该参数必选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| field_offset           | 否    | Integer | **参数说明**：指定长度字段在数据包中的起始位置（偏移量）。拆包规则为FIELD_LENGTH ，该参数必选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| field_length           | 否    | Integer | **参数说明**：指定长度字段占用的字节数。拆包规则为FIELD_LENGTH，该参数必选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| initial_bytes          | 否    | String  | **参数说明**：起始字符，hex string格式。拆包规则为FIXED_LENGTH，该参数可选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| adjustment_length      | 否    | Integer | **参数说明**：调整长度字段的值。拆包规则为FIELD_LENGTH，该参数可选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| initial_bytes_to_strip | 否    | Integer | **参数说明**：指定解码后从数据包中去掉的字节数。通常用于去掉长度字段，只保留数据内容。拆包规则为FIELD_LENGTH，该参数可选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   
#### 响应参数
**状态码：201**
表5响应Body参数 
| 参数                   | 参数类型                                                                                                                         | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|
| protocol_id          | String                                                                                                                       | **参数说明**：泛协议配置ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| port                 | Integer                                                                                                                      | **参数说明**：泛协议配置的端口号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| keepalive_timeout    | Integer                                                                                                                      | **参数说明**：连接空闲断链时间，单位（s）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| protocol_type        | String                                                                                                                       | **参数说明**：协议类型。 **取值范围**：TCP：通用TCP协议接入                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| description          | String                                                                                                                       | **参数说明**：泛协议的描述信息。 **取值范围**：长度不超过2048，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ssl_enable           | Boolean                                                                                                                      | **参数说明**：是否开启tls加密传输。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| frame_decode_configs | Array of [FrameDecodeConfig] objects | **参数说明**：码流拆包组包配置列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| codec_mode           | String                                                                                                                       | **参数说明**：编解码类型。 **取值范围**： - FGS：将编解码插件以函数形式部署到FunctionGraph。   - PLUGIN：将编解码插件以OSGI插件形式部署到设备接入平台，使用该方式需提工单联系技术支持。    |
| func_urn             | String                                                                                                                       | **参数说明**：函数的URN（Uniform Resource Name），唯一标识函数，采用FGS进行编解码的对应函数地址。 **取值范围**：长度不超过256，只允许字母、数字、下划线（_）、连接符（-）、分隔符（:）的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| create_time          | String                                                                                                                       | **参数说明**：在物联网平台查询自定义鉴权的时间。格式：yyyyMMdd'T'HHmmss'Z'，如：20151212T121212Z。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| update_time          | String                                                                                                                       | **参数说明**：在物联网平台更新查询自定义鉴权的时间。格式：yyyyMMdd'T'HHmmss'Z'，如：20151212T121212Z。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   
 表6FrameDecodeConfig 
| 参数                     | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| frame_decode_type      | String  | **参数说明**：拆包组包规则。 **取值范围**： - DELIMITER：通过特定分隔符（如逗号、换行符等）来拆分或组合数据包。   - FIXED_LENGTH：按照固定的字节长度，对每一帧数据进行拆分或组合。   - FIELD_LENGTH：每一帧的长度可变，通过数据包中携带的长度字段信息进行拆分或组合。    |
| max_frame_length       | Integer | **参数说明**：单个帧的最大长度。拆包规则为DELIMITER\|FIELD_LENGTH时，该参数必选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| delimiter              | String  | **参数说明**：分隔符，hex string格式。拆包规则为DELIMITER，该参数必选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| fixed_frame_length     | Integer | **参数说明**：单个帧的固定长度。拆包规则为FIXED_LENGTH，该参数必选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| field_offset           | Integer | **参数说明**：指定长度字段在数据包中的起始位置（偏移量）。拆包规则为FIELD_LENGTH ，该参数必选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| field_length           | Integer | **参数说明**：指定长度字段占用的字节数。拆包规则为FIELD_LENGTH，该参数必选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| initial_bytes          | String  | **参数说明**：起始字符，hex string格式。拆包规则为FIXED_LENGTH，该参数可选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| adjustment_length      | Integer | **参数说明**：调整长度字段的值。拆包规则为FIELD_LENGTH，该参数可选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| initial_bytes_to_strip | Integer | **参数说明**：指定解码后从数据包中去掉的字节数。通常用于去掉长度字段，只保留数据内容。拆包规则为FIELD_LENGTH，该参数可选。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   
#### 请求示例
创建泛协议配置
```
POST https://{endpoint}/v5/iot/{project_id}/protocol-configs
{
  "port" : 6886,
  "protocol_type" : "TCP",
  "description" : "tcp protocol",
  "frame_decode_configs" : [ {
    "frame_decode_type" : "DELIMITER",
    "max_frame_length" : 200,
    "delimiter" : "]"
  } ],
  "codec_mode" : "FGS",
  "keepalive_timeout" : 600,
  "ssl_enable" : true,
  "func_urn" : "urn:fss:cn-north-5:d92d9c5eb8e347b5bb31ecfe5bc0c4e1:function:default:mqtt_auth:latest"
}
```
#### 响应示例
**状态码：201**
Created
```
{
  "protocol_id" : "9739d740-4da1-46e1-8075-77145265cd92",
  "port" : 6886,
  "protocol_type" : "TCP",
  "description" : "tcp protocol",
  "frame_decode_configs" : [ {
    "frame_decode_type" : "DELIMITER",
    "max_frame_length" : 200,
    "delimiter" : "]"
  } ],
  "codec_mode" : "FGS",
  "keepalive_timeout" : 600,
  "ssl_enable" : true,
  "func_urn" : "urn:fss:cn-north-5:d92d9c5eb8e347b5bb31ecfe5bc0c4e1:function:default:mqtt_auth:latest",
  "create_time" : "20231031T070547Z",
  "update_time" : "20231031T070547Z"
}
```
#### SDK代码示例
SDK代码示例如下。
- [Java]
  创建泛协议配置
  ```
  package com.huaweicloud.sdk.test;
  import com.huaweicloud.sdk.core.auth.ICredential;
  import com.huaweicloud.sdk.core.auth.AbstractCredentials;
  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.core.region.Region;
  import com.huaweicloud.sdk.iotda.v5.*;
  import com.huaweicloud.sdk.iotda.v5.model.*;
  import java.util.List;
  import java.util.ArrayList;
  public class CreateProtocolConfigSolution {
      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");
          // ENDPOINT：请在控制台的"总览"界面的"平台接入地址"中查看“应用侧”的https接入地址。
          String iotdaEndpoint = "<YOUR ENDPOINT>";
          String projectId = "{project_id}";
          ICredential auth = new BasicCredentials()
                  .withProjectId(projectId)
                  // 标准版/企业版需要使用衍生算法，基础版请删除配置"withDerivedPredicate";
                  .withDerivedPredicate(AbstractCredentials.DEFAULT_DERIVED_PREDICATE) // Used in derivative ak/sk authentication scenarios
                  .withAk(ak)
                  .withSk(sk);
          IoTDAClient client = IoTDAClient.newBuilder()
                  .withCredential(auth)
                  // 标准版/企业版：需自行创建Region对象，基础版：请使用IoTDARegion的region对象，如"withRegion(IoTDARegion.CN_NORTH_4)"
                  .withRegion(new Region("cn-north-4", iotdaEndpoint))
                  .build();
          CreateProtocolConfigRequest request = new CreateProtocolConfigRequest();
          CreateProtocolConfigDTO body = new CreateProtocolConfigDTO();
          List<FrameDecodeConfig> listbodyFrameDecodeConfigs = new ArrayList<>();
          listbodyFrameDecodeConfigs.add(
              new FrameDecodeConfig()
                  .withFrameDecodeType("DELIMITER")
                  .withMaxFrameLength(200)
                  .withDelimiter("]")
          );
          body.withFuncUrn("urn:fss:cn-north-5:d92d9c5eb8e347b5bb31ecfe5bc0c4e1:function:default:mqtt_auth:latest");
          body.withCodecMode("FGS");
          body.withFrameDecodeConfigs(listbodyFrameDecodeConfigs);
          body.withSslEnable(true);
          body.withDescription("tcp protocol");
          body.withProtocolType("TCP");
          body.withKeepaliveTimeout(600);
          body.withPort(6886);
          request.withBody(body);
          try {
              CreateProtocolConfigResponse response = client.createProtocolConfig(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]
  创建泛协议配置
  ```
  # coding: utf-8
  import os
  from huaweicloudsdkcore.auth.credentials import BasicCredentials
  from huaweicloudsdkcore.auth.credentials import DerivedCredentials
  from huaweicloudsdkcore.region.region import Region as coreRegion
  from huaweicloudsdkcore.exceptions import exceptions
  from huaweicloudsdkiotda.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 = os.environ["CLOUD_SDK_AK"]
      sk = os.environ["CLOUD_SDK_SK"]
      # ENDPOINT：请在控制台的"总览"界面的"平台接入地址"中查看“应用侧”的https接入地址，下面创建Client时需要使用自行创建的Region对象，基础版：请选择IoTDAClient中的Region对象 如： IoTDAClient.new_builder().with_region(IoTDARegion.CN_NORTH_4)
      endpoint = "<YOUR ENDPOINT>";
      projectId = "{project_id}"
      credentials = BasicCredentials(ak, sk, projectId).with_derived_predicate(DerivedCredentials.get_default_derived_predicate())
      client = IoTDAClient.new_builder() \
          .with_credentials(credentials) \
          .with_region(coreRegion(id="cn-north-4", endpoint=endpoint)) \
          .build()
      try:
          request = CreateProtocolConfigRequest()
          listFrameDecodeConfigsbody = [
              FrameDecodeConfig(
                  frame_decode_type="DELIMITER",
                  max_frame_length=200,
                  delimiter="]"
              )
          ]
          request.body = CreateProtocolConfigDTO(
              func_urn="urn:fss:cn-north-5:d92d9c5eb8e347b5bb31ecfe5bc0c4e1:function:default:mqtt_auth:latest",
              codec_mode="FGS",
              frame_decode_configs=listFrameDecodeConfigsbody,
              ssl_enable=True,
              description="tcp protocol",
              protocol_type="TCP",
              keepalive_timeout=600,
              port=6886
          )
          response = client.create_protocol_config(request)
          print(response)
      except exceptions.ClientRequestException as e:
          print(e.status_code)
          print(e.request_id)
          print(e.error_code)
          print(e.error_msg)
  ```
- [Go]
  创建泛协议配置
  ```
  package main
  import (
  "fmt"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
      iotda "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/iotda/v5"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/iotda/v5/model"
      region "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/region"
      core_auth "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth"
  )
  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")
      // endpoint：请在控制台的"总览"界面的"平台接入地址"中查看"应用侧"的https接入地址
      endpoint := "<YOUR ENDPOINT>"
      projectId := "{project_id}"
      auth, err := basic.NewCredentialsBuilder().
          WithAk(ak).
          WithSk(sk).
          WithProjectId(projectId).
          // 企业版/标准版需要使用衍生算法，基础版请删除该配置"WithDerivedPredicate"
          WithDerivedPredicate(core_auth.GetDefaultDerivedPredicate()). // Used in derivative ak/sk authentication scenarios
          SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      hcClient, err := iotda.IoTDAClientBuilder().
           // 标准版/企业版需要自行创建region，基础版使用IoTDARegion中的region对象
           WithRegion(region.NewRegion("cn-north-4", endpoint)).
           WithCredential(auth).
           SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      client := iotda.NewIoTDAClient(hcClient)
      request := &model.CreateProtocolConfigRequest{}
  frameDecodeTypeFrameDecodeConfigs:= "DELIMITER"
  maxFrameLengthFrameDecodeConfigs:= int32(200)
  delimiterFrameDecodeConfigs:= "]"
  var listFrameDecodeConfigsbody = []model.FrameDecodeConfig{
          {
              FrameDecodeType: &frameDecodeTypeFrameDecodeConfigs,
              MaxFrameLength: &maxFrameLengthFrameDecodeConfigs,
              Delimiter: &delimiterFrameDecodeConfigs,
          },
      }
  funcUrnCreateProtocolConfigDto:= "urn:fss:cn-north-5:d92d9c5eb8e347b5bb31ecfe5bc0c4e1:function:default:mqtt_auth:latest"
  sslEnableCreateProtocolConfigDto:= true
  descriptionCreateProtocolConfigDto:= "tcp protocol"
  keepaliveTimeoutCreateProtocolConfigDto:= int32(600)
  request.Body = &model.CreateProtocolConfigDto{
  FuncUrn: &funcUrnCreateProtocolConfigDto,
  CodecMode: "FGS",
  FrameDecodeConfigs: &listFrameDecodeConfigsbody,
  SslEnable: &sslEnableCreateProtocolConfigDto,
  Description: &descriptionCreateProtocolConfigDto,
  ProtocolType: "TCP",
  KeepaliveTimeout: &keepaliveTimeoutCreateProtocolConfigDto,
  Port: int32(6886),
  }
  response, err := client.CreateProtocolConfig(request)
  if err == nil {
          fmt.Printf("%+v\n", response)
      } else {
          fmt.Println(err)
      }
  }
  ```
- [更多]
  更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IoTDA/sdk?api=CreateProtocolConfig)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 201 | Created               |
| 400 | Bad Request           |
| 401 | Unauthorized          |
| 403 | Forbidden             |
| 404 | Not Found             |
| 500 | Internal Server Error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-iothub/ErrorCode.html)。
