# AWS Tag
Bulk AWS resource tagging utility. Tag AWS resources using a single interface with filter support
to operate on a subset of resources.
## Installation
Install the package using pip. Alternatively, you can also use
[pipx](https://packaging.python.org/en/latest/guides/installing-stand-alone-command-line-tools/), which installs
the package in an isolated environment and adds the package to the system path.
```bash
pip install aws-tag
```
## Usage
There are four different operations that can be performed using this tool. Each operation (except import) supports
filtering resources by name and tag values. Read [filters and operators](#filters-and-operators) section for more
details.
- [List resources](#list-resources)
- [Tag resources](#tag-resources)
- [Export tags](#export-tags)
- [Import tags](#import-tags)
### Available AWS Services
Services are selected using the `--service` flag. The following services are currently supported.
```
--service <service-parameter>
```
| Service | Parameter |
|------------------------|-------------|
| API Gateway | agw |
| DynamoDB | dynamodb |
| Elastic Block Store | ebs |
| EC2 | ec2 |
| ECR | ecr |
| ElastiCache | elasticache |
| Kinesis Data Analytics | kda |
| Kinesis Data Firehose | kdf |
| Kinesis Data Stream | kds |
| KMS | kms |
| Lambda | lambda |
| CloudWatch Logs | logs |
| RDS | rds |
| S3 | s3 |
| SNS | sns |
| SQS | sqs |
### Filters and Operators
Filters are used to filter resources by name and tag values. Filters are specified using the following format:
```
--filter <key><operator><value>
```
Keys are the resource name or tag key. For tag keys just use the tag key as key. For resource names use the special
`@name` key. Operators are used to specify the comparison operator. See the table below.
| Operator | Description |
|----------|---------------------|
| `= ` | Equals |
| `!=` | Not equal |
| `~` | Contains |
| `!~` | Does not contain |
| `--` | Does not exist |
| `^ ` | Starts with |
| `!^` | Does not start with |
| `$ ` | Ends with |
| `!$` | Does not end with |
Note that ``--`` operator is used to check if a tag does not exist and has no `value` associated with it. Please check
examples below.
### List Resources
Find resources that have `team=data` and `environment=production` tags.
```bash
aws-tag list --service dynamodb --filter 'team=data' --filter 'environment=production'
```
Find resources that does not have a `team` tag.
```bash
aws-tag list --service ec2 --filter 'team--'
```
### Tag Resources
Add `subteam=intelligence` tag for resources that have `team=data` tag and resource name starting with `intel-`.
```bash
aws-tag tag --service kds --filter 'team=data' --filter '@name^intel-' --tag 'subteam=intelligence'
```
Add `environment=staging` tag for resources that have `team=data` tag and resource name ending
with `staging`.
```bash
aws-tag tag --service kdf --filter 'team=data' --filter '@name$staging' --tag 'environment=staging'
```
### Export Tags
Export the tags of the resources that have `team=data` tag to a csv file.
```bash
aws-tag export --service ebs --filter 'team=data' --file tags.csv
```
Export the `team` and `Name` tags for the resources that have `team=data` tag to a csv file.
```bash
aws-tag export --service ebs --filter 'team=data' --export-tag 'team' --export-tag 'Name' --file tags.csv
```
### Import Tags
Import the tags from a csv file and tag those resources.
```bash
aws-tag import --file tags.csv
```
Raw data
{
"_id": null,
"home_page": "",
"name": "aws-tag",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "aws,tag,tagging,tagger",
"author": "Deniz Parmaks\u0131z",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/76/dc/c1d5210b51ac3c99eaea6e874007640e91444d9f840f889942bfe74ba7ef/aws-tag-0.1.1.tar.gz",
"platform": null,
"description": "# AWS Tag\n\nBulk AWS resource tagging utility. Tag AWS resources using a single interface with filter support\nto operate on a subset of resources.\n\n## Installation\n\nInstall the package using pip. Alternatively, you can also use \n[pipx](https://packaging.python.org/en/latest/guides/installing-stand-alone-command-line-tools/), which installs \nthe package in an isolated environment and adds the package to the system path.\n\n```bash\npip install aws-tag\n```\n\n## Usage\n\nThere are four different operations that can be performed using this tool. Each operation (except import) supports\nfiltering resources by name and tag values. Read [filters and operators](#filters-and-operators) section for more\ndetails.\n\n- [List resources](#list-resources)\n- [Tag resources](#tag-resources)\n- [Export tags](#export-tags)\n- [Import tags](#import-tags)\n\n### Available AWS Services\n\nServices are selected using the `--service` flag. The following services are currently supported.\n\n```\n--service <service-parameter>\n```\n\n| Service | Parameter |\n|------------------------|-------------|\n| API Gateway | agw |\n| DynamoDB | dynamodb |\n| Elastic Block Store | ebs |\n| EC2 | ec2 |\n| ECR | ecr |\n| ElastiCache | elasticache |\n| Kinesis Data Analytics | kda |\n| Kinesis Data Firehose | kdf |\n| Kinesis Data Stream | kds |\n| KMS | kms |\n| Lambda | lambda |\n| CloudWatch Logs | logs |\n| RDS | rds |\n| S3 | s3 |\n| SNS | sns |\n| SQS | sqs |\n\n### Filters and Operators\n\nFilters are used to filter resources by name and tag values. Filters are specified using the following format:\n\n```\n--filter <key><operator><value>\n```\n\nKeys are the resource name or tag key. For tag keys just use the tag key as key. For resource names use the special\n`@name` key. Operators are used to specify the comparison operator. See the table below.\n\n| Operator | Description |\n|----------|---------------------|\n| `= ` | Equals |\n| `!=` | Not equal |\n| `~` | Contains |\n| `!~` | Does not contain |\n| `--` | Does not exist |\n| `^ ` | Starts with |\n| `!^` | Does not start with |\n| `$ ` | Ends with |\n| `!$` | Does not end with |\n\nNote that ``--`` operator is used to check if a tag does not exist and has no `value` associated with it. Please check\nexamples below.\n\n### List Resources\n\nFind resources that have `team=data` and `environment=production` tags.\n\n```bash\naws-tag list --service dynamodb --filter 'team=data' --filter 'environment=production'\n```\n\nFind resources that does not have a `team` tag.\n\n```bash\naws-tag list --service ec2 --filter 'team--'\n```\n\n### Tag Resources\n\nAdd `subteam=intelligence` tag for resources that have `team=data` tag and resource name starting with `intel-`.\n\n```bash\naws-tag tag --service kds --filter 'team=data' --filter '@name^intel-' --tag 'subteam=intelligence'\n```\n\nAdd `environment=staging` tag for resources that have `team=data` tag and resource name ending\nwith `staging`.\n\n```bash\naws-tag tag --service kdf --filter 'team=data' --filter '@name$staging' --tag 'environment=staging'\n```\n\n### Export Tags\n\nExport the tags of the resources that have `team=data` tag to a csv file.\n\n```bash\naws-tag export --service ebs --filter 'team=data' --file tags.csv\n```\n\nExport the `team` and `Name` tags for the resources that have `team=data` tag to a csv file.\n\n```bash\naws-tag export --service ebs --filter 'team=data' --export-tag 'team' --export-tag 'Name' --file tags.csv\n```\n\n### Import Tags\n\nImport the tags from a csv file and tag those resources.\n\n```bash\naws-tag import --file tags.csv\n```\n",
"bugtrack_url": null,
"license": "",
"summary": "Bulk AWS resource tagging utility.",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://github.com/dnzprmksz/aws-tag",
"Issues": "https://github.com/dnzprmksz/aws-tag/issues"
},
"split_keywords": [
"aws",
"tag",
"tagging",
"tagger"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a9ac1e842c69f22ee587f563d07dbc6acdfe8b25e063d287abeae18b88b54754",
"md5": "541204f5c389e8484575aba72a52a3c7",
"sha256": "ebe3d37f1a58f3da92bea249978a1216d4ee5cabfd1a298808d12bede778035c"
},
"downloads": -1,
"filename": "aws_tag-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "541204f5c389e8484575aba72a52a3c7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 44711,
"upload_time": "2024-03-18T16:51:13",
"upload_time_iso_8601": "2024-03-18T16:51:13.909648Z",
"url": "https://files.pythonhosted.org/packages/a9/ac/1e842c69f22ee587f563d07dbc6acdfe8b25e063d287abeae18b88b54754/aws_tag-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "76dcc1d5210b51ac3c99eaea6e874007640e91444d9f840f889942bfe74ba7ef",
"md5": "4b4fcf5b5a7cdce75c93ca7bfbd92240",
"sha256": "b099115b41c638e3488c007a7e8d46e381aa034486105436707064227a5f142b"
},
"downloads": -1,
"filename": "aws-tag-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "4b4fcf5b5a7cdce75c93ca7bfbd92240",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 26594,
"upload_time": "2024-03-18T16:51:15",
"upload_time_iso_8601": "2024-03-18T16:51:15.811461Z",
"url": "https://files.pythonhosted.org/packages/76/dc/c1d5210b51ac3c99eaea6e874007640e91444d9f840f889942bfe74ba7ef/aws-tag-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-18 16:51:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dnzprmksz",
"github_project": "aws-tag",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "boto3",
"specs": [
[
"==",
"1.26.47"
]
]
},
{
"name": "botocore",
"specs": [
[
"==",
"1.29.47"
]
]
},
{
"name": "jmespath",
"specs": [
[
"==",
"1.0.1"
]
]
},
{
"name": "numpy",
"specs": [
[
"==",
"1.24.1"
]
]
},
{
"name": "pandas",
"specs": [
[
"==",
"1.5.2"
]
]
},
{
"name": "pathvalidate",
"specs": [
[
"==",
"2.5.2"
]
]
},
{
"name": "python-dateutil",
"specs": [
[
"==",
"2.8.2"
]
]
},
{
"name": "pytz",
"specs": [
[
"==",
"2022.7"
]
]
},
{
"name": "s3transfer",
"specs": [
[
"==",
"0.6.0"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "tabulate",
"specs": [
[
"==",
"0.9.0"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"1.26.13"
]
]
}
],
"lcname": "aws-tag"
}