1import type * as backup from "@distilled.cloud/aws/backup";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for the `DescribeProtectedResource` operation (IAM action
7 * `backup:DescribeProtectedResource`).
8 *
9 * Returns backup metadata for a protected resource by its ARN — last backup
10 * time, resource type, and latest recovery point. Provide the implementation
11 * with `Effect.provide(AWS.Backup.DescribeProtectedResourceHttp)`.
12 * ### Protected Resources
13 * **Example:** Look Up A Resource's Backup Status
14 * ```typescript
15 * const describeProtectedResource =
16 * yield* AWS.Backup.DescribeProtectedResource();
17 *
18 * const info = yield* describeProtectedResource({
19 * ResourceArn: tableArn,
20 * });
21 * yield* Effect.log(`last backup: ${info.LastBackupTime}`);
22 * ```
23 *
24 * @binding
25 */
26export interface DescribeProtectedResource extends Binding.Service<
27 DescribeProtectedResource,
28 "AWS.Backup.DescribeProtectedResource",
29 () => Effect.Effect<
30 (
31 request: backup.DescribeProtectedResourceInput,
32 ) => Effect.Effect<
33 backup.DescribeProtectedResourceOutput,
34 backup.DescribeProtectedResourceError
35 >
36 >
37> {}
38export const DescribeProtectedResource =
39 Binding.Service<DescribeProtectedResource>(
40 "AWS.Backup.DescribeProtectedResource",
41 );