{"id":21725494,"url":"https://github.com/jameswoolfenden/terraform-aws-budget","last_synced_at":"2025-07-20T01:03:22.560Z","repository":{"id":38456998,"uuid":"165740341","full_name":"JamesWoolfenden/terraform-aws-budget","owner":"JamesWoolfenden","description":"Creates budgets for AWS Usage","archived":false,"fork":false,"pushed_at":"2023-07-29T20:06:23.000Z","size":133,"stargazers_count":6,"open_issues_count":1,"forks_count":8,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-14T16:47:48.614Z","etag":null,"topics":["aws","budget","module","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JamesWoolfenden.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-01-14T21:46:17.000Z","updated_at":"2023-03-20T09:56:56.000Z","dependencies_parsed_at":"2025-04-12T22:54:27.450Z","dependency_job_id":"4ae830b6-ce24-4814-976e-edd6886414a7","html_url":"https://github.com/JamesWoolfenden/terraform-aws-budget","commit_stats":null,"previous_names":[],"tags_count":101,"template":false,"template_full_name":null,"purl":"pkg:github/JamesWoolfenden/terraform-aws-budget","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-budget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-budget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-budget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-budget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JamesWoolfenden","download_url":"https://codeload.github.com/JamesWoolfenden/terraform-aws-budget/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-budget/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266052535,"owners_count":23869473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["aws","budget","module","terraform"],"created_at":"2024-11-26T03:18:12.438Z","updated_at":"2025-07-20T01:03:22.534Z","avatar_url":"https://github.com/JamesWoolfenden.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-aws-budget\n\n[![Build Status](https://github.com/JamesWoolfenden/terraform-aws-budget/workflows/Verify%20and%20Bump/badge.svg?branch=master)](https://github.com/JamesWoolfenden/terraform-aws-budget)\n[![Latest Release](https://img.shields.io/github/release/JamesWoolfenden/terraform-aws-budget.svg)](https://github.com/JamesWoolfenden/terraform-aws-budget/releases/latest)\n[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/JamesWoolfenden/terraform-aws-budget.svg?label=latest)](https://github.com/JamesWoolfenden/terraform-aws-budget/releases/latest)\n![Terraform Version](https://img.shields.io/badge/tf-%3E%3D0.14.0-blue.svg)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/JamesWoolfenden/terraform-aws-budget/cis_aws)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=JamesWoolfenden%2Fterraform-aws-budget\u0026benchmark=CIS+AWS+V1.2)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![checkov](https://img.shields.io/badge/checkov-verified-brightgreen)](https://www.checkov.io/)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/jameswoolfenden/terraform-aws-budget/general)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=JamesWoolfenden%2Fterraform-aws-budget\u0026benchmark=INFRASTRUCTURE+SECURITY)\n\nTerraform module - creates a Budget and a Budget for half as much.\n\n---\n\nIt's 100% Open Source and licensed under the [APACHE2](LICENSE).\n\n## Usage\n\nThese are just basic examples, your budget rules should be much more sophisticated.\n\nInclude this repository as a module in your existing terraform code:\n\n```terraform\nmodule \"budget\" {\n  source            = \"JamesWoolfenden/budget/aws\"\n  version           = \"0.3.32\"\n  limit             = var.limit\n  time_period_start = var.time_period_start\n  budget            = var.budget\n  notification      = var.notification\n}\n```\n\nThe module reference uses 2 objects, budget and notification, from the example data. This module implements billing alerts on your AWS account,\nthe provided variables are in **examplea.auto.tfvars**:\n\n```HCL\nbudget={\n    name              = \"budget-ec2-monthly\"\n    budget_type       = \"COST\"\n    time_unit         = \"MONTHLY\"\n    limit_unit        = \"Pounds\"\n   }\nnotification={\n    comparison_operator        = \"GREATER_THAN\"\n    threshold                  = 100\n    threshold_type             = \"PERCENTAGE\"\n    notification_type          = \"FORECASTED\"\n    subscriber_email_addresses = [\"test@example.com\"]\n    subscriber_sns_topic_arns  = [\"\"]\n  }\n```\n\nThe variable limit creates 2 sets of alerts one at its setting and another at half.\nAdditional users or groups can added to _subscriber_email_addresses_.\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\nNo requirements.\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | n/a |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_budgets_budget.budget](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/budgets_budget) | resource |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_budget\"\u003e\u003c/a\u003e [budget](#input\\_budget) | Basic Budget Properties | `map(any)` | \u003cpre\u003e{\u003cbr\u003e  \"budget_type\": \"COST\",\u003cbr\u003e  \"limit_unit\": \"USD\",\u003cbr\u003e  \"name\": \"budget-ec2-monthly\",\u003cbr\u003e  \"time_unit\": \"MONTHLY\"\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_cost_filters\"\u003e\u003c/a\u003e [cost\\_filters](#input\\_cost\\_filters) | The Budget filters to use | \u003cpre\u003elist(object({\u003cbr\u003e    name   = string\u003cbr\u003e    values = set(string)\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_half_budget_enabled\"\u003e\u003c/a\u003e [half\\_budget\\_enabled](#input\\_half\\_budget\\_enabled) | Whether to enable or disable the half budget alert | `bool` | `true` | no |\n| \u003ca name=\"input_limit\"\u003e\u003c/a\u003e [limit](#input\\_limit) | Budget alarm limit | `number` | n/a | yes |\n| \u003ca name=\"input_notification\"\u003e\u003c/a\u003e [notification](#input\\_notification) | Budget notification properties | \u003cpre\u003eobject({\u003cbr\u003e    comparison_operator        = string\u003cbr\u003e    threshold                  = number\u003cbr\u003e    threshold_type             = string\u003cbr\u003e    notification_type          = string\u003cbr\u003e    subscriber_email_addresses = set(any)\u003cbr\u003e    subscriber_sns_topic_arns  = set(any)\u003cbr\u003e  })\u003c/pre\u003e | n/a | yes |\n| \u003ca name=\"input_time_period_start\"\u003e\u003c/a\u003e [time\\_period\\_start](#input\\_time\\_period\\_start) | Time to start | `string` | n/a | yes |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_budget\"\u003e\u003c/a\u003e [budget](#output\\_budget) | n/a |\n| \u003ca name=\"output_half_budget\"\u003e\u003c/a\u003e [half\\_budget](#output\\_half\\_budget) | n/a |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n\n## Policy\n\n\u003c!-- BEGINNING OF PRE-COMMIT-PIKE DOCS HOOK --\u003e\nThe Terraform resource required is:\n\n```golang\nresource \"aws_iam_policy\" \"terraform_pike\" {\n  name_prefix = \"terraform_pike\"\n  path        = \"/\"\n  description = \"Pike Autogenerated policy from IAC\"\n\n  policy = jsonencode({\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Sid\": \"VisualEditor0\",\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"budgets:ModifyBudget\",\n                \"budgets:ViewBudget\"\n            ],\n            \"Resource\": \"*\"\n        }\n    ]\n})\n}\n\n\n```\n\u003c!-- END OF PRE-COMMIT-PIKE DOCS HOOK --\u003e\n\n## Related Projects\n\nCheck out these related projects.\n\n- [terraform-aws-s3](https://github.com/jameswoolfenden/terraform-aws-s3) - S3 buckets\n\n## Help\n\n**Got a question?**\n\nFile a GitHub [issue](https://github.com/JamesWoolfenden/terraform-aws-budget/issues).\n\n## Contributing\n\n### Bug Reports \u0026 Feature Requests\n\nPlease use the [issue tracker](https://github.com/JamesWoolfenden/terraform-aws-budget/issues) to report any bugs or file feature requests.\n\n## Copyrights\n\nCopyright © 2019-2022 James Woolfenden\n\n## License\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\nSee [LICENSE](LICENSE) for full details.\n\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE file\ndistributed with this work for additional information\nregarding copyright ownership. The ASF licenses this file\nto you under the Apache License, Version 2.0 (the\n\"License\"); you may not use this file except in compliance\nwith the License. You may obtain a copy of the License at\n\n\u003chttps://www.apache.org/licenses/LICENSE-2.0\u003e\n\nUnless required by applicable law or agreed to in writing,\nsoftware distributed under the License is distributed on an\n\"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, either express or implied. See the License for the\nspecific language governing permissions and limitations\nunder the License.\n\n### Contributors\n\n[![James Woolfenden][jameswoolfenden_avatar]][jameswoolfenden_homepage]\u003cbr/\u003e[James Woolfenden][jameswoolfenden_homepage]\n\n[jameswoolfenden_homepage]: https://github.com/jameswoolfenden\n[jameswoolfenden_avatar]: https://github.com/jameswoolfenden.png?size=150\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjameswoolfenden%2Fterraform-aws-budget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjameswoolfenden%2Fterraform-aws-budget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjameswoolfenden%2Fterraform-aws-budget/lists"}