billing-api

Unicboard billing api


License
MIT
Install
pip install billing-api==0.0.3

Documentation

BILLING API DOCUMENTATION

Unicboard public api (in developing):

base station api

get base station type api list

method: GET
route: '/base-stations/types'
request:

    "limit": int
    "offset": int

response:

[
    "id": UUID
    "name": str
    "notes": str
]

get base station type api object

method: GET
route: '/base-stations/types/<base_station_type_id>'
request:

    "base_station_type_id": UUID

response:

    "id": UUID
    "name": str
    "notes": str

create base station type api

method: POST
route: '/base-stations/types'
request:
body:

    "name": str
    "notes": str

response:

    "id": UUID
    "name": str
    "notes": str

modification base station type api

method: PUT
route: '/base-stations/types/<base_station_type_id>'
request:

    "base_station_type_id": UUID

body:

    "name": str
    "notes": str

response:

    "id": UUID
    "name": str
    "notes": str

get base station api list

method: GET
route: '/base-stations'
request:

    "limit": int
    "offset": int

response:

[
    "id": UUID
    "identifier": str
    "base_station_type": {
        "id": UUID
        "name": str
        "notes": str
    }
]

get base station api object

method: GET
route: '/base-stations/<base_station_id>'
request:

  "base_station_id": UUID

response:

    "id": UUID
    "identifier": str
    "base_station_type": {
        "id": UUID
        "name": str
        "notes": str
    }

create base station api

method: POST
route: '/base-stations'
request:
body:

    "base_station_type_id": UUID
    "identifier": str

response:

    "id": UUID
    "identifier": str
    "base_station_type": {
        "id": UUID
        "name": str
        "notes": str
    }

modification base station api

method: PUT
route: '/base-stations/<base_station_id>'
request:

    "base_station_id": UUID

body:

    "base_station_type_id": UUID
    "identifier": str

response:

    "id": UUID
    "identifier": str
    "base_station_type": {
        "id": UUID
        "name": str
        "notes": str
    }

network api

get network api list

method: GET
route: '/networks'
request:

    "limit": int
    "offset": int

response:

[
    "id": UUID
    "name": str
    "type_network": str
    "data_gateway_id": UUID4
    "sys_type": str
    "specifier": Optional[str]
    "params": Optional[Dict[str, Any]]
]

get network api object

method: GET
route: '/networks/<network_id>'
request:

    "network_id": UUID

response:

    "id": UUID
    "name": str
    "type_network": str
    "data_gateway_id": UUID4
    "sys_type": str
    "specifier": Optional[str]
    "params": Optional[Dict[str, Any]]

create network api

method: POST
route: '/networks'
request:
body:

    "name": str
    "type_network": str (input/output)
    "sys_type": str (INPUT_NBIOT/INPUT_LORA/OUTPUT_DATA_LOGGER_DEVICE_DATA/OUTPUT_DATA_AGGREGATOR_DEVICE_DATA)
    "specifier": Optional[str]

response:

    "id": UUID
    "name": str
    "type_network": str
    "data_gateway_id": UUID4
    "sys_type": str
    "specifier": Optional[str]
    "params": Optional[Dict[str, Any]]

modification network api

method: PUT
route: '/networks/<network_id>'
request:

    "network_id": UUID

body:

    "name": str
    "type_network": str (input/output)
    "sys_type": str (INPUT_NBIOT/INPUT_LORA/OUTPUT_DATA_LOGGER_DEVICE_DATA/OUTPUT_DATA_AGGREGATOR_DEVICE_DATA)
    "specifier": Optional[str]

response:

    "id": UUID
    "name": str
    "type_network": str
    "data_gateway_id": UUID4
    "sys_type": str
    "specifier": Optional[str]
    "params": Optional[Dict[str, Any]]

device api

get device api list

method: GET
route: '/devices'
request:

    "limit": int
    "offset": int

response:

[
    "manufacturer_serial_number": str
    "firmware_version": Optional[str]
    "hardware_version": Optional[str]
    "date_produced": Optional[datetime]
    "hacks": List[str]
    "device_tz": Optional[str]
    "device_clock_offset_s": Optional[int]
    "time_transition": str
    "device_manufacturer": {
      "id": UUID4,
      "name": str
    },
    "device_modification": {
        "id": UUID4,
        "name": Optional[str],
        "device_modification_type_id": Optional[UUID4],
        "device_modification_type": {
            "id": UUID4,
            "sys_name": str,
            "name_ru": str,
            "name_en": str,
            "type": str,
            "metering_type_id": UUID4,
            "device_metering_type": {
                "id": UUID4,
                "sys_name": str,
                "name_ru": str,
                "name_en": str
            }
        }
    
    }
    "device_channel": [
        {
            "device_id": UUID4
            "serial_number": int
            "last_date_event_no_data": Optional[datetime]
            "inactivity_limit": Optional[int]
            "device_meter": [
                {
                    "device_channel_id": UUID
                    "value_multiplier": Optional[float]
                    "unit_multiplier": Optional[float]
                    "kind": str
                }
            ]
        }
    ]
    "data_gateway_network_device": Optional[
    {
        "id": UUID4
        "uplink_protocol_id": UUID4
        "downlink_protocol_id": UUID4
        "data_gateway_network_id": UUID4
        "mac": int
        "key_id": Optional[UUID4]
        "device_id": UUID4
        "uplink_encryption_key": Optional[str]
        "downlink_encryption_key": Optional[str]
        "encryption_key": Optional[str]
        "protocol":
        {
            "id": UUID4
            "date_created": datetime
            "date_modified": datetime
            "name": str
            "type": ProtocolEnum
        }
        "network": Optional[
        {
            "id": UUID
            "name": str
            "type_network": str
            "data_gateway_id": UUID4
            "sys_type": str
            "specifier": Optional[str]
            "params": Optional[Dict[str, Any]]
        }]
    }]
]

get device api object

method: GET
route: '/devices/<device_id>'
request:

    "device_id": UUID

response:

"manufacturer_serial_number": str
"firmware_version": Optional[str]
"hardware_version": Optional[str]
"date_produced": Optional[datetime]
"hacks": List[str]
"device_tz": Optional[str]
"device_clock_offset_s": Optional[int]
"time_transition": str
"device_manufacturer": {
  "id": UUID4,
  "name": str
},
"device_modification": {
    "id": UUID4,
    "name": Optional[str],
    "device_modification_type_id": Optional[UUID4],
    "device_modification_type": {
        "id": UUID4,
        "sys_name": str,
        "name_ru": str,
        "name_en": str,
        "type": str,
        "metering_type_id": UUID4,
        "device_metering_type": {
            "id": UUID4,
            "sys_name": str,
            "name_ru": str,
            "name_en": str
        }
    }

}
"device_channel": [
    {
        "device_id": UUID4
        "serial_number": int
        "last_date_event_no_data": Optional[datetime]
        "inactivity_limit": Optional[int]
        "device_meter": [
            {
                "device_channel_id": UUID
                "value_multiplier": Optional[float]
                "unit_multiplier": Optional[float]
                "kind": str
            }
        ]
    }
]
"data_gateway_network_device": Optional[
{
    "id": UUID4
    "uplink_protocol_id": UUID4
    "downlink_protocol_id": UUID4
    "data_gateway_network_id": UUID4
    "mac": int
    "key_id": Optional[UUID4]
    "device_id": UUID4
    "uplink_encryption_key": Optional[str]
    "downlink_encryption_key": Optional[str]
    "encryption_key": Optional[str]
    "protocol":
    {
        "id": UUID4
        "date_created": datetime
        "date_modified": datetime
        "name": str
        "type": ProtocolEnum
    }
    "network": Optional[
    {
        "id": UUID
        "name": str
        "type_network": str
        "data_gateway_id": UUID4
        "sys_type": str
        "specifier": Optional[str]
        "params": Optional[Dict[str, Any]]
    }]
}]

crate device api

method: POST
route: '/devices/'
request:
body:

    "manufacturer_name": str
    "mac": int
    "manufacturer_serial_number": str
    "modification_type_id": UUID4
    "modification_id": UUID4
    "date_produced": Optional[datetime]
    "firmware_version": Optional[str]
    "hardware_version": Optional[str]
    "uplink_protocol_id": UUID4
    "downlink_protocol_id": UUID4
    "uplink_encryption_type": str (NO_ENCRYPTION/XTEA_V_NERO_V0/AES_ECB_V_NERO_V0/KUZNECHIK_V_NERO_V0)
    "downlink_encryption_type": str (NO_ENCRYPTION/XTEA_V_NERO_V0/AES_ECB_V_NERO_V0/KUZNECHIK_V_NERO_V0)
    "key_id": Optional[UUID4]
    "uplink_encryption_key": Optional[str]
    "downlink_encryption_key": Optional[str]
    "data_input_gateway_network_id": UUID4
    "data_gateway_id": UUID4
    "device_channels": List[
      {
          "serial_number": int
          "inactivity_limit": Optional[int]
          "device_meter": List[
            {
                "value_multiplier": float
                "unit_multiplier": float
                "kind": str (COMMON_CONSUMED/COMMON_GENERATED/COMMON_ACTIVE_GENERATED/COMMON_ACTIVE_CONSUMED/COMMON_REACTIVE_GENERATED/COMMON_REACTIVE_CONSUMED/PHASE_A_ACTIVE_CONSUMED/PHASE_A_ACTIVE_GENERATED/PHASE_A_REACTIVE_CONSUMED/PHASE_A_REACTIVE_GENERATED/PHASE_B_ACTIVE_CONSUMED/PHASE_B_ACTIVE_GENERATED/PHASE_B_REACTIVE_CONSUMED/PHASE_B_REACTIVE_GENERATED/PHASE_C_ACTIVE_CONSUMED/PHASE_C_ACTIVE_GENERATED/PHASE_C_REACTIVE_CONSUMED/PHASE_C_REACTIVE_GENERATED)
            }
          ]        
      }
    ]
    "modification_name": Optional[str]
    "modification_type_name": Optional[str]

response:

    "manufacturer_serial_number": str
    "firmware_version": Optional[str]
    "hardware_version": Optional[str]
    "date_produced": Optional[datetime]
    "device_manufacturer": {
        "id": UUID
        "name": str
    }
    "device_modification": {
        "id": UUID
        "name": Optional[str]
        "device_modification_type_id": Optional[UUID]
        "device_modification_type": {
            "id": UUID
            "sys_name": str
            "name_ru": str
            "name_en": str
            "type": str (smart_meter/modem)
            "metering_type_id": UUID
            "device_metering_type": {
                "id": UUID
                "sys_name": str
                "name_ru": str
                "name_en": str
            }
        }
    }
    "device_channel": [
    {
        "serial_number": int
        "inactivity_limit": Optional[int]
        "device_meter": [
            {
                "device_channel_id": UUID
                "value_multiplier": Optional[float]
                "unit_multiplier": Optional[float]
                "kind": str
            }
        ]
    }
    ]
    "data_gateway_network_device": Optional[
    {
        "id": UUID4
        "uplink_protocol_id": UUID4
        "downlink_protocol_id": UUID4
        "data_gateway_network_id": UUID4
        "mac": int
        "key_id": Optional[UUID4]
        "device_id": UUID4
        "uplink_encryption_key": Optional[str]
        "downlink_encryption_key": Optional[str]
        "encryption_key": Optional[str]
        "protocol":
        {
            "id": UUID4
            "date_created": datetime
            "date_modified": datetime
            "name": str
            "type": ProtocolEnum
        }
        "network": Optional[
        {
            "id": UUID
            "name": str
            "type_network": str
            "data_gateway_id": UUID4
            "sys_type": str
            "specifier": Optional[str]
            "params": Optional[Dict[str, Any]]
        }]
    }]

modification device api

method: PUT
route: '/devices/<device_id>'
request:

    "device_id": UUID

body:

    "device_modification_id": UUID
    "device_manufacturer_id": UUID
    "manufacturer_serial_number": str
    "date_produced": DateTime
    "firmware_version": str
    "hardware_version": str
    "device_tz": str
    "device_clock_offset_s": int
    "time_transition": str (summer/winter/unknown)

response:

    "device_id": UUID
    "device_modification_id": UUID
    "device_manufacturer_id": UUID
    "manufacturer_serial_number": str
    "date_produced": DateTime
    "firmware_version": str
    "hardware_version": str
    "device_tz": str
    "device_clock_offset_s": int
    "time_transition": str (summer/winter/unknown)

delete device api

method: DELETE
route: '/devices/<device_id>'
request:

    "device_id": UUID

response:
200

device network api

get device network api list

method: GET
route: '/devices-networks/'
request:

    "limit": int
    "offset": int

response:

[
    "id": UUID4
    "uplink_protocol_id": UUID4
    "downlink_protocol_id": UUID4
    "data_gateway_network_id": UUID4
    "mac": int
    "key_id": Optional[UUID4]
    "device_id": UUID4
    "uplink_encryption_key": Optional[str]
    "downlink_encryption_key": Optional[str]
    "device": {
        "manufacturer_serial_number": str
        "firmware_version": Optional[str]
        "hardware_version": Optional[str]
        "date_produced": Optional[datetime]
        "device_manufacturer": {
            "id": UUID4
            "name": str
        }
        "device_modification": {
            "id": UUID4
            "name": Optional[str]
            "device_modification_type_id": Optional[UUID4]
            "device_modification_type": {
                "id": UUID4
                "sys_name": str
                "name_ru": str
                "name_en": str
                "type": str (smart_meter/modem)
                "metering_type_id": UUID4
                "device_metering_type": {
                    "id": UUID4
                    "sys_name": str
                    "name_ru": str
                    "name_en": str
                }     
            }
        }
        "device_channel": List[{
            "serial_number": int
            "inactivity_limit": Optional[int]
            "device_meter": [
                {
                    "device_channel_id": UUID
                    "value_multiplier": Optional[float]
                    "unit_multiplier": Optional[float]
                    "kind": str
                }
            ]
        }]
    }
    "network": {
        "id": UUID
        "uplink_protocol_id": UUID
        "downlink_protocol_id": UUID
        "data_gateway_network_id": UUID
        "mac": int
        "key_id": Optional[UUID]
        "device_id": UUID
        "uplink_encryption_key": Optional[str]
        "downlink_encryption_key": Optional[str]
        "encryption_key": Optional[str]
        "protocol": {
            id: UUID
            name: str
            type: str (WATER5_V_NERO_V0/NCP_SMP_V0/SMP_V0)
        }
        "network": Optional[
            "name": str
            "type_network": str(input/output)
            "data_gateway_id": UUID
            "data_gateway": {
              "name": str
            } 
            "sys_type": str (INPUT_NBIOT/INPUT_LORA/OUTPUT_DATA_LOGGER_DEVICE_DATA/OUTPUT_DATA_AGGREGATOR_DEVICE_DATA)
            "specifier": Optional[str]
            "params": Optional[Dict[str, Any]]
      ]
  }
]

get device network api object

method: GET
route: '/devices-networks/<device_network_id>'
request:

    "device_network_id": UUID

response:

"id": UUID4
"uplink_protocol_id": UUID4
"downlink_protocol_id": UUID4
"data_gateway_network_id": UUID4
"mac": int
"key_id": Optional[UUID4]
"device_id": UUID4
"uplink_encryption_key": Optional[str]
"downlink_encryption_key": Optional[str]
"device": {
    "manufacturer_serial_number": str
    "firmware_version": Optional[str]
    "hardware_version": Optional[str]
    "date_produced": Optional[datetime]
    "device_manufacturer": {
        "id": UUID4
        "name": str
    }
    "device_modification": {
        "id": UUID4
        "name": Optional[str]
        "device_modification_type_id": Optional[UUID4]
        "device_modification_type": {
            "id": UUID4
            "sys_name": str
            "name_ru": str
            "name_en": str
            "type": str (smart_meter/modem)
            "metering_type_id": UUID4
            "device_metering_type": {
                "id": UUID4
                "sys_name": str
                "name_ru": str
                "name_en": str
            }     
        }
    }
    "device_channel": List[{
        "serial_number": int
        "inactivity_limit": Optional[int]
        "device_meter": [
            {
                "device_channel_id": UUID
                "value_multiplier": Optional[float]
                "unit_multiplier": Optional[float]
                "kind": str
            }
        ]
    }]
}
"network": {
    "id": UUID
    "uplink_protocol_id": UUID
    "downlink_protocol_id": UUID
    "data_gateway_network_id": UUID
    "mac": int
    "key_id": Optional[UUID]
    "device_id": UUID
    "uplink_encryption_key": Optional[str]
    "downlink_encryption_key": Optional[str]
    "encryption_key": Optional[str]
    "protocol": {
        id: UUID
        name: str
        type: str (WATER5_V_NERO_V0/NCP_SMP_V0/SMP_V0)
    }
    "network": Optional[
        "name": str
        "type_network": str(input/output)
        "data_gateway_id": UUID
        "data_gateway": {
          "name": str
        } 
        "sys_type": str (INPUT_NBIOT/INPUT_LORA/OUTPUT_DATA_LOGGER_DEVICE_DATA/OUTPUT_DATA_AGGREGATOR_DEVICE_DATA)
        "specifier": Optional[str]
        "params": Optional[Dict[str, Any]]
  ]
}

create device network api

method: POST
route: '/devices-networks'
request:
body:

    "mac": int
    "uplink_encryption_key": str
    "downlink_encryption_key": str
    "uplink_encryption_type": str
    "downlink_encryption_type": str
    "key_id": str
    "device_id": UUID
    "data_gateway_network_id": UUID
    "uplink_protocol_id": UUID
    "downlink_protocol_id": UUID

response:

    "id": UUID4
    "mac": int
    "uplink_encryption_key": str
    "downlink_encryption_key": str
    "uplink_encryption_type": str
    "downlink_encryption_type": str
    "key_id": str
    "device_id": UUID
    "data_gateway_network_id": UUID
    "uplink_protocol_id": UUID
    "downlink_protocol_id": UUID

modification device network api

method: PUT
route: '/devices-networks/<device_network_id>'
request:

    "device_network_id": UUID

body:

    "mac": int
    "uplink_encryption_key": str
    "downlink_encryption_key": str
    "uplink_encryption_type": str
    "downlink_encryption_type": str
    "key_id": str
    "device_id": UUID
    "data_gateway_network_id": UUID
    "uplink_protocol_id": UUID
    "downlink_protocol_id": UUID

response:

    "id": UUID4
    "mac": int
    "uplink_encryption_key": str
    "downlink_encryption_key": str
    "uplink_encryption_type": str
    "downlink_encryption_type": str
    "key_id": str
    "device_id": UUID
    "data_gateway_network_id": UUID
    "uplink_protocol_id": UUID
    "downlink_protocol_id": UUID

delete device network api

method: DELETE
route: '/devices-networks/<device_network_id>'
request:

    "device_network_id": UUID

response: 200

device channel api

get device channel api list

method: GET
route: '/channels'
request:

    "limit": int
    "offset": int

response:

[
    "device_id": UUID4
    "serial_number": int
    "last_date_event_no_data": Optional[datetime]
    "inactivity_limit": Optional[int]
    "device_meter": [
        "device_channel_id": UUID
        "value_multiplier": Optional[float]
        "unit_multiplier": Optional[float]
        "kind": str (COMMON_CONSUMED/COMMON_GENERATED/COMMON_ACTIVE_GENERATED/COMMON_ACTIVE_CONSUMED/COMMON_REACTIVE_GENERATED/COMMON_REACTIVE_CONSUMED/PHASE_A_ACTIVE_CONSUMED/PHASE_A_ACTIVE_GENERATED/PHASE_A_REACTIVE_CONSUMED/PHASE_A_REACTIVE_GENERATED/PHASE_B_ACTIVE_CONSUMED/PHASE_B_ACTIVE_GENERATED/PHASE_B_REACTIVE_CONSUMED/PHASE_B_REACTIVE_GENERATED/PHASE_C_ACTIVE_CONSUMED/PHASE_C_ACTIVE_GENERATED/PHASE_C_REACTIVE_CONSUMED/PHASE_C_REACTIVE_GENERATED)
    ]
]

get device channel api list by device

method: GET
route: '/devices/<device_id>/channels'
request:

    "device_id": UUID

response:

[
    "device_id": UUID4
    "serial_number": int
    "last_date_event_no_data": Optional[datetime]
    "inactivity_limit": Optional[int]
    "device_meter": [
        "device_channel_id": UUID
        "value_multiplier": Optional[float]
        "unit_multiplier": Optional[float]
        "kind": str (COMMON_CONSUMED/COMMON_GENERATED/COMMON_ACTIVE_GENERATED/COMMON_ACTIVE_CONSUMED/COMMON_REACTIVE_GENERATED/COMMON_REACTIVE_CONSUMED/PHASE_A_ACTIVE_CONSUMED/PHASE_A_ACTIVE_GENERATED/PHASE_A_REACTIVE_CONSUMED/PHASE_A_REACTIVE_GENERATED/PHASE_B_ACTIVE_CONSUMED/PHASE_B_ACTIVE_GENERATED/PHASE_B_REACTIVE_CONSUMED/PHASE_B_REACTIVE_GENERATED/PHASE_C_ACTIVE_CONSUMED/PHASE_C_ACTIVE_GENERATED/PHASE_C_REACTIVE_CONSUMED/PHASE_C_REACTIVE_GENERATED)
    ]
]

get device channel api object

method: GET
route: '/devices/<device_id>/channels/<device_channel_id>'
request:

    "device_id": UUID
    "device_channel_id": UUID

response:

    "device_id": UUID4
    "serial_number": int
    "last_date_event_no_data": Optional[datetime]
    "inactivity_limit": Optional[int]
    "device_meter": [
        "device_channel_id": UUID
        "value_multiplier": Optional[float]
        "unit_multiplier": Optional[float]
        "kind": str (COMMON_CONSUMED/COMMON_GENERATED/COMMON_ACTIVE_GENERATED/COMMON_ACTIVE_CONSUMED/COMMON_REACTIVE_GENERATED/COMMON_REACTIVE_CONSUMED/PHASE_A_ACTIVE_CONSUMED/PHASE_A_ACTIVE_GENERATED/PHASE_A_REACTIVE_CONSUMED/PHASE_A_REACTIVE_GENERATED/PHASE_B_ACTIVE_CONSUMED/PHASE_B_ACTIVE_GENERATED/PHASE_B_REACTIVE_CONSUMED/PHASE_B_REACTIVE_GENERATED/PHASE_C_ACTIVE_CONSUMED/PHASE_C_ACTIVE_GENERATED/PHASE_C_REACTIVE_CONSUMED/PHASE_C_REACTIVE_GENERATED)
    ]

create device channel api

method: POST
route: '/devices/<device_id>/channels'
request:

    "device_id": UUID

body:

    "device_id": UUID
    "serial_number": int
    "inactivity_limit": Optional[int]

response:

    "device_id": UUID4
    "serial_number": int
    "last_date_event_no_data": Optional[datetime]
    "inactivity_limit": Optional[int]
    "device_meter": [
        "device_channel_id": UUID
        "value_multiplier": Optional[float]
        "unit_multiplier": Optional[float]
        "kind": str (COMMON_CONSUMED/COMMON_GENERATED/COMMON_ACTIVE_GENERATED/COMMON_ACTIVE_CONSUMED/COMMON_REACTIVE_GENERATED/COMMON_REACTIVE_CONSUMED/PHASE_A_ACTIVE_CONSUMED/PHASE_A_ACTIVE_GENERATED/PHASE_A_REACTIVE_CONSUMED/PHASE_A_REACTIVE_GENERATED/PHASE_B_ACTIVE_CONSUMED/PHASE_B_ACTIVE_GENERATED/PHASE_B_REACTIVE_CONSUMED/PHASE_B_REACTIVE_GENERATED/PHASE_C_ACTIVE_CONSUMED/PHASE_C_ACTIVE_GENERATED/PHASE_C_REACTIVE_CONSUMED/PHASE_C_REACTIVE_GENERATED)
    ]

modification device channel api

method: PUT
route: '/devices/<device_id>/channels/<device_channel_id>'
request:

    "device_id": UUID
    "device_channel_id": UUID

body:

    "device_id": UUID
    "serial_number": int
    "inactivity_limit": Optional[int]

response:

    "device_id": UUID4
    "serial_number": int
    "last_date_event_no_data": Optional[datetime]
    "inactivity_limit": Optional[int]
    "device_meter": [
        "device_channel_id": UUID
        "value_multiplier": Optional[float]
        "unit_multiplier": Optional[float]
        "kind": str (COMMON_CONSUMED/COMMON_GENERATED/COMMON_ACTIVE_GENERATED/COMMON_ACTIVE_CONSUMED/COMMON_REACTIVE_GENERATED/COMMON_REACTIVE_CONSUMED/PHASE_A_ACTIVE_CONSUMED/PHASE_A_ACTIVE_GENERATED/PHASE_A_REACTIVE_CONSUMED/PHASE_A_REACTIVE_GENERATED/PHASE_B_ACTIVE_CONSUMED/PHASE_B_ACTIVE_GENERATED/PHASE_B_REACTIVE_CONSUMED/PHASE_B_REACTIVE_GENERATED/PHASE_C_ACTIVE_CONSUMED/PHASE_C_ACTIVE_GENERATED/PHASE_C_REACTIVE_CONSUMED/PHASE_C_REACTIVE_GENERATED)
    ]

delete device channel api

method: DELETE
route: '/devices/<device_id>/channels/<device_channel_id>'
request:

    "device_id": UUID
    "device_channel_id": UUID

response: 200

device meter api

get device meter api list

method: GET
route: '/meters'
request:

    "limit": int
    "offset": int

response:

[
    "id": UUID
    "device_channel_id": UUID
    "value_multiplier": Optional[float]
    "unit_multiplier": Optional[float]
    "kind": str (COMMON_CONSUMED/COMMON_GENERATED/COMMON_ACTIVE_GENERATED/COMMON_ACTIVE_CONSUMED/COMMON_REACTIVE_GENERATED/COMMON_REACTIVE_CONSUMED/PHASE_A_ACTIVE_CONSUMED/PHASE_A_ACTIVE_GENERATED/PHASE_A_REACTIVE_CONSUMED/PHASE_A_REACTIVE_GENERATED/PHASE_B_ACTIVE_CONSUMED/PHASE_B_ACTIVE_GENERATED/PHASE_B_REACTIVE_CONSUMED/PHASE_B_REACTIVE_GENERATED/PHASE_C_ACTIVE_CONSUMED/PHASE_C_ACTIVE_GENERATED/PHASE_C_REACTIVE_CONSUMED/PHASE_C_REACTIVE_GENERATED)
]

get device meter api list by channel

method: GET
route: '/devices/<device_id>/channels/<device_channel_id>/meters'
request:

    "device_id": UUID
    "device_channel_id": UUID

response:

[
    "id": UUID
    "device_channel_id": UUID
    "value_multiplier": Optional[float]
    "unit_multiplier": Optional[float]
    "kind": str (COMMON_CONSUMED/COMMON_GENERATED/COMMON_ACTIVE_GENERATED/COMMON_ACTIVE_CONSUMED/COMMON_REACTIVE_GENERATED/COMMON_REACTIVE_CONSUMED/PHASE_A_ACTIVE_CONSUMED/PHASE_A_ACTIVE_GENERATED/PHASE_A_REACTIVE_CONSUMED/PHASE_A_REACTIVE_GENERATED/PHASE_B_ACTIVE_CONSUMED/PHASE_B_ACTIVE_GENERATED/PHASE_B_REACTIVE_CONSUMED/PHASE_B_REACTIVE_GENERATED/PHASE_C_ACTIVE_CONSUMED/PHASE_C_ACTIVE_GENERATED/PHASE_C_REACTIVE_CONSUMED/PHASE_C_REACTIVE_GENERATED)
]

get device meter api object

method: GET
route: '/devices/<device_id>/channels/<device_channel_id>/meters/<meter_id>'
request:

    "device_id": UUID
    "device_channel_id": UUID
    "meter_id": UUID

response:

    "id": UUID
    "device_channel_id": UUID
    "value_multiplier": Optional[float]
    "unit_multiplier": Optional[float]
    "kind": str (COMMON_CONSUMED/COMMON_GENERATED/COMMON_ACTIVE_GENERATED/COMMON_ACTIVE_CONSUMED/COMMON_REACTIVE_GENERATED/COMMON_REACTIVE_CONSUMED/PHASE_A_ACTIVE_CONSUMED/PHASE_A_ACTIVE_GENERATED/PHASE_A_REACTIVE_CONSUMED/PHASE_A_REACTIVE_GENERATED/PHASE_B_ACTIVE_CONSUMED/PHASE_B_ACTIVE_GENERATED/PHASE_B_REACTIVE_CONSUMED/PHASE_B_REACTIVE_GENERATED/PHASE_C_ACTIVE_CONSUMED/PHASE_C_ACTIVE_GENERATED/PHASE_C_REACTIVE_CONSUMED/PHASE_C_REACTIVE_GENERATED)

create device meter api

method: POST
route: '/devices/<device_id>/channels/<device_channel_id>/meters'
request:

    "device_id": UUID
    "device_channel_id": UUID

body:

    "value_multiplier": Optional[float]
    "unit_multiplier": Optional[float]
    "kind": str (COMMON_CONSUMED/COMMON_GENERATED/COMMON_ACTIVE_GENERATED/COMMON_ACTIVE_CONSUMED/COMMON_REACTIVE_GENERATED/COMMON_REACTIVE_CONSUMED/PHASE_A_ACTIVE_CONSUMED/PHASE_A_ACTIVE_GENERATED/PHASE_A_REACTIVE_CONSUMED/PHASE_A_REACTIVE_GENERATED/PHASE_B_ACTIVE_CONSUMED/PHASE_B_ACTIVE_GENERATED/PHASE_B_REACTIVE_CONSUMED/PHASE_B_REACTIVE_GENERATED/PHASE_C_ACTIVE_CONSUMED/PHASE_C_ACTIVE_GENERATED/PHASE_C_REACTIVE_CONSUMED/PHASE_C_REACTIVE_GENERATED)

response:

    "id": UUID
    "device_channel_id": UUID
    "value_multiplier": Optional[float]
    "unit_multiplier": Optional[float]
    "kind": str (COMMON_CONSUMED/COMMON_GENERATED/COMMON_ACTIVE_GENERATED/COMMON_ACTIVE_CONSUMED/COMMON_REACTIVE_GENERATED/COMMON_REACTIVE_CONSUMED/PHASE_A_ACTIVE_CONSUMED/PHASE_A_ACTIVE_GENERATED/PHASE_A_REACTIVE_CONSUMED/PHASE_A_REACTIVE_GENERATED/PHASE_B_ACTIVE_CONSUMED/PHASE_B_ACTIVE_GENERATED/PHASE_B_REACTIVE_CONSUMED/PHASE_B_REACTIVE_GENERATED/PHASE_C_ACTIVE_CONSUMED/PHASE_C_ACTIVE_GENERATED/PHASE_C_REACTIVE_CONSUMED/PHASE_C_REACTIVE_GENERATED)

modification device meter api

method: PUT
route: '/devices/<device_id>/channels/<device_channel_id>/meters/<meter_id>'
request:

    "device_id": UUID
    "device_channel_id": UUID
    "meter_id": UUID

body:

    "value_multiplier": Optional[float]
    "unit_multiplier": Optional[float]
    "kind": str (COMMON_CONSUMED/COMMON_GENERATED/COMMON_ACTIVE_GENERATED/COMMON_ACTIVE_CONSUMED/COMMON_REACTIVE_GENERATED/COMMON_REACTIVE_CONSUMED/PHASE_A_ACTIVE_CONSUMED/PHASE_A_ACTIVE_GENERATED/PHASE_A_REACTIVE_CONSUMED/PHASE_A_REACTIVE_GENERATED/PHASE_B_ACTIVE_CONSUMED/PHASE_B_ACTIVE_GENERATED/PHASE_B_REACTIVE_CONSUMED/PHASE_B_REACTIVE_GENERATED/PHASE_C_ACTIVE_CONSUMED/PHASE_C_ACTIVE_GENERATED/PHASE_C_REACTIVE_CONSUMED/PHASE_C_REACTIVE_GENERATED)

response:

    "id": UUID
    "device_channel_id": UUID
    "value_multiplier": Optional[float]
    "unit_multiplier": Optional[float]
    "kind": str (COMMON_CONSUMED/COMMON_GENERATED/COMMON_ACTIVE_GENERATED/COMMON_ACTIVE_CONSUMED/COMMON_REACTIVE_GENERATED/COMMON_REACTIVE_CONSUMED/PHASE_A_ACTIVE_CONSUMED/PHASE_A_ACTIVE_GENERATED/PHASE_A_REACTIVE_CONSUMED/PHASE_A_REACTIVE_GENERATED/PHASE_B_ACTIVE_CONSUMED/PHASE_B_ACTIVE_GENERATED/PHASE_B_REACTIVE_CONSUMED/PHASE_B_REACTIVE_GENERATED/PHASE_C_ACTIVE_CONSUMED/PHASE_C_ACTIVE_GENERATED/PHASE_C_REACTIVE_CONSUMED/PHASE_C_REACTIVE_GENERATED)

delete device meter api

method: DELETE
route: '/devices/<device_id>/channels/<device_channel_id>/meters/<meter_id>'
request:

    "device_id": UUID
    "device_channel_id": UUID
    "meter_id": UUID

response: 200

device manufacturer api

get device manufacturer api list

method: GET
route: '/manufacturers'
request:

    "limit": int
    "offset": int

response:

[
    "id": UUID
    "name" : str
]

get device manufacturer api object

method: GET
route: '/manufacturers/<manufacturer_id>'
request:

    "manufacturer_id": UUID

response:

    "id": UUID
    "name" : str

create device manufacturer api object

method: POST
route: '/manufacturers'
request:
body:

  "name" : str

response:

    "id": UUID
    "name" : str

modification device manufacturer api object

method: PUT
route: '/manufacturers/<manufacturer_id>'
request:

  "manufacturer_id" : UUID

body:

  "name" : str

response:

    "id": UUID
    "name" : str

delete device manufacturer api object

method: DELETE
route: '/manufacturers/<manufacturer_id>'
request:

  "manufacturer_id" : UUID

response: 200

metering type api

get metering type api list

method: GET
route: '/metering-types'
request:

    "limit": int
    "offset": int

response:

[
    "id": UUID
    "sys_name": str
    "name_ru": str
    "name_en": str
]

get metering type api object

method: GET
route: '/metering-types/<metering_type_id>'
request:

    "metering_type_id": UUID

response:

    "id": UUID
    "sys_name": str
    "name_ru": str
    "name_en": str

create metering type api object

method: POST
route: '/metering-types'
request:
body:

    "sys_name": str
    "name_ru": str
    "name_en": str

response:

    "id": UUID
    "sys_name": str
    "name_ru": str
    "name_en": str

modification metering type api object

method: PUT
route: '/metering-types/<metering_type_id>'
request:

  "metering_type_id" : UUID

body:

    "sys_name": str
    "name_ru": str
    "name_en": str

response:

[
    "id": UUID
    "sys_name": str
    "name_ru": str
    "name_en": str
]

delete metering type api object

method: DELETE
route: '/metering-types/<metering_type_id>'
request:

  "metering_type_id" : UUID

response: 200

device modification type api

get device modification type api list

method: GET
route: '/modification-types'
request:

    "limit": int
    "offset": int

response:

[
    "id": UUID4
    "sys_name": str
    "name_ru": str
    "name_en": str
    "type": str (smart_meter/modem)
    "device_metering_type": {
        "id": UUID4
        "sys_name": str
        "name_ru": str
        "name_en": str
    }
]

get device modification type api object

method: GET
route: '/modification-types/<modification_type_id>'
request:

    "modification_type_id": UUID

response:

    "id": UUID4
    "sys_name": str
    "name_ru": str
    "name_en": str
    "type": str (smart_meter/modem)
    "device_metering_type": {
        "id": UUID4
        "sys_name": str
        "name_ru": str
        "name_en": str
    }

create device modification type api

method: POST
route: '/modification-types'
request:
body:

    "sys_name": str
    "name_ru": str
    "name_en": str
    "type": str (smart_meter/modem)
    "device_metering_type": UUID

response:

    "id": UUID4
    "sys_name": str
    "name_ru": str
    "name_en": str
    "type": str (smart_meter/modem)
    "device_metering_type": {
        "id": UUID4
        "sys_name": str
        "name_ru": str
        "name_en": str
    }

modification device modification type api

method: PUT
route: '/modification-types/<modification_type_id>'
request:

    "modification_type_id": UUID

body:

    "sys_name": str
    "name_ru": str
    "name_en": str
    "type": str (smart_meter/modem)
    "device_metering_type": UUID

response:

    "id": UUID4
    "sys_name": str
    "name_ru": str
    "name_en": str
    "type": str (smart_meter/modem)
    "device_metering_type": {
        "id": UUID4
        "sys_name": str
        "name_ru": str
        "name_en": str
    }

delete device modification type api

method: DELETE
route: '/modification-types/<modification_type_id>'
request:

    "modification_type_id": UUID

response: 200

device modification api

get device modification api list

method: GET
route: '/modifications'
request:

    "limit": int
    "offset": int

response:

[
    "id": UUID4
    "name": str
    "max_daily_consumption": float
    "device_modification_type": {
        "id": UUID4
        "sys_name": str
        "name_ru": str
        "name_en": str
        "type": str (smart_meter/modem)
        "device_metering_type": {
            "id": UUID4
            "sys_name": str
            "name_ru": str
            "name_en": str
        }
    }
]

get device modification api object

method: GET
route: '/modifications/<modification_id>'
request:

    "modification_id": UUID

response:

    "id": UUID4
    "name": str
    "max_daily_consumption": float
    "device_modification_type": {
        "id": UUID4
        "sys_name": str
        "name_ru": str
        "name_en": str
        "type": str (smart_meter/modem)
        "device_metering_type": {
            "id": UUID4
            "sys_name": str
            "name_ru": str
            "name_en": str
        }
    }

create device modification api

method: POST
route: '/modifications'
request:
body:

    "sys_name": str
    "name_ru": str
    "name_en": str
    "type": str (smart_meter/modem)
    "metering_type_id": UUID4

response:

    "id": UUID4
    "name": str
    "max_daily_consumption": float
    "device_modification_type": {
        "id": UUID4
        "sys_name": str
        "name_ru": str
        "name_en": str
        "type": str (smart_meter/modem)
        "device_metering_type": {
            "id": UUID4
            "sys_name": str
            "name_ru": str
            "name_en": str
        }
    }

modofication device modification api

method: PUT
route: '/modifications/<modification_id>'
request:

    "modification_id": UUID

body:

    "sys_name": str
    "name_ru": str
    "name_en": str
    "type": str (smart_meter/modem)
    "metering_type_id": UUID4

response:

    "id": UUID4
    "name": str
    "max_daily_consumption": float
    "device_modification_type": {
        "id": UUID4
        "sys_name": str
        "name_ru": str
        "name_en": str
        "type": str (smart_meter/modem)
        "device_metering_type": {
            "id": UUID4
            "sys_name": str
            "name_ru": str
            "name_en": str
        }
    }

delete device modification api

method: DELETE
route: '/modifications/<modification_id>'
request:

    "modification_id": UUID

response: 200

protocol api

get protocol api list

method: GET
route: '/protocols'
request:

    "limit": int
    "offset": int

response:

[
    "id": UUID4
    "name": str
    "type": str (WATER5_V_NERO_V0/NCP_SMP_V0/SMP_V0/SMP_M_GAS_METER_V0/SMP_M_ENERGY_METER_V0/SMP_M_JUPITER_08B_V0/SMP_M_JUPITER_12B_V0/SMP_M_JUPITER_16B_V0/SMP_M_WATER_METER_04B_V0/SMP_M_WATER_METER_08B_V0/SMP_M_WATER_METER_12B_V0/SMP_M_WATER_METER_16B_V0/WATER5_V_JUPITER_FREESCALE_V0/WATER5_V_JUPITER_STM_V0/WATER5_V_FLUO_STM_V0/WATER5_V_FLUO_FREESCALE_V0/WATER5_V_FLUO_A_V0/WATER5_V_FLUO_S_V0/WATER5_V_GAS_V0/WATER5_V_JUPITER_LORA_V0/WATER5_V_FLUO_LORA_V0)
]

get protocol api object

method: GET
route: '/protocols/<protocol_id>'
request:

    "protocol_id": UUID

response:

    "id": UUID4
    "name": str
    "type": str (WATER5_V_NERO_V0/NCP_SMP_V0/SMP_V0/SMP_M_GAS_METER_V0/SMP_M_ENERGY_METER_V0/SMP_M_JUPITER_08B_V0/SMP_M_JUPITER_12B_V0/SMP_M_JUPITER_16B_V0/SMP_M_WATER_METER_04B_V0/SMP_M_WATER_METER_08B_V0/SMP_M_WATER_METER_12B_V0/SMP_M_WATER_METER_16B_V0/WATER5_V_JUPITER_FREESCALE_V0/WATER5_V_JUPITER_STM_V0/WATER5_V_FLUO_STM_V0/WATER5_V_FLUO_FREESCALE_V0/WATER5_V_FLUO_A_V0/WATER5_V_FLUO_S_V0/WATER5_V_GAS_V0/WATER5_V_JUPITER_LORA_V0/WATER5_V_FLUO_LORA_V0)

create protocol api

method: POST
route: '/protocols'
request:
body:

    "name": str
    "type": str (WATER5_V_NERO_V0/NCP_SMP_V0/SMP_V0/SMP_M_GAS_METER_V0/SMP_M_ENERGY_METER_V0/SMP_M_JUPITER_08B_V0/SMP_M_JUPITER_12B_V0/SMP_M_JUPITER_16B_V0/SMP_M_WATER_METER_04B_V0/SMP_M_WATER_METER_08B_V0/SMP_M_WATER_METER_12B_V0/SMP_M_WATER_METER_16B_V0/WATER5_V_JUPITER_FREESCALE_V0/WATER5_V_JUPITER_STM_V0/WATER5_V_FLUO_STM_V0/WATER5_V_FLUO_FREESCALE_V0/WATER5_V_FLUO_A_V0/WATER5_V_FLUO_S_V0/WATER5_V_GAS_V0/WATER5_V_JUPITER_LORA_V0/WATER5_V_FLUO_LORA_V0)

response:

    "id": UUID4
    "name": str
    "type": str (WATER5_V_NERO_V0/NCP_SMP_V0/SMP_V0/SMP_M_GAS_METER_V0/SMP_M_ENERGY_METER_V0/SMP_M_JUPITER_08B_V0/SMP_M_JUPITER_12B_V0/SMP_M_JUPITER_16B_V0/SMP_M_WATER_METER_04B_V0/SMP_M_WATER_METER_08B_V0/SMP_M_WATER_METER_12B_V0/SMP_M_WATER_METER_16B_V0/WATER5_V_JUPITER_FREESCALE_V0/WATER5_V_JUPITER_STM_V0/WATER5_V_FLUO_STM_V0/WATER5_V_FLUO_FREESCALE_V0/WATER5_V_FLUO_A_V0/WATER5_V_FLUO_S_V0/WATER5_V_GAS_V0/WATER5_V_JUPITER_LORA_V0/WATER5_V_FLUO_LORA_V0)

modification protocol api

method: PUT
route: '/protocols/<protocol_id>'
request:

    "protocol_id": UUID

body:

    "name": str
    "type": str (WATER5_V_NERO_V0/NCP_SMP_V0/SMP_V0/SMP_M_GAS_METER_V0/SMP_M_ENERGY_METER_V0/SMP_M_JUPITER_08B_V0/SMP_M_JUPITER_12B_V0/SMP_M_JUPITER_16B_V0/SMP_M_WATER_METER_04B_V0/SMP_M_WATER_METER_08B_V0/SMP_M_WATER_METER_12B_V0/SMP_M_WATER_METER_16B_V0/WATER5_V_JUPITER_FREESCALE_V0/WATER5_V_JUPITER_STM_V0/WATER5_V_FLUO_STM_V0/WATER5_V_FLUO_FREESCALE_V0/WATER5_V_FLUO_A_V0/WATER5_V_FLUO_S_V0/WATER5_V_GAS_V0/WATER5_V_JUPITER_LORA_V0/WATER5_V_FLUO_LORA_V0)

response:

    "id": UUID4
    "name": str
    "type": str (WATER5_V_NERO_V0/NCP_SMP_V0/SMP_V0/SMP_M_GAS_METER_V0/SMP_M_ENERGY_METER_V0/SMP_M_JUPITER_08B_V0/SMP_M_JUPITER_12B_V0/SMP_M_JUPITER_16B_V0/SMP_M_WATER_METER_04B_V0/SMP_M_WATER_METER_08B_V0/SMP_M_WATER_METER_12B_V0/SMP_M_WATER_METER_16B_V0/WATER5_V_JUPITER_FREESCALE_V0/WATER5_V_JUPITER_STM_V0/WATER5_V_FLUO_STM_V0/WATER5_V_FLUO_FREESCALE_V0/WATER5_V_FLUO_A_V0/WATER5_V_FLUO_S_V0/WATER5_V_GAS_V0/WATER5_V_JUPITER_LORA_V0/WATER5_V_FLUO_LORA_V0)

delete protocol api

method: DELETE
route: '/protocols/<protocol_id>'
request:

    "protocol_id": UUID

response: 200

base station task api

get base station task api list

method: GET
route: '/bs-tasks'
request:

    "limit": int
    "offset": int

response:

[
  "id": UUID
  "effective_macs": List[int],
  "effective_datetime_from": datetime
  "effective_datetime_to": datetime
  "effective_count": int
  "reglament_type": str (schedule,on_capture,immediate)
  "every_s": int
  "reglament_exclusion_time_section": json
  "priority": int
  "regulation": str (immediate, lbt)
  "bs_id": UUID 
  "status": str (created, in_progress, delivered, succeed, failed)
  "task_type": str (time_sync)
  "utc_offeset_s": int
  "protocol":  str (6k7, unbp)
  "time": datetime
]

get base station task api list by base station id

method: GET
route: '/bs-tasks/<bs_id>'
request:

    "bs_id": UUID
    "limit": int
    "offset": int

response:

[
  "id": UUID
  "effective_macs": List[int],
  "effective_datetime_from": datetime
  "effective_datetime_to": datetime
  "effective_count": int
  "reglament_type": str (schedule,on_capture,immediate)
  "every_s": int
  "reglament_exclusion_time_section": json
  "priority": int
  "regulation": str (immediate, lbt)
  "bs_id": UUID 
  "status": str (created, in_progress, delivered, succeed, failed)
  "task_type": str (time_sync)
  "utc_offeset_s": int
  "protocol":  str (6k7, unbp)
  "time": datetime
]

get base station task api object

method: GET
route: '/bs-tasks/<bs_task_id>'
request:

    "bs_task_id": UUID

response:

  "id": UUID
  "effective_macs": List[int],
  "effective_datetime_from": datetime
  "effective_datetime_to": datetime
  "effective_count": int
  "reglament_type": str (schedule,on_capture,immediate)
  "every_s": int
  "reglament_exclusion_time_section": json
  "priority": int
  "regulation": str (immediate, lbt)
  "bs_id": UUID 
  "status": str (created, in_progress, delivered, succeed, failed)
  "task_type": str (time_sync)
  "utc_offeset_s": int
  "protocol":  str (6k7, unbp)
  "time": datetime

create base station task api object

method: POST
route: '/bs-tasks'
request:
body:

    "effective_macs": List[int],
    "effective_datetime_from": datetime
    "effective_datetime_to": datetime
    "effective_count": int
    "reglament_type": str (schedule,on_capture,immediate)
    "every_s": int
    "reglament_exclusion_time_section": json
    "priority": int
    "regulation": str (immediate, lbt)
    "bs_id": UUID 
    "status": str (created, in_progress, delivered, succeed, failed)
    "task_type": str (time_sync)
    "utc_offeset_s": int
    "protocol":  str (6k7, unbp)
    "time": datetime

response:

    "id": UUID
    "effective_macs": List[int],
    "effective_datetime_from": datetime
    "effective_datetime_to": datetime
    "effective_count": int
    "reglament_type": str (schedule,on_capture,immediate)
    "every_s": int
    "reglament_exclusion_time_section": json
    "priority": int
    "regulation": str (immediate, lbt)
    "bs_id": UUID 
    "status": str (created, in_progress, delivered, succeed, failed)
    "task_type": str (time_sync)
    "utc_offeset_s": int
    "protocol":  str (6k7, unbp)
    "time": datetime

delete base station task api object

method: DELETE
route: '/bs-tasks/<bs_task_id>'
request:

    "bs_task_id": UUID

response: 200

base station task log api

get base station task log api list

method: GET
route: '/bs-tasks'
request:

    "limit": int
    "offset": int

response:

[
    "id": uuid4, pk
    "task": {
        "id": UUID
        "effective_macs": List[int],
        "effective_datetime_from": datetime
        "effective_datetime_to": datetime
        "effective_count": int
        "reglament_type": str (schedule,on_capture,immediate)
        "every_s": int
        "reglament_exclusion_time_section": json
        "priority": int
        "regulation": str (immediate, lbt)
        "bs_id": UUID 
        "status": str (created, in_progress, delivered, succeed, failed)
        "task_type": str (time_sync)
        "utc_offeset_s": int
        "protocol":  str (6k7, unbp)
        "time": datetime
    }
    "status": enum(created, in_progress, delivered, succeed, failed)
]

get base station task log api object

method: GET
route: '/bs-task-logs/<bs_taks_log_id>'
request:

    "bs_taks_log_id": UUID

response:

    "id": uuid4, pk
    "task": {
        "id": UUID
        "effective_macs": List[int],
        "effective_datetime_from": datetime
        "effective_datetime_to": datetime
        "effective_count": int
        "reglament_type": str (schedule,on_capture,immediate)
        "every_s": int
        "reglament_exclusion_time_section": json
        "priority": int
        "regulation": str (immediate, lbt)
        "bs_id": UUID 
        "status": str (created, in_progress, delivered, succeed, failed)
        "task_type": str (time_sync)
        "utc_offeset_s": int
        "protocol":  str (6k7, unbp)
        "time": datetime
    }
    "status": enum(created, in_progress, delivered, succeed, failed)

base station command api

get base station command api list

method: GET
route: '/bs-commands'
request:

    "limit": int
    "offset": int

response:

[
    "id": UUID
    "status": str (created, in_progress, delivered, succeed, failed)
    "bs_id": UUID
    "command_type": str (delete_downlink_tasks, get_active_downlink_task_ids)
    "task_ids": List[int]
]

get base station command api object

method: GET
route: '/bs-commands/<bs_command_id>'
request:

    "bs_command_id": UUID

response:

    "id": UUID
    "status": str (created, in_progress, delivered, succeed, failed)
    "bs_id": UUID
    "command_type": str (delete_downlink_tasks, get_active_downlink_task_ids)
    "task_ids": List[int]

create base station command api

method: POST
route: '/bs-commands'
request:
body:

    "status": str (created, in_progress, delivered, succeed, failed)
    "bs_id": UUID
    "command_type": str (delete_downlink_tasks, get_active_downlink_task_ids)
    "task_ids": List[int]

response:

    "id": UUID
    "status": str (created, in_progress, delivered, succeed, failed)
    "bs_id": UUID
    "command_type": str (delete_downlink_tasks, get_active_downlink_task_ids)
    "task_ids": List[int]

delete base station command api

method: DELETE
route: '/bs-commands/<bs_command_id>'
request:

    "bs_command_id": UUID

response: 200

base station command log api

get base station command log api list

method: GET
route: '/bs-commands'
request:

    "limit": int
    "offset": int

response:

[
    "id": uuid4, pk
    "bs_command": {
        "id": UUID
        "status": str (created, in_progress, delivered, succeed, failed)
        "bs_id": UUID
        "command_type": str (delete_downlink_tasks, get_active_downlink_task_ids)
        "task_ids": List[int]
    }
    "status": enum(created, in_progress, delivered, succeed, failed)
]

get base station command log api object

method: GET
route: '/bs-command-logs/<bs_command_log_id>'
request:

    "bs_command_log_id": UUID

response:

    "id": uuid4, pk
    "bs_command": {
        "id": UUID
        "status": str (created, in_progress, delivered, succeed, failed)
        "bs_id": UUID
        "command_type": str (delete_downlink_tasks, get_active_downlink_task_ids)
        "task_ids": List[int]
    }
    "status": enum(created, in_progress, delivered, succeed, failed)