# 统计符合标签条件的实例数量 - CountInstancesByTag
#### 功能介绍
统计符合标签条件的实例数量。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-cbh/cbh_02_0008.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-cbh/cbh_02_00015.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                              | 访问级别 | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | cbh:instance:countInstancesByTag | List | instance \* | -   | -  | -      |
     
  
 
#### URI
POST /v2/{project_id}/cbs/instance/count
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释**： 项目ID，用于唯一标识用户项目。获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-cbh/cbh_02_0020.html)。 **约束限制**： 不涉及 **取值范围**： 只能由字母和数字组成，长度为32个字符。 **默认取值**： 不涉及 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释**： 用户Token。通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。获取方法请参见[获取用户Token](https://support.huaweicloud.com/api-cbh/cbh_02_0010.html)。 **约束限制**： 不涉及 **取值范围**： 字符串，长度为1\~28000个字符。 **默认取值**： 不涉及 |
   
表3请求Body参数 
| 参数              | 是否必选 | 参数类型                                                          | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| without_any_tag | 否    | Boolean                                                       | 不包含任意一个标签，该字段为true时查询所有不带标签的资源。 此时忽略 "tags"、"tags_any"、"not_tags"、"not_tags_any"字段。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| tags            | 否    | Array of [Tags] objects   | 包含标签，最多包含50个key，每个key下面的value最多10个，每个key对应的value可以为空数组但结构体不能缺失。 - Key不能重复，同一个key中values不能重复。   - 结果返回包含所有标签的资源列表，key之间是与的关系，key-value结构中value是或的关系。   - 无tag过滤条件时返回全量数据。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| tags_any        | 否    | Array of [Tags] objects   | - 包含任意标签，最多包含50个key，每个key下面的value最多10个。   - 每个key对应的value可以为空数组但结构体不能缺失。Key不能重复，同一个key中values不能重复。   - 结果返回包含标签的资源列表，key之间是或的关系，key-value结构中value是或的关系。   - 无过滤条件时返回全量数据。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| not_tags        | 否    | Array of [Tags] objects   | - 不包含标签，最多包含50个key，每个key下面的value最多10个。   - 每个key对应的value可以为空数组但结构体不能缺失。Key不能重复，同一个key中values不能重复。   - 结果返回不包含标签的资源列表，key之间是与的关系，key-value结构中value是或的关系。   - 无过滤条件时返回全量数据                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| not_tags_any    | 否    | Array of [Tags] objects   | - 不包含任意标签，最多包含50个key，每个key下面的value最多10个。   - 每个key对应的value可以为空数组但结构体不能缺失。Key不能重复，同一个key中values不能重复。   - 结果返回不包含标签的资源列表，key之间是或的关系，key-value结构中value是或的关系。   - 无过滤条件时返回全量数据。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| sys_tags        | 否    | Array of [Tags] objects   | - 仅op_service权限可以使用此字段做资源实例过滤条件。   - 目前TMS调用时只包含一个tag结构体。   - key：_sys_enterprise_project_id。   - value：企业项目id列表。   - 目前TMS调用时，key下面只包含一个value。0表示默认企业项目。   - sys_tags和租户标签过滤条件（without_any_tag 、tags、tags_any、not_tags、not_tags_any）不能同时使用。   - 无sys_tags时按照tag接口处理，无tag过滤条件时返回全量数据。    |
| matches         | 否    | Array of [Match] objects | - 搜索字段，key为要匹配的字段，如resource_name等。   - value为匹配的值。key为固定字典值，不能包含重复的key或不支持的key。   - 根据key的值确认是否需要模糊匹配，如resource_name默认为模糊搜索（不区分大小写），如果value为空字符串精确匹配（多数服务不存在资源名称为空的情况，因此此类情况返回空列表）。   - resource_id为精确匹配。第一期只做resource_name，后续再扩展。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   
 表4Tags 
| 参数     | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| key    | 是    | String           | 键。 - key不能为空，长度1\~128个字符（中文也可以输入128个字符）   - 可用 UTF-8 格式表示的字母(包含中文)、数字和空格，以及以下字符： _ . : = + - @，*sys_开头属于系统标签，租户不能输入，建议正则：\^((?!*sys*)\[\\p{L}\\p{Z}\\p{N}*.:=+\\-@\]\*)$      |
| values | 是    | Array of strings | 值列表。 - 长度0\~255个字符（中文也可以输入255个字符）   - 可用 UTF-8 格式表示的字母(包含中文)、数字和空格，以及以下字符： _ . : %%= + - @ 建议正则：\^(\[\\p{L}\\p{Z}\\p{N}_.:/=+-@\]\*)$，资源标签值可以为空（empty or null），预定义标签值不可以为空    |
   
 表5Match 
| 参数    | 是否必选 | 参数类型   | 描述                                |
|:---|:---|:---|:---|
| key   | 是    | String | 键。第一期限定为resource_name，后续扩展。       |
| value | 是    | String | 值。每个值最大长度255个unicode字符 。不校验字符集范围。 |
   
#### 响应参数
**状态码：200**
表6响应Body参数 
| 参数          | 参数类型    | 描述    |
|:---|:---|:---|
| total_count | Integer | 总记录数。 |
   
**状态码：400**
表7响应Body参数 
| 参数                | 参数类型   | 描述      |
|:---|:---|:---|
| error_code        | String | 错误码。    |
| error_description | String | 请求参数错误。 |
   
**状态码：401**
表8响应Body参数 
| 参数                | 参数类型   | 描述         |
|:---|:---|:---|
| error_code        | String | 错误码。       |
| error_description | String | 校验Token失败。 |
   
**状态码：403**
表9响应Body参数 
| 参数                | 参数类型   | 描述       |
|:---|:---|:---|
| error_code        | String | 错误码。     |
| error_description | String | 租户无权限操作。 |
   
**状态码：404**
表10响应Body参数 
| 参数                | 参数类型   | 描述         |
|:---|:---|:---|
| error_code        | String | 错误码。       |
| error_description | String | 没有找到CBH资源。 |
   
#### 请求示例
```
{
  "matches" : [ {
    "key" : "resource_name",
    "value" : "resource1"
  } ],
  "not_tags" : [ {
    "key" : "key1",
    "values" : [ "value1", "value2" ]
  } ],
  "tags" : [ {
    "key" : "key1",
    "values" : [ "value1", "value2" ]
  } ],
  "tags_any" : [ {
    "key" : "key1",
    "values" : [ "value1", "value2" ]
  } ],
  "not_tags_any" : [ {
    "key" : "key1",
    "values" : [ "value1", "value2" ]
  } ]
}
```
#### 响应示例
**状态码：200**
```
{
  "total_count" : 1000
}
```
#### 状态码
| 状态码 | 描述                        |
|:---|:---|
| 200 | Show Project Tags Success |
| 400 | Bad Request               |
| 401 | Unauthorized              |
| 403 | Forbidden                 |
| 404 | Not Found                 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-cbh/ErrorCode.html)。
