""" Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: MIT-0 """ from cfnlint.rules.resources.properties.BasedOnValue import BasedOnValue class RequiredBasedOnValue(BasedOnValue): """Check Required Properties are supplied when another property has a certain value""" id = "E3017" shortdesc = "Property is required based on another properties value" description = ( "When certain properties have a certain value it results in other properties being required. " "This rule will validate those required properties are specified when those values are supplied" ) tags = ["resources"] spec_type = "RequiredProperties" message = "should be specified" def _check_prop(self, prop, scenario): return prop not in scenario.get("Object")