export async function processFrameworkFile()

in lambda/src/frameworks.ts [59:97]


export async function processFrameworkFile(dataFile: DataFile): Promise<void> {
    const frameworkDefinition = dataFile.data as Framework;
    console.log(frameworkDefinition);

    // get the list of all custom frameworks
    const frameworkList = await loadCustomFrameworkList();

    // check whether or not the framework already exists
    const existingFramework = frameworkList.find(
        ({ name }) => name === frameworkDefinition.name
    );

    // load all custom controls
    const customControlList = await loadCustomControlList();

    // create or update the framework
    if (!existingFramework) {
        console.log('create new framework');
        const request: AWS.AuditManager.CreateAssessmentFrameworkRequest = {
            ...buildFrameworkRequest(frameworkDefinition, customControlList),
            tags: frameworkDefinition.tags,
        };
        const response = await auditManager.createAssessmentFramework(request).promise();
        console.log(response);
    } else {
        const frameworkId = existingFramework.id || '';
        const resourceArn = existingFramework.arn || '';
        console.log(`update existing framework id = ${frameworkId}`);
        const request: AWS.AuditManager.UpdateAssessmentFrameworkRequest = {
            ...buildFrameworkRequest(frameworkDefinition, customControlList),
            frameworkId,
        };
        const response = await auditManager.updateAssessmentFramework(request).promise();
        console.log(response);

        //update tags
        await updateTags(resourceArn, frameworkDefinition.tags);
    }
}