{"id":13625947,"url":"https://github.com/sentialabs/coto","last_synced_at":"2025-08-21T20:33:06.450Z","repository":{"id":38815600,"uuid":"125629429","full_name":"sentialabs/coto","owner":"sentialabs","description":"Undocumented AWS Management Console APIs SDK for Python","archived":false,"fork":false,"pushed_at":"2023-02-10T23:39:35.000Z","size":142,"stargazers_count":51,"open_issues_count":10,"forks_count":22,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-12-12T18:23:29.255Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sentialabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2018-03-17T12:59:29.000Z","updated_at":"2024-03-13T15:23:41.000Z","dependencies_parsed_at":"2024-06-13T03:46:58.156Z","dependency_job_id":null,"html_url":"https://github.com/sentialabs/coto","commit_stats":{"total_commits":32,"total_committers":9,"mean_commits":"3.5555555555555554","dds":0.65625,"last_synced_commit":"d85e649f1f7f7fcf304222024f16ab3180745ca9"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentialabs%2Fcoto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentialabs%2Fcoto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentialabs%2Fcoto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentialabs%2Fcoto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sentialabs","download_url":"https://codeload.github.com/sentialabs/coto/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230205301,"owners_count":18189901,"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":[],"created_at":"2024-08-01T21:02:06.286Z","updated_at":"2024-12-20T04:08:00.616Z","avatar_url":"https://github.com/sentialabs.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# coto: An AWS Management Console Client\n\n[![Documentation Status](https://readthedocs.org/projects/coto/badge/?version=latest)](http://coto.readthedocs.io/en/latest/?badge=latest)\n[![Version](http://img.shields.io/pypi/v/coto.svg?style=flat)](https://pypi.python.org/pypi/coto/)\n\nAlmost any AWS service can be fully controlled using the AWS API, for this we strongly recommend the use of [boto3](http://boto3.readthedocs.io/). The problem is, that there exist some administrative tasks for which there is no public API, and there exist some [AWS tasks that still require the AWS Account Root User](https://docs.aws.amazon.com/general/latest/gr/aws_tasks-that-require-root.html).\n\nFor example when creating a new account in an AWS Organization, there are some things that you are unable to do using the documented APIs, such as:\n\n  * set tax registration information (no documented API)\n  * set additional contacts (no documented API)\n  * reset AWS Account Root User password (no documented API)\n  * setup MFA for the AWS Account Root User (requires root user)\n\n\u003e **Note:**\n\u003e\n\u003e This project provides a client for the undocumented APIs that are used by the AWS Management Console. **These APIs will be changing without any upfront warning!** As a result of this, coto can break at any moment.\n\n\n## Examples\n\n\n### Login using a boto session.\n\n```python\nimport boto3\nimport coto\n\nsession = coto.Session(\n    boto3_session=boto3.Session()\n)\n```\n\n\n### Login using root user password.\n\n```python\nimport coto\n\nsession = coto.Session(\n    email='email@example.com',\n    password='s3cur3 p4ssw0rd!'\n)\n```\n\n\n### Login using root user password with virtual MFA.\n\n```python\nimport coto\n\nsession = coto.Session(\n    email='email@example.com',\n    password='s3cur3 p4ssw0rd!',\n    mfa_secret='MFAxSECRETxSEEDxXXXXXXXXXXXXXXXXXX'\n)\n```\n\n\n### Get account information\n\n```python\niam = session.client('iam')\niam.get_account_info()\n```\n\n\n### Set tax registration\n\n```python\nbilling = session.client('billing')\nbilling.set_tax_registration(\n    TaxRegistration={\n        'address': {\n            'addressLine1': 'Adresweg 1',\n            'addressLine2': None,\n            'city': 'Delft',\n            'countryCode': 'NL',\n            'postalCode': '2600 AA',\n            'state': 'Zuid-Holland',\n        },\n        'authority': {'country': 'NL', 'state': None},\n        'legalName': 'Besloten Venootschap B.V.',\n        'localTaxRegistration': False,\n        'registrationId': 'NL000000000B01',\n    }\n)\n```\n\n## Development\n\n```\npipenv install -d\npipenv run nosetests tests\ncd docs\npipenv run make html\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsentialabs%2Fcoto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsentialabs%2Fcoto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsentialabs%2Fcoto/lists"}