Save Storage Policy¶
根据存储策略ID,更新并保存指定存储策略的配置信息,包括数据存储时长、和存储策略中配置的模型测点信息。
备注
为避免系统资源不足和系统不稳定的问题,更新存储时长的接口在 2.3 CU5 之后暂不可用,如需变更,请联系系统管理员。
请求格式¶
POST https://{apigw-address}/tsdb-policy/v2.0/policies/{policyId}
请求参数(Header)¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
Content-Type |
必需 |
String |
内容或文件类型,默认值为 application/json。 |
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
policyId |
Path |
必需 |
String |
存储策略ID,可通过 EnOS管理门户 > 时序数据管理 > 存储策略 页面获取指定存储类型的存储策略ID。 |
orgId |
Query |
必需 |
String |
资产所属的组织ID。如何获取orgId信息>> |
请求参数(Body)¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
retention |
可选,若模型测点已配置存储时长,此参数为可选。 |
String |
数据存储时长,1M 表示一个月,1y 表示一年。所有可选值有:1M、3M、 6M、1y、 2y、 3y、 5y、10y、15y 、20y。 |
models |
必需 |
List<JSONObject> |
模型测点集合。详见 模型测点结构体 |
模型测点结构体 ¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
modelId |
必需 |
String |
模型ID。 |
points |
必需 |
List<JSONObject> |
模型中需配置存储策略的测点列表。 |
错误码¶
有关错误码的描述,参见 通用错误码。
示例¶
请求示例¶
url: https://{apigw-address}/tsdb-policy/v2.0/policies/yourPolicyId
method: POST
requestBody:
{
"models": [
{
"modelId": "yourModelId1",
"points": [
"yourPointId1",
"yourPointId2"
]
},
{
"modelId": "yourModelId2",
"points": [
"yourPointId3",
"yourPointId4"
]
}
],
"retention": "6M"
}
返回示例¶
{
"code": 0,
"msg": "OK",
"data": null
}
Java SDK调用示例¶
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envision.apim.poseidon.request.PoseidonRequest;
public class Sample {
private static final String API_GATEWAY_URL = "https://{apigw-address}";
private static class Request extends PoseidonRequest {
public void setBodyParams(String key, Object value) {
bodyParams().put(key, value);
}
public void setMethod(String method) {
this.method = method;
}
private String method;
@Override
public String baseUri() {
return "";
}
@Override
public String method() {
return method;
}
}
public static void main(String[] args) {
Poseidon poseidon = Poseidon.config(
PConfig.init()
.appKey("AccessKey of your APP")
.appSecret("SecretKey of your APP")
).method("POST") .header("Content-Type", "application/json");
Request request = new Request();
JSONArray models = new JSONArray();
JSONObject model1 = new JSONObject();
model1.put("modelId", "yourModelId1");
model1.put("points", new String[]{"yourPointId1", "yourPointId2"});
JSONObject model2 = new JSONObject();
model2.put("modelId", "yourModelId2");
model2.put("points", new String[]{"yourPointId1", "yourPointId2"});
models.add(model1);
models.add(model2);
request.setBodyParams("models", models);
request.setBodyParams("retention", "6M");
String policyId = "yourPolicyId";
JSONObject resp = poseidon.url(APIM_BASE_URL + "/tsdb-policy/v2.0/policies/" + policyId)
.queryParam("orgId", "yourOrgId")
.getResponse(request, JSONObject.class);
System.out.println(resp);
}
}