CodeModelCsaf ITransformer <CodeModelCsaf> .TransformCodeModel(CodeModel cs) { var codeModel = cs as CodeModelCsaf; Settings.Instance.AddCredentials = true; // todo: these should be turned into individual transformers AzureExtensions.NormalizeAzureClientModel(codeModel); // Do parameter transformations TransformParameters(codeModel); // Fluent Specific stuff. MoveResourceTypeProperties(codeModel); // call this before normalizing the resource types NormalizeResourceTypes(codeModel); NormalizeTopLevelTypes(codeModel); UseSubResourceForResourceProperties(codeModel); NormalizeModelProperties(codeModel); NormalizePaginatedMethods(codeModel); NormalizeODataMethods(codeModel); NormalizeEnumTypesWithNoNames(codeModel); return(codeModel); }
public void ConvertsPageResultsToPageTypeTest() { using (NewContext) { var settings = new Settings { Input = Path.Combine(Core.Utilities.Extensions.CodeBaseDirectory, "Resource", "azure-paging.json") }; var modeler = new SwaggerModeler(); var codeModel = modeler.Build(); AzureExtensions.NormalizeAzureClientModel(codeModel); Assert.Equal(7, codeModel.Methods.Count); Assert.Equal(1, codeModel.Methods.Count(m => m.Name == "GetSinglePage")); Assert.Equal(0, codeModel.Methods.Count(m => m.Name == "GetSinglePageNext")); Assert.Equal(1, codeModel.Methods.Count(m => m.Name == "PutSinglePage")); Assert.Equal(1, codeModel.Methods.Count(m => m.Name == "PutSinglePageSpecialNext")); Assert.Equal("ProductResult", codeModel.Methods[0].ReturnType.Body.Name); Assert.Equal("object", codeModel.Methods[1].ReturnType.Body.Name.ToLowerInvariant()); Assert.Equal("ProductResult", codeModel.Methods[1].Responses.ElementAt(0).Value.Body.Name); Assert.Equal("string", codeModel.Methods[1].Responses.ElementAt(1).Value.Body.Name.ToLowerInvariant()); Assert.Equal("object", codeModel.Methods[2].ReturnType.Body.Name.ToLowerInvariant()); Assert.Equal("ProductResult", codeModel.Methods[2].Responses.ElementAt(0).Value.Body.Name); Assert.Equal("ProductResult2", codeModel.Methods[2].Responses.ElementAt(1).Value.Body.Name); Assert.Equal("object", codeModel.Methods[3].ReturnType.Body.Name.ToLowerInvariant()); Assert.Equal("ProductResult", codeModel.Methods[3].Responses.ElementAt(0).Value.Body.Name); Assert.Equal("ProductResult3", codeModel.Methods[3].Responses.ElementAt(1).Value.Body.Name); Assert.Equal(8, codeModel.ModelTypes.Count); } }
CodeModelCsa ITransformer <CodeModelCsa> .TransformCodeModel(CodeModel cs) { var codeModel = cs as CodeModelCsa; // we're guaranteed to be in our language-specific context here. Settings.Instance.AddCredentials = true; // add the Credentials // PopulateAdditionalProperties(codeModel); // Do parameter transformations TransformParameters(codeModel); // todo: these should be turned into individual transformers AzureExtensions.NormalizeAzureClientModel(codeModel); NormalizePaginatedMethods(codeModel); NormalizeODataMethods(codeModel); foreach (var model in codeModel.ModelTypes) { if (model.Extensions.ContainsKey(AzureExtensions.AzureResourceExtension) && (bool)model.Extensions[AzureExtensions.AzureResourceExtension]) { model.BaseModelType = New <ILiteralType>("Microsoft.Rest.Azure.IResource", new { SerializedName = "Microsoft.Rest.Azure.IResource" }) as CompositeType; } } return(codeModel); }
/// <summary> /// Normalizes client model by updating names and types to be language specific. /// </summary> /// <param name="serviceClient">The service client.</param> public override void NormalizeClientModel(ServiceClient serviceClient) { Settings.AddCredentials = true; AzureExtensions.NormalizeAzureClientModel(serviceClient, Settings, CodeNamer); CorrectFilterParameters(serviceClient); base.NormalizeClientModel(serviceClient); }
/// <summary> /// Normalizes client model by updating names and types to be language specific. /// </summary> /// <param name="serviceClient"></param> public override void NormalizeClientModel(ServiceClient serviceClient) { AzureExtensions.NormalizeAzureClientModel(serviceClient, Settings, _namer); _namer.NormalizeClientModel(serviceClient); _namer.ResolveNameCollisions(serviceClient, Settings.Namespace, Settings.Namespace + ".Models"); _namer.NormalizePaginatedMethods(serviceClient, pageClasses); }
public override CodeModel TransformCodeModel(CodeModel codeModel) { // we're guaranteed to be in our language-specific context here. Settings.Instance.AddCredentials = true; // todo: these should be turned into individual transformers AzureExtensions.NormalizeAzureClientModel(codeModel); return(codeModel); }
/// <summary> /// Normalizes client model by updating names and types to be language specific. /// </summary> /// <param name="serviceClient"></param> public override void NormalizeClientModel(ServiceClient serviceClient) { // MethodNames are normalized explicitly to provide a consitent method name while // generating cloned methods for long running operations with reserved words. For // example - beginDeleteMethod() insteadof beginDelete() as delete is a reserved word. Namer.NormalizeMethodNames(serviceClient); AzureExtensions.NormalizeAzureClientModel(serviceClient, Settings, Namer); base.NormalizeClientModel(serviceClient); NormalizeApiVersion(serviceClient); NormalizePaginatedMethods(serviceClient); ExtendAllResourcesToBaseResource(serviceClient); }
/// <summary> /// Normalizes client model by updating names and types to be language specific. /// </summary> /// <param name="serviceClient"></param> public override void NormalizeClientModel(ServiceClient serviceClient) { AzureExtensions.NormalizeAzureClientModel(serviceClient, Settings, _namer); _namer.NormalizeClientModel(serviceClient); _namer.ResolveNameCollisions(serviceClient, Settings.Namespace, Settings.Namespace + ".Models"); _namer.NormalizeResourceTypes(serviceClient); _namer.NormalizeTopLevelTypes(serviceClient); _namer.NormalizeModelProperties(serviceClient); _namer.NormalizePaginatedMethods(serviceClient, PageClasses); _namer.NormalizeODataMethods(serviceClient); }
CodeModelRba ITransformer <CodeModelRba> .TransformCodeModel(CodeModel cs) { var codeModel = cs as CodeModelRba; PopulateAdditionalProperties(codeModel); Singleton <Settings> .Instance.AddCredentials = true; AzureExtensions.NormalizeAzureClientModel(codeModel); CorrectFilterParameters(codeModel); AddRubyPageableMethod(codeModel); ApplyPagination(codeModel); return(codeModel); }
CodeModelTSa ITransformer <CodeModelTSa> .TransformCodeModel(CodeModel cm) { var codeModel = cm as CodeModelTSa; if (codeModel == null) { throw new InvalidCastException("Code Model is not a TypeScript Azure code model."); } // MethodNames are normalized explicitly to provide a consitent method name while // generating cloned methods for long running operations with reserved words. For // example - beginDeleteMethod() insteadof beginDelete() as delete is a reserved word. // Namer.NormalizeMethodNames(serviceClient); AzureExtensions.NormalizeAzureClientModel(codeModel); base.TransformCodeModel(codeModel); NormalizePaginatedMethods(codeModel); ExtendAllResourcesToBaseResource(codeModel); CreateModelTypeForOptionalClientProperties(codeModel); return(codeModel); }
CodeModelCsaf ITransformer <CodeModelCsaf> .TransformCodeModel(CodeModel cs) { var codeModel = cs as CodeModelCsaf; // Do parameter transformations TransformParameters(codeModel); // todo: these should be turned into individual transformers AzureExtensions.NormalizeAzureClientModel(codeModel); // Fluent Specific stuff. NormalizeResourceTypes(codeModel); NormalizeTopLevelTypes(codeModel); NormalizeModelProperties(codeModel); NormalizePaginatedMethods(codeModel); NormalizeODataMethods(codeModel); return(codeModel); }
/// <summary> /// Normalizes client model by updating names and types to be language specific. /// </summary> /// <param name="serviceClient"></param> public override void NormalizeClientModel(ServiceClient serviceClient) { AzureExtensions.NormalizeAzureClientModel(serviceClient, Settings); _namer.NormalizeClientModel(serviceClient); _namer.ResolveNameCollisions(serviceClient, Settings.Namespace, Settings.Namespace + ".Models"); _namer.NormalizePaginatedMethods(serviceClient, pageClasses); _namer.NormalizeODataMethods(serviceClient); if (serviceClient != null) { foreach (var model in serviceClient.ModelTypes) { if (model.Extensions.ContainsKey(AzureExtensions.AzureResourceExtension) && (bool)model.Extensions[AzureExtensions.AzureResourceExtension]) { model.BaseModelType = new CompositeType { Name = "IResource", SerializedName = "IResource" }; } } } }
public override void NormalizeClientModel(ServiceClient serviceClient) { AzureExtensions.NormalizeAzureClientModel(serviceClient, Settings); }
public override void NormalizeClientModel(ServiceClient serviceClient) { AzureExtensions.NormalizeAzureClientModel(serviceClient, Settings, new SampleAzureCodeNamer()); }