From e9ac8ab7eb4632f67007c559153bc6754a568a07 Mon Sep 17 00:00:00 2001 From: Megha Kandari Date: Mon, 13 Apr 2026 12:49:41 -0700 Subject: [PATCH 1/2] update for phase II changes --- .../README.md | 140 ++++++++++++++---- ...nts_and_notifications_config_generator.yml | 9 +- ...events_and_notifications_config_schema.yml | 30 ++-- ...events_and_notifications_config_inputs.yml | 123 ++++++++++----- 4 files changed, 216 insertions(+), 86 deletions(-) diff --git a/workflows/events_and_notifications_config_generator/README.md b/workflows/events_and_notifications_config_generator/README.md index 1ee934d..c51895b 100644 --- a/workflows/events_and_notifications_config_generator/README.md +++ b/workflows/events_and_notifications_config_generator/README.md @@ -11,7 +11,9 @@ - [Schema Parameters](#schema-parameters) - [Getting Started](#getting-started) - [Operations](#operations) -- [Examples](#examples)--- +- [Examples](#examples) + +--- ## Overview @@ -82,10 +84,10 @@ events_and_notifications_config_generator/ | Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| -| `generate_all_configurations` | boolean | No | false | Workflow convenience flag. When true, playbook omits module `config` | -| `file_path` | string | No | auto-generated | Output file path for generated YAML | +| `config` | dict | No | omitted | Module `config` dict. Wraps `component_specific_filters`. When omitted, all 8 component types are generated | +| `file_path` | string | No | auto-generated | Output file path for generated YAML. Format when auto-generated: `events_and_notifications_playbook_config_.yml` | | `file_mode` | string | No | `overwrite` | File write mode: `overwrite` or `append` | -| `component_specific_filters` | dict | No | omitted | Component and filters passed to module `config` | +| `component_specific_filters` | dict | No | omitted | Legacy convenience key. Equivalent to `config.component_specific_filters` | ### Supported Components @@ -157,17 +159,46 @@ ansible-playbook -i ./inventory/demo_lab/hosts.yaml ./workflows/events_and_notif ### Generate Operations (state: gathered) -1. **Generate all events and notifications data** -- Set `generate_all_configurations: true`. +The playbook resolves the module `config` parameter using a 3-level priority chain: + +> **Priority 1 — `config:` key (preferred):** Pass the module config dict directly. +> **Priority 2 — `component_specific_filters:` key (legacy):** Convenience shorthand; auto-wrapped into `{component_specific_filters: ...}`. +> **Priority 3 — neither provided:** `config` is omitted; module retrieves all 8 component types. + +#### 1. Generate all events and notifications data + +Omit both `config` and `component_specific_filters` to trigger full discovery: + +```yaml +events_and_notifications_config: + - file_path: "/tmp/events_all_config.yml" +``` + +**Validate:** +```bash +./tools/validate.sh \ + -s workflows/events_and_notifications_config_generator/schema/events_and_notifications_config_schema.yml \ + -d workflows/events_and_notifications_config_generator/vars/events_and_notifications_config_inputs.yml +``` + +**Execute:** +```bash +ansible-playbook -i inventory/demo_lab/hosts.yaml \ + workflows/events_and_notifications_config_generator/playbook/events_and_notifications_config_generator.yml \ + --extra-vars VARS_FILE_PATH=../vars/events_and_notifications_config_inputs.yml +``` + +#### 2. Generate selected destination component types + +Use `config.component_specific_filters` with `components_list` and `destination_filters`. + +#### 3. Generate selected subscription component types -2. **Generate selected destination component types** -- Use `components_list` and `destination_filters`. +Use `config.component_specific_filters` with `components_list` and `notification_filters`. -3. **Generate selected subscription component types** -- Use `components_list` and `notification_filters`. +#### 4. Generate ITSM settings by instance name -4. **Generate ITSM settings by instance name** -- Use `components_list: ["itsm_settings"]` and `itsm_filters.instance_names`. +Use `config.component_specific_filters` with `components_list: ["itsm_settings"]` and `itsm_filters.instance_names`. --- @@ -175,40 +206,93 @@ ansible-playbook -i ./inventory/demo_lab/hosts.yaml ./workflows/events_and_notif ### Example 1: Generate all events and notifications configurations +Omit `config` and `component_specific_filters` — module retrieves all 8 component types. + ```yaml events_and_notifications_config: - - generate_all_configurations: true - file_path: "/tmp/events_and_notifications_complete_config.yml" + - file_path: "/tmp/events_and_notifications_complete_config.yml" ``` -### Example 2: Filter destination components by names and types +### Example 2: Filter destination components (using `config:` key) ```yaml events_and_notifications_config: - file_path: "/tmp/events_notifications_destinations.yml" - component_specific_filters: - components_list: ["webhook_destinations", "email_destinations"] - destination_filters: - destination_names: ["my-webhook-1", "ops-email-destination"] - destination_types: ["webhook", "email"] + config: + component_specific_filters: + components_list: ["webhook_destinations", "email_destinations"] + destination_filters: + destination_names: ["my-webhook-1", "ops-email-destination"] + destination_types: ["webhook", "email"] ``` -### Example 3: Filter event subscription components +### Example 3: Filter event subscription components (using `config:` key) ```yaml events_and_notifications_config: - file_path: "/tmp/events_notifications_subscriptions.yml" + config: + component_specific_filters: + components_list: ["webhook_event_notifications", "email_event_notifications"] + notification_filters: + subscription_names: ["Critical Alerts"] + notification_types: ["webhook"] +``` + +### Example 4: ITSM settings filter with append mode + +```yaml +events_and_notifications_config: + - file_path: "/tmp/events_notifications_itsm.yml" + file_mode: append + config: + component_specific_filters: + components_list: ["itsm_settings"] + itsm_filters: + instance_names: + - "ServiceNow-Prod" + - "BMC-Remedy" +``` + +### Example 5: Combined filters (destinations + notifications + ITSM) + +```yaml +events_and_notifications_config: + - file_path: "/tmp/events_notifications_combined.yml" + config: + component_specific_filters: + components_list: + - "webhook_destinations" + - "email_destinations" + - "webhook_event_notifications" + - "email_event_notifications" + - "itsm_settings" + destination_filters: + destination_names: ["prod-webhook"] + destination_types: ["webhook"] + notification_filters: + subscription_names: ["Critical Alerts"] + notification_types: ["webhook"] + itsm_filters: + instance_names: ["ServiceNow-Prod"] +``` + +### Example 6: Legacy `component_specific_filters` key (equivalent to Example 2) + +```yaml +events_and_notifications_config: + - file_path: "/tmp/events_notifications_legacy.yml" component_specific_filters: - components_list: ["webhook_event_notifications", "email_event_notifications"] - notification_filters: - subscription_names: ["Critical Alerts"] - notification_types: ["webhook"] + components_list: ["syslog_destinations", "snmp_destinations"] ``` --- ## Notes -- `events_and_notifications_playbook_config_generator` expects `config` as a dictionary when filters are used. -- This workflow omits `config` when filters are absent, which triggers full generation mode. -- When filter blocks are supplied, the module can auto-populate missing component entries in `components_list`. +- Module `config` parameter is resolved by this workflow using a 3-level priority chain: + 1. `item.config` — preferred; pass the module config dict directly + 2. `item.component_specific_filters` — legacy convenience key; auto-wrapped into `{component_specific_filters: ...}` + 3. Neither provided — `config` is omitted; module generates all 8 component types +- When filter blocks (`destination_filters`, `notification_filters`, `itsm_filters`) are supplied, the module auto-adds the corresponding components to `components_list` if not already present. +- Generated YAML files contain `***REDACTED***` placeholders for passwords. diff --git a/workflows/events_and_notifications_config_generator/playbook/events_and_notifications_config_generator.yml b/workflows/events_and_notifications_config_generator/playbook/events_and_notifications_config_generator.yml index 0c69551..62dbfd0 100644 --- a/workflows/events_and_notifications_config_generator/playbook/events_and_notifications_config_generator.yml +++ b/workflows/events_and_notifications_config_generator/playbook/events_and_notifications_config_generator.yml @@ -62,12 +62,11 @@ file_mode: "{{ item.file_mode | default('overwrite') }}" config: >- {{ - omit - if ( - item.generate_all_configurations | default(false) - or (item.component_specific_filters is not defined) - ) + item.config + if (item.config is defined and item.config is not none) else {'component_specific_filters': item.component_specific_filters} + if (item.component_specific_filters is defined and item.component_specific_filters is not none) + else omit }} loop: "{{ events_and_notifications_config }}" when: diff --git a/workflows/events_and_notifications_config_generator/schema/events_and_notifications_config_schema.yml b/workflows/events_and_notifications_config_generator/schema/events_and_notifications_config_schema.yml index d57e50a..b1f984b 100644 --- a/workflows/events_and_notifications_config_generator/schema/events_and_notifications_config_schema.yml +++ b/workflows/events_and_notifications_config_generator/schema/events_and_notifications_config_schema.yml @@ -22,29 +22,27 @@ catalyst_center_config_verify: bool(required=False) --- # Events and Notifications Config Generator Entry Schema events_and_notifications_config_generator_type: - generate_all_configurations: bool(required=False) + # Direct module config dict (preferred) - wraps component_specific_filters + config: include('events_and_notifications_config_type', required=False) + + # Output file path for generated YAML file_path: str(required=False) + + # File write mode: overwrite or append file_mode: enum('overwrite', 'append', required=False) + + # Legacy convenience key - component_specific_filters at item level + component_specific_filters: include('events_and_notifications_component_filters_type', required=False) + +--- +# Module config dict schema (mirrors module's config parameter) +events_and_notifications_config_type: component_specific_filters: include('events_and_notifications_component_filters_type', required=False) --- # Events and Notifications Component Filters Schema events_and_notifications_component_filters_type: - components_list: list( - enum( - 'webhook_destinations', - 'email_destinations', - 'syslog_destinations', - 'snmp_destinations', - 'itsm_settings', - 'webhook_event_notifications', - 'email_event_notifications', - 'syslog_event_notifications' - ), - min=1, - max=8, - required=False - ) + components_list: list(enum('webhook_destinations', 'email_destinations', 'syslog_destinations', 'snmp_destinations', 'itsm_settings', 'webhook_event_notifications', 'email_event_notifications', 'syslog_event_notifications'), min=1, max=8, required=False) destination_filters: include('destination_filters_type', required=False) notification_filters: include('notification_filters_type', required=False) itsm_filters: include('itsm_filters_type', required=False) diff --git a/workflows/events_and_notifications_config_generator/vars/events_and_notifications_config_inputs.yml b/workflows/events_and_notifications_config_generator/vars/events_and_notifications_config_inputs.yml index ee71625..a5cbd19 100644 --- a/workflows/events_and_notifications_config_generator/vars/events_and_notifications_config_inputs.yml +++ b/workflows/events_and_notifications_config_generator/vars/events_and_notifications_config_inputs.yml @@ -12,53 +12,102 @@ # ============================================================================ events_and_notifications_config: - # 1) Generate all events and notifications configurations - - generate_all_configurations: true - file_path: "/tmp/events_and_notifications_complete_config.yml" + # -------------------------------------------------------------------------- + # 1) Generate ALL events and notifications configurations (full discovery) + # Omit config entirely → module retrieves all 8 component types + # -------------------------------------------------------------------------- + - file_path: "/tmp/events_and_notifications_complete_config.yml" - # 2) Generate selected destination components + # -------------------------------------------------------------------------- + # 2) Using the config: key (preferred) - filter destination components + # -------------------------------------------------------------------------- - file_path: "/tmp/events_notifications_destinations.yml" - component_specific_filters: - components_list: - - "webhook_destinations" - - "email_destinations" - - "syslog_destinations" - destination_filters: - destination_names: - - "my-webhook-1" - - "ops-email-destination" - destination_types: - - "webhook" - - "email" + config: + component_specific_filters: + components_list: + - "webhook_destinations" + - "email_destinations" + - "syslog_destinations" + destination_filters: + destination_names: + - "my-webhook-1" + - "ops-email-destination" + destination_types: + - "webhook" + - "email" - # 3) Generate selected event notification subscriptions + # -------------------------------------------------------------------------- + # 3) Using the config: key - filter event notification subscriptions + # -------------------------------------------------------------------------- - file_path: "/tmp/events_notifications_subscriptions.yml" - component_specific_filters: - components_list: - - "webhook_event_notifications" - - "email_event_notifications" - notification_filters: - subscription_names: - - "Critical Alerts" - - "Device Down Alerts" - notification_types: - - "webhook" + config: + component_specific_filters: + components_list: + - "webhook_event_notifications" + - "email_event_notifications" + notification_filters: + subscription_names: + - "Critical Alerts" + - "Device Down Alerts" + notification_types: + - "webhook" - # 4) Generate ITSM settings with append mode + # -------------------------------------------------------------------------- + # 4) Using the config: key - ITSM settings with append mode + # -------------------------------------------------------------------------- - file_path: "/tmp/events_notifications_itsm.yml" file_mode: "append" + config: + component_specific_filters: + components_list: ["itsm_settings"] + itsm_filters: + instance_names: + - "ServiceNow-Prod" + - "BMC-Remedy" + + # -------------------------------------------------------------------------- + # 5) Using the config: key - combined filters (dest + notifications + itsm) + # -------------------------------------------------------------------------- + - file_path: "/tmp/events_notifications_combined.yml" + config: + component_specific_filters: + components_list: + - "webhook_destinations" + - "email_destinations" + - "webhook_event_notifications" + - "email_event_notifications" + - "itsm_settings" + destination_filters: + destination_names: + - "prod-webhook" + destination_types: + - "webhook" + notification_filters: + subscription_names: + - "Critical Alerts" + notification_types: + - "webhook" + itsm_filters: + instance_names: + - "ServiceNow-Prod" + + # -------------------------------------------------------------------------- + # 6) Legacy convenience key - component_specific_filters at item level + # (equivalent to using config: key; both produce identical module calls) + # -------------------------------------------------------------------------- + - file_path: "/tmp/events_notifications_legacy.yml" component_specific_filters: - components_list: ["itsm_settings"] - itsm_filters: - instance_names: - - "ServiceNow-Prod" - - "BMC-Remedy" + components_list: + - "syslog_destinations" + - "snmp_destinations" # ============================================================================ # Notes # ============================================================================ -# - If component_specific_filters is omitted, the workflow omits module config -# and runs in full discovery mode. -# - When filter blocks are provided, the module auto-adds corresponding -# components to components_list if needed. +# Priority chain for module config parameter: +# 1. item.config (preferred) - pass config dict directly +# 2. item.component_specific_filters (legacy convenience) - auto-wrapped +# 3. neither provided → omit config → module generates all 8 components +# When filter blocks are provided, the module auto-adds corresponding +# components to components_list if not already present. # ============================================================================ From 16079e836af2573b760e12fee1c40c7d4d7946e2 Mon Sep 17 00:00:00 2001 From: Megha Kandari Date: Mon, 13 Apr 2026 13:08:38 -0700 Subject: [PATCH 2/2] addressed review comment --- .../README.md | 44 ++++++------------- ...nts_and_notifications_config_generator.yml | 9 +--- ...events_and_notifications_config_schema.yml | 9 ++-- ...events_and_notifications_config_inputs.yml | 40 +++++++---------- 4 files changed, 33 insertions(+), 69 deletions(-) diff --git a/workflows/events_and_notifications_config_generator/README.md b/workflows/events_and_notifications_config_generator/README.md index c51895b..9175c41 100644 --- a/workflows/events_and_notifications_config_generator/README.md +++ b/workflows/events_and_notifications_config_generator/README.md @@ -30,7 +30,7 @@ The Events and Notifications config generator automates YAML playbook generation - **Component Filtering**: Generate specific destination and notification component types. - **Name-based Filters**: Filter by destination names, subscription names, and ITSM instance names. - **Flexible Output**: Supports custom `file_path` and `file_mode` (`overwrite` / `append`). -- **Brownfield Discovery**: Omit `config` (or use workflow convenience flag) to generate all supported data. +- **Brownfield Discovery**: Omit `config` to generate all supported data. --- @@ -84,10 +84,9 @@ events_and_notifications_config_generator/ | Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| -| `config` | dict | No | omitted | Module `config` dict. Wraps `component_specific_filters`. When omitted, all 8 component types are generated | +| `config` | dict | No | omitted | Module `config` dict. Must include `component_specific_filters` when provided. Omit to generate all 8 component types (full discovery) | | `file_path` | string | No | auto-generated | Output file path for generated YAML. Format when auto-generated: `events_and_notifications_playbook_config_.yml` | | `file_mode` | string | No | `overwrite` | File write mode: `overwrite` or `append` | -| `component_specific_filters` | dict | No | omitted | Legacy convenience key. Equivalent to `config.component_specific_filters` | ### Supported Components @@ -159,11 +158,7 @@ ansible-playbook -i ./inventory/demo_lab/hosts.yaml ./workflows/events_and_notif ### Generate Operations (state: gathered) -The playbook resolves the module `config` parameter using a 3-level priority chain: - -> **Priority 1 — `config:` key (preferred):** Pass the module config dict directly. -> **Priority 2 — `component_specific_filters:` key (legacy):** Convenience shorthand; auto-wrapped into `{component_specific_filters: ...}`. -> **Priority 3 — neither provided:** `config` is omitted; module retrieves all 8 component types. +Pass `config` with `component_specific_filters` for targeted export. Omit `config` entirely to trigger full discovery (all 8 component types). #### 1. Generate all events and notifications data @@ -171,7 +166,7 @@ Omit both `config` and `component_specific_filters` to trigger full discovery: ```yaml events_and_notifications_config: - - file_path: "/tmp/events_all_config.yml" + - file_path: "events_and_notifications_config/complete_config.yml" ``` **Validate:** @@ -206,18 +201,18 @@ Use `config.component_specific_filters` with `components_list: ["itsm_settings"] ### Example 1: Generate all events and notifications configurations -Omit `config` and `component_specific_filters` — module retrieves all 8 component types. +Omit `config` — module retrieves all 8 component types. ```yaml events_and_notifications_config: - - file_path: "/tmp/events_and_notifications_complete_config.yml" + - file_path: "events_and_notifications_config/complete_config.yml" ``` -### Example 2: Filter destination components (using `config:` key) +### Example 2: Filter destination components ```yaml events_and_notifications_config: - - file_path: "/tmp/events_notifications_destinations.yml" + - file_path: "events_and_notifications_config/destinations.yml" config: component_specific_filters: components_list: ["webhook_destinations", "email_destinations"] @@ -226,11 +221,11 @@ events_and_notifications_config: destination_types: ["webhook", "email"] ``` -### Example 3: Filter event subscription components (using `config:` key) +### Example 3: Filter event subscription components ```yaml events_and_notifications_config: - - file_path: "/tmp/events_notifications_subscriptions.yml" + - file_path: "events_and_notifications_config/subscriptions.yml" config: component_specific_filters: components_list: ["webhook_event_notifications", "email_event_notifications"] @@ -243,7 +238,7 @@ events_and_notifications_config: ```yaml events_and_notifications_config: - - file_path: "/tmp/events_notifications_itsm.yml" + - file_path: "events_and_notifications_config/itsm.yml" file_mode: append config: component_specific_filters: @@ -258,7 +253,7 @@ events_and_notifications_config: ```yaml events_and_notifications_config: - - file_path: "/tmp/events_notifications_combined.yml" + - file_path: "events_and_notifications_config/combined.yml" config: component_specific_filters: components_list: @@ -277,22 +272,11 @@ events_and_notifications_config: instance_names: ["ServiceNow-Prod"] ``` -### Example 6: Legacy `component_specific_filters` key (equivalent to Example 2) - -```yaml -events_and_notifications_config: - - file_path: "/tmp/events_notifications_legacy.yml" - component_specific_filters: - components_list: ["syslog_destinations", "snmp_destinations"] -``` - --- ## Notes -- Module `config` parameter is resolved by this workflow using a 3-level priority chain: - 1. `item.config` — preferred; pass the module config dict directly - 2. `item.component_specific_filters` — legacy convenience key; auto-wrapped into `{component_specific_filters: ...}` - 3. Neither provided — `config` is omitted; module generates all 8 component types +- Omit `config` entirely to run in full discovery mode (all 8 component types). +- When `config` is provided, `component_specific_filters` is mandatory. - When filter blocks (`destination_filters`, `notification_filters`, `itsm_filters`) are supplied, the module auto-adds the corresponding components to `components_list` if not already present. - Generated YAML files contain `***REDACTED***` placeholders for passwords. diff --git a/workflows/events_and_notifications_config_generator/playbook/events_and_notifications_config_generator.yml b/workflows/events_and_notifications_config_generator/playbook/events_and_notifications_config_generator.yml index 62dbfd0..175e679 100644 --- a/workflows/events_and_notifications_config_generator/playbook/events_and_notifications_config_generator.yml +++ b/workflows/events_and_notifications_config_generator/playbook/events_and_notifications_config_generator.yml @@ -60,14 +60,7 @@ state: "{{ state }}" file_path: "{{ item.file_path | default(omit) }}" file_mode: "{{ item.file_mode | default('overwrite') }}" - config: >- - {{ - item.config - if (item.config is defined and item.config is not none) - else {'component_specific_filters': item.component_specific_filters} - if (item.component_specific_filters is defined and item.component_specific_filters is not none) - else omit - }} + config: "{{ item.config | default(omit) }}" loop: "{{ events_and_notifications_config }}" when: - events_and_notifications_config is defined diff --git a/workflows/events_and_notifications_config_generator/schema/events_and_notifications_config_schema.yml b/workflows/events_and_notifications_config_generator/schema/events_and_notifications_config_schema.yml index b1f984b..77a2328 100644 --- a/workflows/events_and_notifications_config_generator/schema/events_and_notifications_config_schema.yml +++ b/workflows/events_and_notifications_config_generator/schema/events_and_notifications_config_schema.yml @@ -22,22 +22,19 @@ catalyst_center_config_verify: bool(required=False) --- # Events and Notifications Config Generator Entry Schema events_and_notifications_config_generator_type: - # Direct module config dict (preferred) - wraps component_specific_filters - config: include('events_and_notifications_config_type', required=False) - # Output file path for generated YAML file_path: str(required=False) # File write mode: overwrite or append file_mode: enum('overwrite', 'append', required=False) - # Legacy convenience key - component_specific_filters at item level - component_specific_filters: include('events_and_notifications_component_filters_type', required=False) + # Module config dict - omit to generate all 8 component types (full discovery) + config: include('events_and_notifications_config_type', required=False) --- # Module config dict schema (mirrors module's config parameter) events_and_notifications_config_type: - component_specific_filters: include('events_and_notifications_component_filters_type', required=False) + component_specific_filters: include('events_and_notifications_component_filters_type', required=True) --- # Events and Notifications Component Filters Schema diff --git a/workflows/events_and_notifications_config_generator/vars/events_and_notifications_config_inputs.yml b/workflows/events_and_notifications_config_generator/vars/events_and_notifications_config_inputs.yml index a5cbd19..9638159 100644 --- a/workflows/events_and_notifications_config_generator/vars/events_and_notifications_config_inputs.yml +++ b/workflows/events_and_notifications_config_generator/vars/events_and_notifications_config_inputs.yml @@ -16,12 +16,12 @@ events_and_notifications_config: # 1) Generate ALL events and notifications configurations (full discovery) # Omit config entirely → module retrieves all 8 component types # -------------------------------------------------------------------------- - - file_path: "/tmp/events_and_notifications_complete_config.yml" + - file_path: "events_and_notifications_config/complete_config.yml" # -------------------------------------------------------------------------- - # 2) Using the config: key (preferred) - filter destination components + # 2) Filter destination components # -------------------------------------------------------------------------- - - file_path: "/tmp/events_notifications_destinations.yml" + - file_path: "events_and_notifications_config/destinations.yml" config: component_specific_filters: components_list: @@ -37,9 +37,9 @@ events_and_notifications_config: - "email" # -------------------------------------------------------------------------- - # 3) Using the config: key - filter event notification subscriptions + # 3) Filter event notification subscriptions # -------------------------------------------------------------------------- - - file_path: "/tmp/events_notifications_subscriptions.yml" + - file_path: "events_and_notifications_config/subscriptions.yml" config: component_specific_filters: components_list: @@ -53,9 +53,9 @@ events_and_notifications_config: - "webhook" # -------------------------------------------------------------------------- - # 4) Using the config: key - ITSM settings with append mode + # 4) ITSM settings with append mode # -------------------------------------------------------------------------- - - file_path: "/tmp/events_notifications_itsm.yml" + - file_path: "events_and_notifications_config/itsm.yml" file_mode: "append" config: component_specific_filters: @@ -66,9 +66,9 @@ events_and_notifications_config: - "BMC-Remedy" # -------------------------------------------------------------------------- - # 5) Using the config: key - combined filters (dest + notifications + itsm) + # 5) Combined filters (destinations + notifications + ITSM) # -------------------------------------------------------------------------- - - file_path: "/tmp/events_notifications_combined.yml" + - file_path: "events_and_notifications_config/combined.yml" config: component_specific_filters: components_list: @@ -91,23 +91,13 @@ events_and_notifications_config: instance_names: - "ServiceNow-Prod" - # -------------------------------------------------------------------------- - # 6) Legacy convenience key - component_specific_filters at item level - # (equivalent to using config: key; both produce identical module calls) - # -------------------------------------------------------------------------- - - file_path: "/tmp/events_notifications_legacy.yml" - component_specific_filters: - components_list: - - "syslog_destinations" - - "snmp_destinations" - # ============================================================================ # Notes # ============================================================================ -# Priority chain for module config parameter: -# 1. item.config (preferred) - pass config dict directly -# 2. item.component_specific_filters (legacy convenience) - auto-wrapped -# 3. neither provided → omit config → module generates all 8 components -# When filter blocks are provided, the module auto-adds corresponding -# components to components_list if not already present. +# Omit config entirely to run in full discovery mode (all 8 component types). +# When config is provided, component_specific_filters is mandatory. +# When filter blocks (destination_filters, notification_filters, itsm_filters) +# are provided, the module auto-adds the corresponding components to +# components_list if not already present. +# Generated YAML files contain ***REDACTED*** placeholders for passwords. # ============================================================================