From 2f0d90e3bd9d929f1b5549c9e87a33fb5d48d3ed Mon Sep 17 00:00:00 2001
From: GitLab Runner 1149 <netvs@scc.kit.edu>
Date: Sat, 22 Mar 2025 09:04:16 +0000
Subject: [PATCH] Automated Save by CI Run

---
 4.0/openapi.yml                  |  2 +-
 4.0/python/__init__.py           |  2 +-
 4.0/version_numeric              |  2 +-
 4.1/openapi.yml                  |  2 +-
 4.1/python/__init__.py           |  2 +-
 4.1/version_numeric              |  2 +-
 4.2/es/tmp.cidr_generator.js     |  4 +-
 4.2/functions.json               | 42 ++++++++++----------
 4.2/golang/structs.go            |  6 ++-
 4.2/objects.json                 | 12 ++++++
 4.2/openapi.yml                  | 68 +++++++++++++++++---------------
 4.2/python/__init__.py           |  2 +-
 4.2/python/tmp.py                | 54 ++++++++++++++-----------
 4.2/transaction_json_schema.json | 40 +++++++++++++------
 4.2/version_numeric              |  2 +-
 latest_version                   |  2 +-
 16 files changed, 142 insertions(+), 102 deletions(-)

diff --git a/4.0/openapi.yml b/4.0/openapi.yml
index 87aeaba..e94d473 100644
--- a/4.0/openapi.yml
+++ b/4.0/openapi.yml
@@ -3469,7 +3469,7 @@ info:
     \ nicht Bestandteil dieser Dokumentation, sondern \xFCber selbstdokumentierende\
     \ Indexabfragen der WebAPI erreichbar."
   title: SCC NETDB-API
-  version: 4.0.701
+  version: 4.0.700
 openapi: 3.0.3
 paths:
   /cntl/column/create:
diff --git a/4.0/python/__init__.py b/4.0/python/__init__.py
index 50fab04..7d46be6 100644
--- a/4.0/python/__init__.py
+++ b/4.0/python/__init__.py
@@ -36,7 +36,7 @@ class APIEndpoint(object):
 
 class APISession(object):
 	def __init__(self, endpoint: APIEndpoint, protocol: str='https', update_check: bool='NETDB_CLIENT_DISABLE_UPDATE_CHECK' not in os.environ):
-		self._build_version = '4.0.701'
+		self._build_version = '4.0.700'
 		self.session = requests.session()
 		self.session.headers.update({'Authorization': 'Bearer ' + endpoint.token})
 		self.api_root = f'{protocol}://{endpoint.base_url}'
diff --git a/4.0/version_numeric b/4.0/version_numeric
index cd09724..0dbca23 100644
--- a/4.0/version_numeric
+++ b/4.0/version_numeric
@@ -1 +1 @@
-4.0.701
\ No newline at end of file
+4.0.700
\ No newline at end of file
diff --git a/4.1/openapi.yml b/4.1/openapi.yml
index a047196..1b1e33a 100644
--- a/4.1/openapi.yml
+++ b/4.1/openapi.yml
@@ -4064,7 +4064,7 @@ info:
     \ nicht Bestandteil dieser Dokumentation, sondern \xFCber selbstdokumentierende\
     \ Indexabfragen der WebAPI erreichbar."
   title: SCC NETDB-API
-  version: 4.1.159
+  version: 4.1.158
 openapi: 3.0.3
 paths:
   /cntl/column/create:
diff --git a/4.1/python/__init__.py b/4.1/python/__init__.py
index d173edc..71b3b57 100644
--- a/4.1/python/__init__.py
+++ b/4.1/python/__init__.py
@@ -36,7 +36,7 @@ class APIEndpoint(object):
 
 class APISession(object):
 	def __init__(self, endpoint: APIEndpoint, protocol: str='https', update_check: bool='NETDB_CLIENT_DISABLE_UPDATE_CHECK' not in os.environ):
-		self._build_version = '4.1.159'
+		self._build_version = '4.1.158'
 		self.session = requests.session()
 		self.session.headers.update({'Authorization': 'Bearer ' + endpoint.token})
 		self.api_root = f'{protocol}://{endpoint.base_url}'
diff --git a/4.1/version_numeric b/4.1/version_numeric
index 5f680d8..89206cb 100644
--- a/4.1/version_numeric
+++ b/4.1/version_numeric
@@ -1 +1 @@
-4.1.159
\ No newline at end of file
+4.1.158
\ No newline at end of file
diff --git a/4.2/es/tmp.cidr_generator.js b/4.2/es/tmp.cidr_generator.js
index d5b7b7a..af8a8e6 100644
--- a/4.2/es/tmp.cidr_generator.js
+++ b/4.2/es/tmp.cidr_generator.js
@@ -13,8 +13,8 @@ import NETVSConfig from '@/../netvs.config'
 /* eslint-disable object-shorthand */
 export default {
 
-  list (config, { value_limit, value_offset, base_value_list, masklen_summand = 0, value_limit_list, value_offset_list, masklen_summand_list }) {
-    const params = APIUtils.denullify_dict({ 'value_limit': value_limit, 'value_offset': value_offset, 'base_value_list': (base_value_list === null) ? null : JSON.stringify(base_value_list), 'masklen_summand': masklen_summand, 'value_limit_list': (value_limit_list === null) ? null : JSON.stringify(value_limit_list), 'value_offset_list': (value_offset_list === null) ? null : JSON.stringify(value_offset_list), 'masklen_summand_list': (masklen_summand_list === null) ? null : JSON.stringify(masklen_summand_list)})
+  list (config, { base_value_list, fetch_limit_list, fetch_offset_list, default_fetch_limit, default_fetch_offset, masklen_summand_list, default_masklen_summand = 0 }) {
+    const params = APIUtils.denullify_dict({ 'base_value_list': (base_value_list === null) ? null : JSON.stringify(base_value_list), 'fetch_limit_list': (fetch_limit_list === null) ? null : JSON.stringify(fetch_limit_list), 'fetch_offset_list': (fetch_offset_list === null) ? null : JSON.stringify(fetch_offset_list), 'default_fetch_limit': default_fetch_limit, 'default_fetch_offset': default_fetch_offset, 'masklen_summand_list': (masklen_summand_list === null) ? null : JSON.stringify(masklen_summand_list), 'default_masklen_summand': default_masklen_summand})
     const cnf = {}
     Object.assign(cnf, (config || {}).netdb_axios_config)
     cnf.params = params
diff --git a/4.2/functions.json b/4.2/functions.json
index f086c6e..2fe1ab1 100644
--- a/4.2/functions.json
+++ b/4.2/functions.json
@@ -18910,61 +18910,61 @@
     "system": "tmp",
     "fq_name": "tmp.cidr_generator.list",
     "parameters": {
-      "value_limit": {
+      "base_value_list": {
         "old": {
-          "is_nullable": true,
+          "is_nullable": false,
           "is_required": false
         },
-        "data_type": "integer4u",
+        "data_type": "ip_network_array",
         "is_deprecated": false
       },
-      "value_offset": {
+      "fetch_limit_list": {
         "old": {
-          "is_nullable": true,
+          "is_nullable": false,
           "is_required": false
         },
-        "data_type": "integer4u",
+        "data_type": "integer4u_array",
         "is_deprecated": false
       },
-      "base_value_list": {
+      "fetch_offset_list": {
         "old": {
           "is_nullable": false,
           "is_required": false
         },
-        "data_type": "ip_network_array",
+        "data_type": "integer4u_array",
         "is_deprecated": false
       },
-      "masklen_summand": {
+      "default_fetch_limit": {
         "old": {
-          "is_nullable": false,
-          "is_required": false,
-          "data_default": 0
+          "is_nullable": true,
+          "is_required": false
         },
-        "data_type": "integer1u",
+        "data_type": "integer4u",
         "is_deprecated": false
       },
-      "value_limit_list": {
+      "default_fetch_offset": {
         "old": {
-          "is_nullable": false,
+          "is_nullable": true,
           "is_required": false
         },
-        "data_type": "integer4u_array",
+        "data_type": "integer4u",
         "is_deprecated": false
       },
-      "value_offset_list": {
+      "masklen_summand_list": {
         "old": {
           "is_nullable": false,
           "is_required": false
         },
-        "data_type": "integer4u_array",
+        "data_type": "integer1u_array",
         "is_deprecated": false
       },
-      "masklen_summand_list": {
+      "default_masklen_summand": {
         "old": {
           "is_nullable": false,
-          "is_required": false
+          "is_required": false,
+          "data_default": 0
         },
-        "data_type": "integer1u_array",
+        "data_type": "integer1u",
         "is_deprecated": false
       }
     },
diff --git a/4.2/golang/structs.go b/4.2/golang/structs.go
index 9a9b8e7..9a0b19d 100644
--- a/4.2/golang/structs.go
+++ b/4.2/golang/structs.go
@@ -1365,7 +1365,9 @@ type DnsFqdnStatistic struct {
 }
 
 type TmpCidrGenerator struct {
-	Value     net.IPNet `mapstructure:"value"`
-	BaseValue net.IPNet `mapstructure:"base_value"`
+	Value        net.IPNet `mapstructure:"value"`
+	BaseValue    net.IPNet `mapstructure:"base_value"`
+	ValueHost    string    `mapstructure:"value_host"`
+	ValueMasklen uint8     `mapstructure:"value_masklen"`
 }
 
diff --git a/4.2/objects.json b/4.2/objects.json
index a433173..02e70ab 100644
--- a/4.2/objects.json
+++ b/4.2/objects.json
@@ -1185,6 +1185,18 @@
         "data_type": "ip_network",
         "is_nullable": false,
         "is_deprecated": false
+      },
+      "value_host": {
+        "is_core": true,
+        "data_type": "text",
+        "is_nullable": false,
+        "is_deprecated": false
+      },
+      "value_masklen": {
+        "is_core": true,
+        "data_type": "integer1u",
+        "is_nullable": false,
+        "is_deprecated": false
       }
     },
     "is_log_dst": false,
diff --git a/4.2/openapi.yml b/4.2/openapi.yml
index 0a498b7..202c0dc 100644
--- a/4.2/openapi.yml
+++ b/4.2/openapi.yml
@@ -3735,6 +3735,12 @@ components:
         value:
           description: CIDR-Notation des generierten CIDR-Objektes
           type: string
+        value_host:
+          description: Hostteil (IP-Adresse) des generierten CIDR-Objektes
+          type: string
+        value_masklen:
+          description: "L\xE4nge der Netzmaske des generierten CIDR-Objektes"
+          type: number
       type: object
     tmp.diag4gpk:
       description: ''
@@ -4084,7 +4090,7 @@ info:
     \ nicht Bestandteil dieser Dokumentation, sondern \xFCber selbstdokumentierende\
     \ Indexabfragen der WebAPI erreichbar."
   title: SCC NETDB-API
-  version: 4.2.14
+  version: 4.2.0
 openapi: 3.0.3
 paths:
   /cntl/column/create:
@@ -32379,24 +32385,6 @@ paths:
   /tmp/cidr_generator/list:
     get:
       parameters:
-      - description: "Maximale Anzahl der generierten CIDR-Objekte je Basiswert, die\
-          \ als Standardwert f\xFCr fehlende Positionen in 'value_limit_list' eingesetzt\
-          \ wird."
-        in: query
-        name: value_limit
-        required: false
-        schema:
-          nullable: true
-          type: number
-      - description: "Anzahl der Datens\xE4tze, die zu Beginn der Ausgabe \xFCbersprungen\
-          \ werden, die als Standardwert f\xFCr fehlende Positionen in 'value_offset_list'\
-          \ eingesetzt wird."
-        in: query
-        name: value_offset
-        required: false
-        schema:
-          nullable: true
-          type: number
       - description: Liste der CIDR-Notationen der Basis-CIDR-Objekte. Die Ausgabe
           aller generierten CIDR-Objekte erfolgt immer in positionaler Reihenfolge
           dieser Basisobjekte, und innerhalb eines Basisobjektes aufsteigend.
@@ -32407,22 +32395,12 @@ paths:
           format: '["value1","value2",...]'
           nullable: false
           type: string
-      - description: "Netzmasken-Summand, der als Standardwert f\xFCr fehlende Positionen\
-          \ in 'masklen_summand_list' eingesetzt wird. Der erlaubte Wertebereich ist\
-          \ 0..16."
-        in: query
-        name: masklen_summand
-        required: false
-        schema:
-          default: 0
-          nullable: false
-          type: number
       - description: "Liste der Maximalzahlen der generierten CIDR-Objekte je Basiswert.\
           \ Die Werte werden positional passend den Basis-CIDR-Objekten zugeordnet.\
           \ Fehlende Positionen werden mit dem Standardwert aus 'value_limit' erg\xE4\
           nzt; \xFCbersch\xFCssige Positionen werden ignoriert."
         in: query
-        name: value_limit_list
+        name: fetch_limit_list
         required: false
         schema:
           format: '["value1","value2",...]'
@@ -32434,12 +32412,30 @@ paths:
           \ werden mit dem Standardwert aus 'value_offset' erg\xE4nzt; \xFCbersch\xFC\
           ssige Positionen werden ignoriert."
         in: query
-        name: value_offset_list
+        name: fetch_offset_list
         required: false
         schema:
           format: '["value1","value2",...]'
           nullable: false
           type: string
+      - description: "Maximale Anzahl der generierten CIDR-Objekte je Basiswert, die\
+          \ als Standardwert f\xFCr fehlende Positionen in 'value_limit_list' eingesetzt\
+          \ wird."
+        in: query
+        name: default_fetch_limit
+        required: false
+        schema:
+          nullable: true
+          type: number
+      - description: "Anzahl der Datens\xE4tze, die zu Beginn der Ausgabe \xFCbersprungen\
+          \ werden, die als Standardwert f\xFCr fehlende Positionen in 'value_offset_list'\
+          \ eingesetzt wird."
+        in: query
+        name: default_fetch_offset
+        required: false
+        schema:
+          nullable: true
+          type: number
       - description: "Liste der Netzmasken-Summanden, die zur Netzmaske der Basis-CIDR-Objekte\
           \ addiert werden, um die Netzmaske der generierten CIDR-Objekte zu erhalten.\
           \ Der erlaubte Wertebereich ist 0..16. Die Werte werden positional passend\
@@ -32452,6 +32448,16 @@ paths:
           format: '["value1","value2",...]'
           nullable: false
           type: string
+      - description: "Netzmasken-Summand, der als Standardwert f\xFCr fehlende Positionen\
+          \ in 'masklen_summand_list' eingesetzt wird. Der erlaubte Wertebereich ist\
+          \ 0..16."
+        in: query
+        name: default_masklen_summand
+        required: false
+        schema:
+          default: 0
+          nullable: false
+          type: number
       responses:
         200:
           content:
diff --git a/4.2/python/__init__.py b/4.2/python/__init__.py
index e403fa8..721585f 100644
--- a/4.2/python/__init__.py
+++ b/4.2/python/__init__.py
@@ -36,7 +36,7 @@ class APIEndpoint(object):
 
 class APISession(object):
 	def __init__(self, endpoint: APIEndpoint, protocol: str='https', update_check: bool='NETDB_CLIENT_DISABLE_UPDATE_CHECK' not in os.environ):
-		self._build_version = '4.2.14'
+		self._build_version = '4.2.0'
 		self.session = requests.session()
 		self.session.headers.update({'Authorization': 'Bearer ' + endpoint.token})
 		self.api_root = f'{protocol}://{endpoint.base_url}'
diff --git a/4.2/python/tmp.py b/4.2/python/tmp.py
index 9a9dcb6..e7991de 100644
--- a/4.2/python/tmp.py
+++ b/4.2/python/tmp.py
@@ -114,51 +114,57 @@ class Diag4gpk(APIObject):
 class CidrGenerator(APIObject):
 	value: str
 	base_value: str
+	value_host: str
+	value_masklen: int
 
 	def __post_init__(self):
 		if not isinstance(self.value, str):
 			raise ValueError(f"'value' of incorrect type. Expected str, got {type(self.value)}")
 		if not isinstance(self.base_value, str):
 			raise ValueError(f"'base_value' of incorrect type. Expected str, got {type(self.base_value)}")
+		if not isinstance(self.value_host, str):
+			raise ValueError(f"'value_host' of incorrect type. Expected str, got {type(self.value_host)}")
+		if not isinstance(self.value_masklen, int):
+			raise ValueError(f"'value_masklen' of incorrect type. Expected int, got {type(self.value_masklen)}")
 
 	@staticmethod
-	def list_ta(value_limit_old: int = None, value_offset_old: int = None, base_value_list_old: list = None, masklen_summand_old: int = 0, value_limit_list_old: list = None, value_offset_list_old: list = None, masklen_summand_list_old: list = None) -> dict:
-		if value_limit_old is not None and not (isinstance(value_limit_old, int) or isinstance(value_limit_old, ExplicitNull)):
-			raise ValueError(f"'value_limit' of incorrect type. Expected int, got {type(value_limit_old)}")
-		if value_offset_old is not None and not (isinstance(value_offset_old, int) or isinstance(value_offset_old, ExplicitNull)):
-			raise ValueError(f"'value_offset' of incorrect type. Expected int, got {type(value_offset_old)}")
+	def list_ta(base_value_list_old: list = None, fetch_limit_list_old: list = None, fetch_offset_list_old: list = None, default_fetch_limit_old: int = None, default_fetch_offset_old: int = None, masklen_summand_list_old: list = None, default_masklen_summand_old: int = 0) -> dict:
 		if base_value_list_old is not None and not (isinstance(base_value_list_old, list)):
 			raise ValueError(f"'base_value_list' of incorrect type. Expected list, got {type(base_value_list_old)}")
-		if masklen_summand_old is not None and not (isinstance(masklen_summand_old, int)):
-			raise ValueError(f"'masklen_summand' of incorrect type. Expected int, got {type(masklen_summand_old)}")
-		if value_limit_list_old is not None and not (isinstance(value_limit_list_old, list)):
-			raise ValueError(f"'value_limit_list' of incorrect type. Expected list, got {type(value_limit_list_old)}")
-		if value_offset_list_old is not None and not (isinstance(value_offset_list_old, list)):
-			raise ValueError(f"'value_offset_list' of incorrect type. Expected list, got {type(value_offset_list_old)}")
+		if fetch_limit_list_old is not None and not (isinstance(fetch_limit_list_old, list)):
+			raise ValueError(f"'fetch_limit_list' of incorrect type. Expected list, got {type(fetch_limit_list_old)}")
+		if fetch_offset_list_old is not None and not (isinstance(fetch_offset_list_old, list)):
+			raise ValueError(f"'fetch_offset_list' of incorrect type. Expected list, got {type(fetch_offset_list_old)}")
+		if default_fetch_limit_old is not None and not (isinstance(default_fetch_limit_old, int) or isinstance(default_fetch_limit_old, ExplicitNull)):
+			raise ValueError(f"'default_fetch_limit' of incorrect type. Expected int, got {type(default_fetch_limit_old)}")
+		if default_fetch_offset_old is not None and not (isinstance(default_fetch_offset_old, int) or isinstance(default_fetch_offset_old, ExplicitNull)):
+			raise ValueError(f"'default_fetch_offset' of incorrect type. Expected int, got {type(default_fetch_offset_old)}")
 		if masklen_summand_list_old is not None and not (isinstance(masklen_summand_list_old, list)):
 			raise ValueError(f"'masklen_summand_list' of incorrect type. Expected list, got {type(masklen_summand_list_old)}")
+		if default_masklen_summand_old is not None and not (isinstance(default_masklen_summand_old, int)):
+			raise ValueError(f"'default_masklen_summand' of incorrect type. Expected int, got {type(default_masklen_summand_old)}")
 
-		return {'name': 'tmp.cidr_generator.list', 'new': _denullify_dict({}), 'old': _denullify_dict({'value_limit': value_limit_old, 'value_offset': value_offset_old, 'base_value_list': base_value_list_old, 'masklen_summand': masklen_summand_old, 'value_limit_list': value_limit_list_old, 'value_offset_list': value_offset_list_old, 'masklen_summand_list': masklen_summand_list_old})}
+		return {'name': 'tmp.cidr_generator.list', 'new': _denullify_dict({}), 'old': _denullify_dict({'base_value_list': base_value_list_old, 'fetch_limit_list': fetch_limit_list_old, 'fetch_offset_list': fetch_offset_list_old, 'default_fetch_limit': default_fetch_limit_old, 'default_fetch_offset': default_fetch_offset_old, 'masklen_summand_list': masklen_summand_list_old, 'default_masklen_summand': default_masklen_summand_old})}
 
 	# TODO: Consider is_returning
 	@classmethod
-	def list(cls, api_session: APISession, value_limit_old: int = None, value_offset_old: int = None, base_value_list_old: list = None, masklen_summand_old: int = 0, value_limit_list_old: list = None, value_offset_list_old: list = None, masklen_summand_list_old: list = None) -> list:
-		if value_limit_old is not None and not (isinstance(value_limit_old, int) or isinstance(value_limit_old, ExplicitNull)):
-			raise ValueError(f"'value_limit' of incorrect type. Expected int, got {type(value_limit_old)}")
-		if value_offset_old is not None and not (isinstance(value_offset_old, int) or isinstance(value_offset_old, ExplicitNull)):
-			raise ValueError(f"'value_offset' of incorrect type. Expected int, got {type(value_offset_old)}")
+	def list(cls, api_session: APISession, base_value_list_old: list = None, fetch_limit_list_old: list = None, fetch_offset_list_old: list = None, default_fetch_limit_old: int = None, default_fetch_offset_old: int = None, masklen_summand_list_old: list = None, default_masklen_summand_old: int = 0) -> list:
 		if base_value_list_old is not None and not (isinstance(base_value_list_old, list)):
 			raise ValueError(f"'base_value_list' of incorrect type. Expected list, got {type(base_value_list_old)}")
-		if masklen_summand_old is not None and not (isinstance(masklen_summand_old, int)):
-			raise ValueError(f"'masklen_summand' of incorrect type. Expected int, got {type(masklen_summand_old)}")
-		if value_limit_list_old is not None and not (isinstance(value_limit_list_old, list)):
-			raise ValueError(f"'value_limit_list' of incorrect type. Expected list, got {type(value_limit_list_old)}")
-		if value_offset_list_old is not None and not (isinstance(value_offset_list_old, list)):
-			raise ValueError(f"'value_offset_list' of incorrect type. Expected list, got {type(value_offset_list_old)}")
+		if fetch_limit_list_old is not None and not (isinstance(fetch_limit_list_old, list)):
+			raise ValueError(f"'fetch_limit_list' of incorrect type. Expected list, got {type(fetch_limit_list_old)}")
+		if fetch_offset_list_old is not None and not (isinstance(fetch_offset_list_old, list)):
+			raise ValueError(f"'fetch_offset_list' of incorrect type. Expected list, got {type(fetch_offset_list_old)}")
+		if default_fetch_limit_old is not None and not (isinstance(default_fetch_limit_old, int) or isinstance(default_fetch_limit_old, ExplicitNull)):
+			raise ValueError(f"'default_fetch_limit' of incorrect type. Expected int, got {type(default_fetch_limit_old)}")
+		if default_fetch_offset_old is not None and not (isinstance(default_fetch_offset_old, int) or isinstance(default_fetch_offset_old, ExplicitNull)):
+			raise ValueError(f"'default_fetch_offset' of incorrect type. Expected int, got {type(default_fetch_offset_old)}")
 		if masklen_summand_list_old is not None and not (isinstance(masklen_summand_list_old, list)):
 			raise ValueError(f"'masklen_summand_list' of incorrect type. Expected list, got {type(masklen_summand_list_old)}")
+		if default_masklen_summand_old is not None and not (isinstance(default_masklen_summand_old, int)):
+			raise ValueError(f"'default_masklen_summand' of incorrect type. Expected int, got {type(default_masklen_summand_old)}")
 
-		res = api_session.session.post(api_session.base_url + '/wapi/transaction/execute', json=[cls.list_ta(value_limit_old=value_limit_old, value_offset_old=value_offset_old, base_value_list_old=base_value_list_old, masklen_summand_old=masklen_summand_old, value_limit_list_old=value_limit_list_old, value_offset_list_old=value_offset_list_old, masklen_summand_list_old=masklen_summand_list_old)])
+		res = api_session.session.post(api_session.base_url + '/wapi/transaction/execute', json=[cls.list_ta(base_value_list_old=base_value_list_old, fetch_limit_list_old=fetch_limit_list_old, fetch_offset_list_old=fetch_offset_list_old, default_fetch_limit_old=default_fetch_limit_old, default_fetch_offset_old=default_fetch_offset_old, masklen_summand_list_old=masklen_summand_list_old, default_masklen_summand_old=default_masklen_summand_old)])
 		if not res.ok:
 			raise ExecutionError(res.status_code, res.reason, res.json() if "json" in res.headers["content-type"] else res.text)
 		return [cls(**s) for s in res.json()[0]]
diff --git a/4.2/transaction_json_schema.json b/4.2/transaction_json_schema.json
index 1364a5a..e90965e 100644
--- a/4.2/transaction_json_schema.json
+++ b/4.2/transaction_json_schema.json
@@ -135,14 +135,20 @@
             "description": "The referenced statement's position must be lower than the current position."
           },
           "pos": {
-            "type": [
-              "array",
-              "string",
-              "null"
-            ],
             "items": {
               "type": "integer"
             },
+            "oneOf": [
+              {
+                "type": "array"
+              },
+              {
+                "type": "string"
+              },
+              {
+                "type": "null"
+              }
+            ],
             "title": "Range of result sets of the referenced statement",
             "default": null,
             "pattern": "^\\[\\-?[0-9]*:\\-?[0-9]*\\]$",
@@ -211,9 +217,13 @@
       "maxItems": 0
     },
     "_when_condition": {
-      "type": [
-        "object",
-        "boolean"
+      "oneOf": [
+        {
+          "type": "object"
+        },
+        {
+          "type": "boolean"
+        }
       ],
       "title": "WHEN condition. Recursive, boolean returning function (as type 'object') for the WHEN clause; or a boolean constant",
       "properties": {
@@ -325,13 +335,17 @@
               "title": "attribute/parameter name"
             },
             {
-              "type": [
-                "string",
-                "array"
-              ],
               "items": {
                 "type": "integer"
               },
+              "oneOf": [
+                {
+                  "type": "array"
+                },
+                {
+                  "type": "string"
+                }
+              ],
               "title": "range literal for object dict position as string (like '[<lower_bound>:<upper_bound>]' according to the array slice notation) or list of object dict positions as array. defaults to all positions.",
               "default": null,
               "pattern": "^\\[\\-?[0-9]*:\\-?[0-9]*\\]$",
@@ -439,7 +453,7 @@
     "properties": {
       "idx": {
         "type": "string",
-        "title": "Unique identifier of the statement. default: Position in outer statement list (0-based)"
+        "title": "Unique identifier of the statement. Default: Position in outer statement list (0-based)"
       },
       "new": {
         "$ref": "#/$defs/_params"
diff --git a/4.2/version_numeric b/4.2/version_numeric
index 2393fef..ef8d756 100644
--- a/4.2/version_numeric
+++ b/4.2/version_numeric
@@ -1 +1 @@
-4.2.14
\ No newline at end of file
+4.2.0
\ No newline at end of file
diff --git a/latest_version b/latest_version
index 2393fef..ef8d756 100644
--- a/latest_version
+++ b/latest_version
@@ -1 +1 @@
-4.2.14
\ No newline at end of file
+4.2.0
\ No newline at end of file
-- 
GitLab