Skip to content

Commit 4ea7102

Browse files
albertsolaCopilot
andcommitted
MPT-17888: add first-level field annotations to Parameter and ParameterGroup models
Add type-annotated fields to the Parameter and ParameterGroup model classes derived from the OpenAPI spec (ParameterDefinition and ParameterGroup schemas respectively). All fields are typed as T | None since RQL select can exclude any field from the API response. Nested objects (audit, group, product, constraints, options) are typed as BaseModel | None as no dedicated sub-model classes exist for them yet. Parameter fields: name, description, scope, phase, context, type, status, external_id, display_order, group, product, constraints, audit, options. ParameterGroup fields: name, label, description, display_order, default, parameter_count, product, audit. Also extends unit tests for both models to cover field access, nested BaseModel typing, and optional field absence. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 046a5fb commit 4ea7102

5 files changed

Lines changed: 104460 additions & 2 deletions

File tree

mpt_api_client/resources/catalog/products_parameter_groups.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,31 @@
66
ManagedResourceMixin,
77
)
88
from mpt_api_client.models import Model
9+
from mpt_api_client.models.model import BaseModel
910

1011

1112
class ParameterGroup(Model):
12-
"""Parameter Group resource."""
13+
"""Parameter Group resource.
14+
15+
Attributes:
16+
name: Parameter group name.
17+
label: Display label for the parameter group.
18+
description: Parameter group description.
19+
display_order: Display order of the group.
20+
default: Whether this is the default parameter group.
21+
parameter_count: Number of parameters in this group.
22+
product: Reference to the product this group belongs to.
23+
audit: Audit information (created, updated events).
24+
"""
25+
26+
name: str | None
27+
label: str | None
28+
description: str | None
29+
display_order: int | None
30+
default: bool | None
31+
parameter_count: int | None
32+
product: BaseModel | None
33+
audit: BaseModel | None
1334

1435

1536
class ParameterGroupsServiceConfig:

mpt_api_client/resources/catalog/products_parameters.py

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,43 @@
66
ManagedResourceMixin,
77
)
88
from mpt_api_client.models import Model
9+
from mpt_api_client.models.model import BaseModel
910

1011

1112
class Parameter(Model):
12-
"""Parameter resource."""
13+
"""Parameter resource.
14+
15+
Attributes:
16+
name: Parameter name.
17+
description: Parameter description.
18+
scope: Parameter scope (e.g. Agreement, Item, Request, Subscription, Order, Asset).
19+
phase: Parameter phase (e.g. Configuration, Order, Fulfillment).
20+
context: Parameter context (e.g. None, Purchase, Change, Configuration, Termination).
21+
type: Parameter type (e.g. SingleLineText, MultiLineText, Address, etc.).
22+
status: Parameter status.
23+
external_id: External identifier for the parameter.
24+
display_order: Display order of the parameter.
25+
group: Reference to the parameter group.
26+
product: Reference to the product this parameter belongs to.
27+
constraints: Parameter constraints (required, hidden, readonly).
28+
audit: Audit information (created, updated events).
29+
options: Type-specific parameter options.
30+
"""
31+
32+
name: str | None
33+
description: str | None
34+
scope: str | None
35+
phase: str | None
36+
context: str | None
37+
type: str | None
38+
status: str | None
39+
external_id: str | None
40+
display_order: int | None
41+
group: BaseModel | None
42+
product: BaseModel | None
43+
constraints: BaseModel | None
44+
audit: BaseModel | None
45+
options: BaseModel | None
1346

1447

1548
class ParametersServiceConfig:

0 commit comments

Comments
 (0)