6.10 Notification、Notifier

以下にNotification、Notifier定義と定義例を示します。Notification、Notifierの詳細については「通知の設計」を参照してください。

NotificationのYAML定義は以下です。

(表)Notification定義

ラベル デフォルト値 必須 説明
apiVersion: Yes APIバージョン
1.0を指定する
kind: Yes notificationを指定する
type: No resourceを指定する
Ops Iの運用機能に追加する新しい定義であることを示す
name: Yes Notification定義の内部名
nameは以下のルールに従う必要があります。
  • 本YAMLファイルのディレクトリ名を指定
  • 入力可能な文字は以下の通り
    • 半角英数字:
      a~z A~Z 0~9
    • 半角の特殊文字:
      _ . ( ) -
  • 先頭文字が半角英数字かアンダーバー(_)
  • その他の注意点は「YAMLファイル作成時の注意」2~4を参照
label: Yes YAMLファイルに記載する運用機能の表示名
includes: No このYAMLファイルで利用する関連YAMLファイルを記載
メモメモ
  • 記載するYAMLファイルはこのYAMLファイル登録前にOps Iに登録されている必要があります。
  • includesラベルを指定することにより、他のYAMLファイルで定義した内容を取り込むことができます。例えば、通知の手段を定義したNotifierのYAMLファイルを取り込む場合に使用します。
- kind: Yes 読み込むYAMLファイルの種類
  name: Yes 読み込むYAMLファイルの内部名
description: No このYAMLファイルに対する詳細説明
テンプレート機能を利用して記述することができる
event: Yes 通知のイベント条件
  resource: Yes 以下の2つの役割がある。
  • イベントの対象にするリソース(イベントのタイプがonDemand以外の場合)
    通知イベントの発行のために監視するリソースを指定する。
  • .Contextまたは.PrevContextを用いて通知に埋め込む場合の起点
リソースとして以下を指定できる。
  • schedule:スケジュールの担当者変更、スケジュールに対するリマインド、定期的な作業に関するスケジュール変更、またはワークフローのステップ遷移に対して通知したいときなどに指定
  • workitem:作業項目の作成や更新を通知したいときなどに指定
  • workflow:ワークフローの作成や完了を通知したいときなどに指定
  type: Yes イベントのタイプ
どのイベントに対して通知するかを設定する。
  • update:リソースが作成/更新されたことを通知の対象にしたい場合に指定
  • delete:リソースが削除されたことを通知の対象にしたい場合に指定
  • time:リソースの定期的な評価を通知の対象にしたい場合に指定
    イベントのリソース(schedule/workitem/workflow)により、対象となるリソースが異なる。
    • scheduleの場合:
      • 開始日時(plannedStart)または終了日時(plannedEnd)が現在時刻の前後1週間(10080分)以内のスケジュール
      • 開始日時(plannedStart)または終了日時(plannedEnd)が現在時刻の前後1週間(10080分)以内に設定された未完了のワークフローのステップのスケジュール
    • workitemの場合:
      timeは使用不可
    • workflowの場合:
      未完了のワークフロー
  • onDemand:ワークフロー部品oi.notifyでの通知の場合に指定
updateの記載例は「<定義例> Notification」、deleteの記載例は「<定義例> Notifier(作業項目の削除通知)」、timeの記載例は「ユースケース3:スケジュールの開始5分前と60分前にリマインダーを通知する」を参照。
onDemandはイベントのリソースがworkflowの場合に、指定できる。記載例は「通知を含めたワークフローの定義例」を参照。
conditions: No 通知する条件を記述する。
イベントのタイプ がonDemandの場合は指定しない。
- No 複数の条件があった場合は、or条件で判定される。この下のレベルの条件はand条件で判定される。
- resource: Yes 条件の判定に使用するオブジェクト・フィールドを指定する。オブジェクト・フィールドは、「event:.resource:」に指定したリソースから参照できるオブジェクト・フィールドを指定できる。
なお、オブジェクト・フィールドは、判定対象のデータの現在の値を.Context、変更前の値を.PrevContextと表記する。
イベントのタイプ(type)がupdateの場合は、現在の値を.Context、変更前の値を.PrevContextで取得可能。
イベントのタイプ(type)がdeleteの場合は、削除前の値を.PrevContextで取得可能で、.Contextは使用不可。
イベントのタイプ(type)がtimeの場合は、.Contextが使用可能で、.PrevContextは使用不可。
例)
"{{ .GetValue ".Context.workflow.name" }}"
"{{ .GetValue ".PrevContext.status" }}"
Notificationの定義内で使用できるオブジェクト・フィールドの詳細は、「(表)Notificationで使用可能なオブジェクト・フィールド」を参照。
  <operator>: Yes 条件のオペレータとオペランドを<key>: <value>で指定する。
<key>
オペレータを指定する。以下のタイプがある。
  • eq、ne(==、!=)
  • gt、ge(>、>=)
  • lt、le(<、<=)
  • in、notIn、wildcard、regex
  • remaining
    typeがtimeの場合のみ指定可能。この場合valueには分数として-10080(7日後)~10080(7日前)の値を指定する。
    resourceに日時のフィールドを指定し、value分前かどうか判断する。
<value>
オペランドを指定する。
例)
"eq: WorkflowNameAAA"
notifications: Yes 送信する通知オブジェクトのリスト
- message: Yes 送信する通知オブジェクトのメッセージ
title: Yes メッセージのタイトル
通知のイベント条件(event部分)で指定したオブジェクトを起点にしてフィールドを埋め込むことも可能。なお、現在の値(.Context)のみ使用可能。変更前の値(.PrevContext)は使用不可
例)
"There is an request for {{ .GetValue ".Context.activity" }}."
イベントのタイプがonDemandの場合は、WorkflowのYAMLファイルのoi.notifyのparamsで指定したパラメータを、以下の構文で指定することで値を取得できる。
例)
"{{ .OINotify.params.パラメータ }}"
body: Yes メッセージのボディ。
通知のイベント条件(event部分)で指定したオブジェクトを起点にしてフィールドを埋め込むことも可能
例)
"There is an request for {{ .GetValue ".Context.workflow.name" }}."
イベントのタイプがonDemandの場合は、WorkflowのYAMLファイルのoi.notifyのparamsで指定したパラメータを、以下の構文で指定することで値を取得できる。
例)
"{{ .OINotify.params.パラメータ }}"
referTo: No メッセージの参照先。
通知のイベント条件(event部分)で指定したオブジェクトを起点にしてフィールドを埋め込むことも可能。
Ops IのURLを記載する場合、通知の宛先に設定しているユーザーが、記載したURLに対するアクセス権を持っていることを事前に確認する。
例)
https://{{ .System.domain }}/sys_request/workflow_list/workflow_detail/{{ .GetValue ".Context.workflow" }}
イベントのタイプがonDemandの場合は、WorkflowのYAMLファイルのoi.notifyのparamsで指定したパラメータを、以下の構文で指定することで値を取得できる。
例)
"{{ .OINotify.params.パラメータ }}"
severity: Information No Notificationの重大度
以下の値が利用可能
  • Critical
  • Warning
  • Information
destinations: Yes メッセージの宛先のリスト
messageオブジェクトの内容を複数の宛先に送付できる。
- type: Yes 宛先のタイプ
次から選択できる。
  • user(ユーザー宛て)
  • group(グループ宛て)
  • groupMember(グループの所属メンバー宛て)
  value: Yes 宛先の値
通知のイベント条件(event部分)で指定したオブジェクトを起点にしてフィールドを埋め込むことも可能。なお、現在の値(.Context)のみ使用可能。変更前の値(.PrevContext)は使用不可
例)
"{{ .GetValue ".Context.assignedGroup"}}"
イベントのタイプがonDemandの場合は、WorkflowのYAMLファイルのoi.notifyのparamsで指定したパラメータを、以下の構文で指定することで値を取得できる。
例)
"{{ .OINotify.params.パラメータ }}"
  notifiers: No 宛先への通知手段の指定。Notifierのnameを配列で指定する。
配列の指定例は「<定義例> Notifier(作業項目の削除通知)」を参照。
メモメモ
指定の有無にかかわらず、Ops IのGUIによる通知は実行される。
※入れ子関係にないラベルの必須が「No」の場合は、定義が必須ではありません。入れ子関係にあるラベルの場合は、下層ラベルの必須は、上層ラベルの必須が「Yes」である場合に適用されます。

Notificationの定義内で使用可能なオブジェクト・フィールドは以下です。

(表)Notificationで使用可能なオブジェクト・フィールド

オブジェクト フィールド データ型※1 出力される値 補足 値が取得可能な条件
workflow createdOn※3 Date※4 ワークフローの作成日時 - 常に取得可能
workflow updatedOn Date※4 ワークフローの更新日時 - 常に取得可能
ただしワークフロー起動直後は1970/1/1 00:00:00が設定され、ワークフローのステータスが変化したり、ワークフローのタイトルを変更すると更新された値が取得される
workflow createdBy※3 str ワークフローの作成者のユーザー名 userオブジェクト※2
ユーザーIDを参照する場合:"{{ .GetValue ".Context.createdBy"}}"
ユーザー名を参照する場合:"{{ .GetValue ".Context.createdBy.name"}}"
常に取得可能
workflow id※3 uuid ワークフローのID - 常に取得可能
workflow name str ワークフローの名前 WorkflowのYAML定義の「name」ラベルの値 常に取得可能
workflow schedule※3 uuid ワークフロー直属のスケジュールのID scheduleオブジェクト※2 常に取得可能
workflow Any task name uuid 指定したタスク名のスケジュールのID scheduleオブジェクト※2
ワークフローに所属する任意のスケジュールを指定できる。
常に取得可能
workflow title str ワークフローのタイトル - 常に取得可能
workflow status※3 str ワークフローのステータス - 常に取得可能
workflow customer※3 str 顧客ID customerオブジェクト※2
顧客IDを参照する場合:"{{ .GetValue ".Context.customer"}}"
顧客名を参照する場合:"{{ .GetValue ".Context.customer.name"}}"
オブジェクトが顧客ユーザーが起票したワークフローの場合
workflow parentContext uuid 親のワークフローのID workflowオブジェクト※2 サブフローの場合
workflow rootContext uuid ルートのワークフローのID workflowオブジェクト※2 常に取得可能
workflow label str ラベル WorkflowのYAML定義の「label」ラベルの値
ヒアリングシートで指定した言語で出力される。
常に取得可能
workflow currentSchedule uuid 現在実行中(Pending状態を含む)のスケジュールのID scheduleオブジェクト※2
ワークフローの担当者を参照する場合:
"{{workflow.currentSchedule.assignedTo.name}}"
ワークフローの担当グループを参照する場合:
"{{workflow.currentSchedule.assignedGroup.name}}"
実行中のスケジュールが存在する場合
workflow schedules.Any task name uuid 指定したタスク名のスケジュールのID scheduleオブジェクト※2
ワークフローに所属する任意のスケジュールを指定できる。
常に取得可能
workflow description str 説明 - ユーザーが設定した場合※5
workflow category str 分類 - ユーザーが設定した場合※5
workflow dueDate Date※4 期限 - ユーザーが設定した場合※5
workflow note1 str 備考 - ユーザーが設定した場合※5
workflow note2 str 備考2 - ユーザーが設定した場合※5
workflow note3 str 備考3 - ユーザーが設定した場合※5
schedule id※3 uuid スケジュールのID - 常に取得可能
schedule workflow Date※4 スケジュールにひもづいているワークフローのID workflowオブジェクト※2 オブジェクトがワークフローの起票により生成されたスケジュールの場合
schedule activity※3 str スケジュールにひもづいているアクティビティの名前 - 常に取得可能
schedule parent※3 uuid 親スケジュールのID scheduleオブジェクト※2 オブジェクトがワークフローのアクティビティに対するスケジュールの場合
schedule assignedTo※3 uuid 割り当て先ユーザーのID userオブジェクト※2
ワークフローの各ステップの担当者や、予定表にひもづかないスケジュールの担当者に通知する場合はこのフィールドの指定が必要。
オブジェクトが以下のいずれかの条件を満たすスケジュールの場合   
  • ワークフローの起票により生成され、かつ担当者が設定されているスケジュール
  • リソースタブから作成されたスケジュール
schedule assignedGroup※3 uuid 割り当て先グループのID groupオブジェクト※2 オブジェクトが以下のいずれかの条件を満たすスケジュールの場合   
  • ワークフローの起票により生成されたスケジュールで、かつ担当グループが設定されたアクティビティのスケジュール
  • リソースタブから作成した担当グループを設定したスケジュール
schedule assignedUsers※3 uuidリスト 割り当て先のユーザーのIDのリスト userオブジェクト※2
作業項目の担当者(複数指定可能)を用いて通知する場合はこのフィールドの指定が必要。
複数指定の場合はカンマ(,)で連結される。
operatorにin/notInを使用する場合は以下の評価を行う。
  • valueに指定した値がassignedUsers内のいずれかのuserと一致する/一致しないか
  • valueの値はカンマ(,)を区切り文字として扱い、valueのいずれかの値がassignedUsersのいずれかに一致する/いずれにも一致しないか
オブジェクトが担当者が設定された作業項目に対するスケジュールの場合
schedule status※3 str スケジュールのステータス 値は「JP1 Cloud Service 運用統合 APIリファレンス」の「APIリファレンス詳細>標準提供API>Schemas>dtos.ScheduleDTO>status」を参照。 常に取得可能
schedule workflowStatus※3 str スケジュールにひもづいているworkflowアクティビティのステータス 値は「JP1 Cloud Service 運用統合 APIリファレンス」の「APIリファレンス詳細>標準提供API>Schemas>dtos.ScheduleDTO>workflowStatus」を参照。 オブジェクトがワークフローのアクティビティに対するスケジュールの場合
schedule plannedStart※3 Date※4 スケジュールの計画された開始日時 - オブジェクトが開始予定の日時が設定されたスケジュールの場合
schedule plannedEnd※3 Date※4 スケジュールの計画された終了日時 - オブジェクトが終了予定の日時が設定されたスケジュールの場合
schedule calendar※3 uuid スケジュールにひもづく作業項目が属する予定表のID calendarオブジェクト※2 オブジェクトが作業項目に対するスケジュールの場合
schedule title※3 str スケジュールのタイトル - オブジェクトが以下のいずれかの条件を満たすスケジュールの場合
  • ワークフローの起票により生成されたスケジュール
  • リソースタブから作成したスケジュール
schedule scheduleType※3 str スケジュールの種別 次の値が設定される。
  • daily:定期的な作業(日次)
  • weekly:定期的な作業(週次)
  • monthly:定期的な作業(月次)
  • yearly:定期的な作業(年次)
  • oneTime:単一の作業
  • on-demand:ワークフロー起動時に作成されるスケジュール
オブジェクトが作業項目に対するスケジュールの場合
schedule workitem※3 uuid 関連する作業項目のID workitemオブジェクト※2 オブジェクトが作業項目に対するスケジュールの場合
schedule canceled※3 bool スケジュールの削除、復旧 - オブジェクトが作業項目に対するスケジュールの場合
schedule changedFromWorkItemDefinition※3 bool 作業項目生成時からの変更フラグ - オブジェクトが作業項目に対するスケジュールの場合
user id uuid ユーザーID - 常に取得可能
user name str ユーザー名 - 常に取得可能
user email str ユーザーのメールアドレス - 常に取得可能
user number str 電話番号 - オブジェクトが電話番号が設定されたユーザーの場合
user displayName str ユーザーの表示名 言語(日英)による姓名の順序が変わる。ヒアリングシートで指定した言語に従う。 常に取得可能
group id uuid グループID - 常に取得可能
group name str グループ名 - 常に取得可能
group email str グループのメールアドレス - オブジェクトがメールアドレスが設定されたグループの場合
calendar id uuid 予定表のID - 常に取得可能
calendar name str 予定表の名前 - 常に取得可能
calendar assignedGroups uuidリスト 割り当て先のgroupのIDのリスト groupオブジェクト※2
複数指定の場合はカンマ(,)で連結される。
operatorにin/notInを使用する場合は以下の評価を行う。
  • valueに指定した値がassignedGroups内のいずれかのgroupと一致する/一致しないか
  • valueの値はカンマ(,)を区切り文字として扱い、valueのいずれかの値がassignedGroupsのいずれかに一致する/いずれにも一致しないか
常に取得可能
workitem id※3 uuid 作業項目のID - 常に取得可能
workitem calendar※3 uuid 予定表のID calendarオブジェクト※2 常に取得可能
workitem name※3 str 作業項目の名前 - 常に取得可能
workitem createdOn※3 Date※4 作業項目の作成日時 - 常に取得可能
workitem createdBy※3 uuid 作業項目の作成者のID userオブジェクト※2 常に取得可能
workitem updatedOn Date※4 作業項目の更新日時 - オブジェクトの作業項目が1回以上更新されている場合
workitem updatedBy uuid 作業項目の更新者のID userオブジェクト※2 オブジェクトの作業項目が1回以上更新されている場合
workitem workflowExecUser※3 uuid ワークフロー実行者 userオブジェクト※2 オブジェクトがワークフローの自動実行が設定された作業項目の場合
workitem assignedUsers※3 uuidリスト 割り当て先のユーザーのIDのリスト userオブジェクト※2
作業項目の担当者(複数指定可能)を用いて通知する場合はこのフィールドの指定が必要。
複数指定の場合はカンマ(,)で連結される。
operatorにin/notInを使用する場合は以下の評価を行う。
  • valueに指定した値がassignedUsers内のいずれかのuserと一致する/一致しないか
  • valueの値はカンマ(,)を区切り文字として扱い、valueのいずれかの値がassignedUsersのいずれかに一致する/いずれにも一致しないか
オブジェクトが担当者が設定された作業項目の場合
workitem assignedGroup※3 uuid 割り当て先グループのID groupオブジェクト※2 オブジェクトが担当グループが設定された作業項目の場合
workitem plannedStart※3 str 作業項目の予定開始時刻 形式:HH:MM:SS 常に取得可能
workitem duration※3 int 作業項目の予定期間(分) - 常に取得可能
workitem scheduleType※3 str スケジュールの種別 次の値が設定される。
  • daily:定期的な作業(日次)
  • weekly:定期的な作業(週次)
  • monthly:定期的な作業(月次)
  • yearly:定期的な作業(年次)
  • oneTime:単一の作業
常に取得可能
workitem recurrenceNum※3 int 作業項目の繰り返し回数 -
  • オブジェクトが単一の作業が指定された作業項目の場合は常に取得可能
  • オブジェクトが定期的な作業でかつ回数を指定された作業項目の場合
workitem startDate※4 str 作業項目の開始日 形式:YYYY-MM-DD オブジェクトが開始日を設定した作業項目の場合
workitem endDate※3 str 作業項目の終了日 形式:YYYY-MM-DD オブジェクトが定期的な作業でかつ終了日が指定された作業項目の場合
customer id str 顧客ID - 常に取得可能
customer name str 顧客名 - 常に取得可能
※1:strはstring型、uuidはUUID形式のstring型、uuidリストはUUID形式のstring型のリスト、Dateはdatetime型、intはinteger型、boolはboolean型を表します。
※2:フィールドに関連するオブジェクトの情報を出力できます。
例: .Context.schedule.assignedTo
※3:event.typeが「update」の場合、これらの値が変更された際に通知する条件の判定が行われます。ただし、関連オブジェクトの情報については変更の検知はできません。
またevent.typeが「update」または「delete」の場合、「.PrevContext」を使用することで変更前の値を取得できます。
※4:条件の起点となるオブジェクトと監視方法を指定するcondition部と条件で合致した場合に通知する内容を定義するmessage部では日時のデータ型が異なります。
項目 形式 具体例
condition部 YYYY-MM-DDTHH:mm:ss±hh:mm 2025-01-02T03:04:05+09:00
message部 YYYY-MM-DD HH:mm:ss タイムゾーン 2025-01-02 03:04:05 JST
※5:ワークフロー一覧にカラムを追加し、値を設定した場合に取得できます。詳細は「ワークフロー画面のカスタム」を参照してください。

NotifierのYAML定義は以下です。

(表)Notifier定義

ラベル デフォルト値 必須 説明
apiVersion: Yes APIバージョン
1.0を指定する
kind: Yes notifierを指定する
type: No resourceを指定する
Ops Iの運用機能に追加する新しい定義であることを示す
name: Yes Notifier定義の内部名
nameは以下のルールに従う必要があります。
  • 本YAMLファイルのディレクトリ名を指定
  • 入力可能な文字は以下の通り
    • 半角英数字:
      a~z A~Z 0~9
    • 半角の特殊文字:
      _ . ( ) -
  • 先頭文字が半角英数字かアンダーバー(_)
  • その他の注意点は「YAMLファイル作成時の注意」2~4を参照
label: Yes YAMLファイルに記載する運用機能の表示名
includes: No このYAMLファイルで利用する関連YAMLファイルを記載
メモメモ
  • 記載するYAMLファイルはこのYAMLファイル登録前にOps Iに登録されている必要があります。
  • includesラベルを指定することにより、他のYAMLファイルで定義した内容を取り込むことができます。
- kind: Yes 読み込むYAMLファイルの種類
  name: Yes 読み込むYAMLファイルの内部名
description: No このYAMLファイルに対する詳細説明
protocol: Yes 通知手段の使用プロトコル
以下のプロトコルが使用可能
  • smtp
property: Yes smtpのプロパティ
credential: Yes smtpサーバーへの認証情報。
"default"固定
url: Yes smtpサーバーのアドレス。
"email-smtp.ap-northeast-1.amazonaws.com"固定
port: Yes smtpサーバーのポート。
"587"固定
to: Yes メールの宛先アドレスを指定する。指定したメールアドレスは通知メールのBccヘッダーに指定され、送信される。
複数の宛先に送付する場合は、カンマ(,)で連結して指定する。
通知(Notification)に含まれるオブジェクトのフィールドを埋め込むことで、GUIで通知される内容をメールでも通知可能。指定する際は、.Contextに埋め込みたいオブジェクトとフィールドを連結して指定する。
使用可能なオブジェクト・フィールドは「(表)Notifierで使用可能なオブジェクト・フィールド」参照
例)
{{ .Context.receiver.email }}
from: No smtpの送信元アドレス。
"noreply@ops-integration.com"固定
subject: No メールのタイトル。
通知(Notification)に含まれるオブジェクトのフィールドを埋め込むことで、GUIで通知される内容をメールでも通知可能。指定する際は、.Contextに埋め込みたいオブジェクトとフィールドを連結して指定する。
使用可能なオブジェクト・フィールドは「(表)Notifierで使用可能なオブジェクト・フィールド」参照
例)
{{ .Context.message.title }}
message: No メールの本文。
通知(Notification)に含まれるオブジェクトのフィールドを埋め込むことで、GUIで通知される内容をメールでも通知可能。指定する際は、.Contextに埋め込みたいオブジェクトとフィールドを連結して指定する。
使用可能なオブジェクト・フィールドは「(表)Notifierで使用可能なオブジェクト・フィールド」参照
例)
{{ .Context.message.body }}
conditions: No この定義の条件に合致した場合に、このNotifierを使って通知される。
- No 複数の条件があった場合は、or条件で判定される。この下のレベルの条件はand条件で判定される。
- resource: Yes 条件
通知(Notification)に含まれるオブジェクトのフィールドを埋め込むことも可能。指定する際は、.Contextに埋め込みたいオブジェクトとフィールドを連結して指定する。
使用可能なオブジェクト・フィールドは「(表)Notifierで使用可能なオブジェクト・フィールド」参照
例)
{{ .Context.receiver.email }}
  <operator>: Yes 条件のオペレータとオペランドを<key>: <value>で指定する。
<key>
オペレータを指定する。以下のタイプがある。
  • eq、ne(==、!=)
  • gt、ge(>、>=)
  • lt、le(<、<=)
  • in、notIn、wildcard、regex
<value>
  オペランドを指定する。
  例)
  regex: ^∗@hitachi.com$
※入れ子関係にないラベルの必須が「No」の場合は、定義が必須ではありません。入れ子関係にあるラベルの場合は、下層ラベルの必須は、上層ラベルの必須が「Yes」である場合に適用されます。

Notifierの定義内で使用可能なオブジェクト・フィールドは以下です。

(表)Notifierで使用可能なオブジェクト・フィールド

オブジェクト フィールド 説明
message title メッセージのタイトル
message severity メッセージの重要度
message body メッセージの内容
message referTo メッセージの参照先
receiver email 宛先のメールアドレス

<定義例> Notification

apiVersion: 1.0
kind: notification

## Meta data
type: resource
name: lend_reject_notification
label: lend_reject_notification
description: 申請者に却下通知を行うYAML定義です

## Notification contents
event:
  resource: schedule
  type: update
conditions:
  -
    - resource: '{{ .GetValue ".Context.activity" }}'
      eq: create_vm_wf_04

    - resource: '{{ .GetValue ".Context.workflowStatus" }}'
      eq: pending

    - resource: '{{ .GetValue ".PrevContext.workflowStatus" }}'
      eq: succeeded

notifications:
  - message:
      title: VM貸出の却下通知
      body: |
             VM貸出の却下通知が到着しています。申し送り事項を確認の上、対応お願いします。
              申請日時:{{ .GetValue ".Context.createdOn" }}
              申請者:{{ .GetValue ".Context.createdBy" }}
      referTo: https://{{ .System.domain }}/sys_request/workflow_list/workflow_detail/{{ .GetValue ".Context.workflow" }}
      severity: Information
    destinations:
      - type: user
        value: '{{ .GetValue ".Context.createdBy" }}'

<定義例> Notifier

apiVersion: 1.0
kind: notifier

## Meta data
type: resource
name: email
label: Normal case
description: Normal case

protocol: smtp
property:
  credential: default
  url: email-smtp.ap-northeast-1.amazonaws.com
  port: 587
  to: '{{ .Context.receiver.email }}'
  from: noreply@ops-integration.com
  subject: '{{ .Context.message.title }}'
  message: |
    {{ .Context.message.body }}

<定義例> Notifier(作業項目の削除通知)

apiVersion: 1.0
kind: notification

## Meta data
type: resource
name: workitem_notification
label: workitem_notification
description: |
  作業項目の削除通知

## Notification contents
event:
  resource: workitem
  type: delete

notifications:
  - message:
      title: '[{{ .GetValue ".PrevContext.name" }}] が削除されました。'
      body: |
            作業項目「{{ .GetValue ".PrevContext.name" }}」が削除されました。
      severity: Information
    destinations:
      - type: user
        value: '{{ .GetValue ".PrevContext.assignedUsers" }}'
        notifiers:
          - email