def __init__(self, scope: core.Construct, stack_input: dict, **kwargs) -> None: # pylint: disable=R0912, R0915 super().__init__(scope, stack_input["input"]["name"], **kwargs) _pipeline_name = stack_input["input"]["name"] LOGGER.info("Pipeline creation/update of %s commenced", stack_input["input"]["name"]) _source_name = stack_input["input"]["default_providers"]["source"]["provider"].lower() _build_name = stack_input["input"]["default_providers"]["build"]["provider"].lower() _stages = [] _pipeline_type = stack_input["input"].get("params", {}).get("pipeline_type", "adf_default").lower() LOGGER.info(f"Pipeline Type is: {_pipeline_type}") if stack_input["input"].get("params", {}).get("notification_endpoint"): stack_input["input"]["topic_arn"] = adf_notifications.Notifications(self, "adf_notifications", stack_input["input"]).topic_arn if _pipeline_type == "adf_default": self.generate_default_adf_pipeline(_build_name, _pipeline_name, _source_name, _stages, stack_input) elif _pipeline_type == "strata": generate_skyscanner_strata_pipeline(self, _build_name, _pipeline_name, _source_name, _stages, stack_input) elif _pipeline_type == "ou": generate_skyscanner_ou_pipeline(self, _build_name, _pipeline_name, _source_name, _stages, stack_input)