Save Pipeline¶
Save the configuration of a specific stream processing pipeline.
Prerequisites¶
A stream processing pipeline is created with the Stream Processing service, and the pipeline ID is available.
Request Format¶
POST https://{apigw-address}/streaming/v2.0/streaming/pipeline/{pipelineId}?action=save
Request Parameters (URI)¶
Name  | 
Location (Path/Query)  | 
Mandatory/Optional  | 
Data Type  | 
Description  | 
|---|---|---|---|---|
pipelineId  | 
Path  | 
Mandatory  | 
String  | 
The stream processing pipeline ID, which can be found on the EnOS Management Console > Stream Processing > Stream Operation page. When   | 
orgId  | 
Query  | 
Mandatory  | 
String  | 
The organization ID. How to get the orgId>>  | 
Request Parameters (Body)¶
Name  | 
Mandatory/Optional  | 
Data Type  | 
Description  | 
|---|---|---|---|
version  | 
Optional  | 
String  | 
Template version that is used by the stream processing pipeline.  | 
name  | 
Optional  | 
String  | 
Stream processing pipeline name.  | 
templateType  | 
Optional  | 
Integer  | 
Type of the template that is used by the stream processing pipeline. Possible values are 1: Origin Template; 0: Time Window Aggregation Template; 2: Multi-Merging Template; 3: Electric Energy Cal (by Metering Reading) Template; 4: Electric Energy Cal (by Average Power) Template; 5: Electric Energy Cal (by Instant Power) Template.  | 
templateName  | 
Optional  | 
String  | 
Template that is used by the stream processing pipeline.  | 
messageChannel  | 
Optional  | 
Integer  | 
Message channel that is used by the stream processing pipeline (0: real-time channel; 1: offline channel).  | 
pipelineJson  | 
Optional  | 
JSONObject  | 
Configuration of the stream processing pipeline in JSON format.  | 
Response Parameters¶
Name  | 
Data Type  | 
Description  | 
|---|---|---|
data  | 
String  | 
Returns the pipeline ID upon success.  | 
Error Code¶
Code  | 
Error Information  | 
Description  | 
|---|---|---|
61100  | 
The Stream configuration JSON is invalid.  | 
The pipeline configuration JSON is not valid. Please check the syntax.  | 
61108  | 
stream processing pipeline does not exit.  | 
Stream processing pipeline does not exist. Please check the pipeline ID.  | 
61112  | 
Failed to save the stream configuration.  | 
Failed to save the stream processing pipeline configuration.  | 
Sample¶
Request Sample¶
url: https://{apigw-address}/streaming/v2.0/streaming/pipeline/{pipelineId}?action=save
method: POST
requestBody:
{
        "templateType": 3,
        "pipelineName": "stream_power_calculation",
        "templateName": "Electric Energy Cal by Instant Power",
        "version": "0.1.0",
        "messageChannel": 0,
        "desc": "",
        "pipelineJson": {
            "piDetail": true,
            "points": [{
                "minValue": "0",
                "outputPointId": "SPIC_Solar_Inverter::INV.AccumulatingPower_day",
                "exceptionPolicy": "1",
                "maxValue": "",
                "minValueInclude": true,
                "piDetailWindowSize": "FIVE_MINUTE",
                "maxValueInclude": false,
                "inputPointId": "SPIC_Solar_Inverter::INV.GenActivePW",
                "detailOutputPointId": "SPIC_Solar_Inverter::INV.AccumulatingPower_5min"
            }]
        }
}
Return Sample¶
{
  "code": 0,
  "msg": "OK",
  "data": "d790d27f-e977-403c-b4c8-e111443c563f"
}
Java SDK Sample¶
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;
import org.junit.Before;
import org.junit.Test;
public class Sample {
    private static final String API_Gateway_URL = "https://{domain_url}";
    private Poseidon poseidon;
    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;
        }
    }
    @Before
    public void init() {
        poseidon = Poseidon.config(
                PConfig.init()
                        .appKey("AccessKey of your APP")
                        .appSecret("SecretKey of your APP")
        ).method("POST");
    }
    @Test
    public void SavePipeline() {
        Request request = new Request();
        request.setBodyParams("version", "0.1.0");
        request.setBodyParams("name", "Electric Power Calculation");
        request.setBodyParams("desc", "Sample pipeline");
        request.setBodyParams("templateType", 3);
        request.setBodyParams("templateName", "Electric Energy Cal by Instant Power");
        request.setBodyParams("messageChannel", "0");
        request.setBodyParams("piDetail", false);
        request.setBodyParams("points", JSONObject.parseArray("[\n" +
                "\t\t{\n" +
                "\t\t\t\"inputPointId\":\"SPIC_Solar_Inverter::INV.GenActivePW\",\n" +
                "\t\t\t\"outputPointId\":\"SPIC_Solar_Inverter::INV.AccumulatingPower_day\",\n" +
                "\t\t\t\"detailOutputPointId\":\"SPIC_Solar_Inverter::INV.AccumulatingPower_5min\",\n" +
                "\t\t\t\"minValue\":\"0\",\n" +
                "\t\t\t\"maxValue\":\"100\",\n" +
                "\t\t\t\"maxValueInclude\":true,\n" +
                "\t\t\t\"minValueInclude\":true,\n" +
                "\t\t\t\"piDetailWindowSize\":\"FIVE_MINUTE\",\n" +
                "\t\t\t\"exceptionPolicy\":\"1\"\n" +
                "\t\t}\n" +
                "\t]"));
        JSONObject response = poseidon
                .url(API_Gateway_URL + "/streaming/v2.0/streaming/pipeline/{pipelineId}")
                .queryParam("orgId", "yourOrgId")
                .queryParam("action", "save")
                .getResponse(request, JSONObject.class);
        System.out.println(response);
    }
}