@@ -255,6 +255,9 @@ class schemaDocument {
255
255
[object ]Find([string ]$item ) {
256
256
return (Find-SchemaElement - Schema $this - ElementName $item )
257
257
}
258
+ [object ]Find([string ]$item , [boolean ]$IsDefinition ) {
259
+ return (Find-SchemaElement - Schema $this - ElementName $item - Isdefinition:$IsDefinition )
260
+ }
258
261
[object ]ToString() {
259
262
return ($this | Select-Object * , @ {Name = ' $id' ; Exp = { $_.id } }, @ {Name = ' $schema' ; Exp = { $_.schema } }, @ {Name = ' $definitions' ; Exp = { $_.definitions } } - ExcludeProperty id, schema, definitions | ConvertTo-Json )
260
263
}
@@ -614,14 +617,18 @@ function Find-Element {
614
617
[parameter (Mandatory = $true , ParameterSetName = ' name' )]
615
618
[parameter (Mandatory = $true , ParameterSetName = ' type' )]
616
619
[parameter (Mandatory = $true , ParameterSetName = ' path' )]
620
+ [parameter (Mandatory = $true , ParameterSetName = ' definitions' )]
617
621
$Schema ,
618
622
[parameter (Mandatory = $false , ParameterSetName = ' name' )]
623
+ [parameter (Mandatory = $false , ParameterSetName = ' definitions' )]
619
624
[string ]$ElementName ,
620
625
[parameter (Mandatory = $false , ParameterSetName = ' type' )]
621
626
[ValidateSet (' schemaString' , ' schemaNumber' , ' schemaInteger' , ' schemaObject' , ' schemaBoolean' , ' schemaArray' , ' schemaDocument' )]
622
627
[string ]$ElementType ,
623
628
[parameter (Mandatory = $false , ParameterSetName = ' path' )]
624
- [string ]$ElementPath
629
+ [string ]$ElementPath ,
630
+ [parameter (Mandatory = $true , ParameterSetName = ' definitions' )]
631
+ [switch ]$IsDefinition
625
632
)
626
633
switch ($PSCmdlet.ParameterSetName ) {
627
634
' name' {
@@ -704,6 +711,21 @@ function Find-Element {
704
711
}
705
712
}
706
713
}
714
+ ' definitions' {
715
+ Write-Verbose " Definition Search"
716
+ if ($schema.GetType ().Name -eq ' schemaDocument' ) {
717
+ if ($schema.definitions.psobject.properties.name.Contains ($ElementName )) {
718
+ return $Schema.definitions .$ElementName
719
+ }
720
+ else {
721
+ $keys = $schema.definitions.psobject.properties.name
722
+ foreach ($key in $keys ) {
723
+ write-verbose $key
724
+ Find-SchemaElement - Schema ($Schema ) - ElementName $key - IsDefinition
725
+ }
726
+ }
727
+ }
728
+ }
707
729
}
708
730
}
709
731
function ConvertTo-Element {
0 commit comments