1import type * as obs from "@distilled.cloud/aws/observabilityadmin";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `observabilityadmin:GetTelemetryEvaluationStatus` —
7 * reads the account's telemetry config onboarding status (`RUNNING`,
8 * `STOPPED`, `NOT_STARTED`, ...), e.g. for a compliance function that
9 * verifies telemetry auditing stays enabled.
10 *
11 * Provide `AWS.ObservabilityAdmin.GetTelemetryEvaluationStatusHttp` on the
12 * hosting Lambda Function to satisfy the requirement.
13 * ### Reading Onboarding Status
14 * **Example:** Verify telemetry auditing is enabled
15 * ```typescript
16 * // init — grants observabilityadmin:GetTelemetryEvaluationStatus
17 * const getEvaluationStatus = yield* AWS.ObservabilityAdmin.GetTelemetryEvaluationStatus();
18 *
19 * // runtime
20 * const { Status } = yield* getEvaluationStatus();
21 * if (Status !== "RUNNING") {
22 * yield* Effect.logWarning("telemetry auditing is off");
23 * }
24 * ```
25 *
26 * @binding
27 */
28export interface GetTelemetryEvaluationStatus extends Binding.Service<
29 GetTelemetryEvaluationStatus,
30 "AWS.ObservabilityAdmin.GetTelemetryEvaluationStatus",
31 () => Effect.Effect<
32 (
33 request?: obs.GetTelemetryEvaluationStatusRequest,
34 ) => Effect.Effect<
35 obs.GetTelemetryEvaluationStatusOutput,
36 obs.GetTelemetryEvaluationStatusError
37 >
38 >
39> {}
40
41export const GetTelemetryEvaluationStatus =
42 Binding.Service<GetTelemetryEvaluationStatus>(
43 "AWS.ObservabilityAdmin.GetTelemetryEvaluationStatus",
44 );