# cloudaux-lite
[![Version](http://img.shields.io/pypi/v/cloudaux-lite.svg?style=flat)](https://pypi.python.org/pypi/cloudaux-lite/)
## Special Note: This is a slimmed-down fork of Netflix-Skunkworks/cloudaux
The original source for [CloudAux](https://github.org/Netflix-Skunkworks/cloudaux) is mostly not supported and contains a lot of code that has breaking changes with updates to boto over time.
It also contained support for non-AWS cloud providers which have breaking library changes over time as well. This fork removes all the problematic components and non-supported components to make this library
only consist of AWS support for the following very simple things:
1. Decorator for STS role assumption
2. Decorator for pagination
3. The CloudAux object
### What was removed?
This fork removed the following components:
* All things non AWS, like GCP, Azure, and OpenStack
* The orchestration logic
* The `iter_account_region` decorator
* The `rate_limited` decorator
The primary things left are:
* The `sts_conn` decorator
* The `pagination` decorator
* The `CloudAux` class
If you use the above 3 things only, then this is a drop-in replacement. The imports and everything are exactly the same. Simply `pip install cloudaux-lite` instead of `cloudaux` and you should be good to go!
## Older support?
If you have a need to supporting the older CloudAux stuff, then continue using the Netflix cloudaux package version < 2.
## Features
- Intelligent connection caching.
- Handles pagination for certain client methods.
- Multi-account sts:assumerole abstraction.
## Install
pip install cloudaux-lite
### AWS Example
# Using the CloudAux class
from cloudaux import CloudAux
CloudAux.go('kms.client.list_aliases', **conn_details)
ca = CloudAux(**conn_details)
ca.call('kms.client.list_aliases')
# directly asking for a boto3 connection:
from cloudaux.aws.sts import boto3_cached_conn
conn = boto3_cached_conn('ec2', **conn_details)
# Over your entire environment:
from cloudaux.decorators import iter_account_region
accounts = ['000000000000', '111111111111']
conn_details = {
'assume_role': 'MyRole',
'session_name': 'MySession',
'conn_type': 'boto3'
}
# If you want your role to be read-only, you can assume your role and add the read_only flag to connection details
# to inherit the AWS ReadOnlyAccess policy. This flag defaults to False
# The permissions from the role being assumed will be limited to Read and List only
conn_details = {
'account_number': '111111111111',
'assume_role': 'MyRole',
'session_name': 'MySession',
'region': 'us-east-1',
'read_only': True
}
Raw data
{
"_id": null,
"home_page": "https://github.com/mikegrima/cloudaux-lite",
"name": "cloudaux-lite",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "The Cloudaux Developers",
"author_email": "mike.r.grima@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/23/5e/3b9a4228723b108cf8981e8cf7caffb5a40909e4903460506ce4430387aa/cloudaux-lite-1.0.0.tar.gz",
"platform": null,
"description": "# cloudaux-lite\n\n[![Version](http://img.shields.io/pypi/v/cloudaux-lite.svg?style=flat)](https://pypi.python.org/pypi/cloudaux-lite/)\n\n## Special Note: This is a slimmed-down fork of Netflix-Skunkworks/cloudaux\nThe original source for [CloudAux](https://github.org/Netflix-Skunkworks/cloudaux) is mostly not supported and contains a lot of code that has breaking changes with updates to boto over time.\nIt also contained support for non-AWS cloud providers which have breaking library changes over time as well. This fork removes all the problematic components and non-supported components to make this library\nonly consist of AWS support for the following very simple things:\n\n1. Decorator for STS role assumption\n2. Decorator for pagination\n3. The CloudAux object\n\n### What was removed?\nThis fork removed the following components:\n\n* All things non AWS, like GCP, Azure, and OpenStack\n* The orchestration logic\n* The `iter_account_region` decorator\n* The `rate_limited` decorator \n\nThe primary things left are:\n* The `sts_conn` decorator\n* The `pagination` decorator\n* The `CloudAux` class\n\nIf you use the above 3 things only, then this is a drop-in replacement. The imports and everything are exactly the same. Simply `pip install cloudaux-lite` instead of `cloudaux` and you should be good to go!\n\n## Older support?\nIf you have a need to supporting the older CloudAux stuff, then continue using the Netflix cloudaux package version < 2.\n\n## Features\n\n - Intelligent connection caching.\n - Handles pagination for certain client methods.\n - Multi-account sts:assumerole abstraction.\n\n## Install\n\n pip install cloudaux-lite\n\n### AWS Example\n\n # Using the CloudAux class\n from cloudaux import CloudAux\n CloudAux.go('kms.client.list_aliases', **conn_details)\n\n ca = CloudAux(**conn_details)\n ca.call('kms.client.list_aliases')\n\n # directly asking for a boto3 connection:\n from cloudaux.aws.sts import boto3_cached_conn\n conn = boto3_cached_conn('ec2', **conn_details)\n\n # Over your entire environment:\n from cloudaux.decorators import iter_account_region\n\n accounts = ['000000000000', '111111111111']\n\n conn_details = {\n 'assume_role': 'MyRole',\n 'session_name': 'MySession',\n 'conn_type': 'boto3'\n }\n\n # If you want your role to be read-only, you can assume your role and add the read_only flag to connection details\n # to inherit the AWS ReadOnlyAccess policy. This flag defaults to False\n # The permissions from the role being assumed will be limited to Read and List only\n conn_details = {\n 'account_number': '111111111111',\n 'assume_role': 'MyRole',\n 'session_name': 'MySession',\n 'region': 'us-east-1',\n 'read_only': True\n }\n\n\n\n",
"bugtrack_url": null,
"license": "",
"summary": "Cloud Auxiliary (lite) is a python wrapper and orchestration module for interacting with cloud providers",
"version": "1.0.0",
"project_urls": {
"Homepage": "https://github.com/mikegrima/cloudaux-lite"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "950594021979157bb8a4060036904d678bc8380ed9dffef93043ea94e3ab03fd",
"md5": "cbac83db22944cefe26f79ecdd8d3d00",
"sha256": "ab321e63ca2eb660ae08f3e15b223d9138f7741d692e706628d48b5642814429"
},
"downloads": -1,
"filename": "cloudaux_lite-1.0.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "cbac83db22944cefe26f79ecdd8d3d00",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 11758,
"upload_time": "2023-05-30T20:22:21",
"upload_time_iso_8601": "2023-05-30T20:22:21.364422Z",
"url": "https://files.pythonhosted.org/packages/95/05/94021979157bb8a4060036904d678bc8380ed9dffef93043ea94e3ab03fd/cloudaux_lite-1.0.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "235e3b9a4228723b108cf8981e8cf7caffb5a40909e4903460506ce4430387aa",
"md5": "d1e17989af9a9a6881bd224684a082eb",
"sha256": "691dd92638aa6642e467fe818c2a677709cc268870ab079be27ef7d206cbc3dd"
},
"downloads": -1,
"filename": "cloudaux-lite-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "d1e17989af9a9a6881bd224684a082eb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12520,
"upload_time": "2023-05-30T20:22:23",
"upload_time_iso_8601": "2023-05-30T20:22:23.098685Z",
"url": "https://files.pythonhosted.org/packages/23/5e/3b9a4228723b108cf8981e8cf7caffb5a40909e4903460506ce4430387aa/cloudaux-lite-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-30 20:22:23",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mikegrima",
"github_project": "cloudaux-lite",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"tox": true,
"lcname": "cloudaux-lite"
}