in magenta-lib/src/main/scala/magenta/input/resolver/DeploymentResolver.scala [37:73]
private[input] def resolveDeployment(
label: String,
templated: DeploymentOrTemplate,
globalStacks: Option[List[String]],
globalRegions: Option[List[String]],
globalAllowedStages: Option[List[String]]
): Validated[ConfigErrors, PartiallyResolvedDeployment] = {
(
(
Validated.fromOption(
templated.`type`,
ConfigErrors(label, "No type field provided")
),
Validated.fromOption(
templated.stacks.orElse(globalStacks).flatMap(NEL.fromList),
ConfigErrors(label, "No stacks provided")
),
Validated.fromOption(
templated.regions.orElse(globalRegions).flatMap(NEL.fromList),
ConfigErrors(label, "No regions provided")
)
)
).mapN { case (deploymentType, stacks, regions) =>
PartiallyResolvedDeployment(
name = label,
`type` = deploymentType,
stacks = stacks,
regions = regions,
allowedStages = globalAllowedStages.flatMap(NEL.fromList),
actions = templated.actions.flatMap(NEL.fromList),
app = templated.app.getOrElse(label),
contentDirectory = templated.contentDirectory.getOrElse(label),
dependencies = templated.dependencies.getOrElse(Nil),
parameters = templated.parameters.getOrElse(Map.empty)
)
}
}