|
5 | 5 | # |
6 | 6 |
|
7 | 7 | # Name of this project |
8 | | -name: terraform-example-module |
| 8 | +name: terraform-aws-api-gateway |
| 9 | + |
| 10 | +# Tags of this project |
| 11 | +tags: |
| 12 | + - terraform |
| 13 | + - terraform-modules |
| 14 | + - api-gateway |
| 15 | + - rest-api |
| 16 | +# Categories of this project |
| 17 | +categories: |
| 18 | + - terraform-modules/api-gateway |
9 | 19 |
|
10 | 20 | # Logo for this project |
11 | 21 | #logo: docs/logo.png |
12 | 22 |
|
13 | 23 | # License of this project |
14 | 24 | license: "APACHE2" |
15 | 25 |
|
16 | | -# Copyrights |
17 | | -copyrights: |
18 | | - - name: "Cloud Posse, LLC" |
19 | | - url: "https://cloudposse.com" |
20 | | - year: "2020" |
21 | | - |
22 | 26 | # Canonical GitHub repo |
23 | | -github_repo: cloudposse/terraform-example-module |
| 27 | +github_repo: cloudposse/terraform-aws-api-gateway |
24 | 28 |
|
25 | 29 | # Badges to display |
26 | 30 | badges: |
27 | 31 | - name: "Latest Release" |
28 | | - image: "https://img.shields.io/github/release/cloudposse/terraform-example-module.svg" |
29 | | - url: "https://github.com/cloudposse/terraform-example-module/releases/latest" |
| 32 | + image: "https://img.shields.io/github/release/cloudposse/terraform-api-gateway-platform.svg" |
| 33 | + url: "https://github.com/cloudposse/terraform-api-gateway-platform/releases/latest" |
30 | 34 | - name: "Slack Community" |
31 | 35 | image: "https://slack.cloudposse.com/badge.svg" |
32 | 36 | url: "https://slack.cloudposse.com" |
33 | | - - name: "Discourse Forum" |
34 | | - image: "https://img.shields.io/discourse/https/ask.sweetops.com/posts.svg" |
35 | | - url: "https://ask.sweetops.com/" |
36 | 37 |
|
37 | | -# List any related terraform modules that this module may be used with or that this module depends on. |
38 | 38 | related: |
39 | | - - name: "terraform-null-label" |
40 | | - description: "Terraform module designed to generate consistent names and tags for resources. Use terraform-null-label to implement a strict naming convention." |
41 | | - url: "https://github.com/cloudposse/terraform-null-label" |
42 | | - |
43 | | -# List any resources helpful for someone to get started. For example, link to the hashicorp documentation or AWS documentation. |
44 | | -references: |
45 | | - - name: "Terraform Standard Module Structure" |
46 | | - description: "HashiCorp's standard module structure is a file and directory layout we recommend for reusable modules distributed in separate repositories." |
47 | | - url: "https://www.terraform.io/docs/modules/index.html#standard-module-structure" |
48 | | - - name: "Terraform Module Requirements" |
49 | | - description: "HashiCorp's guidance on all the requirements for publishing a module. Meeting the requirements for publishing a module is extremely easy." |
50 | | - url: "https://www.terraform.io/docs/registry/modules/publish.html#requirements" |
51 | | - - name: "Terraform `random_integer` Resource" |
52 | | - description: "The resource random_integer generates random values from a given range, described by the min and max attributes of a given resource." |
53 | | - url: "https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/integer" |
54 | | - - name: "Terraform Version Pinning" |
55 | | - description: "The required_version setting can be used to constrain which versions of the Terraform CLI can be used with your configuration" |
56 | | - url: "https://www.terraform.io/docs/configuration/terraform.html#specifying-a-required-terraform-version" |
| 39 | + - name: "terraform-yaml-config" |
| 40 | + description: |
| 41 | + "Terraform module to convert local and remote YAML configuration templates into Terraform lists and maps" |
| 42 | + url: "https://github.com/cloudposse/terraform-yaml-config" |
57 | 43 |
|
58 | 44 | # Short description of this project |
59 | 45 | description: |- |
60 | | - This is `terraform-example-module` project provides all the scaffolding for a typical well-built Cloud Posse module. It's a template repository you can |
61 | | - use when creating new repositories. |
| 46 | + Terraform module to provision API Gatway resources. |
| 47 | +
|
| 48 | + The root module creates an API Gateway [REST API](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-rest-api.html) |
| 49 | + along with configuring tracing, logging, and metrics. |
| 50 | +
|
| 51 | + The module also consists of the following submodules: |
| 52 | +
|
| 53 | + - [account-settings](modules/account-settings) - to provision account-level settings for logging and metrics for API Gateway |
| 54 | + ``` |
62 | 55 |
|
63 | | -# Introduction to the project |
64 | 56 | #introduction: |- |
65 | | -# This is an introduction. |
66 | 57 |
|
67 | | -# How to use this module. Should be an easy example to copy and paste. |
| 58 | +references: |
| 59 | + - name: "API Gateway CloudWatch Logging" |
| 60 | + description: |
| 61 | + "To enable CloudWatch Logs, you must grant API Gateway permission to read and write logs to CloudWatch for your |
| 62 | + account." |
| 63 | + url: "https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-logging.html" |
| 64 | + |
| 65 | + - name: "Create a monitor" |
| 66 | + description: "Create datadog monitors" |
| 67 | + url: "https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor" |
| 68 | + |
| 69 | + - name: "Terraform Datadog role resources" |
| 70 | + description: "Provides a Datadog role resource. Used to create and manage Datadog roles" |
| 71 | + url: "https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/role" |
| 72 | + |
| 73 | + - name: "Datadog permissions" |
| 74 | + description: |
| 75 | + "Use this data source to retrieve the list of Datadog permissions by name and their corresponding ID, for use in |
| 76 | + the role resource" |
| 77 | + url: "https://registry.terraform.io/providers/DataDog/datadog/latest/docs/data-sources/permissions" |
| 78 | + |
| 79 | + - name: "Role Based Access Control" |
| 80 | + description: |
| 81 | + "Roles categorize users and define what account permissions those users have, such as what data they can read or |
| 82 | + what account assets they can modify" |
| 83 | + url: "https://docs.datadoghq.com/account_management/rbac" |
| 84 | + |
| 85 | + - name: "Managing Multiple-Organization Accounts" |
| 86 | + description: |
| 87 | + "It is possible to manage multiple child-organizations from one parent-organization account. This is typically |
| 88 | + used by Managed Service Providers that have customers which should not have access to each others' data" |
| 89 | + url: "https://docs.datadoghq.com/account_management/multi_organization" |
| 90 | + |
| 91 | +# How to use this project |
68 | 92 | usage: |- |
69 | | - For a complete example, see [examples/complete](examples/complete). |
70 | | - |
71 | | - For automated tests of the complete example using [bats](https://github.com/bats-core/bats-core) and [Terratest](https://github.com/gruntwork-io/terratest) |
72 | | - (which tests and deploys the example on AWS), see [test](test). |
| 93 | +
|
| 94 | + Setup the account-level settings for logging and metrics for API Gateway: |
73 | 95 |
|
74 | 96 | ```hcl |
75 | | - module "example" { |
76 | | - source = "https://github.com/cloudposse/terraform-example-module.git?ref=master" |
77 | | - example = "Hello world!" |
| 97 | + module "api_gateway_account_settgings" { |
| 98 | + source = "cloudposse/api-gateway/aws//modules/account-settings" |
| 99 | + # version = "x.x.x" |
| 100 | +
|
| 101 | + context = module.this.context |
78 | 102 | } |
79 | 103 | ``` |
80 | 104 |
|
81 | | -# Example usage |
82 | 105 | examples: |- |
83 | | - Here is an example of using this module: |
84 | | - - [`examples/complete`](https://github.com/cloudposse/terraform-example-module/) - complete example of using this module |
85 | | -
|
86 | | -# How to get started quickly |
87 | | -#quickstart: |- |
88 | | -# Here's how to get started... |
| 106 | + Review the [examples](examples) folder to see how to use the API Gateway modules. |
89 | 107 |
|
90 | | -# Other files to include in this README from the project folder |
91 | 108 | include: |
92 | 109 | - "docs/targets.md" |
93 | 110 | - "docs/terraform.md" |
94 | 111 |
|
95 | 112 | # Contributors to this project |
96 | 113 | contributors: |
97 | | - - name: "Erik Osterman" |
98 | | - github: "osterman" |
| 114 | + - name: "Matt Calhoun" |
| 115 | + github: "mcalhoun" |
0 commit comments