This is an automated email from the ASF dual-hosted git repository.
huaxingao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg.git
The following commit(s) were added to refs/heads/main by this push:
new 323ab162f0 Build: Bump datamodel-code-generator from 0.53.0 to 0.54.0
(#15331)
323ab162f0 is described below
commit 323ab162f007307c114bb78cae31ab6c74c932cc
Author: Manu Zhang <[email protected]>
AuthorDate: Mon Feb 16 15:58:32 2026 +0800
Build: Bump datamodel-code-generator from 0.53.0 to 0.54.0 (#15331)
Co-authored-by: Claude Sonnet 4.5 <[email protected]>
---
open-api/requirements.txt | 2 +-
open-api/rest-catalog-open-api.py | 194 +++++++++++++++++++++++++++++++++++---
2 files changed, 184 insertions(+), 12 deletions(-)
diff --git a/open-api/requirements.txt b/open-api/requirements.txt
index 728f6b7aea..1f32fc3510 100644
--- a/open-api/requirements.txt
+++ b/open-api/requirements.txt
@@ -16,5 +16,5 @@
# under the License.
openapi-spec-validator==0.7.2
-datamodel-code-generator==0.53.0
+datamodel-code-generator==0.54.0
yamllint==1.38.0
diff --git a/open-api/rest-catalog-open-api.py
b/open-api/rest-catalog-open-api.py
index 309eaeb506..411881cb31 100644
--- a/open-api/rest-catalog-open-api.py
+++ b/open-api/rest-catalog-open-api.py
@@ -136,11 +136,59 @@ class ExpressionType(BaseModel):
class TrueExpression(BaseModel):
- type: Literal['true'] = Field('true', const=True)
+ type: Literal['true'] = Field(
+ 'true',
+ const=True,
+ example=[
+ 'true',
+ 'false',
+ 'eq',
+ 'and',
+ 'or',
+ 'not',
+ 'in',
+ 'not-in',
+ 'lt',
+ 'lt-eq',
+ 'gt',
+ 'gt-eq',
+ 'not-eq',
+ 'starts-with',
+ 'not-starts-with',
+ 'is-null',
+ 'not-null',
+ 'is-nan',
+ 'not-nan',
+ ],
+ )
class FalseExpression(BaseModel):
- type: Literal['false'] = Field('false', const=True)
+ type: Literal['false'] = Field(
+ 'false',
+ const=True,
+ example=[
+ 'true',
+ 'false',
+ 'eq',
+ 'and',
+ 'or',
+ 'not',
+ 'in',
+ 'not-in',
+ 'lt',
+ 'lt-eq',
+ 'gt',
+ 'gt-eq',
+ 'not-eq',
+ 'starts-with',
+ 'not-starts-with',
+ 'is-null',
+ 'not-null',
+ 'is-nan',
+ 'not-nan',
+ ],
+ )
class Reference(BaseModel):
@@ -549,7 +597,9 @@ class LoadCredentialsResponse(BaseModel):
class AsyncPlanningResult(BaseModel):
- status: Literal['submitted'] = Field(..., const=True)
+ status: Literal['submitted'] = Field(
+ ..., const=True, description='Status of a server-side planning
operation'
+ )
plan_id: str = Field(
..., alias='plan-id', description='ID used to track a planning request'
)
@@ -560,7 +610,9 @@ class EmptyPlanningResult(BaseModel):
Empty server-side planning result
"""
- status: Literal['cancelled']
+ status: Literal['cancelled'] = Field(
+ ..., description='Status of a server-side planning operation'
+ )
class PlanStatus(BaseModel):
@@ -1023,7 +1075,9 @@ class FailedPlanningResult(IcebergErrorResponse):
Failed server-side planning result
"""
- status: Literal['failed'] = Field(..., const=True)
+ status: Literal['failed'] = Field(
+ ..., const=True, description='Status of a server-side planning
operation'
+ )
class ReportMetricsRequest2(CommitReport):
@@ -1110,20 +1164,89 @@ class SetStatisticsUpdate(BaseUpdate):
class UnaryExpression(BaseModel):
- type: Literal['is-null', 'not-null', 'is-nan', 'not-nan']
+ type: Literal['is-null', 'not-null', 'is-nan', 'not-nan'] = Field(
+ ...,
+ example=[
+ 'true',
+ 'false',
+ 'eq',
+ 'and',
+ 'or',
+ 'not',
+ 'in',
+ 'not-in',
+ 'lt',
+ 'lt-eq',
+ 'gt',
+ 'gt-eq',
+ 'not-eq',
+ 'starts-with',
+ 'not-starts-with',
+ 'is-null',
+ 'not-null',
+ 'is-nan',
+ 'not-nan',
+ ],
+ )
term: Term
class LiteralExpression(BaseModel):
type: Literal[
'lt', 'lt-eq', 'gt', 'gt-eq', 'eq', 'not-eq', 'starts-with',
'not-starts-with'
- ]
+ ] = Field(
+ ...,
+ example=[
+ 'true',
+ 'false',
+ 'eq',
+ 'and',
+ 'or',
+ 'not',
+ 'in',
+ 'not-in',
+ 'lt',
+ 'lt-eq',
+ 'gt',
+ 'gt-eq',
+ 'not-eq',
+ 'starts-with',
+ 'not-starts-with',
+ 'is-null',
+ 'not-null',
+ 'is-nan',
+ 'not-nan',
+ ],
+ )
term: Term
value: PrimitiveTypeValue
class SetExpression(BaseModel):
- type: Literal['in', 'not-in']
+ type: Literal['in', 'not-in'] = Field(
+ ...,
+ example=[
+ 'true',
+ 'false',
+ 'eq',
+ 'and',
+ 'or',
+ 'not',
+ 'in',
+ 'not-in',
+ 'lt',
+ 'lt-eq',
+ 'gt',
+ 'gt-eq',
+ 'not-eq',
+ 'starts-with',
+ 'not-starts-with',
+ 'is-null',
+ 'not-null',
+ 'is-nan',
+ 'not-nan',
+ ],
+ )
term: Term
values: list[PrimitiveTypeValue]
@@ -1176,13 +1299,60 @@ class Expression(BaseModel):
class AndOrExpression(BaseModel):
- type: Literal['and', 'or']
+ type: Literal['and', 'or'] = Field(
+ ...,
+ example=[
+ 'true',
+ 'false',
+ 'eq',
+ 'and',
+ 'or',
+ 'not',
+ 'in',
+ 'not-in',
+ 'lt',
+ 'lt-eq',
+ 'gt',
+ 'gt-eq',
+ 'not-eq',
+ 'starts-with',
+ 'not-starts-with',
+ 'is-null',
+ 'not-null',
+ 'is-nan',
+ 'not-nan',
+ ],
+ )
left: Expression
right: Expression
class NotExpression(BaseModel):
- type: Literal['not'] = Field('not', const=True)
+ type: Literal['not'] = Field(
+ 'not',
+ const=True,
+ example=[
+ 'true',
+ 'false',
+ 'eq',
+ 'and',
+ 'or',
+ 'not',
+ 'in',
+ 'not-in',
+ 'lt',
+ 'lt-eq',
+ 'gt',
+ 'gt-eq',
+ 'not-eq',
+ 'starts-with',
+ 'not-starts-with',
+ 'is-null',
+ 'not-null',
+ 'is-nan',
+ 'not-nan',
+ ],
+ )
child: Expression
@@ -1537,7 +1707,9 @@ class CompletedPlanningResult(ScanTasks):
Completed server-side planning result
"""
- status: Literal['completed'] = Field(..., const=True)
+ status: Literal['completed'] = Field(
+ ..., const=True, description='Status of a server-side planning
operation'
+ )
storage_credentials: list[StorageCredential] | None = Field(
None,
alias='storage-credentials',