diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java index 7c7ba4ba73f1..01f486dcdae8 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java @@ -29,6 +29,7 @@ import org.openapitools.codegen.DefaultCodegen; import org.openapitools.codegen.SupportingFile; import org.openapitools.codegen.utils.ModelUtils; +import org.openapitools.codegen.utils.ProcessUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -425,6 +426,16 @@ public Map postProcessOperationsWithModels(Map o index++; } } + + return objs; + } + + @Override + public Map postProcessModels(Map objs) { + List models = (List) objs.get("models"); + // add x-index to properties + ProcessUtils.addIndexToProperties(models); return objs; } + } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ProcessUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ProcessUtils.java new file mode 100644 index 000000000000..c3943d67c9d0 --- /dev/null +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ProcessUtils.java @@ -0,0 +1,37 @@ +package org.openapitools.codegen.utils; + +import org.openapitools.codegen.CodegenModel; +import org.openapitools.codegen.CodegenProperty; + +import java.util.List; +import java.util.Map; + +public class ProcessUtils { + + /** + * Add x-index extension to the model's properties + * + * @param models List of models + */ + public static void addIndexToProperties(List models) { + for (Object _mo : models) { + Map mo = (Map) _mo; + CodegenModel cm = (CodegenModel) mo.get("model"); + + int i = 0; + for (CodegenProperty var : cm.vars) { + var.vendorExtensions.put("x-index", i); + i++; + } + + int j = 0; + for (CodegenProperty var : cm.allVars) { + var.vendorExtensions.put("x-index", j); + j++; + } + + } + + } + +} diff --git a/modules/openapi-generator/src/main/resources/powershell/model.mustache b/modules/openapi-generator/src/main/resources/powershell/model.mustache index 8d74516b1214..8c2452cd0273 100644 --- a/modules/openapi-generator/src/main/resources/powershell/model.mustache +++ b/modules/openapi-generator/src/main/resources/powershell/model.mustache @@ -4,7 +4,7 @@ function New-{{{classname}}} { [CmdletBinding()] Param ( {{#vars}} - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true{{#required}}, Mandatory = $true{{/required}})] + [Parameter(Position = {{vendorExtensions.x-index}}, ValueFromPipelineByPropertyName = $true{{#required}}, Mandatory = $true{{/required}})] [{{#isString}}{{{dataType}}}{{/isString}}{{^isString}}{{^required}}System.Nullable[{{/required}}{{dataType}}{{^required}}]{{/required}}{{/isString}}] {{=<% %>=}} ${<%name%>}<%^-last%>,<%/-last%> diff --git a/samples/client/petstore/powershell/.openapi-generator/VERSION b/samples/client/petstore/powershell/.openapi-generator/VERSION index 096bf47efe31..afa636560641 100644 --- a/samples/client/petstore/powershell/.openapi-generator/VERSION +++ b/samples/client/petstore/powershell/.openapi-generator/VERSION @@ -1 +1 @@ -3.0.0-SNAPSHOT \ No newline at end of file +4.0.0-SNAPSHOT \ No newline at end of file diff --git a/samples/client/petstore/powershell/src/Org.OpenAPITools/API/PetApi.ps1 b/samples/client/petstore/powershell/src/Org.OpenAPITools/API/PetApi.ps1 index b3f359df82ae..9eb13d258475 100644 --- a/samples/client/petstore/powershell/src/Org.OpenAPITools/API/PetApi.ps1 +++ b/samples/client/petstore/powershell/src/Org.OpenAPITools/API/PetApi.ps1 @@ -3,7 +3,7 @@ function Invoke-PetApiAddPet { Param ( [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] [Org.OpenAPITools.Model.Pet] - ${pet} + ${body} ) Process { @@ -11,7 +11,7 @@ function Invoke-PetApiAddPet { $PSBoundParameters | Out-DebugParameter | Write-Debug $Script:PetApi.AddPet( - ${pet} + ${body} ) } } @@ -97,7 +97,7 @@ function Invoke-PetApiUpdatePet { Param ( [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] [Org.OpenAPITools.Model.Pet] - ${pet} + ${body} ) Process { @@ -105,7 +105,7 @@ function Invoke-PetApiUpdatePet { $PSBoundParameters | Out-DebugParameter | Write-Debug $Script:PetApi.UpdatePet( - ${pet} + ${body} ) } } diff --git a/samples/client/petstore/powershell/src/Org.OpenAPITools/API/StoreApi.ps1 b/samples/client/petstore/powershell/src/Org.OpenAPITools/API/StoreApi.ps1 index cfd4cdc3b454..679176f56a24 100644 --- a/samples/client/petstore/powershell/src/Org.OpenAPITools/API/StoreApi.ps1 +++ b/samples/client/petstore/powershell/src/Org.OpenAPITools/API/StoreApi.ps1 @@ -53,7 +53,7 @@ function Invoke-StoreApiPlaceOrder { Param ( [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] [Org.OpenAPITools.Model.Order] - ${order} + ${body} ) Process { @@ -61,7 +61,7 @@ function Invoke-StoreApiPlaceOrder { $PSBoundParameters | Out-DebugParameter | Write-Debug $Script:StoreApi.PlaceOrder( - ${order} + ${body} ) } } diff --git a/samples/client/petstore/powershell/src/Org.OpenAPITools/API/UserApi.ps1 b/samples/client/petstore/powershell/src/Org.OpenAPITools/API/UserApi.ps1 index d716a6203af2..d8eea661dcc2 100644 --- a/samples/client/petstore/powershell/src/Org.OpenAPITools/API/UserApi.ps1 +++ b/samples/client/petstore/powershell/src/Org.OpenAPITools/API/UserApi.ps1 @@ -3,7 +3,7 @@ function Invoke-UserApiCreateUser { Param ( [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] [Org.OpenAPITools.Model.User] - ${user} + ${body} ) Process { @@ -11,7 +11,7 @@ function Invoke-UserApiCreateUser { $PSBoundParameters | Out-DebugParameter | Write-Debug $Script:UserApi.CreateUser( - ${user} + ${body} ) } } @@ -21,7 +21,7 @@ function Invoke-UserApiCreateUsersWithArrayInput { Param ( [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] [Org.OpenAPITools.Model.User[]] - ${user} + ${body} ) Process { @@ -29,7 +29,7 @@ function Invoke-UserApiCreateUsersWithArrayInput { $PSBoundParameters | Out-DebugParameter | Write-Debug $Script:UserApi.CreateUsersWithArrayInput( - ${user} + ${body} ) } } @@ -39,7 +39,7 @@ function Invoke-UserApiCreateUsersWithListInput { Param ( [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] [Org.OpenAPITools.Model.User[]] - ${user} + ${body} ) Process { @@ -47,7 +47,7 @@ function Invoke-UserApiCreateUsersWithListInput { $PSBoundParameters | Out-DebugParameter | Write-Debug $Script:UserApi.CreateUsersWithListInput( - ${user} + ${body} ) } } @@ -132,7 +132,7 @@ function Invoke-UserApiUpdateUser { ${username}, [Parameter(Position = 1, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] [Org.OpenAPITools.Model.User] - ${user} + ${body} ) Process { @@ -141,7 +141,7 @@ function Invoke-UserApiUpdateUser { $Script:UserApi.UpdateUser( ${username}, - ${user} + ${body} ) } } diff --git a/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-ApiResponse.ps1 b/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-ApiResponse.ps1 index 8a06938adffb..deab379454fe 100644 --- a/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-ApiResponse.ps1 +++ b/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-ApiResponse.ps1 @@ -4,10 +4,10 @@ function New-ApiResponse { [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] [System.Nullable[Int32]] ${code}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 1, ValueFromPipelineByPropertyName = $true)] [String] ${type}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 2, ValueFromPipelineByPropertyName = $true)] [String] ${message} ) diff --git a/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-Category.ps1 b/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-Category.ps1 index 7edb296a6d98..b6b263f54cfd 100644 --- a/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-Category.ps1 +++ b/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-Category.ps1 @@ -4,7 +4,7 @@ function New-Category { [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] [System.Nullable[Int64]] ${id}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 1, ValueFromPipelineByPropertyName = $true)] [String] ${name} ) diff --git a/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-Order.ps1 b/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-Order.ps1 index 0249b9783501..3393772475f5 100644 --- a/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-Order.ps1 +++ b/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-Order.ps1 @@ -4,19 +4,19 @@ function New-Order { [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] [System.Nullable[Int64]] ${id}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 1, ValueFromPipelineByPropertyName = $true)] [System.Nullable[Int64]] ${petId}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 2, ValueFromPipelineByPropertyName = $true)] [System.Nullable[Int32]] ${quantity}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 3, ValueFromPipelineByPropertyName = $true)] [System.Nullable[System.DateTime]] ${shipDate}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 4, ValueFromPipelineByPropertyName = $true)] [String] ${status}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 5, ValueFromPipelineByPropertyName = $true)] [System.Nullable[Boolean]] ${complete} ) diff --git a/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-Pet.ps1 b/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-Pet.ps1 index 8dc289ea18cc..733267b0ac61 100644 --- a/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-Pet.ps1 +++ b/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-Pet.ps1 @@ -4,19 +4,19 @@ function New-Pet { [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] [System.Nullable[Int64]] ${id}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 1, ValueFromPipelineByPropertyName = $true)] [System.Nullable[Org.OpenAPITools.Model.Category]] ${category}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Parameter(Position = 2, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] [String] ${name}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Parameter(Position = 3, ValueFromPipelineByPropertyName = $true, Mandatory = $true)] [String[]] ${photoUrls}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 4, ValueFromPipelineByPropertyName = $true)] [System.Nullable[Org.OpenAPITools.Model.Tag[]]] ${tags}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 5, ValueFromPipelineByPropertyName = $true)] [String] ${status} ) diff --git a/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-Tag.ps1 b/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-Tag.ps1 index d9e8ace5f968..e12f28e45330 100644 --- a/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-Tag.ps1 +++ b/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-Tag.ps1 @@ -4,7 +4,7 @@ function New-Tag { [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] [System.Nullable[Int64]] ${id}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 1, ValueFromPipelineByPropertyName = $true)] [String] ${name} ) diff --git a/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-User.ps1 b/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-User.ps1 index c99036be250f..1b3ae9b1ca42 100644 --- a/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-User.ps1 +++ b/samples/client/petstore/powershell/src/Org.OpenAPITools/Model/New-User.ps1 @@ -4,25 +4,25 @@ function New-User { [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] [System.Nullable[Int64]] ${id}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 1, ValueFromPipelineByPropertyName = $true)] [String] ${username}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 2, ValueFromPipelineByPropertyName = $true)] [String] ${firstName}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 3, ValueFromPipelineByPropertyName = $true)] [String] ${lastName}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 4, ValueFromPipelineByPropertyName = $true)] [String] ${email}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 5, ValueFromPipelineByPropertyName = $true)] [String] ${password}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 6, ValueFromPipelineByPropertyName = $true)] [String] ${phone}, - [Parameter(Position = 0, ValueFromPipelineByPropertyName = $true)] + [Parameter(Position = 7, ValueFromPipelineByPropertyName = $true)] [System.Nullable[Int32]] ${userStatus} )