# Aws Provider

## Input

| name                  | description                                                                                                                    | default        |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------ | -------------- |
| aws_access_key        | your aws access-key                                                                                                            |                |
| aws_secret_key        | your aws secret-key                                                                                                            |                |
| aws_as_backend        | you can use aws s3 as backend state storage                                                                                    | False          |
| aws_region            | in case of backend usage                                                                                                       | "eu-central-1" |
| aws_bucket            | in case of backend usage, the bucket your state is stored in. the url is S3://{aws_bucket}/{aws_bucket_key}/{aws_account_name} |                |
| aws_bucket_key        |                                                                                                                                | {module}       |
| aws_account_name      |                                                                                                                                | {stage}        |
| aws_bucket_kms_key_id | in case of backend usage, kms key for encrypting your state                                                                    |                |

### Credentials Mapping defaults
#### without a defined provider

```python
[
]
```

## Example Usage
### build.py

```python
from os import environ
from pybuilder.core import task, init
from ddadevops import *

name = 'my-project'
MODULE = 'my-module'
PROJECT_ROOT_PATH = '..'

@init
def initialize(project):
    project.build_depends_on("ddadevops>=4.0.0")

    input = {
        "credentials_mapping": [],
        "name": name,
        "module": MODULE,
        "name": name,
        "module": MODULE,
        "stage": environ["STAGE"],
        "project_root_path": PROJECT_ROOT_PATH,
        "build_types": ["TERRAFORM"],
        "mixin_types": [],
        "tf_provider_types": ["AWS"],
        "tf_use_workspace": False,
        "tf_terraform_semantic_version": "1.4.2",
        "aws_as_backend": True,
        "aws_bucket": "your-configuration",
        "aws_bucket_kms_key_id": "your-kms-key-id",
    }

    build = DevopsTerraformBuild(project, config)
    build.initialize_build_dir()


@task
def plan(project):
    build = get_devops_build(project)
    build.plan()


@task
def apply(project):
    build = get_devops_build(project)
    build.apply(True)


@task
def destroy(project):
    build = get_devops_build(project)
    build.destroy()


@task
def tf_import(project):
    build = get_devops_build(project)
    build.tf_import(
        "terraform.resource", "providers id"
    )
```

### call the build

```bash
pyb image plan apply destroy
```