%global _empty_manifest_terminate_build 0
Name: python-cdk-budget-notifier
Version: 0.3.28
Release: 1
Summary: A simple AWS budget notifier.
License: Apache-2.0
URL: https://github.com/stefanfreitag/cdk-budget-notifier.git
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/66/e7/324c9665e9dafd43c4eacec6b650516412a1286142c5084cc2d936a688d3/cdk-budget-notifier-0.3.28.tar.gz
BuildArch: noarch
Requires: python3-aws-cdk-lib
Requires: python3-constructs
Requires: python3-jsii
Requires: python3-publication
Requires: python3-typeguard
%description
# AWS Budget Notifier
Setup a AWS Budget notification using AWS Cloud Development Kit (CDK).
The construct supports notifying to
* users via e-mail. Up to 10 e-mail addresses are supported
* an SNS topic
The SNS topic needs to exist and publishing to the topic needs to be allowed.
## Properties
[API.md](API.md)
## Example usages
### Notification on breaching forecasted cost
This example is handy for keeping control over your private AWS Bill.
For myself I aim to not spent more than 10 Euro / 10 USD per month and this alarm
reminds me.
```python
const app = new cdk.App();
const stack = new Stack(app, "BudgetNotifierStack");
// Define the SNS topic and setup the resource policy
const topic = new Topic(stack, "topic");
const statement = new PolicyStatement({
effect: Effect.ALLOW,
principals: [new ServicePrincipal("budgets.amazonaws.com")],
actions: ["SNS:Publish"],
sid: "Allow budget to publish to SNS"
});
topic.addToResourcePolicy(statement);
// Setup the budget notifier and pass the ARN of the SNS topic
new BudgetNotifier(stack, "notifier", {
topicArn: topic.topicArn,
// Filter on the availability zone `eu-central-1`
availabilityZones: ["eu-central-1"],
costCenter: "myCostCenter",
// Limit and unit defining the budget limit
limit: 10,
unit: "USD",
// When breaching the threshold of 85% of the 10 USD notifications will be send out.
threshold: 85,
notificationType: NotificationType.FORECASTED,
});
```
### Notification via e-Mail
As alternative to the notification via SNS you can specify a list of e-mail
recipients.
```python
const app = new cdk.App();
const stack = new Stack(app, "BudgetNotifierStack");
new BudgetNotifier(stack, 'notifier', {
recipients: ['john.doe@foo.bar'],
// Filter on the availability zone `eu-central-1`
availabilityZones: ['eu-central-1'],
costCenter: 'MyCostCenter',
// Limit and unit defining the budget limit
limit: 10,
unit: 'USD',
// When breaching the threshold of 85% of the 10 USD notifications will be send out.
threshold: 85,
notificationType: NotificationType.FORECASTED,
});
```
## Contributions
## Links
* [AWS Cloud Development Kit (CDK)](https://github.com/aws/aws-cdk)
* [Cost Explorer filters](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-filtering.html)
%package -n python3-cdk-budget-notifier
Summary: A simple AWS budget notifier.
Provides: python-cdk-budget-notifier
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-cdk-budget-notifier
# AWS Budget Notifier
Setup a AWS Budget notification using AWS Cloud Development Kit (CDK).
The construct supports notifying to
* users via e-mail. Up to 10 e-mail addresses are supported
* an SNS topic
The SNS topic needs to exist and publishing to the topic needs to be allowed.
## Properties
[API.md](API.md)
## Example usages
### Notification on breaching forecasted cost
This example is handy for keeping control over your private AWS Bill.
For myself I aim to not spent more than 10 Euro / 10 USD per month and this alarm
reminds me.
```python
const app = new cdk.App();
const stack = new Stack(app, "BudgetNotifierStack");
// Define the SNS topic and setup the resource policy
const topic = new Topic(stack, "topic");
const statement = new PolicyStatement({
effect: Effect.ALLOW,
principals: [new ServicePrincipal("budgets.amazonaws.com")],
actions: ["SNS:Publish"],
sid: "Allow budget to publish to SNS"
});
topic.addToResourcePolicy(statement);
// Setup the budget notifier and pass the ARN of the SNS topic
new BudgetNotifier(stack, "notifier", {
topicArn: topic.topicArn,
// Filter on the availability zone `eu-central-1`
availabilityZones: ["eu-central-1"],
costCenter: "myCostCenter",
// Limit and unit defining the budget limit
limit: 10,
unit: "USD",
// When breaching the threshold of 85% of the 10 USD notifications will be send out.
threshold: 85,
notificationType: NotificationType.FORECASTED,
});
```
### Notification via e-Mail
As alternative to the notification via SNS you can specify a list of e-mail
recipients.
```python
const app = new cdk.App();
const stack = new Stack(app, "BudgetNotifierStack");
new BudgetNotifier(stack, 'notifier', {
recipients: ['john.doe@foo.bar'],
// Filter on the availability zone `eu-central-1`
availabilityZones: ['eu-central-1'],
costCenter: 'MyCostCenter',
// Limit and unit defining the budget limit
limit: 10,
unit: 'USD',
// When breaching the threshold of 85% of the 10 USD notifications will be send out.
threshold: 85,
notificationType: NotificationType.FORECASTED,
});
```
## Contributions
## Links
* [AWS Cloud Development Kit (CDK)](https://github.com/aws/aws-cdk)
* [Cost Explorer filters](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-filtering.html)
%package help
Summary: Development documents and examples for cdk-budget-notifier
Provides: python3-cdk-budget-notifier-doc
%description help
# AWS Budget Notifier
Setup a AWS Budget notification using AWS Cloud Development Kit (CDK).
The construct supports notifying to
* users via e-mail. Up to 10 e-mail addresses are supported
* an SNS topic
The SNS topic needs to exist and publishing to the topic needs to be allowed.
## Properties
[API.md](API.md)
## Example usages
### Notification on breaching forecasted cost
This example is handy for keeping control over your private AWS Bill.
For myself I aim to not spent more than 10 Euro / 10 USD per month and this alarm
reminds me.
```python
const app = new cdk.App();
const stack = new Stack(app, "BudgetNotifierStack");
// Define the SNS topic and setup the resource policy
const topic = new Topic(stack, "topic");
const statement = new PolicyStatement({
effect: Effect.ALLOW,
principals: [new ServicePrincipal("budgets.amazonaws.com")],
actions: ["SNS:Publish"],
sid: "Allow budget to publish to SNS"
});
topic.addToResourcePolicy(statement);
// Setup the budget notifier and pass the ARN of the SNS topic
new BudgetNotifier(stack, "notifier", {
topicArn: topic.topicArn,
// Filter on the availability zone `eu-central-1`
availabilityZones: ["eu-central-1"],
costCenter: "myCostCenter",
// Limit and unit defining the budget limit
limit: 10,
unit: "USD",
// When breaching the threshold of 85% of the 10 USD notifications will be send out.
threshold: 85,
notificationType: NotificationType.FORECASTED,
});
```
### Notification via e-Mail
As alternative to the notification via SNS you can specify a list of e-mail
recipients.
```python
const app = new cdk.App();
const stack = new Stack(app, "BudgetNotifierStack");
new BudgetNotifier(stack, 'notifier', {
recipients: ['john.doe@foo.bar'],
// Filter on the availability zone `eu-central-1`
availabilityZones: ['eu-central-1'],
costCenter: 'MyCostCenter',
// Limit and unit defining the budget limit
limit: 10,
unit: 'USD',
// When breaching the threshold of 85% of the 10 USD notifications will be send out.
threshold: 85,
notificationType: NotificationType.FORECASTED,
});
```
## Contributions
## Links
* [AWS Cloud Development Kit (CDK)](https://github.com/aws/aws-cdk)
* [Cost Explorer filters](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-filtering.html)
%prep
%autosetup -n cdk-budget-notifier-0.3.28
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-cdk-budget-notifier -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Tue May 30 2023 Python_Bot - 0.3.28-1
- Package Spec generated