SNS supports custom delivery policies when using HTTP/S. In the example above, we use default policy that AWS creates for new topics. The only difference is maxDelayTarget which has default value 20, was changed to 30 for testing.
Details for customizing the policy are here: https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html#creating-delivery-policy
For HTTP delivery policy, you may also provide two IAM role ARNs. These ARNs (created outside of this module) allow SNS to send logs to cloudwatch for success and failure deliveries.
Feedback roles should be created as trust policy below
If creating a FIFO Topic with message_retention_period set, you will have to unset this variable via an apply
with message_retention_period set to null before you can destroy the topic.
To delete a topic with an archive policy, you must first deactivate the archive policy as previously described.
{"treedata":{"name":"root","toggled":true,"children":[{"name":".circleci","children":[{"name":"config.yml","path":".circleci/config.yml","sha":"0f20b1aeee35e40105995318a3673f9de7dce60a"},{"name":"post-upgrade-test-results.sh","path":".circleci/post-upgrade-test-results.sh","sha":"a4867e8fbdc334b7a90259568ee41ea577fbe764"},{"name":"set-upgrade-test-vars.sh","path":".circleci/set-upgrade-test-vars.sh","sha":"a4325dc9a27331b96e6beab4ce9b1f0ce4e31dff"}]},{"name":".github","children":[{"name":"ISSUE_TEMPLATE","children":[{"name":"bug_report.md","path":".github/ISSUE_TEMPLATE/bug_report.md","sha":"d2e87e27c601e423865ed660ec697082470ca60f"},{"name":"feature_request.md","path":".github/ISSUE_TEMPLATE/feature_request.md","sha":"023a33099be2336476930c96e17ff1ba5dc55348"}]},{"name":"pull_request_template.md","path":".github/pull_request_template.md","sha":"6b100e40e323b5b07f40ed30616277c51c9f4b9e"}]},{"name":".gitignore","path":".gitignore","sha":"1b13a3bf1f1425e2e779cbf1a40a88e74a24f57b"},{"name":".pre-commit-config.yaml","path":".pre-commit-config.yaml","sha":"1d8f329691fa148e29c9f4b1628b118d253d94a3"},{"name":"CODEOWNERS","path":"CODEOWNERS","sha":"3bc8a8c8ee6e939522f988c5407a5d62b2d4ac26"},{"name":"LICENSE.txt","path":"LICENSE.txt","sha":"947b78a929481a192a688dbcd8aef5e959102397"},{"name":"README.md","path":"README.md","sha":"aee4ffa5875881a7308befe61a08dcdd3e62ecd2"},{"name":"examples","children":[{"name":"kinesis-firehose","children":[{"name":"README.md","path":"examples/kinesis-firehose/README.md","sha":"63a635a255416c679c6923066e710cb0ebc4c48b"},{"name":"main.tf","path":"examples/kinesis-firehose/main.tf","sha":"a3066e551d63f28b29c7e993ac7521c2e3f0230e"},{"name":"outputs.tf","path":"examples/kinesis-firehose/outputs.tf","sha":"2d2f21ce3b128f4128501eb8baca321edd265b40"},{"name":"vars.tf","path":"examples/kinesis-firehose/vars.tf","sha":"c2db039403ad41d8dc4a9f76f01977ac8afab322"}]},{"name":"kinesis","children":[{"name":"README.md","path":"examples/kinesis/README.md","sha":"a10663a758592a4001140edd7eff20d1dcf64b36"},{"name":"main.tf","path":"examples/kinesis/main.tf","sha":"b1538aa291b260b64aea6b429200033822e6c4d9"},{"name":"outputs.tf","path":"examples/kinesis/outputs.tf","sha":"952a5cf88e478992ff28c5774e8f37217f89d296"},{"name":"variables.tf","path":"examples/kinesis/variables.tf","sha":"f80fdeed4e088f648533e1f0b0aee590710b5e95"}]},{"name":"msk-serverless","children":[{"name":"README.md","path":"examples/msk-serverless/README.md","sha":"6af235e4cfa4afd19d919742748ffa53b053f572"},{"name":"main.tf","path":"examples/msk-serverless/main.tf","sha":"59a618443c467071b87f036292c29f503054aed2"},{"name":"outputs.tf","path":"examples/msk-serverless/outputs.tf","sha":"12fee8ee670f50d82a4fa6e93d74cedad8cce3e0"},{"name":"variables.tf","path":"examples/msk-serverless/variables.tf","sha":"96901f971338ff0a67749068057acd0bddc42646"}]},{"name":"msk-tiered-storage","children":[{"name":"README.md","path":"examples/msk-tiered-storage/README.md","sha":"daaced8743acbabc4e7b2231d74cb782a67669fb"},{"name":"main.tf","path":"examples/msk-tiered-storage/main.tf","sha":"4b78009056e330699b467aed8839561e0149a1cb"},{"name":"outputs.tf","path":"examples/msk-tiered-storage/outputs.tf","sha":"af52b0aa83770a269a0948b58b358ecca3fc01a9"},{"name":"variables.tf","path":"examples/msk-tiered-storage/variables.tf","sha":"25397bcdfb81ce9077348ae17981dbc7eacf1539"}]},{"name":"msk-with-iam-auth","children":[{"name":"README.md","path":"examples/msk-with-iam-auth/README.md","sha":"6af235e4cfa4afd19d919742748ffa53b053f572"},{"name":"main.tf","path":"examples/msk-with-iam-auth/main.tf","sha":"12a64f83e90f2ff23eb4aff455562d9fe4cade3d"},{"name":"outputs.tf","path":"examples/msk-with-iam-auth/outputs.tf","sha":"ef6b634e22db3e19f2e7848a0a0410c2f7f72035"},{"name":"user-data","children":[{"name":"user-data.sh","path":"examples/msk-with-iam-auth/user-data/user-data.sh","sha":"37084170a864f40703074f41d8237b02940ae003"}]},{"name":"variables.tf","path":"examples/msk-with-iam-auth/variables.tf","sha":"34206410a50c7ba3c6e3934607a32de923b392f9"}]},{"name":"sns-sqs-connection","children":[{"name":"README.md","path":"examples/sns-sqs-connection/README.md","sha":"9ab1842aef0a29fd9df9d9895052b8b008e92628"},{"name":"main.tf","path":"examples/sns-sqs-connection/main.tf","sha":"7670d37614681fe4e59aa353e8cc69572bfb443a"},{"name":"outputs.tf","path":"examples/sns-sqs-connection/outputs.tf","sha":"cbe0132f92c314bf95992232cd4e733102e7b08c"},{"name":"variables.tf","path":"examples/sns-sqs-connection/variables.tf","sha":"00a1de12b64b2f8f54ab6f8029a6269ebf1c9b17"}]},{"name":"sns","children":[{"name":"README.md","path":"examples/sns/README.md","sha":"d20e499ef9e61789460c42b65d84698cba354ffe"},{"name":"main.tf","path":"examples/sns/main.tf","sha":"dba59be72cc16ed8ef18522db692abf8e5570b27"},{"name":"outputs.tf","path":"examples/sns/outputs.tf","sha":"4f3fdd7d70805e7c7520730b598dca452785ecc5"},{"name":"variables.tf","path":"examples/sns/variables.tf","sha":"2570453ca049efe8c975f15d972abd8f921e9a77"}]},{"name":"sqs-lambda-connection","children":[{"name":"README.md","path":"examples/sqs-lambda-connection/README.md","sha":"a93b874b1b91e8a08d5f3728537038a0ec8bfaa2"},{"name":"main.tf","path":"examples/sqs-lambda-connection/main.tf","sha":"c4d23d3c65d16061d7cfd7ddf4317ea4ccd62997"},{"name":"outputs.tf","path":"examples/sqs-lambda-connection/outputs.tf","sha":"ba567af0da54eb835d5ce7c7e63aff8ed554d5c1"},{"name":"sqs-process","children":[{"name":"index.py","path":"examples/sqs-lambda-connection/sqs-process/index.py","sha":"dc030ea073e067cf2dc43e18d090f583bde29293"}]},{"name":"variables.tf","path":"examples/sqs-lambda-connection/variables.tf","sha":"1bb3e543e10679ee00fa52f125f34eb40e8cccf4"}]},{"name":"sqs","children":[{"name":"dead-letter-queue","children":[{"name":"README.md","path":"examples/sqs/dead-letter-queue/README.md","sha":"afb19a5c1926f3cc1192151c7d8ee1851da5bd7f"},{"name":"main.tf","path":"examples/sqs/dead-letter-queue/main.tf","sha":"b5207d5f9e1c44054b9e5042901c8a11e3d1ff96"},{"name":"outputs.tf","path":"examples/sqs/dead-letter-queue/outputs.tf","sha":"b3d13e984797fab06aeae8abfd599b2a0f12d9f8"},{"name":"variables.tf","path":"examples/sqs/dead-letter-queue/variables.tf","sha":"9b7fdb5dd19661c154ee515d97da55f839770ae7"}]},{"name":"fifo-queue-with-encryption","children":[{"name":"README.md","path":"examples/sqs/fifo-queue-with-encryption/README.md","sha":"56fcb9edfe2c4befd84fb31109598845ab48ba74"},{"name":"main.tf","path":"examples/sqs/fifo-queue-with-encryption/main.tf","sha":"c42c2524f61ec8730b0dc192f04beefc50d99efe"},{"name":"outputs.tf","path":"examples/sqs/fifo-queue-with-encryption/outputs.tf","sha":"b3d13e984797fab06aeae8abfd599b2a0f12d9f8"},{"name":"variables.tf","path":"examples/sqs/fifo-queue-with-encryption/variables.tf","sha":"7155c480e6a99e1d998ec9a222e2d16378d90ce3"}]},{"name":"no-dead-letter-queue","children":[{"name":"README.md","path":"examples/sqs/no-dead-letter-queue/README.md","sha":"23a010877a28dbbed0ff2c1de54b7886f6db66e8"},{"name":"main.tf","path":"examples/sqs/no-dead-letter-queue/main.tf","sha":"f452e1e8706c7d6a7041bd13061a03ff64f05074"},{"name":"outputs.tf","path":"examples/sqs/no-dead-letter-queue/outputs.tf","sha":"e2961511ac23997e4f3e2cd8991559ffdbe10ac0"},{"name":"variables.tf","path":"examples/sqs/no-dead-letter-queue/variables.tf","sha":"a59eb9bc6c66d8a4bf9d9e4d418e78c21035d67b"}]}]}]},{"name":"modules","children":[{"name":"kinesis-firehose","children":[{"name":"README.md","path":"modules/kinesis-firehose/README.md","sha":"646b8bd78f910e71be3ce87f901c0bd51d27a3b8"},{"name":"main.tf","path":"modules/kinesis-firehose/main.tf","sha":"5df7b08a42aa449fd1075bf5e253ae566ab2e001"},{"name":"outputs.tf","path":"modules/kinesis-firehose/outputs.tf","sha":"291ffbe53d2134c703fe6393d57804bb95cdd4a9"},{"name":"vars.tf","path":"modules/kinesis-firehose/vars.tf","sha":"beff58e1741f6348957c4dfd68249381f47d0c9c"}]},{"name":"kinesis","children":[{"name":"README.md","path":"modules/kinesis/README.md","sha":"4a600af2539f758ab9caa3f404c967afea036c8d"},{"name":"main.tf","path":"modules/kinesis/main.tf","sha":"f5da37dc8cc7bc4a3b6b4cbd823713b5c08d87dd"},{"name":"outputs.tf","path":"modules/kinesis/outputs.tf","sha":"6a03e228332416c46f03acf869a1e364ca901c32"},{"name":"variables.tf","path":"modules/kinesis/variables.tf","sha":"66a28b150ea67757c31c52624724446edf5289e2"}]},{"name":"msk","children":[{"name":"README.md","path":"modules/msk/README.md","sha":"0ea023f7c0676eb66b7a1fd6144a0c2f6947e577"},{"name":"main.tf","path":"modules/msk/main.tf","sha":"5962019c0a892bac6af5bce755064a0c09154c44"},{"name":"outputs.tf","path":"modules/msk/outputs.tf","sha":"ac5465c3811228b04cfd03a18b1fb7e2142958e0"},{"name":"variables.tf","path":"modules/msk/variables.tf","sha":"728d8b4e296ea603353e5a4997f39d1956af5748"}]},{"name":"sns-sqs-connection","children":[{"name":"README.md","path":"modules/sns-sqs-connection/README.md","sha":"b4f86c6463caf238a8ab01fbf87bad3ba2f10b2f"},{"name":"main.tf","path":"modules/sns-sqs-connection/main.tf","sha":"b301639d9802bace005e41bc596d9914264f4fd9"},{"name":"outputs.tf","path":"modules/sns-sqs-connection/outputs.tf","sha":"f771fdc188025b64ef0219d4a1d8389d67a7c780"},{"name":"variables.tf","path":"modules/sns-sqs-connection/variables.tf","sha":"384c82e9679a0d5844aec4ad44aa671acac72503"}]},{"name":"sns","children":[{"name":"README.md","path":"modules/sns/README.md","sha":"7c154e8af0034b7dbc5825c57c07656df5f4a997","toggled":true},{"name":"main.tf","path":"modules/sns/main.tf","sha":"c18eb2de9a0d594de21beb861ef5965bd70cc134"},{"name":"outputs.tf","path":"modules/sns/outputs.tf","sha":"b187ff24e06f69c9d92e412cafbd05c11734f033"},{"name":"variables.tf","path":"modules/sns/variables.tf","sha":"8a8ac91e642cd367eee8d84eccad3c166664d3fb"}],"toggled":true},{"name":"sqs-lambda-connection","children":[{"name":"README.md","path":"modules/sqs-lambda-connection/README.md","sha":"4a5c2d28641c9d5600c13d13f23d37f0401f41e8"},{"name":"main.tf","path":"modules/sqs-lambda-connection/main.tf","sha":"20932dea0a4dbfae31928295246893986f72b831"},{"name":"outputs.tf","path":"modules/sqs-lambda-connection/outputs.tf","sha":"1776f39a27d6502062aab149ab8c831251875fad"},{"name":"variables.tf","path":"modules/sqs-lambda-connection/variables.tf","sha":"43ac7496926f6fb3ce22348f9f8bac40339bfb9a"}]},{"name":"sqs","children":[{"name":"README.md","path":"modules/sqs/README.md","sha":"c5d450a5bcf2e7c2d131ae0e4ba607b8745372e0"},{"name":"main.tf","path":"modules/sqs/main.tf","sha":"17ca9bfc6de1b5478c3bb68a03db69054001ff4b"},{"name":"outputs.tf","path":"modules/sqs/outputs.tf","sha":"e1d941e64d321ac3f6f36ff7fa8f8c4d07ffe6c5"},{"name":"variables.tf","path":"modules/sqs/variables.tf","sha":"9f50555e07318eac2a8aab9f3ff82b04bd7d4ffa"}]}],"toggled":true},{"name":"terraform-cloud-enterprise-private-module-registry-placeholder.tf","path":"terraform-cloud-enterprise-private-module-registry-placeholder.tf","sha":"ae586c0fe830819580e1009d41a9074f16e65bed"},{"name":"test","children":[{"name":"README.md","path":"test/README.md","sha":"031cdc06d155eff31f9c5648a1c92ee5fb816ea0"},{"name":"common.go","path":"test/common.go","sha":"f8574c59bb96494db5d644cdeb7d01735195dd3e"},{"name":"go.mod","path":"test/go.mod","sha":"9179500054e96a98377cd6bf49caccb02290df80"},{"name":"go.sum","path":"test/go.sum","sha":"7ef564d3e21815e6fabf3796378b8f14fa19a25e"},{"name":"kinesis_firehose_test.go","path":"test/kinesis_firehose_test.go","sha":"8d5041f4fecfead619bdaf6d458867b60977e5c7"},{"name":"kinesis_test.go","path":"test/kinesis_test.go","sha":"8d6e1f2efe46e6ba374b7f84a4c2427cf9496ad2"},{"name":"msk_serverless_test.go","path":"test/msk_serverless_test.go","sha":"66b1d0048f3e8d8941c326de100fe5e87cf5d73a"},{"name":"msk_test.go","path":"test/msk_test.go","sha":"44bdef31e1cda2eb209937bc605da28d333d5332"},{"name":"msk_tiered_storage_test.go","path":"test/msk_tiered_storage_test.go","sha":"77f7ff0e6e9c8f310dc6bc5efebf94591747a1dd"},{"name":"sns_sqs_connection_test.go","path":"test/sns_sqs_connection_test.go","sha":"4d3886c2f311837a515814053e9781abcb8567a1"},{"name":"sns_test.go","path":"test/sns_test.go","sha":"0f817301ce6102993752dea1fe5dde9b29c5fdeb"},{"name":"sqs_dead_letter_queue_test.go","path":"test/sqs_dead_letter_queue_test.go","sha":"fb338072c1da0e4b9f4af835428bf640da040252"},{"name":"sqs_encrypted_fifo_queue_test.go","path":"test/sqs_encrypted_fifo_queue_test.go","sha":"d54f013c4ecb9f685a4aea19aeab8455025d52b5"},{"name":"sqs_lambda_connection_test.go","path":"test/sqs_lambda_connection_test.go","sha":"db4af174857be14359692c1d001939fff76e6632"},{"name":"sqs_standard_test.go","path":"test/sqs_standard_test.go","sha":"7d54c5085ba793d6ec55bf5083382b5bb66bede9"},{"name":"terratest_options.go","path":"test/terratest_options.go","sha":"3e47c5021909080a0567172a85f9167620d6e993"},{"name":"upgrades","children":[{"name":"upgrade_test.go","path":"test/upgrades/upgrade_test.go","sha":"6bd8072cfb37593a0c75fe649307ac3a8dfb72ef"}]},{"name":"validation","children":[{"name":"validate_all_modules_and_examples_test.go","path":"test/validation/validate_all_modules_and_examples_test.go","sha":"33d73c385b64c4fc870033e99427e683c31dc45a"}]}]}]},"detailsContent":"<h1 class=\"preview__body--title\" id=\"simple-notification-service-sns-topic-module\">Simple Notification Service (SNS) Topic Module</h1><div class=\"preview__body--border\"></div><p>This module makes it easy to deploy a SNS topic along with the publisher and subscriber policies for the topic.</p>\n<h2 class=\"preview__body--subtitle\" id=\"how-do-you-use-this-module\">How do you use this module?</h2>\n<ul>\n<li>See the <a href=\"/repos/v0.12.5/package-messaging/README.md\" class=\"preview__body--description--blue\">root README</a> for instructions on using Terraform modules.</li>\n<li>See the <a href=\"/repos/v0.12.5/package-messaging/examples\" class=\"preview__body--description--blue\">examples</a> folder for example usage.</li>\n<li>See <a href=\"/repos/v0.12.5/package-messaging/modules/sns/variables.tf\" class=\"preview__body--description--blue\">variables.tf</a> for all the variables you can set on this module.</li>\n</ul>\n<p>Here is an example of how you might deploy an SNS topic with this module:</p>\n<pre>module <span class=\"hljs-string\">\"sns\"</span> {\n <span class=\"hljs-attr\">source</span> = <span class=\"hljs-string\">\"git::git@github.com:gruntwork-io/terraform-aws-messaging.git//modules/sns?ref=vx.y.z\"</span>\n\n <span class=\"hljs-attr\">name</span> = <span class=\"hljs-string\">\"my-topic\"</span>\n <span class=\"hljs-attr\">display_name</span> = <span class=\"hljs-string\">\"my-display\"</span>\n <span class=\"hljs-attr\">allow_publish_accounts</span> = [\n <span class=\"hljs-string\">\"arn:aws:iam::123456789012:user/Bill\"</span>,\n <span class=\"hljs-string\">\"arn:aws:iam::123456789012:user/Ted\"</span>\n ]\n\n <span class=\"hljs-attr\">allow_subscribe_accounts</span> = [\n <span class=\"hljs-string\">\"arn:aws:iam::123456789012:user/AbeLincoln\"</span>\n ]\n\n <span class=\"hljs-attr\">allow_subscribe_protocols</span> = [\n <span class=\"hljs-string\">\"https\"</span>\n ]\n\n <span class=\"hljs-attr\">allow_publish_services</span> = [\n <span class=\"hljs-string\">\"events.amazonaws.com\"</span>,\n <span class=\"hljs-string\">\"rds.amazonaws.com\"</span>\n ]\n \n <span class=\"hljs-attr\">delivery_policy</span> = <<EOF\n {\n <span class=\"hljs-string\">\"http\"</span>: {\n <span class=\"hljs-string\">\"defaultHealthyRetryPolicy\"</span>: {\n <span class=\"hljs-string\">\"minDelayTarget\"</span>: <span class=\"hljs-number\">20</span>,\n <span class=\"hljs-string\">\"maxDelayTarget\"</span>: <span class=\"hljs-number\">30</span>,\n <span class=\"hljs-string\">\"numRetries\"</span>: <span class=\"hljs-number\">3</span>,\n <span class=\"hljs-string\">\"numMaxDelayRetries\"</span>: <span class=\"hljs-number\">0</span>,\n <span class=\"hljs-string\">\"numNoDelayRetries\"</span>: <span class=\"hljs-number\">0</span>,\n <span class=\"hljs-string\">\"numMinDelayRetries\"</span>: <span class=\"hljs-number\">0</span>,\n <span class=\"hljs-string\">\"backoffFunction\"</span>: <span class=\"hljs-string\">\"linear\"</span>\n },\n <span class=\"hljs-string\">\"disableSubscriptionOverrides\"</span>: <span class=\"hljs-literal\">false</span>\n }\n }\n EOF\n}\n\n <span class=\"hljs-attr\">http_success_feedback_role_arn</span> = arn:aws:iam::<span class=\"hljs-number\">1234567890</span>:role/HTTPSuccessFeedbackRole\n <span class=\"hljs-attr\">http_failure_feedback_role_arn</span> = arn:aws:iam::<span class=\"hljs-number\">1234567890</span>:role/HTTPFailureFeedbackRole\n</pre>\n<h3 class=\"preview__body--subtitle\" id=\"delivery-policy\">Delivery policy</h3>\n<p>SNS supports custom delivery policies when using HTTP/S. In the example above, we use default policy that AWS creates for new topics. The only difference is <code>maxDelayTarget</code> which has default value 20, was changed to 30 for testing.</p>\n<p>Details for customizing the policy are here: https://docs.aws.amazon.com/sns/latest/dg/sns-message-delivery-retries.html#creating-delivery-policy</p>\n<p>For HTTP delivery policy, you may also provide two IAM role ARNs. These ARNs (created outside of this module) allow SNS to send logs to cloudwatch for success and failure deliveries.</p>\n<p>Feedback roles should be created as trust policy below</p>\n<pre>{\n <span class=\"hljs-attr\">\"Version\"</span>: <span class=\"hljs-string\">\"2012-10-17\"</span>,\n <span class=\"hljs-attr\">\"Statement\"</span>: [\n {\n <span class=\"hljs-attr\">\"Effect\"</span>: <span class=\"hljs-string\">\"Allow\"</span>,\n <span class=\"hljs-attr\">\"Principal\"</span>: {\n <span class=\"hljs-attr\">\"Service\"</span>: <span class=\"hljs-string\">\"sns.amazonaws.com\"</span>\n },\n <span class=\"hljs-attr\">\"Action\"</span>: <span class=\"hljs-string\">\"sts:AssumeRole\"</span>\n }\n ]\n}\n</pre>\n<p>The roles should use <code>AmazonSNSRole</code> AWS managed policy, which gives SNS access to cloudwatch</p>\n<pre>{\n <span class=\"hljs-attr\">\"Version\"</span>: <span class=\"hljs-string\">\"2012-10-17\"</span>,\n <span class=\"hljs-attr\">\"Statement\"</span>: [\n {\n <span class=\"hljs-attr\">\"Effect\"</span>: <span class=\"hljs-string\">\"Allow\"</span>,\n <span class=\"hljs-attr\">\"Action\"</span>: [\n <span class=\"hljs-string\">\"logs:CreateLogGroup\"</span>,\n <span class=\"hljs-string\">\"logs:CreateLogStream\"</span>,\n <span class=\"hljs-string\">\"logs:PutLogEvents\"</span>,\n <span class=\"hljs-string\">\"logs:PutMetricFilter\"</span>,\n <span class=\"hljs-string\">\"logs:PutRetentionPolicy\"</span>\n ],\n <span class=\"hljs-attr\">\"Resource\"</span>: [\n <span class=\"hljs-string\">\"*\"</span>\n ]\n }\n ]\n}\n</pre>\n<h3 class=\"preview__body--subtitle\" id=\"destroying-fifo-topics-with-an-archive-policy\">Destroying Fifo Topics with an archive policy</h3>\n<p>If creating a FIFO Topic with <code>message_retention_period</code> set, you will have to unset this variable via an <code>apply</code>\nwith <code>message_retention_period</code> set to <code>null</code> before you can <code>destroy</code> the topic.</p>\n<blockquote>\n<p>To delete a topic with an archive policy, you must first deactivate the archive policy as previously described.</p>\n<ul>\n<li><a href=\"https://docs.aws.amazon.com/sns/latest/dg/message-archiving-and-replay-topic-owner.html\" class=\"preview__body--description--blue\" target=\"_blank\">Amazon Docs</a></li>\n</ul>\n</blockquote>\n<h2 class=\"preview__body--subtitle\" id=\"how-do-i-access-the-sns-topic\">How do I access the SNS topic?</h2>\n<p>This module includes several <a href=\"https://www.terraform.io/intro/getting-started/outputs.html\" class=\"preview__body--description--blue\" target=\"_blank\">Terraform outputs</a>,\nincluding:</p>\n<ol>\n<li><code>topic_name</code>: The Name of the created topic</li>\n<li><code>topic_display_name</code>: The Display Name of the created topic</li>\n<li><code>topic_arn</code>: The ARN of the created topic</li>\n<li><code>topic_policy</code>: The Access policy of the created topic</li>\n</ol>\n","repoName":"package-messaging","repoRef":"v0.12.5","serviceDescriptor":{"serviceName":"SNS","serviceRepoName":"package-messaging","serviceRepoOrg":"gruntwork-io","serviceMainReadmePath":"/modules/sns","cloudProviders":["aws"],"description":"Create SNS topics with configurable IAM and delivery policies.","imageUrl":"sns.png","licenseType":"subscriber","technologies":["Terraform"],"compliance":[],"tags":[""]},"serviceCategoryName":"Messaging & streaming","fileName":"README.md","filePath":"/modules/sns","title":"Repo Browser: SNS","description":"Browse the repos in the Gruntwork Infrastructure as Code Library."}