import type { IntegrationAccountRequirement, TriggerDefinition } from "../types" const ASANA_ACCOUNT = { connectionOptions: [{ requiredScopes: ["default"] }], serviceId: "asana", } as const satisfies IntegrationAccountRequirement export const asanaTriggerDefinitions = { asanaAttachmentDeleted: definition("asana.attachment.deleted"), asanaAttachmentRestored: definition("asana.attachment.restored"), asanaCommentAdded: definition("asana.comment.added"), asanaCommentDeleted: definition("asana.comment.deleted"), asanaCommentRestored: definition("asana.comment.restored"), asanaCommentUpdated: definition("asana.comment.updated"), asanaProjectAdded: definition("asana.project.added"), asanaProjectChanged: definition("asana.project.changed"), asanaProjectDeleted: definition("asana.project.deleted"), asanaProjectRemoved: definition("asana.project.removed"), asanaProjectRestored: definition("asana.project.restored"), asanaResourceEvent: definition("asana.resource.event"), asanaSectionAdded: definition("asana.section.added"), asanaSectionChanged: definition("asana.section.changed"), asanaSectionDeleted: definition("asana.section.deleted"), asanaSectionRestored: definition("asana.section.restored"), asanaTagAdded: definition("asana.tag.added"), asanaTagChanged: definition("asana.tag.changed"), asanaTagDeleted: definition("asana.tag.deleted"), asanaTagRestored: definition("asana.tag.restored"), asanaTaskAdded: definition("asana.task.added"), asanaTaskAssigned: definition("asana.task.assigned"), asanaTaskChanged: definition("asana.task.changed"), asanaTaskCompleted: definition("asana.task.completed"), asanaTaskDeleted: definition("asana.task.deleted"), asanaTaskDueDateChanged: definition("asana.task.due-date.changed"), asanaTaskFollowerAdded: definition("asana.task.follower.added"), asanaTaskFollowerRemoved: definition("asana.task.follower.removed"), asanaTaskIncomplete: definition("asana.task.incomplete"), asanaTaskProjectAdded: definition("asana.task.project.added"), asanaTaskProjectRemoved: definition("asana.task.project.removed"), asanaTaskRemoved: definition("asana.task.removed"), asanaTaskRestored: definition("asana.task.restored"), asanaTaskTagAdded: definition("asana.task.tag.added"), asanaTaskTagRemoved: definition("asana.task.tag.removed"), asanaTaskUnassigned: definition("asana.task.unassigned"), } as const satisfies Record /** * Builds one full-permission Asana trigger definition. * * @param type - Internal event type. */ function definition(type: TType) { return { account: ASANA_ACCOUNT, type } as const }