private Parameter CreateParameter(string location, ApiParameterDescription paramDesc, SchemaRegistry schemaRegistry) { var parameter = new Parameter { @in = location, name = paramDesc.Name, }; if (paramDesc.ParameterDescriptor == null) { parameter.type = "string"; parameter.required = true; } else { parameter.pattern = paramDesc.GetRegularExpressionAttribute()?.Pattern; parameter.required = location == "path" || !paramDesc.ParameterDescriptor.IsOptional; parameter.description = paramDesc.Documentation; if (parameter.description == null) { parameter.description = paramDesc.GetDescriptionAttribute()?.Description; } var schema = schemaRegistry.GetOrRegister(paramDesc.ParameterDescriptor.ParameterType); if (parameter.@in == "body") { parameter.schema = schema; } else { parameter.PopulateFrom(schema); } if (paramDesc.ParameterDescriptor.DefaultValue != null) { if (parameter.@enum != null && [email protected] > 0 && _options.DescribeAllEnumsAsStrings) { parameter.@default = paramDesc.ParameterDescriptor.DefaultValue.ToString(); } else { parameter.@default = paramDesc.ParameterDescriptor.DefaultValue; } } } return(parameter); }