in src/PSRule.Rules.Azure/Data/Template/TemplateVisitor.cs [1086:1111]
private static bool TryParameterType(ITemplateContext context, JObject parameter, out ParameterType? value)
{
value = null;
if (parameter == null)
throw new ArgumentNullException(nameof(parameter));
// Try $ref property.
if (parameter.TryGetProperty(PROPERTY_REF, out var type) &&
context.TryDefinition(type, out var definition))
{
value = new ParameterType(definition.Type, default, type);
}
// Try type property.
else if (parameter.TryTypeProperty(out type) && TypeHelpers.TryTypePrimitive(type, out var typePrimitive))
{
value = typePrimitive == TypePrimitive.Array && parameter.TryItemsTypeProperty(out var itemsType) ?
ParameterType.TryArrayType(type, itemsType, out var arrayType) ?
arrayType :
default :
ParameterType.TrySimpleType(type, out var typeSimple) ?
typeSimple :
default;
}
return value != null && value.Value.Type != TypePrimitive.None;
}