1import type * as datazone from "@distilled.cloud/aws/datazone";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Domain } from "./Domain.ts";
5
6/**
7 * Runtime binding for `datazone:GetIamPortalLoginUrl`.
8 *
9 * Mints a single-use data portal sign-in URL for the bound domain, e.g. to embed in a notification. The domain id is injected from the binding.
10 * Provide the implementation with
11 * `Effect.provide(AWS.DataZone.GetIamPortalLoginUrlHttp)`.
12 * ### Portal, Profiles & Notifications
13 * **Example:** Mint a Portal URL
14 * ```typescript
15 * // init — bind the operation to the domain
16 * const getIamPortalLoginUrl = yield* AWS.DataZone.GetIamPortalLoginUrl(domain);
17 *
18 * // runtime
19 * const { authCodeUrl } = yield* getIamPortalLoginUrl();
20 * ```
21 *
22 * @binding
23 */
24export interface GetIamPortalLoginUrl extends Binding.Service<
25 GetIamPortalLoginUrl,
26 "AWS.DataZone.GetIamPortalLoginUrl",
27 (
28 domain: Domain,
29 ) => Effect.Effect<
30 () => Effect.Effect<
31 datazone.GetIamPortalLoginUrlOutput,
32 datazone.GetIamPortalLoginUrlError
33 >
34 >
35> {}
36export const GetIamPortalLoginUrl = Binding.Service<GetIamPortalLoginUrl>(
37 "AWS.DataZone.GetIamPortalLoginUrl",
38);