def get_item_file(region, table, key_col, key_attr): return ( to_json( simplify_dynamo_item( get_client(region). get_item(TableName=table, Key={key_col: key_attr}) ['Item']) ).encode())
def iam_root(): return SDir([ ('users', CLDir(lambda: [ (user['UserName'], SDir([ ('info', SFile(to_json(user).encode())), ('groups', CLDir(lambda _user=user: [ (group['GroupName'], VLink('../../../groups/' + group['GroupName'])) for group in get_user_groups(_user) ])), ('policies', CLDir(lambda _user=user: [ (policy_name, VLink('../../../policies/' + policy_name)) for policy_name in get_user_policy_names(_user) ])) ])) for user in get_users() ])), ('groups', CLDir(lambda: [ (group['GroupName'], SDir([ ('info', SFile(to_json(group).encode())), ('policies', CLDir(lambda _group=group: [ (policy_name, VLink('../../../policies/' + policy_name)) for policy_name in get_group_policy_names(_group) ])) ])) for group in get_groups() ])), ('roles', CLDir(lambda: [ (role['RoleName'], SDir([ ('info', SFile(to_json(role).encode())), ('policies', CLDir(lambda _role=role: [ (policy_name, VLink('../../../policies/' + policy_name)) for policy_name in get_role_policy_names(_role) ])) ])) for role in get_roles() ])), ('policies', CLDir(lambda: [ (policy['PolicyName'], SDir([ ('info', SFile(to_json(policy).encode())) ])) for policy in get_policies() ])), ])