in magenta-lib/src/main/scala/magenta/input/resolver/DeploymentTypeResolver.scala [30:74]
private[input] def resolveDeploymentActions(
deployment: PartiallyResolvedDeployment,
deploymentType: DeploymentType
): Validated[ConfigErrors, Deployment] = {
val actions = deployment.actions.orElse(
NonEmptyList.fromList(deploymentType.defaultActionNames)
)
val invalidActions = actions.flatMap(as =>
NonEmptyList.fromList(
as.filter(!deploymentType.actionsMap.isDefinedAt(_))
)
)
invalidActions
.map(invalids =>
Invalid(
ConfigErrors(
deployment.name,
s"Invalid action ${invalids.toList.mkString(", ")} for type ${deployment.`type`}"
)
)
)
.getOrElse {
Validated.fromOption(
actions.map(as =>
Deployment(
name = deployment.name,
`type` = deployment.`type`,
stacks = deployment.stacks,
regions = deployment.regions,
allowedStages = deployment.allowedStages,
actions = as,
app = deployment.app,
contentDirectory = deployment.contentDirectory,
dependencies = deployment.dependencies,
parameters = deployment.parameters
)
),
ConfigErrors(
deployment.name,
s"Either specify at least one action or omit the actions parameter"
)
)
}
}