in src/cfnlint/rules/resources/route53/RecordSet.py [0:0]
def check_recordset(self, path, recordset, cfn):
"""Check record configuration"""
matches = []
recordset_type = recordset.get('Type')
# Skip Intrinsic functions
if not isinstance(recordset_type, dict):
if not recordset.get('AliasTarget'):
# If no Alias is specified, ResourceRecords has to be specified
if not recordset.get('ResourceRecords'):
return matches
# Record type specific checks
if recordset_type == 'A':
matches.extend(
cfn.check_value(
recordset, 'ResourceRecords', path[:],
check_value=self.check_a_record,
)
)
elif recordset_type == 'AAAA':
matches.extend(
cfn.check_value(
recordset, 'ResourceRecords', path[:],
check_value=self.check_aaaa_record,
)
)
elif recordset_type == 'CAA':
matches.extend(
cfn.check_value(
recordset, 'ResourceRecords', path[:],
check_value=self.check_caa_record,
)
)
elif recordset_type == 'CNAME':
matches.extend(
self.count_c_names(
recordset.get('ResourceRecords'), path[:] + ['ResourceRecords'], cfn
)
)
matches.extend(
cfn.check_value(
recordset, 'ResourceRecords', path[:],
check_value=self.check_cname_record,
)
)
elif recordset_type == 'MX':
matches.extend(
cfn.check_value(
recordset, 'ResourceRecords', path[:],
check_value=self.check_mx_record,
)
)
elif recordset_type == 'NS':
matches.extend(
cfn.check_value(
recordset, 'ResourceRecords', path[:],
check_value=self.check_ns_record,
)
)
elif recordset_type == 'PTR':
matches.extend(
cfn.check_value(
recordset, 'ResourceRecords', path[:],
check_value=self.check_ptr_record,
)
)
elif recordset_type == 'TXT':
matches.extend(
cfn.check_value(
recordset, 'ResourceRecords', path[:],
check_value=self.check_txt_record,
)
)
else:
if recordset.get('TTL'):
matches.append(RuleMatch(path + ['TTL'], 'TTL is not allowed for Alias records'))
return matches