1import type * as elbv2 from "@distilled.cloud/aws/elastic-load-balancing-v2";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { TrustStore } from "./TrustStore.ts";
5
6/**
7 * Runtime binding for the `GetTrustStoreCaCertificatesBundle` operation (IAM
8 * action `elasticloadbalancing:GetTrustStoreCaCertificatesBundle` scoped to
9 * the trust-store ARN).
10 *
11 * Returns a pre-signed S3 URI (active for ten minutes) for the bound
12 * {@link TrustStore}'s CA certificate bundle — e.g. an ops endpoint that
13 * serves or audits the mTLS CA bundle currently in force. The trust-store
14 * ARN is injected from the binding. Provide the implementation with
15 * `Effect.provide(AWS.ELBv2.GetTrustStoreCaCertificatesBundleHttp)`.
16 * ### Trust Store Content
17 * **Example:** Fetch the presigned CA-bundle location
18 * ```typescript
19 * // init — bind the operation to the trust store
20 * const getCaBundle = yield* AWS.ELBv2.GetTrustStoreCaCertificatesBundle(trustStore);
21 *
22 * // runtime — Location is a presigned S3 URL valid for ten minutes
23 * const { Location } = yield* getCaBundle();
24 * ```
25 *
26 * @binding
27 */
28export interface GetTrustStoreCaCertificatesBundle extends Binding.Service<
29 GetTrustStoreCaCertificatesBundle,
30 "AWS.ELBv2.GetTrustStoreCaCertificatesBundle",
31 (
32 trustStore: TrustStore,
33 ) => Effect.Effect<
34 (
35 request?: Omit<
36 elbv2.GetTrustStoreCaCertificatesBundleInput,
37 "TrustStoreArn"
38 >,
39 ) => Effect.Effect<
40 elbv2.GetTrustStoreCaCertificatesBundleOutput,
41 elbv2.GetTrustStoreCaCertificatesBundleError
42 >
43 >
44> {}
45
46export const GetTrustStoreCaCertificatesBundle =
47 Binding.Service<GetTrustStoreCaCertificatesBundle>(
48 "AWS.ELBv2.GetTrustStoreCaCertificatesBundle",
49 );