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);
}
}