public Parameter Build() { string parameterName = _swaggerParameter.Name; SwaggerParameter unwrappedParameter = _swaggerParameter; if (_swaggerParameter.Reference != null) { unwrappedParameter = Modeler.Unwrap(_swaggerParameter); } if (unwrappedParameter.Schema != null && unwrappedParameter.Schema.Reference != null) { parameterName = unwrappedParameter.Schema.Reference.StripComponentsSchemaPath(); } if (parameterName == null) { parameterName = unwrappedParameter.Name; } var isRequired = unwrappedParameter.IsRequired || unwrappedParameter.In == AutoRest.Modeler.Model.ParameterLocation.Path; unwrappedParameter.IsRequired = isRequired; if (unwrappedParameter.Extensions.ContainsKey("x-ms-enum") && !unwrappedParameter.Schema.Extensions.ContainsKey("x-ms-enum")) { unwrappedParameter.Schema.Extensions["x-ms-enum"] = unwrappedParameter.Extensions["x-ms-enum"]; } IModelType parameterType = BuildServiceType(parameterName, isRequired); var parameter = New <Parameter>(new { Name = unwrappedParameter.Name, SerializedName = unwrappedParameter.Name, ModelType = parameterType, Location = (Core.Model.ParameterLocation)Enum.Parse(typeof(Core.Model.ParameterLocation), unwrappedParameter.In.ToString()) }); // translate allowReserved back to what "code-model-v1"-gen generators expect if (unwrappedParameter.AllowReserved.HasValue && !parameter.Extensions.ContainsKey("x-ms-skip-url-encoding")) { parameter.Extensions["x-ms-skip-url-encoding"] = unwrappedParameter.AllowReserved.Value; } PopulateParameter(parameter, unwrappedParameter); parameter.DeprecationMessage = unwrappedParameter.GetDeprecationMessage(EntityType.Parameter); if (_swaggerParameter.Reference != null) { var clientProperty = Modeler.CodeModel.Properties.FirstOrDefault(p => p.SerializedName == unwrappedParameter.Name); parameter.ClientProperty = clientProperty; } return(parameter); }