{"id":48026277,"url":"https://github.com/binbashar/terraform-aws-notifications","last_synced_at":"2026-04-04T13:50:35.145Z","repository":{"id":241382131,"uuid":"804542930","full_name":"binbashar/terraform-aws-notifications","owner":"binbashar","description":"Terraform module which creates SNS topic and Lambda function which sends notifications","archived":false,"fork":false,"pushed_at":"2024-06-10T18:26:35.000Z","size":42,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-12-17T06:12:41.851Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/binbashar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-22T19:36:33.000Z","updated_at":"2024-06-10T18:26:39.000Z","dependencies_parsed_at":"2024-05-30T18:11:58.816Z","dependency_job_id":"75178e85-50b7-446f-b322-3b97e48f22e4","html_url":"https://github.com/binbashar/terraform-aws-notifications","commit_stats":null,"previous_names":["binbashar/terraform-aws-notifications"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/binbashar/terraform-aws-notifications","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binbashar%2Fterraform-aws-notifications","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binbashar%2Fterraform-aws-notifications/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binbashar%2Fterraform-aws-notifications/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binbashar%2Fterraform-aws-notifications/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/binbashar","download_url":"https://codeload.github.com/binbashar/terraform-aws-notifications/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binbashar%2Fterraform-aws-notifications/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31402276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-04T13:50:34.940Z","updated_at":"2026-04-04T13:50:35.093Z","avatar_url":"https://github.com/binbashar.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://github.com/binbashar\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/binbashar/le-ref-architecture-doc/master/docs/assets/images/logos/binbash-leverage-banner.png\" width=\"1032\" align=\"left\" alt=\"Binbash\"/\u003e\n\u003c/a\u003e\n\u003cbr clear=\"left\"/\u003e\n\n# AWS Notifications Terraform module\n\nThis module creates an SNS topic (or uses an existing one) and an AWS Lambda function that sends notifications to Slack (using the [incoming webhooks API](https://api.slack.com/incoming-webhooks)) or Google Chat (using [webhooks](https://developers.google.com/workspace/chat/quickstart/webhooks)).\n\n## Usage\n\n### Slack\n\nStart by setting up an [incoming webhook integration](https://my.slack.com/services/new/incoming-webhook/) in your Slack workspace.\n\n```hcl\nmodule \"notify_slack\" {\n  source  = \"github.com/binbashar/terraform-aws-notifications?ref=v1.0.0\"\n  version = \"~\u003e 5.0\"\n\n  sns_topic_name = \"slack-topic\"\n\n  slack_webhook_url = \"https://hooks.slack.com/services/AAA/BBB/CCC\"\n  slack_channel     = \"aws-notification\"\n  slack_username    = \"reporter\"\n}\n```\n\n### Google\n\nStart by setting up an [incoming webhook integration](https://developers.google.com/workspace/chat/quickstart/webhooks#create_a_webhook) in your Google Space.\n\n```hcl\nmodule \"notify_google\" {\n  source = \"github.com/binbashar/terraform-aws-notifications?ref=v1.0.0\"\n\n  create           = true\n  create_sns_topic = true\n\n  chatops_app        = \"google\"\n  google_webhook_url = \"https://chat.googleapis.com/v1/spaces/AAAA/messages?key=BBBB\"\n\n  lambda_function_name = local.name\n  lambda_description   = \"Lambda function which sends notifications to Google\"\n  log_events           = true\n  sns_topic_name       = local.name\n\n}\n```\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.0 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 4.8 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 4.8 |\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| \u003ca name=\"module_lambda\"\u003e\u003c/a\u003e [lambda](#module\\_lambda) | terraform-aws-modules/lambda/aws | 3.2.0 |\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_cloudwatch_log_group.lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_log_group) | resource |\n| [aws_iam_role.sns_feedback_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_sns_topic.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/sns_topic) | resource |\n| [aws_sns_topic_subscription.sns_notifications](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/sns_topic_subscription) | resource |\n| [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source |\n| [aws_iam_policy_document.lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_iam_policy_document.sns_feedback](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_partition.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/partition) | data source |\n| [aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_architectures\"\u003e\u003c/a\u003e [architectures](#input\\_architectures) | Instruction set architecture for your Lambda function. Valid values are [\"x86\\_64\"] and [\"arm64\"]. | `list(string)` | `null` | no |\n| \u003ca name=\"input_chatops_app\"\u003e\u003c/a\u003e [chatops\\_app](#input\\_chatops\\_app) | Chatops app - google, slack | `string` | `\"slack\"` | no |\n| \u003ca name=\"input_cloudwatch_log_group_kms_key_id\"\u003e\u003c/a\u003e [cloudwatch\\_log\\_group\\_kms\\_key\\_id](#input\\_cloudwatch\\_log\\_group\\_kms\\_key\\_id) | The ARN of the KMS Key to use when encrypting log data for Lambda | `string` | `null` | no |\n| \u003ca name=\"input_cloudwatch_log_group_retention_in_days\"\u003e\u003c/a\u003e [cloudwatch\\_log\\_group\\_retention\\_in\\_days](#input\\_cloudwatch\\_log\\_group\\_retention\\_in\\_days) | Specifies the number of days you want to retain log events in log group for Lambda. | `number` | `0` | no |\n| \u003ca name=\"input_cloudwatch_log_group_tags\"\u003e\u003c/a\u003e [cloudwatch\\_log\\_group\\_tags](#input\\_cloudwatch\\_log\\_group\\_tags) | Additional tags for the Cloudwatch log group | `map(string)` | `{}` | no |\n| \u003ca name=\"input_create\"\u003e\u003c/a\u003e [create](#input\\_create) | Whether to create all resources | `bool` | `true` | no |\n| \u003ca name=\"input_create_sns_topic\"\u003e\u003c/a\u003e [create\\_sns\\_topic](#input\\_create\\_sns\\_topic) | Whether to create new SNS topic | `bool` | `true` | no |\n| \u003ca name=\"input_enable_sns_topic_delivery_status_logs\"\u003e\u003c/a\u003e [enable\\_sns\\_topic\\_delivery\\_status\\_logs](#input\\_enable\\_sns\\_topic\\_delivery\\_status\\_logs) | Whether to enable SNS topic delivery status logs | `bool` | `false` | no |\n| \u003ca name=\"input_google_webhook_url\"\u003e\u003c/a\u003e [google\\_webhook\\_url](#input\\_google\\_webhook\\_url) | The URL of Google webhook | `string` | `\"\"` | no |\n| \u003ca name=\"input_hash_extra\"\u003e\u003c/a\u003e [hash\\_extra](#input\\_hash\\_extra) | The string to add into hashing function. Useful when building same source path for different functions. | `string` | `\"\"` | no |\n| \u003ca name=\"input_iam_policy_path\"\u003e\u003c/a\u003e [iam\\_policy\\_path](#input\\_iam\\_policy\\_path) | Path of policies to that should be added to IAM role for Lambda Function | `string` | `null` | no |\n| \u003ca name=\"input_iam_role_boundary_policy_arn\"\u003e\u003c/a\u003e [iam\\_role\\_boundary\\_policy\\_arn](#input\\_iam\\_role\\_boundary\\_policy\\_arn) | The ARN of the policy that is used to set the permissions boundary for the role | `string` | `null` | no |\n| \u003ca name=\"input_iam_role_name_prefix\"\u003e\u003c/a\u003e [iam\\_role\\_name\\_prefix](#input\\_iam\\_role\\_name\\_prefix) | A unique role name beginning with the specified prefix | `string` | `\"lambda\"` | no |\n| \u003ca name=\"input_iam_role_path\"\u003e\u003c/a\u003e [iam\\_role\\_path](#input\\_iam\\_role\\_path) | Path of IAM role to use for Lambda Function | `string` | `null` | no |\n| \u003ca name=\"input_iam_role_tags\"\u003e\u003c/a\u003e [iam\\_role\\_tags](#input\\_iam\\_role\\_tags) | Additional tags for the IAM role | `map(string)` | `{}` | no |\n| \u003ca name=\"input_kms_key_arn\"\u003e\u003c/a\u003e [kms\\_key\\_arn](#input\\_kms\\_key\\_arn) | ARN of the KMS key used for decrypting slack webhook url | `string` | `\"\"` | no |\n| \u003ca name=\"input_lambda_attach_dead_letter_policy\"\u003e\u003c/a\u003e [lambda\\_attach\\_dead\\_letter\\_policy](#input\\_lambda\\_attach\\_dead\\_letter\\_policy) | Controls whether SNS/SQS dead letter notification policy should be added to IAM role for Lambda Function | `bool` | `false` | no |\n| \u003ca name=\"input_lambda_dead_letter_target_arn\"\u003e\u003c/a\u003e [lambda\\_dead\\_letter\\_target\\_arn](#input\\_lambda\\_dead\\_letter\\_target\\_arn) | The ARN of an SNS topic or SQS queue to notify when an invocation fails. | `string` | `null` | no |\n| \u003ca name=\"input_lambda_description\"\u003e\u003c/a\u003e [lambda\\_description](#input\\_lambda\\_description) | The description of the Lambda function | `string` | `null` | no |\n| \u003ca name=\"input_lambda_function_ephemeral_storage_size\"\u003e\u003c/a\u003e [lambda\\_function\\_ephemeral\\_storage\\_size](#input\\_lambda\\_function\\_ephemeral\\_storage\\_size) | Amount of ephemeral storage (/tmp) in MB your Lambda Function can use at runtime. Valid value between 512 MB to 10,240 MB (10 GB). | `number` | `512` | no |\n| \u003ca name=\"input_lambda_function_name\"\u003e\u003c/a\u003e [lambda\\_function\\_name](#input\\_lambda\\_function\\_name) | The name of the Lambda function to create | `string` | `\"notify_slack\"` | no |\n| \u003ca name=\"input_lambda_function_s3_bucket\"\u003e\u003c/a\u003e [lambda\\_function\\_s3\\_bucket](#input\\_lambda\\_function\\_s3\\_bucket) | S3 bucket to store artifacts | `string` | `null` | no |\n| \u003ca name=\"input_lambda_function_store_on_s3\"\u003e\u003c/a\u003e [lambda\\_function\\_store\\_on\\_s3](#input\\_lambda\\_function\\_store\\_on\\_s3) | Whether to store produced artifacts on S3 or locally. | `bool` | `false` | no |\n| \u003ca name=\"input_lambda_function_tags\"\u003e\u003c/a\u003e [lambda\\_function\\_tags](#input\\_lambda\\_function\\_tags) | Additional tags for the Lambda function | `map(string)` | `{}` | no |\n| \u003ca name=\"input_lambda_function_vpc_security_group_ids\"\u003e\u003c/a\u003e [lambda\\_function\\_vpc\\_security\\_group\\_ids](#input\\_lambda\\_function\\_vpc\\_security\\_group\\_ids) | List of security group ids when Lambda Function should run in the VPC. | `list(string)` | `null` | no |\n| \u003ca name=\"input_lambda_function_vpc_subnet_ids\"\u003e\u003c/a\u003e [lambda\\_function\\_vpc\\_subnet\\_ids](#input\\_lambda\\_function\\_vpc\\_subnet\\_ids) | List of subnet ids when Lambda Function should run in the VPC. Usually private or intra subnets. | `list(string)` | `null` | no |\n| \u003ca name=\"input_lambda_role\"\u003e\u003c/a\u003e [lambda\\_role](#input\\_lambda\\_role) | IAM role attached to the Lambda Function.  If this is set then a role will not be created for you. | `string` | `\"\"` | no |\n| \u003ca name=\"input_lambda_source_path\"\u003e\u003c/a\u003e [lambda\\_source\\_path](#input\\_lambda\\_source\\_path) | The source path of the custom Lambda function | `string` | `null` | no |\n| \u003ca name=\"input_log_events\"\u003e\u003c/a\u003e [log\\_events](#input\\_log\\_events) | Boolean flag to enabled/disable logging of incoming events | `bool` | `false` | no |\n| \u003ca name=\"input_recreate_missing_package\"\u003e\u003c/a\u003e [recreate\\_missing\\_package](#input\\_recreate\\_missing\\_package) | Whether to recreate missing Lambda package if it is missing locally or not | `bool` | `true` | no |\n| \u003ca name=\"input_reserved_concurrent_executions\"\u003e\u003c/a\u003e [reserved\\_concurrent\\_executions](#input\\_reserved\\_concurrent\\_executions) | The amount of reserved concurrent executions for this lambda function. A value of 0 disables lambda from being triggered and -1 removes any concurrency limitations | `number` | `-1` | no |\n| \u003ca name=\"input_slack_channel\"\u003e\u003c/a\u003e [slack\\_channel](#input\\_slack\\_channel) | The name of the channel in Slack for notifications | `string` | `\"\"` | no |\n| \u003ca name=\"input_slack_emoji\"\u003e\u003c/a\u003e [slack\\_emoji](#input\\_slack\\_emoji) | A custom emoji that will appear on Slack messages | `string` | `\":aws:\"` | no |\n| \u003ca name=\"input_slack_username\"\u003e\u003c/a\u003e [slack\\_username](#input\\_slack\\_username) | The username that will appear on Slack messages | `string` | `\"\"` | no |\n| \u003ca name=\"input_slack_webhook_url\"\u003e\u003c/a\u003e [slack\\_webhook\\_url](#input\\_slack\\_webhook\\_url) | The URL of Slack webhook | `string` | `\"\"` | no |\n| \u003ca name=\"input_sns_topic_feedback_role_description\"\u003e\u003c/a\u003e [sns\\_topic\\_feedback\\_role\\_description](#input\\_sns\\_topic\\_feedback\\_role\\_description) | Description of IAM role to use for SNS topic delivery status logging | `string` | `null` | no |\n| \u003ca name=\"input_sns_topic_feedback_role_force_detach_policies\"\u003e\u003c/a\u003e [sns\\_topic\\_feedback\\_role\\_force\\_detach\\_policies](#input\\_sns\\_topic\\_feedback\\_role\\_force\\_detach\\_policies) | Specifies to force detaching any policies the IAM role has before destroying it. | `bool` | `true` | no |\n| \u003ca name=\"input_sns_topic_feedback_role_name\"\u003e\u003c/a\u003e [sns\\_topic\\_feedback\\_role\\_name](#input\\_sns\\_topic\\_feedback\\_role\\_name) | Name of the IAM role to use for SNS topic delivery status logging | `string` | `null` | no |\n| \u003ca name=\"input_sns_topic_feedback_role_path\"\u003e\u003c/a\u003e [sns\\_topic\\_feedback\\_role\\_path](#input\\_sns\\_topic\\_feedback\\_role\\_path) | Path of IAM role to use for SNS topic delivery status logging | `string` | `null` | no |\n| \u003ca name=\"input_sns_topic_feedback_role_permissions_boundary\"\u003e\u003c/a\u003e [sns\\_topic\\_feedback\\_role\\_permissions\\_boundary](#input\\_sns\\_topic\\_feedback\\_role\\_permissions\\_boundary) | The ARN of the policy that is used to set the permissions boundary for the IAM role used by SNS topic delivery status logging | `string` | `null` | no |\n| \u003ca name=\"input_sns_topic_feedback_role_tags\"\u003e\u003c/a\u003e [sns\\_topic\\_feedback\\_role\\_tags](#input\\_sns\\_topic\\_feedback\\_role\\_tags) | A map of tags to assign to IAM the SNS topic feedback role | `map(string)` | `{}` | no |\n| \u003ca name=\"input_sns_topic_kms_key_id\"\u003e\u003c/a\u003e [sns\\_topic\\_kms\\_key\\_id](#input\\_sns\\_topic\\_kms\\_key\\_id) | ARN of the KMS key used for enabling SSE on the topic | `string` | `\"\"` | no |\n| \u003ca name=\"input_sns_topic_lambda_feedback_role_arn\"\u003e\u003c/a\u003e [sns\\_topic\\_lambda\\_feedback\\_role\\_arn](#input\\_sns\\_topic\\_lambda\\_feedback\\_role\\_arn) | IAM role for SNS topic delivery status logs.  If this is set then a role will not be created for you. | `string` | `\"\"` | no |\n| \u003ca name=\"input_sns_topic_lambda_feedback_sample_rate\"\u003e\u003c/a\u003e [sns\\_topic\\_lambda\\_feedback\\_sample\\_rate](#input\\_sns\\_topic\\_lambda\\_feedback\\_sample\\_rate) | The percentage of successful deliveries to log | `number` | `100` | no |\n| \u003ca name=\"input_sns_topic_name\"\u003e\u003c/a\u003e [sns\\_topic\\_name](#input\\_sns\\_topic\\_name) | The name of the SNS topic to create | `string` | n/a | yes |\n| \u003ca name=\"input_sns_topic_tags\"\u003e\u003c/a\u003e [sns\\_topic\\_tags](#input\\_sns\\_topic\\_tags) | Additional tags for the SNS topic | `map(string)` | `{}` | no |\n| \u003ca name=\"input_subscription_filter_policy\"\u003e\u003c/a\u003e [subscription\\_filter\\_policy](#input\\_subscription\\_filter\\_policy) | (Optional) A valid filter policy that will be used in the subscription to filter messages seen by the target resource. | `string` | `null` | no |\n| \u003ca name=\"input_subscription_filter_policy_scope\"\u003e\u003c/a\u003e [subscription\\_filter\\_policy\\_scope](#input\\_subscription\\_filter\\_policy\\_scope) | (Optional) A valid filter policy scope MessageAttributes\\|MessageBody | `string` | `null` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | A map of tags to add to all resources | `map(string)` | `{}` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_lambda_cloudwatch_log_group_arn\"\u003e\u003c/a\u003e [lambda\\_cloudwatch\\_log\\_group\\_arn](#output\\_lambda\\_cloudwatch\\_log\\_group\\_arn) | The Amazon Resource Name (ARN) specifying the log group |\n| \u003ca name=\"output_lambda_iam_role_arn\"\u003e\u003c/a\u003e [lambda\\_iam\\_role\\_arn](#output\\_lambda\\_iam\\_role\\_arn) | The ARN of the IAM role used by Lambda function |\n| \u003ca name=\"output_lambda_iam_role_name\"\u003e\u003c/a\u003e [lambda\\_iam\\_role\\_name](#output\\_lambda\\_iam\\_role\\_name) | The name of the IAM role used by Lambda function |\n| \u003ca name=\"output_notification_lambda_function_arn\"\u003e\u003c/a\u003e [notification\\_lambda\\_function\\_arn](#output\\_notification\\_lambda\\_function\\_arn) | The ARN of the Lambda function |\n| \u003ca name=\"output_notification_lambda_function_invoke_arn\"\u003e\u003c/a\u003e [notification\\_lambda\\_function\\_invoke\\_arn](#output\\_notification\\_lambda\\_function\\_invoke\\_arn) | The ARN to be used for invoking Lambda function from API Gateway |\n| \u003ca name=\"output_notification_lambda_function_last_modified\"\u003e\u003c/a\u003e [notification\\_lambda\\_function\\_last\\_modified](#output\\_notification\\_lambda\\_function\\_last\\_modified) | The date Lambda function was last modified |\n| \u003ca name=\"output_notification_lambda_function_name\"\u003e\u003c/a\u003e [notification\\_lambda\\_function\\_name](#output\\_notification\\_lambda\\_function\\_name) | The name of the Lambda function |\n| \u003ca name=\"output_notification_lambda_function_version\"\u003e\u003c/a\u003e [notification\\_lambda\\_function\\_version](#output\\_notification\\_lambda\\_function\\_version) | Latest published version of your Lambda function |\n| \u003ca name=\"output_notification_topic_arn\"\u003e\u003c/a\u003e [notification\\_topic\\_arn](#output\\_notification\\_topic\\_arn) | The ARN of the SNS topic from which messages will be sent to Slack |\n| \u003ca name=\"output_sns_topic_feedback_role_arn\"\u003e\u003c/a\u003e [sns\\_topic\\_feedback\\_role\\_arn](#output\\_sns\\_topic\\_feedback\\_role\\_arn) | The Amazon Resource Name (ARN) of the IAM role used for SNS delivery status logging |\n\u003c!-- END_TF_DOCS --\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinbashar%2Fterraform-aws-notifications","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbinbashar%2Fterraform-aws-notifications","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinbashar%2Fterraform-aws-notifications/lists"}