def __init__()

in retrieve_accounts_from_organization_unit/reporting_app_stack.py [0:0]


    def __init__(self, scope: cdk.Construct, construct_id: str, **kwargs) -> None:
        super().__init__(scope, construct_id, **kwargs)

        managmentAccountIdParameter = cdk.CfnParameter(self, id="managmentAccountId", description="AWS account id of the Organization managment account, aka root account"
                                                       )

        organisationUnitIdParameter = cdk.CfnParameter(self, id="organisationUnitId", description="Organisation Unit id, ie: ou-abcd-abcde1234"
                                                       )

        trustedPrincipal = iam.ServicePrincipal('lambda.amazonaws.com')
        retrieveAccountsFromOUReportingRole = iam.Role(self, id="retrieveAccountsFromOUReportingRole", role_name=c.REPORTING_ACCOUNT_ROLE_NAME, assumed_by=trustedPrincipal, managed_policies=[
            iam.ManagedPolicy.from_aws_managed_policy_name(
                'service-role/AWSLambdaBasicExecutionRole')
            # ,iam.ManagedPolicy.from_aws_managed_policy_name('service-role/AWSLambdaVPCAccessExecutionRole')
        ]
        )

        assumeableRoleARN = my_resource = cdk.Stack.of(self).format_arn(
            service="iam", region="", account=managmentAccountIdParameter.value_as_string, resource="role", resource_name=c.ADMIN_ACCOUNT_ROLE_NAME
        )
        retrieveAccountsFromOUReportingRole.attach_inline_policy(
            iam.Policy(self, id="canAssumeAdminAccountRole", policy_name="CanAssume"+c.ADMIN_ACCOUNT_ROLE_NAME, statements=[
                iam.PolicyStatement(
                    actions=["sts:AssumeRole"], effect=iam.Effect.ALLOW, resources=[assumeableRoleARN]
                )
            ]
            )
        )

        retrieveAccountsFromOUReportingRole.attach_inline_policy(
            iam.Policy(self, id="writeLogsPolicy", policy_name="CanWriteLogsPolicy", statements=[
                iam.PolicyStatement(
                    actions=[
                        "logs:CreateLogGroup",
                        "logs:CreateLogStream",
                        "logs:PutLogEvents"
                    ], effect=iam.Effect.ALLOW, resources=["*"]
                )
            ]
            )
        )

        cdk.CfnOutput(self, id="outputAssumeableRoleARN", value=assumeableRoleARN
                      )

        cdk.CfnOutput(self, id="outputRetrieveAccountsFromOUReportingRoleARN", value=retrieveAccountsFromOUReportingRole.role_arn
                      )

        # Defines the AWS Lambda reporting app
        reportingLambdaFunction = _lambda.Function(self, "reportingLambdaFunction", runtime=_lambda.Runtime.PYTHON_3_7, function_name='log-organization-unit-accounts-id', description='Lambda function that retrieve and log all account-id in an Organization Unit', code=_lambda.Code.asset('src/functions'), handler='logOUAccountsId.lambda_handler', role=retrieveAccountsFromOUReportingRole, log_retention=log.RetentionDays.ONE_DAY
                                                   )
        reportingLambdaFunction.add_environment(
            key="ASSUME_ROLE_ARN", value=assumeableRoleARN
        )
        reportingLambdaFunction.add_environment(
            key="ORGANISATION_UNIT_ID", value=organisationUnitIdParameter.value_as_string
        )