# ansible-collections/ibm_zos_cics architecture

> Architecture diagram of the GitHub repository ansible-collections/ibm_zos_cics, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ansible-collections/ibm_zos_cics
- Repository: https://github.com/ansible-collections/ibm_zos_cics

## Overview

This Ansible collection automates CICS resource management through CMCI and provisions or stops standalone CICS regions. Its user workflow begins with an Ansible task, dispatches to a collection module, and returns results; provisioning additionally prepares region data sets and startup JCL before region startup. The README documents these capabilities and workflows. Sampled source confirms the auxiliary-data-set action dispatch and parts of CMCI and JCL handling; other module internals were not sampled, so their relationships are shown only where documented.

Main entry points: [`plugins/modules`](https://github.com/ansible-collections/ibm_zos_cics/tree/main/plugins/modules) (Resource tasks), [`plugins/modules/cmci_get.py`](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/cmci_get.py) (CMCI task modules), [`plugins/modules/region_jcl.py`](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/region_jcl.py) (Region JCL), [`plugins/modules/aux_temp_storage.py`](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/aux_temp_storage.py) (Aux temp storage)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cmci["CMCI resource management"]
  node_cmci_task["CMCI task modules<br/>[cmci_get.py]"]
  node_cmci_get["CMCI GET<br/>[cmci_get.py]"]
  node_cmci_create["CMCI create<br/>[cmci_create.py]"]
  node_cmci_update["CMCI update<br/>[cmci_update.py]"]
  node_cmci_delete["CMCI delete<br/>[cmci_delete.py]"]
  node_cmci_action["CMCI action<br/>[cmci_action.py]"]
end

subgraph group_resources["CICS resource modules"]
  node_resource_tasks["Resource tasks"]
  node_aux_temp["Aux temp storage"]
  node_aux_trace["Auxiliary trace<br/>[aux_trace.py]"]
  node_csd["CSD management<br/>[csd.py]"]
  node_global_catalog["Global catalog<br/>[global_catalog.py]"]
  node_local_catalog["Local catalog<br/>[local_catalog.py]"]
  node_request_queue["Local request queue"]
  node_td_intrapartition["TD intrapartition"]
  node_transaction_dump["Transaction dump"]
  node_aux_action["Aux temp action"]
end

subgraph group_provision["Region provisioning"]
  node_region_jcl["Region JCL<br/>[region_jcl.py]"]
  node_stop_region["Stop region<br/>[stop_region.py]"]
  node_stop_action["Stop action plugin<br/>[stop_region.py]"]
end

subgraph group_internal["Shared runtime"]
  node_cmci_client["CMCI client<br/>[cmci.py]"]
  node_jcl_helper["JCL renderer<br/>[_jcl_helper.py]"]
  node_dataset["Data-set operations<br/>[_data_set.py]"]
  node_action_dispatch["Data-set dispatcher"]
  node_aux_storage_utils["Aux storage helper"]
end

node_operator(("Ansible user"))
node_cics_api{{"CICS CMCI API"}}
node_provision_user(("System programmer"))
node_region_services{{"z/OS region services"}}

node_operator -->|"requests resource task"| node_cmci_task
node_cmci_task -.->|"uses CMCI"| node_cmci_client
node_cmci_client -->|"sends REST requests"| node_cics_api
node_operator -->|"requests CICS task"| node_resource_tasks
node_operator -->|"provisions region"| node_region_jcl
node_operator -->|"stops region"| node_stop_region
node_region_jcl -.->|"manages data sets"| node_dataset
node_region_jcl -->|"renders JCL"| node_jcl_helper
node_stop_region -.->|"dispatches stop"| node_stop_action
node_stop_action -->|"checks and stops region"| node_region_services
node_aux_action -->|"dispatches module"| node_action_dispatch
node_action_dispatch -->|"executes module"| node_aux_temp
node_aux_temp -->|"uses helper"| node_aux_storage_utils
node_resource_tasks -.->|"includes"| node_aux_temp
node_resource_tasks -.->|"includes"| node_aux_trace
node_resource_tasks -.->|"includes"| node_csd
node_resource_tasks -.->|"includes"| node_global_catalog
node_resource_tasks -.->|"includes"| node_local_catalog
node_resource_tasks -.->|"includes"| node_request_queue
node_resource_tasks -.->|"includes"| node_td_intrapartition
node_resource_tasks -.->|"includes"| node_transaction_dump
node_cmci_task -.->|"implements GET"| node_cmci_get
node_cmci_task -.->|"implements create"| node_cmci_create
node_cmci_task -.->|"implements update"| node_cmci_update
node_cmci_task -.->|"implements delete"| node_cmci_delete
node_cmci_task -.->|"implements action"| node_cmci_action

click node_cmci_task "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/cmci_get.py"
click node_cmci_get "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/cmci_get.py"
click node_cmci_create "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/cmci_create.py"
click node_cmci_update "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/cmci_update.py"
click node_cmci_delete "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/cmci_delete.py"
click node_cmci_action "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/cmci_action.py"
click node_cmci_client "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/module_utils/cmci.py"
click node_resource_tasks "https://github.com/ansible-collections/ibm_zos_cics/tree/main/plugins/modules"
click node_aux_temp "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/aux_temp_storage.py"
click node_aux_trace "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/aux_trace.py"
click node_csd "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/csd.py"
click node_global_catalog "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/global_catalog.py"
click node_local_catalog "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/local_catalog.py"
click node_request_queue "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/local_request_queue.py"
click node_td_intrapartition "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/td_intrapartition.py"
click node_transaction_dump "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/transaction_dump.py"
click node_region_jcl "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/region_jcl.py"
click node_jcl_helper "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/module_utils/_jcl_helper.py"
click node_dataset "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/module_utils/_data_set.py"
click node_stop_region "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/stop_region.py"
click node_stop_action "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/action/stop_region.py"
click node_aux_action "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/action/aux_temp_storage.py"
click node_action_dispatch "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/plugin_utils/_module_action_plugin.py"
click node_aux_storage_utils "https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/module_utils/_aux_temp_storage.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cmci_task,node_cmci_get,node_cmci_create,node_cmci_update,node_cmci_delete,node_cmci_action,node_operator toneBlue
class node_resource_tasks,node_aux_temp,node_aux_trace,node_csd,node_global_catalog,node_local_catalog,node_request_queue,node_td_intrapartition,node_transaction_dump,node_aux_action toneAmber
class node_region_jcl,node_stop_region,node_stop_action,node_cics_api toneMint
class node_cmci_client,node_jcl_helper,node_dataset,node_action_dispatch,node_aux_storage_utils toneRose
class node_provision_user,node_region_services toneIndigo
```

## Components

### CMCI resource management

- [CMCI task modules](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/cmci_get.py): `plugins/modules/cmci_get.py`
- [CMCI GET](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/cmci_get.py): `plugins/modules/cmci_get.py`
- [CMCI create](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/cmci_create.py): `plugins/modules/cmci_create.py`
- [CMCI update](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/cmci_update.py): `plugins/modules/cmci_update.py`
- [CMCI delete](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/cmci_delete.py): `plugins/modules/cmci_delete.py`
- [CMCI action](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/cmci_action.py): `plugins/modules/cmci_action.py`

### CICS resource modules

- [Resource tasks](https://github.com/ansible-collections/ibm_zos_cics/tree/main/plugins/modules): `plugins/modules`
- [Aux temp storage](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/aux_temp_storage.py): `plugins/modules/aux_temp_storage.py`
- [Auxiliary trace](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/aux_trace.py): `plugins/modules/aux_trace.py`
- [CSD management](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/csd.py): `plugins/modules/csd.py`
- [Global catalog](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/global_catalog.py): `plugins/modules/global_catalog.py`
- [Local catalog](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/local_catalog.py): `plugins/modules/local_catalog.py`
- [Local request queue](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/local_request_queue.py): `plugins/modules/local_request_queue.py`
- [TD intrapartition](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/td_intrapartition.py): `plugins/modules/td_intrapartition.py`
- [Transaction dump](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/transaction_dump.py): `plugins/modules/transaction_dump.py`
- [Aux temp action](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/action/aux_temp_storage.py): `plugins/action/aux_temp_storage.py`

### Region provisioning

- [Region JCL](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/region_jcl.py): `plugins/modules/region_jcl.py`
- [Stop region](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/modules/stop_region.py): `plugins/modules/stop_region.py`
- [Stop action plugin](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/action/stop_region.py): `plugins/action/stop_region.py`

### Shared runtime

- [CMCI client](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/module_utils/cmci.py): `plugins/module_utils/cmci.py`
- [JCL renderer](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/module_utils/_jcl_helper.py): `plugins/module_utils/_jcl_helper.py`
- [Data-set operations](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/module_utils/_data_set.py): `plugins/module_utils/_data_set.py`
- [Data-set dispatcher](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/plugin_utils/_module_action_plugin.py): `plugins/plugin_utils/_module_action_plugin.py`
- [Aux storage helper](https://github.com/ansible-collections/ibm_zos_cics/blob/main/plugins/module_utils/_aux_temp_storage.py): `plugins/module_utils/_aux_temp_storage.py`

### Other components

- **Ansible user**
- **CICS CMCI API**
- **System programmer**
- **z/OS region services**

## Connections

- Ansible user → CMCI task modules: requests resource task (evidence: `README.md`)
- CMCI task modules → CMCI client: uses CMCI
- CMCI client → CICS CMCI API: sends REST requests (evidence: `README.md`)
- Ansible user → Resource tasks: requests CICS task (evidence: `README.md`)
- Ansible user → Region JCL: provisions region (evidence: `README.md`)
- Ansible user → Stop region: stops region (evidence: `README.md`)
- Region JCL → Data-set operations: manages data sets
- Region JCL → JCL renderer: renders JCL (evidence: `plugins/modules/region_jcl.py`)
- Stop region → Stop action plugin: dispatches stop
- Stop action plugin → z/OS region services: checks and stops region (evidence: `README.md`)
- Aux temp action → Data-set dispatcher: dispatches module (evidence: `plugins/action/aux_temp_storage.py`)
- Data-set dispatcher → Aux temp storage: executes module (evidence: `plugins/plugin_utils/_module_action_plugin.py`)
- Aux temp storage → Aux storage helper: uses helper (evidence: `plugins/modules/aux_temp_storage.py`)
- Resource tasks → Aux temp storage: includes
- Resource tasks → Auxiliary trace: includes
- Resource tasks → CSD management: includes
- Resource tasks → Global catalog: includes
- Resource tasks → Local catalog: includes
- Resource tasks → Local request queue: includes
- Resource tasks → TD intrapartition: includes
- Resource tasks → Transaction dump: includes
- CMCI task modules → CMCI GET: implements GET (evidence: `plugins/modules/cmci_get.py`)
- CMCI task modules → CMCI create: implements create
- CMCI task modules → CMCI update: implements update
- CMCI task modules → CMCI delete: implements delete
- CMCI task modules → CMCI action: implements action
