Metadata-Version: 2.4
Name: cz-common-pulumi
Version: 0.1.1
Summary: Shared code for CloudZero Pulumi projects.
Home-page: https://github.com/Cloudzero/cz-common-pulumi
Author: CloudZero
Author-email: support@cloudzero.com
License: UNLICENSED
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cz-common-python>=6.1.4
Requires-Dist: cz-common-tools>=1.2.3
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pulumi>=3.207.0
Requires-Dist: pulumi-command>=1.1.3
Requires-Dist: sumologic-sdk>=0.1.17
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: summary


# czpulumi

A shared Python library providing reusable Pulumi abstractions for managing Sumo Logic resources at CloudZero.

## Overview

cz-common-pulumi encapsulates common infrastructure patterns for Sumo Logic, including folder management (content, monitor, and SLO folders), app installations, permission enforcement, and API client utilities. Team Pulumi programs consume this library to share consistent infrastructure logic.

**Owner:** Team Nimbus (`@cloudzero/nimbus`)

## Installation

```bash
pip install cz-common-pulumi --extra-index-url <cloudzero-pypi-url>
```

## Quick Start

```python
from czpulumi.sumo_logic.folders import BaseFolder
from czpulumi.sumo_logic.program import BaseProgram

class MyProgram(BaseProgram):
    def run(self):
        folder = BaseFolder(
            name="my-team-folder",
            title="My Team Folder",
            description="Team content folder",
            parent_folder_id="<parent-id>",
        )
```

## Key Components

| Component | Purpose |
|-----------|---------|
| `BaseFolder` | Content folder with automatic permission grants |
| `BaseMonitorFolder` | Monitor folder |
| `BaseSLOFolder` | SLO folder |
| `SumoAppInstallResource` | Dynamic Pulumi resource for Sumo Logic app installations |
| `BaseProgram` | Abstract base class for consumer Pulumi programs |

## Development

```bash
git clone git@github.com:Cloudzero/cz-common-pulumi.git
cd cz-common-pulumi
git submodule update --init --recursive
pip install -r requirements-dev.txt
pytest -c pytest_unit.ini
```

## Documentation

- [Architecture](docs/project/ARCHITECTURE.md) — System design and component inventory
- [Usage Guide](docs/project/USAGE.md) — Development setup, workflows, and API reference
- [Testing Guide](docs/project/TESTING.md) — Test strategy and patterns
- [Capabilities](docs/project/CAPABILITIES.md) — Feature tracker
- [Changelog](docs/project/CHANGELOG.md) — Notable changes
- [Learnings](docs/project/LEARNINGS.md) — Project knowledge base
