Save Job Config(Scala)

Create Job Configuration for Orders Datamart

%run ./src/JobConfig
dbutils.widgets.text("inputKeyArn", "arn:aws:kms:us-west-2:997819012307:key/42722c32-db79-4b92-9db8-581ccdbf8a69", "Key ARN")
dbutils.widgets.text("inputJobName","Stage Orders Data Mart","Job Name")
val keyArn = dbutils.widgets.get("inputKeyArn")
val jobName = dbutils.widgets.get("inputJobName")
dbutils.widgets.text("inputJdbcDriver","mysql","Orders DB Driver")
dbutils.widgets.text("inputJdbcHostname","orders-cluster.cluster-cmeifwaki1jl.us-west-2.rds.amazonaws.com","Orders DB Hostname")
dbutils.widgets.text("inputJdbcPort","3306","Orders DB Port")
dbutils.widgets.text("inputJdbcDatabase","orders","Orders DB Name")
dbutils.widgets.text("inputJdbcUsername","etluser","Orders DB User")
dbutils.widgets.text("inputJdbcPassword","","Orders DB Password")

val jdbcConnectionName = "Orders Database"
val jdbcDriver = dbutils.widgets.get("inputJdbcDriver")
val jdbcHostname = dbutils.widgets.get("inputJdbcHostname")
val jdbcPort = dbutils.widgets.get("inputJdbcPort")
val jdbcDatabase = dbutils.widgets.get("inputJdbcDatabase")
val jdbcUsername = dbutils.widgets.get("inputJdbcUsername")
val jdbcPassword = dbutils.widgets.get("inputJdbcPassword")
val martConnectionName = "Orders Datamart"

dbutils.widgets.text("inputDatamartPath","s3a://prod-datamart","Data Mart Path")
val martPath = dbutils.widgets.get("inputDatamartPath")
import com.databricks.solutions.etl.config._

val ordersDbProperties = Map("driver" -> jdbcDriver,
  "hostname" -> jdbcHostname,
  "port" -> jdbcPort,
  "username" -> jdbcUsername,
  "database" -> jdbcDatabase)

val ordersDbConn = new Connection(jdbcConnectionName, "jdbc", ordersDbProperties)
  .withPropertyToEncryt(keyArn, "password", jdbcPassword)

val martConn = new Connection(martConnectionName, "file", Map("path" -> martPath))

val jobConfig = new JobConfig(jobName, Seq(ordersDbConn,martConn).toArray)
dbutils.fs.put("s3a://prod-etl-config/StageOrdersDataMart.json",jobConfig.toJson,true)