import * as Effect from "effect/Effect"; import type { Connection } from "./Connection.ts"; import type { RepositoryLink } from "./RepositoryLink.ts"; import type { SyncConfiguration } from "./SyncConfiguration.ts"; /** * Shared HTTP scaffolding for the CodeConnections runtime bindings. * * Every capability follows the same shape — resolve the distilled * operation, register an IAM policy statement on the binding host, and * return a runtime callable. The only variation is the operation, the IAM * action(s), and the identifier(s) injected from the bound resource: * a {@link Connection}'s ARN, a {@link RepositoryLink}'s ID, or a * {@link SyncConfiguration}'s (resource name, sync type) identity. * * NOT exported from `index.ts`. */ /** * Build the impl Effect for a connection-scoped operation: the runtime * callable injects the bound {@link Connection}'s ARN as `ConnectionArn` * and the deploy-time half grants `actions` on the connection ARN. */ export declare const makeConnectionScopedHttpBinding: (options: { /** Fully-qualified binding tag, e.g. `AWS.CodeConnections.GetConnection`. */ tag: string; /** The distilled operation; `ConnectionArn` is injected from the resource. */ operation: Effect.Effect<(input: I) => Effect.Effect, never, R>; /** IAM actions granted on the connection ARN. */ actions: readonly string[]; }) => Effect.Effect<(connection: Connection) => Effect.Effect<(request?: Omit | undefined) => Effect.Effect, never, never>, never, R>; /** * Build the impl Effect for a repository-link-scoped operation: the runtime * callable injects the bound {@link RepositoryLink}'s ID as * `RepositoryLinkId` and the deploy-time half grants `actions` on the * repository link ARN. */ export declare const makeRepositoryLinkScopedHttpBinding: (options: { /** Fully-qualified binding tag. */ tag: string; /** The distilled operation; `RepositoryLinkId` is injected from the resource. */ operation: Effect.Effect<(input: I) => Effect.Effect, never, R>; /** IAM actions granted on the repository link ARN. */ actions: readonly string[]; }) => Effect.Effect<(repositoryLink: RepositoryLink) => Effect.Effect<(request: Omit) => Effect.Effect, never, never>, never, R>; /** * Build the impl Effect for a sync-configuration-scoped operation: the * runtime callable injects the bound {@link SyncConfiguration}'s * `ResourceName` + `SyncType` identity. Sync operations are not * resource-scoped in IAM (sync configurations have no ARN), so the * deploy-time half grants `actions` on `*`. */ export declare const makeSyncConfigurationScopedHttpBinding: (options: { /** Fully-qualified binding tag. */ tag: string; /** The distilled operation; `ResourceName` + `SyncType` are injected. */ operation: Effect.Effect<(input: I) => Effect.Effect, never, R>; /** IAM actions granted on `*`. */ actions: readonly string[]; }) => Effect.Effect<(syncConfiguration: SyncConfiguration) => Effect.Effect<(request?: Omit | undefined) => Effect.Effect, never, never>, never, R>; /** * Build the impl Effect for an account-level operation (no target * resource). The deploy-time half grants `actions` on `*`. */ export declare const makeCodeConnectionsAccountHttpBinding: (options: { /** Fully-qualified binding tag, e.g. `AWS.CodeConnections.ListConnections`. */ tag: string; /** The distilled operation, invoked with the caller's request as-is. */ operation: Effect.Effect<(input: I) => Effect.Effect, never, R>; /** IAM actions granted on `*`. */ actions: readonly string[]; }) => Effect.Effect<() => Effect.Effect<(request?: I | undefined) => Effect.Effect, never, never>, never, R>; //# sourceMappingURL=BindingHttp.d.ts.map