Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions .chglog/CHANGELOG.tpl.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{{ if .Versions -}}
<a name="unreleased"></a>
## [Unreleased]
{{ if .Unreleased.CommitGroups -}}
{{ range .Unreleased.CommitGroups -}}
### {{ .Title }}
{{ range .Commits -}}
- {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
{{ end }}
{{ end -}}
{{ else }}
{{ range .Unreleased.Commits -}}
- {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
{{ end }}
{{ end -}}
{{ end -}}

{{ range .Versions }}
<a name="{{ .Tag.Name }}"></a>
## {{ if .Tag.Previous }}[{{ .Tag.Name }}]{{ else }}{{ .Tag.Name }}{{ end }} - {{ datetime "2006-01-02" .Tag.Date }}
{{ if .CommitGroups -}}
{{ range .CommitGroups -}}
### {{ .Title }}
{{ range .Commits -}}
- {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
{{ end }}
{{ end -}}
{{ else }}
{{ range .Commits -}}
- {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
{{ end }}
{{ end -}}

{{- if .NoteGroups -}}
{{ range .NoteGroups -}}
### {{ .Title }}
{{ range .Notes }}
{{ .Body }}
{{ end }}
{{ end -}}
{{ end -}}
{{ end -}}

{{- if .Versions }}
[Unreleased]: {{ .Info.RepositoryURL }}/compare/{{ $latest := index .Versions 0 }}{{ $latest.Tag.Name }}...HEAD
{{ range .Versions -}}
{{ if .Tag.Previous -}}
[{{ .Tag.Name }}]: {{ $.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }}
{{ end -}}
{{ end -}}
{{ end -}}
10 changes: 10 additions & 0 deletions .chglog/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
style: github
template: CHANGELOG.tpl.md
info:
title: CHANGELOG
repository_url: https://github.com/terraform-aws-modules/terraform-aws-sns
options:
header:
pattern: "^(.*)$"
pattern_maps:
- Subject
6 changes: 3 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
repos:
- repo: git://github.com/antonbabenko/pre-commit-terraform
rev: v1.7.1
rev: v1.12.0
hooks:
- id: terraform_fmt
- id: terraform_docs
# - id: terraform_docs
- repo: git://github.com/pre-commit/pre-commit-hooks
rev: v1.2.3
rev: v2.2.3
hooks:
- id: check-merge-conflict
47 changes: 47 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<a name="unreleased"></a>
## [Unreleased]



<a name="v2.0.0"></a>
## [v2.0.0] - 2019-01-18

- Merge pull request [#2](https://github.com/terraform-aws-modules/terraform-aws-sns/issues/2) from kazufumi-nishida-www/patch-1
- Fix markdown link format


<a name="v1.1.0"></a>
## [v1.1.0] - 2018-05-16

- Added pre-commit hook to autogenerate terraform-docs


<a name="v1.0.0"></a>
## [v1.0.0] - 2018-03-12

- Fixed and release
- Merge pull request [#1](https://github.com/terraform-aws-modules/terraform-aws-sns/issues/1) from mhd999/feat/sns-topic
- Fix: checkout vars.tf
- Feat: add license file and fix minor issue
- Fix: resolve review comments
- Feat: update README file
- Feat: basic sns topic setup


<a name="v0.0.2"></a>
## [v0.0.2] - 2017-09-26



<a name="v0.0.1"></a>
## v0.0.1 - 2017-09-26

- Initial commit
- Initial commit


[Unreleased]: https://github.com/terraform-aws-modules/terraform-aws-sns/compare/v2.0.0...HEAD
[v2.0.0]: https://github.com/terraform-aws-modules/terraform-aws-sns/compare/v1.1.0...v2.0.0
[v1.1.0]: https://github.com/terraform-aws-modules/terraform-aws-sns/compare/v1.0.0...v1.1.0
[v1.0.0]: https://github.com/terraform-aws-modules/terraform-aws-sns/compare/v0.0.2...v1.0.0
[v0.0.2]: https://github.com/terraform-aws-modules/terraform-aws-sns/compare/v0.0.1...v0.0.2
7 changes: 7 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.PHONY: changelog release

changelog:
git-chglog -o CHANGELOG.md --next-tag `semtag final -s minor -o`

release:
semtag final -s minor
15 changes: 13 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,35 @@ This type of resources are supported:

* [SNS topic](https://www.terraform.io/docs/providers/aws/r/sns_topic.html)

## Terraform versions

Terraform 0.12. Pin module version to `~> v2.0`. Submit pull-requests to `master` branch.

Terraform 0.11. Pin module version to `~> v1.0`. Submit pull-requests to `terraform011` branch.

## Usage

```hcl
module "sns_topic" {
source = "terraform-aws-modules/sns/aws"
source = "terraform-aws-modules/sns/aws"
version = "~> 2.0"

name = "my-topic"
}
```

## Examples

* [Complete SNS topics](https://github.com/terraform-aws-modules/terraform-aws-sns/tree/master/examples/complete)

<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|:----:|:-----:|:-----:|
| create_sns_topic | Whether to create the SNS topic | string | `true` | no |
| sns_topic_name | The name of the SNS topic to create | string | - | yes |
| name | The name of the SNS topic to create | string | - | yes |

## Outputs

Expand Down
19 changes: 19 additions & 0 deletions examples/complete/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Complete SNS topic example

Configuration in this directory creates SNS topics.

## Usage

To run this example you need to execute:

```bash
$ terraform init
$ terraform plan
$ terraform apply
```

Note that this example may create resources which cost money. Run `terraform destroy` when you don't need these resources.

<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->

<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
27 changes: 27 additions & 0 deletions examples/complete/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
provider "aws" {
region = "eu-west-1"
}

resource "aws_kms_key" "this" {}

module "users_unencrypted" {
source = "../../"

name = "users-unencrypted"

tags = {
Secure = "false"
}
}

module "users_encrypted" {
source = "../../"

name_prefix = "users-encrypted-"
display_name = "users-encrypted"
kms_master_key_id = aws_kms_key.this.id

tags = {
Secure = "true"
}
}
9 changes: 9 additions & 0 deletions examples/complete/outputs.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
output "users_unencrypted_this_sns_topic_arn" {
description = "The ARN of the SNS topic"
value = module.users_unencrypted.this_sns_topic_arn
}

output "users_encrypted_this_sns_topic_arn" {
description = "The ARN of the SNS topic"
value = module.users_encrypted.this_sns_topic_arn
}
24 changes: 22 additions & 2 deletions main.tf
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
resource "aws_sns_topic" "this" {
count = "${var.create_sns_topic}"
count = var.create_sns_topic ? 1 : 0

name = "${var.sns_topic_name}"
name = var.name
name_prefix = var.name_prefix

display_name = var.display_name
policy = var.policy
delivery_policy = var.delivery_policy
application_success_feedback_role_arn = var.application_success_feedback_role_arn
application_success_feedback_sample_rate = var.application_success_feedback_sample_rate
application_failure_feedback_role_arn = var.application_failure_feedback_role_arn
http_success_feedback_role_arn = var.http_success_feedback_role_arn
http_success_feedback_sample_rate = var.http_success_feedback_sample_rate
http_failure_feedback_role_arn = var.http_failure_feedback_role_arn
lambda_success_feedback_role_arn = var.lambda_success_feedback_role_arn
lambda_success_feedback_sample_rate = var.lambda_success_feedback_sample_rate
lambda_failure_feedback_role_arn = var.lambda_failure_feedback_role_arn
sqs_success_feedback_role_arn = var.sqs_success_feedback_role_arn
sqs_success_feedback_sample_rate = var.sqs_success_feedback_sample_rate
sqs_failure_feedback_role_arn = var.sqs_failure_feedback_role_arn
kms_master_key_id = var.kms_master_key_id

tags = var.tags
}
2 changes: 1 addition & 1 deletion output.tf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
output "this_sns_topic_arn" {
description = "ARN of SNS topic"
value = "${element(concat(aws_sns_topic.this.*.arn, list("")), 0)}"
value = element(concat(aws_sns_topic.this.*.arn, [""]), 0)
}
113 changes: 112 additions & 1 deletion variables.tf
Original file line number Diff line number Diff line change
@@ -1,8 +1,119 @@
variable "create_sns_topic" {
description = "Whether to create the SNS topic"
type = bool
default = true
}

variable "sns_topic_name" {
variable "name" {
description = "The name of the SNS topic to create"
type = string
default = null
}

variable "name_prefix" {
description = "The prefix name of the SNS topic to create"
type = string
default = null
}

variable "display_name" {
description = "The display name for the SNS topic"
type = string
default = null
}

variable "policy" {
description = "The fully-formed AWS policy as JSON"
type = string
default = null
}

variable "delivery_policy" {
description = "The SNS delivery policy"
type = string
default = null
}

variable "application_success_feedback_role_arn" {
description = "The IAM role permitted to receive success feedback for this topic"
type = string
default = null
}

variable "application_success_feedback_sample_rate" {
description = "Percentage of success to sample"
type = string
default = null
}

variable "application_failure_feedback_role_arn" {
description = "IAM role for failure feedback"
type = string
default = null
}

variable "http_success_feedback_role_arn" {
description = "The IAM role permitted to receive success feedback for this topic"
type = string
default = null
}

variable "http_success_feedback_sample_rate" {
description = "Percentage of success to sample"
type = string
default = null
}

variable "http_failure_feedback_role_arn" {
description = "IAM role for failure feedback"
type = string
default = null
}

variable "lambda_success_feedback_role_arn" {
description = "The IAM role permitted to receive success feedback for this topic"
type = string
default = null
}

variable "lambda_success_feedback_sample_rate" {
description = "Percentage of success to sample"
type = string
default = null
}

variable "lambda_failure_feedback_role_arn" {
description = "IAM role for failure feedback"
type = string
default = null
}

variable "sqs_success_feedback_role_arn" {
description = "The IAM role permitted to receive success feedback for this topic"
type = string
default = null
}

variable "sqs_success_feedback_sample_rate" {
description = "Percentage of success to sample"
type = string
default = null
}

variable "sqs_failure_feedback_role_arn" {
description = "IAM role for failure feedback"
type = string
default = null
}

variable "kms_master_key_id" {
description = "The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK"
type = string
default = null
}

variable "tags" {
description = "A mapping of tags to assign to all resources"
type = map(string)
default = {}
}