Current section

Files

Jump to
caffeine_lang src caffeine_lang@standard_library@artifacts.erl
Raw

src/caffeine_lang@standard_library@artifacts.erl

-module(caffeine_lang@standard_library@artifacts).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/caffeine_lang/standard_library/artifacts.gleam").
-export([standard_library/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-file("src/caffeine_lang/standard_library/artifacts.gleam", 23).
-spec slo_artifact() -> caffeine_lang@linker@artifacts:artifact().
slo_artifact() ->
{artifact,
s_l_o,
<<"A Service Level Objective that monitors a metric query against a threshold over a rolling window."/utf8>>,
maps:from_list(
[{<<"threshold"/utf8>>,
{param_info,
{refinement_type,
{inclusive_range,
{primitive_type, {numeric_type, float}},
<<"0.0"/utf8>>,
<<"100.0"/utf8>>}},
<<"Target percentage (e.g., 99.9)"/utf8>>}},
{<<"window_in_days"/utf8>>,
{param_info,
{modifier_type,
{defaulted,
{refinement_type,
{inclusive_range,
{primitive_type,
{numeric_type, integer}},
<<"1"/utf8>>,
<<"90"/utf8>>}},
<<"30"/utf8>>}},
<<"Rolling window for measurement (1-90 days)"/utf8>>}},
{<<"indicators"/utf8>>,
{param_info,
{collection_type,
{dict,
{primitive_type, string},
{primitive_type, string}}},
<<"Named SLI measurement expressions"/utf8>>}},
{<<"evaluation"/utf8>>,
{param_info,
{primitive_type, string},
<<"How to evaluate indicators as an SLI"/utf8>>}},
{<<"vendor"/utf8>>,
{param_info,
{refinement_type,
{one_of,
{primitive_type, string},
gleam@set:from_list(
[<<"datadog"/utf8>>,
<<"honeycomb"/utf8>>,
<<"dynatrace"/utf8>>,
<<"newrelic"/utf8>>]
)}},
<<"Observability platform"/utf8>>}},
{<<"tags"/utf8>>,
{param_info,
{modifier_type,
{optional,
{collection_type,
{dict,
{primitive_type, string},
{primitive_type, string}}}}},
<<"An optional set of tags to append to the SLO artifact"/utf8>>}},
{<<"runbook"/utf8>>,
{param_info,
{modifier_type,
{optional, {primitive_type, {semantic_type, u_r_l}}}},
<<"An optional runbook URL surfaced via the SLO description"/utf8>>}}]
)}.
-file("src/caffeine_lang/standard_library/artifacts.gleam", 110).
-spec dependency_relations_artifact() -> caffeine_lang@linker@artifacts:artifact().
dependency_relations_artifact() ->
{artifact,
dependency_relations,
<<"Declares soft and hard dependencies between services for dependency mapping."/utf8>>,
maps:from_list(
[{<<"relations"/utf8>>,
{param_info,
{record_type,
maps:from_list(
[{<<"hard"/utf8>>,
{collection_type,
{list, {primitive_type, string}}}},
{<<"soft"/utf8>>,
{collection_type,
{list, {primitive_type, string}}}}]
)},
<<"Map of dependency type to list of service names"/utf8>>}}]
)}.
-file("src/caffeine_lang/standard_library/artifacts.gleam", 19).
?DOC(" Returns the hardcoded standard library artifacts.\n").
-spec standard_library() -> list(caffeine_lang@linker@artifacts:artifact()).
standard_library() ->
[slo_artifact(), dependency_relations_artifact()].