1import type * as appsignals from "@distilled.cloud/aws/application-signals";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `application-signals:ListServiceDependents`.
7 *
8 * Lists the dependents (other services, Synthetics canaries, RUM app
9 * monitors) that invoked a discovered service during a time range. Provide
10 * the implementation with
11 * `Effect.provide(AWS.ApplicationSignals.ListServiceDependentsHttp)`.
12 * ### Exploring the Service Topology
13 * **Example:** List a Service's Dependents
14 * ```typescript
15 * // init — account-level, no resource argument
16 * const listServiceDependents =
17 * yield* AWS.ApplicationSignals.ListServiceDependents();
18 *
19 * // runtime
20 * const page = yield* listServiceDependents({
21 * StartTime: new Date(Date.now() - 3600_000),
22 * EndTime: new Date(),
23 * KeyAttributes: {
24 * Type: "Service",
25 * Name: "checkout-service",
26 * Environment: "eks:prod",
27 * },
28 * });
29 * ```
30 *
31 * @binding
32 */
33export interface ListServiceDependents extends Binding.Service<
34 ListServiceDependents,
35 "AWS.ApplicationSignals.ListServiceDependents",
36 () => Effect.Effect<
37 (
38 request: appsignals.ListServiceDependentsInput,
39 ) => Effect.Effect<
40 appsignals.ListServiceDependentsOutput,
41 appsignals.ListServiceDependentsError
42 >
43 >
44> {}
45
46export const ListServiceDependents = Binding.Service<ListServiceDependents>(
47 "AWS.ApplicationSignals.ListServiceDependents",
48);