1import * as sns from "@distilled.cloud/aws/sns";
2import * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { PlatformApplication } from "./PlatformApplication.ts";
5
6export interface GetEndpointAttributesRequest
7 extends sns.GetEndpointAttributesInput {}
8
9/**
10 * Runtime binding for `sns:GetEndpointAttributes`.
11 *
12 * Bind this operation to a {@link PlatformApplication} to read the
13 * attributes (`Token`, `Enabled`, `CustomUserData`) of one of its device
14 * endpoints.
15 * Provide the `GetEndpointAttributesHttp` layer on the Function to implement the binding.
16 * ### Mobile Push
17 * **Example:** Read Endpoint Attributes
18 * ```typescript
19 * const getEndpointAttributes = yield* SNS.GetEndpointAttributes(app);
20 * const { Attributes } = yield* getEndpointAttributes({
21 * EndpointArn: endpointArn,
22 * });
23 * ```
24 *
25 * @binding
26 */
27export interface GetEndpointAttributes extends Binding.Service<
28 GetEndpointAttributes,
29 "AWS.SNS.GetEndpointAttributes",
30 (
31 application: PlatformApplication,
32 ) => Effect.Effect<
33 (
34 request: GetEndpointAttributesRequest,
35 ) => Effect.Effect<
36 sns.GetEndpointAttributesResponse,
37 sns.GetEndpointAttributesError
38 >
39 >
40> {}
41
42export const GetEndpointAttributes = Binding.Service<GetEndpointAttributes>(
43 "AWS.SNS.GetEndpointAttributes",
44);