def METHOD_NAME(self):
    self.manifest = Manifest()
    for key in self.firmwares_data:
        firmware_dict = self.firmwares_data[key]
        if key == HexType.SD_BL:
            _firmware = SoftdeviceBootloaderFirmware()
            _firmware.info_read_only_metadata = FWMetaData()
            _firmware.info_read_only_metadata.bl_size = firmware_dict[
                FirmwareKeys.BL_SIZE
            ]
            _firmware.info_read_only_metadata.sd_size = firmware_dict[
                FirmwareKeys.SD_SIZE
            ]
        else:
            _firmware = Firmware()
        # Strip path, add only filename
        _firmware.bin_file = os.path.basename(
            firmware_dict[FirmwareKeys.BIN_FILENAME]
        )
        _firmware.dat_file = os.path.basename(
            firmware_dict[FirmwareKeys.DAT_FILENAME]
        )
        if key == HexType.APPLICATION or key == HexType.EXTERNAL_APPLICATION:
            self.manifest.application = _firmware
        elif key == HexType.BOOTLOADER:
            self.manifest.bootloader = _firmware
        elif key == HexType.SOFTDEVICE:
            self.manifest.softdevice = _firmware
        elif key == HexType.SD_BL:
            self.manifest.softdevice_bootloader = _firmware
        else:
            raise NotImplementedError(
                "Support for firmware type {0} not implemented yet.".format(key)
            )
    return self.to_json()