What are the possible values for the run action field in Notification Policies?

Last updated: September 15, 2025

Context

When writing notification policies, users need to understand all possible values for the run.changes[i].action field to properly handle different types of infrastructure changes in their policies. The documentation currently shows only a limited set of possible values, which can lead to confusion when implementing notification policies.

Answer

The run.changes[i].action field can contain several different values depending on the type of operation being performed. Here is the complete list of possible values grouped by category:

Core Infrastructure Actions

  • added - Resource was created

  • changed - Resource was modified in-place

  • deleted - Resource was destroyed

  • no-op - No change (no operation)

  • read - Data source read operation

Terraform Replacement Actions

  • destroy-before-create-replaced - Resource replaced by destroying first, then creating

  • create-before-destroy-replaced - Resource replaced by creating first, then destroying

State Management Actions

  • import - Resource was imported into state

  • forget - Resource was removed from state (but not destroyed)

Ansible-specific Actions

  • ok - Task executed successfully without changes

  • skipped - Task was skipped

  • rescued - Task was rescued from failure

  • ignored - Task failure was ignored

  • unreachable - Host was unreachable

  • failed - Task failed

When writing notification policies, you can use these values to create conditions and handle different types of changes appropriately. For example:

x.action == "create-before-destroy-replaced" # Check if the action is a create-before-destroy replacement
x.action == "import" # Check if the action is a state import