diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/SpecReferences.xml b/src/Elastic.Clients.Elasticsearch/_Generated/SpecReferences.xml index 19572ea8950..469bbdcf883 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/SpecReferences.xml +++ b/src/Elastic.Clients.Elasticsearch/_Generated/SpecReferences.xml @@ -3,15155 +3,15155 @@ - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification - View specification + View specification diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/AggregateDictionary.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/AggregateDictionary.Converters.g.cs index 8b4298d3fdb..5a0229eb5f9 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/AggregateDictionary.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/AggregateDictionary.Converters.g.cs @@ -137,7 +137,7 @@ internal static void ReadItem(ref System.Text.Json.Utf8JsonReader reader, System "value_count" => reader.ReadValue(options, null), "variable_width_histogram" => reader.ReadValue(options, null), "weighted_avg" => reader.ReadValue(options, null), - _ => throw new System.Text.Json.JsonException($"Variant '{discriminator}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Aggregations.IAggregate)}'.") + _ => options.TryGetContext(out var settings) && settings.Variants.TryGetReader(discriminator!, out var variantReader) ? variantReader(ref reader, options)! : new Elastic.Clients.Elasticsearch.Aggregations.UnknownAggregate(discriminator!, System.Text.Json.JsonElement.ParseValue(ref reader)) }; } @@ -365,8 +365,24 @@ internal static void WriteItem(System.Text.Json.Utf8JsonWriter writer, System.Te case Elastic.Clients.Elasticsearch.Aggregations.WeightedAverageAggregate v: writer.WriteProperty(options, key, v, static (System.Text.Json.Utf8JsonWriter w, System.Text.Json.JsonSerializerOptions o, string v) => w.WritePropertyName(o, v), static (System.Text.Json.Utf8JsonWriter w, System.Text.Json.JsonSerializerOptions o, Elastic.Clients.Elasticsearch.Aggregations.WeightedAverageAggregate v) => w.WritePropertyName(o, v)); break; + case Elastic.Clients.Elasticsearch.Aggregations.UnknownAggregate custom: + writer.WritePropertyName(options, key, static (System.Text.Json.Utf8JsonWriter w, System.Text.Json.JsonSerializerOptions o, string v) => w.WritePropertyName(o, v)); + custom.Content.WriteTo(writer); + break; default: - throw new System.Text.Json.JsonException($"Variant '{0}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Aggregations.IAggregate)}'."); + if (options.TryGetContext(out var settings) && settings.Variants.TryGetWriter(value.GetType(), out var variantWriter)) + { + if (!string.Equals(value.Type, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Variant of runtime type '{value.GetType().Name}' is registered for discriminator '{variantWriter.Discriminator}' but reports '{value.Type}' for type '{nameof(Elastic.Clients.Elasticsearch.Aggregations.IAggregate)}'."); + } + + writer.WritePropertyName(options, variantWriter.Discriminator + '#' + name, static (System.Text.Json.Utf8JsonWriter w, System.Text.Json.JsonSerializerOptions o, string v) => w.WritePropertyName(o, v)); + variantWriter.Write(writer, value, options); + break; + } + + throw new System.Text.Json.JsonException($"Variant of runtime type '{value.GetType().Name}' with discriminator '{value.Type}' is not registered. Call settings.Variants.Register<{nameof(Elastic.Clients.Elasticsearch.Aggregations.IAggregate)}, T>(\"{value.Type}\") at startup."); } } } \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Aggregation.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Aggregation.Converters.g.cs index ad3e2df7dd6..fd72191d5b6 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Aggregation.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Aggregation.Converters.g.cs @@ -769,13 +769,18 @@ public override Elastic.Clients.Elasticsearch.Aggregations.Aggregation Read(ref continue; } - if (options.UnmappedMemberHandling is System.Text.Json.Serialization.JsonUnmappedMemberHandling.Skip) + variantType = reader.GetString()!; + reader.Read(); + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerReader(typeof(Elastic.Clients.Elasticsearch.Aggregations.Aggregation), variantType!, out var variantReader)) { - reader.SafeSkip(); - continue; + variant = variantReader(ref reader, options); + } + else + { + variant = System.Text.Json.JsonElement.ParseValue(ref reader); } - throw new System.Text.Json.JsonException($"Unknown JSON property '{reader.GetString()}' for type '{typeToConvert.Name}'."); + continue; } reader.ValidateToken(System.Text.Json.JsonTokenType.EndObject); @@ -1036,7 +1041,31 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteProperty(options, value.VariantType, (Elastic.Clients.Elasticsearch.Aggregations.WeightedAverageAggregation)value.Variant, null, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.VariantType}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Aggregations.Aggregation)}'."); + if (value.Variant is null) + { + break; + } + + if (value.Variant is System.Text.Json.JsonElement element) + { + writer.WritePropertyName(value.VariantType!); + element.WriteTo(writer); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerWriter(typeof(Elastic.Clients.Elasticsearch.Aggregations.Aggregation), value.Variant.GetType(), out var variantWriter)) + { + if (!string.Equals(value.VariantType, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' is registered for variant name '{variantWriter.Discriminator}' but reports '{value.VariantType}' for type '{nameof(Elastic.Clients.Elasticsearch.Aggregations.Aggregation)}'."); + } + + writer.WritePropertyName(variantWriter.Discriminator); + variantWriter.Write(writer, value.Variant, options); + break; + } + + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' for variant '{value.VariantType}' is not registered. Call settings.Variants.RegisterContainer<{nameof(Elastic.Clients.Elasticsearch.Aggregations.Aggregation)}, T>(\"{value.VariantType}\") at startup."); } writer.WriteProperty(options, PropAggregations, value.Aggregations, null, static (System.Text.Json.Utf8JsonWriter w, System.Text.Json.JsonSerializerOptions o, System.Collections.Generic.IDictionary? v) => w.WriteDictionaryValue(o, v, null, null)); diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Aggregation.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Aggregation.g.cs index dd89ec9ef27..2d47f60fb12 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Aggregation.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/Aggregation.g.cs @@ -218,6 +218,20 @@ private void SetVariant(string type, T? value) VariantType = type; Variant = value; } + + public string? VariantName { get => VariantType; } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public T? GetCustomVariant(string variantName) + { + return GetVariant(variantName); + } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void SetCustomVariant(string variantName, T? value) + { + SetVariant(variantName, value); + } } public readonly partial struct AggregationDescriptor @@ -1670,6 +1684,13 @@ public Elastic.Clients.Elasticsearch.Aggregations.AggregationDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.Aggregations.Aggregation Build(System.Action> action) { @@ -3472,6 +3493,13 @@ public Elastic.Clients.Elasticsearch.Aggregations.AggregationDescriptor AddMeta( return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.Aggregations.AggregationDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.Aggregations.Aggregation Build(System.Action action) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/UnknownAggregate.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/UnknownAggregate.g.cs new file mode 100644 index 00000000000..f759473355f --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Aggregations/UnknownAggregate.g.cs @@ -0,0 +1,46 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +#nullable restore + +using System; +using System.Linq; +using Elastic.Clients.Elasticsearch.Serialization; + +namespace Elastic.Clients.Elasticsearch.Aggregations; + +public sealed partial class UnknownAggregate : Elastic.Clients.Elasticsearch.Aggregations.IAggregate +{ + public string Type { get; } + public System.Text.Json.JsonElement Content { get; } + + public UnknownAggregate(string type, System.Text.Json.JsonElement content) + { + if (type is null) + { + throw new System.ArgumentNullException(nameof(type)); + } + + if (content.ValueKind is not System.Text.Json.JsonValueKind.Object) + { + throw new System.ArgumentException($"Content must be a JSON object, but got '{content.ValueKind}'.", nameof(content)); + } + + Type = type; + Content = content; + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Analyzer.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Analyzer.Converters.g.cs index 884c7a031cc..df8109df6f9 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Analyzer.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Analyzer.Converters.g.cs @@ -94,7 +94,7 @@ public override Elastic.Clients.Elasticsearch.Analysis.IAnalyzer Read(ref System "thai" => reader.ReadValue(options, null), "turkish" => reader.ReadValue(options, null), "whitespace" => reader.ReadValue(options, null), - _ => throw new System.Text.Json.JsonException($"Variant '{discriminator}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Analysis.IAnalyzer)}'.") + _ => ReadCustomVariant(ref reader, options, discriminator!) }; } @@ -250,7 +250,34 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteValue(options, (Elastic.Clients.Elasticsearch.Analysis.WhitespaceAnalyzer)value, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.Type}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Analysis.IAnalyzer)}'."); + if (value is Elastic.Clients.Elasticsearch.Analysis.UnknownAnalyzer custom) + { + writer.WriteValue(options, custom, null); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetWriter(value.GetType(), out var variantWriter)) + { + if (!string.Equals(value.Type, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Variant of runtime type '{value.GetType().Name}' is registered for discriminator '{variantWriter.Discriminator}' but reports '{value.Type}' for type '{nameof(Elastic.Clients.Elasticsearch.Analysis.IAnalyzer)}'."); + } + + variantWriter.Write(writer, value, options); + break; + } + + throw new System.Text.Json.JsonException($"Variant of runtime type '{value.GetType().Name}' with discriminator '{value.Type}' is not registered. Call settings.Variants.Register<{nameof(Elastic.Clients.Elasticsearch.Analysis.IAnalyzer)}, T>(\"{value.Type}\") at startup."); } } + + private static Elastic.Clients.Elasticsearch.Analysis.IAnalyzer ReadCustomVariant(ref System.Text.Json.Utf8JsonReader reader, System.Text.Json.JsonSerializerOptions options, string discriminator) + { + if (options.TryGetContext(out var settings) && settings.Variants.TryGetReader(discriminator, out var variantReader)) + { + return variantReader(ref reader, options)!; + } + + return reader.ReadValue(options)!; + } } \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/CharFilter.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/CharFilter.Converters.g.cs index 68ac27851e9..34de9a2ab2c 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/CharFilter.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/CharFilter.Converters.g.cs @@ -50,7 +50,7 @@ public override Elastic.Clients.Elasticsearch.Analysis.ICharFilter Read(ref Syst "kuromoji_iteration_mark" => reader.ReadValue(options, null), "mapping" => reader.ReadValue(options, null), "pattern_replace" => reader.ReadValue(options, null), - _ => throw new System.Text.Json.JsonException($"Variant '{discriminator}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Analysis.ICharFilter)}'.") + _ => ReadCustomVariant(ref reader, options, discriminator!) }; } @@ -74,7 +74,34 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteValue(options, (Elastic.Clients.Elasticsearch.Analysis.PatternReplaceCharFilter)value, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.Type}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Analysis.ICharFilter)}'."); + if (value is Elastic.Clients.Elasticsearch.Analysis.UnknownCharFilter custom) + { + writer.WriteValue(options, custom, null); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetWriter(value.GetType(), out var variantWriter)) + { + if (!string.Equals(value.Type, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Variant of runtime type '{value.GetType().Name}' is registered for discriminator '{variantWriter.Discriminator}' but reports '{value.Type}' for type '{nameof(Elastic.Clients.Elasticsearch.Analysis.ICharFilter)}'."); + } + + variantWriter.Write(writer, value, options); + break; + } + + throw new System.Text.Json.JsonException($"Variant of runtime type '{value.GetType().Name}' with discriminator '{value.Type}' is not registered. Call settings.Variants.Register<{nameof(Elastic.Clients.Elasticsearch.Analysis.ICharFilter)}, T>(\"{value.Type}\") at startup."); } } + + private static Elastic.Clients.Elasticsearch.Analysis.ICharFilter ReadCustomVariant(ref System.Text.Json.Utf8JsonReader reader, System.Text.Json.JsonSerializerOptions options, string discriminator) + { + if (options.TryGetContext(out var settings) && settings.Variants.TryGetReader(discriminator, out var variantReader)) + { + return variantReader(ref reader, options)!; + } + + return reader.ReadValue(options)!; + } } \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/TokenFilter.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/TokenFilter.Converters.g.cs index 799c9ba84d0..2c72194e783 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/TokenFilter.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/TokenFilter.Converters.g.cs @@ -119,7 +119,7 @@ public override Elastic.Clients.Elasticsearch.Analysis.ITokenFilter Read(ref Sys "uppercase" => reader.ReadValue(options, null), "word_delimiter" => reader.ReadValue(options, null), "word_delimiter_graph" => reader.ReadValue(options, null), - _ => throw new System.Text.Json.JsonException($"Variant '{discriminator}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Analysis.ITokenFilter)}'.") + _ => ReadCustomVariant(ref reader, options, discriminator!) }; } @@ -350,7 +350,34 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteValue(options, (Elastic.Clients.Elasticsearch.Analysis.WordDelimiterGraphTokenFilter)value, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.Type}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Analysis.ITokenFilter)}'."); + if (value is Elastic.Clients.Elasticsearch.Analysis.UnknownTokenFilter custom) + { + writer.WriteValue(options, custom, null); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetWriter(value.GetType(), out var variantWriter)) + { + if (!string.Equals(value.Type, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Variant of runtime type '{value.GetType().Name}' is registered for discriminator '{variantWriter.Discriminator}' but reports '{value.Type}' for type '{nameof(Elastic.Clients.Elasticsearch.Analysis.ITokenFilter)}'."); + } + + variantWriter.Write(writer, value, options); + break; + } + + throw new System.Text.Json.JsonException($"Variant of runtime type '{value.GetType().Name}' with discriminator '{value.Type}' is not registered. Call settings.Variants.Register<{nameof(Elastic.Clients.Elasticsearch.Analysis.ITokenFilter)}, T>(\"{value.Type}\") at startup."); } } + + private static Elastic.Clients.Elasticsearch.Analysis.ITokenFilter ReadCustomVariant(ref System.Text.Json.Utf8JsonReader reader, System.Text.Json.JsonSerializerOptions options, string discriminator) + { + if (options.TryGetContext(out var settings) && settings.Variants.TryGetReader(discriminator, out var variantReader)) + { + return variantReader(ref reader, options)!; + } + + return reader.ReadValue(options)!; + } } \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Tokenizer.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Tokenizer.Converters.g.cs index 86b93a2a664..111c98cb51c 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Tokenizer.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/Tokenizer.Converters.g.cs @@ -63,7 +63,7 @@ public override Elastic.Clients.Elasticsearch.Analysis.ITokenizer Read(ref Syste "thai" => reader.ReadValue(options, null), "uax_url_email" => reader.ReadValue(options, null), "whitespace" => reader.ReadValue(options, null), - _ => throw new System.Text.Json.JsonException($"Variant '{discriminator}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Analysis.ITokenizer)}'.") + _ => ReadCustomVariant(ref reader, options, discriminator!) }; } @@ -126,7 +126,34 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteValue(options, (Elastic.Clients.Elasticsearch.Analysis.WhitespaceTokenizer)value, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.Type}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Analysis.ITokenizer)}'."); + if (value is Elastic.Clients.Elasticsearch.Analysis.UnknownTokenizer custom) + { + writer.WriteValue(options, custom, null); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetWriter(value.GetType(), out var variantWriter)) + { + if (!string.Equals(value.Type, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Variant of runtime type '{value.GetType().Name}' is registered for discriminator '{variantWriter.Discriminator}' but reports '{value.Type}' for type '{nameof(Elastic.Clients.Elasticsearch.Analysis.ITokenizer)}'."); + } + + variantWriter.Write(writer, value, options); + break; + } + + throw new System.Text.Json.JsonException($"Variant of runtime type '{value.GetType().Name}' with discriminator '{value.Type}' is not registered. Call settings.Variants.Register<{nameof(Elastic.Clients.Elasticsearch.Analysis.ITokenizer)}, T>(\"{value.Type}\") at startup."); } } + + private static Elastic.Clients.Elasticsearch.Analysis.ITokenizer ReadCustomVariant(ref System.Text.Json.Utf8JsonReader reader, System.Text.Json.JsonSerializerOptions options, string discriminator) + { + if (options.TryGetContext(out var settings) && settings.Variants.TryGetReader(discriminator, out var variantReader)) + { + return variantReader(ref reader, options)!; + } + + return reader.ReadValue(options)!; + } } \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownAnalyzer.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownAnalyzer.Converters.g.cs new file mode 100644 index 00000000000..f4e4c8f919a --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownAnalyzer.Converters.g.cs @@ -0,0 +1,64 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +#nullable restore + +using System; +using System.Linq; +using Elastic.Clients.Elasticsearch.Serialization; + +namespace Elastic.Clients.Elasticsearch.Analysis.Json; + +public sealed partial class UnknownAnalyzerConverter : System.Text.Json.Serialization.JsonConverter +{ + private static readonly string DiscriminatorName = "type"; + + public override Elastic.Clients.Elasticsearch.Analysis.UnknownAnalyzer Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) + { + var content = System.Text.Json.JsonElement.ParseValue(ref reader); + if (content.ValueKind is not System.Text.Json.JsonValueKind.Object) + { + throw new System.Text.Json.JsonException($"Expected a JSON object for '{nameof(Elastic.Clients.Elasticsearch.Analysis.UnknownAnalyzer)}', but got '{content.ValueKind}'."); + } + + var type = content.TryGetProperty(DiscriminatorName, out var discriminator) ? discriminator.GetString() : null; + if (type is null) + { + throw new System.Text.Json.JsonException($"Missing required '{DiscriminatorName}' discriminator for '{nameof(Elastic.Clients.Elasticsearch.Analysis.UnknownAnalyzer)}'."); + } + + return new Elastic.Clients.Elasticsearch.Analysis.UnknownAnalyzer(type, content); + } + + public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clients.Elasticsearch.Analysis.UnknownAnalyzer value, System.Text.Json.JsonSerializerOptions options) + { + writer.WriteStartObject(); + writer.WriteString(DiscriminatorName, value.Type); + if (value.Content.ValueKind is System.Text.Json.JsonValueKind.Object) + { + foreach (var property in value.Content.EnumerateObject()) + { + if (!property.NameEquals(DiscriminatorName)) + { + property.WriteTo(writer); + } + } + } + + writer.WriteEndObject(); + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownAnalyzer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownAnalyzer.g.cs new file mode 100644 index 00000000000..b1a961c22a6 --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownAnalyzer.g.cs @@ -0,0 +1,47 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +#nullable restore + +using System; +using System.Linq; +using Elastic.Clients.Elasticsearch.Serialization; + +namespace Elastic.Clients.Elasticsearch.Analysis; + +[System.Text.Json.Serialization.JsonConverter(typeof(Elastic.Clients.Elasticsearch.Analysis.Json.UnknownAnalyzerConverter))] +public sealed partial class UnknownAnalyzer : Elastic.Clients.Elasticsearch.Analysis.IAnalyzer +{ + public string Type { get; } + public System.Text.Json.JsonElement Content { get; } + + public UnknownAnalyzer(string type, System.Text.Json.JsonElement content) + { + if (type is null) + { + throw new System.ArgumentNullException(nameof(type)); + } + + if (content.ValueKind is not System.Text.Json.JsonValueKind.Object) + { + throw new System.ArgumentException($"Content must be a JSON object, but got '{content.ValueKind}'.", nameof(content)); + } + + Type = type; + Content = content; + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownCharFilter.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownCharFilter.Converters.g.cs new file mode 100644 index 00000000000..5be07e3c6bc --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownCharFilter.Converters.g.cs @@ -0,0 +1,64 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +#nullable restore + +using System; +using System.Linq; +using Elastic.Clients.Elasticsearch.Serialization; + +namespace Elastic.Clients.Elasticsearch.Analysis.Json; + +public sealed partial class UnknownCharFilterConverter : System.Text.Json.Serialization.JsonConverter +{ + private static readonly string DiscriminatorName = "type"; + + public override Elastic.Clients.Elasticsearch.Analysis.UnknownCharFilter Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) + { + var content = System.Text.Json.JsonElement.ParseValue(ref reader); + if (content.ValueKind is not System.Text.Json.JsonValueKind.Object) + { + throw new System.Text.Json.JsonException($"Expected a JSON object for '{nameof(Elastic.Clients.Elasticsearch.Analysis.UnknownCharFilter)}', but got '{content.ValueKind}'."); + } + + var type = content.TryGetProperty(DiscriminatorName, out var discriminator) ? discriminator.GetString() : null; + if (type is null) + { + throw new System.Text.Json.JsonException($"Missing required '{DiscriminatorName}' discriminator for '{nameof(Elastic.Clients.Elasticsearch.Analysis.UnknownCharFilter)}'."); + } + + return new Elastic.Clients.Elasticsearch.Analysis.UnknownCharFilter(type, content); + } + + public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clients.Elasticsearch.Analysis.UnknownCharFilter value, System.Text.Json.JsonSerializerOptions options) + { + writer.WriteStartObject(); + writer.WriteString(DiscriminatorName, value.Type); + if (value.Content.ValueKind is System.Text.Json.JsonValueKind.Object) + { + foreach (var property in value.Content.EnumerateObject()) + { + if (!property.NameEquals(DiscriminatorName)) + { + property.WriteTo(writer); + } + } + } + + writer.WriteEndObject(); + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownCharFilter.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownCharFilter.g.cs new file mode 100644 index 00000000000..ab0ace95215 --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownCharFilter.g.cs @@ -0,0 +1,47 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +#nullable restore + +using System; +using System.Linq; +using Elastic.Clients.Elasticsearch.Serialization; + +namespace Elastic.Clients.Elasticsearch.Analysis; + +[System.Text.Json.Serialization.JsonConverter(typeof(Elastic.Clients.Elasticsearch.Analysis.Json.UnknownCharFilterConverter))] +public sealed partial class UnknownCharFilter : Elastic.Clients.Elasticsearch.Analysis.ICharFilter +{ + public string Type { get; } + public System.Text.Json.JsonElement Content { get; } + + public UnknownCharFilter(string type, System.Text.Json.JsonElement content) + { + if (type is null) + { + throw new System.ArgumentNullException(nameof(type)); + } + + if (content.ValueKind is not System.Text.Json.JsonValueKind.Object) + { + throw new System.ArgumentException($"Content must be a JSON object, but got '{content.ValueKind}'.", nameof(content)); + } + + Type = type; + Content = content; + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownTokenFilter.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownTokenFilter.Converters.g.cs new file mode 100644 index 00000000000..1925d4930d3 --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownTokenFilter.Converters.g.cs @@ -0,0 +1,64 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +#nullable restore + +using System; +using System.Linq; +using Elastic.Clients.Elasticsearch.Serialization; + +namespace Elastic.Clients.Elasticsearch.Analysis.Json; + +public sealed partial class UnknownTokenFilterConverter : System.Text.Json.Serialization.JsonConverter +{ + private static readonly string DiscriminatorName = "type"; + + public override Elastic.Clients.Elasticsearch.Analysis.UnknownTokenFilter Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) + { + var content = System.Text.Json.JsonElement.ParseValue(ref reader); + if (content.ValueKind is not System.Text.Json.JsonValueKind.Object) + { + throw new System.Text.Json.JsonException($"Expected a JSON object for '{nameof(Elastic.Clients.Elasticsearch.Analysis.UnknownTokenFilter)}', but got '{content.ValueKind}'."); + } + + var type = content.TryGetProperty(DiscriminatorName, out var discriminator) ? discriminator.GetString() : null; + if (type is null) + { + throw new System.Text.Json.JsonException($"Missing required '{DiscriminatorName}' discriminator for '{nameof(Elastic.Clients.Elasticsearch.Analysis.UnknownTokenFilter)}'."); + } + + return new Elastic.Clients.Elasticsearch.Analysis.UnknownTokenFilter(type, content); + } + + public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clients.Elasticsearch.Analysis.UnknownTokenFilter value, System.Text.Json.JsonSerializerOptions options) + { + writer.WriteStartObject(); + writer.WriteString(DiscriminatorName, value.Type); + if (value.Content.ValueKind is System.Text.Json.JsonValueKind.Object) + { + foreach (var property in value.Content.EnumerateObject()) + { + if (!property.NameEquals(DiscriminatorName)) + { + property.WriteTo(writer); + } + } + } + + writer.WriteEndObject(); + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownTokenFilter.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownTokenFilter.g.cs new file mode 100644 index 00000000000..751a25ffae0 --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownTokenFilter.g.cs @@ -0,0 +1,47 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +#nullable restore + +using System; +using System.Linq; +using Elastic.Clients.Elasticsearch.Serialization; + +namespace Elastic.Clients.Elasticsearch.Analysis; + +[System.Text.Json.Serialization.JsonConverter(typeof(Elastic.Clients.Elasticsearch.Analysis.Json.UnknownTokenFilterConverter))] +public sealed partial class UnknownTokenFilter : Elastic.Clients.Elasticsearch.Analysis.ITokenFilter +{ + public string Type { get; } + public System.Text.Json.JsonElement Content { get; } + + public UnknownTokenFilter(string type, System.Text.Json.JsonElement content) + { + if (type is null) + { + throw new System.ArgumentNullException(nameof(type)); + } + + if (content.ValueKind is not System.Text.Json.JsonValueKind.Object) + { + throw new System.ArgumentException($"Content must be a JSON object, but got '{content.ValueKind}'.", nameof(content)); + } + + Type = type; + Content = content; + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownTokenizer.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownTokenizer.Converters.g.cs new file mode 100644 index 00000000000..47eec3d636f --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownTokenizer.Converters.g.cs @@ -0,0 +1,64 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +#nullable restore + +using System; +using System.Linq; +using Elastic.Clients.Elasticsearch.Serialization; + +namespace Elastic.Clients.Elasticsearch.Analysis.Json; + +public sealed partial class UnknownTokenizerConverter : System.Text.Json.Serialization.JsonConverter +{ + private static readonly string DiscriminatorName = "type"; + + public override Elastic.Clients.Elasticsearch.Analysis.UnknownTokenizer Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) + { + var content = System.Text.Json.JsonElement.ParseValue(ref reader); + if (content.ValueKind is not System.Text.Json.JsonValueKind.Object) + { + throw new System.Text.Json.JsonException($"Expected a JSON object for '{nameof(Elastic.Clients.Elasticsearch.Analysis.UnknownTokenizer)}', but got '{content.ValueKind}'."); + } + + var type = content.TryGetProperty(DiscriminatorName, out var discriminator) ? discriminator.GetString() : null; + if (type is null) + { + throw new System.Text.Json.JsonException($"Missing required '{DiscriminatorName}' discriminator for '{nameof(Elastic.Clients.Elasticsearch.Analysis.UnknownTokenizer)}'."); + } + + return new Elastic.Clients.Elasticsearch.Analysis.UnknownTokenizer(type, content); + } + + public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clients.Elasticsearch.Analysis.UnknownTokenizer value, System.Text.Json.JsonSerializerOptions options) + { + writer.WriteStartObject(); + writer.WriteString(DiscriminatorName, value.Type); + if (value.Content.ValueKind is System.Text.Json.JsonValueKind.Object) + { + foreach (var property in value.Content.EnumerateObject()) + { + if (!property.NameEquals(DiscriminatorName)) + { + property.WriteTo(writer); + } + } + } + + writer.WriteEndObject(); + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownTokenizer.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownTokenizer.g.cs new file mode 100644 index 00000000000..0d72c2bfd9a --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Analysis/UnknownTokenizer.g.cs @@ -0,0 +1,47 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +#nullable restore + +using System; +using System.Linq; +using Elastic.Clients.Elasticsearch.Serialization; + +namespace Elastic.Clients.Elasticsearch.Analysis; + +[System.Text.Json.Serialization.JsonConverter(typeof(Elastic.Clients.Elasticsearch.Analysis.Json.UnknownTokenizerConverter))] +public sealed partial class UnknownTokenizer : Elastic.Clients.Elasticsearch.Analysis.ITokenizer +{ + public string Type { get; } + public System.Text.Json.JsonElement Content { get; } + + public UnknownTokenizer(string type, System.Text.Json.JsonElement content) + { + if (type is null) + { + throw new System.ArgumentNullException(nameof(type)); + } + + if (content.ValueKind is not System.Text.Json.JsonValueKind.Object) + { + throw new System.ArgumentException($"Content must be a JSON object, but got '{content.ValueKind}'.", nameof(content)); + } + + Type = type; + Content = content; + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/FieldSuggester.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/FieldSuggester.Converters.g.cs index 008d2317963..232e444d5d0 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/FieldSuggester.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/FieldSuggester.Converters.g.cs @@ -81,13 +81,18 @@ public override Elastic.Clients.Elasticsearch.Core.Search.FieldSuggester Read(re continue; } - if (options.UnmappedMemberHandling is System.Text.Json.Serialization.JsonUnmappedMemberHandling.Skip) + variantType = reader.GetString()!; + reader.Read(); + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerReader(typeof(Elastic.Clients.Elasticsearch.Core.Search.FieldSuggester), variantType!, out var variantReader)) { - reader.SafeSkip(); - continue; + variant = variantReader(ref reader, options); + } + else + { + variant = System.Text.Json.JsonElement.ParseValue(ref reader); } - throw new System.Text.Json.JsonException($"Unknown JSON property '{reader.GetString()}' for type '{typeToConvert.Name}'."); + continue; } reader.ValidateToken(System.Text.Json.JsonTokenType.EndObject); @@ -118,7 +123,31 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteProperty(options, value.VariantType, (Elastic.Clients.Elasticsearch.Core.Search.TermSuggester)value.Variant, null, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.VariantType}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Core.Search.FieldSuggester)}'."); + if (value.Variant is null) + { + break; + } + + if (value.Variant is System.Text.Json.JsonElement element) + { + writer.WritePropertyName(value.VariantType!); + element.WriteTo(writer); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerWriter(typeof(Elastic.Clients.Elasticsearch.Core.Search.FieldSuggester), value.Variant.GetType(), out var variantWriter)) + { + if (!string.Equals(value.VariantType, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' is registered for variant name '{variantWriter.Discriminator}' but reports '{value.VariantType}' for type '{nameof(Elastic.Clients.Elasticsearch.Core.Search.FieldSuggester)}'."); + } + + writer.WritePropertyName(variantWriter.Discriminator); + variantWriter.Write(writer, value.Variant, options); + break; + } + + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' for variant '{value.VariantType}' is not registered. Call settings.Variants.RegisterContainer<{nameof(Elastic.Clients.Elasticsearch.Core.Search.FieldSuggester)}, T>(\"{value.VariantType}\") at startup."); } writer.WriteProperty(options, PropPrefix, value.Prefix, null, null); diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/FieldSuggester.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/FieldSuggester.g.cs index 5b641fbbf3d..985a2c72f41 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/FieldSuggester.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/FieldSuggester.g.cs @@ -67,6 +67,20 @@ private void SetVariant(string type, T? value) VariantType = type; Variant = value; } + + public string? VariantName { get => VariantType; } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public T? GetCustomVariant(string variantName) + { + return GetVariant(variantName); + } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void SetCustomVariant(string variantName, T? value) + { + SetVariant(variantName, value); + } } public readonly partial struct FieldSuggesterDescriptor @@ -142,6 +156,13 @@ public Elastic.Clients.Elasticsearch.Core.Search.FieldSuggesterDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.Core.Search.FieldSuggester Build(System.Action> action) { @@ -242,6 +263,13 @@ public Elastic.Clients.Elasticsearch.Core.Search.FieldSuggesterDescriptor Text(s return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.Core.Search.FieldSuggesterDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.Core.Search.FieldSuggester Build(System.Action action) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/Rescore.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/Rescore.Converters.g.cs index 890ab431591..c9225056e5c 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/Rescore.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/Rescore.Converters.g.cs @@ -67,13 +67,18 @@ public override Elastic.Clients.Elasticsearch.Core.Search.Rescore Read(ref Syste continue; } - if (options.UnmappedMemberHandling is System.Text.Json.Serialization.JsonUnmappedMemberHandling.Skip) + variantType = reader.GetString()!; + reader.Read(); + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerReader(typeof(Elastic.Clients.Elasticsearch.Core.Search.Rescore), variantType!, out var variantReader)) { - reader.SafeSkip(); - continue; + variant = variantReader(ref reader, options); + } + else + { + variant = System.Text.Json.JsonElement.ParseValue(ref reader); } - throw new System.Text.Json.JsonException($"Unknown JSON property '{reader.GetString()}' for type '{typeToConvert.Name}'."); + continue; } reader.ValidateToken(System.Text.Json.JsonTokenType.EndObject); @@ -102,7 +107,31 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteProperty(options, value.VariantType, (Elastic.Clients.Elasticsearch.Core.Search.ScriptRescore)value.Variant, null, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.VariantType}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Core.Search.Rescore)}'."); + if (value.Variant is null) + { + break; + } + + if (value.Variant is System.Text.Json.JsonElement element) + { + writer.WritePropertyName(value.VariantType!); + element.WriteTo(writer); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerWriter(typeof(Elastic.Clients.Elasticsearch.Core.Search.Rescore), value.Variant.GetType(), out var variantWriter)) + { + if (!string.Equals(value.VariantType, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' is registered for variant name '{variantWriter.Discriminator}' but reports '{value.VariantType}' for type '{nameof(Elastic.Clients.Elasticsearch.Core.Search.Rescore)}'."); + } + + writer.WritePropertyName(variantWriter.Discriminator); + variantWriter.Write(writer, value.Variant, options); + break; + } + + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' for variant '{value.VariantType}' is not registered. Call settings.Variants.RegisterContainer<{nameof(Elastic.Clients.Elasticsearch.Core.Search.Rescore)}, T>(\"{value.VariantType}\") at startup."); } writer.WriteProperty(options, PropWindowSize, value.WindowSize, null, static (System.Text.Json.Utf8JsonWriter w, System.Text.Json.JsonSerializerOptions o, int? v) => w.WriteNullableValue(o, v)); diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/Rescore.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/Rescore.g.cs index 57027c9531c..331f58377e5 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/Rescore.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/Rescore.g.cs @@ -65,6 +65,20 @@ private void SetVariant(string type, T? value) VariantType = type; Variant = value; } + + public string? VariantName { get => VariantType; } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public T? GetCustomVariant(string variantName) + { + return GetVariant(variantName); + } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void SetCustomVariant(string variantName, T? value) + { + SetVariant(variantName, value); + } } public readonly partial struct RescoreDescriptor @@ -128,6 +142,13 @@ public Elastic.Clients.Elasticsearch.Core.Search.RescoreDescriptor Wi return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.Core.Search.RescoreDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.Core.Search.Rescore Build(System.Action> action) { @@ -204,6 +225,13 @@ public Elastic.Clients.Elasticsearch.Core.Search.RescoreDescriptor WindowSize(in return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.Core.Search.RescoreDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.Core.Search.Rescore Build(System.Action action) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/SuggestDictionary.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/SuggestDictionary.Converters.g.cs index f6c7e8f5849..7c4ffc11a82 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/SuggestDictionary.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Core/Search/SuggestDictionary.Converters.g.cs @@ -86,7 +86,7 @@ internal static void WriteItem(System.Text.Json.Utf8JsonWriter writer, System.Te writer.WriteProperty(options, key, v, static (System.Text.Json.Utf8JsonWriter w, System.Text.Json.JsonSerializerOptions o, string v) => w.WritePropertyName(o, v), static (System.Text.Json.Utf8JsonWriter w, System.Text.Json.JsonSerializerOptions o, System.Collections.Generic.IReadOnlyCollection v) => w.WritePropertyName>(o, v)); break; default: - throw new System.Text.Json.JsonException($"Variant '{0}' is not supported for type '{nameof(System.Collections.Generic.IReadOnlyCollection)}'."); + throw new System.Text.Json.JsonException($"Variant key '{key}' is not supported for type '{nameof(System.Collections.Generic.IReadOnlyCollection)}'."); } } } diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/IndexManagement/SettingsSimilarity.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/IndexManagement/SettingsSimilarity.Converters.g.cs index a0f2fb7e711..644af2b4e5b 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/IndexManagement/SettingsSimilarity.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/IndexManagement/SettingsSimilarity.Converters.g.cs @@ -53,7 +53,7 @@ public override Elastic.Clients.Elasticsearch.IndexManagement.ISettingsSimilarit "LMDirichlet" => reader.ReadValue(options, null), "LMJelinekMercer" => reader.ReadValue(options, null), "scripted" => reader.ReadValue(options, null), - _ => throw new System.Text.Json.JsonException($"Variant '{discriminator}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.IndexManagement.ISettingsSimilarity)}'.") + _ => ReadCustomVariant(ref reader, options, discriminator!) }; } @@ -86,7 +86,34 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteValue(options, (Elastic.Clients.Elasticsearch.IndexManagement.SettingsSimilarityScripted)value, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.Type}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.IndexManagement.ISettingsSimilarity)}'."); + if (value is Elastic.Clients.Elasticsearch.IndexManagement.UnknownSettingsSimilarity custom) + { + writer.WriteValue(options, custom, null); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetWriter(value.GetType(), out var variantWriter)) + { + if (!string.Equals(value.Type, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Variant of runtime type '{value.GetType().Name}' is registered for discriminator '{variantWriter.Discriminator}' but reports '{value.Type}' for type '{nameof(Elastic.Clients.Elasticsearch.IndexManagement.ISettingsSimilarity)}'."); + } + + variantWriter.Write(writer, value, options); + break; + } + + throw new System.Text.Json.JsonException($"Variant of runtime type '{value.GetType().Name}' with discriminator '{value.Type}' is not registered. Call settings.Variants.Register<{nameof(Elastic.Clients.Elasticsearch.IndexManagement.ISettingsSimilarity)}, T>(\"{value.Type}\") at startup."); } } + + private static Elastic.Clients.Elasticsearch.IndexManagement.ISettingsSimilarity ReadCustomVariant(ref System.Text.Json.Utf8JsonReader reader, System.Text.Json.JsonSerializerOptions options, string discriminator) + { + if (options.TryGetContext(out var settings) && settings.Variants.TryGetReader(discriminator, out var variantReader)) + { + return variantReader(ref reader, options)!; + } + + return reader.ReadValue(options)!; + } } \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/IndexManagement/UnknownSettingsSimilarity.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/IndexManagement/UnknownSettingsSimilarity.Converters.g.cs new file mode 100644 index 00000000000..a20bc3f962f --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/IndexManagement/UnknownSettingsSimilarity.Converters.g.cs @@ -0,0 +1,64 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +#nullable restore + +using System; +using System.Linq; +using Elastic.Clients.Elasticsearch.Serialization; + +namespace Elastic.Clients.Elasticsearch.IndexManagement.Json; + +public sealed partial class UnknownSettingsSimilarityConverter : System.Text.Json.Serialization.JsonConverter +{ + private static readonly string DiscriminatorName = "type"; + + public override Elastic.Clients.Elasticsearch.IndexManagement.UnknownSettingsSimilarity Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) + { + var content = System.Text.Json.JsonElement.ParseValue(ref reader); + if (content.ValueKind is not System.Text.Json.JsonValueKind.Object) + { + throw new System.Text.Json.JsonException($"Expected a JSON object for '{nameof(Elastic.Clients.Elasticsearch.IndexManagement.UnknownSettingsSimilarity)}', but got '{content.ValueKind}'."); + } + + var type = content.TryGetProperty(DiscriminatorName, out var discriminator) ? discriminator.GetString() : null; + if (type is null) + { + throw new System.Text.Json.JsonException($"Missing required '{DiscriminatorName}' discriminator for '{nameof(Elastic.Clients.Elasticsearch.IndexManagement.UnknownSettingsSimilarity)}'."); + } + + return new Elastic.Clients.Elasticsearch.IndexManagement.UnknownSettingsSimilarity(type, content); + } + + public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clients.Elasticsearch.IndexManagement.UnknownSettingsSimilarity value, System.Text.Json.JsonSerializerOptions options) + { + writer.WriteStartObject(); + writer.WriteString(DiscriminatorName, value.Type); + if (value.Content.ValueKind is System.Text.Json.JsonValueKind.Object) + { + foreach (var property in value.Content.EnumerateObject()) + { + if (!property.NameEquals(DiscriminatorName)) + { + property.WriteTo(writer); + } + } + } + + writer.WriteEndObject(); + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/IndexManagement/UnknownSettingsSimilarity.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/IndexManagement/UnknownSettingsSimilarity.g.cs new file mode 100644 index 00000000000..9c50e3c15e8 --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/IndexManagement/UnknownSettingsSimilarity.g.cs @@ -0,0 +1,47 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +#nullable restore + +using System; +using System.Linq; +using Elastic.Clients.Elasticsearch.Serialization; + +namespace Elastic.Clients.Elasticsearch.IndexManagement; + +[System.Text.Json.Serialization.JsonConverter(typeof(Elastic.Clients.Elasticsearch.IndexManagement.Json.UnknownSettingsSimilarityConverter))] +public sealed partial class UnknownSettingsSimilarity : Elastic.Clients.Elasticsearch.IndexManagement.ISettingsSimilarity +{ + public string Type { get; } + public System.Text.Json.JsonElement Content { get; } + + public UnknownSettingsSimilarity(string type, System.Text.Json.JsonElement content) + { + if (type is null) + { + throw new System.ArgumentNullException(nameof(type)); + } + + if (content.ValueKind is not System.Text.Json.JsonValueKind.Object) + { + throw new System.ArgumentException($"Content must be a JSON object, but got '{content.ValueKind}'.", nameof(content)); + } + + Type = type; + Content = content; + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/Processor.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/Processor.Converters.g.cs index d80fdc87880..514a823a0e8 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/Processor.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/Processor.Converters.g.cs @@ -447,13 +447,18 @@ public override Elastic.Clients.Elasticsearch.Ingest.Processor Read(ref System.T continue; } - if (options.UnmappedMemberHandling is System.Text.Json.Serialization.JsonUnmappedMemberHandling.Skip) + variantType = reader.GetString()!; + reader.Read(); + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerReader(typeof(Elastic.Clients.Elasticsearch.Ingest.Processor), variantType!, out var variantReader)) { - reader.SafeSkip(); - continue; + variant = variantReader(ref reader, options); + } + else + { + variant = System.Text.Json.JsonElement.ParseValue(ref reader); } - throw new System.Text.Json.JsonException($"Unknown JSON property '{reader.GetString()}' for type '{typeToConvert.Name}'."); + continue; } reader.ValidateToken(System.Text.Json.JsonTokenType.EndObject); @@ -610,7 +615,31 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteProperty(options, value.VariantType, (Elastic.Clients.Elasticsearch.Ingest.UserAgentProcessor)value.Variant, null, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.VariantType}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Ingest.Processor)}'."); + if (value.Variant is null) + { + break; + } + + if (value.Variant is System.Text.Json.JsonElement element) + { + writer.WritePropertyName(value.VariantType!); + element.WriteTo(writer); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerWriter(typeof(Elastic.Clients.Elasticsearch.Ingest.Processor), value.Variant.GetType(), out var variantWriter)) + { + if (!string.Equals(value.VariantType, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' is registered for variant name '{variantWriter.Discriminator}' but reports '{value.VariantType}' for type '{nameof(Elastic.Clients.Elasticsearch.Ingest.Processor)}'."); + } + + writer.WritePropertyName(variantWriter.Discriminator); + variantWriter.Write(writer, value.Variant, options); + break; + } + + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' for variant '{value.VariantType}' is not registered. Call settings.Variants.RegisterContainer<{nameof(Elastic.Clients.Elasticsearch.Ingest.Processor)}, T>(\"{value.VariantType}\") at startup."); } writer.WriteEndObject(); diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/Processor.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/Processor.g.cs index 3b68710d33f..5672f47ff95 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/Processor.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Ingest/Processor.g.cs @@ -150,6 +150,20 @@ private void SetVariant(string type, T? value) VariantType = type; Variant = value; } + + public string? VariantName { get => VariantType; } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public T? GetCustomVariant(string variantName) + { + return GetVariant(variantName); + } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void SetCustomVariant(string variantName, T? value) + { + SetVariant(variantName, value); + } } public readonly partial struct ProcessorDescriptor @@ -759,6 +773,13 @@ public Elastic.Clients.Elasticsearch.Ingest.ProcessorDescriptor UserA return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.Ingest.ProcessorDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.Ingest.Processor Build(System.Action> action) { @@ -1651,6 +1672,13 @@ public Elastic.Clients.Elasticsearch.Ingest.ProcessorDescriptor UserAgent(Sys return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.Ingest.ProcessorDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.Ingest.Processor Build(System.Action action) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/Property.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/Property.Converters.g.cs index 74f170ec041..41c0c48fe47 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/Property.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/Property.Converters.g.cs @@ -98,7 +98,7 @@ public override Elastic.Clients.Elasticsearch.Mapping.IProperty Read(ref System. "unsigned_long" => reader.ReadValue(options, null), "version" => reader.ReadValue(options, null), "wildcard" => reader.ReadValue(options, null), - _ => throw new System.Text.Json.JsonException($"Variant '{discriminator}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Mapping.IProperty)}'.") + _ => ReadCustomVariant(ref reader, options, discriminator!) }; } @@ -266,7 +266,34 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteValue(options, (Elastic.Clients.Elasticsearch.Mapping.WildcardProperty)value, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.Type}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Mapping.IProperty)}'."); + if (value is Elastic.Clients.Elasticsearch.Mapping.UnknownProperty custom) + { + writer.WriteValue(options, custom, null); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetWriter(value.GetType(), out var variantWriter)) + { + if (!string.Equals(value.Type, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Variant of runtime type '{value.GetType().Name}' is registered for discriminator '{variantWriter.Discriminator}' but reports '{value.Type}' for type '{nameof(Elastic.Clients.Elasticsearch.Mapping.IProperty)}'."); + } + + variantWriter.Write(writer, value, options); + break; + } + + throw new System.Text.Json.JsonException($"Variant of runtime type '{value.GetType().Name}' with discriminator '{value.Type}' is not registered. Call settings.Variants.Register<{nameof(Elastic.Clients.Elasticsearch.Mapping.IProperty)}, T>(\"{value.Type}\") at startup."); } } + + private static Elastic.Clients.Elasticsearch.Mapping.IProperty ReadCustomVariant(ref System.Text.Json.Utf8JsonReader reader, System.Text.Json.JsonSerializerOptions options, string discriminator) + { + if (options.TryGetContext(out var settings) && settings.Variants.TryGetReader(discriminator, out var variantReader)) + { + return variantReader(ref reader, options)!; + } + + return reader.ReadValue(options)!; + } } \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/UnknownProperty.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/UnknownProperty.Converters.g.cs new file mode 100644 index 00000000000..7521671bee9 --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/UnknownProperty.Converters.g.cs @@ -0,0 +1,64 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +#nullable restore + +using System; +using System.Linq; +using Elastic.Clients.Elasticsearch.Serialization; + +namespace Elastic.Clients.Elasticsearch.Mapping.Json; + +public sealed partial class UnknownPropertyConverter : System.Text.Json.Serialization.JsonConverter +{ + private static readonly string DiscriminatorName = "type"; + + public override Elastic.Clients.Elasticsearch.Mapping.UnknownProperty Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) + { + var content = System.Text.Json.JsonElement.ParseValue(ref reader); + if (content.ValueKind is not System.Text.Json.JsonValueKind.Object) + { + throw new System.Text.Json.JsonException($"Expected a JSON object for '{nameof(Elastic.Clients.Elasticsearch.Mapping.UnknownProperty)}', but got '{content.ValueKind}'."); + } + + var type = content.TryGetProperty(DiscriminatorName, out var discriminator) ? discriminator.GetString() : null; + if (type is null) + { + throw new System.Text.Json.JsonException($"Missing required '{DiscriminatorName}' discriminator for '{nameof(Elastic.Clients.Elasticsearch.Mapping.UnknownProperty)}'."); + } + + return new Elastic.Clients.Elasticsearch.Mapping.UnknownProperty(type, content); + } + + public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clients.Elasticsearch.Mapping.UnknownProperty value, System.Text.Json.JsonSerializerOptions options) + { + writer.WriteStartObject(); + writer.WriteString(DiscriminatorName, value.Type); + if (value.Content.ValueKind is System.Text.Json.JsonValueKind.Object) + { + foreach (var property in value.Content.EnumerateObject()) + { + if (!property.NameEquals(DiscriminatorName)) + { + property.WriteTo(writer); + } + } + } + + writer.WriteEndObject(); + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/UnknownProperty.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/UnknownProperty.g.cs new file mode 100644 index 00000000000..f7a3abe9793 --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Mapping/UnknownProperty.g.cs @@ -0,0 +1,47 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +#nullable restore + +using System; +using System.Linq; +using Elastic.Clients.Elasticsearch.Serialization; + +namespace Elastic.Clients.Elasticsearch.Mapping; + +[System.Text.Json.Serialization.JsonConverter(typeof(Elastic.Clients.Elasticsearch.Mapping.Json.UnknownPropertyConverter))] +public sealed partial class UnknownProperty : Elastic.Clients.Elasticsearch.Mapping.IProperty +{ + public string Type { get; } + public System.Text.Json.JsonElement Content { get; } + + public UnknownProperty(string type, System.Text.Json.JsonElement content) + { + if (type is null) + { + throw new System.ArgumentNullException(nameof(type)); + } + + if (content.ValueKind is not System.Text.Json.JsonValueKind.Object) + { + throw new System.ArgumentException($"Content must be a JSON object, but got '{content.ValueKind}'.", nameof(content)); + } + + Type = type; + Content = content; + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/Query.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/Query.Converters.g.cs index c4e61256b39..6d5c913723a 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/Query.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/Query.Converters.g.cs @@ -582,13 +582,18 @@ public override Elastic.Clients.Elasticsearch.QueryDsl.Query Read(ref System.Tex continue; } - if (options.UnmappedMemberHandling is System.Text.Json.Serialization.JsonUnmappedMemberHandling.Skip) + variantType = reader.GetString()!; + reader.Read(); + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerReader(typeof(Elastic.Clients.Elasticsearch.QueryDsl.Query), variantType!, out var variantReader)) { - reader.SafeSkip(); - continue; + variant = variantReader(ref reader, options); + } + else + { + variant = System.Text.Json.JsonElement.ParseValue(ref reader); } - throw new System.Text.Json.JsonException($"Unknown JSON property '{reader.GetString()}' for type '{typeToConvert.Name}'."); + continue; } reader.ValidateToken(System.Text.Json.JsonTokenType.EndObject); @@ -790,7 +795,31 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteProperty(options, value.VariantType, (Elastic.Clients.Elasticsearch.QueryDsl.WrapperQuery)value.Variant, null, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.VariantType}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.QueryDsl.Query)}'."); + if (value.Variant is null) + { + break; + } + + if (value.Variant is System.Text.Json.JsonElement element) + { + writer.WritePropertyName(value.VariantType!); + element.WriteTo(writer); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerWriter(typeof(Elastic.Clients.Elasticsearch.QueryDsl.Query), value.Variant.GetType(), out var variantWriter)) + { + if (!string.Equals(value.VariantType, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' is registered for variant name '{variantWriter.Discriminator}' but reports '{value.VariantType}' for type '{nameof(Elastic.Clients.Elasticsearch.QueryDsl.Query)}'."); + } + + writer.WritePropertyName(variantWriter.Discriminator); + variantWriter.Write(writer, value.Variant, options); + break; + } + + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' for variant '{value.VariantType}' is not registered. Call settings.Variants.RegisterContainer<{nameof(Elastic.Clients.Elasticsearch.QueryDsl.Query)}, T>(\"{value.VariantType}\") at startup."); } writer.WriteEndObject(); diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/Query.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/Query.g.cs index 0f3415c3b34..8ae35d38d66 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/Query.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/Query.g.cs @@ -201,6 +201,20 @@ private void SetVariant(string type, T? value) VariantType = type; Variant = value; } + + public string? VariantName { get => VariantType; } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public T? GetCustomVariant(string variantName) + { + return GetVariant(variantName); + } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void SetCustomVariant(string variantName, T? value) + { + SetVariant(variantName, value); + } } public readonly partial struct QueryDescriptor @@ -1000,6 +1014,13 @@ public Elastic.Clients.Elasticsearch.QueryDsl.QueryDescriptor Wrapper return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.QueryDsl.QueryDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.QueryDsl.Query Build(System.Action> action) { @@ -2128,6 +2149,13 @@ public Elastic.Clients.Elasticsearch.QueryDsl.QueryDescriptor Wrapper(System.Act return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.QueryDsl.QueryDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.QueryDsl.Query Build(System.Action action) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanQuery.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanQuery.Converters.g.cs index 1ef549503fd..4d34161ab73 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanQuery.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanQuery.Converters.g.cs @@ -123,13 +123,18 @@ public override Elastic.Clients.Elasticsearch.QueryDsl.SpanQuery Read(ref System continue; } - if (options.UnmappedMemberHandling is System.Text.Json.Serialization.JsonUnmappedMemberHandling.Skip) + variantType = reader.GetString()!; + reader.Read(); + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerReader(typeof(Elastic.Clients.Elasticsearch.QueryDsl.SpanQuery), variantType!, out var variantReader)) { - reader.SafeSkip(); - continue; + variant = variantReader(ref reader, options); + } + else + { + variant = System.Text.Json.JsonElement.ParseValue(ref reader); } - throw new System.Text.Json.JsonException($"Unknown JSON property '{reader.GetString()}' for type '{typeToConvert.Name}'."); + continue; } reader.ValidateToken(System.Text.Json.JsonTokenType.EndObject); @@ -178,7 +183,31 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteProperty(options, value.VariantType, (Elastic.Clients.Elasticsearch.QueryDsl.SpanWithinQuery)value.Variant, null, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.VariantType}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.QueryDsl.SpanQuery)}'."); + if (value.Variant is null) + { + break; + } + + if (value.Variant is System.Text.Json.JsonElement element) + { + writer.WritePropertyName(value.VariantType!); + element.WriteTo(writer); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerWriter(typeof(Elastic.Clients.Elasticsearch.QueryDsl.SpanQuery), value.Variant.GetType(), out var variantWriter)) + { + if (!string.Equals(value.VariantType, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' is registered for variant name '{variantWriter.Discriminator}' but reports '{value.VariantType}' for type '{nameof(Elastic.Clients.Elasticsearch.QueryDsl.SpanQuery)}'."); + } + + writer.WritePropertyName(variantWriter.Discriminator); + variantWriter.Write(writer, value.Variant, options); + break; + } + + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' for variant '{value.VariantType}' is not registered. Call settings.Variants.RegisterContainer<{nameof(Elastic.Clients.Elasticsearch.QueryDsl.SpanQuery)}, T>(\"{value.VariantType}\") at startup."); } writer.WriteEndObject(); diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanQuery.g.cs index da5dada620d..96841c8d2af 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/QueryDsl/SpanQuery.g.cs @@ -78,6 +78,20 @@ private void SetVariant(string type, T? value) VariantType = type; Variant = value; } + + public string? VariantName { get => VariantType; } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public T? GetCustomVariant(string variantName) + { + return GetVariant(variantName); + } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void SetCustomVariant(string variantName, T? value) + { + SetVariant(variantName, value); + } } public readonly partial struct SpanQueryDescriptor @@ -225,6 +239,13 @@ public Elastic.Clients.Elasticsearch.QueryDsl.SpanQueryDescriptor Spa return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.QueryDsl.SpanQueryDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.QueryDsl.SpanQuery Build(System.Action> action) { @@ -433,6 +454,13 @@ public Elastic.Clients.Elasticsearch.QueryDsl.SpanQueryDescriptor SpanWithin( return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.QueryDsl.SpanQueryDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.QueryDsl.SpanQuery Build(System.Action action) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/ApiKeyAggregation.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/ApiKeyAggregation.Converters.g.cs index a9f570479cc..e5495792bba 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/ApiKeyAggregation.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/ApiKeyAggregation.Converters.g.cs @@ -129,13 +129,18 @@ public override Elastic.Clients.Elasticsearch.Security.ApiKeyAggregation Read(re continue; } - if (options.UnmappedMemberHandling is System.Text.Json.Serialization.JsonUnmappedMemberHandling.Skip) + variantType = reader.GetString()!; + reader.Read(); + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerReader(typeof(Elastic.Clients.Elasticsearch.Security.ApiKeyAggregation), variantType!, out var variantReader)) { - reader.SafeSkip(); - continue; + variant = variantReader(ref reader, options); + } + else + { + variant = System.Text.Json.JsonElement.ParseValue(ref reader); } - throw new System.Text.Json.JsonException($"Unknown JSON property '{reader.GetString()}' for type '{typeToConvert.Name}'."); + continue; } reader.ValidateToken(System.Text.Json.JsonTokenType.EndObject); @@ -183,7 +188,31 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteProperty(options, value.VariantType, (Elastic.Clients.Elasticsearch.Aggregations.ValueCountAggregation)value.Variant, null, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.VariantType}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Security.ApiKeyAggregation)}'."); + if (value.Variant is null) + { + break; + } + + if (value.Variant is System.Text.Json.JsonElement element) + { + writer.WritePropertyName(value.VariantType!); + element.WriteTo(writer); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerWriter(typeof(Elastic.Clients.Elasticsearch.Security.ApiKeyAggregation), value.Variant.GetType(), out var variantWriter)) + { + if (!string.Equals(value.VariantType, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' is registered for variant name '{variantWriter.Discriminator}' but reports '{value.VariantType}' for type '{nameof(Elastic.Clients.Elasticsearch.Security.ApiKeyAggregation)}'."); + } + + writer.WritePropertyName(variantWriter.Discriminator); + variantWriter.Write(writer, value.Variant, options); + break; + } + + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' for variant '{value.VariantType}' is not registered. Call settings.Variants.RegisterContainer<{nameof(Elastic.Clients.Elasticsearch.Security.ApiKeyAggregation)}, T>(\"{value.VariantType}\") at startup."); } writer.WriteProperty(options, PropAggregations, value.Aggregations, null, static (System.Text.Json.Utf8JsonWriter w, System.Text.Json.JsonSerializerOptions o, System.Collections.Generic.IDictionary? v) => w.WriteDictionaryValue(o, v, null, null)); diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/ApiKeyAggregation.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/ApiKeyAggregation.g.cs index c2e91ca6187..35bcfe8ae9a 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/ApiKeyAggregation.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/ApiKeyAggregation.g.cs @@ -78,6 +78,20 @@ private void SetVariant(string type, T? value) VariantType = type; Variant = value; } + + public string? VariantName { get => VariantType; } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public T? GetCustomVariant(string variantName) + { + return GetVariant(variantName); + } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void SetCustomVariant(string variantName, T? value) + { + SetVariant(variantName, value); + } } public readonly partial struct ApiKeyAggregationDescriptor @@ -312,6 +326,13 @@ public Elastic.Clients.Elasticsearch.Security.ApiKeyAggregationDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.Security.ApiKeyAggregation Build(System.Action> action) { @@ -620,6 +641,13 @@ public Elastic.Clients.Elasticsearch.Security.ApiKeyAggregationDescriptor AddMet return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.Security.ApiKeyAggregationDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.Security.ApiKeyAggregation Build(System.Action action) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/ApiKeyQuery.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/ApiKeyQuery.Converters.g.cs index e4aec949d8c..f84de14e094 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/ApiKeyQuery.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/ApiKeyQuery.Converters.g.cs @@ -132,13 +132,18 @@ public override Elastic.Clients.Elasticsearch.Security.ApiKeyQuery Read(ref Syst continue; } - if (options.UnmappedMemberHandling is System.Text.Json.Serialization.JsonUnmappedMemberHandling.Skip) + variantType = reader.GetString()!; + reader.Read(); + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerReader(typeof(Elastic.Clients.Elasticsearch.Security.ApiKeyQuery), variantType!, out var variantReader)) { - reader.SafeSkip(); - continue; + variant = variantReader(ref reader, options); + } + else + { + variant = System.Text.Json.JsonElement.ParseValue(ref reader); } - throw new System.Text.Json.JsonException($"Unknown JSON property '{reader.GetString()}' for type '{typeToConvert.Name}'."); + continue; } reader.ValidateToken(System.Text.Json.JsonTokenType.EndObject); @@ -190,7 +195,31 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteProperty(options, value.VariantType, (Elastic.Clients.Elasticsearch.QueryDsl.WildcardQuery)value.Variant, null, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.VariantType}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Security.ApiKeyQuery)}'."); + if (value.Variant is null) + { + break; + } + + if (value.Variant is System.Text.Json.JsonElement element) + { + writer.WritePropertyName(value.VariantType!); + element.WriteTo(writer); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerWriter(typeof(Elastic.Clients.Elasticsearch.Security.ApiKeyQuery), value.Variant.GetType(), out var variantWriter)) + { + if (!string.Equals(value.VariantType, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' is registered for variant name '{variantWriter.Discriminator}' but reports '{value.VariantType}' for type '{nameof(Elastic.Clients.Elasticsearch.Security.ApiKeyQuery)}'."); + } + + writer.WritePropertyName(variantWriter.Discriminator); + variantWriter.Write(writer, value.Variant, options); + break; + } + + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' for variant '{value.VariantType}' is not registered. Call settings.Variants.RegisterContainer<{nameof(Elastic.Clients.Elasticsearch.Security.ApiKeyQuery)}, T>(\"{value.VariantType}\") at startup."); } writer.WriteEndObject(); diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/ApiKeyQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/ApiKeyQuery.g.cs index 06ea5f07f9f..33fe1f80f00 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/ApiKeyQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/ApiKeyQuery.g.cs @@ -84,6 +84,20 @@ private void SetVariant(string type, T? value) VariantType = type; Variant = value; } + + public string? VariantName { get => VariantType; } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public T? GetCustomVariant(string variantName) + { + return GetVariant(variantName); + } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void SetCustomVariant(string variantName, T? value) + { + SetVariant(variantName, value); + } } public readonly partial struct ApiKeyQueryDescriptor @@ -255,6 +269,13 @@ public Elastic.Clients.Elasticsearch.Security.ApiKeyQueryDescriptor W return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.Security.ApiKeyQueryDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.Security.ApiKeyQuery Build(System.Action> action) { @@ -487,6 +508,13 @@ public Elastic.Clients.Elasticsearch.Security.ApiKeyQueryDescriptor Wildcard( return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.Security.ApiKeyQueryDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.Security.ApiKeyQuery Build(System.Action action) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/RoleQuery.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/RoleQuery.Converters.g.cs index 7a7c46e49d1..9e8ec976e05 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/RoleQuery.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/RoleQuery.Converters.g.cs @@ -132,13 +132,18 @@ public override Elastic.Clients.Elasticsearch.Security.RoleQuery Read(ref System continue; } - if (options.UnmappedMemberHandling is System.Text.Json.Serialization.JsonUnmappedMemberHandling.Skip) + variantType = reader.GetString()!; + reader.Read(); + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerReader(typeof(Elastic.Clients.Elasticsearch.Security.RoleQuery), variantType!, out var variantReader)) { - reader.SafeSkip(); - continue; + variant = variantReader(ref reader, options); + } + else + { + variant = System.Text.Json.JsonElement.ParseValue(ref reader); } - throw new System.Text.Json.JsonException($"Unknown JSON property '{reader.GetString()}' for type '{typeToConvert.Name}'."); + continue; } reader.ValidateToken(System.Text.Json.JsonTokenType.EndObject); @@ -190,7 +195,31 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteProperty(options, value.VariantType, (Elastic.Clients.Elasticsearch.QueryDsl.WildcardQuery)value.Variant, null, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.VariantType}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Security.RoleQuery)}'."); + if (value.Variant is null) + { + break; + } + + if (value.Variant is System.Text.Json.JsonElement element) + { + writer.WritePropertyName(value.VariantType!); + element.WriteTo(writer); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerWriter(typeof(Elastic.Clients.Elasticsearch.Security.RoleQuery), value.Variant.GetType(), out var variantWriter)) + { + if (!string.Equals(value.VariantType, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' is registered for variant name '{variantWriter.Discriminator}' but reports '{value.VariantType}' for type '{nameof(Elastic.Clients.Elasticsearch.Security.RoleQuery)}'."); + } + + writer.WritePropertyName(variantWriter.Discriminator); + variantWriter.Write(writer, value.Variant, options); + break; + } + + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' for variant '{value.VariantType}' is not registered. Call settings.Variants.RegisterContainer<{nameof(Elastic.Clients.Elasticsearch.Security.RoleQuery)}, T>(\"{value.VariantType}\") at startup."); } writer.WriteEndObject(); diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/RoleQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/RoleQuery.g.cs index 5a5dda7e766..6edec742f18 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/RoleQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/RoleQuery.g.cs @@ -84,6 +84,20 @@ private void SetVariant(string type, T? value) VariantType = type; Variant = value; } + + public string? VariantName { get => VariantType; } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public T? GetCustomVariant(string variantName) + { + return GetVariant(variantName); + } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void SetCustomVariant(string variantName, T? value) + { + SetVariant(variantName, value); + } } public readonly partial struct RoleQueryDescriptor @@ -255,6 +269,13 @@ public Elastic.Clients.Elasticsearch.Security.RoleQueryDescriptor Wil return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.Security.RoleQueryDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.Security.RoleQuery Build(System.Action> action) { @@ -487,6 +508,13 @@ public Elastic.Clients.Elasticsearch.Security.RoleQueryDescriptor Wildcard(Sy return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.Security.RoleQueryDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.Security.RoleQuery Build(System.Action action) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/UserQuery.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/UserQuery.Converters.g.cs index 7f318cbeadb..9ffb2e66466 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/UserQuery.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/UserQuery.Converters.g.cs @@ -132,13 +132,18 @@ public override Elastic.Clients.Elasticsearch.Security.UserQuery Read(ref System continue; } - if (options.UnmappedMemberHandling is System.Text.Json.Serialization.JsonUnmappedMemberHandling.Skip) + variantType = reader.GetString()!; + reader.Read(); + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerReader(typeof(Elastic.Clients.Elasticsearch.Security.UserQuery), variantType!, out var variantReader)) { - reader.SafeSkip(); - continue; + variant = variantReader(ref reader, options); + } + else + { + variant = System.Text.Json.JsonElement.ParseValue(ref reader); } - throw new System.Text.Json.JsonException($"Unknown JSON property '{reader.GetString()}' for type '{typeToConvert.Name}'."); + continue; } reader.ValidateToken(System.Text.Json.JsonTokenType.EndObject); @@ -190,7 +195,31 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteProperty(options, value.VariantType, (Elastic.Clients.Elasticsearch.QueryDsl.WildcardQuery)value.Variant, null, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.VariantType}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Security.UserQuery)}'."); + if (value.Variant is null) + { + break; + } + + if (value.Variant is System.Text.Json.JsonElement element) + { + writer.WritePropertyName(value.VariantType!); + element.WriteTo(writer); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetContainerWriter(typeof(Elastic.Clients.Elasticsearch.Security.UserQuery), value.Variant.GetType(), out var variantWriter)) + { + if (!string.Equals(value.VariantType, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' is registered for variant name '{variantWriter.Discriminator}' but reports '{value.VariantType}' for type '{nameof(Elastic.Clients.Elasticsearch.Security.UserQuery)}'."); + } + + writer.WritePropertyName(variantWriter.Discriminator); + variantWriter.Write(writer, value.Variant, options); + break; + } + + throw new System.Text.Json.JsonException($"Container variant of runtime type '{value.Variant.GetType().Name}' for variant '{value.VariantType}' is not registered. Call settings.Variants.RegisterContainer<{nameof(Elastic.Clients.Elasticsearch.Security.UserQuery)}, T>(\"{value.VariantType}\") at startup."); } writer.WriteEndObject(); diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/UserQuery.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/UserQuery.g.cs index 98139bb155e..b67b5d5ae56 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/UserQuery.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Security/UserQuery.g.cs @@ -84,6 +84,20 @@ private void SetVariant(string type, T? value) VariantType = type; Variant = value; } + + public string? VariantName { get => VariantType; } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public T? GetCustomVariant(string variantName) + { + return GetVariant(variantName); + } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public void SetCustomVariant(string variantName, T? value) + { + SetVariant(variantName, value); + } } public readonly partial struct UserQueryDescriptor @@ -255,6 +269,13 @@ public Elastic.Clients.Elasticsearch.Security.UserQueryDescriptor Wil return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.Security.UserQueryDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.Security.UserQuery Build(System.Action> action) { @@ -487,6 +508,13 @@ public Elastic.Clients.Elasticsearch.Security.UserQueryDescriptor Wildcard(Sy return this; } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + public Elastic.Clients.Elasticsearch.Security.UserQueryDescriptor CustomVariant(string variantName, T? value) + { + Instance.SetCustomVariant(variantName, value); + return this; + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] internal static Elastic.Clients.Elasticsearch.Security.UserQuery Build(System.Action action) { diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Snapshot/Repository.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Snapshot/Repository.Converters.g.cs index c7932b73b12..60b66545b69 100644 --- a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Snapshot/Repository.Converters.g.cs +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Snapshot/Repository.Converters.g.cs @@ -51,7 +51,7 @@ public override Elastic.Clients.Elasticsearch.Snapshot.IRepository Read(ref Syst "s3" => reader.ReadValue(options, null), "source" => reader.ReadValue(options, null), "url" => reader.ReadValue(options, null), - _ => throw new System.Text.Json.JsonException($"Variant '{discriminator}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Snapshot.IRepository)}'.") + _ => ReadCustomVariant(ref reader, options, discriminator!) }; } @@ -78,7 +78,34 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clien writer.WriteValue(options, (Elastic.Clients.Elasticsearch.Snapshot.ReadOnlyUrlRepository)value, null); break; default: - throw new System.Text.Json.JsonException($"Variant '{value.Type}' is not supported for type '{nameof(Elastic.Clients.Elasticsearch.Snapshot.IRepository)}'."); + if (value is Elastic.Clients.Elasticsearch.Snapshot.UnknownRepository custom) + { + writer.WriteValue(options, custom, null); + break; + } + + if (options.TryGetContext(out var settings) && settings.Variants.TryGetWriter(value.GetType(), out var variantWriter)) + { + if (!string.Equals(value.Type, variantWriter.Discriminator, System.StringComparison.Ordinal)) + { + throw new System.Text.Json.JsonException($"Variant of runtime type '{value.GetType().Name}' is registered for discriminator '{variantWriter.Discriminator}' but reports '{value.Type}' for type '{nameof(Elastic.Clients.Elasticsearch.Snapshot.IRepository)}'."); + } + + variantWriter.Write(writer, value, options); + break; + } + + throw new System.Text.Json.JsonException($"Variant of runtime type '{value.GetType().Name}' with discriminator '{value.Type}' is not registered. Call settings.Variants.Register<{nameof(Elastic.Clients.Elasticsearch.Snapshot.IRepository)}, T>(\"{value.Type}\") at startup."); } } + + private static Elastic.Clients.Elasticsearch.Snapshot.IRepository ReadCustomVariant(ref System.Text.Json.Utf8JsonReader reader, System.Text.Json.JsonSerializerOptions options, string discriminator) + { + if (options.TryGetContext(out var settings) && settings.Variants.TryGetReader(discriminator, out var variantReader)) + { + return variantReader(ref reader, options)!; + } + + return reader.ReadValue(options)!; + } } \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Snapshot/UnknownRepository.Converters.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Snapshot/UnknownRepository.Converters.g.cs new file mode 100644 index 00000000000..3c6213df1bb --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Snapshot/UnknownRepository.Converters.g.cs @@ -0,0 +1,64 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +#nullable restore + +using System; +using System.Linq; +using Elastic.Clients.Elasticsearch.Serialization; + +namespace Elastic.Clients.Elasticsearch.Snapshot.Json; + +public sealed partial class UnknownRepositoryConverter : System.Text.Json.Serialization.JsonConverter +{ + private static readonly string DiscriminatorName = "type"; + + public override Elastic.Clients.Elasticsearch.Snapshot.UnknownRepository Read(ref System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options) + { + var content = System.Text.Json.JsonElement.ParseValue(ref reader); + if (content.ValueKind is not System.Text.Json.JsonValueKind.Object) + { + throw new System.Text.Json.JsonException($"Expected a JSON object for '{nameof(Elastic.Clients.Elasticsearch.Snapshot.UnknownRepository)}', but got '{content.ValueKind}'."); + } + + var type = content.TryGetProperty(DiscriminatorName, out var discriminator) ? discriminator.GetString() : null; + if (type is null) + { + throw new System.Text.Json.JsonException($"Missing required '{DiscriminatorName}' discriminator for '{nameof(Elastic.Clients.Elasticsearch.Snapshot.UnknownRepository)}'."); + } + + return new Elastic.Clients.Elasticsearch.Snapshot.UnknownRepository(type, content); + } + + public override void Write(System.Text.Json.Utf8JsonWriter writer, Elastic.Clients.Elasticsearch.Snapshot.UnknownRepository value, System.Text.Json.JsonSerializerOptions options) + { + writer.WriteStartObject(); + writer.WriteString(DiscriminatorName, value.Type); + if (value.Content.ValueKind is System.Text.Json.JsonValueKind.Object) + { + foreach (var property in value.Content.EnumerateObject()) + { + if (!property.NameEquals(DiscriminatorName)) + { + property.WriteTo(writer); + } + } + } + + writer.WriteEndObject(); + } +} \ No newline at end of file diff --git a/src/Elastic.Clients.Elasticsearch/_Generated/Types/Snapshot/UnknownRepository.g.cs b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Snapshot/UnknownRepository.g.cs new file mode 100644 index 00000000000..cd43c753835 --- /dev/null +++ b/src/Elastic.Clients.Elasticsearch/_Generated/Types/Snapshot/UnknownRepository.g.cs @@ -0,0 +1,47 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information. +// +// ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗ +// ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝ +// ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗ +// ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝ +// ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗ +// ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝ +// ------------------------------------------------ +// +// This file is automatically generated. +// Please do not edit these files manually. +// +// ------------------------------------------------ + +#nullable restore + +using System; +using System.Linq; +using Elastic.Clients.Elasticsearch.Serialization; + +namespace Elastic.Clients.Elasticsearch.Snapshot; + +[System.Text.Json.Serialization.JsonConverter(typeof(Elastic.Clients.Elasticsearch.Snapshot.Json.UnknownRepositoryConverter))] +public sealed partial class UnknownRepository : Elastic.Clients.Elasticsearch.Snapshot.IRepository +{ + public string Type { get; } + public System.Text.Json.JsonElement Content { get; } + + public UnknownRepository(string type, System.Text.Json.JsonElement content) + { + if (type is null) + { + throw new System.ArgumentNullException(nameof(type)); + } + + if (content.ValueKind is not System.Text.Json.JsonValueKind.Object) + { + throw new System.ArgumentException($"Content must be a JSON object, but got '{content.ValueKind}'.", nameof(content)); + } + + Type = type; + Content = content; + } +} \ No newline at end of file