local v1 = ReqBody.value1
local v2 = ReqBody.value2
local v3 = ReqBody.value3
local min_power_idx = 1
local max_power_idx = #ProcessingFlow[2].Destination.OnePowerList
local deep_sleep_supported = ProcessingFlow[1].Destination.DeepSleepSupported
if type(v1) ~= 'string' then
return false
end
if type(v2) ~= 'string' then
if v1 ~= '0' then
return false
end
elseif type(v2) == 'string' and type(v3) ~= 'string' then
if v1 == '1' then
local v2_to_int = tonumber(v2)
if math.type(v2_to_int) ~= 'integer' then
return false
end
if v2_to_int < min_power_idx or v2_to_int > max_power_idx then
return false
end
elseif v1 == '2' and deep_sleep_supported == true then
if v2 ~= 'enabled' and v2 ~= 'disabled' then
return false
end
else
return false
end
else
if v1 ~= '1' then
return false
end
local v2_to_int = tonumber(v2)
local v3_to_int = tonumber(v3)
if math.type(v2_to_int) ~= 'integer' or math.type(v3_to_int) ~= 'integer' then
return false
end
if v2_to_int < min_power_idx or v2_to_int > max_power_idx then
return false
end
if v3_to_int < min_power_idx or v3_to_int > max_power_idx then
return false
end
end
return true