D8 Migration: Can 'Default Bundle in Destination Plugin be dynamic?
In your config, use a row instead of the default value plugin.

Instead of this:

process:
  type:
    plugin: default_value
    default_value: course
  title: title
  etc.


use this:

process:
  type: target_bundle
  title: title
  etc.


Then you can set the target_bundle dynamically in your source class's prepareRow function.

$row-&gt;setSourceProperty('target_bundle', $target_bundle);