# 创建工作空间 - CreateWorkspace
#### 功能介绍
创建工作空间（"default"为系统预留的默认工作空间名称，不能使用）。该接口适用于以下场景：当需要为不同的业务目标、团队或项目创建独立的工作空间时，用户可通过此接口创建新的工作空间。使用该接口的前提条件是用户具备创建工作空间的权限，并且工作空间名称未被占用且不为"default"。创建成功后，系统将为该工作空间分配默认的访问控制策略，用户可在该工作空间中进行模型开发、管理和部署等操作。若工作空间名称已存在、名称为"default"或用户无权限操作，接口将返回相应的错误信息。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/ModelArts/doc?api=CreateWorkspace)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-modelarts/modelarts_03_0138.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                        | 访问级别  | 资源类型（\*为必须）  | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | modelarts:workspace:create | Write | workspace \* | -   | -  | -      |
     
  
 
#### URI
POST /v1/{project_id}/workspaces
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释** ：用户项目ID。获取方法请参见[获取项目ID和名称](https://support.huaweicloud.com/api-modelarts/modelarts_03_0147.html)。 **约束限制**：不涉及。 **取值范围**：1 - 64字符，字母、数字和中划线。 **默认取值**：不涉及。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释**： 用户Token，用于API鉴权认证。 **约束限制**： 调用接口的认证方式分为Token和AK/SK两种，如果您使用的Token方式，此参数为必填，请填写Token的值，获取方式请参见[获取token](https://support.huaweicloud.com/api-modelarts/modelarts_03_0004.html)。 **取值范围**： 不涉及。 **默认取值**： 不涉及。 |
   
表3请求Body参数 
| 参数                    | 是否必选 | 参数类型                                                                                                  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| grants                | 否    | Array of [grants] objects | **参数解释**： 授权用户列表。数组元素包含user_id、user_name、user_type字段，用于指定被授权访问工作空间的用户信息 **约束限制**： 当且仅当"auth_type"的值为"INTERNAL"时才会生效，长度不超过500。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| auth_type             | 否    | String                                                                                                | **参数解释**： 授权类型。 **约束限制**： 不涉及。 **取值范围**： - PUBLIC：租户内部公开访问。   - PRIVATE：仅创建者和主账号可访问。   - INTERNAL：创建者、主账号、指定IAM子账号可访问，需要与grants参数配合使用。    **默认取值**： PUBLIC。 |
| enterprise_project_id | 否    | String                                                                                                | **参数解释**： 指定此参数会只返回该企业项目id下的工作空间。默认显示所有工作空间。获取方法请参见[获取企业项目ID](https://support.huaweicloud.com/usermanual-iam5/iam_01_1178.html)。 **约束限制**： 不涉及。 **取值范围**： 由字母、数字、中划线（-）组成，长度范围36位。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| name                  | 是    | String                                                                                                | **参数解释**： 工作空间名称。 **约束限制**： 用户无法自己创建名为'default'的工作空间，'default'为系统预留的默认工作空间名称。 **取值范围**： 长度限制为4-64字符，支持中文、大小写字母、数字、中划线和下划线。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| description           | 否    | String                                                                                                | **参数解释**： 工作空间描述。 **约束限制**： 不涉及。 **取值范围**： 长度限制为0-256字符，不得包含\<、\>、=、\&、"、'、/特殊字符 **默认取值**： 空。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
 表4grants 
| 参数        | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| user_id   | 否    | String | **参数解释**： 用户ID。获取方法请参见[获取用户ID和名称](https://support.huaweicloud.com/api-modelarts/modelarts_03_0006.html)。 **约束限制**： user_type为IAM用户时，与user_name任填其一，推荐填user_id。委托用户时必填。联邦用户时忽略该字段，响应自动生成。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                   |
| user_name | 否    | String | **参数解释**： 用户名称。 **约束限制**： user_type为IAM用户时，与user_id任填其一，推荐填user_id，委托用户及联邦用户时必填。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                                                                                           |
| user_type | 否    | String | **参数解释**： 授权用户类型。 **约束限制**： 如果是联邦用户或者委托用户的话必填。 **取值范围**： IAM:IAM用户, FEDERATE：联邦用户, AGENCY：委托用户。 **默认取值**： IAM。 |
   
#### 响应参数
**状态码：200**
表5响应Body参数 
| 参数                      | 参数类型                                                                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| owner                   | String                                                                                                 | **参数解释**： 创建者名称。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| auth_type               | String                                                                                                 | **参数解释**： 授权类型。 **取值范围**： - PUBLIC：租户内部公开访问。   - PRIVATE：仅创建者和主账号可访问。   - INTERNAL：创建者、主账号、指定IAM子账号可访问，需要与grants参数配合使用。                                                                                                                                                                                                                                                                                                                                                             |
| enterprise_project_id   | String                                                                                                 | **参数解释**： 企业项目ID。 **取值范围**： 启用状态的企业项目ID。长度为36位，支持英文字母大小写，数字和中划线（-）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| update_time             | Long                                                                                                   | **参数解释**： 最后修改时间，UTC，Unix时间戳，单位为毫秒。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| create_time             | Long                                                                                                   | **参数解释**： 创建时间，UTC，Unix时间戳，单位为毫秒。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| enterprise_project_name | String                                                                                                 | **参数解释**： 企业项目名称。 **取值范围**： 响应参数enterprise_project_id对应的企业项目名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| name                    | String                                                                                                 | **参数解释**： 工作空间名称。 **取值范围**： 长度限制为4-64字符，支持中文、大小写字母、数字、中划线和下划线。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| description             | String                                                                                                 | **参数解释**： 工作空间描述。 **取值范围**： 长度限制为0-256字符，不得包含\<、\>、=、\&、"、'、/特殊字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| id                      | String                                                                                                 | **参数解释**： 工作空间ID。获取方法请参见[查询工作空间列表](https://support.huaweicloud.com/api-modelarts/ListWorkspace.html#ZH-CN_TOPIC_0000002723741766)。未创建工作空间时默认值为"0"，存在创建并使用的工作空间，以实际取值为准。 **取值范围**： 系统生成的32位UUID，不带橫线。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| status                  | String                                                                                                 | **参数解释**： 工作空间状态。 **取值范围**： - CREATE_FAILED：创建失败。   - NORMAL：状态正常。   - DELETING：正在删除。   - DELETE_FAILED：删除失败。    |
| status_info             | String                                                                                                 | **参数解释**： 状态描述，默认为空。该字段会补充显示状态的详细信息。如删除失败时，可通过该字段查看删除失败的原因。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| grants                  | Array of [grants] objects | **参数解释**： 授权用户列表。默认为空。需要与"auth_type"参数配合使用，且仅当授权类型为"INTERNAL"时才会生效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
 表6grants 
| 参数        | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|
| user_id   | String | **参数解释**： 用户ID。获取方法请参见[获取用户ID和名称](https://support.huaweicloud.com/api-modelarts/modelarts_03_0006.html)。 **取值范围**： 不涉及。 |
| user_name | String | **参数解释**： 用户名称。 **取值范围**： 不涉及。                                                                                          |
   
#### 请求示例
创建工作空间。设置工作空间名称为"test-workspace"，授权类型为"INTERNAL"，授权的IAM用户名称为"test"。
```
POST https://{endpoint}/v1/{project_id}/workspaces
{
  "name" : "test-workspace",
  "description" : "It is a test project",
  "enterprise_project_id" : "***b0091-887f-4839-9929-cbc884f1e***",
  "auth_type" : "INTERNAL",
  "grants" : [ {
    "user_name" : "test"
  } ]
}
```
#### 响应示例
**状态码：200**
```
{
  "id" : "**d05d1a553b4e188ea878e7dcb85e**",
  "name" : "test-workspace",
  "description" : "It is a test project",
  "owner" : "testUser",
  "create_time" : 1470000020000,
  "update_time" : 1470000030000,
  "enterprise_project_id" : "***b0091-887f-4839-9929-cbc884f1e***",
  "enterprise_project_name" : "test-eps",
  "auth_type" : "INTERNAL",
  "grants" : [ {
    "user_name" : "test"
  } ],
  "status" : "NORMAL",
  "status_info" : ""
}
```
#### 状态码
| 状态码 | 描述             |
|:---|:---|
| 200 | 创建工作空间成功的响应参数。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-modelarts/modelarts_03_0095.html)。
