Metadata-Version: 2.1
Name: flask-cloud-services
Version: 0.0.7
Summary: Cloud Services in Flask
Home-page: https://gitlab.com/terminus-zinobe/flask-cloud-services
Author: Terminus
Author-email: david.tabla@zinobe.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: boto3 (>=1.12.40)
Requires-Dist: flask (>=1.1.1)
Requires-Dist: requests (>=2.23.0)

# Cloud Services

PIP package to provide cloud services.

## Package installation
- Installation
    ```shell
    $ pip3 install flask-cloud-services
    ```

## Configuration

Define the following environment variables:

* (str) Provider. Allowed: [aws, ]

        CLOUD_SERVICES_PROVIDER=

Aws Config

* (str) Region. Example: 'us-west-2'

        CLOUD_SERVICES_AWS_REGION=

* (str) Credentials: Access Key.

        CLOUD_SERVICES_AWS_ACCESS_KEY=

* (str) Credentials: Secret Key.

        CLOUD_SERVICES_AWS_SECRET_KEY=

## How to use

### AWS Services

#### Notifications Channel

##### Subscribe and Listen Notifications

Define your route where you want listen the Notification Channel and you decorate it.

```python
from flask import Blueprint
from flask_cloud_services import notifications_listener

routes_bus = Blueprint('routes_bus', __name__)

@routes_bus.route('/notification-channel', methods=['GET', 'POST', 'PUT'])
@notifications_listener
def aws_sns(data_listener):
    any_topic_arn = "arn:aws:sns:us-west-2:test:test"
    if data_listener.topic_arn == any_topic_arn:
        pass # DO SOMETHING
```

##### Publish Events

If you want publish an event to specific channel,
you just must call the function `publish` send it
`topic_arn` and `message` encoded.

```python
from flask_cloud_services import notifications_publisher

result = notifications_publisher(
    topic_arn="arn:aws:sns:us-west-2:test:test",
    message="{\"data\": \"value\"}"
)
```

