Skip to content

Commit e6efa90

Browse files
committed
refactor preprocess
Change-Id: I7112ad7d531eee33ea48de1c2871b0b92afe5e02
1 parent e3b8248 commit e6efa90

File tree

10 files changed

+1101
-510
lines changed

10 files changed

+1101
-510
lines changed

preprocess_schemas.py

Lines changed: 467 additions & 291 deletions
Large diffs are not rendered by default.

src/ucp_sdk/models/schemas/capability.py

Lines changed: 81 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,31 +72,109 @@ class Base(BaseModel):
7272
"""
7373

7474

75-
class PlatformSchema(Base):
75+
class PlatformSchema(BaseModel):
7676
"""
7777
Full capability declaration for platform-level discovery. Includes spec/schema URLs for agent fetching.
7878
"""
7979

8080
model_config = ConfigDict(
8181
extra="allow",
8282
)
83+
version: Version
84+
"""
85+
Entity version in YYYY-MM-DD format.
86+
"""
87+
spec: AnyUrl
88+
"""
89+
URL to human-readable specification document.
90+
"""
91+
schema_: AnyUrl = Field(..., alias="schema")
92+
"""
93+
URL to JSON Schema defining this entity's structure and payloads.
94+
"""
95+
id: str | None = None
96+
"""
97+
Unique identifier for this entity instance. Used to disambiguate when multiple instances exist.
98+
"""
99+
config: dict[str, Any] | None = None
100+
"""
101+
Entity-specific configuration. Structure defined by each entity's schema.
102+
"""
103+
extends: str | None = Field(
104+
None, pattern="^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$"
105+
)
106+
"""
107+
Parent capability this extends. Present for extensions, absent for root capabilities.
108+
"""
83109

84110

85-
class BusinessSchema(Base):
111+
class BusinessSchema(BaseModel):
86112
"""
87113
Capability configuration for business/merchant level. May include business-specific config overrides.
88114
"""
89115

90116
model_config = ConfigDict(
91117
extra="allow",
92118
)
119+
version: Version
120+
"""
121+
Entity version in YYYY-MM-DD format.
122+
"""
123+
spec: AnyUrl | None = None
124+
"""
125+
URL to human-readable specification document.
126+
"""
127+
schema_: AnyUrl | None = Field(None, alias="schema")
128+
"""
129+
URL to JSON Schema defining this entity's structure and payloads.
130+
"""
131+
id: str | None = None
132+
"""
133+
Unique identifier for this entity instance. Used to disambiguate when multiple instances exist.
134+
"""
135+
config: dict[str, Any] | None = None
136+
"""
137+
Entity-specific configuration. Structure defined by each entity's schema.
138+
"""
139+
extends: str | None = Field(
140+
None, pattern="^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$"
141+
)
142+
"""
143+
Parent capability this extends. Present for extensions, absent for root capabilities.
144+
"""
93145

94146

95-
class ResponseSchema(Base):
147+
class ResponseSchema(BaseModel):
96148
"""
97149
Capability reference in responses. Only name/version required to confirm active capabilities.
98150
"""
99151

100152
model_config = ConfigDict(
101153
extra="allow",
102154
)
155+
version: Version
156+
"""
157+
Entity version in YYYY-MM-DD format.
158+
"""
159+
spec: AnyUrl | None = None
160+
"""
161+
URL to human-readable specification document.
162+
"""
163+
schema_: AnyUrl | None = Field(None, alias="schema")
164+
"""
165+
URL to JSON Schema defining this entity's structure and payloads.
166+
"""
167+
id: str | None = None
168+
"""
169+
Unique identifier for this entity instance. Used to disambiguate when multiple instances exist.
170+
"""
171+
config: dict[str, Any] | None = None
172+
"""
173+
Entity-specific configuration. Structure defined by each entity's schema.
174+
"""
175+
extends: str | None = Field(
176+
None, pattern="^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$"
177+
)
178+
"""
179+
Parent capability this extends. Present for extensions, absent for root capabilities.
180+
"""

src/ucp_sdk/models/schemas/payment_handler.py

Lines changed: 63 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,31 +66,91 @@ class Base(BaseModel):
6666
"""
6767

6868

69-
class PlatformSchema(Base):
69+
class PlatformSchema(BaseModel):
7070
"""
7171
Platform declaration for discovery profiles. May include partial config state required for discovery.
7272
"""
7373

7474
model_config = ConfigDict(
7575
extra="allow",
7676
)
77+
version: Version
78+
"""
79+
Entity version in YYYY-MM-DD format.
80+
"""
81+
spec: AnyUrl
82+
"""
83+
URL to human-readable specification document.
84+
"""
85+
schema_: AnyUrl = Field(..., alias="schema")
86+
"""
87+
URL to JSON Schema defining this entity's structure and payloads.
88+
"""
89+
id: str
90+
"""
91+
Unique identifier for this entity instance. Used to disambiguate when multiple instances exist.
92+
"""
93+
config: dict[str, Any] | None = None
94+
"""
95+
Entity-specific configuration. Structure defined by each entity's schema.
96+
"""
7797

7898

79-
class BusinessSchema(Base):
99+
class BusinessSchema(BaseModel):
80100
"""
81101
Business declaration for discovery profiles. May include partial config state required for discovery.
82102
"""
83103

84104
model_config = ConfigDict(
85105
extra="allow",
86106
)
107+
version: Version
108+
"""
109+
Entity version in YYYY-MM-DD format.
110+
"""
111+
spec: AnyUrl | None = None
112+
"""
113+
URL to human-readable specification document.
114+
"""
115+
schema_: AnyUrl | None = Field(None, alias="schema")
116+
"""
117+
URL to JSON Schema defining this entity's structure and payloads.
118+
"""
119+
id: str
120+
"""
121+
Unique identifier for this entity instance. Used to disambiguate when multiple instances exist.
122+
"""
123+
config: dict[str, Any] | None = None
124+
"""
125+
Entity-specific configuration. Structure defined by each entity's schema.
126+
"""
87127

88128

89-
class ResponseSchema(Base):
129+
class ResponseSchema(BaseModel):
90130
"""
91131
Handler reference in responses. May include full config state for runtime usage of the handler.
92132
"""
93133

94134
model_config = ConfigDict(
95135
extra="allow",
96136
)
137+
version: Version
138+
"""
139+
Entity version in YYYY-MM-DD format.
140+
"""
141+
spec: AnyUrl | None = None
142+
"""
143+
URL to human-readable specification document.
144+
"""
145+
schema_: AnyUrl | None = Field(None, alias="schema")
146+
"""
147+
URL to JSON Schema defining this entity's structure and payloads.
148+
"""
149+
id: str
150+
"""
151+
Unique identifier for this entity instance. Used to disambiguate when multiple instances exist.
152+
"""
153+
config: dict[str, Any] | None = None
154+
"""
155+
Entity-specific configuration. Structure defined by each entity's schema.
156+
"""

0 commit comments

Comments
 (0)