in internal/langserver/schema/schema.go [104:142]
func GetAllowedProperties(resourceType *types.TypeBase) []Property {
if resourceType == nil {
return []Property{}
}
props := make([]Property, 0)
switch t := (*resourceType).(type) {
case *types.ArrayType:
return props
case *types.DiscriminatedObjectType:
for key, value := range t.BaseProperties {
if prop := PropertyFromObjectProperty(key, value); prop != nil {
props = append(props, *prop)
}
}
for _, discriminator := range t.Elements {
props = append(props, GetAllowedProperties(discriminator.Type)...)
}
case *types.ObjectType:
for key, value := range t.Properties {
if prop := PropertyFromObjectProperty(key, value); prop != nil {
props = append(props, *prop)
}
}
if t.AdditionalProperties != nil {
props = append(props, GetAllowedProperties(t.AdditionalProperties.Type)...)
}
case *types.ResourceType:
if t.Body != nil {
return GetAllowedProperties(t.Body.Type)
}
case *types.AnyType:
case *types.BooleanType:
case *types.IntegerType:
case *types.StringType:
case *types.StringLiteralType:
case *types.UnionType:
}
return props
}