# 获取镜像老化规则列表 - ListRetentions
#### 功能介绍
获取镜像老化规则列表
#### 接口约束
无
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-swr/swr_02_0002.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-swr/swr_02_0131.html)。
- 如果使用身份策略授权，当前API调用无需身份策略权限。
 
#### URI
GET /v2/manage/namespaces/{namespace}/repos/{repository}/retentions
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| namespace  | 是    | String | **参数解释**： 组织名称。用于唯一标识一个组织，组织下的所有镜像仓库都属于该组织。 **约束限制**： 不涉及。 **取值范围**： 小写字母开头，后面跟小写字母、数字、小数点、下划线或中划线（其中下划线最多允许连续两个，不同类型分隔符不能直接相连），小写字母或数字结尾，长度1\~64个字符。 **默认取值**： 不涉及。                            |
| repository | 是    | String | **参数解释**： 镜像仓库名称过滤关键字，用于模糊匹配镜像仓库列表。与精确匹配的name参数不同，filter支持模糊查询。 **约束限制**： 不涉及。 **取值范围**： 小写字母或数字开头，后面跟小写字母、数字、小数点、斜杠、下划线或中划线（其中下划线最多允许连续两个，不同类型分隔符不能直接相连），小写字母或数字结尾，长度1\~128个字符。 **默认取值**： 不涉及。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| Content-Type | 是    | String | **参数解释**： 消息体的类型（格式），用于指定请求体的MIME类型。 **约束限制**： 不涉及。 **取值范围**： - application/json;charset=utf-8：使用UTF-8字符集的JSON格式   - application/json：标准JSON格式    **默认取值**： 不涉及。 |
| X-Auth-Token | 是    | String | **参数解释**： 用户Token。用于调用API时的鉴权。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                  |
   
#### 响应参数
**状态码：200**
表3响应Body参数 
| 参数       | 参数类型                                                           | 描述                                                                                                                                                                                                                         |
|:---|:---|:---|
| \[数组元素\] | Array of [Retention] objects | **参数解释**： 镜像老化规则列表，列表元素为Retention对象，每条记录包含algorithm（匹配策略）、id（规则ID）、rules（规则列表）、scope（预留字段）等字段，参见Retention数据类型。 **取值范围**： 不涉及。 |
   
 表4Retention 
| 参数        | 参数类型                                                 | 描述                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|
| algorithm | String                                               | **参数解释**： 回收规则匹配策略，定义多条回收规则之间的匹配逻辑。 **取值范围**： - or：多条规则之间为「或」关系，满足任一规则即触发回收    |
| id        | Integer                                              | **参数解释**： 镜像老化规则记录的唯一标识ID。 **取值范围**： 镜像老化规则记录ID。                                                                                                                                                                             |
| rules     | Array of [Rule] objects | **参数解释**： 镜像老化规则列表，列表元素为Rule对象，包含回收类型template、老化规则参数params及例外镜像列表tag_selectors，参见Rule数据类型。 **取值范围**： 不涉及。                                                                                                                    |
| scope     | String                                               | **参数解释**： 预留字段，当前版本不使用，为后续功能扩展保留。 **取值范围**： 不涉及。                                                                                                                                                                             |
   
 表5Rule 
| 参数            | 参数类型                                                               | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|
| template      | String                                                             | **参数解释**： 回收类型。 **取值范围**： - date_rule：按日期规则回收   - tag_rule：按版本规则回收    |
| params        | Object                                                             | **参数解释**： 老化规则参数。根据template的值不同，params的内容不同。template为date_rule时，params包含days字段（存活天数）；template为tag_rule时，params包含num字段（保留版本数）。 例如：template为date_rule时：{"days": 30}，template为tag_rule时：{"num": 5}。 **取值范围**： 包含days字段（Integer类型，存活天数，template为date_rule时有效）和num字段（Integer类型，保留版本数，template为tag_rule时有效）。                             |
| tag_selectors | Array of [TagSelector] objects | **参数解释**： 例外镜像列表。匹配的镜像不会被回收。列表元素为TagSelector对象，包含匹配规则类型kind及匹配模式pattern，参见TagSelector数据类型。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                         |
   
 表6TagSelector 
| 参数      | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| kind    | String | **参数解释**： 匹配规则类型。 **取值范围**： - label：按镜像版本匹配   - regexp：按正则表达式匹配                                                 |
| pattern | String | **参数解释**： 匹配模式。根据kind的值不同，pattern的内容不同。 **取值范围**： - kind为label时：镜像版本名称   - kind为regexp时：有效的正则表达式，长度不超过128个字符    |
   
#### 请求示例
```
GET https://{endpoint}/v2/manage/namespaces/{namespace}/repos/{repository}/retentions
```
#### 响应示例
**状态码：200**
```
[ {
  "algorithm" : "or",
  "id" : 222,
  "rules" : [ {
    "params" : {
      "days" : "30"
    },
    "tag_selectors" : [ {
      "kind" : "label",
      "pattern" : "v5"
    }, {
      "kind" : "label",
      "pattern" : "1.0.1"
    }, {
      "kind" : "regexp",
      "pattern" : "^123$"
    } ],
    "template" : "date_rule"
  } ],
  "scope" : ""
} ]
```
#### 状态码
| 状态码 | 描述         |
|:---|:---|
| 200 | 查询成功       |
| 400 | 错误的请求      |
| 401 | 鉴权失败       |
| 404 | 组织或镜像仓库不存在 |
| 500 | 内部错误       |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-swr/ErrorCode.html)。
