1import type * as glacier from "@distilled.cloud/aws/glacier";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Vault } from "./Vault.ts";
5
6/**
7 * Runtime binding for the `DescribeVault` operation (IAM action
8 * `glacier:DescribeVault` on the vault ARN).
9 *
10 * Reads the bound {@link Vault}'s description — archive count, total size
11 * in bytes, and last inventory date (both as of the last nightly
12 * inventory).
13 * Provide the implementation with
14 * `Effect.provide(AWS.Glacier.DescribeVaultHttp)`.
15 * ### Inspecting Vaults
16 * **Example:** Read the vault's stats
17 * ```typescript
18 * const describeVault = yield* AWS.Glacier.DescribeVault(vault);
19 *
20 * const { NumberOfArchives, SizeInBytes } = yield* describeVault();
21 * ```
22 *
23 * @binding
24 */
25export interface DescribeVault extends Binding.Service<
26 DescribeVault,
27 "AWS.Glacier.DescribeVault",
28 (
29 vault: Vault,
30 ) => Effect.Effect<
31 () => Effect.Effect<glacier.DescribeVaultOutput, glacier.DescribeVaultError>
32 >
33> {}
34export const DescribeVault = Binding.Service<DescribeVault>(
35 "AWS.Glacier.DescribeVault",
36);