AWSome
AWS Object Management Environment
Manage your AWS infrastructure as if it were composed of plain objects.
## Build Status [![Build](https://circleci.com/gh/fluidtrends/awsome.svg?style=svg)](https://circleci.com/gh/fluidtrends/awsome)
[![Coverage](https://api.codeclimate.com/v1/badges/bcf4dae241b12298574c/test_coverage)](https://codeclimate.com/github/fluidtrends/awsome/test_coverage)
[![Maintainability](https://api.codeclimate.com/v1/badges/bcf4dae241b12298574c/maintainability)](https://codeclimate.com/github/fluidtrends/awsome/maintainability)
[![Style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com)
## Getting Started
Make your AWS credentials available in the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables and then just import AWSome to get started.
```javascript
// Import AWSome
const awsome = require('awsome')
// Create a new bucket instance
const bucket = new awsome.Bucket({ name: 'my-test-bucket' })
// Fetch the bucket data
bucket.retrieve()
.then((data) => {
// Good stuff, enjoy the data
})
.catch((error) => {
// Something happened and the bucket data could not be retrieved
})
```
## Examples
Get started with the examples provided to **create**, **retrieve**, **update** or **delete** buckets and to **host**, **unhost** domains as well as to **link** and **unlink** domains and buckets. Make sure you have your AWS key and secret ready.
```bash
node ./node_modules/awsome/examples key= secret= example=create-bucket
```
The supported examples are:
* [```create-bucket``` Creating a bucket](https://github.com/fluidtrends/awsome/blob/master/examples/create-bucket.js)
* [```retrieve-bucket``` Retrieving a bucket](https://github.com/fluidtrends/awsome/blob/master/examples/retrieve-bucket.js)
* [```update-bucket``` Updating a bucket](https://github.com/fluidtrends/awsome/blob/master/examples/update-bucket.js)
* [```delete-bucket``` Deleting a bucket](https://github.com/fluidtrends/awsome/blob/master/examples/delete-bucket.js)
* [```host-domain``` Hosting a domain](https://github.com/fluidtrends/awsome/blob/master/examples/host-domain.js)
* [```unhost-domain``` Unhosting a domain](https://github.com/fluidtrends/awsome/blob/master/examples/unhost-domain.js)
* [```link-bucket``` Linking bucket to a domain](https://github.com/fluidtrends/awsome/blob/master/examples/link-bucket.js)
* [```unlink-bucket``` Unlinking a bucket from a domain](https://github.com/fluidtrends/awsome/blob/master/examples/unlink-bucket.js)
[See All The Examples](/examples)
## Tutorials
There is a detailed [Getting Started](tutorials/start) tutorial that you can read to set your AWS account up, to install and to start using AWSome right away.
Have a look at [all the tutorials available](tutorials) to make the most of AWSsome.
## Documentation
AWSome is very well documented and all objects, options, fields and functions are well explained and they all include examples.
Read the full documentation for detailed instructions on how to create, retrieve, update and delete buckets, including site buckets, host and unhost domains and link and unlink domains and buckets.
[Read The Docs](/docs)
## Contributing
We'd be glad to have you join us as an AWSome Contributor. Get started by reading our Contributor Guide.
[Read The Contributor Guide](/contrib)
## Dependencies
AWSome makes use of the following libraries:
* [aws sdk](https://github.com/aws/aws-sdk-js) - for AWS calls
* [cross-env](https://github.com/kentcdodds/cross-env) - for running examples
* [fs-extra](https://github.com/jprichardson/node-fs-extra) - for file management
* [walk](https://github.com/Daplie/node-walk) - for file tree walking
* [uuid](https://github.com/kelektiv/node-uuid) - for generating hosted zone references
* [tldjs](https://github.com/oncletom/tld.js) - for parsing domain names
* [savor](https://github.com/fluidtrends/savor) - for testing
## License
AWSome is licensed under the MIT License.
* [Read The License](LICENSE)
## Sponsors
AWSome is sponsored by [Fluid Trends](http://fluidtrends.com) and is part of the Fluid Trends Open Source Lab.
If you'd like to co-sponsor this project, please email your co-sponsorship request to **team at fluidtrends.com**