Metadata-Version: 2.4
Name: cloud-billing
Version: 0.1.25
Summary: Multi-cloud billing data retrieval SDK for Alibaba Cloud, AWS, Azure, and Huawei Cloud with unified API
Author-email: Kai Yang <kaiyang939325@gmail.com>
License-Expression: GPL-3.0-or-later
Project-URL: Homepage, https://github.com/visionary-future/cloud-billing
Project-URL: Repository, https://github.com/visionary-future/cloud-billing
Project-URL: Issues, https://github.com/visionary-future/cloud-billing/issues
Keywords: cloud,billing,alibaba-cloud,aws,azure,huawei-cloud,cost-management,finops
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Office/Business :: Financial
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aliyun-python-sdk-core<3.0.0,>=2.16.0
Requires-Dist: boto3<2.0.0,>=1.35.0
Requires-Dist: huaweicloudsdkbss<4.0.0,>=3.1.0
Requires-Dist: huaweicloudsdkcore<4.0.0,>=3.1.0
Requires-Dist: pydantic<3.0.0,>=2.11.7
Requires-Dist: requests>=2.31.0
Requires-Dist: requests-toolbelt<2.0.0,>=1.0.0
Requires-Dist: python-dateutil<3.0.0,>=2.9.0.post0
Provides-Extra: dev
Requires-Dist: build>=1.2.0; extra == "dev"
Requires-Dist: twine>=6.0.0; extra == "dev"
Provides-Extra: saas
Requires-Dist: fastapi>=0.117.0; extra == "saas"
Requires-Dist: uvicorn>=0.34.0; extra == "saas"
Requires-Dist: python-multipart>=0.0.20; extra == "saas"
Dynamic: license-file

# Cloud Billing

![Python Version](https://img.shields.io/badge/python-3.10%20|%203.11%20|%203.12-blue)
![Tests](https://github.com/Visionary-Future/cloud-billing/actions/workflows/pytest.yml/badge.svg)

A comprehensive Python package for fetching billing information from Alibaba Cloud, AWS, Azure, and Huawei Cloud.

## Supported Cloud Providers

- **Alibaba Cloud** - Complete billing data retrieval with Kubernetes billing support
- **AWS** - Cost and usage data from AWS Cost Explorer
- **Azure** - Billing information from Azure Cost Management
- **Huawei Cloud** - Monthly bill summary from Huawei BSS API

## Key Features

- 🌐 **Multi-cloud support** - Unified interface for multiple cloud providers
- 📊 **Comprehensive billing data** - Detailed cost and usage information
- 🔧 **Easy integration** - Simple Python API for all cloud providers
- 📝 **Type safety** - Full type hints with Pydantic models
- 🧪 **Well tested** - Comprehensive test suite

## Quick Start

Install the package:

```bash
pip install cloud-billing
```

Get billing data from Alibaba Cloud:

```python
from cloud_billing.alibaba_cloud import AlibabaCloudClient

client = AlibabaCloudClient(
    access_key_id="your_access_key",
    access_key_secret="your_secret_key",
    region_id="cn-hangzhou"
)

billing_data = client.fetch_instance_bill_by_billing_cycle(
    billing_cycle="2024-01"
)
```

Get cost data from AWS:

```python
from cloud_billing.aws_cloud import AWSCloudClient

client = AWSCloudClient(
    access_key_id="your_access_key",
    secret_access_key="your_secret_key",
)

cost_data = client.get_cost_and_usage(
    time_period={"Start": "2024-01-01", "End": "2024-02-01"},
    granularity="MONTHLY",
    group_by=[{"Type": "DIMENSION", "Key": "SERVICE"}],
)
```

Get monthly bill from Huawei Cloud:

```python
from cloud_billing.huawei_cloud import HuaweiCloudClient

client = HuaweiCloudClient(
    access_key="your_access_key",
    secret_key="your_secret_key",
    domain_id="your_domain_id",
)

bill_items, error = client.query_monthly_bill_summary(bill_cycle="2024-01")
```

## License

This project is licensed under the GPL-3.0-or-later License - see the [LICENSE](https://github.com/visionary-future/cloud-billing/blob/main/LICENSE) file for details.
