import type * as qbusiness from "@distilled.cloud/aws/qbusiness"; import type * as Effect from "effect/Effect"; import * as Binding from "../../Binding.ts"; import type { Application } from "./Application.ts"; /** * `AssociatePermission` request with `applicationId` injected from the bound application. */ export interface AssociatePermissionRequest extends Omit { } /** * Runtime binding for the `AssociatePermission` operation (IAM action * `qbusiness:AssociatePermission`), scoped to one {@link Application}. * * Adds a statement to the application's permission policy, granting * a principal (e.g. an ISV data accessor) cross-account access to Q * Business actions. * Provide the implementation with * `Effect.provide(AWS.QBusiness.AssociatePermissionHttp)`. * * ### Cross-Account Permissions * **Example:** Grant an ISV SearchRelevantContent * ```typescript * const associate = yield* AWS.QBusiness.AssociatePermission(app); * * yield* associate({ * statementId: "isv-search", * actions: ["qbusiness:SearchRelevantContent"], * principal: "arn:aws:iam::123456789012:role/IsvRole", * }); * ``` * * @binding */ export interface AssociatePermission extends Binding.Service Effect.Effect<(request: AssociatePermissionRequest) => Effect.Effect>> { } export declare const AssociatePermission: AssociatePermission; //# sourceMappingURL=AssociatePermission.d.ts.map