
# 新增组织
#### 功能介绍
应用服务器可调用此接口新增组织，组织包含组织名称、组织关联的组织定义编码以及组织定义中各个属性的值。
组织定义编码、组织定义中各个属性的字段名及字段约束可通过 [查询组织定义列表](https://support.huaweicloud.com/api-ocsmartcampus/ocsmartcampus_06_0015.html) 接口获得。
组织为树状结构，通过为待创建组织指定父组织ID实现父子关系，进而逐级构成树状结构。
注意：
- 组织定义中包含了此类组织包含的属性定义，包含属性的校验规则（类型、是否必填以及最大值最小值等），请遵循属性定义填写组织的属性值。
  
 
#### URI
POST /v1/iotfm/organizations
#### 请求参数
表1请求Header参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                                                                                              |
|:---|:---|:---|:---|
| X-Auth-Token  | 是    | String | **参数说明** ：用户Token。通过调用 [生成Token](https://support.huaweicloud.com/api-ocsmartcampus/ocsmartcampus_06_0008.html) 接口获取，接口返回的响应消息头中"X-Subject-Token"就是需要获取的用户Token。 |
| X-Instance-Id | 是    | String | **参数说明**：实例ID。通过访问智能设施云平台界面后获取，智能设施云平台资源均为实例级隔离，所有业务接口必须填写正确的实例ID才能被成功调用。 **取值范围**：长度8-36，只允许大小写字母、数字和-字符的组合。          |
   
表2请求Body参数 
| 参数              | 是否必选 | 参数类型                 | 描述                                                                                       |
|:---|:---|:---|:---|
| definition_code | 是    | String               | **参数说明**：组织定义编码。 **取值范围**：长度1-256。                |
| name            | 是    | String               | **参数说明**：组织名。 **取值范围**：长度1-256。                  |
| parent_id       | 否    | String               | **参数说明**：父级组织ID。 **取值范围**：长度固定24，只允许大小写字母、数字的组合。 |
| properties      | 否    | Map\<String,String\> | **参数说明**：属性键值对。                                                                          |
   
#### 响应参数
**状态码：200**
表3响应Body参数 
| 参数             | 参数类型                 | 描述                                                                                                      |
|:---|:---|:---|
| id             | String               | **参数说明**：组织ID。 **取值范围**：长度固定24，只允许大小写字母、数字的组合。                    |
| name           | String               | **参数说明**：组织名。 **取值范围**：长度1-256。                                 |
| parent_id      | String               | **参数说明**：父级组织ID。 **取值范围**：长度固定24，只允许大小写字母、数字的组合。                  |
| parent_name    | String               | **参数说明**：父级组织名。 **取值范围**：长度1-256。                               |
| children_count | Integer              | **参数说明**：直接下级数量。 **取值范围**：大小为0-100。                              |
| properties     | Map\<String,String\> | **参数说明**：属性键值对。                                                                                         |
| create_time    | String               | **参数说明**：创建时间，格式为：yyyy-MM-dd'T'HH:mm:ss.SSS'Z'。 **取值范围**：长度0-20。 |
   
**状态码：400**
表4响应Body参数 
| 参数         | 参数类型   | 描述                                                                      |
|:---|:---|:---|
| error_code | String | **参数说明**：错误码。 **取值范围**：长度8-36。  |
| error_msg  | String | **参数说明**：错误描述。 **取值范围**：长度2-512。 |
   
#### 请求示例
- 新增组织（无父级组织）
  ```
  POST https://{endpoint}/v1/iotfm/organizations
  {
    "definition_code" : "default",
    "name" : "DemoOrg"
  }
  ```
  
- 新增组织（指定父级组织）
  ```
  POST https://{endpoint}/v1/iotfm/organizations
  {
    "definition_code" : "default",
    "name" : "DemoSubOrg",
    "parent_id" : "abcdefaaaaaaaaaaaaaaaaaaaa",
    "properties" : {
      "area" : "123.5"
    }
  }
  ```
  
 
#### 响应示例
**状态码：200**
Organization Information
- 示例 1
  ```
  {
    "id" : "abcdefaaaaaaaaaaaaaaaaaaaa",
    "name" : "DemoOrg"
  }
  ```
  
- 示例 2
  ```
  {
    "id" : "abcdefaaaaaaaaaaaaaaaaaazz",
    "name" : "DemoOrg",
    "parent_id" : "abcdefaaaaaaaaaaaaaaaaaaaa",
    "parent_name" : "parentOrg",
    "properties" : {
      "area" : "123.5"
    }
  }
  ```
  
 
#### 状态码
| 状态码 | 描述                       |
|:---|:---|
| 200 | Organization Information |
| 400 | Error response           |
   
