-module(datadog_query@monitor). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/datadog_query/monitor.gleam"). -export([comparator_to_string/1, window_to_string/1, to_string/1]). -export_type([evaluation_window/0, comparator/0, monitor/0]). -type evaluation_window() :: last1m | last5m | last10m | last15m | last30m | last1h | last2h | last4h | last1d. -type comparator() :: gt | gte | lt | lte. -type monitor() :: {monitor, datadog_query@query:aggregator(), evaluation_window(), datadog_query@query:'query'(), comparator(), float()}. -file("src/datadog_query/monitor.gleam", 73). -spec format_threshold(float()) -> binary(). format_threshold(F) -> Truncated = erlang:trunc(F), case erlang:float(Truncated) =:= F of true -> erlang:integer_to_binary(Truncated); false -> gleam_stdlib:float_to_string(F) end. -file("src/datadog_query/monitor.gleam", 64). -spec comparator_to_string(comparator()) -> binary(). comparator_to_string(Comparator) -> case Comparator of gt -> <<">"/utf8>>; gte -> <<">="/utf8>>; lt -> <<"<"/utf8>>; lte -> <<"<="/utf8>> end. -file("src/datadog_query/monitor.gleam", 50). -spec window_to_string(evaluation_window()) -> binary(). window_to_string(Window) -> case Window of last1m -> <<"last_1m"/utf8>>; last5m -> <<"last_5m"/utf8>>; last10m -> <<"last_10m"/utf8>>; last15m -> <<"last_15m"/utf8>>; last30m -> <<"last_30m"/utf8>>; last1h -> <<"last_1h"/utf8>>; last2h -> <<"last_2h"/utf8>>; last4h -> <<"last_4h"/utf8>>; last1d -> <<"last_1d"/utf8>> end. -file("src/datadog_query/monitor.gleam", 38). -spec to_string(monitor()) -> binary(). to_string(Monitor) -> <<<<<<<<<<<<<<<<(datadog_query@query:aggregator_to_string( erlang:element(2, Monitor) ))/binary, "("/utf8>>/binary, (window_to_string(erlang:element(3, Monitor)))/binary>>/binary, "):"/utf8>>/binary, (datadog_query@query:to_string( erlang:element(4, Monitor) ))/binary>>/binary, " "/utf8>>/binary, (comparator_to_string(erlang:element(5, Monitor)))/binary>>/binary, " "/utf8>>/binary, (format_threshold(erlang:element(6, Monitor)))/binary>>.