diff --git a/src/Appwrite/SDK/Specification/Format/OpenAPI3.php b/src/Appwrite/SDK/Specification/Format/OpenAPI3.php index 782ed217e5..ed5beff853 100644 --- a/src/Appwrite/SDK/Specification/Format/OpenAPI3.php +++ b/src/Appwrite/SDK/Specification/Format/OpenAPI3.php @@ -610,7 +610,11 @@ class OpenAPI3 extends Format } $node['schema']['items']['enum'] = $enumValues; $node['schema']['items']['x-enum-name'] = $this->getRequestEnumName($sdk->getNamespace() ?? '', $methodName, $name); - $node['schema']['items']['x-enum-keys'] = $this->getRequestEnumKeys($sdk->getNamespace() ?? '', $methodName, $name); + $enumKeys = $this->getRequestEnumKeys($sdk->getNamespace() ?? '', $methodName, $name); + if ($excludeKeys !== null) { + $enumKeys = \array_values(\array_filter($enumKeys, fn ($key) => \in_array($key, $enumValues, true))); + } + $node['schema']['items']['x-enum-keys'] = $enumKeys; } if ($validator->getType() === 'integer') { $node['schema']['items']['format'] = $validator->getFormat() ?? 'int32'; @@ -648,7 +652,11 @@ class OpenAPI3 extends Format } $node['schema']['enum'] = $enumValues; $node['schema']['x-enum-name'] = $this->getRequestEnumName($sdk->getNamespace() ?? '', $methodName, $name); - $node['schema']['x-enum-keys'] = $this->getRequestEnumKeys($sdk->getNamespace() ?? '', $methodName, $name); + $enumKeys = $this->getRequestEnumKeys($sdk->getNamespace() ?? '', $methodName, $name); + if ($excludeKeys !== null) { + $enumKeys = \array_values(\array_filter($enumKeys, fn ($key) => \in_array($key, $enumValues, true))); + } + $node['schema']['x-enum-keys'] = $enumKeys; } if ($validator->getType() === 'integer') { $node['schema']['format'] = $validator->getFormat() ?? 'int32'; diff --git a/src/Appwrite/SDK/Specification/Format/Swagger2.php b/src/Appwrite/SDK/Specification/Format/Swagger2.php index 97d12f5192..dc135f15d4 100644 --- a/src/Appwrite/SDK/Specification/Format/Swagger2.php +++ b/src/Appwrite/SDK/Specification/Format/Swagger2.php @@ -594,7 +594,11 @@ class Swagger2 extends Format } $node['items']['enum'] = $enumValues; $node['items']['x-enum-name'] = $this->getRequestEnumName($namespace, $methodName, $name); - $node['items']['x-enum-keys'] = $this->getRequestEnumKeys($namespace, $methodName, $name); + $enumKeys = $this->getRequestEnumKeys($namespace, $methodName, $name); + if ($excludeKeys !== null) { + $enumKeys = \array_values(\array_filter($enumKeys, fn ($key) => \in_array($key, $enumValues, true))); + } + $node['items']['x-enum-keys'] = $enumKeys; } if ($validator->getType() === 'integer') { $node['items']['format'] = $validator->getFormat() ?? 'int32'; @@ -626,7 +630,11 @@ class Swagger2 extends Format } $node['enum'] = $enumValues; $node['x-enum-name'] = $this->getRequestEnumName($namespace, $methodName, $name); - $node['x-enum-keys'] = $this->getRequestEnumKeys($namespace, $methodName, $name); + $enumKeys = $this->getRequestEnumKeys($namespace, $methodName, $name); + if ($excludeKeys !== null) { + $enumKeys = \array_values(\array_filter($enumKeys, fn ($key) => \in_array($key, $enumValues, true))); + } + $node['x-enum-keys'] = $enumKeys; } if ($validator->getType() === 'integer') { $node['format'] = $validator->getFormat() ?? 'int32';