/**
 * SIGNL4 Node - Version 1
 * Discriminator: resource=alert, operation=send
 */


interface Credentials {
  signl4Api: CredentialReference;
}

/** Send an alert */
export type Signl4V1AlertSendParams = {
  resource: 'alert';
  operation: 'send';
/**
 * A more detailed description for the alert
 */
    message?: string | Expression<string> | PlaceholderValue;
/**
 * Additional Fields
 * @default {}
 */
    additionalFields?: {
    /** Alerting Scenario
     * @default single_ack
     */
    alertingScenario?: 'single_ack' | 'multi_ack' | Expression<string>;
    /** Attachments
     * @default {}
     */
    attachmentsUi?: {
        /** Attachments Binary
     */
    attachmentsBinary?: {
      /** Name of the binary properties which contain data which should be added as attachment
       */
      property?: string | Expression<string> | PlaceholderValue;
    };
  };
    /** If the event originates from a record in a 3rd party system, use this parameter to pass the unique ID of that record. That ID will be communicated in outbound webhook notifications from SIGNL4, which is great for correlation/synchronization of that record with the alert. If you resolve / close an alert you must use the same External ID as in the original alert.
     */
    externalId?: string | Expression<string> | PlaceholderValue;
    /** Whether to apply event filtering for this event, or not. If set to true, the event will only trigger a notification to the team, if it contains at least one keyword from one of your services and system categories (i.e. it is whitelisted)
     * @default false
     */
    filtering?: boolean | Expression<boolean>;
    /** Transmit location information ('latitude, longitude') with your event and display a map in the mobile app
     * @default {}
     */
    locationFieldsUi?: {
        /** Location
     */
    locationFieldsValues?: {
      /** The location latitude
       */
      latitude?: string | Expression<string> | PlaceholderValue;
      /** The location longitude
       */
      longitude?: string | Expression<string> | PlaceholderValue;
    };
  };
    /** Assigns the alert to the service/system category with the specified name
     */
    service?: string | Expression<string> | PlaceholderValue;
    /** The title or subject of this alert
     */
    title?: string | Expression<string> | PlaceholderValue;
  };
};

export type Signl4V1AlertSendNode = {
  type: 'n8n-nodes-base.signl4';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<Signl4V1AlertSendParams>;
};