# Ethernet Ip Template Controller

## GET /api/protocols/ethernet-ip/templates/devices/{deviceId}

>

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"inSCADA API","version":"20250703-6"},"servers":[{"url":"https://inscada.cloud","description":"Generated server url"}],"security":[{"accessTokenCookie":[],"spaceHeader":[]}],"components":{"securitySchemes":{"accessTokenCookie":{"type":"apiKey","description":"Access token provided as a cookie named 'ins_access_token'. This token is obtained after successful login and is valid for x minutes. It can be refreshed using the `ins_refresh_token` cookie at the /refresh endpoint.","name":"ins_access_token","in":"cookie"}}},"paths":{"/api/protocols/ethernet-ip/templates/devices/{deviceId}":{"get":{"tags":["ethernet-ip-template-controller"],"operationId":"getDevice_18","parameters":[{"name":"deviceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"required":["name","scanTime","scanType","slot"],"type":"object","properties":{"creationDate":{"type":"string","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","readOnly":true},"createdBy":{"type":"string","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","readOnly":true},"id":{"type":"string"},"properties":{"type":"string"},"dsc":{"maxLength":255,"minLength":0,"type":"string"},"name":{"maxLength":100,"minLength":0,"type":"string"},"scanTime":{"minimum":1,"type":"integer","format":"int32"},"slot":{"minimum":0,"type":"integer","format":"int32"},"scanType":{"type":"string","enum":["Periodic","Fixed Delay"]}}}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"type":"object"}}}}}}}}}
```

## PUT /api/protocols/ethernet-ip/templates/devices/{deviceId}

>

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"inSCADA API","version":"20250703-6"},"servers":[{"url":"https://inscada.cloud","description":"Generated server url"}],"security":[{"accessTokenCookie":[],"spaceHeader":[]}],"components":{"securitySchemes":{"accessTokenCookie":{"type":"apiKey","description":"Access token provided as a cookie named 'ins_access_token'. This token is obtained after successful login and is valid for x minutes. It can be refreshed using the `ins_refresh_token` cookie at the /refresh endpoint.","name":"ins_access_token","in":"cookie"}}},"paths":{"/api/protocols/ethernet-ip/templates/devices/{deviceId}":{"put":{"tags":["ethernet-ip-template-controller"],"operationId":"updateDevice_18","parameters":[{"name":"deviceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["name","scanTime","scanType","slot"],"type":"object","properties":{"creationDate":{"type":"string","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","readOnly":true},"createdBy":{"type":"string","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","readOnly":true},"id":{"type":"string"},"properties":{"type":"string"},"dsc":{"maxLength":255,"minLength":0,"type":"string"},"name":{"maxLength":100,"minLength":0,"type":"string"},"scanTime":{"minimum":1,"type":"integer","format":"int32"},"slot":{"minimum":0,"type":"integer","format":"int32"},"scanType":{"type":"string","enum":["Periodic","Fixed Delay"]}}}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"type":"object"}}}}}}}}}
```

## DELETE /api/protocols/ethernet-ip/templates/devices/{deviceId}

>

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"inSCADA API","version":"20250703-6"},"servers":[{"url":"https://inscada.cloud","description":"Generated server url"}],"security":[{"accessTokenCookie":[],"spaceHeader":[]}],"components":{"securitySchemes":{"accessTokenCookie":{"type":"apiKey","description":"Access token provided as a cookie named 'ins_access_token'. This token is obtained after successful login and is valid for x minutes. It can be refreshed using the `ins_refresh_token` cookie at the /refresh endpoint.","name":"ins_access_token","in":"cookie"}}},"paths":{"/api/protocols/ethernet-ip/templates/devices/{deviceId}":{"delete":{"tags":["ethernet-ip-template-controller"],"operationId":"deleteDevice_18","parameters":[{"name":"deviceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"type":"object"}}}}}}}}}
```

## GET /api/protocols/ethernet-ip/templates/devices/{deviceId}/frames/{frameId}

>

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"inSCADA API","version":"20250703-6"},"servers":[{"url":"https://inscada.cloud","description":"Generated server url"}],"security":[{"accessTokenCookie":[],"spaceHeader":[]}],"components":{"securitySchemes":{"accessTokenCookie":{"type":"apiKey","description":"Access token provided as a cookie named 'ins_access_token'. This token is obtained after successful login and is valid for x minutes. It can be refreshed using the `ins_refresh_token` cookie at the /refresh endpoint.","name":"ins_access_token","in":"cookie"}}},"paths":{"/api/protocols/ethernet-ip/templates/devices/{deviceId}/frames/{frameId}":{"get":{"tags":["ethernet-ip-template-controller"],"operationId":"getFrame_18","parameters":[{"name":"deviceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"frameId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"required":["isReadable","isWritable","name"],"type":"object","properties":{"creationDate":{"type":"string","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","readOnly":true},"createdBy":{"type":"string","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","readOnly":true},"id":{"type":"string"},"deviceId":{"type":"string"},"dsc":{"maxLength":255,"minLength":0,"type":"string"},"scanTimeFactor":{"type":"integer","format":"int32"},"name":{"maxLength":100,"minLength":0,"type":"string"},"isWritable":{"type":"boolean"},"isReadable":{"type":"boolean"},"minutesOffset":{"type":"integer","format":"int32"}}}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"type":"object"}}}}}}}}}
```

## PUT /api/protocols/ethernet-ip/templates/devices/{deviceId}/frames/{frameId}

>

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"inSCADA API","version":"20250703-6"},"servers":[{"url":"https://inscada.cloud","description":"Generated server url"}],"security":[{"accessTokenCookie":[],"spaceHeader":[]}],"components":{"securitySchemes":{"accessTokenCookie":{"type":"apiKey","description":"Access token provided as a cookie named 'ins_access_token'. This token is obtained after successful login and is valid for x minutes. It can be refreshed using the `ins_refresh_token` cookie at the /refresh endpoint.","name":"ins_access_token","in":"cookie"}}},"paths":{"/api/protocols/ethernet-ip/templates/devices/{deviceId}/frames/{frameId}":{"put":{"tags":["ethernet-ip-template-controller"],"operationId":"updateFrame_18","parameters":[{"name":"deviceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"frameId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["isReadable","isWritable","name"],"type":"object","properties":{"creationDate":{"type":"string","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","readOnly":true},"createdBy":{"type":"string","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","readOnly":true},"id":{"type":"string"},"deviceId":{"type":"string"},"dsc":{"maxLength":255,"minLength":0,"type":"string"},"scanTimeFactor":{"type":"integer","format":"int32"},"name":{"maxLength":100,"minLength":0,"type":"string"},"isWritable":{"type":"boolean"},"isReadable":{"type":"boolean"},"minutesOffset":{"type":"integer","format":"int32"}}}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"type":"object"}}}}}}}}}
```

## DELETE /api/protocols/ethernet-ip/templates/devices/{deviceId}/frames/{frameId}

>

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"inSCADA API","version":"20250703-6"},"servers":[{"url":"https://inscada.cloud","description":"Generated server url"}],"security":[{"accessTokenCookie":[],"spaceHeader":[]}],"components":{"securitySchemes":{"accessTokenCookie":{"type":"apiKey","description":"Access token provided as a cookie named 'ins_access_token'. This token is obtained after successful login and is valid for x minutes. It can be refreshed using the `ins_refresh_token` cookie at the /refresh endpoint.","name":"ins_access_token","in":"cookie"}}},"paths":{"/api/protocols/ethernet-ip/templates/devices/{deviceId}/frames/{frameId}":{"delete":{"tags":["ethernet-ip-template-controller"],"operationId":"deleteFrame_18","parameters":[{"name":"deviceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"frameId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"type":"object"}}}}}}}}}
```

## GET /api/protocols/ethernet-ip/templates/devices/{deviceId}/frames/{frameId}/variables/{variableId}

>

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"inSCADA API","version":"20250703-6"},"servers":[{"url":"https://inscada.cloud","description":"Generated server url"}],"security":[{"accessTokenCookie":[],"spaceHeader":[]}],"components":{"securitySchemes":{"accessTokenCookie":{"type":"apiKey","description":"Access token provided as a cookie named 'ins_access_token'. This token is obtained after successful login and is valid for x minutes. It can be refreshed using the `ins_refresh_token` cookie at the /refresh endpoint.","name":"ins_access_token","in":"cookie"}}},"paths":{"/api/protocols/ethernet-ip/templates/devices/{deviceId}/frames/{frameId}/variables/{variableId}":{"get":{"tags":["ethernet-ip-template-controller"],"operationId":"getVariable_20","parameters":[{"name":"deviceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"frameId","in":"path","required":true,"schema":{"type":"string"}},{"name":"variableId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"required":["isActive","isPulseOff","isPulseOn","keepLastValues","name","type"],"type":"object","properties":{"creationDate":{"type":"string","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","readOnly":true},"createdBy":{"type":"string","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","readOnly":true},"id":{"type":"string"},"engFullScale":{"type":"number","format":"double"},"logMaxValue":{"type":"number","format":"double"},"fractionalDigitCount":{"type":"integer","format":"int32"},"isPulseOn":{"type":"boolean"},"logExpressionCode":{"maxLength":4000,"minLength":0,"type":"string"},"frameId":{"type":"string"},"valueExpressionType":{"type":"string","enum":["NONE","CUSTOM","EXPRESSION"]},"logMinValue":{"type":"number","format":"double"},"rawZeroScale":{"type":"number","format":"double"},"valueExpressionCode":{"maxLength":4000,"minLength":0,"type":"string"},"isActive":{"type":"boolean"},"code":{"maxLength":20,"minLength":0,"type":"string"},"valueExpressionId":{"type":"string"},"setMaxValue":{"type":"number","format":"double"},"logType":{"type":"string","enum":["No Log","When Changed","Periodically","Threshold","Expression","Custom"]},"setMinValue":{"type":"number","format":"double"},"keepLastValues":{"type":"boolean"},"logThreshold":{"type":"number","format":"double"},"isPulseOff":{"type":"boolean"},"logPeriod":{"minimum":1,"type":"integer","format":"int32"},"pulseOffDuration":{"type":"integer","format":"int32"},"pulseOnDuration":{"type":"integer","format":"int32"},"engZeroScale":{"type":"number","format":"double"},"dsc":{"maxLength":255,"minLength":0,"type":"string"},"unit":{"type":"string"},"logExpressionId":{"type":"string"},"rawFullScale":{"type":"number","format":"double"},"name":{"maxLength":100,"minLength":0,"type":"string"},"bitParentType":{"type":"string","enum":["SINT","BITS"]},"type":{"type":"string","enum":["BIT","BOOL","SINT","INT","DINT","LINT","REAL","BITS","STRUCT"]},"deviceId":{"type":"string"}}}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"type":"object"}}}}}}}}}
```

## PUT /api/protocols/ethernet-ip/templates/devices/{deviceId}/frames/{frameId}/variables/{variableId}

>

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"inSCADA API","version":"20250703-6"},"servers":[{"url":"https://inscada.cloud","description":"Generated server url"}],"security":[{"accessTokenCookie":[],"spaceHeader":[]}],"components":{"securitySchemes":{"accessTokenCookie":{"type":"apiKey","description":"Access token provided as a cookie named 'ins_access_token'. This token is obtained after successful login and is valid for x minutes. It can be refreshed using the `ins_refresh_token` cookie at the /refresh endpoint.","name":"ins_access_token","in":"cookie"}}},"paths":{"/api/protocols/ethernet-ip/templates/devices/{deviceId}/frames/{frameId}/variables/{variableId}":{"put":{"tags":["ethernet-ip-template-controller"],"operationId":"updateVariable_19","parameters":[{"name":"deviceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"frameId","in":"path","required":true,"schema":{"type":"string"}},{"name":"variableId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["isActive","isPulseOff","isPulseOn","keepLastValues","name","type"],"type":"object","properties":{"creationDate":{"type":"string","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","readOnly":true},"createdBy":{"type":"string","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","readOnly":true},"id":{"type":"string"},"engFullScale":{"type":"number","format":"double"},"logMaxValue":{"type":"number","format":"double"},"fractionalDigitCount":{"type":"integer","format":"int32"},"isPulseOn":{"type":"boolean"},"logExpressionCode":{"maxLength":4000,"minLength":0,"type":"string"},"frameId":{"type":"string"},"valueExpressionType":{"type":"string","enum":["NONE","CUSTOM","EXPRESSION"]},"logMinValue":{"type":"number","format":"double"},"rawZeroScale":{"type":"number","format":"double"},"valueExpressionCode":{"maxLength":4000,"minLength":0,"type":"string"},"isActive":{"type":"boolean"},"code":{"maxLength":20,"minLength":0,"type":"string"},"valueExpressionId":{"type":"string"},"setMaxValue":{"type":"number","format":"double"},"logType":{"type":"string","enum":["No Log","When Changed","Periodically","Threshold","Expression","Custom"]},"setMinValue":{"type":"number","format":"double"},"keepLastValues":{"type":"boolean"},"logThreshold":{"type":"number","format":"double"},"isPulseOff":{"type":"boolean"},"logPeriod":{"minimum":1,"type":"integer","format":"int32"},"pulseOffDuration":{"type":"integer","format":"int32"},"pulseOnDuration":{"type":"integer","format":"int32"},"engZeroScale":{"type":"number","format":"double"},"dsc":{"maxLength":255,"minLength":0,"type":"string"},"unit":{"type":"string"},"logExpressionId":{"type":"string"},"rawFullScale":{"type":"number","format":"double"},"name":{"maxLength":100,"minLength":0,"type":"string"},"bitParentType":{"type":"string","enum":["SINT","BITS"]},"type":{"type":"string","enum":["BIT","BOOL","SINT","INT","DINT","LINT","REAL","BITS","STRUCT"]},"deviceId":{"type":"string"}}}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"type":"object"}}}}}}}}}
```

## DELETE /api/protocols/ethernet-ip/templates/devices/{deviceId}/frames/{frameId}/variables/{variableId}

>

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"inSCADA API","version":"20250703-6"},"servers":[{"url":"https://inscada.cloud","description":"Generated server url"}],"security":[{"accessTokenCookie":[],"spaceHeader":[]}],"components":{"securitySchemes":{"accessTokenCookie":{"type":"apiKey","description":"Access token provided as a cookie named 'ins_access_token'. This token is obtained after successful login and is valid for x minutes. It can be refreshed using the `ins_refresh_token` cookie at the /refresh endpoint.","name":"ins_access_token","in":"cookie"}}},"paths":{"/api/protocols/ethernet-ip/templates/devices/{deviceId}/frames/{frameId}/variables/{variableId}":{"delete":{"tags":["ethernet-ip-template-controller"],"operationId":"deleteVariable_20","parameters":[{"name":"deviceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"frameId","in":"path","required":true,"schema":{"type":"string"}},{"name":"variableId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"type":"object"}}}}}}}}}
```

## GET /api/protocols/ethernet-ip/templates/devices

>

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"inSCADA API","version":"20250703-6"},"servers":[{"url":"https://inscada.cloud","description":"Generated server url"}],"security":[{"accessTokenCookie":[],"spaceHeader":[]}],"components":{"securitySchemes":{"accessTokenCookie":{"type":"apiKey","description":"Access token provided as a cookie named 'ins_access_token'. This token is obtained after successful login and is valid for x minutes. It can be refreshed using the `ins_refresh_token` cookie at the /refresh endpoint.","name":"ins_access_token","in":"cookie"}}},"paths":{"/api/protocols/ethernet-ip/templates/devices":{"get":{"tags":["ethernet-ip-template-controller"],"operationId":"getDevices_28","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"required":["name","scanTime","scanType","slot"],"type":"object","properties":{"creationDate":{"type":"string","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","readOnly":true},"createdBy":{"type":"string","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","readOnly":true},"id":{"type":"string"},"properties":{"type":"string"},"dsc":{"maxLength":255,"minLength":0,"type":"string"},"name":{"maxLength":100,"minLength":0,"type":"string"},"scanTime":{"minimum":1,"type":"integer","format":"int32"},"slot":{"minimum":0,"type":"integer","format":"int32"},"scanType":{"type":"string","enum":["Periodic","Fixed Delay"]}}}}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"type":"object"}}}}}}}}}
```

## POST /api/protocols/ethernet-ip/templates/devices

>

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"inSCADA API","version":"20250703-6"},"servers":[{"url":"https://inscada.cloud","description":"Generated server url"}],"security":[{"accessTokenCookie":[],"spaceHeader":[]}],"components":{"securitySchemes":{"accessTokenCookie":{"type":"apiKey","description":"Access token provided as a cookie named 'ins_access_token'. This token is obtained after successful login and is valid for x minutes. It can be refreshed using the `ins_refresh_token` cookie at the /refresh endpoint.","name":"ins_access_token","in":"cookie"}}},"paths":{"/api/protocols/ethernet-ip/templates/devices":{"post":{"tags":["ethernet-ip-template-controller"],"operationId":"createDevice_18","requestBody":{"content":{"application/json":{"schema":{"required":["name","scanTime","scanType","slot"],"type":"object","properties":{"creationDate":{"type":"string","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","readOnly":true},"createdBy":{"type":"string","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","readOnly":true},"id":{"type":"string"},"properties":{"type":"string"},"dsc":{"maxLength":255,"minLength":0,"type":"string"},"name":{"maxLength":100,"minLength":0,"type":"string"},"scanTime":{"minimum":1,"type":"integer","format":"int32"},"slot":{"minimum":0,"type":"integer","format":"int32"},"scanType":{"type":"string","enum":["Periodic","Fixed Delay"]}}}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"required":["name","scanTime","scanType","slot"],"type":"object","properties":{"$ref":"#/paths/~1api~1protocols~1ethernet-ip~1templates~1devices/post/requestBody/content/application~1json/schema/properties"}}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"type":"object"}}}}}}}}}
```

## GET /api/protocols/ethernet-ip/templates/devices/{deviceId}/frames

>

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"inSCADA API","version":"20250703-6"},"servers":[{"url":"https://inscada.cloud","description":"Generated server url"}],"security":[{"accessTokenCookie":[],"spaceHeader":[]}],"components":{"securitySchemes":{"accessTokenCookie":{"type":"apiKey","description":"Access token provided as a cookie named 'ins_access_token'. This token is obtained after successful login and is valid for x minutes. It can be refreshed using the `ins_refresh_token` cookie at the /refresh endpoint.","name":"ins_access_token","in":"cookie"}}},"paths":{"/api/protocols/ethernet-ip/templates/devices/{deviceId}/frames":{"get":{"tags":["ethernet-ip-template-controller"],"operationId":"getFrames_27","parameters":[{"name":"deviceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"required":["isReadable","isWritable","name"],"type":"object","properties":{"creationDate":{"type":"string","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","readOnly":true},"createdBy":{"type":"string","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","readOnly":true},"id":{"type":"string"},"deviceId":{"type":"string"},"dsc":{"maxLength":255,"minLength":0,"type":"string"},"scanTimeFactor":{"type":"integer","format":"int32"},"name":{"maxLength":100,"minLength":0,"type":"string"},"isWritable":{"type":"boolean"},"isReadable":{"type":"boolean"},"minutesOffset":{"type":"integer","format":"int32"}}}}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"type":"object"}}}}}}}}}
```

## POST /api/protocols/ethernet-ip/templates/devices/{deviceId}/frames

>

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"inSCADA API","version":"20250703-6"},"servers":[{"url":"https://inscada.cloud","description":"Generated server url"}],"security":[{"accessTokenCookie":[],"spaceHeader":[]}],"components":{"securitySchemes":{"accessTokenCookie":{"type":"apiKey","description":"Access token provided as a cookie named 'ins_access_token'. This token is obtained after successful login and is valid for x minutes. It can be refreshed using the `ins_refresh_token` cookie at the /refresh endpoint.","name":"ins_access_token","in":"cookie"}}},"paths":{"/api/protocols/ethernet-ip/templates/devices/{deviceId}/frames":{"post":{"tags":["ethernet-ip-template-controller"],"operationId":"createFrame_18","parameters":[{"name":"deviceId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["isReadable","isWritable","name"],"type":"object","properties":{"creationDate":{"type":"string","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","readOnly":true},"createdBy":{"type":"string","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","readOnly":true},"id":{"type":"string"},"deviceId":{"type":"string"},"dsc":{"maxLength":255,"minLength":0,"type":"string"},"scanTimeFactor":{"type":"integer","format":"int32"},"name":{"maxLength":100,"minLength":0,"type":"string"},"isWritable":{"type":"boolean"},"isReadable":{"type":"boolean"},"minutesOffset":{"type":"integer","format":"int32"}}}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"required":["isReadable","isWritable","name"],"type":"object","properties":{"$ref":"#/paths/~1api~1protocols~1ethernet-ip~1templates~1devices~1{deviceId}~1frames/post/requestBody/content/application~1json/schema/properties"}}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"type":"object"}}}}}}}}}
```

## GET /api/protocols/ethernet-ip/templates/devices/{deviceId}/frames/{frameId}/variables

>

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"inSCADA API","version":"20250703-6"},"servers":[{"url":"https://inscada.cloud","description":"Generated server url"}],"security":[{"accessTokenCookie":[],"spaceHeader":[]}],"components":{"securitySchemes":{"accessTokenCookie":{"type":"apiKey","description":"Access token provided as a cookie named 'ins_access_token'. This token is obtained after successful login and is valid for x minutes. It can be refreshed using the `ins_refresh_token` cookie at the /refresh endpoint.","name":"ins_access_token","in":"cookie"}}},"paths":{"/api/protocols/ethernet-ip/templates/devices/{deviceId}/frames/{frameId}/variables":{"get":{"tags":["ethernet-ip-template-controller"],"operationId":"getVariables_20","parameters":[{"name":"deviceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"frameId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"required":["isActive","isPulseOff","isPulseOn","keepLastValues","name","type"],"type":"object","properties":{"creationDate":{"type":"string","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","readOnly":true},"createdBy":{"type":"string","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","readOnly":true},"id":{"type":"string"},"engFullScale":{"type":"number","format":"double"},"logMaxValue":{"type":"number","format":"double"},"fractionalDigitCount":{"type":"integer","format":"int32"},"isPulseOn":{"type":"boolean"},"logExpressionCode":{"maxLength":4000,"minLength":0,"type":"string"},"frameId":{"type":"string"},"valueExpressionType":{"type":"string","enum":["NONE","CUSTOM","EXPRESSION"]},"logMinValue":{"type":"number","format":"double"},"rawZeroScale":{"type":"number","format":"double"},"valueExpressionCode":{"maxLength":4000,"minLength":0,"type":"string"},"isActive":{"type":"boolean"},"code":{"maxLength":20,"minLength":0,"type":"string"},"valueExpressionId":{"type":"string"},"setMaxValue":{"type":"number","format":"double"},"logType":{"type":"string","enum":["No Log","When Changed","Periodically","Threshold","Expression","Custom"]},"setMinValue":{"type":"number","format":"double"},"keepLastValues":{"type":"boolean"},"logThreshold":{"type":"number","format":"double"},"isPulseOff":{"type":"boolean"},"logPeriod":{"minimum":1,"type":"integer","format":"int32"},"pulseOffDuration":{"type":"integer","format":"int32"},"pulseOnDuration":{"type":"integer","format":"int32"},"engZeroScale":{"type":"number","format":"double"},"dsc":{"maxLength":255,"minLength":0,"type":"string"},"unit":{"type":"string"},"logExpressionId":{"type":"string"},"rawFullScale":{"type":"number","format":"double"},"name":{"maxLength":100,"minLength":0,"type":"string"},"bitParentType":{"type":"string","enum":["SINT","BITS"]},"type":{"type":"string","enum":["BIT","BOOL","SINT","INT","DINT","LINT","REAL","BITS","STRUCT"]},"deviceId":{"type":"string"}}}}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"type":"object"}}}}}}}}}
```

## POST /api/protocols/ethernet-ip/templates/devices/{deviceId}/frames/{frameId}/variables

>

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"inSCADA API","version":"20250703-6"},"servers":[{"url":"https://inscada.cloud","description":"Generated server url"}],"security":[{"accessTokenCookie":[],"spaceHeader":[]}],"components":{"securitySchemes":{"accessTokenCookie":{"type":"apiKey","description":"Access token provided as a cookie named 'ins_access_token'. This token is obtained after successful login and is valid for x minutes. It can be refreshed using the `ins_refresh_token` cookie at the /refresh endpoint.","name":"ins_access_token","in":"cookie"}}},"paths":{"/api/protocols/ethernet-ip/templates/devices/{deviceId}/frames/{frameId}/variables":{"post":{"tags":["ethernet-ip-template-controller"],"operationId":"createVariable_19","parameters":[{"name":"deviceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"frameId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["isActive","isPulseOff","isPulseOn","keepLastValues","name","type"],"type":"object","properties":{"creationDate":{"type":"string","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","readOnly":true},"createdBy":{"type":"string","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","readOnly":true},"id":{"type":"string"},"engFullScale":{"type":"number","format":"double"},"logMaxValue":{"type":"number","format":"double"},"fractionalDigitCount":{"type":"integer","format":"int32"},"isPulseOn":{"type":"boolean"},"logExpressionCode":{"maxLength":4000,"minLength":0,"type":"string"},"frameId":{"type":"string"},"valueExpressionType":{"type":"string","enum":["NONE","CUSTOM","EXPRESSION"]},"logMinValue":{"type":"number","format":"double"},"rawZeroScale":{"type":"number","format":"double"},"valueExpressionCode":{"maxLength":4000,"minLength":0,"type":"string"},"isActive":{"type":"boolean"},"code":{"maxLength":20,"minLength":0,"type":"string"},"valueExpressionId":{"type":"string"},"setMaxValue":{"type":"number","format":"double"},"logType":{"type":"string","enum":["No Log","When Changed","Periodically","Threshold","Expression","Custom"]},"setMinValue":{"type":"number","format":"double"},"keepLastValues":{"type":"boolean"},"logThreshold":{"type":"number","format":"double"},"isPulseOff":{"type":"boolean"},"logPeriod":{"minimum":1,"type":"integer","format":"int32"},"pulseOffDuration":{"type":"integer","format":"int32"},"pulseOnDuration":{"type":"integer","format":"int32"},"engZeroScale":{"type":"number","format":"double"},"dsc":{"maxLength":255,"minLength":0,"type":"string"},"unit":{"type":"string"},"logExpressionId":{"type":"string"},"rawFullScale":{"type":"number","format":"double"},"name":{"maxLength":100,"minLength":0,"type":"string"},"bitParentType":{"type":"string","enum":["SINT","BITS"]},"type":{"type":"string","enum":["BIT","BOOL","SINT","INT","DINT","LINT","REAL","BITS","STRUCT"]},"deviceId":{"type":"string"}}}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"required":["isActive","isPulseOff","isPulseOn","keepLastValues","name","type"],"type":"object","properties":{"$ref":"#/paths/~1api~1protocols~1ethernet-ip~1templates~1devices~1{deviceId}~1frames~1{frameId}~1variables/post/requestBody/content/application~1json/schema/properties"}}}}},"400":{"description":"Bad Request","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"type":"object"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal Server Error","content":{"*/*":{"schema":{"type":"object"}}}}}}}}}
```
