-module(lightspeed@integration@ops). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/lightspeed/integration/ops.gleam"). -export([production_pattern/0, mixed_runtime_pattern/0, local_dev_pattern/0, valid/1, backend_label/1, signature/1, backend/1, name/1]). -export_type([backend/0, pattern/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. ?MODULEDOC(" Operator tooling integration patterns for ecosystem compatibility (M26).\n"). -type backend() :: beam_observer | {telemetry_bridge, binary()} | {mixed_telemetry, binary(), binary()}. -type pattern() :: {pattern, binary(), backend(), boolean(), boolean(), boolean(), boolean(), boolean()}. -file("src/lightspeed/integration/ops.gleam", 24). ?DOC(" Production operator pattern.\n"). -spec production_pattern() -> pattern(). production_pattern() -> {pattern, <<"production_ops"/utf8>>, {mixed_telemetry, <<"MyApp.TelemetryMetrics"/utf8>>, <<"MyApp.TelemetryTraces"/utf8>>}, true, true, true, true, true}. -file("src/lightspeed/integration/ops.gleam", 40). ?DOC(" Mixed-runtime operator pattern.\n"). -spec mixed_runtime_pattern() -> pattern(). mixed_runtime_pattern() -> {pattern, <<"mixed_runtime_ops"/utf8>>, {telemetry_bridge, <<"MyApp.TelemetryBridge"/utf8>>}, true, true, true, true, true}. -file("src/lightspeed/integration/ops.gleam", 53). ?DOC(" Local development operator pattern.\n"). -spec local_dev_pattern() -> pattern(). local_dev_pattern() -> {pattern, <<"local_dev_ops"/utf8>>, beam_observer, true, true, true, true, true}. -file("src/lightspeed/integration/ops.gleam", 113). -spec backend_valid(backend()) -> boolean(). backend_valid(Backend) -> case Backend of beam_observer -> true; {telemetry_bridge, Module} -> Module /= <<""/utf8>>; {mixed_telemetry, Metrics_module, Traces_module} -> (Metrics_module /= <<""/utf8>>) andalso (Traces_module /= <<""/utf8>>) end. -file("src/lightspeed/integration/ops.gleam", 66). ?DOC(" Validate operator integration constraints.\n"). -spec valid(pattern()) -> boolean(). valid(Pattern) -> ((((backend_valid(erlang:element(3, Pattern)) andalso erlang:element( 4, Pattern )) andalso erlang:element(5, Pattern)) andalso erlang:element(6, Pattern)) andalso erlang:element(7, Pattern)) andalso erlang:element(8, Pattern). -file("src/lightspeed/integration/ops.gleam", 76). ?DOC(" Stable backend label.\n"). -spec backend_label(backend()) -> binary(). backend_label(Backend) -> case Backend of beam_observer -> <<"beam_observer"/utf8>>; {telemetry_bridge, Module} -> <<"telemetry_bridge:"/utf8, Module/binary>>; {mixed_telemetry, Metrics_module, Traces_module} -> <<<<<<"mixed_telemetry:"/utf8, Metrics_module/binary>>/binary, ":"/utf8>>/binary, Traces_module/binary>> end. -file("src/lightspeed/integration/ops.gleam", 122). -spec bool_label(boolean()) -> binary(). bool_label(Value) -> case Value of true -> <<"true"/utf8>>; false -> <<"false"/utf8>> end. -file("src/lightspeed/integration/ops.gleam", 86). ?DOC(" Stable pattern signature.\n"). -spec signature(pattern()) -> binary(). signature(Pattern) -> <<<<<<<<<<<<<<<<<<<<<<<<<<"ops:"/utf8, (erlang:element(2, Pattern))/binary>>/binary, "|backend="/utf8>>/binary, (backend_label( erlang:element(3, Pattern) ))/binary>>/binary, "|runbook_ready="/utf8>>/binary, (bool_label(erlang:element(4, Pattern)))/binary>>/binary, "|monitor_ready="/utf8>>/binary, (bool_label(erlang:element(5, Pattern)))/binary>>/binary, "|rollback_ready="/utf8>>/binary, (bool_label(erlang:element(6, Pattern)))/binary>>/binary, "|incident_ready="/utf8>>/binary, (bool_label(erlang:element(7, Pattern)))/binary>>/binary, "|slo_burn_rate_ready="/utf8>>/binary, (bool_label(erlang:element(8, Pattern)))/binary>>. -file("src/lightspeed/integration/ops.gleam", 104). ?DOC(" Pattern backend.\n"). -spec backend(pattern()) -> backend(). backend(Pattern) -> erlang:element(3, Pattern). -file("src/lightspeed/integration/ops.gleam", 109). ?DOC(" Pattern name.\n"). -spec name(pattern()) -> binary(). name(Pattern) -> erlang:element(2, Pattern).