diff --git a/x-pack/plugins/actions/server/builtin_action_types/email.ts b/x-pack/plugins/actions/server/builtin_action_types/email.ts index cf4ace99ed5dc..4afbbb3a33615 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/email.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/email.ts @@ -139,10 +139,11 @@ interface GetActionTypeParams { } // action type definition +export const ActionTypeId = '.email'; export function getActionType(params: GetActionTypeParams): EmailActionType { const { logger, publicBaseUrl, configurationUtilities } = params; return { - id: '.email', + id: ActionTypeId, minimumLicenseRequired: 'gold', name: i18n.translate('xpack.actions.builtin.emailTitle', { defaultMessage: 'Email', diff --git a/x-pack/plugins/actions/server/builtin_action_types/es_index.ts b/x-pack/plugins/actions/server/builtin_action_types/es_index.ts index a35c55205e2b5..3edc2bcd162ea 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/es_index.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/es_index.ts @@ -39,11 +39,11 @@ const ParamsSchema = schema.object({ documents: schema.arrayOf(schema.recordOf(schema.string(), schema.any())), }); -export const ES_INDEX_ACTION_TYPE_ID = '.index'; +export const ActionTypeId = '.index'; // action type definition export function getActionType({ logger }: { logger: Logger }): ESIndexActionType { return { - id: ES_INDEX_ACTION_TYPE_ID, + id: ActionTypeId, minimumLicenseRequired: 'basic', name: i18n.translate('xpack.actions.builtin.esIndexTitle', { defaultMessage: 'Index', diff --git a/x-pack/plugins/actions/server/builtin_action_types/index.ts b/x-pack/plugins/actions/server/builtin_action_types/index.ts index c2058d63683bf..3a01b875ec4a0 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/index.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/index.ts @@ -18,6 +18,34 @@ import { getActionType as getServiceNowActionType } from './servicenow'; import { getActionType as getJiraActionType } from './jira'; import { getActionType as getResilientActionType } from './resilient'; import { getActionType as getTeamsActionType } from './teams'; +export { ActionParamsType as EmailActionParams, ActionTypeId as EmailActionTypeId } from './email'; +export { + ActionParamsType as IndexActionParams, + ActionTypeId as IndexActionTypeId, +} from './es_index'; +export { + ActionParamsType as PagerDutyActionParams, + ActionTypeId as PagerDutyActionTypeId, +} from './pagerduty'; +export { + ActionParamsType as ServerLogActionParams, + ActionTypeId as ServerLogActionTypeId, +} from './server_log'; +export { ActionParamsType as SlackActionParams, ActionTypeId as SlackActionTypeId } from './slack'; +export { + ActionParamsType as WebhookActionParams, + ActionTypeId as WebhookActionTypeId, +} from './webhook'; +export { + ActionParamsType as ServiceNowActionParams, + ActionTypeId as ServiceNowActionTypeId, +} from './servicenow'; +export { ActionParamsType as JiraActionParams, ActionTypeId as JiraActionTypeId } from './jira'; +export { + ActionParamsType as ResilientActionParams, + ActionTypeId as ResilientActionTypeId, +} from './resilient'; +export { ActionParamsType as TeamsActionParams, ActionTypeId as TeamsActionTypeId } from './teams'; export function registerBuiltInActionTypes({ actionsConfigUtils: configurationUtilities, diff --git a/x-pack/plugins/actions/server/builtin_action_types/jira/index.ts b/x-pack/plugins/actions/server/builtin_action_types/jira/index.ts index 4518fa0f119d5..d701fad0e0c2f 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/jira/index.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/jira/index.ts @@ -5,7 +5,7 @@ */ import { curry } from 'lodash'; -import { schema } from '@kbn/config-schema'; +import { schema, TypeOf } from '@kbn/config-schema'; import { validate } from './validators'; import { @@ -32,6 +32,7 @@ import { import * as i18n from './translations'; import { Logger } from '../../../../../../src/core/server'; +export type ActionParamsType = TypeOf<typeof ExecutorParamsSchema>; interface GetActionTypeParams { logger: Logger; configurationUtilities: ActionsConfigurationUtilities; @@ -47,6 +48,7 @@ const supportedSubActions: string[] = [ 'issue', ]; +export const ActionTypeId = '.jira'; // action type definition export function getActionType( params: GetActionTypeParams @@ -58,7 +60,7 @@ export function getActionType( > { const { logger, configurationUtilities } = params; return { - id: '.jira', + id: ActionTypeId, minimumLicenseRequired: 'gold', name: i18n.NAME, validate: { diff --git a/x-pack/plugins/actions/server/builtin_action_types/pagerduty.ts b/x-pack/plugins/actions/server/builtin_action_types/pagerduty.ts index 4574b748e6014..ccd25da2397bb 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/pagerduty.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/pagerduty.ts @@ -117,6 +117,7 @@ function validateParams(paramsObject: unknown): string | void { } } +export const ActionTypeId = '.pagerduty'; // action type definition export function getActionType({ logger, @@ -126,7 +127,7 @@ export function getActionType({ configurationUtilities: ActionsConfigurationUtilities; }): PagerDutyActionType { return { - id: '.pagerduty', + id: ActionTypeId, minimumLicenseRequired: 'gold', name: i18n.translate('xpack.actions.builtin.pagerdutyTitle', { defaultMessage: 'PagerDuty', diff --git a/x-pack/plugins/actions/server/builtin_action_types/resilient/index.ts b/x-pack/plugins/actions/server/builtin_action_types/resilient/index.ts index 7ce9369289554..fca99f81d62bd 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/resilient/index.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/resilient/index.ts @@ -5,7 +5,7 @@ */ import { curry } from 'lodash'; -import { schema } from '@kbn/config-schema'; +import { schema, TypeOf } from '@kbn/config-schema'; import { validate } from './validators'; import { @@ -30,6 +30,8 @@ import { import * as i18n from './translations'; import { Logger } from '../../../../../../src/core/server'; +export type ActionParamsType = TypeOf<typeof ExecutorParamsSchema>; + interface GetActionTypeParams { logger: Logger; configurationUtilities: ActionsConfigurationUtilities; @@ -37,6 +39,7 @@ interface GetActionTypeParams { const supportedSubActions: string[] = ['getFields', 'pushToService', 'incidentTypes', 'severity']; +export const ActionTypeId = '.resilient'; // action type definition export function getActionType( params: GetActionTypeParams @@ -48,7 +51,7 @@ export function getActionType( > { const { logger, configurationUtilities } = params; return { - id: '.resilient', + id: ActionTypeId, minimumLicenseRequired: 'platinum', name: i18n.NAME, validate: { diff --git a/x-pack/plugins/actions/server/builtin_action_types/server_log.ts b/x-pack/plugins/actions/server/builtin_action_types/server_log.ts index c485de8628f14..4cfea6aa9d889 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/server_log.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/server_log.ts @@ -38,11 +38,11 @@ const ParamsSchema = schema.object({ ), }); -export const SERVER_LOG_ACTION_TYPE_ID = '.server-log'; +export const ActionTypeId = '.server-log'; // action type definition export function getActionType({ logger }: { logger: Logger }): ServerLogActionType { return { - id: SERVER_LOG_ACTION_TYPE_ID, + id: ActionTypeId, minimumLicenseRequired: 'basic', name: i18n.translate('xpack.actions.builtin.serverLogTitle', { defaultMessage: 'Server log', diff --git a/x-pack/plugins/actions/server/builtin_action_types/servicenow/index.ts b/x-pack/plugins/actions/server/builtin_action_types/servicenow/index.ts index 3fa8b25b86e8b..1f75d439200e3 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/servicenow/index.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/servicenow/index.ts @@ -5,7 +5,7 @@ */ import { curry } from 'lodash'; -import { schema } from '@kbn/config-schema'; +import { schema, TypeOf } from '@kbn/config-schema'; import { validate } from './validators'; import { @@ -29,11 +29,14 @@ import { ServiceNowExecutorResultData, } from './types'; +export type ActionParamsType = TypeOf<typeof ExecutorParamsSchema>; + interface GetActionTypeParams { logger: Logger; configurationUtilities: ActionsConfigurationUtilities; } +export const ActionTypeId = '.servicenow'; // action type definition export function getActionType( params: GetActionTypeParams @@ -45,7 +48,7 @@ export function getActionType( > { const { logger, configurationUtilities } = params; return { - id: '.servicenow', + id: ActionTypeId, minimumLicenseRequired: 'platinum', name: i18n.NAME, validate: { diff --git a/x-pack/plugins/actions/server/builtin_action_types/slack.ts b/x-pack/plugins/actions/server/builtin_action_types/slack.ts index a9155c329c175..c9a3c39afd049 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/slack.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/slack.ts @@ -52,6 +52,7 @@ const ParamsSchema = schema.object({ // action type definition +export const ActionTypeId = '.slack'; // customizing executor is only used for tests export function getActionType({ logger, @@ -63,7 +64,7 @@ export function getActionType({ executor?: ExecutorType<{}, ActionTypeSecretsType, ActionParamsType, unknown>; }): SlackActionType { return { - id: '.slack', + id: ActionTypeId, minimumLicenseRequired: 'gold', name: i18n.translate('xpack.actions.builtin.slackTitle', { defaultMessage: 'Slack', diff --git a/x-pack/plugins/actions/server/builtin_action_types/teams.ts b/x-pack/plugins/actions/server/builtin_action_types/teams.ts index e152a65217ce2..8575ae75d1e6c 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/teams.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/teams.ts @@ -42,6 +42,7 @@ const ParamsSchema = schema.object({ message: schema.string({ minLength: 1 }), }); +export const ActionTypeId = '.teams'; // action type definition export function getActionType({ logger, @@ -51,7 +52,7 @@ export function getActionType({ configurationUtilities: ActionsConfigurationUtilities; }): TeamsActionType { return { - id: '.teams', + id: ActionTypeId, minimumLicenseRequired: 'gold', name: i18n.translate('xpack.actions.builtin.teamsTitle', { defaultMessage: 'Microsoft Teams', diff --git a/x-pack/plugins/actions/server/builtin_action_types/webhook.ts b/x-pack/plugins/actions/server/builtin_action_types/webhook.ts index 089363990643f..4479f7c69bebb 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/webhook.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/webhook.ts @@ -71,6 +71,7 @@ const ParamsSchema = schema.object({ body: schema.maybe(schema.string()), }); +export const ActionTypeId = '.webhook'; // action type definition export function getActionType({ logger, @@ -80,7 +81,7 @@ export function getActionType({ configurationUtilities: ActionsConfigurationUtilities; }): WebhookActionType { return { - id: '.webhook', + id: ActionTypeId, minimumLicenseRequired: 'gold', name: i18n.translate('xpack.actions.builtin.webhookTitle', { defaultMessage: 'Webhook', diff --git a/x-pack/plugins/actions/server/index.ts b/x-pack/plugins/actions/server/index.ts index 39bfe2c2820e2..c43cc20bd4773 100644 --- a/x-pack/plugins/actions/server/index.ts +++ b/x-pack/plugins/actions/server/index.ts @@ -21,6 +21,30 @@ export { ActionType, PreConfiguredAction, } from './types'; + +export type { + EmailActionTypeId, + EmailActionParams, + IndexActionTypeId, + IndexActionParams, + PagerDutyActionTypeId, + PagerDutyActionParams, + ServerLogActionTypeId, + ServerLogActionParams, + SlackActionTypeId, + SlackActionParams, + WebhookActionTypeId, + WebhookActionParams, + ServiceNowActionTypeId, + ServiceNowActionParams, + JiraActionTypeId, + JiraActionParams, + ResilientActionTypeId, + ResilientActionParams, + TeamsActionTypeId, + TeamsActionParams, +} from './builtin_action_types'; + export { PluginSetupContract, PluginStartContract } from './plugin'; export { asSavedObjectExecutionSource, asHttpRequestExecutionSource } from './lib'; diff --git a/x-pack/plugins/actions/server/lib/ensure_sufficient_license.ts b/x-pack/plugins/actions/server/lib/ensure_sufficient_license.ts index 0f309bb76b76c..f22e87a58ec7f 100644 --- a/x-pack/plugins/actions/server/lib/ensure_sufficient_license.ts +++ b/x-pack/plugins/actions/server/lib/ensure_sufficient_license.ts @@ -5,14 +5,13 @@ */ import { ActionType } from '../types'; import { LICENSE_TYPE } from '../../../licensing/common/types'; -import { SERVER_LOG_ACTION_TYPE_ID } from '../builtin_action_types/server_log'; -import { ES_INDEX_ACTION_TYPE_ID } from '../builtin_action_types/es_index'; +import { ServerLogActionTypeId, IndexActionTypeId } from '../builtin_action_types'; import { CASE_ACTION_TYPE_ID } from '../../../case/server'; import { ActionTypeConfig, ActionTypeSecrets, ActionTypeParams } from '../types'; const ACTIONS_SCOPED_WITHIN_STACK = new Set([ - SERVER_LOG_ACTION_TYPE_ID, - ES_INDEX_ACTION_TYPE_ID, + ServerLogActionTypeId, + IndexActionTypeId, CASE_ACTION_TYPE_ID, ]);