superposition-sdk 0.92.0__py3-none-any.whl → 0.93.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of superposition-sdk might be problematic. Click here for more details.

@@ -26,9 +26,7 @@ from ._private.schemas import (
26
26
  BUCKET as _SCHEMA_BUCKET,
27
27
  BULK_OPERATION as _SCHEMA_BULK_OPERATION,
28
28
  BULK_OPERATION_INPUT as _SCHEMA_BULK_OPERATION_INPUT,
29
- BULK_OPERATION_OUT as _SCHEMA_BULK_OPERATION_OUT,
30
29
  BULK_OPERATION_OUTPUT as _SCHEMA_BULK_OPERATION_OUTPUT,
31
- BULK_OPERATION_REQ as _SCHEMA_BULK_OPERATION_REQ,
32
30
  CONCLUDE_EXPERIMENT as _SCHEMA_CONCLUDE_EXPERIMENT,
33
31
  CONCLUDE_EXPERIMENT_INPUT as _SCHEMA_CONCLUDE_EXPERIMENT_INPUT,
34
32
  CONCLUDE_EXPERIMENT_OUTPUT as _SCHEMA_CONCLUDE_EXPERIMENT_OUTPUT,
@@ -36,6 +34,7 @@ from ._private.schemas import (
36
34
  CONTEXT_ACTION_OUT as _SCHEMA_CONTEXT_ACTION_OUT,
37
35
  CONTEXT_IDENTIFIER as _SCHEMA_CONTEXT_IDENTIFIER,
38
36
  CONTEXT_MOVE as _SCHEMA_CONTEXT_MOVE,
37
+ CONTEXT_MOVE_BULK_REQUEST as _SCHEMA_CONTEXT_MOVE_BULK_REQUEST,
39
38
  CONTEXT_PARTIAL as _SCHEMA_CONTEXT_PARTIAL,
40
39
  CONTEXT_PUT as _SCHEMA_CONTEXT_PUT,
41
40
  CONTEXT_RESPONSE as _SCHEMA_CONTEXT_RESPONSE,
@@ -69,7 +68,7 @@ from ._private.schemas import (
69
68
  CREATE_WORKSPACE as _SCHEMA_CREATE_WORKSPACE,
70
69
  CREATE_WORKSPACE_INPUT as _SCHEMA_CREATE_WORKSPACE_INPUT,
71
70
  CREATE_WORKSPACE_OUTPUT as _SCHEMA_CREATE_WORKSPACE_OUTPUT,
72
- DEFAULT_CONFIG_FULL as _SCHEMA_DEFAULT_CONFIG_FULL,
71
+ DEFAULT_CONFIG_RESPONSE as _SCHEMA_DEFAULT_CONFIG_RESPONSE,
73
72
  DELETE_CONTEXT as _SCHEMA_DELETE_CONTEXT,
74
73
  DELETE_CONTEXT_INPUT as _SCHEMA_DELETE_CONTEXT_INPUT,
75
74
  DELETE_CONTEXT_OUTPUT as _SCHEMA_DELETE_CONTEXT_OUTPUT,
@@ -91,8 +90,8 @@ from ._private.schemas import (
91
90
  DELETE_WEBHOOK as _SCHEMA_DELETE_WEBHOOK,
92
91
  DELETE_WEBHOOK_INPUT as _SCHEMA_DELETE_WEBHOOK_INPUT,
93
92
  DELETE_WEBHOOK_OUTPUT as _SCHEMA_DELETE_WEBHOOK_OUTPUT,
94
- DIMENSION_EXT as _SCHEMA_DIMENSION_EXT,
95
93
  DIMENSION_INFO as _SCHEMA_DIMENSION_INFO,
94
+ DIMENSION_RESPONSE as _SCHEMA_DIMENSION_RESPONSE,
96
95
  DIMENSION_TYPE as _SCHEMA_DIMENSION_TYPE,
97
96
  DISCARD_EXPERIMENT as _SCHEMA_DISCARD_EXPERIMENT,
98
97
  DISCARD_EXPERIMENT_INPUT as _SCHEMA_DISCARD_EXPERIMENT_INPUT,
@@ -311,7 +310,7 @@ class AddMembersToGroupInput:
311
310
  **[Required]** - Reason for adding these members.
312
311
 
313
312
  :param member_experiment_ids:
314
- **[Required]** - List of experiment IDs to add to this group.
313
+ **[Required]** - List of experiment IDs to add/remove to this group.
315
314
 
316
315
  """
317
316
 
@@ -690,18 +689,44 @@ class ApplicableVariantsInput:
690
689
  deserializer.read_struct(_SCHEMA_APPLICABLE_VARIANTS_INPUT, consumer=_consumer)
691
690
  return kwargs
692
691
 
692
+ def _serialize_overrides(serializer: ShapeSerializer, schema: Schema, value: dict[str, Document]) -> None:
693
+ with serializer.begin_map(schema, len(value)) as m:
694
+ value_schema = schema.members["value"]
695
+ for k, v in value.items():
696
+ m.entry(k, lambda vs: vs.write_document(value_schema, v))
697
+
698
+ def _deserialize_overrides(deserializer: ShapeDeserializer, schema: Schema) -> dict[str, Document]:
699
+ result: dict[str, Document] = {}
700
+ value_schema = schema.members["value"]
701
+ def _read_value(k: str, d: ShapeDeserializer):
702
+ if d.is_null():
703
+ d.read_null()
704
+
705
+ else:
706
+ result[k] = d.read_document(value_schema)
707
+ deserializer.read_map(schema, _read_value)
708
+ return result
709
+
693
710
  class VariantType(StrEnum):
694
711
  CONTROL = "CONTROL"
695
712
  EXPERIMENTAL = "EXPERIMENTAL"
696
713
 
697
714
  @dataclass(kw_only=True)
698
715
  class Variant:
716
+ """
717
+
718
+ :param overrides:
719
+ **[Required]** - Configuration overrides that replace default values when
720
+ context conditions are met. Keys represent configuration keys and values are the
721
+ override data.
722
+
723
+ """
699
724
 
700
725
  id: str
701
726
 
702
727
  variant_type: str
703
728
 
704
- overrides: Document
729
+ overrides: dict[str, Document]
705
730
 
706
731
  context_id: str | None = None
707
732
  override_id: str | None = None
@@ -718,7 +743,7 @@ class Variant:
718
743
  if self.override_id is not None:
719
744
  serializer.write_string(_SCHEMA_VARIANT.members["override_id"], self.override_id)
720
745
 
721
- serializer.write_document(_SCHEMA_VARIANT.members["overrides"], self.overrides)
746
+ _serialize_overrides(serializer, _SCHEMA_VARIANT.members["overrides"], self.overrides)
722
747
 
723
748
  @classmethod
724
749
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -743,7 +768,7 @@ class Variant:
743
768
  kwargs["override_id"] = de.read_string(_SCHEMA_VARIANT.members["override_id"])
744
769
 
745
770
  case 4:
746
- kwargs["overrides"] = de.read_document(_SCHEMA_VARIANT.members["overrides"])
771
+ kwargs["overrides"] = _deserialize_overrides(de, _SCHEMA_VARIANT.members["overrides"])
747
772
 
748
773
  case _:
749
774
  logger.debug("Unexpected member schema: %s", schema)
@@ -812,6 +837,29 @@ APPLICABLE_VARIANTS = APIOperation(
812
837
  ]
813
838
  )
814
839
 
840
+ class AuditAction(StrEnum):
841
+ INSERT = "INSERT"
842
+ UPDATE = "UPDATE"
843
+ DELETE = "DELETE"
844
+
845
+ def _serialize_audit_action_list(serializer: ShapeSerializer, schema: Schema, value: list[str]) -> None:
846
+ member_schema = schema.members["member"]
847
+ with serializer.begin_list(schema, len(value)) as ls:
848
+ for e in value:
849
+ ls.write_string(member_schema, e)
850
+
851
+ def _deserialize_audit_action_list(deserializer: ShapeDeserializer, schema: Schema) -> list[str]:
852
+ result: list[str] = []
853
+ member_schema = schema.members["member"]
854
+ def _read_value(d: ShapeDeserializer):
855
+ if d.is_null():
856
+ d.read_null()
857
+
858
+ else:
859
+ result.append(d.read_string(member_schema))
860
+ deserializer.read_list(schema, _read_value)
861
+ return result
862
+
815
863
  class SortBy(StrEnum):
816
864
  """
817
865
  Sort order enumeration for list operations.
@@ -842,12 +890,6 @@ class ListAuditLogsInput:
842
890
  If true, returns all requested items, ignoring pagination parameters page and
843
891
  count.
844
892
 
845
- :param tables:
846
- Comma serparated list of tables.
847
-
848
- :param action:
849
- Comma serparated list of actions.
850
-
851
893
  :param sort_by:
852
894
  Sort order enumeration for list operations.
853
895
 
@@ -860,8 +902,8 @@ class ListAuditLogsInput:
860
902
  all: bool | None = None
861
903
  from_date: datetime | None = None
862
904
  to_date: datetime | None = None
863
- tables: str | None = None
864
- action: str | None = None
905
+ tables: list[str] | None = None
906
+ action: list[str] | None = None
865
907
  username: str | None = None
866
908
  sort_by: str | None = None
867
909
 
@@ -903,10 +945,10 @@ class ListAuditLogsInput:
903
945
  kwargs["to_date"] = de.read_timestamp(_SCHEMA_LIST_AUDIT_LOGS_INPUT.members["to_date"])
904
946
 
905
947
  case 7:
906
- kwargs["tables"] = de.read_string(_SCHEMA_LIST_AUDIT_LOGS_INPUT.members["tables"])
948
+ kwargs["tables"] = _deserialize_string_list(de, _SCHEMA_LIST_AUDIT_LOGS_INPUT.members["tables"])
907
949
 
908
950
  case 8:
909
- kwargs["action"] = de.read_string(_SCHEMA_LIST_AUDIT_LOGS_INPUT.members["action"])
951
+ kwargs["action"] = _deserialize_audit_action_list(de, _SCHEMA_LIST_AUDIT_LOGS_INPUT.members["action"])
910
952
 
911
953
  case 9:
912
954
  kwargs["username"] = de.read_string(_SCHEMA_LIST_AUDIT_LOGS_INPUT.members["username"])
@@ -923,38 +965,37 @@ class ListAuditLogsInput:
923
965
  @dataclass(kw_only=True)
924
966
  class AuditLogFull:
925
967
 
926
- table_name: str | None = None
927
- user_name: str | None = None
928
- timestamp: datetime | None = None
929
- action: str | None = None
968
+ id: str
969
+
970
+ table_name: str
971
+
972
+ user_name: str
973
+
974
+ timestamp: datetime
975
+
976
+ action: str
977
+
978
+ query: str
979
+
930
980
  original_data: Document | None = None
931
981
  new_data: Document | None = None
932
- query: str | None = None
933
982
 
934
983
  def serialize(self, serializer: ShapeSerializer):
935
984
  serializer.write_struct(_SCHEMA_AUDIT_LOG_FULL, self)
936
985
 
937
986
  def serialize_members(self, serializer: ShapeSerializer):
938
- if self.table_name is not None:
939
- serializer.write_string(_SCHEMA_AUDIT_LOG_FULL.members["table_name"], self.table_name)
940
-
941
- if self.user_name is not None:
942
- serializer.write_string(_SCHEMA_AUDIT_LOG_FULL.members["user_name"], self.user_name)
943
-
944
- if self.timestamp is not None:
945
- serializer.write_timestamp(_SCHEMA_AUDIT_LOG_FULL.members["timestamp"], self.timestamp)
946
-
947
- if self.action is not None:
948
- serializer.write_string(_SCHEMA_AUDIT_LOG_FULL.members["action"], self.action)
949
-
987
+ serializer.write_string(_SCHEMA_AUDIT_LOG_FULL.members["id"], self.id)
988
+ serializer.write_string(_SCHEMA_AUDIT_LOG_FULL.members["table_name"], self.table_name)
989
+ serializer.write_string(_SCHEMA_AUDIT_LOG_FULL.members["user_name"], self.user_name)
990
+ serializer.write_timestamp(_SCHEMA_AUDIT_LOG_FULL.members["timestamp"], self.timestamp)
991
+ serializer.write_string(_SCHEMA_AUDIT_LOG_FULL.members["action"], self.action)
950
992
  if self.original_data is not None:
951
993
  serializer.write_document(_SCHEMA_AUDIT_LOG_FULL.members["original_data"], self.original_data)
952
994
 
953
995
  if self.new_data is not None:
954
996
  serializer.write_document(_SCHEMA_AUDIT_LOG_FULL.members["new_data"], self.new_data)
955
997
 
956
- if self.query is not None:
957
- serializer.write_string(_SCHEMA_AUDIT_LOG_FULL.members["query"], self.query)
998
+ serializer.write_string(_SCHEMA_AUDIT_LOG_FULL.members["query"], self.query)
958
999
 
959
1000
  @classmethod
960
1001
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -967,24 +1008,27 @@ class AuditLogFull:
967
1008
  def _consumer(schema: Schema, de: ShapeDeserializer) -> None:
968
1009
  match schema.expect_member_index():
969
1010
  case 0:
970
- kwargs["table_name"] = de.read_string(_SCHEMA_AUDIT_LOG_FULL.members["table_name"])
1011
+ kwargs["id"] = de.read_string(_SCHEMA_AUDIT_LOG_FULL.members["id"])
971
1012
 
972
1013
  case 1:
973
- kwargs["user_name"] = de.read_string(_SCHEMA_AUDIT_LOG_FULL.members["user_name"])
1014
+ kwargs["table_name"] = de.read_string(_SCHEMA_AUDIT_LOG_FULL.members["table_name"])
974
1015
 
975
1016
  case 2:
976
- kwargs["timestamp"] = de.read_timestamp(_SCHEMA_AUDIT_LOG_FULL.members["timestamp"])
1017
+ kwargs["user_name"] = de.read_string(_SCHEMA_AUDIT_LOG_FULL.members["user_name"])
977
1018
 
978
1019
  case 3:
979
- kwargs["action"] = de.read_string(_SCHEMA_AUDIT_LOG_FULL.members["action"])
1020
+ kwargs["timestamp"] = de.read_timestamp(_SCHEMA_AUDIT_LOG_FULL.members["timestamp"])
980
1021
 
981
1022
  case 4:
982
- kwargs["original_data"] = de.read_document(_SCHEMA_AUDIT_LOG_FULL.members["original_data"])
1023
+ kwargs["action"] = de.read_string(_SCHEMA_AUDIT_LOG_FULL.members["action"])
983
1024
 
984
1025
  case 5:
985
- kwargs["new_data"] = de.read_document(_SCHEMA_AUDIT_LOG_FULL.members["new_data"])
1026
+ kwargs["original_data"] = de.read_document(_SCHEMA_AUDIT_LOG_FULL.members["original_data"])
986
1027
 
987
1028
  case 6:
1029
+ kwargs["new_data"] = de.read_document(_SCHEMA_AUDIT_LOG_FULL.members["new_data"])
1030
+
1031
+ case 7:
988
1032
  kwargs["query"] = de.read_string(_SCHEMA_AUDIT_LOG_FULL.members["query"])
989
1033
 
990
1034
  case _:
@@ -1013,22 +1057,19 @@ def _deserialize_audit_log_list(deserializer: ShapeDeserializer, schema: Schema)
1013
1057
  @dataclass(kw_only=True)
1014
1058
  class ListAuditLogsOutput:
1015
1059
 
1016
- total_pages: int | None = None
1017
- total_items: int | None = None
1018
- data: list[AuditLogFull] | None = None
1060
+ total_pages: int
1061
+
1062
+ total_items: int
1063
+
1064
+ data: list[AuditLogFull]
1019
1065
 
1020
1066
  def serialize(self, serializer: ShapeSerializer):
1021
1067
  serializer.write_struct(_SCHEMA_LIST_AUDIT_LOGS_OUTPUT, self)
1022
1068
 
1023
1069
  def serialize_members(self, serializer: ShapeSerializer):
1024
- if self.total_pages is not None:
1025
- serializer.write_integer(_SCHEMA_LIST_AUDIT_LOGS_OUTPUT.members["total_pages"], self.total_pages)
1026
-
1027
- if self.total_items is not None:
1028
- serializer.write_integer(_SCHEMA_LIST_AUDIT_LOGS_OUTPUT.members["total_items"], self.total_items)
1029
-
1030
- if self.data is not None:
1031
- _serialize_audit_log_list(serializer, _SCHEMA_LIST_AUDIT_LOGS_OUTPUT.members["data"], self.data)
1070
+ serializer.write_integer(_SCHEMA_LIST_AUDIT_LOGS_OUTPUT.members["total_pages"], self.total_pages)
1071
+ serializer.write_integer(_SCHEMA_LIST_AUDIT_LOGS_OUTPUT.members["total_items"], self.total_items)
1072
+ _serialize_audit_log_list(serializer, _SCHEMA_LIST_AUDIT_LOGS_OUTPUT.members["data"], self.data)
1032
1073
 
1033
1074
  @classmethod
1034
1075
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -1072,22 +1113,19 @@ LIST_AUDIT_LOGS = APIOperation(
1072
1113
  @dataclass(kw_only=True)
1073
1114
  class AutocompleteFunctionRequest:
1074
1115
 
1075
- name: str | None = None
1076
- prefix: str | None = None
1077
- environment: Document | None = None
1116
+ name: str
1117
+
1118
+ prefix: str
1119
+
1120
+ environment: Document
1078
1121
 
1079
1122
  def serialize(self, serializer: ShapeSerializer):
1080
1123
  serializer.write_struct(_SCHEMA_AUTOCOMPLETE_FUNCTION_REQUEST, self)
1081
1124
 
1082
1125
  def serialize_members(self, serializer: ShapeSerializer):
1083
- if self.name is not None:
1084
- serializer.write_string(_SCHEMA_AUTOCOMPLETE_FUNCTION_REQUEST.members["name"], self.name)
1085
-
1086
- if self.prefix is not None:
1087
- serializer.write_string(_SCHEMA_AUTOCOMPLETE_FUNCTION_REQUEST.members["prefix"], self.prefix)
1088
-
1089
- if self.environment is not None:
1090
- serializer.write_document(_SCHEMA_AUTOCOMPLETE_FUNCTION_REQUEST.members["environment"], self.environment)
1126
+ serializer.write_string(_SCHEMA_AUTOCOMPLETE_FUNCTION_REQUEST.members["name"], self.name)
1127
+ serializer.write_string(_SCHEMA_AUTOCOMPLETE_FUNCTION_REQUEST.members["prefix"], self.prefix)
1128
+ serializer.write_document(_SCHEMA_AUTOCOMPLETE_FUNCTION_REQUEST.members["environment"], self.environment)
1091
1129
 
1092
1130
  @classmethod
1093
1131
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -1128,16 +1166,12 @@ class ContextMove:
1128
1166
 
1129
1167
  change_reason: str
1130
1168
 
1131
- id: str | None = None
1132
1169
  description: str | None = None
1133
1170
 
1134
1171
  def serialize(self, serializer: ShapeSerializer):
1135
1172
  serializer.write_struct(_SCHEMA_CONTEXT_MOVE, self)
1136
1173
 
1137
1174
  def serialize_members(self, serializer: ShapeSerializer):
1138
- if self.id is not None:
1139
- serializer.write_string(_SCHEMA_CONTEXT_MOVE.members["id"], self.id)
1140
-
1141
1175
  _serialize_condition(serializer, _SCHEMA_CONTEXT_MOVE.members["context"], self.context)
1142
1176
  if self.description is not None:
1143
1177
  serializer.write_string(_SCHEMA_CONTEXT_MOVE.members["description"], self.description)
@@ -1155,15 +1189,12 @@ class ContextMove:
1155
1189
  def _consumer(schema: Schema, de: ShapeDeserializer) -> None:
1156
1190
  match schema.expect_member_index():
1157
1191
  case 0:
1158
- kwargs["id"] = de.read_string(_SCHEMA_CONTEXT_MOVE.members["id"])
1159
-
1160
- case 1:
1161
1192
  kwargs["context"] = _deserialize_condition(de, _SCHEMA_CONTEXT_MOVE.members["context"])
1162
1193
 
1163
- case 2:
1194
+ case 1:
1164
1195
  kwargs["description"] = de.read_string(_SCHEMA_CONTEXT_MOVE.members["description"])
1165
1196
 
1166
- case 3:
1197
+ case 2:
1167
1198
  kwargs["change_reason"] = de.read_string(_SCHEMA_CONTEXT_MOVE.members["change_reason"])
1168
1199
 
1169
1200
  case _:
@@ -1172,23 +1203,41 @@ class ContextMove:
1172
1203
  deserializer.read_struct(_SCHEMA_CONTEXT_MOVE, consumer=_consumer)
1173
1204
  return kwargs
1174
1205
 
1175
- def _serialize_overrides(serializer: ShapeSerializer, schema: Schema, value: dict[str, Document]) -> None:
1176
- with serializer.begin_map(schema, len(value)) as m:
1177
- value_schema = schema.members["value"]
1178
- for k, v in value.items():
1179
- m.entry(k, lambda vs: vs.write_document(value_schema, v))
1206
+ @dataclass(kw_only=True)
1207
+ class ContextMoveBulkRequest:
1180
1208
 
1181
- def _deserialize_overrides(deserializer: ShapeDeserializer, schema: Schema) -> dict[str, Document]:
1182
- result: dict[str, Document] = {}
1183
- value_schema = schema.members["value"]
1184
- def _read_value(k: str, d: ShapeDeserializer):
1185
- if d.is_null():
1186
- d.read_null()
1209
+ id: str
1187
1210
 
1188
- else:
1189
- result[k] = d.read_document(value_schema)
1190
- deserializer.read_map(schema, _read_value)
1191
- return result
1211
+ request: ContextMove
1212
+
1213
+ def serialize(self, serializer: ShapeSerializer):
1214
+ serializer.write_struct(_SCHEMA_CONTEXT_MOVE_BULK_REQUEST, self)
1215
+
1216
+ def serialize_members(self, serializer: ShapeSerializer):
1217
+ serializer.write_string(_SCHEMA_CONTEXT_MOVE_BULK_REQUEST.members["id"], self.id)
1218
+ serializer.write_struct(_SCHEMA_CONTEXT_MOVE_BULK_REQUEST.members["request"], self.request)
1219
+
1220
+ @classmethod
1221
+ def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
1222
+ return cls(**cls.deserialize_kwargs(deserializer))
1223
+
1224
+ @classmethod
1225
+ def deserialize_kwargs(cls, deserializer: ShapeDeserializer) -> dict[str, Any]:
1226
+ kwargs: dict[str, Any] = {}
1227
+
1228
+ def _consumer(schema: Schema, de: ShapeDeserializer) -> None:
1229
+ match schema.expect_member_index():
1230
+ case 0:
1231
+ kwargs["id"] = de.read_string(_SCHEMA_CONTEXT_MOVE_BULK_REQUEST.members["id"])
1232
+
1233
+ case 1:
1234
+ kwargs["request"] = ContextMove.deserialize(de)
1235
+
1236
+ case _:
1237
+ logger.debug("Unexpected member schema: %s", schema)
1238
+
1239
+ deserializer.read_struct(_SCHEMA_CONTEXT_MOVE_BULK_REQUEST, consumer=_consumer)
1240
+ return kwargs
1192
1241
 
1193
1242
  @dataclass(kw_only=True)
1194
1243
  class ContextPut:
@@ -1445,7 +1494,7 @@ class ContextActionDELETE:
1445
1494
  @dataclass
1446
1495
  class ContextActionMOVE:
1447
1496
 
1448
- value: ContextMove
1497
+ value: ContextMoveBulkRequest
1449
1498
 
1450
1499
  def serialize(self, serializer: ShapeSerializer):
1451
1500
  serializer.write_struct(_SCHEMA_CONTEXT_ACTION, self)
@@ -1455,7 +1504,7 @@ class ContextActionMOVE:
1455
1504
 
1456
1505
  @classmethod
1457
1506
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
1458
- return cls(value=ContextMove.deserialize(deserializer))
1507
+ return cls(value=ContextMoveBulkRequest.deserialize(deserializer))
1459
1508
 
1460
1509
  @dataclass
1461
1510
  class ContextActionUnknown:
@@ -1532,50 +1581,20 @@ def _deserialize_bulk_operation_list(deserializer: ShapeDeserializer, schema: Sc
1532
1581
  deserializer.read_list(schema, _read_value)
1533
1582
  return result
1534
1583
 
1535
- @dataclass(kw_only=True)
1536
- class BulkOperationReq:
1537
-
1538
- operations: list[ContextAction] | None = None
1539
-
1540
- def serialize(self, serializer: ShapeSerializer):
1541
- serializer.write_struct(_SCHEMA_BULK_OPERATION_REQ, self)
1542
-
1543
- def serialize_members(self, serializer: ShapeSerializer):
1544
- if self.operations is not None:
1545
- _serialize_bulk_operation_list(serializer, _SCHEMA_BULK_OPERATION_REQ.members["operations"], self.operations)
1546
-
1547
- @classmethod
1548
- def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
1549
- return cls(**cls.deserialize_kwargs(deserializer))
1550
-
1551
- @classmethod
1552
- def deserialize_kwargs(cls, deserializer: ShapeDeserializer) -> dict[str, Any]:
1553
- kwargs: dict[str, Any] = {}
1554
-
1555
- def _consumer(schema: Schema, de: ShapeDeserializer) -> None:
1556
- match schema.expect_member_index():
1557
- case 0:
1558
- kwargs["operations"] = _deserialize_bulk_operation_list(de, _SCHEMA_BULK_OPERATION_REQ.members["operations"])
1559
-
1560
- case _:
1561
- logger.debug("Unexpected member schema: %s", schema)
1562
-
1563
- deserializer.read_struct(_SCHEMA_BULK_OPERATION_REQ, consumer=_consumer)
1564
- return kwargs
1565
-
1566
1584
  @dataclass(kw_only=True)
1567
1585
  class BulkOperationInput:
1568
1586
 
1569
1587
  workspace_id: str | None = None
1570
1588
  org_id: str | None = None
1571
1589
  config_tags: str | None = None
1572
- bulk_operation: BulkOperationReq | None = None
1590
+ operations: list[ContextAction] | None = None
1573
1591
 
1574
1592
  def serialize(self, serializer: ShapeSerializer):
1575
1593
  serializer.write_struct(_SCHEMA_BULK_OPERATION_INPUT, self)
1576
1594
 
1577
1595
  def serialize_members(self, serializer: ShapeSerializer):
1578
- pass
1596
+ if self.operations is not None:
1597
+ _serialize_bulk_operation_list(serializer, _SCHEMA_BULK_OPERATION_INPUT.members["operations"], self.operations)
1579
1598
 
1580
1599
  @classmethod
1581
1600
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -1597,7 +1616,7 @@ class BulkOperationInput:
1597
1616
  kwargs["config_tags"] = de.read_string(_SCHEMA_BULK_OPERATION_INPUT.members["config_tags"])
1598
1617
 
1599
1618
  case 3:
1600
- kwargs["bulk_operation"] = BulkOperationReq.deserialize(de)
1619
+ kwargs["operations"] = _deserialize_bulk_operation_list(de, _SCHEMA_BULK_OPERATION_INPUT.members["operations"])
1601
1620
 
1602
1621
  case _:
1603
1622
  logger.debug("Unexpected member schema: %s", schema)
@@ -1610,66 +1629,57 @@ class ContextResponse:
1610
1629
  """
1611
1630
 
1612
1631
  :param value:
1613
- Represents conditional criteria used for context matching. Keys define dimension
1614
- names and values specify the criteria that must be met.
1632
+ **[Required]** - Represents conditional criteria used for context matching. Keys
1633
+ define dimension names and values specify the criteria that must be met.
1615
1634
 
1616
1635
  :param override:
1617
- Configuration overrides that replace default values when context conditions are
1618
- met. Keys represent configuration keys and values are the override data.
1636
+ **[Required]** - Configuration overrides that replace default values when
1637
+ context conditions are met. Keys represent configuration keys and values are the
1638
+ override data.
1619
1639
 
1620
1640
  :param weight:
1621
- Priority weight used to determine the order of context evaluation. Higher
1622
- weights take precedence during configuration resolution.
1641
+ **[Required]** - Priority weight used to determine the order of context
1642
+ evaluation. Higher weights take precedence during configuration resolution.
1623
1643
 
1624
1644
  """
1625
1645
 
1626
1646
  id: str
1627
1647
 
1628
- value: dict[str, Document] | None = None
1629
- override: dict[str, Document] | None = None
1630
- override_id: str | None = None
1631
- weight: str | None = None
1632
- description: str | None = None
1633
- change_reason: str | None = None
1634
- created_at: datetime | None = None
1635
- created_by: str | None = None
1636
- last_modified_at: datetime | None = None
1637
- last_modified_by: str | None = None
1648
+ value: dict[str, Document]
1638
1649
 
1639
- def serialize(self, serializer: ShapeSerializer):
1640
- serializer.write_struct(_SCHEMA_CONTEXT_RESPONSE, self)
1650
+ override: dict[str, Document]
1641
1651
 
1642
- def serialize_members(self, serializer: ShapeSerializer):
1643
- serializer.write_string(_SCHEMA_CONTEXT_RESPONSE.members["id"], self.id)
1644
- if self.value is not None:
1645
- _serialize_condition(serializer, _SCHEMA_CONTEXT_RESPONSE.members["value"], self.value)
1652
+ override_id: str
1646
1653
 
1647
- if self.override is not None:
1648
- _serialize_overrides(serializer, _SCHEMA_CONTEXT_RESPONSE.members["override"], self.override)
1654
+ weight: str
1649
1655
 
1650
- if self.override_id is not None:
1651
- serializer.write_string(_SCHEMA_CONTEXT_RESPONSE.members["override_id"], self.override_id)
1656
+ description: str
1652
1657
 
1653
- if self.weight is not None:
1654
- serializer.write_string(_SCHEMA_CONTEXT_RESPONSE.members["weight"], self.weight)
1658
+ change_reason: str
1655
1659
 
1656
- if self.description is not None:
1657
- serializer.write_string(_SCHEMA_CONTEXT_RESPONSE.members["description"], self.description)
1660
+ created_at: datetime
1658
1661
 
1659
- if self.change_reason is not None:
1660
- serializer.write_string(_SCHEMA_CONTEXT_RESPONSE.members["change_reason"], self.change_reason)
1662
+ created_by: str
1661
1663
 
1662
- if self.created_at is not None:
1663
- serializer.write_timestamp(_SCHEMA_CONTEXT_RESPONSE.members["created_at"], self.created_at)
1664
+ last_modified_at: datetime
1664
1665
 
1665
- if self.created_by is not None:
1666
- serializer.write_string(_SCHEMA_CONTEXT_RESPONSE.members["created_by"], self.created_by)
1666
+ last_modified_by: str
1667
1667
 
1668
- if self.last_modified_at is not None:
1669
- serializer.write_timestamp(_SCHEMA_CONTEXT_RESPONSE.members["last_modified_at"], self.last_modified_at)
1668
+ def serialize(self, serializer: ShapeSerializer):
1669
+ serializer.write_struct(_SCHEMA_CONTEXT_RESPONSE, self)
1670
1670
 
1671
- if self.last_modified_by is not None:
1672
- serializer.write_string(_SCHEMA_CONTEXT_RESPONSE.members["last_modified_by"], self.last_modified_by)
1671
+ def serialize_members(self, serializer: ShapeSerializer):
1672
+ serializer.write_string(_SCHEMA_CONTEXT_RESPONSE.members["id"], self.id)
1673
+ _serialize_condition(serializer, _SCHEMA_CONTEXT_RESPONSE.members["value"], self.value)
1674
+ _serialize_overrides(serializer, _SCHEMA_CONTEXT_RESPONSE.members["override"], self.override)
1675
+ serializer.write_string(_SCHEMA_CONTEXT_RESPONSE.members["override_id"], self.override_id)
1676
+ serializer.write_string(_SCHEMA_CONTEXT_RESPONSE.members["weight"], self.weight)
1677
+ serializer.write_string(_SCHEMA_CONTEXT_RESPONSE.members["description"], self.description)
1678
+ serializer.write_string(_SCHEMA_CONTEXT_RESPONSE.members["change_reason"], self.change_reason)
1679
+ serializer.write_timestamp(_SCHEMA_CONTEXT_RESPONSE.members["created_at"], self.created_at)
1680
+ serializer.write_string(_SCHEMA_CONTEXT_RESPONSE.members["created_by"], self.created_by)
1681
+ serializer.write_timestamp(_SCHEMA_CONTEXT_RESPONSE.members["last_modified_at"], self.last_modified_at)
1682
+ serializer.write_string(_SCHEMA_CONTEXT_RESPONSE.members["last_modified_by"], self.last_modified_by)
1673
1683
 
1674
1684
  @classmethod
1675
1685
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -1855,47 +1865,16 @@ def _deserialize_bulk_operation_out_list(deserializer: ShapeDeserializer, schema
1855
1865
  deserializer.read_list(schema, _read_value)
1856
1866
  return result
1857
1867
 
1858
- @dataclass(kw_only=True)
1859
- class BulkOperationOut:
1860
-
1861
- output: list[ContextActionOut] | None = None
1862
-
1863
- def serialize(self, serializer: ShapeSerializer):
1864
- serializer.write_struct(_SCHEMA_BULK_OPERATION_OUT, self)
1865
-
1866
- def serialize_members(self, serializer: ShapeSerializer):
1867
- if self.output is not None:
1868
- _serialize_bulk_operation_out_list(serializer, _SCHEMA_BULK_OPERATION_OUT.members["output"], self.output)
1869
-
1870
- @classmethod
1871
- def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
1872
- return cls(**cls.deserialize_kwargs(deserializer))
1873
-
1874
- @classmethod
1875
- def deserialize_kwargs(cls, deserializer: ShapeDeserializer) -> dict[str, Any]:
1876
- kwargs: dict[str, Any] = {}
1877
-
1878
- def _consumer(schema: Schema, de: ShapeDeserializer) -> None:
1879
- match schema.expect_member_index():
1880
- case 0:
1881
- kwargs["output"] = _deserialize_bulk_operation_out_list(de, _SCHEMA_BULK_OPERATION_OUT.members["output"])
1882
-
1883
- case _:
1884
- logger.debug("Unexpected member schema: %s", schema)
1885
-
1886
- deserializer.read_struct(_SCHEMA_BULK_OPERATION_OUT, consumer=_consumer)
1887
- return kwargs
1888
-
1889
1868
  @dataclass(kw_only=True)
1890
1869
  class BulkOperationOutput:
1891
1870
 
1892
- bulk_operation_output: BulkOperationOut | None = None
1871
+ output: list[ContextActionOut]
1893
1872
 
1894
1873
  def serialize(self, serializer: ShapeSerializer):
1895
1874
  serializer.write_struct(_SCHEMA_BULK_OPERATION_OUTPUT, self)
1896
1875
 
1897
1876
  def serialize_members(self, serializer: ShapeSerializer):
1898
- pass
1877
+ _serialize_bulk_operation_out_list(serializer, _SCHEMA_BULK_OPERATION_OUTPUT.members["output"], self.output)
1899
1878
 
1900
1879
  @classmethod
1901
1880
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -1908,7 +1887,7 @@ class BulkOperationOutput:
1908
1887
  def _consumer(schema: Schema, de: ShapeDeserializer) -> None:
1909
1888
  match schema.expect_member_index():
1910
1889
  case 0:
1911
- kwargs["bulk_operation_output"] = BulkOperationOut.deserialize(de)
1890
+ kwargs["output"] = _deserialize_bulk_operation_out_list(de, _SCHEMA_BULK_OPERATION_OUTPUT.members["output"])
1912
1891
 
1913
1892
  case _:
1914
1893
  logger.debug("Unexpected member schema: %s", schema)
@@ -2218,7 +2197,7 @@ class GetConfigInput:
2218
2197
 
2219
2198
  workspace_id: str | None = None
2220
2199
  org_id: str | None = None
2221
- prefix: str | None = None
2200
+ prefix: list[str] | None = None
2222
2201
  version: str | None = None
2223
2202
  context: dict[str, Document] | None = None
2224
2203
 
@@ -2246,7 +2225,7 @@ class GetConfigInput:
2246
2225
  kwargs["org_id"] = de.read_string(_SCHEMA_GET_CONFIG_INPUT.members["org_id"])
2247
2226
 
2248
2227
  case 2:
2249
- kwargs["prefix"] = de.read_string(_SCHEMA_GET_CONFIG_INPUT.members["prefix"])
2228
+ kwargs["prefix"] = _deserialize_string_list(de, _SCHEMA_GET_CONFIG_INPUT.members["prefix"])
2250
2229
 
2251
2230
  case 3:
2252
2231
  kwargs["version"] = de.read_string(_SCHEMA_GET_CONFIG_INPUT.members["version"])
@@ -2283,35 +2262,30 @@ class ContextPartial:
2283
2262
  """
2284
2263
 
2285
2264
  :param condition:
2286
- Represents conditional criteria used for context matching. Keys define dimension
2287
- names and values specify the criteria that must be met.
2265
+ **[Required]** - Represents conditional criteria used for context matching. Keys
2266
+ define dimension names and values specify the criteria that must be met.
2288
2267
 
2289
2268
  """
2290
2269
 
2291
- id: str | None = None
2292
- condition: dict[str, Document] | None = None
2293
- priority: int | None = None
2294
- weight: int | None = None
2295
- override_with_keys: list[str] | None = None
2270
+ id: str
2296
2271
 
2297
- def serialize(self, serializer: ShapeSerializer):
2298
- serializer.write_struct(_SCHEMA_CONTEXT_PARTIAL, self)
2272
+ condition: dict[str, Document]
2299
2273
 
2300
- def serialize_members(self, serializer: ShapeSerializer):
2301
- if self.id is not None:
2302
- serializer.write_string(_SCHEMA_CONTEXT_PARTIAL.members["id"], self.id)
2274
+ priority: int
2303
2275
 
2304
- if self.condition is not None:
2305
- _serialize_condition(serializer, _SCHEMA_CONTEXT_PARTIAL.members["condition"], self.condition)
2276
+ weight: int
2306
2277
 
2307
- if self.priority is not None:
2308
- serializer.write_integer(_SCHEMA_CONTEXT_PARTIAL.members["priority"], self.priority)
2278
+ override_with_keys: list[str]
2309
2279
 
2310
- if self.weight is not None:
2311
- serializer.write_integer(_SCHEMA_CONTEXT_PARTIAL.members["weight"], self.weight)
2280
+ def serialize(self, serializer: ShapeSerializer):
2281
+ serializer.write_struct(_SCHEMA_CONTEXT_PARTIAL, self)
2312
2282
 
2313
- if self.override_with_keys is not None:
2314
- _serialize_override_with_keys(serializer, _SCHEMA_CONTEXT_PARTIAL.members["override_with_keys"], self.override_with_keys)
2283
+ def serialize_members(self, serializer: ShapeSerializer):
2284
+ serializer.write_string(_SCHEMA_CONTEXT_PARTIAL.members["id"], self.id)
2285
+ _serialize_condition(serializer, _SCHEMA_CONTEXT_PARTIAL.members["condition"], self.condition)
2286
+ serializer.write_integer(_SCHEMA_CONTEXT_PARTIAL.members["priority"], self.priority)
2287
+ serializer.write_integer(_SCHEMA_CONTEXT_PARTIAL.members["weight"], self.weight)
2288
+ _serialize_override_with_keys(serializer, _SCHEMA_CONTEXT_PARTIAL.members["override_with_keys"], self.override_with_keys)
2315
2289
 
2316
2290
  @classmethod
2317
2291
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -2379,13 +2353,13 @@ def _deserialize_object(deserializer: ShapeDeserializer, schema: Schema) -> dict
2379
2353
  deserializer.read_map(schema, _read_value)
2380
2354
  return result
2381
2355
 
2382
- def _serialize_depedendency_graph(serializer: ShapeSerializer, schema: Schema, value: dict[str, list[str]]) -> None:
2356
+ def _serialize_dependency_graph(serializer: ShapeSerializer, schema: Schema, value: dict[str, list[str]]) -> None:
2383
2357
  with serializer.begin_map(schema, len(value)) as m:
2384
2358
  value_schema = schema.members["value"]
2385
2359
  for k, v in value.items():
2386
2360
  m.entry(k, lambda vs: _serialize_string_list(vs, value_schema, v))
2387
2361
 
2388
- def _deserialize_depedendency_graph(deserializer: ShapeDeserializer, schema: Schema) -> dict[str, list[str]]:
2362
+ def _deserialize_dependency_graph(deserializer: ShapeDeserializer, schema: Schema) -> dict[str, list[str]]:
2389
2363
  result: dict[str, list[str]] = {}
2390
2364
  value_schema = schema.members["value"]
2391
2365
  def _read_value(k: str, d: ShapeDeserializer):
@@ -2528,31 +2502,27 @@ class DimensionInfo:
2528
2502
  """
2529
2503
 
2530
2504
  :param schema:
2531
- Generic key-value object structure used for flexible data representation
2532
- throughout the API.
2505
+ **[Required]** - Generic key-value object structure used for flexible data
2506
+ representation throughout the API.
2533
2507
 
2534
2508
  """
2535
2509
 
2536
- schema: dict[str, Document] | None = None
2537
- position: int | None = None
2538
- dimension_type: DimensionType | None = None
2539
- dependency_graph: dict[str, list[str]] | None = None
2510
+ schema: dict[str, Document]
2540
2511
 
2541
- def serialize(self, serializer: ShapeSerializer):
2542
- serializer.write_struct(_SCHEMA_DIMENSION_INFO, self)
2512
+ position: int
2543
2513
 
2544
- def serialize_members(self, serializer: ShapeSerializer):
2545
- if self.schema is not None:
2546
- _serialize_object(serializer, _SCHEMA_DIMENSION_INFO.members["schema"], self.schema)
2514
+ dimension_type: DimensionType
2547
2515
 
2548
- if self.position is not None:
2549
- serializer.write_integer(_SCHEMA_DIMENSION_INFO.members["position"], self.position)
2516
+ dependency_graph: dict[str, list[str]]
2550
2517
 
2551
- if self.dimension_type is not None:
2552
- serializer.write_struct(_SCHEMA_DIMENSION_INFO.members["dimension_type"], self.dimension_type)
2518
+ def serialize(self, serializer: ShapeSerializer):
2519
+ serializer.write_struct(_SCHEMA_DIMENSION_INFO, self)
2553
2520
 
2554
- if self.dependency_graph is not None:
2555
- _serialize_depedendency_graph(serializer, _SCHEMA_DIMENSION_INFO.members["dependency_graph"], self.dependency_graph)
2521
+ def serialize_members(self, serializer: ShapeSerializer):
2522
+ _serialize_object(serializer, _SCHEMA_DIMENSION_INFO.members["schema"], self.schema)
2523
+ serializer.write_integer(_SCHEMA_DIMENSION_INFO.members["position"], self.position)
2524
+ serializer.write_struct(_SCHEMA_DIMENSION_INFO.members["dimension_type"], self.dimension_type)
2525
+ _serialize_dependency_graph(serializer, _SCHEMA_DIMENSION_INFO.members["dependency_graph"], self.dependency_graph)
2556
2526
 
2557
2527
  @classmethod
2558
2528
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -2574,7 +2544,7 @@ class DimensionInfo:
2574
2544
  kwargs["dimension_type"] = _DimensionTypeDeserializer().deserialize(de)
2575
2545
 
2576
2546
  case 3:
2577
- kwargs["dependency_graph"] = _deserialize_depedendency_graph(de, _SCHEMA_DIMENSION_INFO.members["dependency_graph"])
2547
+ kwargs["dependency_graph"] = _deserialize_dependency_graph(de, _SCHEMA_DIMENSION_INFO.members["dependency_graph"])
2578
2548
 
2579
2549
  case _:
2580
2550
  logger.debug("Unexpected member schema: %s", schema)
@@ -2623,34 +2593,33 @@ class GetConfigOutput:
2623
2593
  """
2624
2594
 
2625
2595
  :param default_configs:
2626
- Generic key-value object structure used for flexible data representation
2627
- throughout the API.
2596
+ **[Required]** - Generic key-value object structure used for flexible data
2597
+ representation throughout the API.
2628
2598
 
2629
2599
  """
2630
2600
 
2631
- contexts: list[ContextPartial] | None = None
2632
- overrides: dict[str, dict[str, Document]] | None = None
2633
- default_configs: dict[str, Document] | None = None
2634
- dimensions: dict[str, DimensionInfo] | None = None
2635
- version: str | None = None
2636
- last_modified: datetime | None = None
2601
+ contexts: list[ContextPartial]
2602
+
2603
+ overrides: dict[str, dict[str, Document]]
2604
+
2605
+ default_configs: dict[str, Document]
2606
+
2607
+ dimensions: dict[str, DimensionInfo]
2608
+
2609
+ version: str
2610
+
2611
+ last_modified: datetime
2612
+
2637
2613
  audit_id: str | None = None
2638
2614
 
2639
2615
  def serialize(self, serializer: ShapeSerializer):
2640
2616
  serializer.write_struct(_SCHEMA_GET_CONFIG_OUTPUT, self)
2641
2617
 
2642
2618
  def serialize_members(self, serializer: ShapeSerializer):
2643
- if self.contexts is not None:
2644
- _serialize_context_list(serializer, _SCHEMA_GET_CONFIG_OUTPUT.members["contexts"], self.contexts)
2645
-
2646
- if self.overrides is not None:
2647
- _serialize_overrides_map(serializer, _SCHEMA_GET_CONFIG_OUTPUT.members["overrides"], self.overrides)
2648
-
2649
- if self.default_configs is not None:
2650
- _serialize_object(serializer, _SCHEMA_GET_CONFIG_OUTPUT.members["default_configs"], self.default_configs)
2651
-
2652
- if self.dimensions is not None:
2653
- _serialize_dimension_data(serializer, _SCHEMA_GET_CONFIG_OUTPUT.members["dimensions"], self.dimensions)
2619
+ _serialize_context_list(serializer, _SCHEMA_GET_CONFIG_OUTPUT.members["contexts"], self.contexts)
2620
+ _serialize_overrides_map(serializer, _SCHEMA_GET_CONFIG_OUTPUT.members["overrides"], self.overrides)
2621
+ _serialize_object(serializer, _SCHEMA_GET_CONFIG_OUTPUT.members["default_configs"], self.default_configs)
2622
+ _serialize_dimension_data(serializer, _SCHEMA_GET_CONFIG_OUTPUT.members["dimensions"], self.dimensions)
2654
2623
 
2655
2624
  @classmethod
2656
2625
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -2808,7 +2777,7 @@ class GetResolvedConfigInput:
2808
2777
 
2809
2778
  workspace_id: str | None = None
2810
2779
  org_id: str | None = None
2811
- prefix: str | None = None
2780
+ prefix: list[str] | None = None
2812
2781
  version: str | None = None
2813
2782
  show_reasoning: bool | None = None
2814
2783
  merge_strategy: str | None = None
@@ -2839,7 +2808,7 @@ class GetResolvedConfigInput:
2839
2808
  kwargs["org_id"] = de.read_string(_SCHEMA_GET_RESOLVED_CONFIG_INPUT.members["org_id"])
2840
2809
 
2841
2810
  case 2:
2842
- kwargs["prefix"] = de.read_string(_SCHEMA_GET_RESOLVED_CONFIG_INPUT.members["prefix"])
2811
+ kwargs["prefix"] = _deserialize_string_list(de, _SCHEMA_GET_RESOLVED_CONFIG_INPUT.members["prefix"])
2843
2812
 
2844
2813
  case 3:
2845
2814
  kwargs["version"] = de.read_string(_SCHEMA_GET_RESOLVED_CONFIG_INPUT.members["version"])
@@ -2865,9 +2834,12 @@ class GetResolvedConfigInput:
2865
2834
  @dataclass(kw_only=True)
2866
2835
  class GetResolvedConfigOutput:
2867
2836
 
2868
- config: Document | None = None
2869
- version: str | None = None
2870
- last_modified: datetime | None = None
2837
+ config: Document
2838
+
2839
+ version: str
2840
+
2841
+ last_modified: datetime
2842
+
2871
2843
  audit_id: str | None = None
2872
2844
 
2873
2845
  def serialize(self, serializer: ShapeSerializer):
@@ -3158,22 +3130,19 @@ def _deserialize_list_versions_out(deserializer: ShapeDeserializer, schema: Sche
3158
3130
  @dataclass(kw_only=True)
3159
3131
  class ListVersionsOutput:
3160
3132
 
3161
- total_pages: int | None = None
3162
- total_items: int | None = None
3163
- data: list[ListVersionsMember] | None = None
3133
+ total_pages: int
3134
+
3135
+ total_items: int
3136
+
3137
+ data: list[ListVersionsMember]
3164
3138
 
3165
3139
  def serialize(self, serializer: ShapeSerializer):
3166
3140
  serializer.write_struct(_SCHEMA_LIST_VERSIONS_OUTPUT, self)
3167
3141
 
3168
3142
  def serialize_members(self, serializer: ShapeSerializer):
3169
- if self.total_pages is not None:
3170
- serializer.write_integer(_SCHEMA_LIST_VERSIONS_OUTPUT.members["total_pages"], self.total_pages)
3171
-
3172
- if self.total_items is not None:
3173
- serializer.write_integer(_SCHEMA_LIST_VERSIONS_OUTPUT.members["total_items"], self.total_items)
3174
-
3175
- if self.data is not None:
3176
- _serialize_list_versions_out(serializer, _SCHEMA_LIST_VERSIONS_OUTPUT.members["data"], self.data)
3143
+ serializer.write_integer(_SCHEMA_LIST_VERSIONS_OUTPUT.members["total_pages"], self.total_pages)
3144
+ serializer.write_integer(_SCHEMA_LIST_VERSIONS_OUTPUT.members["total_items"], self.total_items)
3145
+ _serialize_list_versions_out(serializer, _SCHEMA_LIST_VERSIONS_OUTPUT.members["data"], self.data)
3177
3146
 
3178
3147
  @classmethod
3179
3148
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -3216,42 +3185,17 @@ LIST_VERSIONS = APIOperation(
3216
3185
 
3217
3186
  @dataclass(kw_only=True)
3218
3187
  class CreateContextInput:
3219
- """
3220
-
3221
- :param context:
3222
- **[Required]** - Represents conditional criteria used for context matching. Keys
3223
- define dimension names and values specify the criteria that must be met.
3224
-
3225
- :param override:
3226
- **[Required]** - Configuration overrides that replace default values when
3227
- context conditions are met. Keys represent configuration keys and values are the
3228
- override data.
3229
-
3230
- """
3231
3188
 
3232
3189
  workspace_id: str | None = None
3233
3190
  org_id: str | None = None
3234
- context: dict[str, Document] | None = None
3235
3191
  config_tags: str | None = None
3236
- override: dict[str, Document] | None = None
3237
- description: str | None = None
3238
- change_reason: str | None = None
3192
+ request: ContextPut | None = None
3239
3193
 
3240
3194
  def serialize(self, serializer: ShapeSerializer):
3241
3195
  serializer.write_struct(_SCHEMA_CREATE_CONTEXT_INPUT, self)
3242
3196
 
3243
3197
  def serialize_members(self, serializer: ShapeSerializer):
3244
- if self.context is not None:
3245
- _serialize_condition(serializer, _SCHEMA_CREATE_CONTEXT_INPUT.members["context"], self.context)
3246
-
3247
- if self.override is not None:
3248
- _serialize_overrides(serializer, _SCHEMA_CREATE_CONTEXT_INPUT.members["override"], self.override)
3249
-
3250
- if self.description is not None:
3251
- serializer.write_string(_SCHEMA_CREATE_CONTEXT_INPUT.members["description"], self.description)
3252
-
3253
- if self.change_reason is not None:
3254
- serializer.write_string(_SCHEMA_CREATE_CONTEXT_INPUT.members["change_reason"], self.change_reason)
3198
+ pass
3255
3199
 
3256
3200
  @classmethod
3257
3201
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -3270,19 +3214,10 @@ class CreateContextInput:
3270
3214
  kwargs["org_id"] = de.read_string(_SCHEMA_CREATE_CONTEXT_INPUT.members["org_id"])
3271
3215
 
3272
3216
  case 2:
3273
- kwargs["context"] = _deserialize_condition(de, _SCHEMA_CREATE_CONTEXT_INPUT.members["context"])
3274
-
3275
- case 3:
3276
3217
  kwargs["config_tags"] = de.read_string(_SCHEMA_CREATE_CONTEXT_INPUT.members["config_tags"])
3277
3218
 
3278
- case 4:
3279
- kwargs["override"] = _deserialize_overrides(de, _SCHEMA_CREATE_CONTEXT_INPUT.members["override"])
3280
-
3281
- case 5:
3282
- kwargs["description"] = de.read_string(_SCHEMA_CREATE_CONTEXT_INPUT.members["description"])
3283
-
3284
- case 6:
3285
- kwargs["change_reason"] = de.read_string(_SCHEMA_CREATE_CONTEXT_INPUT.members["change_reason"])
3219
+ case 3:
3220
+ kwargs["request"] = ContextPut.deserialize(de)
3286
3221
 
3287
3222
  case _:
3288
3223
  logger.debug("Unexpected member schema: %s", schema)
@@ -3295,66 +3230,57 @@ class CreateContextOutput:
3295
3230
  """
3296
3231
 
3297
3232
  :param value:
3298
- Represents conditional criteria used for context matching. Keys define dimension
3299
- names and values specify the criteria that must be met.
3233
+ **[Required]** - Represents conditional criteria used for context matching. Keys
3234
+ define dimension names and values specify the criteria that must be met.
3300
3235
 
3301
3236
  :param override:
3302
- Configuration overrides that replace default values when context conditions are
3303
- met. Keys represent configuration keys and values are the override data.
3237
+ **[Required]** - Configuration overrides that replace default values when
3238
+ context conditions are met. Keys represent configuration keys and values are the
3239
+ override data.
3304
3240
 
3305
3241
  :param weight:
3306
- Priority weight used to determine the order of context evaluation. Higher
3307
- weights take precedence during configuration resolution.
3242
+ **[Required]** - Priority weight used to determine the order of context
3243
+ evaluation. Higher weights take precedence during configuration resolution.
3308
3244
 
3309
3245
  """
3310
3246
 
3311
3247
  id: str
3312
3248
 
3313
- value: dict[str, Document] | None = None
3314
- override: dict[str, Document] | None = None
3315
- override_id: str | None = None
3316
- weight: str | None = None
3317
- description: str | None = None
3318
- change_reason: str | None = None
3319
- created_at: datetime | None = None
3320
- created_by: str | None = None
3321
- last_modified_at: datetime | None = None
3322
- last_modified_by: str | None = None
3249
+ value: dict[str, Document]
3323
3250
 
3324
- def serialize(self, serializer: ShapeSerializer):
3325
- serializer.write_struct(_SCHEMA_CREATE_CONTEXT_OUTPUT, self)
3251
+ override: dict[str, Document]
3326
3252
 
3327
- def serialize_members(self, serializer: ShapeSerializer):
3328
- serializer.write_string(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["id"], self.id)
3329
- if self.value is not None:
3330
- _serialize_condition(serializer, _SCHEMA_CREATE_CONTEXT_OUTPUT.members["value"], self.value)
3253
+ override_id: str
3331
3254
 
3332
- if self.override is not None:
3333
- _serialize_overrides(serializer, _SCHEMA_CREATE_CONTEXT_OUTPUT.members["override"], self.override)
3255
+ weight: str
3334
3256
 
3335
- if self.override_id is not None:
3336
- serializer.write_string(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["override_id"], self.override_id)
3257
+ description: str
3337
3258
 
3338
- if self.weight is not None:
3339
- serializer.write_string(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["weight"], self.weight)
3259
+ change_reason: str
3340
3260
 
3341
- if self.description is not None:
3342
- serializer.write_string(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["description"], self.description)
3261
+ created_at: datetime
3343
3262
 
3344
- if self.change_reason is not None:
3345
- serializer.write_string(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["change_reason"], self.change_reason)
3263
+ created_by: str
3346
3264
 
3347
- if self.created_at is not None:
3348
- serializer.write_timestamp(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["created_at"], self.created_at)
3265
+ last_modified_at: datetime
3349
3266
 
3350
- if self.created_by is not None:
3351
- serializer.write_string(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["created_by"], self.created_by)
3267
+ last_modified_by: str
3352
3268
 
3353
- if self.last_modified_at is not None:
3354
- serializer.write_timestamp(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["last_modified_at"], self.last_modified_at)
3269
+ def serialize(self, serializer: ShapeSerializer):
3270
+ serializer.write_struct(_SCHEMA_CREATE_CONTEXT_OUTPUT, self)
3355
3271
 
3356
- if self.last_modified_by is not None:
3357
- serializer.write_string(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["last_modified_by"], self.last_modified_by)
3272
+ def serialize_members(self, serializer: ShapeSerializer):
3273
+ serializer.write_string(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["id"], self.id)
3274
+ _serialize_condition(serializer, _SCHEMA_CREATE_CONTEXT_OUTPUT.members["value"], self.value)
3275
+ _serialize_overrides(serializer, _SCHEMA_CREATE_CONTEXT_OUTPUT.members["override"], self.override)
3276
+ serializer.write_string(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["override_id"], self.override_id)
3277
+ serializer.write_string(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["weight"], self.weight)
3278
+ serializer.write_string(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["description"], self.description)
3279
+ serializer.write_string(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["change_reason"], self.change_reason)
3280
+ serializer.write_timestamp(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["created_at"], self.created_at)
3281
+ serializer.write_string(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["created_by"], self.created_by)
3282
+ serializer.write_timestamp(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["last_modified_at"], self.last_modified_at)
3283
+ serializer.write_string(_SCHEMA_CREATE_CONTEXT_OUTPUT.members["last_modified_by"], self.last_modified_by)
3358
3284
 
3359
3285
  @classmethod
3360
3286
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -3546,66 +3472,57 @@ class GetContextOutput:
3546
3472
  """
3547
3473
 
3548
3474
  :param value:
3549
- Represents conditional criteria used for context matching. Keys define dimension
3550
- names and values specify the criteria that must be met.
3475
+ **[Required]** - Represents conditional criteria used for context matching. Keys
3476
+ define dimension names and values specify the criteria that must be met.
3551
3477
 
3552
3478
  :param override:
3553
- Configuration overrides that replace default values when context conditions are
3554
- met. Keys represent configuration keys and values are the override data.
3479
+ **[Required]** - Configuration overrides that replace default values when
3480
+ context conditions are met. Keys represent configuration keys and values are the
3481
+ override data.
3555
3482
 
3556
3483
  :param weight:
3557
- Priority weight used to determine the order of context evaluation. Higher
3558
- weights take precedence during configuration resolution.
3484
+ **[Required]** - Priority weight used to determine the order of context
3485
+ evaluation. Higher weights take precedence during configuration resolution.
3559
3486
 
3560
3487
  """
3561
3488
 
3562
3489
  id: str
3563
3490
 
3564
- value: dict[str, Document] | None = None
3565
- override: dict[str, Document] | None = None
3566
- override_id: str | None = None
3567
- weight: str | None = None
3568
- description: str | None = None
3569
- change_reason: str | None = None
3570
- created_at: datetime | None = None
3571
- created_by: str | None = None
3572
- last_modified_at: datetime | None = None
3573
- last_modified_by: str | None = None
3491
+ value: dict[str, Document]
3574
3492
 
3575
- def serialize(self, serializer: ShapeSerializer):
3576
- serializer.write_struct(_SCHEMA_GET_CONTEXT_OUTPUT, self)
3493
+ override: dict[str, Document]
3577
3494
 
3578
- def serialize_members(self, serializer: ShapeSerializer):
3579
- serializer.write_string(_SCHEMA_GET_CONTEXT_OUTPUT.members["id"], self.id)
3580
- if self.value is not None:
3581
- _serialize_condition(serializer, _SCHEMA_GET_CONTEXT_OUTPUT.members["value"], self.value)
3495
+ override_id: str
3582
3496
 
3583
- if self.override is not None:
3584
- _serialize_overrides(serializer, _SCHEMA_GET_CONTEXT_OUTPUT.members["override"], self.override)
3497
+ weight: str
3585
3498
 
3586
- if self.override_id is not None:
3587
- serializer.write_string(_SCHEMA_GET_CONTEXT_OUTPUT.members["override_id"], self.override_id)
3499
+ description: str
3588
3500
 
3589
- if self.weight is not None:
3590
- serializer.write_string(_SCHEMA_GET_CONTEXT_OUTPUT.members["weight"], self.weight)
3501
+ change_reason: str
3591
3502
 
3592
- if self.description is not None:
3593
- serializer.write_string(_SCHEMA_GET_CONTEXT_OUTPUT.members["description"], self.description)
3503
+ created_at: datetime
3594
3504
 
3595
- if self.change_reason is not None:
3596
- serializer.write_string(_SCHEMA_GET_CONTEXT_OUTPUT.members["change_reason"], self.change_reason)
3505
+ created_by: str
3597
3506
 
3598
- if self.created_at is not None:
3599
- serializer.write_timestamp(_SCHEMA_GET_CONTEXT_OUTPUT.members["created_at"], self.created_at)
3507
+ last_modified_at: datetime
3600
3508
 
3601
- if self.created_by is not None:
3602
- serializer.write_string(_SCHEMA_GET_CONTEXT_OUTPUT.members["created_by"], self.created_by)
3509
+ last_modified_by: str
3603
3510
 
3604
- if self.last_modified_at is not None:
3605
- serializer.write_timestamp(_SCHEMA_GET_CONTEXT_OUTPUT.members["last_modified_at"], self.last_modified_at)
3511
+ def serialize(self, serializer: ShapeSerializer):
3512
+ serializer.write_struct(_SCHEMA_GET_CONTEXT_OUTPUT, self)
3606
3513
 
3607
- if self.last_modified_by is not None:
3608
- serializer.write_string(_SCHEMA_GET_CONTEXT_OUTPUT.members["last_modified_by"], self.last_modified_by)
3514
+ def serialize_members(self, serializer: ShapeSerializer):
3515
+ serializer.write_string(_SCHEMA_GET_CONTEXT_OUTPUT.members["id"], self.id)
3516
+ _serialize_condition(serializer, _SCHEMA_GET_CONTEXT_OUTPUT.members["value"], self.value)
3517
+ _serialize_overrides(serializer, _SCHEMA_GET_CONTEXT_OUTPUT.members["override"], self.override)
3518
+ serializer.write_string(_SCHEMA_GET_CONTEXT_OUTPUT.members["override_id"], self.override_id)
3519
+ serializer.write_string(_SCHEMA_GET_CONTEXT_OUTPUT.members["weight"], self.weight)
3520
+ serializer.write_string(_SCHEMA_GET_CONTEXT_OUTPUT.members["description"], self.description)
3521
+ serializer.write_string(_SCHEMA_GET_CONTEXT_OUTPUT.members["change_reason"], self.change_reason)
3522
+ serializer.write_timestamp(_SCHEMA_GET_CONTEXT_OUTPUT.members["created_at"], self.created_at)
3523
+ serializer.write_string(_SCHEMA_GET_CONTEXT_OUTPUT.members["created_by"], self.created_by)
3524
+ serializer.write_timestamp(_SCHEMA_GET_CONTEXT_OUTPUT.members["last_modified_at"], self.last_modified_at)
3525
+ serializer.write_string(_SCHEMA_GET_CONTEXT_OUTPUT.members["last_modified_by"], self.last_modified_by)
3609
3526
 
3610
3527
  @classmethod
3611
3528
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -3714,66 +3631,57 @@ class GetContextFromConditionOutput:
3714
3631
  """
3715
3632
 
3716
3633
  :param value:
3717
- Represents conditional criteria used for context matching. Keys define dimension
3718
- names and values specify the criteria that must be met.
3634
+ **[Required]** - Represents conditional criteria used for context matching. Keys
3635
+ define dimension names and values specify the criteria that must be met.
3719
3636
 
3720
3637
  :param override:
3721
- Configuration overrides that replace default values when context conditions are
3722
- met. Keys represent configuration keys and values are the override data.
3638
+ **[Required]** - Configuration overrides that replace default values when
3639
+ context conditions are met. Keys represent configuration keys and values are the
3640
+ override data.
3723
3641
 
3724
3642
  :param weight:
3725
- Priority weight used to determine the order of context evaluation. Higher
3726
- weights take precedence during configuration resolution.
3643
+ **[Required]** - Priority weight used to determine the order of context
3644
+ evaluation. Higher weights take precedence during configuration resolution.
3727
3645
 
3728
3646
  """
3729
3647
 
3730
3648
  id: str
3731
3649
 
3732
- value: dict[str, Document] | None = None
3733
- override: dict[str, Document] | None = None
3734
- override_id: str | None = None
3735
- weight: str | None = None
3736
- description: str | None = None
3737
- change_reason: str | None = None
3738
- created_at: datetime | None = None
3739
- created_by: str | None = None
3740
- last_modified_at: datetime | None = None
3741
- last_modified_by: str | None = None
3650
+ value: dict[str, Document]
3742
3651
 
3743
- def serialize(self, serializer: ShapeSerializer):
3744
- serializer.write_struct(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT, self)
3652
+ override: dict[str, Document]
3745
3653
 
3746
- def serialize_members(self, serializer: ShapeSerializer):
3747
- serializer.write_string(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["id"], self.id)
3748
- if self.value is not None:
3749
- _serialize_condition(serializer, _SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["value"], self.value)
3654
+ override_id: str
3750
3655
 
3751
- if self.override is not None:
3752
- _serialize_overrides(serializer, _SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["override"], self.override)
3656
+ weight: str
3753
3657
 
3754
- if self.override_id is not None:
3755
- serializer.write_string(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["override_id"], self.override_id)
3658
+ description: str
3756
3659
 
3757
- if self.weight is not None:
3758
- serializer.write_string(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["weight"], self.weight)
3660
+ change_reason: str
3759
3661
 
3760
- if self.description is not None:
3761
- serializer.write_string(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["description"], self.description)
3662
+ created_at: datetime
3762
3663
 
3763
- if self.change_reason is not None:
3764
- serializer.write_string(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["change_reason"], self.change_reason)
3664
+ created_by: str
3765
3665
 
3766
- if self.created_at is not None:
3767
- serializer.write_timestamp(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["created_at"], self.created_at)
3666
+ last_modified_at: datetime
3768
3667
 
3769
- if self.created_by is not None:
3770
- serializer.write_string(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["created_by"], self.created_by)
3668
+ last_modified_by: str
3771
3669
 
3772
- if self.last_modified_at is not None:
3773
- serializer.write_timestamp(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["last_modified_at"], self.last_modified_at)
3670
+ def serialize(self, serializer: ShapeSerializer):
3671
+ serializer.write_struct(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT, self)
3774
3672
 
3775
- if self.last_modified_by is not None:
3776
- serializer.write_string(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["last_modified_by"], self.last_modified_by)
3673
+ def serialize_members(self, serializer: ShapeSerializer):
3674
+ serializer.write_string(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["id"], self.id)
3675
+ _serialize_condition(serializer, _SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["value"], self.value)
3676
+ _serialize_overrides(serializer, _SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["override"], self.override)
3677
+ serializer.write_string(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["override_id"], self.override_id)
3678
+ serializer.write_string(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["weight"], self.weight)
3679
+ serializer.write_string(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["description"], self.description)
3680
+ serializer.write_string(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["change_reason"], self.change_reason)
3681
+ serializer.write_timestamp(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["created_at"], self.created_at)
3682
+ serializer.write_string(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["created_by"], self.created_by)
3683
+ serializer.write_timestamp(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["last_modified_at"], self.last_modified_at)
3684
+ serializer.write_string(_SCHEMA_GET_CONTEXT_FROM_CONDITION_OUTPUT.members["last_modified_by"], self.last_modified_by)
3777
3685
 
3778
3686
  @classmethod
3779
3687
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -3887,11 +3795,11 @@ class ListContextsInput:
3887
3795
  all: bool | None = None
3888
3796
  workspace_id: str | None = None
3889
3797
  org_id: str | None = None
3890
- prefix: str | None = None
3798
+ prefix: list[str] | None = None
3891
3799
  sort_on: str | None = None
3892
- sort_by: str | None = None
3893
- created_by: str | None = None
3894
- last_modified_by: str | None = None
3800
+ sort_by: str | None = None
3801
+ created_by: list[str] | None = None
3802
+ last_modified_by: list[str] | None = None
3895
3803
  plaintext: str | None = None
3896
3804
  dimension_match_strategy: str | None = None
3897
3805
 
@@ -3927,7 +3835,7 @@ class ListContextsInput:
3927
3835
  kwargs["org_id"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["org_id"])
3928
3836
 
3929
3837
  case 5:
3930
- kwargs["prefix"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["prefix"])
3838
+ kwargs["prefix"] = _deserialize_string_list(de, _SCHEMA_LIST_CONTEXTS_INPUT.members["prefix"])
3931
3839
 
3932
3840
  case 6:
3933
3841
  kwargs["sort_on"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["sort_on"])
@@ -3936,10 +3844,10 @@ class ListContextsInput:
3936
3844
  kwargs["sort_by"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["sort_by"])
3937
3845
 
3938
3846
  case 8:
3939
- kwargs["created_by"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["created_by"])
3847
+ kwargs["created_by"] = _deserialize_string_list(de, _SCHEMA_LIST_CONTEXTS_INPUT.members["created_by"])
3940
3848
 
3941
3849
  case 9:
3942
- kwargs["last_modified_by"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["last_modified_by"])
3850
+ kwargs["last_modified_by"] = _deserialize_string_list(de, _SCHEMA_LIST_CONTEXTS_INPUT.members["last_modified_by"])
3943
3851
 
3944
3852
  case 10:
3945
3853
  kwargs["plaintext"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["plaintext"])
@@ -3973,22 +3881,19 @@ def _deserialize_list_context_out(deserializer: ShapeDeserializer, schema: Schem
3973
3881
  @dataclass(kw_only=True)
3974
3882
  class ListContextsOutput:
3975
3883
 
3976
- total_pages: int | None = None
3977
- total_items: int | None = None
3978
- data: list[ContextResponse] | None = None
3884
+ total_pages: int
3885
+
3886
+ total_items: int
3887
+
3888
+ data: list[ContextResponse]
3979
3889
 
3980
3890
  def serialize(self, serializer: ShapeSerializer):
3981
3891
  serializer.write_struct(_SCHEMA_LIST_CONTEXTS_OUTPUT, self)
3982
3892
 
3983
3893
  def serialize_members(self, serializer: ShapeSerializer):
3984
- if self.total_pages is not None:
3985
- serializer.write_integer(_SCHEMA_LIST_CONTEXTS_OUTPUT.members["total_pages"], self.total_pages)
3986
-
3987
- if self.total_items is not None:
3988
- serializer.write_integer(_SCHEMA_LIST_CONTEXTS_OUTPUT.members["total_items"], self.total_items)
3989
-
3990
- if self.data is not None:
3991
- _serialize_list_context_out(serializer, _SCHEMA_LIST_CONTEXTS_OUTPUT.members["data"], self.data)
3894
+ serializer.write_integer(_SCHEMA_LIST_CONTEXTS_OUTPUT.members["total_pages"], self.total_pages)
3895
+ serializer.write_integer(_SCHEMA_LIST_CONTEXTS_OUTPUT.members["total_items"], self.total_items)
3896
+ _serialize_list_context_out(serializer, _SCHEMA_LIST_CONTEXTS_OUTPUT.members["data"], self.data)
3992
3897
 
3993
3898
  @classmethod
3994
3899
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -4031,33 +3936,17 @@ LIST_CONTEXTS = APIOperation(
4031
3936
 
4032
3937
  @dataclass(kw_only=True)
4033
3938
  class MoveContextInput:
4034
- """
4035
-
4036
- :param context:
4037
- **[Required]** - Represents conditional criteria used for context matching. Keys
4038
- define dimension names and values specify the criteria that must be met.
4039
-
4040
- """
4041
3939
 
4042
3940
  workspace_id: str | None = None
4043
3941
  org_id: str | None = None
4044
3942
  id: str | None = None
4045
- context: dict[str, Document] | None = None
4046
- description: str | None = None
4047
- change_reason: str | None = None
3943
+ request: ContextMove | None = None
4048
3944
 
4049
3945
  def serialize(self, serializer: ShapeSerializer):
4050
3946
  serializer.write_struct(_SCHEMA_MOVE_CONTEXT_INPUT, self)
4051
3947
 
4052
3948
  def serialize_members(self, serializer: ShapeSerializer):
4053
- if self.context is not None:
4054
- _serialize_condition(serializer, _SCHEMA_MOVE_CONTEXT_INPUT.members["context"], self.context)
4055
-
4056
- if self.description is not None:
4057
- serializer.write_string(_SCHEMA_MOVE_CONTEXT_INPUT.members["description"], self.description)
4058
-
4059
- if self.change_reason is not None:
4060
- serializer.write_string(_SCHEMA_MOVE_CONTEXT_INPUT.members["change_reason"], self.change_reason)
3949
+ pass
4061
3950
 
4062
3951
  @classmethod
4063
3952
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -4079,13 +3968,7 @@ class MoveContextInput:
4079
3968
  kwargs["id"] = de.read_string(_SCHEMA_MOVE_CONTEXT_INPUT.members["id"])
4080
3969
 
4081
3970
  case 3:
4082
- kwargs["context"] = _deserialize_condition(de, _SCHEMA_MOVE_CONTEXT_INPUT.members["context"])
4083
-
4084
- case 4:
4085
- kwargs["description"] = de.read_string(_SCHEMA_MOVE_CONTEXT_INPUT.members["description"])
4086
-
4087
- case 5:
4088
- kwargs["change_reason"] = de.read_string(_SCHEMA_MOVE_CONTEXT_INPUT.members["change_reason"])
3971
+ kwargs["request"] = ContextMove.deserialize(de)
4089
3972
 
4090
3973
  case _:
4091
3974
  logger.debug("Unexpected member schema: %s", schema)
@@ -4098,66 +3981,57 @@ class MoveContextOutput:
4098
3981
  """
4099
3982
 
4100
3983
  :param value:
4101
- Represents conditional criteria used for context matching. Keys define dimension
4102
- names and values specify the criteria that must be met.
3984
+ **[Required]** - Represents conditional criteria used for context matching. Keys
3985
+ define dimension names and values specify the criteria that must be met.
4103
3986
 
4104
3987
  :param override:
4105
- Configuration overrides that replace default values when context conditions are
4106
- met. Keys represent configuration keys and values are the override data.
3988
+ **[Required]** - Configuration overrides that replace default values when
3989
+ context conditions are met. Keys represent configuration keys and values are the
3990
+ override data.
4107
3991
 
4108
3992
  :param weight:
4109
- Priority weight used to determine the order of context evaluation. Higher
4110
- weights take precedence during configuration resolution.
3993
+ **[Required]** - Priority weight used to determine the order of context
3994
+ evaluation. Higher weights take precedence during configuration resolution.
4111
3995
 
4112
3996
  """
4113
3997
 
4114
3998
  id: str
4115
3999
 
4116
- value: dict[str, Document] | None = None
4117
- override: dict[str, Document] | None = None
4118
- override_id: str | None = None
4119
- weight: str | None = None
4120
- description: str | None = None
4121
- change_reason: str | None = None
4122
- created_at: datetime | None = None
4123
- created_by: str | None = None
4124
- last_modified_at: datetime | None = None
4125
- last_modified_by: str | None = None
4000
+ value: dict[str, Document]
4126
4001
 
4127
- def serialize(self, serializer: ShapeSerializer):
4128
- serializer.write_struct(_SCHEMA_MOVE_CONTEXT_OUTPUT, self)
4002
+ override: dict[str, Document]
4129
4003
 
4130
- def serialize_members(self, serializer: ShapeSerializer):
4131
- serializer.write_string(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["id"], self.id)
4132
- if self.value is not None:
4133
- _serialize_condition(serializer, _SCHEMA_MOVE_CONTEXT_OUTPUT.members["value"], self.value)
4004
+ override_id: str
4134
4005
 
4135
- if self.override is not None:
4136
- _serialize_overrides(serializer, _SCHEMA_MOVE_CONTEXT_OUTPUT.members["override"], self.override)
4006
+ weight: str
4137
4007
 
4138
- if self.override_id is not None:
4139
- serializer.write_string(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["override_id"], self.override_id)
4008
+ description: str
4140
4009
 
4141
- if self.weight is not None:
4142
- serializer.write_string(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["weight"], self.weight)
4010
+ change_reason: str
4143
4011
 
4144
- if self.description is not None:
4145
- serializer.write_string(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["description"], self.description)
4012
+ created_at: datetime
4146
4013
 
4147
- if self.change_reason is not None:
4148
- serializer.write_string(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["change_reason"], self.change_reason)
4014
+ created_by: str
4149
4015
 
4150
- if self.created_at is not None:
4151
- serializer.write_timestamp(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["created_at"], self.created_at)
4016
+ last_modified_at: datetime
4152
4017
 
4153
- if self.created_by is not None:
4154
- serializer.write_string(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["created_by"], self.created_by)
4018
+ last_modified_by: str
4155
4019
 
4156
- if self.last_modified_at is not None:
4157
- serializer.write_timestamp(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["last_modified_at"], self.last_modified_at)
4020
+ def serialize(self, serializer: ShapeSerializer):
4021
+ serializer.write_struct(_SCHEMA_MOVE_CONTEXT_OUTPUT, self)
4158
4022
 
4159
- if self.last_modified_by is not None:
4160
- serializer.write_string(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["last_modified_by"], self.last_modified_by)
4023
+ def serialize_members(self, serializer: ShapeSerializer):
4024
+ serializer.write_string(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["id"], self.id)
4025
+ _serialize_condition(serializer, _SCHEMA_MOVE_CONTEXT_OUTPUT.members["value"], self.value)
4026
+ _serialize_overrides(serializer, _SCHEMA_MOVE_CONTEXT_OUTPUT.members["override"], self.override)
4027
+ serializer.write_string(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["override_id"], self.override_id)
4028
+ serializer.write_string(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["weight"], self.weight)
4029
+ serializer.write_string(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["description"], self.description)
4030
+ serializer.write_string(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["change_reason"], self.change_reason)
4031
+ serializer.write_timestamp(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["created_at"], self.created_at)
4032
+ serializer.write_string(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["created_by"], self.created_by)
4033
+ serializer.write_timestamp(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["last_modified_at"], self.last_modified_at)
4034
+ serializer.write_string(_SCHEMA_MOVE_CONTEXT_OUTPUT.members["last_modified_by"], self.last_modified_by)
4161
4035
 
4162
4036
  @classmethod
4163
4037
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -4270,66 +4144,57 @@ class UpdateOverrideOutput:
4270
4144
  """
4271
4145
 
4272
4146
  :param value:
4273
- Represents conditional criteria used for context matching. Keys define dimension
4274
- names and values specify the criteria that must be met.
4147
+ **[Required]** - Represents conditional criteria used for context matching. Keys
4148
+ define dimension names and values specify the criteria that must be met.
4275
4149
 
4276
4150
  :param override:
4277
- Configuration overrides that replace default values when context conditions are
4278
- met. Keys represent configuration keys and values are the override data.
4151
+ **[Required]** - Configuration overrides that replace default values when
4152
+ context conditions are met. Keys represent configuration keys and values are the
4153
+ override data.
4279
4154
 
4280
4155
  :param weight:
4281
- Priority weight used to determine the order of context evaluation. Higher
4282
- weights take precedence during configuration resolution.
4156
+ **[Required]** - Priority weight used to determine the order of context
4157
+ evaluation. Higher weights take precedence during configuration resolution.
4283
4158
 
4284
4159
  """
4285
4160
 
4286
4161
  id: str
4287
4162
 
4288
- value: dict[str, Document] | None = None
4289
- override: dict[str, Document] | None = None
4290
- override_id: str | None = None
4291
- weight: str | None = None
4292
- description: str | None = None
4293
- change_reason: str | None = None
4294
- created_at: datetime | None = None
4295
- created_by: str | None = None
4296
- last_modified_at: datetime | None = None
4297
- last_modified_by: str | None = None
4163
+ value: dict[str, Document]
4298
4164
 
4299
- def serialize(self, serializer: ShapeSerializer):
4300
- serializer.write_struct(_SCHEMA_UPDATE_OVERRIDE_OUTPUT, self)
4165
+ override: dict[str, Document]
4301
4166
 
4302
- def serialize_members(self, serializer: ShapeSerializer):
4303
- serializer.write_string(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["id"], self.id)
4304
- if self.value is not None:
4305
- _serialize_condition(serializer, _SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["value"], self.value)
4167
+ override_id: str
4306
4168
 
4307
- if self.override is not None:
4308
- _serialize_overrides(serializer, _SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["override"], self.override)
4169
+ weight: str
4309
4170
 
4310
- if self.override_id is not None:
4311
- serializer.write_string(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["override_id"], self.override_id)
4171
+ description: str
4312
4172
 
4313
- if self.weight is not None:
4314
- serializer.write_string(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["weight"], self.weight)
4173
+ change_reason: str
4315
4174
 
4316
- if self.description is not None:
4317
- serializer.write_string(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["description"], self.description)
4175
+ created_at: datetime
4318
4176
 
4319
- if self.change_reason is not None:
4320
- serializer.write_string(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["change_reason"], self.change_reason)
4177
+ created_by: str
4321
4178
 
4322
- if self.created_at is not None:
4323
- serializer.write_timestamp(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["created_at"], self.created_at)
4179
+ last_modified_at: datetime
4324
4180
 
4325
- if self.created_by is not None:
4326
- serializer.write_string(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["created_by"], self.created_by)
4181
+ last_modified_by: str
4327
4182
 
4328
- if self.last_modified_at is not None:
4329
- serializer.write_timestamp(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["last_modified_at"], self.last_modified_at)
4183
+ def serialize(self, serializer: ShapeSerializer):
4184
+ serializer.write_struct(_SCHEMA_UPDATE_OVERRIDE_OUTPUT, self)
4330
4185
 
4331
- if self.last_modified_by is not None:
4332
- serializer.write_string(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["last_modified_by"], self.last_modified_by)
4186
+ def serialize_members(self, serializer: ShapeSerializer):
4187
+ serializer.write_string(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["id"], self.id)
4188
+ _serialize_condition(serializer, _SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["value"], self.value)
4189
+ _serialize_overrides(serializer, _SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["override"], self.override)
4190
+ serializer.write_string(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["override_id"], self.override_id)
4191
+ serializer.write_string(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["weight"], self.weight)
4192
+ serializer.write_string(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["description"], self.description)
4193
+ serializer.write_string(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["change_reason"], self.change_reason)
4194
+ serializer.write_timestamp(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["created_at"], self.created_at)
4195
+ serializer.write_string(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["created_by"], self.created_by)
4196
+ serializer.write_timestamp(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["last_modified_at"], self.last_modified_at)
4197
+ serializer.write_string(_SCHEMA_UPDATE_OVERRIDE_OUTPUT.members["last_modified_by"], self.last_modified_by)
4333
4198
 
4334
4199
  @classmethod
4335
4200
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -4524,39 +4389,35 @@ class WeightRecomputeResponse:
4524
4389
  """
4525
4390
 
4526
4391
  :param condition:
4527
- Represents conditional criteria used for context matching. Keys define dimension
4528
- names and values specify the criteria that must be met.
4392
+ **[Required]** - Represents conditional criteria used for context matching. Keys
4393
+ define dimension names and values specify the criteria that must be met.
4529
4394
 
4530
4395
  :param old_weight:
4531
- Priority weight used to determine the order of context evaluation. Higher
4532
- weights take precedence during configuration resolution.
4396
+ **[Required]** - Priority weight used to determine the order of context
4397
+ evaluation. Higher weights take precedence during configuration resolution.
4533
4398
 
4534
4399
  :param new_weight:
4535
- Priority weight used to determine the order of context evaluation. Higher
4536
- weights take precedence during configuration resolution.
4400
+ **[Required]** - Priority weight used to determine the order of context
4401
+ evaluation. Higher weights take precedence during configuration resolution.
4537
4402
 
4538
4403
  """
4539
4404
 
4540
- id: str | None = None
4541
- condition: dict[str, Document] | None = None
4542
- old_weight: str | None = None
4543
- new_weight: str | None = None
4405
+ id: str
4544
4406
 
4545
- def serialize(self, serializer: ShapeSerializer):
4546
- serializer.write_struct(_SCHEMA_WEIGHT_RECOMPUTE_RESPONSE, self)
4407
+ condition: dict[str, Document]
4547
4408
 
4548
- def serialize_members(self, serializer: ShapeSerializer):
4549
- if self.id is not None:
4550
- serializer.write_string(_SCHEMA_WEIGHT_RECOMPUTE_RESPONSE.members["id"], self.id)
4409
+ old_weight: str
4551
4410
 
4552
- if self.condition is not None:
4553
- _serialize_condition(serializer, _SCHEMA_WEIGHT_RECOMPUTE_RESPONSE.members["condition"], self.condition)
4411
+ new_weight: str
4554
4412
 
4555
- if self.old_weight is not None:
4556
- serializer.write_string(_SCHEMA_WEIGHT_RECOMPUTE_RESPONSE.members["old_weight"], self.old_weight)
4413
+ def serialize(self, serializer: ShapeSerializer):
4414
+ serializer.write_struct(_SCHEMA_WEIGHT_RECOMPUTE_RESPONSE, self)
4557
4415
 
4558
- if self.new_weight is not None:
4559
- serializer.write_string(_SCHEMA_WEIGHT_RECOMPUTE_RESPONSE.members["new_weight"], self.new_weight)
4416
+ def serialize_members(self, serializer: ShapeSerializer):
4417
+ serializer.write_string(_SCHEMA_WEIGHT_RECOMPUTE_RESPONSE.members["id"], self.id)
4418
+ _serialize_condition(serializer, _SCHEMA_WEIGHT_RECOMPUTE_RESPONSE.members["condition"], self.condition)
4419
+ serializer.write_string(_SCHEMA_WEIGHT_RECOMPUTE_RESPONSE.members["old_weight"], self.old_weight)
4420
+ serializer.write_string(_SCHEMA_WEIGHT_RECOMPUTE_RESPONSE.members["new_weight"], self.new_weight)
4560
4421
 
4561
4422
  @classmethod
4562
4423
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -4656,9 +4517,6 @@ class CreateDefaultConfigInput:
4656
4517
  **[Required]** - Generic key-value object structure used for flexible data
4657
4518
  representation throughout the API.
4658
4519
 
4659
- :param function_name:
4660
- Optional
4661
-
4662
4520
  """
4663
4521
 
4664
4522
  key: str | None = None
@@ -4747,9 +4605,6 @@ class CreateDefaultConfigOutput:
4747
4605
  **[Required]** - Generic key-value object structure used for flexible data
4748
4606
  representation throughout the API.
4749
4607
 
4750
- :param function_name:
4751
- Optional
4752
-
4753
4608
  """
4754
4609
 
4755
4610
  key: str
@@ -4983,9 +4838,10 @@ class CreateDimensionOutput:
4983
4838
 
4984
4839
  dimension_type: DimensionType
4985
4840
 
4841
+ mandatory: bool
4842
+
4986
4843
  function_name: str | None = None
4987
4844
  autocomplete_function_name: str | None = None
4988
- mandatory: bool | None = None
4989
4845
 
4990
4846
  def serialize(self, serializer: ShapeSerializer):
4991
4847
  serializer.write_struct(_SCHEMA_CREATE_DIMENSION_OUTPUT, self)
@@ -5003,13 +4859,12 @@ class CreateDimensionOutput:
5003
4859
  serializer.write_string(_SCHEMA_CREATE_DIMENSION_OUTPUT.members["last_modified_by"], self.last_modified_by)
5004
4860
  serializer.write_timestamp(_SCHEMA_CREATE_DIMENSION_OUTPUT.members["created_at"], self.created_at)
5005
4861
  serializer.write_string(_SCHEMA_CREATE_DIMENSION_OUTPUT.members["created_by"], self.created_by)
5006
- _serialize_depedendency_graph(serializer, _SCHEMA_CREATE_DIMENSION_OUTPUT.members["dependency_graph"], self.dependency_graph)
4862
+ _serialize_dependency_graph(serializer, _SCHEMA_CREATE_DIMENSION_OUTPUT.members["dependency_graph"], self.dependency_graph)
5007
4863
  serializer.write_struct(_SCHEMA_CREATE_DIMENSION_OUTPUT.members["dimension_type"], self.dimension_type)
5008
4864
  if self.autocomplete_function_name is not None:
5009
4865
  serializer.write_string(_SCHEMA_CREATE_DIMENSION_OUTPUT.members["autocomplete_function_name"], self.autocomplete_function_name)
5010
4866
 
5011
- if self.mandatory is not None:
5012
- serializer.write_boolean(_SCHEMA_CREATE_DIMENSION_OUTPUT.members["mandatory"], self.mandatory)
4867
+ serializer.write_boolean(_SCHEMA_CREATE_DIMENSION_OUTPUT.members["mandatory"], self.mandatory)
5013
4868
 
5014
4869
  @classmethod
5015
4870
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -5052,7 +4907,7 @@ class CreateDimensionOutput:
5052
4907
  kwargs["created_by"] = de.read_string(_SCHEMA_CREATE_DIMENSION_OUTPUT.members["created_by"])
5053
4908
 
5054
4909
  case 10:
5055
- kwargs["dependency_graph"] = _deserialize_depedendency_graph(de, _SCHEMA_CREATE_DIMENSION_OUTPUT.members["dependency_graph"])
4910
+ kwargs["dependency_graph"] = _deserialize_dependency_graph(de, _SCHEMA_CREATE_DIMENSION_OUTPUT.members["dependency_graph"])
5056
4911
 
5057
4912
  case 11:
5058
4913
  kwargs["dimension_type"] = _DimensionTypeDeserializer().deserialize(de)
@@ -6511,13 +6366,14 @@ class CreateWorkspaceOutput:
6511
6366
 
6512
6367
  strict_mode: bool
6513
6368
 
6369
+ metrics: Document
6370
+
6514
6371
  allow_experiment_self_approval: bool
6515
6372
 
6516
6373
  auto_populate_control: bool
6517
6374
 
6518
6375
  config_version: str | None = None
6519
6376
  mandatory_dimensions: list[str] | None = None
6520
- metrics: Document | None = None
6521
6377
 
6522
6378
  def serialize(self, serializer: ShapeSerializer):
6523
6379
  serializer.write_struct(_SCHEMA_CREATE_WORKSPACE_OUTPUT, self)
@@ -6540,9 +6396,7 @@ class CreateWorkspaceOutput:
6540
6396
  _serialize_list_mandatory_dimensions(serializer, _SCHEMA_CREATE_WORKSPACE_OUTPUT.members["mandatory_dimensions"], self.mandatory_dimensions)
6541
6397
 
6542
6398
  serializer.write_boolean(_SCHEMA_CREATE_WORKSPACE_OUTPUT.members["strict_mode"], self.strict_mode)
6543
- if self.metrics is not None:
6544
- serializer.write_document(_SCHEMA_CREATE_WORKSPACE_OUTPUT.members["metrics"], self.metrics)
6545
-
6399
+ serializer.write_document(_SCHEMA_CREATE_WORKSPACE_OUTPUT.members["metrics"], self.metrics)
6546
6400
  serializer.write_boolean(_SCHEMA_CREATE_WORKSPACE_OUTPUT.members["allow_experiment_self_approval"], self.allow_experiment_self_approval)
6547
6401
  serializer.write_boolean(_SCHEMA_CREATE_WORKSPACE_OUTPUT.members["auto_populate_control"], self.auto_populate_control)
6548
6402
 
@@ -6749,9 +6603,6 @@ class GetDefaultConfigOutput:
6749
6603
  **[Required]** - Generic key-value object structure used for flexible data
6750
6604
  representation throughout the API.
6751
6605
 
6752
- :param function_name:
6753
- Optional
6754
-
6755
6606
  """
6756
6607
 
6757
6608
  key: str
@@ -6923,16 +6774,13 @@ class ListDefaultConfigsInput:
6923
6774
  return kwargs
6924
6775
 
6925
6776
  @dataclass(kw_only=True)
6926
- class DefaultConfigFull:
6777
+ class DefaultConfigResponse:
6927
6778
  """
6928
6779
 
6929
6780
  :param schema:
6930
6781
  **[Required]** - Generic key-value object structure used for flexible data
6931
6782
  representation throughout the API.
6932
6783
 
6933
- :param function_name:
6934
- Optional
6935
-
6936
6784
  """
6937
6785
 
6938
6786
  key: str
@@ -6957,24 +6805,24 @@ class DefaultConfigFull:
6957
6805
  autocomplete_function_name: str | None = None
6958
6806
 
6959
6807
  def serialize(self, serializer: ShapeSerializer):
6960
- serializer.write_struct(_SCHEMA_DEFAULT_CONFIG_FULL, self)
6808
+ serializer.write_struct(_SCHEMA_DEFAULT_CONFIG_RESPONSE, self)
6961
6809
 
6962
6810
  def serialize_members(self, serializer: ShapeSerializer):
6963
- serializer.write_string(_SCHEMA_DEFAULT_CONFIG_FULL.members["key"], self.key)
6964
- serializer.write_document(_SCHEMA_DEFAULT_CONFIG_FULL.members["value"], self.value)
6965
- _serialize_object(serializer, _SCHEMA_DEFAULT_CONFIG_FULL.members["schema"], self.schema)
6966
- serializer.write_string(_SCHEMA_DEFAULT_CONFIG_FULL.members["description"], self.description)
6967
- serializer.write_string(_SCHEMA_DEFAULT_CONFIG_FULL.members["change_reason"], self.change_reason)
6811
+ serializer.write_string(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["key"], self.key)
6812
+ serializer.write_document(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["value"], self.value)
6813
+ _serialize_object(serializer, _SCHEMA_DEFAULT_CONFIG_RESPONSE.members["schema"], self.schema)
6814
+ serializer.write_string(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["description"], self.description)
6815
+ serializer.write_string(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["change_reason"], self.change_reason)
6968
6816
  if self.function_name is not None:
6969
- serializer.write_string(_SCHEMA_DEFAULT_CONFIG_FULL.members["function_name"], self.function_name)
6817
+ serializer.write_string(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["function_name"], self.function_name)
6970
6818
 
6971
6819
  if self.autocomplete_function_name is not None:
6972
- serializer.write_string(_SCHEMA_DEFAULT_CONFIG_FULL.members["autocomplete_function_name"], self.autocomplete_function_name)
6820
+ serializer.write_string(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["autocomplete_function_name"], self.autocomplete_function_name)
6973
6821
 
6974
- serializer.write_timestamp(_SCHEMA_DEFAULT_CONFIG_FULL.members["created_at"], self.created_at)
6975
- serializer.write_string(_SCHEMA_DEFAULT_CONFIG_FULL.members["created_by"], self.created_by)
6976
- serializer.write_timestamp(_SCHEMA_DEFAULT_CONFIG_FULL.members["last_modified_at"], self.last_modified_at)
6977
- serializer.write_string(_SCHEMA_DEFAULT_CONFIG_FULL.members["last_modified_by"], self.last_modified_by)
6822
+ serializer.write_timestamp(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["created_at"], self.created_at)
6823
+ serializer.write_string(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["created_by"], self.created_by)
6824
+ serializer.write_timestamp(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["last_modified_at"], self.last_modified_at)
6825
+ serializer.write_string(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["last_modified_by"], self.last_modified_by)
6978
6826
 
6979
6827
  @classmethod
6980
6828
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -6987,80 +6835,77 @@ class DefaultConfigFull:
6987
6835
  def _consumer(schema: Schema, de: ShapeDeserializer) -> None:
6988
6836
  match schema.expect_member_index():
6989
6837
  case 0:
6990
- kwargs["key"] = de.read_string(_SCHEMA_DEFAULT_CONFIG_FULL.members["key"])
6838
+ kwargs["key"] = de.read_string(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["key"])
6991
6839
 
6992
6840
  case 1:
6993
- kwargs["value"] = de.read_document(_SCHEMA_DEFAULT_CONFIG_FULL.members["value"])
6841
+ kwargs["value"] = de.read_document(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["value"])
6994
6842
 
6995
6843
  case 2:
6996
- kwargs["schema"] = _deserialize_object(de, _SCHEMA_DEFAULT_CONFIG_FULL.members["schema"])
6844
+ kwargs["schema"] = _deserialize_object(de, _SCHEMA_DEFAULT_CONFIG_RESPONSE.members["schema"])
6997
6845
 
6998
6846
  case 3:
6999
- kwargs["description"] = de.read_string(_SCHEMA_DEFAULT_CONFIG_FULL.members["description"])
6847
+ kwargs["description"] = de.read_string(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["description"])
7000
6848
 
7001
6849
  case 4:
7002
- kwargs["change_reason"] = de.read_string(_SCHEMA_DEFAULT_CONFIG_FULL.members["change_reason"])
6850
+ kwargs["change_reason"] = de.read_string(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["change_reason"])
7003
6851
 
7004
6852
  case 5:
7005
- kwargs["function_name"] = de.read_string(_SCHEMA_DEFAULT_CONFIG_FULL.members["function_name"])
6853
+ kwargs["function_name"] = de.read_string(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["function_name"])
7006
6854
 
7007
6855
  case 6:
7008
- kwargs["autocomplete_function_name"] = de.read_string(_SCHEMA_DEFAULT_CONFIG_FULL.members["autocomplete_function_name"])
6856
+ kwargs["autocomplete_function_name"] = de.read_string(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["autocomplete_function_name"])
7009
6857
 
7010
6858
  case 7:
7011
- kwargs["created_at"] = de.read_timestamp(_SCHEMA_DEFAULT_CONFIG_FULL.members["created_at"])
6859
+ kwargs["created_at"] = de.read_timestamp(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["created_at"])
7012
6860
 
7013
6861
  case 8:
7014
- kwargs["created_by"] = de.read_string(_SCHEMA_DEFAULT_CONFIG_FULL.members["created_by"])
6862
+ kwargs["created_by"] = de.read_string(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["created_by"])
7015
6863
 
7016
6864
  case 9:
7017
- kwargs["last_modified_at"] = de.read_timestamp(_SCHEMA_DEFAULT_CONFIG_FULL.members["last_modified_at"])
6865
+ kwargs["last_modified_at"] = de.read_timestamp(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["last_modified_at"])
7018
6866
 
7019
6867
  case 10:
7020
- kwargs["last_modified_by"] = de.read_string(_SCHEMA_DEFAULT_CONFIG_FULL.members["last_modified_by"])
6868
+ kwargs["last_modified_by"] = de.read_string(_SCHEMA_DEFAULT_CONFIG_RESPONSE.members["last_modified_by"])
7021
6869
 
7022
6870
  case _:
7023
6871
  logger.debug("Unexpected member schema: %s", schema)
7024
6872
 
7025
- deserializer.read_struct(_SCHEMA_DEFAULT_CONFIG_FULL, consumer=_consumer)
6873
+ deserializer.read_struct(_SCHEMA_DEFAULT_CONFIG_RESPONSE, consumer=_consumer)
7026
6874
  return kwargs
7027
6875
 
7028
- def _serialize_list_default_config_out(serializer: ShapeSerializer, schema: Schema, value: list[DefaultConfigFull]) -> None:
6876
+ def _serialize_list_default_config_out(serializer: ShapeSerializer, schema: Schema, value: list[DefaultConfigResponse]) -> None:
7029
6877
  member_schema = schema.members["member"]
7030
6878
  with serializer.begin_list(schema, len(value)) as ls:
7031
6879
  for e in value:
7032
6880
  ls.write_struct(member_schema, e)
7033
6881
 
7034
- def _deserialize_list_default_config_out(deserializer: ShapeDeserializer, schema: Schema) -> list[DefaultConfigFull]:
7035
- result: list[DefaultConfigFull] = []
6882
+ def _deserialize_list_default_config_out(deserializer: ShapeDeserializer, schema: Schema) -> list[DefaultConfigResponse]:
6883
+ result: list[DefaultConfigResponse] = []
7036
6884
  def _read_value(d: ShapeDeserializer):
7037
6885
  if d.is_null():
7038
6886
  d.read_null()
7039
6887
 
7040
6888
  else:
7041
- result.append(DefaultConfigFull.deserialize(d))
6889
+ result.append(DefaultConfigResponse.deserialize(d))
7042
6890
  deserializer.read_list(schema, _read_value)
7043
6891
  return result
7044
6892
 
7045
6893
  @dataclass(kw_only=True)
7046
6894
  class ListDefaultConfigsOutput:
7047
6895
 
7048
- total_pages: int | None = None
7049
- total_items: int | None = None
7050
- data: list[DefaultConfigFull] | None = None
6896
+ total_pages: int
6897
+
6898
+ total_items: int
6899
+
6900
+ data: list[DefaultConfigResponse]
7051
6901
 
7052
6902
  def serialize(self, serializer: ShapeSerializer):
7053
6903
  serializer.write_struct(_SCHEMA_LIST_DEFAULT_CONFIGS_OUTPUT, self)
7054
6904
 
7055
6905
  def serialize_members(self, serializer: ShapeSerializer):
7056
- if self.total_pages is not None:
7057
- serializer.write_integer(_SCHEMA_LIST_DEFAULT_CONFIGS_OUTPUT.members["total_pages"], self.total_pages)
7058
-
7059
- if self.total_items is not None:
7060
- serializer.write_integer(_SCHEMA_LIST_DEFAULT_CONFIGS_OUTPUT.members["total_items"], self.total_items)
7061
-
7062
- if self.data is not None:
7063
- _serialize_list_default_config_out(serializer, _SCHEMA_LIST_DEFAULT_CONFIGS_OUTPUT.members["data"], self.data)
6906
+ serializer.write_integer(_SCHEMA_LIST_DEFAULT_CONFIGS_OUTPUT.members["total_pages"], self.total_pages)
6907
+ serializer.write_integer(_SCHEMA_LIST_DEFAULT_CONFIGS_OUTPUT.members["total_items"], self.total_items)
6908
+ _serialize_list_default_config_out(serializer, _SCHEMA_LIST_DEFAULT_CONFIGS_OUTPUT.members["data"], self.data)
7064
6909
 
7065
6910
  @classmethod
7066
6911
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -7109,6 +6954,12 @@ class UpdateDefaultConfigInput:
7109
6954
  Generic key-value object structure used for flexible data representation
7110
6955
  throughout the API.
7111
6956
 
6957
+ :param function_name:
6958
+ To unset the function name, pass "null" string.
6959
+
6960
+ :param autocomplete_function_name:
6961
+ To unset the function name, pass "null" string.
6962
+
7112
6963
  """
7113
6964
 
7114
6965
  workspace_id: str | None = None
@@ -7194,9 +7045,6 @@ class UpdateDefaultConfigOutput:
7194
7045
  **[Required]** - Generic key-value object structure used for flexible data
7195
7046
  representation throughout the API.
7196
7047
 
7197
- :param function_name:
7198
- Optional
7199
-
7200
7048
  """
7201
7049
 
7202
7050
  key: str
@@ -7912,9 +7760,10 @@ class GetDimensionOutput:
7912
7760
 
7913
7761
  dimension_type: DimensionType
7914
7762
 
7763
+ mandatory: bool
7764
+
7915
7765
  function_name: str | None = None
7916
7766
  autocomplete_function_name: str | None = None
7917
- mandatory: bool | None = None
7918
7767
 
7919
7768
  def serialize(self, serializer: ShapeSerializer):
7920
7769
  serializer.write_struct(_SCHEMA_GET_DIMENSION_OUTPUT, self)
@@ -7932,13 +7781,12 @@ class GetDimensionOutput:
7932
7781
  serializer.write_string(_SCHEMA_GET_DIMENSION_OUTPUT.members["last_modified_by"], self.last_modified_by)
7933
7782
  serializer.write_timestamp(_SCHEMA_GET_DIMENSION_OUTPUT.members["created_at"], self.created_at)
7934
7783
  serializer.write_string(_SCHEMA_GET_DIMENSION_OUTPUT.members["created_by"], self.created_by)
7935
- _serialize_depedendency_graph(serializer, _SCHEMA_GET_DIMENSION_OUTPUT.members["dependency_graph"], self.dependency_graph)
7784
+ _serialize_dependency_graph(serializer, _SCHEMA_GET_DIMENSION_OUTPUT.members["dependency_graph"], self.dependency_graph)
7936
7785
  serializer.write_struct(_SCHEMA_GET_DIMENSION_OUTPUT.members["dimension_type"], self.dimension_type)
7937
7786
  if self.autocomplete_function_name is not None:
7938
7787
  serializer.write_string(_SCHEMA_GET_DIMENSION_OUTPUT.members["autocomplete_function_name"], self.autocomplete_function_name)
7939
7788
 
7940
- if self.mandatory is not None:
7941
- serializer.write_boolean(_SCHEMA_GET_DIMENSION_OUTPUT.members["mandatory"], self.mandatory)
7789
+ serializer.write_boolean(_SCHEMA_GET_DIMENSION_OUTPUT.members["mandatory"], self.mandatory)
7942
7790
 
7943
7791
  @classmethod
7944
7792
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -7981,7 +7829,7 @@ class GetDimensionOutput:
7981
7829
  kwargs["created_by"] = de.read_string(_SCHEMA_GET_DIMENSION_OUTPUT.members["created_by"])
7982
7830
 
7983
7831
  case 10:
7984
- kwargs["dependency_graph"] = _deserialize_depedendency_graph(de, _SCHEMA_GET_DIMENSION_OUTPUT.members["dependency_graph"])
7832
+ kwargs["dependency_graph"] = _deserialize_dependency_graph(de, _SCHEMA_GET_DIMENSION_OUTPUT.members["dependency_graph"])
7985
7833
 
7986
7834
  case 11:
7987
7835
  kwargs["dimension_type"] = _DimensionTypeDeserializer().deserialize(de)
@@ -8073,7 +7921,7 @@ class ListDimensionsInput:
8073
7921
  return kwargs
8074
7922
 
8075
7923
  @dataclass(kw_only=True)
8076
- class DimensionExt:
7924
+ class DimensionResponse:
8077
7925
  """
8078
7926
 
8079
7927
  :param schema:
@@ -8104,33 +7952,33 @@ class DimensionExt:
8104
7952
 
8105
7953
  dimension_type: DimensionType
8106
7954
 
7955
+ mandatory: bool
7956
+
8107
7957
  function_name: str | None = None
8108
7958
  autocomplete_function_name: str | None = None
8109
- mandatory: bool | None = None
8110
7959
 
8111
7960
  def serialize(self, serializer: ShapeSerializer):
8112
- serializer.write_struct(_SCHEMA_DIMENSION_EXT, self)
7961
+ serializer.write_struct(_SCHEMA_DIMENSION_RESPONSE, self)
8113
7962
 
8114
7963
  def serialize_members(self, serializer: ShapeSerializer):
8115
- serializer.write_string(_SCHEMA_DIMENSION_EXT.members["dimension"], self.dimension)
8116
- serializer.write_integer(_SCHEMA_DIMENSION_EXT.members["position"], self.position)
8117
- _serialize_object(serializer, _SCHEMA_DIMENSION_EXT.members["schema"], self.schema)
7964
+ serializer.write_string(_SCHEMA_DIMENSION_RESPONSE.members["dimension"], self.dimension)
7965
+ serializer.write_integer(_SCHEMA_DIMENSION_RESPONSE.members["position"], self.position)
7966
+ _serialize_object(serializer, _SCHEMA_DIMENSION_RESPONSE.members["schema"], self.schema)
8118
7967
  if self.function_name is not None:
8119
- serializer.write_string(_SCHEMA_DIMENSION_EXT.members["function_name"], self.function_name)
8120
-
8121
- serializer.write_string(_SCHEMA_DIMENSION_EXT.members["description"], self.description)
8122
- serializer.write_string(_SCHEMA_DIMENSION_EXT.members["change_reason"], self.change_reason)
8123
- serializer.write_timestamp(_SCHEMA_DIMENSION_EXT.members["last_modified_at"], self.last_modified_at)
8124
- serializer.write_string(_SCHEMA_DIMENSION_EXT.members["last_modified_by"], self.last_modified_by)
8125
- serializer.write_timestamp(_SCHEMA_DIMENSION_EXT.members["created_at"], self.created_at)
8126
- serializer.write_string(_SCHEMA_DIMENSION_EXT.members["created_by"], self.created_by)
8127
- _serialize_depedendency_graph(serializer, _SCHEMA_DIMENSION_EXT.members["dependency_graph"], self.dependency_graph)
8128
- serializer.write_struct(_SCHEMA_DIMENSION_EXT.members["dimension_type"], self.dimension_type)
7968
+ serializer.write_string(_SCHEMA_DIMENSION_RESPONSE.members["function_name"], self.function_name)
7969
+
7970
+ serializer.write_string(_SCHEMA_DIMENSION_RESPONSE.members["description"], self.description)
7971
+ serializer.write_string(_SCHEMA_DIMENSION_RESPONSE.members["change_reason"], self.change_reason)
7972
+ serializer.write_timestamp(_SCHEMA_DIMENSION_RESPONSE.members["last_modified_at"], self.last_modified_at)
7973
+ serializer.write_string(_SCHEMA_DIMENSION_RESPONSE.members["last_modified_by"], self.last_modified_by)
7974
+ serializer.write_timestamp(_SCHEMA_DIMENSION_RESPONSE.members["created_at"], self.created_at)
7975
+ serializer.write_string(_SCHEMA_DIMENSION_RESPONSE.members["created_by"], self.created_by)
7976
+ _serialize_dependency_graph(serializer, _SCHEMA_DIMENSION_RESPONSE.members["dependency_graph"], self.dependency_graph)
7977
+ serializer.write_struct(_SCHEMA_DIMENSION_RESPONSE.members["dimension_type"], self.dimension_type)
8129
7978
  if self.autocomplete_function_name is not None:
8130
- serializer.write_string(_SCHEMA_DIMENSION_EXT.members["autocomplete_function_name"], self.autocomplete_function_name)
7979
+ serializer.write_string(_SCHEMA_DIMENSION_RESPONSE.members["autocomplete_function_name"], self.autocomplete_function_name)
8131
7980
 
8132
- if self.mandatory is not None:
8133
- serializer.write_boolean(_SCHEMA_DIMENSION_EXT.members["mandatory"], self.mandatory)
7981
+ serializer.write_boolean(_SCHEMA_DIMENSION_RESPONSE.members["mandatory"], self.mandatory)
8134
7982
 
8135
7983
  @classmethod
8136
7984
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -8143,89 +7991,86 @@ class DimensionExt:
8143
7991
  def _consumer(schema: Schema, de: ShapeDeserializer) -> None:
8144
7992
  match schema.expect_member_index():
8145
7993
  case 0:
8146
- kwargs["dimension"] = de.read_string(_SCHEMA_DIMENSION_EXT.members["dimension"])
7994
+ kwargs["dimension"] = de.read_string(_SCHEMA_DIMENSION_RESPONSE.members["dimension"])
8147
7995
 
8148
7996
  case 1:
8149
- kwargs["position"] = de.read_integer(_SCHEMA_DIMENSION_EXT.members["position"])
7997
+ kwargs["position"] = de.read_integer(_SCHEMA_DIMENSION_RESPONSE.members["position"])
8150
7998
 
8151
7999
  case 2:
8152
- kwargs["schema"] = _deserialize_object(de, _SCHEMA_DIMENSION_EXT.members["schema"])
8000
+ kwargs["schema"] = _deserialize_object(de, _SCHEMA_DIMENSION_RESPONSE.members["schema"])
8153
8001
 
8154
8002
  case 3:
8155
- kwargs["function_name"] = de.read_string(_SCHEMA_DIMENSION_EXT.members["function_name"])
8003
+ kwargs["function_name"] = de.read_string(_SCHEMA_DIMENSION_RESPONSE.members["function_name"])
8156
8004
 
8157
8005
  case 4:
8158
- kwargs["description"] = de.read_string(_SCHEMA_DIMENSION_EXT.members["description"])
8006
+ kwargs["description"] = de.read_string(_SCHEMA_DIMENSION_RESPONSE.members["description"])
8159
8007
 
8160
8008
  case 5:
8161
- kwargs["change_reason"] = de.read_string(_SCHEMA_DIMENSION_EXT.members["change_reason"])
8009
+ kwargs["change_reason"] = de.read_string(_SCHEMA_DIMENSION_RESPONSE.members["change_reason"])
8162
8010
 
8163
8011
  case 6:
8164
- kwargs["last_modified_at"] = de.read_timestamp(_SCHEMA_DIMENSION_EXT.members["last_modified_at"])
8012
+ kwargs["last_modified_at"] = de.read_timestamp(_SCHEMA_DIMENSION_RESPONSE.members["last_modified_at"])
8165
8013
 
8166
8014
  case 7:
8167
- kwargs["last_modified_by"] = de.read_string(_SCHEMA_DIMENSION_EXT.members["last_modified_by"])
8015
+ kwargs["last_modified_by"] = de.read_string(_SCHEMA_DIMENSION_RESPONSE.members["last_modified_by"])
8168
8016
 
8169
8017
  case 8:
8170
- kwargs["created_at"] = de.read_timestamp(_SCHEMA_DIMENSION_EXT.members["created_at"])
8018
+ kwargs["created_at"] = de.read_timestamp(_SCHEMA_DIMENSION_RESPONSE.members["created_at"])
8171
8019
 
8172
8020
  case 9:
8173
- kwargs["created_by"] = de.read_string(_SCHEMA_DIMENSION_EXT.members["created_by"])
8021
+ kwargs["created_by"] = de.read_string(_SCHEMA_DIMENSION_RESPONSE.members["created_by"])
8174
8022
 
8175
8023
  case 10:
8176
- kwargs["dependency_graph"] = _deserialize_depedendency_graph(de, _SCHEMA_DIMENSION_EXT.members["dependency_graph"])
8024
+ kwargs["dependency_graph"] = _deserialize_dependency_graph(de, _SCHEMA_DIMENSION_RESPONSE.members["dependency_graph"])
8177
8025
 
8178
8026
  case 11:
8179
8027
  kwargs["dimension_type"] = _DimensionTypeDeserializer().deserialize(de)
8180
8028
 
8181
8029
  case 12:
8182
- kwargs["autocomplete_function_name"] = de.read_string(_SCHEMA_DIMENSION_EXT.members["autocomplete_function_name"])
8030
+ kwargs["autocomplete_function_name"] = de.read_string(_SCHEMA_DIMENSION_RESPONSE.members["autocomplete_function_name"])
8183
8031
 
8184
8032
  case 13:
8185
- kwargs["mandatory"] = de.read_boolean(_SCHEMA_DIMENSION_EXT.members["mandatory"])
8033
+ kwargs["mandatory"] = de.read_boolean(_SCHEMA_DIMENSION_RESPONSE.members["mandatory"])
8186
8034
 
8187
8035
  case _:
8188
8036
  logger.debug("Unexpected member schema: %s", schema)
8189
8037
 
8190
- deserializer.read_struct(_SCHEMA_DIMENSION_EXT, consumer=_consumer)
8038
+ deserializer.read_struct(_SCHEMA_DIMENSION_RESPONSE, consumer=_consumer)
8191
8039
  return kwargs
8192
8040
 
8193
- def _serialize_dimension_ext_list(serializer: ShapeSerializer, schema: Schema, value: list[DimensionExt]) -> None:
8041
+ def _serialize_dimension_list(serializer: ShapeSerializer, schema: Schema, value: list[DimensionResponse]) -> None:
8194
8042
  member_schema = schema.members["member"]
8195
8043
  with serializer.begin_list(schema, len(value)) as ls:
8196
8044
  for e in value:
8197
8045
  ls.write_struct(member_schema, e)
8198
8046
 
8199
- def _deserialize_dimension_ext_list(deserializer: ShapeDeserializer, schema: Schema) -> list[DimensionExt]:
8200
- result: list[DimensionExt] = []
8047
+ def _deserialize_dimension_list(deserializer: ShapeDeserializer, schema: Schema) -> list[DimensionResponse]:
8048
+ result: list[DimensionResponse] = []
8201
8049
  def _read_value(d: ShapeDeserializer):
8202
8050
  if d.is_null():
8203
8051
  d.read_null()
8204
8052
 
8205
8053
  else:
8206
- result.append(DimensionExt.deserialize(d))
8054
+ result.append(DimensionResponse.deserialize(d))
8207
8055
  deserializer.read_list(schema, _read_value)
8208
8056
  return result
8209
8057
 
8210
8058
  @dataclass(kw_only=True)
8211
8059
  class ListDimensionsOutput:
8212
8060
 
8213
- total_pages: int | None = None
8214
- total_items: int | None = None
8215
- data: list[DimensionExt] | None = None
8061
+ total_pages: int
8062
+
8063
+ total_items: int
8064
+
8065
+ data: list[DimensionResponse]
8216
8066
 
8217
8067
  def serialize(self, serializer: ShapeSerializer):
8218
8068
  serializer.write_struct(_SCHEMA_LIST_DIMENSIONS_OUTPUT, self)
8219
8069
 
8220
8070
  def serialize_members(self, serializer: ShapeSerializer):
8221
- if self.total_pages is not None:
8222
- serializer.write_integer(_SCHEMA_LIST_DIMENSIONS_OUTPUT.members["total_pages"], self.total_pages)
8223
-
8224
- if self.total_items is not None:
8225
- serializer.write_integer(_SCHEMA_LIST_DIMENSIONS_OUTPUT.members["total_items"], self.total_items)
8226
-
8227
- if self.data is not None:
8228
- _serialize_dimension_ext_list(serializer, _SCHEMA_LIST_DIMENSIONS_OUTPUT.members["data"], self.data)
8071
+ serializer.write_integer(_SCHEMA_LIST_DIMENSIONS_OUTPUT.members["total_pages"], self.total_pages)
8072
+ serializer.write_integer(_SCHEMA_LIST_DIMENSIONS_OUTPUT.members["total_items"], self.total_items)
8073
+ _serialize_dimension_list(serializer, _SCHEMA_LIST_DIMENSIONS_OUTPUT.members["data"], self.data)
8229
8074
 
8230
8075
  @classmethod
8231
8076
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -8244,7 +8089,7 @@ class ListDimensionsOutput:
8244
8089
  kwargs["total_items"] = de.read_integer(_SCHEMA_LIST_DIMENSIONS_OUTPUT.members["total_items"])
8245
8090
 
8246
8091
  case 2:
8247
- kwargs["data"] = _deserialize_dimension_ext_list(de, _SCHEMA_LIST_DIMENSIONS_OUTPUT.members["data"])
8092
+ kwargs["data"] = _deserialize_dimension_list(de, _SCHEMA_LIST_DIMENSIONS_OUTPUT.members["data"])
8248
8093
 
8249
8094
  case _:
8250
8095
  logger.debug("Unexpected member schema: %s", schema)
@@ -8274,6 +8119,12 @@ class UpdateDimensionInput:
8274
8119
  Generic key-value object structure used for flexible data representation
8275
8120
  throughout the API.
8276
8121
 
8122
+ :param function_name:
8123
+ To unset the function name, pass "null" string.
8124
+
8125
+ :param autocomplete_function_name:
8126
+ To unset the function name, pass "null" string.
8127
+
8277
8128
  """
8278
8129
 
8279
8130
  workspace_id: str | None = None
@@ -8383,9 +8234,10 @@ class UpdateDimensionOutput:
8383
8234
 
8384
8235
  dimension_type: DimensionType
8385
8236
 
8237
+ mandatory: bool
8238
+
8386
8239
  function_name: str | None = None
8387
8240
  autocomplete_function_name: str | None = None
8388
- mandatory: bool | None = None
8389
8241
 
8390
8242
  def serialize(self, serializer: ShapeSerializer):
8391
8243
  serializer.write_struct(_SCHEMA_UPDATE_DIMENSION_OUTPUT, self)
@@ -8403,13 +8255,12 @@ class UpdateDimensionOutput:
8403
8255
  serializer.write_string(_SCHEMA_UPDATE_DIMENSION_OUTPUT.members["last_modified_by"], self.last_modified_by)
8404
8256
  serializer.write_timestamp(_SCHEMA_UPDATE_DIMENSION_OUTPUT.members["created_at"], self.created_at)
8405
8257
  serializer.write_string(_SCHEMA_UPDATE_DIMENSION_OUTPUT.members["created_by"], self.created_by)
8406
- _serialize_depedendency_graph(serializer, _SCHEMA_UPDATE_DIMENSION_OUTPUT.members["dependency_graph"], self.dependency_graph)
8258
+ _serialize_dependency_graph(serializer, _SCHEMA_UPDATE_DIMENSION_OUTPUT.members["dependency_graph"], self.dependency_graph)
8407
8259
  serializer.write_struct(_SCHEMA_UPDATE_DIMENSION_OUTPUT.members["dimension_type"], self.dimension_type)
8408
8260
  if self.autocomplete_function_name is not None:
8409
8261
  serializer.write_string(_SCHEMA_UPDATE_DIMENSION_OUTPUT.members["autocomplete_function_name"], self.autocomplete_function_name)
8410
8262
 
8411
- if self.mandatory is not None:
8412
- serializer.write_boolean(_SCHEMA_UPDATE_DIMENSION_OUTPUT.members["mandatory"], self.mandatory)
8263
+ serializer.write_boolean(_SCHEMA_UPDATE_DIMENSION_OUTPUT.members["mandatory"], self.mandatory)
8413
8264
 
8414
8265
  @classmethod
8415
8266
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -8452,7 +8303,7 @@ class UpdateDimensionOutput:
8452
8303
  kwargs["created_by"] = de.read_string(_SCHEMA_UPDATE_DIMENSION_OUTPUT.members["created_by"])
8453
8304
 
8454
8305
  case 10:
8455
- kwargs["dependency_graph"] = _deserialize_depedendency_graph(de, _SCHEMA_UPDATE_DIMENSION_OUTPUT.members["dependency_graph"])
8306
+ kwargs["dependency_graph"] = _deserialize_dependency_graph(de, _SCHEMA_UPDATE_DIMENSION_OUTPUT.members["dependency_graph"])
8456
8307
 
8457
8308
  case 11:
8458
8309
  kwargs["dimension_type"] = _DimensionTypeDeserializer().deserialize(de)
@@ -8868,6 +8719,24 @@ ShapeID("io.superposition#InternalServerError"): InternalServerError,
8868
8719
  ]
8869
8720
  )
8870
8721
 
8722
+ def _serialize_group_type_list(serializer: ShapeSerializer, schema: Schema, value: list[str]) -> None:
8723
+ member_schema = schema.members["member"]
8724
+ with serializer.begin_list(schema, len(value)) as ls:
8725
+ for e in value:
8726
+ ls.write_string(member_schema, e)
8727
+
8728
+ def _deserialize_group_type_list(deserializer: ShapeDeserializer, schema: Schema) -> list[str]:
8729
+ result: list[str] = []
8730
+ member_schema = schema.members["member"]
8731
+ def _read_value(d: ShapeDeserializer):
8732
+ if d.is_null():
8733
+ d.read_null()
8734
+
8735
+ else:
8736
+ result.append(d.read_string(member_schema))
8737
+ deserializer.read_list(schema, _read_value)
8738
+ return result
8739
+
8871
8740
  class ExperimentGroupSortOn(StrEnum):
8872
8741
  NAME = "name"
8873
8742
  """
@@ -8930,7 +8799,7 @@ class ListExperimentGroupsInput:
8930
8799
  last_modified_by: str | None = None
8931
8800
  sort_on: str | None = None
8932
8801
  sort_by: str | None = None
8933
- group_type: str | None = None
8802
+ group_type: list[str] | None = None
8934
8803
 
8935
8804
  def serialize(self, serializer: ShapeSerializer):
8936
8805
  serializer.write_struct(_SCHEMA_LIST_EXPERIMENT_GROUPS_INPUT, self)
@@ -8979,7 +8848,7 @@ class ListExperimentGroupsInput:
8979
8848
  kwargs["sort_by"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_GROUPS_INPUT.members["sort_by"])
8980
8849
 
8981
8850
  case 10:
8982
- kwargs["group_type"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_GROUPS_INPUT.members["group_type"])
8851
+ kwargs["group_type"] = _deserialize_group_type_list(de, _SCHEMA_LIST_EXPERIMENT_GROUPS_INPUT.members["group_type"])
8983
8852
 
8984
8853
  case _:
8985
8854
  logger.debug("Unexpected member schema: %s", schema)
@@ -9125,26 +8994,23 @@ class ListExperimentGroupsOutput:
9125
8994
  """
9126
8995
 
9127
8996
  :param data:
9128
- A list of experiment group responses.
8997
+ **[Required]** - A list of experiment group responses.
9129
8998
 
9130
8999
  """
9131
9000
 
9132
- total_pages: int | None = None
9133
- total_items: int | None = None
9134
- data: list[ExperimentGroupResponse] | None = None
9001
+ total_pages: int
9002
+
9003
+ total_items: int
9004
+
9005
+ data: list[ExperimentGroupResponse]
9135
9006
 
9136
9007
  def serialize(self, serializer: ShapeSerializer):
9137
9008
  serializer.write_struct(_SCHEMA_LIST_EXPERIMENT_GROUPS_OUTPUT, self)
9138
9009
 
9139
9010
  def serialize_members(self, serializer: ShapeSerializer):
9140
- if self.total_pages is not None:
9141
- serializer.write_integer(_SCHEMA_LIST_EXPERIMENT_GROUPS_OUTPUT.members["total_pages"], self.total_pages)
9142
-
9143
- if self.total_items is not None:
9144
- serializer.write_integer(_SCHEMA_LIST_EXPERIMENT_GROUPS_OUTPUT.members["total_items"], self.total_items)
9145
-
9146
- if self.data is not None:
9147
- _serialize_experiment_group_list(serializer, _SCHEMA_LIST_EXPERIMENT_GROUPS_OUTPUT.members["data"], self.data)
9011
+ serializer.write_integer(_SCHEMA_LIST_EXPERIMENT_GROUPS_OUTPUT.members["total_pages"], self.total_pages)
9012
+ serializer.write_integer(_SCHEMA_LIST_EXPERIMENT_GROUPS_OUTPUT.members["total_items"], self.total_items)
9013
+ _serialize_experiment_group_list(serializer, _SCHEMA_LIST_EXPERIMENT_GROUPS_OUTPUT.members["data"], self.data)
9148
9014
 
9149
9015
  @classmethod
9150
9016
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -9194,7 +9060,7 @@ class RemoveMembersFromGroupInput:
9194
9060
  **[Required]** - Reason for adding these members.
9195
9061
 
9196
9062
  :param member_experiment_ids:
9197
- **[Required]** - List of experiment IDs to add to this group.
9063
+ **[Required]** - List of experiment IDs to add/remove to this group.
9198
9064
 
9199
9065
  """
9200
9066
 
@@ -9965,6 +9831,24 @@ class ExperimentSortOn(StrEnum):
9965
9831
  LAST_MODIFIED_AT = "last_modified_at"
9966
9832
  CREATED_AT = "created_at"
9967
9833
 
9834
+ def _serialize_experiment_status_type_list(serializer: ShapeSerializer, schema: Schema, value: list[str]) -> None:
9835
+ member_schema = schema.members["member"]
9836
+ with serializer.begin_list(schema, len(value)) as ls:
9837
+ for e in value:
9838
+ ls.write_string(member_schema, e)
9839
+
9840
+ def _deserialize_experiment_status_type_list(deserializer: ShapeDeserializer, schema: Schema) -> list[str]:
9841
+ result: list[str] = []
9842
+ member_schema = schema.members["member"]
9843
+ def _read_value(d: ShapeDeserializer):
9844
+ if d.is_null():
9845
+ d.read_null()
9846
+
9847
+ else:
9848
+ result.append(d.read_string(member_schema))
9849
+ deserializer.read_list(schema, _read_value)
9850
+ return result
9851
+
9968
9852
  @dataclass(kw_only=True)
9969
9853
  class ListExperimentInput:
9970
9854
  """
@@ -9992,13 +9876,13 @@ class ListExperimentInput:
9992
9876
  all: bool | None = None
9993
9877
  workspace_id: str | None = None
9994
9878
  org_id: str | None = None
9995
- status: str | None = None
9879
+ status: list[str] | None = None
9996
9880
  from_date: datetime | None = None
9997
9881
  to_date: datetime | None = None
9998
9882
  experiment_name: str | None = None
9999
- experiment_ids: str | None = None
10000
- experiment_group_ids: str | None = None
10001
- created_by: str | None = None
9883
+ experiment_ids: list[str] | None = None
9884
+ experiment_group_ids: list[str] | None = None
9885
+ created_by: list[str] | None = None
10002
9886
  sort_on: str | None = None
10003
9887
  sort_by: str | None = None
10004
9888
  global_experiments_only: bool | None = None
@@ -10036,7 +9920,7 @@ class ListExperimentInput:
10036
9920
  kwargs["org_id"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_INPUT.members["org_id"])
10037
9921
 
10038
9922
  case 5:
10039
- kwargs["status"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_INPUT.members["status"])
9923
+ kwargs["status"] = _deserialize_experiment_status_type_list(de, _SCHEMA_LIST_EXPERIMENT_INPUT.members["status"])
10040
9924
 
10041
9925
  case 6:
10042
9926
  kwargs["from_date"] = de.read_timestamp(_SCHEMA_LIST_EXPERIMENT_INPUT.members["from_date"])
@@ -10048,13 +9932,13 @@ class ListExperimentInput:
10048
9932
  kwargs["experiment_name"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_INPUT.members["experiment_name"])
10049
9933
 
10050
9934
  case 9:
10051
- kwargs["experiment_ids"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_INPUT.members["experiment_ids"])
9935
+ kwargs["experiment_ids"] = _deserialize_string_list(de, _SCHEMA_LIST_EXPERIMENT_INPUT.members["experiment_ids"])
10052
9936
 
10053
9937
  case 10:
10054
- kwargs["experiment_group_ids"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_INPUT.members["experiment_group_ids"])
9938
+ kwargs["experiment_group_ids"] = _deserialize_string_list(de, _SCHEMA_LIST_EXPERIMENT_INPUT.members["experiment_group_ids"])
10055
9939
 
10056
9940
  case 11:
10057
- kwargs["created_by"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_INPUT.members["created_by"])
9941
+ kwargs["created_by"] = _deserialize_string_list(de, _SCHEMA_LIST_EXPERIMENT_INPUT.members["created_by"])
10058
9942
 
10059
9943
  case 12:
10060
9944
  kwargs["sort_on"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_INPUT.members["sort_on"])
@@ -10077,22 +9961,19 @@ class ListExperimentInput:
10077
9961
  @dataclass(kw_only=True)
10078
9962
  class ListExperimentOutput:
10079
9963
 
10080
- total_pages: int | None = None
10081
- total_items: int | None = None
10082
- data: list[ExperimentResponse] | None = None
9964
+ total_pages: int
9965
+
9966
+ total_items: int
9967
+
9968
+ data: list[ExperimentResponse]
10083
9969
 
10084
9970
  def serialize(self, serializer: ShapeSerializer):
10085
9971
  serializer.write_struct(_SCHEMA_LIST_EXPERIMENT_OUTPUT, self)
10086
9972
 
10087
9973
  def serialize_members(self, serializer: ShapeSerializer):
10088
- if self.total_pages is not None:
10089
- serializer.write_integer(_SCHEMA_LIST_EXPERIMENT_OUTPUT.members["total_pages"], self.total_pages)
10090
-
10091
- if self.total_items is not None:
10092
- serializer.write_integer(_SCHEMA_LIST_EXPERIMENT_OUTPUT.members["total_items"], self.total_items)
10093
-
10094
- if self.data is not None:
10095
- _serialize_experiment_list(serializer, _SCHEMA_LIST_EXPERIMENT_OUTPUT.members["data"], self.data)
9974
+ serializer.write_integer(_SCHEMA_LIST_EXPERIMENT_OUTPUT.members["total_pages"], self.total_pages)
9975
+ serializer.write_integer(_SCHEMA_LIST_EXPERIMENT_OUTPUT.members["total_items"], self.total_items)
9976
+ _serialize_experiment_list(serializer, _SCHEMA_LIST_EXPERIMENT_OUTPUT.members["data"], self.data)
10096
9977
 
10097
9978
  @classmethod
10098
9979
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -10787,17 +10668,25 @@ ShapeID("io.superposition#InternalServerError"): InternalServerError,
10787
10668
 
10788
10669
  @dataclass(kw_only=True)
10789
10670
  class VariantUpdateRequest:
10671
+ """
10672
+
10673
+ :param overrides:
10674
+ **[Required]** - Configuration overrides that replace default values when
10675
+ context conditions are met. Keys represent configuration keys and values are the
10676
+ override data.
10677
+
10678
+ """
10790
10679
 
10791
10680
  id: str
10792
10681
 
10793
- overrides: Document
10682
+ overrides: dict[str, Document]
10794
10683
 
10795
10684
  def serialize(self, serializer: ShapeSerializer):
10796
10685
  serializer.write_struct(_SCHEMA_VARIANT_UPDATE_REQUEST, self)
10797
10686
 
10798
10687
  def serialize_members(self, serializer: ShapeSerializer):
10799
10688
  serializer.write_string(_SCHEMA_VARIANT_UPDATE_REQUEST.members["id"], self.id)
10800
- serializer.write_document(_SCHEMA_VARIANT_UPDATE_REQUEST.members["overrides"], self.overrides)
10689
+ _serialize_overrides(serializer, _SCHEMA_VARIANT_UPDATE_REQUEST.members["overrides"], self.overrides)
10801
10690
 
10802
10691
  @classmethod
10803
10692
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -10813,7 +10702,7 @@ class VariantUpdateRequest:
10813
10702
  kwargs["id"] = de.read_string(_SCHEMA_VARIANT_UPDATE_REQUEST.members["id"])
10814
10703
 
10815
10704
  case 1:
10816
- kwargs["overrides"] = de.read_document(_SCHEMA_VARIANT_UPDATE_REQUEST.members["overrides"])
10705
+ kwargs["overrides"] = _deserialize_overrides(de, _SCHEMA_VARIANT_UPDATE_REQUEST.members["overrides"])
10817
10706
 
10818
10707
  case _:
10819
10708
  logger.debug("Unexpected member schema: %s", schema)
@@ -10840,6 +10729,12 @@ def _deserialize_list_variant_update_request(deserializer: ShapeDeserializer, sc
10840
10729
 
10841
10730
  @dataclass(kw_only=True)
10842
10731
  class UpdateOverridesExperimentInput:
10732
+ """
10733
+
10734
+ :param experiment_group_id:
10735
+ To unset experiment group, pass "null" string.
10736
+
10737
+ """
10843
10738
 
10844
10739
  workspace_id: str | None = None
10845
10740
  org_id: str | None = None
@@ -11247,6 +11142,24 @@ ShapeID("io.superposition#InternalServerError"): InternalServerError,
11247
11142
  ]
11248
11143
  )
11249
11144
 
11145
+ def _serialize_function_types_list(serializer: ShapeSerializer, schema: Schema, value: list[str]) -> None:
11146
+ member_schema = schema.members["member"]
11147
+ with serializer.begin_list(schema, len(value)) as ls:
11148
+ for e in value:
11149
+ ls.write_string(member_schema, e)
11150
+
11151
+ def _deserialize_function_types_list(deserializer: ShapeDeserializer, schema: Schema) -> list[str]:
11152
+ result: list[str] = []
11153
+ member_schema = schema.members["member"]
11154
+ def _read_value(d: ShapeDeserializer):
11155
+ if d.is_null():
11156
+ d.read_null()
11157
+
11158
+ else:
11159
+ result.append(d.read_string(member_schema))
11160
+ deserializer.read_list(schema, _read_value)
11161
+ return result
11162
+
11250
11163
  @dataclass(kw_only=True)
11251
11164
  class ListFunctionInput:
11252
11165
  """
@@ -11268,6 +11181,7 @@ class ListFunctionInput:
11268
11181
  all: bool | None = None
11269
11182
  workspace_id: str | None = None
11270
11183
  org_id: str | None = None
11184
+ function_type: list[str] | None = None
11271
11185
 
11272
11186
  def serialize(self, serializer: ShapeSerializer):
11273
11187
  serializer.write_struct(_SCHEMA_LIST_FUNCTION_INPUT, self)
@@ -11300,6 +11214,9 @@ class ListFunctionInput:
11300
11214
  case 4:
11301
11215
  kwargs["org_id"] = de.read_string(_SCHEMA_LIST_FUNCTION_INPUT.members["org_id"])
11302
11216
 
11217
+ case 5:
11218
+ kwargs["function_type"] = _deserialize_function_types_list(de, _SCHEMA_LIST_FUNCTION_INPUT.members["function_type"])
11219
+
11303
11220
  case _:
11304
11221
  logger.debug("Unexpected member schema: %s", schema)
11305
11222
 
@@ -11439,22 +11356,19 @@ def _deserialize_function_list_response(deserializer: ShapeDeserializer, schema:
11439
11356
  @dataclass(kw_only=True)
11440
11357
  class ListFunctionOutput:
11441
11358
 
11442
- total_pages: int | None = None
11443
- total_items: int | None = None
11444
- data: list[FunctionResponse] | None = None
11359
+ total_pages: int
11360
+
11361
+ total_items: int
11362
+
11363
+ data: list[FunctionResponse]
11445
11364
 
11446
11365
  def serialize(self, serializer: ShapeSerializer):
11447
11366
  serializer.write_struct(_SCHEMA_LIST_FUNCTION_OUTPUT, self)
11448
11367
 
11449
11368
  def serialize_members(self, serializer: ShapeSerializer):
11450
- if self.total_pages is not None:
11451
- serializer.write_integer(_SCHEMA_LIST_FUNCTION_OUTPUT.members["total_pages"], self.total_pages)
11452
-
11453
- if self.total_items is not None:
11454
- serializer.write_integer(_SCHEMA_LIST_FUNCTION_OUTPUT.members["total_items"], self.total_items)
11455
-
11456
- if self.data is not None:
11457
- _serialize_function_list_response(serializer, _SCHEMA_LIST_FUNCTION_OUTPUT.members["data"], self.data)
11369
+ serializer.write_integer(_SCHEMA_LIST_FUNCTION_OUTPUT.members["total_pages"], self.total_pages)
11370
+ serializer.write_integer(_SCHEMA_LIST_FUNCTION_OUTPUT.members["total_items"], self.total_items)
11371
+ _serialize_function_list_response(serializer, _SCHEMA_LIST_FUNCTION_OUTPUT.members["data"], self.data)
11458
11372
 
11459
11373
  @classmethod
11460
11374
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -11669,18 +11583,16 @@ ShapeID("io.superposition#InternalServerError"): InternalServerError,
11669
11583
  @dataclass(kw_only=True)
11670
11584
  class ValidateFunctionRequest:
11671
11585
 
11672
- key: str | None = None
11673
- value: Document | None = None
11586
+ key: str
11587
+
11588
+ value: Document
11674
11589
 
11675
11590
  def serialize(self, serializer: ShapeSerializer):
11676
11591
  serializer.write_struct(_SCHEMA_VALIDATE_FUNCTION_REQUEST, self)
11677
11592
 
11678
11593
  def serialize_members(self, serializer: ShapeSerializer):
11679
- if self.key is not None:
11680
- serializer.write_string(_SCHEMA_VALIDATE_FUNCTION_REQUEST.members["key"], self.key)
11681
-
11682
- if self.value is not None:
11683
- serializer.write_document(_SCHEMA_VALIDATE_FUNCTION_REQUEST.members["value"], self.value)
11594
+ serializer.write_string(_SCHEMA_VALIDATE_FUNCTION_REQUEST.members["key"], self.key)
11595
+ serializer.write_document(_SCHEMA_VALIDATE_FUNCTION_REQUEST.members["value"], self.value)
11684
11596
 
11685
11597
  @classmethod
11686
11598
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -12521,22 +12433,19 @@ def _deserialize_type_templates_list(deserializer: ShapeDeserializer, schema: Sc
12521
12433
  @dataclass(kw_only=True)
12522
12434
  class GetTypeTemplatesListOutput:
12523
12435
 
12524
- total_pages: int | None = None
12525
- total_items: int | None = None
12526
- data: list[TypeTemplatesResponse] | None = None
12436
+ total_pages: int
12437
+
12438
+ total_items: int
12439
+
12440
+ data: list[TypeTemplatesResponse]
12527
12441
 
12528
12442
  def serialize(self, serializer: ShapeSerializer):
12529
12443
  serializer.write_struct(_SCHEMA_GET_TYPE_TEMPLATES_LIST_OUTPUT, self)
12530
12444
 
12531
12445
  def serialize_members(self, serializer: ShapeSerializer):
12532
- if self.total_pages is not None:
12533
- serializer.write_integer(_SCHEMA_GET_TYPE_TEMPLATES_LIST_OUTPUT.members["total_pages"], self.total_pages)
12534
-
12535
- if self.total_items is not None:
12536
- serializer.write_integer(_SCHEMA_GET_TYPE_TEMPLATES_LIST_OUTPUT.members["total_items"], self.total_items)
12537
-
12538
- if self.data is not None:
12539
- _serialize_type_templates_list(serializer, _SCHEMA_GET_TYPE_TEMPLATES_LIST_OUTPUT.members["data"], self.data)
12446
+ serializer.write_integer(_SCHEMA_GET_TYPE_TEMPLATES_LIST_OUTPUT.members["total_pages"], self.total_pages)
12447
+ serializer.write_integer(_SCHEMA_GET_TYPE_TEMPLATES_LIST_OUTPUT.members["total_items"], self.total_items)
12448
+ _serialize_type_templates_list(serializer, _SCHEMA_GET_TYPE_TEMPLATES_LIST_OUTPUT.members["data"], self.data)
12540
12449
 
12541
12450
  @classmethod
12542
12451
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -12990,13 +12899,14 @@ class GetWorkspaceOutput:
12990
12899
 
12991
12900
  strict_mode: bool
12992
12901
 
12902
+ metrics: Document
12903
+
12993
12904
  allow_experiment_self_approval: bool
12994
12905
 
12995
12906
  auto_populate_control: bool
12996
12907
 
12997
12908
  config_version: str | None = None
12998
12909
  mandatory_dimensions: list[str] | None = None
12999
- metrics: Document | None = None
13000
12910
 
13001
12911
  def serialize(self, serializer: ShapeSerializer):
13002
12912
  serializer.write_struct(_SCHEMA_GET_WORKSPACE_OUTPUT, self)
@@ -13019,9 +12929,7 @@ class GetWorkspaceOutput:
13019
12929
  _serialize_list_mandatory_dimensions(serializer, _SCHEMA_GET_WORKSPACE_OUTPUT.members["mandatory_dimensions"], self.mandatory_dimensions)
13020
12930
 
13021
12931
  serializer.write_boolean(_SCHEMA_GET_WORKSPACE_OUTPUT.members["strict_mode"], self.strict_mode)
13022
- if self.metrics is not None:
13023
- serializer.write_document(_SCHEMA_GET_WORKSPACE_OUTPUT.members["metrics"], self.metrics)
13024
-
12932
+ serializer.write_document(_SCHEMA_GET_WORKSPACE_OUTPUT.members["metrics"], self.metrics)
13025
12933
  serializer.write_boolean(_SCHEMA_GET_WORKSPACE_OUTPUT.members["allow_experiment_self_approval"], self.allow_experiment_self_approval)
13026
12934
  serializer.write_boolean(_SCHEMA_GET_WORKSPACE_OUTPUT.members["auto_populate_control"], self.auto_populate_control)
13027
12935
 
@@ -13276,22 +13184,19 @@ def _deserialize_organisation_list(deserializer: ShapeDeserializer, schema: Sche
13276
13184
  @dataclass(kw_only=True)
13277
13185
  class ListOrganisationOutput:
13278
13186
 
13279
- total_pages: int | None = None
13280
- total_items: int | None = None
13281
- data: list[OrganisationResponse] | None = None
13187
+ total_pages: int
13188
+
13189
+ total_items: int
13190
+
13191
+ data: list[OrganisationResponse]
13282
13192
 
13283
13193
  def serialize(self, serializer: ShapeSerializer):
13284
13194
  serializer.write_struct(_SCHEMA_LIST_ORGANISATION_OUTPUT, self)
13285
13195
 
13286
13196
  def serialize_members(self, serializer: ShapeSerializer):
13287
- if self.total_pages is not None:
13288
- serializer.write_integer(_SCHEMA_LIST_ORGANISATION_OUTPUT.members["total_pages"], self.total_pages)
13289
-
13290
- if self.total_items is not None:
13291
- serializer.write_integer(_SCHEMA_LIST_ORGANISATION_OUTPUT.members["total_items"], self.total_items)
13292
-
13293
- if self.data is not None:
13294
- _serialize_organisation_list(serializer, _SCHEMA_LIST_ORGANISATION_OUTPUT.members["data"], self.data)
13197
+ serializer.write_integer(_SCHEMA_LIST_ORGANISATION_OUTPUT.members["total_pages"], self.total_pages)
13198
+ serializer.write_integer(_SCHEMA_LIST_ORGANISATION_OUTPUT.members["total_items"], self.total_items)
13199
+ _serialize_organisation_list(serializer, _SCHEMA_LIST_ORGANISATION_OUTPUT.members["data"], self.data)
13295
13200
 
13296
13201
  @classmethod
13297
13202
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -13535,22 +13440,19 @@ def _deserialize_webhook_list(deserializer: ShapeDeserializer, schema: Schema) -
13535
13440
  @dataclass(kw_only=True)
13536
13441
  class ListWebhookOutput:
13537
13442
 
13538
- total_pages: int | None = None
13539
- total_items: int | None = None
13540
- data: list[WebhookResponse] | None = None
13443
+ total_pages: int
13444
+
13445
+ total_items: int
13446
+
13447
+ data: list[WebhookResponse]
13541
13448
 
13542
13449
  def serialize(self, serializer: ShapeSerializer):
13543
13450
  serializer.write_struct(_SCHEMA_LIST_WEBHOOK_OUTPUT, self)
13544
13451
 
13545
13452
  def serialize_members(self, serializer: ShapeSerializer):
13546
- if self.total_pages is not None:
13547
- serializer.write_integer(_SCHEMA_LIST_WEBHOOK_OUTPUT.members["total_pages"], self.total_pages)
13548
-
13549
- if self.total_items is not None:
13550
- serializer.write_integer(_SCHEMA_LIST_WEBHOOK_OUTPUT.members["total_items"], self.total_items)
13551
-
13552
- if self.data is not None:
13553
- _serialize_webhook_list(serializer, _SCHEMA_LIST_WEBHOOK_OUTPUT.members["data"], self.data)
13453
+ serializer.write_integer(_SCHEMA_LIST_WEBHOOK_OUTPUT.members["total_pages"], self.total_pages)
13454
+ serializer.write_integer(_SCHEMA_LIST_WEBHOOK_OUTPUT.members["total_items"], self.total_items)
13455
+ _serialize_webhook_list(serializer, _SCHEMA_LIST_WEBHOOK_OUTPUT.members["data"], self.data)
13554
13456
 
13555
13457
  @classmethod
13556
13458
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -13671,13 +13573,14 @@ class WorkspaceResponse:
13671
13573
 
13672
13574
  strict_mode: bool
13673
13575
 
13576
+ metrics: Document
13577
+
13674
13578
  allow_experiment_self_approval: bool
13675
13579
 
13676
13580
  auto_populate_control: bool
13677
13581
 
13678
13582
  config_version: str | None = None
13679
13583
  mandatory_dimensions: list[str] | None = None
13680
- metrics: Document | None = None
13681
13584
 
13682
13585
  def serialize(self, serializer: ShapeSerializer):
13683
13586
  serializer.write_struct(_SCHEMA_WORKSPACE_RESPONSE, self)
@@ -13700,9 +13603,7 @@ class WorkspaceResponse:
13700
13603
  _serialize_list_mandatory_dimensions(serializer, _SCHEMA_WORKSPACE_RESPONSE.members["mandatory_dimensions"], self.mandatory_dimensions)
13701
13604
 
13702
13605
  serializer.write_boolean(_SCHEMA_WORKSPACE_RESPONSE.members["strict_mode"], self.strict_mode)
13703
- if self.metrics is not None:
13704
- serializer.write_document(_SCHEMA_WORKSPACE_RESPONSE.members["metrics"], self.metrics)
13705
-
13606
+ serializer.write_document(_SCHEMA_WORKSPACE_RESPONSE.members["metrics"], self.metrics)
13706
13607
  serializer.write_boolean(_SCHEMA_WORKSPACE_RESPONSE.members["allow_experiment_self_approval"], self.allow_experiment_self_approval)
13707
13608
  serializer.write_boolean(_SCHEMA_WORKSPACE_RESPONSE.members["auto_populate_control"], self.auto_populate_control)
13708
13609
 
@@ -13790,22 +13691,19 @@ def _deserialize_workspace_list(deserializer: ShapeDeserializer, schema: Schema)
13790
13691
  @dataclass(kw_only=True)
13791
13692
  class ListWorkspaceOutput:
13792
13693
 
13793
- total_pages: int | None = None
13794
- total_items: int | None = None
13795
- data: list[WorkspaceResponse] | None = None
13694
+ total_pages: int
13695
+
13696
+ total_items: int
13697
+
13698
+ data: list[WorkspaceResponse]
13796
13699
 
13797
13700
  def serialize(self, serializer: ShapeSerializer):
13798
13701
  serializer.write_struct(_SCHEMA_LIST_WORKSPACE_OUTPUT, self)
13799
13702
 
13800
13703
  def serialize_members(self, serializer: ShapeSerializer):
13801
- if self.total_pages is not None:
13802
- serializer.write_integer(_SCHEMA_LIST_WORKSPACE_OUTPUT.members["total_pages"], self.total_pages)
13803
-
13804
- if self.total_items is not None:
13805
- serializer.write_integer(_SCHEMA_LIST_WORKSPACE_OUTPUT.members["total_items"], self.total_items)
13806
-
13807
- if self.data is not None:
13808
- _serialize_workspace_list(serializer, _SCHEMA_LIST_WORKSPACE_OUTPUT.members["data"], self.data)
13704
+ serializer.write_integer(_SCHEMA_LIST_WORKSPACE_OUTPUT.members["total_pages"], self.total_pages)
13705
+ serializer.write_integer(_SCHEMA_LIST_WORKSPACE_OUTPUT.members["total_items"], self.total_items)
13706
+ _serialize_workspace_list(serializer, _SCHEMA_LIST_WORKSPACE_OUTPUT.members["data"], self.data)
13809
13707
 
13810
13708
  @classmethod
13811
13709
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
@@ -13905,13 +13803,14 @@ class MigrateWorkspaceSchemaOutput:
13905
13803
 
13906
13804
  strict_mode: bool
13907
13805
 
13806
+ metrics: Document
13807
+
13908
13808
  allow_experiment_self_approval: bool
13909
13809
 
13910
13810
  auto_populate_control: bool
13911
13811
 
13912
13812
  config_version: str | None = None
13913
13813
  mandatory_dimensions: list[str] | None = None
13914
- metrics: Document | None = None
13915
13814
 
13916
13815
  def serialize(self, serializer: ShapeSerializer):
13917
13816
  serializer.write_struct(_SCHEMA_MIGRATE_WORKSPACE_SCHEMA_OUTPUT, self)
@@ -13934,9 +13833,7 @@ class MigrateWorkspaceSchemaOutput:
13934
13833
  _serialize_list_mandatory_dimensions(serializer, _SCHEMA_MIGRATE_WORKSPACE_SCHEMA_OUTPUT.members["mandatory_dimensions"], self.mandatory_dimensions)
13935
13834
 
13936
13835
  serializer.write_boolean(_SCHEMA_MIGRATE_WORKSPACE_SCHEMA_OUTPUT.members["strict_mode"], self.strict_mode)
13937
- if self.metrics is not None:
13938
- serializer.write_document(_SCHEMA_MIGRATE_WORKSPACE_SCHEMA_OUTPUT.members["metrics"], self.metrics)
13939
-
13836
+ serializer.write_document(_SCHEMA_MIGRATE_WORKSPACE_SCHEMA_OUTPUT.members["metrics"], self.metrics)
13940
13837
  serializer.write_boolean(_SCHEMA_MIGRATE_WORKSPACE_SCHEMA_OUTPUT.members["allow_experiment_self_approval"], self.allow_experiment_self_approval)
13941
13838
  serializer.write_boolean(_SCHEMA_MIGRATE_WORKSPACE_SCHEMA_OUTPUT.members["auto_populate_control"], self.auto_populate_control)
13942
13839
 
@@ -14603,6 +14500,12 @@ ShapeID("io.superposition#InternalServerError"): InternalServerError,
14603
14500
 
14604
14501
  @dataclass(kw_only=True)
14605
14502
  class UpdateWorkspaceInput:
14503
+ """
14504
+
14505
+ :param config_version:
14506
+ To unset config version, pass "null" string.
14507
+
14508
+ """
14606
14509
 
14607
14510
  org_id: str | None = None
14608
14511
  workspace_name: str | None = None
@@ -14707,13 +14610,14 @@ class UpdateWorkspaceOutput:
14707
14610
 
14708
14611
  strict_mode: bool
14709
14612
 
14613
+ metrics: Document
14614
+
14710
14615
  allow_experiment_self_approval: bool
14711
14616
 
14712
14617
  auto_populate_control: bool
14713
14618
 
14714
14619
  config_version: str | None = None
14715
14620
  mandatory_dimensions: list[str] | None = None
14716
- metrics: Document | None = None
14717
14621
 
14718
14622
  def serialize(self, serializer: ShapeSerializer):
14719
14623
  serializer.write_struct(_SCHEMA_UPDATE_WORKSPACE_OUTPUT, self)
@@ -14736,9 +14640,7 @@ class UpdateWorkspaceOutput:
14736
14640
  _serialize_list_mandatory_dimensions(serializer, _SCHEMA_UPDATE_WORKSPACE_OUTPUT.members["mandatory_dimensions"], self.mandatory_dimensions)
14737
14641
 
14738
14642
  serializer.write_boolean(_SCHEMA_UPDATE_WORKSPACE_OUTPUT.members["strict_mode"], self.strict_mode)
14739
- if self.metrics is not None:
14740
- serializer.write_document(_SCHEMA_UPDATE_WORKSPACE_OUTPUT.members["metrics"], self.metrics)
14741
-
14643
+ serializer.write_document(_SCHEMA_UPDATE_WORKSPACE_OUTPUT.members["metrics"], self.metrics)
14742
14644
  serializer.write_boolean(_SCHEMA_UPDATE_WORKSPACE_OUTPUT.members["allow_experiment_self_approval"], self.allow_experiment_self_approval)
14743
14645
  serializer.write_boolean(_SCHEMA_UPDATE_WORKSPACE_OUTPUT.members["auto_populate_control"], self.auto_populate_control)
14744
14646