1import type * as Logs from "@distilled.cloud/aws/cloudwatch-logs";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { LogGroup } from "./LogGroup.ts";
5
6export interface DeleteLogStreamRequest extends Omit<
7 Logs.DeleteLogStreamRequest,
8 "logGroupName"
9> {}
10
11/**
12 * Runtime binding for `logs:DeleteLogStream`.
13 *
14 * Bind this operation to a `LogGroup` inside a function runtime to delete
15 * dynamically-created log streams (e.g. cleaning up per-tenant streams
16 * created with `CreateLogStream`), automatically injecting the log group
17 * name.
18 * ### Writing Logs
19 * **Example:** Delete a Per-Tenant Stream
20 * ```typescript
21 * const deleteLogStream = yield* AWS.Logs.DeleteLogStream(logGroup);
22 *
23 * yield* deleteLogStream({ logStreamName: `tenant-${tenantId}` }).pipe(
24 * Effect.catchTag("ResourceNotFoundException", () => Effect.void),
25 * );
26 * ```
27 *
28 * @binding
29 */
30export interface DeleteLogStream extends Binding.Service<
31 DeleteLogStream,
32 "AWS.Logs.DeleteLogStream",
33 <G extends LogGroup>(
34 logGroup: G,
35 ) => Effect.Effect<
36 (
37 request: DeleteLogStreamRequest,
38 ) => Effect.Effect<Logs.DeleteLogStreamResponse, Logs.DeleteLogStreamError>
39 >
40> {}
41export const DeleteLogStream = Binding.Service<DeleteLogStream>(
42 "AWS.Logs.DeleteLogStream",
43);