#!/usr/bin/python3 import boto3 # import json def recurseChildren(ouid, level): children = client.list_organizational_units_for_parent(ParentId=ouid).get('OrganizationalUnits') if len(children) == 0: childAccounts = getChildAccounts(ouid) for c in childAccounts: print('.' * level, c[0], c[1]) return else: for c in children: print('.' * level, c.get('Name'), c.get('Id')) recurseChildren(c.get('Id'), level + 1) def getChildAccounts(ouid): childAccounts = client.list_accounts_for_parent(ParentId=ouid).get('Accounts') reducedList = [] for a in childAccounts: tempList = [a.get('Name'), a.get('Id')] reducedList.append(tempList) return reducedList client = boto3.client('organizations') response = client.list_roots() rootId = response['Roots'][0]['Id'] print('Root ', rootId) recurseChildren(rootId, 1)