import * as Provider from "../../Provider.ts"; import { Resource } from "../../Resource.ts"; import type { Providers } from "../Providers.ts"; declare const AssociationNotVisible_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & { readonly _tag: "AssociationNotVisible"; } & Readonly; /** * Raised when a freshly created Chatbot association has not become visible * to `listAssociations` within the bounded eventual-consistency window. */ export declare class AssociationNotVisible extends AssociationNotVisible_base<{ readonly chatConfiguration: string; readonly resource: string; }> { } export interface AssociationProps { /** * ARN of the Slack or Microsoft Teams channel configuration to associate * the resource with (e.g. * `arn:aws:chatbot::123456789012:chat-configuration/slack-channel/alerts`). * * Changing the configuration replaces the association. */ chatConfiguration: string; /** * ARN of the resource to associate with the channel configuration — a * Chatbot custom action ARN (e.g. * `arn:aws:chatbot::123456789012:custom-action/describe-alarm`). * * Changing the resource replaces the association. */ resource: string; } export interface Association extends Resource<"AWS.Chatbot.Association", AssociationProps, { /** * ARN of the channel configuration the resource is associated with. */ chatConfigurationArn: string; /** * ARN of the associated resource (the custom action). */ resourceArn: string; }, never, Providers> { } /** * An AWS Chatbot (Amazon Q Developer in chat applications) association that * links a resource — a {@link CustomAction} — to a Slack or Microsoft Teams * channel configuration so the action is available in that channel. * * ### Associating Custom Actions * **Example:** Attach a custom action to a Slack channel configuration * ```typescript * import * as Chatbot from "alchemy/AWS/Chatbot"; * * const action = yield* Chatbot.CustomAction("DescribeAlarm", { * commandText: "aws cloudwatch describe-alarms --alarm-names $AlarmName", * }); * * const config = yield* Chatbot.SlackChannelConfiguration("Alerts", { * slackTeamId: "T012ABCDEFG", * slackChannelId: "C012AB3CD", * iamRoleArn: role.roleArn, * }); * * const association = yield* Chatbot.Association("AlarmAction", { * chatConfiguration: config.chatConfigurationArn, * resource: action.customActionArn, * }); * ``` * * @resource */ export declare const Association: import("../../Resource.ts").ResourceClass; export declare const AssociationProvider: () => import("effect/Layer").Layer, never, import("@distilled.cloud/aws/Credentials").Credentials | import("effect/unstable/http/HttpClient").HttpClient>; export {}; //# sourceMappingURL=Association.d.ts.map