{"id":19805989,"url":"https://github.com/cycloidio/raws","last_synced_at":"2025-05-01T07:30:34.054Z","repository":{"id":57488548,"uuid":"92512297","full_name":"cycloidio/raws","owner":"cycloidio","description":"[UNMAINTAINED] AWS Reader","archived":true,"fork":false,"pushed_at":"2020-05-11T11:03:03.000Z","size":233,"stargazers_count":15,"open_issues_count":4,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-06T10:51:55.410Z","etag":null,"topics":["aws","aws-reader","cloud","go","sdk"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cycloidio.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":null,"security":null,"support":null}},"created_at":"2017-05-26T13:17:05.000Z","updated_at":"2025-03-26T08:25:20.000Z","dependencies_parsed_at":"2022-08-29T15:01:54.721Z","dependency_job_id":null,"html_url":"https://github.com/cycloidio/raws","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycloidio%2Fraws","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycloidio%2Fraws/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycloidio%2Fraws/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycloidio%2Fraws/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cycloidio","download_url":"https://codeload.github.com/cycloidio/raws/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251840098,"owners_count":21652275,"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","aws-reader","cloud","go","sdk"],"created_at":"2024-11-12T09:06:06.432Z","updated_at":"2025-05-01T07:30:33.736Z","avatar_url":"https://github.com/cycloidio.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Raws: AWS Reader [![Build Status](https://travis-ci.org/cycloidio/raws.svg?branch=master)](https://travis-ci.org/cycloidio/raws) [![Coverage Status](https://coveralls.io/repos/github/cycloidio/raws/badge.svg)](https://coveralls.io/github/cycloidio/raws)\n\n## UNMAINTAINED (18/12/2019)\n\nFor several reasons we moved this lib inside of https://github.com/cycloidio/terracognita ([PR](https://github.com/cycloidio/terracognita/pull/71)), and we are making this as **UNMAINTAINED**, so if you want to use a similar one, it'll be https://github.com/cycloidio/terracognita/tree/master/aws/reader.\n\nIt has several differences and its development is made to fit TerraCognita needs. The main difference being no more multi-region, as it was blocking for fetching more results due to pagination.\n\n## What is Raws?\n\nRaws is a golang project helping to get information from AWS.\n\nIt currently provides simplicity - one package vs multitude in AWS - as well as multi-region management - all calls are done for each selected region(s).\nRegion's parameter also supports globbing, thus allowing to fetch data from all eu with: 'eu-\\*' or all eu-west with 'eu-west-\\*'\n\nCurrently only a couple of the most used information is gathered, but adding extra calls should not be complicated, as they all have the same logic.\n\nAny contributions are welcome!\n\n**IMPORTANT** we are still experimenting the usage of this library, hence the public interface isn't stable as we have to see that the methods signatures fulfill the main goal of the library which is to simplify the AWS SDK to gather information. Because of this, the repo contains tags which define each version using [Semantic Versioning convention](https://semver.org/).\n\n## Getting started\n\n### Import the library\nTo get started, you can download/include the library to your code and use it like so:\n\n```go\nfunc main() {\n  var config *aws.Config = nil\n  var accessKey string = \"xxxxxxxxxxxxxxx\"\n  var secretKey string = \"xxxxxxxxxxxxxxxxxxxxxxxxxxx\"\n  var region []string = []string{\"eu-*\"}\n  var ctx = context.Background()\n  // customEndpoint, set true to indicate that we are not using aws services but custom endpoint like min.io.\n  // It will skip running function like ec2.DescribeRegions or sts.GetCallerIdentityWithContext.\n  var customEndpoint bool = false\n\n  // Create a reader\n  c, err := raws.NewAWSReader(ctx, accessKey, secretKey, region, config, customEndpoint)\n  if err != nil {\n    fmt.Printf(\"Error while getting NewConnector: %s\\n\", err.Error())\n    return\n  }\n\n  // Start making calls\n  // Errors are intentionally ignored in this example,\n  // no inputs are provided to those calls, even though one could.\n  elbs, _ := c.GetLoadBalancersV2(ctx, nil)\n  fmt.Println(elbs)\n\n  instances, _ := c.GetInstances(ctx, nil)\n  fmt.Println(instances)\n\n  vpcs, _ := c.GetVpcs(ctx, nil)\n  fmt.Println(vpcs)\n\n  return\n}\n```\n\n### Contribute\n\nWe use a custom generation tool located on `cmd/main.go` which basically uses a list of function definitions (`cmd/functions.go`) to generate the wrappers for those,\nif you want to add a call to the AWS API you have to add it to that list and if the implementation fits the template it'll be automatically generated/implemented.\n\nIf it does not fit the template you'll have to implement it manually, an example is the `s3downloader.go`.\n\nTo generate the code just run `make generate`.\n\n### Enjoy\nThat's it! Nothing more, nothing less.\n\n## Notes\n\n### YOUR data\nBy default the library only returns data that belongs to you, therefore snapshots, AMI, etc are only the one that you owned and not all available objects.\n\nThis could be fixed later on depending on the needs.\n\n### Tags everywhere?\nBecause the library currently simply make the call as a forwarder, it does not provide more complex calls, to return more complex data. Due to that, there are also elements to keep in mind, some calls relative to load balancer, or RDS return only the objects without tags, other calls need to be done to get those tags per resource. \n\n## License\n\nPlease see [LICENSE](LICENSE).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcycloidio%2Fraws","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcycloidio%2Fraws","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcycloidio%2Fraws/lists"}