import * as sns from "@distilled.cloud/aws/sns"; import * as Effect from "effect/Effect"; import * as Binding from "../../Binding.ts"; import type { Topic } from "./Topic.ts"; export interface AddPermissionRequest extends Omit { } /** * Runtime binding for `sns:AddPermission`. * * Bind this operation to a {@link Topic} inside a function runtime to grant * other AWS accounts access to topic actions by adding a labeled statement * to the topic's access policy. The binding grants the host function * `sns:AddPermission` on the topic. Provide the `AddPermissionHttp` layer on * the Function to implement the binding. * ### Managing Topic Permissions * **Example:** Allow Another Account to Publish * ```typescript * // init (provide SNS.AddPermissionHttp on the Function) * const addPermission = yield* SNS.AddPermission(topic); * * // runtime * yield* addPermission({ * Label: "PartnerPublish", * AWSAccountId: ["123456789012"], * ActionName: ["Publish"], * }); * ``` * * @binding */ export interface AddPermission extends Binding.Service Effect.Effect<(request: AddPermissionRequest) => Effect.Effect>> { } export declare const AddPermission: AddPermission; //# sourceMappingURL=AddPermission.d.ts.map