"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const events_1 = require("../types/events");
const slackAppDefinition = {
    name: 'slack-app',
    displayName: 'Slack App',
    description: 'The Unleash Slack App posts messages to the selected channels in your Slack workspace.',
    howTo: 'Below you can specify which Slack channels receive event notifications. The configuration settings allow you to choose the events and whether you want to filter them by projects and environments.\n\nYou can also select which channels to post to by configuring your feature toggles with “slack” tags. For example, if you’d like the bot to post messages to the #general channel, you can configure your feature toggle with the “slack:general” tag.\n\nThe Unleash Slack App bot has access to public channels by default. If you want the bot to post messages to private channels, you’ll need to invite it to those channels.',
    documentationUrl: 'https://docs.getunleash.io/docs/addons/slack-app',
    installation: {
        url: 'https://unleash-slack-app.vercel.app/install',
        title: 'Slack App installation',
        helpText: 'After installing the Unleash Slack app in your Slack workspace, paste the access token into the appropriate field below in order to configure this integration.',
    },
    parameters: [
        {
            name: 'accessToken',
            displayName: 'Access token',
            description: '(Required)',
            type: 'text',
            required: true,
            sensitive: true,
        },
        {
            name: 'defaultChannels',
            displayName: 'Channels',
            description: 'A comma-separated list of channels to post the configured events to. These channels are always notified, regardless of the event type or the presence of a slack tag.',
            type: 'text',
            required: false,
            sensitive: false,
        },
    ],
    events: [
        events_1.ADDON_CONFIG_CREATED,
        events_1.ADDON_CONFIG_DELETED,
        events_1.ADDON_CONFIG_UPDATED,
        events_1.API_TOKEN_CREATED,
        events_1.API_TOKEN_DELETED,
        events_1.CHANGE_ADDED,
        events_1.CHANGE_DISCARDED,
        events_1.CHANGE_EDITED,
        events_1.CHANGE_REQUEST_APPLIED,
        events_1.CHANGE_REQUEST_APPROVAL_ADDED,
        events_1.CHANGE_REQUEST_APPROVED,
        events_1.CHANGE_REQUEST_CANCELLED,
        events_1.CHANGE_REQUEST_CREATED,
        events_1.CHANGE_REQUEST_DISCARDED,
        events_1.CHANGE_REQUEST_REJECTED,
        events_1.CHANGE_REQUEST_SENT_TO_REVIEW,
        events_1.CHANGE_REQUEST_SCHEDULED,
        events_1.CHANGE_REQUEST_SCHEDULED_APPLICATION_SUCCESS,
        events_1.CHANGE_REQUEST_SCHEDULED_APPLICATION_FAILURE,
        events_1.CHANGE_REQUEST_SCHEDULE_SUSPENDED,
        events_1.CONTEXT_FIELD_CREATED,
        events_1.CONTEXT_FIELD_DELETED,
        events_1.CONTEXT_FIELD_UPDATED,
        events_1.FEATURE_ARCHIVED,
        events_1.FEATURE_CREATED,
        events_1.FEATURE_DELETED,
        events_1.FEATURE_ENVIRONMENT_DISABLED,
        events_1.FEATURE_ENVIRONMENT_ENABLED,
        events_1.FEATURE_ENVIRONMENT_VARIANTS_UPDATED,
        events_1.FEATURE_METADATA_UPDATED,
        events_1.FEATURE_POTENTIALLY_STALE_ON,
        events_1.FEATURE_PROJECT_CHANGE,
        events_1.FEATURE_REVIVED,
        events_1.FEATURE_STALE_OFF,
        events_1.FEATURE_STALE_ON,
        events_1.FEATURE_STRATEGY_ADD,
        events_1.FEATURE_STRATEGY_REMOVE,
        events_1.FEATURE_STRATEGY_UPDATE,
        events_1.FEATURE_TAGGED,
        events_1.FEATURE_UNTAGGED,
        events_1.GROUP_CREATED,
        events_1.GROUP_DELETED,
        events_1.GROUP_UPDATED,
        events_1.BANNER_CREATED,
        events_1.BANNER_UPDATED,
        events_1.BANNER_DELETED,
        events_1.PROJECT_CREATED,
        events_1.PROJECT_DELETED,
        events_1.SEGMENT_CREATED,
        events_1.SEGMENT_DELETED,
        events_1.SEGMENT_UPDATED,
        events_1.SERVICE_ACCOUNT_CREATED,
        events_1.SERVICE_ACCOUNT_DELETED,
        events_1.SERVICE_ACCOUNT_UPDATED,
        events_1.USER_CREATED,
        events_1.USER_DELETED,
        events_1.USER_UPDATED,
    ],
    tagTypes: [
        {
            name: 'slack',
            description: 'Slack tag used by the slack-addon to specify the slack channel.',
            icon: 'S',
        },
    ],
};
exports.default = slackAppDefinition;
//# sourceMappingURL=slack-app-definition.js.map