superposition-sdk 0.92.0__py3-none-any.whl → 0.93.0__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.

@@ -527,11 +527,57 @@ APPLICABLE_VARIANTS = Schema(
527
527
 
528
528
  )
529
529
 
530
+ AUDIT_ACTION = Schema.collection(
531
+ id=ShapeID("io.superposition#AuditAction"),
532
+ shape_type=ShapeType.ENUM,
533
+ members={
534
+ "INSERT": {
535
+ "target": UNIT,
536
+ "index": 0,
537
+ "traits": [
538
+ Trait.new(id=ShapeID("smithy.api#enumValue"), value="INSERT"),
539
+
540
+ ],
541
+ },
542
+
543
+ "UPDATE": {
544
+ "target": UNIT,
545
+ "index": 1,
546
+ "traits": [
547
+ Trait.new(id=ShapeID("smithy.api#enumValue"), value="UPDATE"),
548
+
549
+ ],
550
+ },
551
+
552
+ "DELETE": {
553
+ "target": UNIT,
554
+ "index": 2,
555
+ "traits": [
556
+ Trait.new(id=ShapeID("smithy.api#enumValue"), value="DELETE"),
557
+
558
+ ],
559
+ },
560
+
561
+ }
562
+ )
563
+
564
+ AUDIT_ACTION_LIST = Schema.collection(
565
+ id=ShapeID("io.superposition#AuditActionList"),
566
+ shape_type=ShapeType.LIST,
567
+ members={
568
+ "member": {
569
+ "target": AUDIT_ACTION,
570
+ "index": 0,
571
+ },
572
+
573
+ }
574
+ )
575
+
530
576
  SORT_BY = Schema.collection(
531
577
  id=ShapeID("io.superposition#SortBy"),
532
578
  shape_type=ShapeType.ENUM,
533
579
  members={
534
- "Desc": {
580
+ "DESC": {
535
581
  "target": UNIT,
536
582
  "index": 0,
537
583
  "traits": [
@@ -540,7 +586,7 @@ SORT_BY = Schema.collection(
540
586
  ],
541
587
  },
542
588
 
543
- "Asc": {
589
+ "ASC": {
544
590
  "target": UNIT,
545
591
  "index": 1,
546
592
  "traits": [
@@ -628,7 +674,7 @@ LIST_AUDIT_LOGS_INPUT = Schema.collection(
628
674
  },
629
675
 
630
676
  "tables": {
631
- "target": STRING,
677
+ "target": STRING_LIST,
632
678
  "index": 7,
633
679
  "traits": [
634
680
  Trait.new(id=ShapeID("smithy.api#notProperty")),
@@ -638,7 +684,7 @@ LIST_AUDIT_LOGS_INPUT = Schema.collection(
638
684
  },
639
685
 
640
686
  "action": {
641
- "target": STRING,
687
+ "target": AUDIT_ACTION_LIST,
642
688
  "index": 8,
643
689
  "traits": [
644
690
  Trait.new(id=ShapeID("smithy.api#notProperty")),
@@ -1583,7 +1629,7 @@ GET_CONFIG_INPUT = Schema.collection(
1583
1629
  },
1584
1630
 
1585
1631
  "prefix": {
1586
- "target": STRING,
1632
+ "target": STRING_LIST,
1587
1633
  "index": 2,
1588
1634
  "traits": [
1589
1635
  Trait.new(id=ShapeID("smithy.api#notProperty")),
@@ -2035,7 +2081,7 @@ GET_RESOLVED_CONFIG_INPUT = Schema.collection(
2035
2081
  },
2036
2082
 
2037
2083
  "prefix": {
2038
- "target": STRING,
2084
+ "target": STRING_LIST,
2039
2085
  "index": 2,
2040
2086
  "traits": [
2041
2087
  Trait.new(id=ShapeID("smithy.api#notProperty")),
@@ -2937,7 +2983,7 @@ DIMENSION_MATCH_STRATEGY = Schema.collection(
2937
2983
  id=ShapeID("io.superposition#DimensionMatchStrategy"),
2938
2984
  shape_type=ShapeType.ENUM,
2939
2985
  members={
2940
- "Exact": {
2986
+ "EXACT": {
2941
2987
  "target": UNIT,
2942
2988
  "index": 0,
2943
2989
  "traits": [
@@ -2946,7 +2992,7 @@ DIMENSION_MATCH_STRATEGY = Schema.collection(
2946
2992
  ],
2947
2993
  },
2948
2994
 
2949
- "Subset": {
2995
+ "SUBSET": {
2950
2996
  "target": UNIT,
2951
2997
  "index": 1,
2952
2998
  "traits": [
@@ -2962,7 +3008,7 @@ CONTEXT_FILTER_SORT_ON = Schema.collection(
2962
3008
  id=ShapeID("io.superposition#ContextFilterSortOn"),
2963
3009
  shape_type=ShapeType.ENUM,
2964
3010
  members={
2965
- "LastModifiedAt": {
3011
+ "LAST_MODIFIED_AT": {
2966
3012
  "target": UNIT,
2967
3013
  "index": 0,
2968
3014
  "traits": [
@@ -2971,7 +3017,7 @@ CONTEXT_FILTER_SORT_ON = Schema.collection(
2971
3017
  ],
2972
3018
  },
2973
3019
 
2974
- "CreatedAt": {
3020
+ "CREATED_AT": {
2975
3021
  "target": UNIT,
2976
3022
  "index": 1,
2977
3023
  "traits": [
@@ -2980,7 +3026,7 @@ CONTEXT_FILTER_SORT_ON = Schema.collection(
2980
3026
  ],
2981
3027
  },
2982
3028
 
2983
- "Weight": {
3029
+ "WEIGHT": {
2984
3030
  "target": UNIT,
2985
3031
  "index": 2,
2986
3032
  "traits": [
@@ -3048,7 +3094,7 @@ LIST_CONTEXTS_INPUT = Schema.collection(
3048
3094
  },
3049
3095
 
3050
3096
  "prefix": {
3051
- "target": STRING,
3097
+ "target": STRING_LIST,
3052
3098
  "index": 5,
3053
3099
  "traits": [
3054
3100
  Trait.new(id=ShapeID("smithy.api#notProperty")),
@@ -3078,7 +3124,7 @@ LIST_CONTEXTS_INPUT = Schema.collection(
3078
3124
  },
3079
3125
 
3080
3126
  "created_by": {
3081
- "target": STRING,
3127
+ "target": STRING_LIST,
3082
3128
  "index": 8,
3083
3129
  "traits": [
3084
3130
  Trait.new(id=ShapeID("smithy.api#notProperty")),
@@ -3088,7 +3134,7 @@ LIST_CONTEXTS_INPUT = Schema.collection(
3088
3134
  },
3089
3135
 
3090
3136
  "last_modified_by": {
3091
- "target": STRING,
3137
+ "target": STRING_LIST,
3092
3138
  "index": 9,
3093
3139
  "traits": [
3094
3140
  Trait.new(id=ShapeID("smithy.api#notProperty")),
@@ -4617,7 +4663,7 @@ FUNCTION_TYPES = Schema.collection(
4617
4663
  id=ShapeID("io.superposition#FunctionTypes"),
4618
4664
  shape_type=ShapeType.ENUM,
4619
4665
  members={
4620
- "Validation": {
4666
+ "VALIDATION": {
4621
4667
  "target": UNIT,
4622
4668
  "index": 0,
4623
4669
  "traits": [
@@ -4626,7 +4672,7 @@ FUNCTION_TYPES = Schema.collection(
4626
4672
  ],
4627
4673
  },
4628
4674
 
4629
- "Autocomplete": {
4675
+ "AUTOCOMPLETE": {
4630
4676
  "target": UNIT,
4631
4677
  "index": 1,
4632
4678
  "traits": [
@@ -4918,7 +4964,7 @@ ORG_STATUS = Schema.collection(
4918
4964
  id=ShapeID("io.superposition#OrgStatus"),
4919
4965
  shape_type=ShapeType.ENUM,
4920
4966
  members={
4921
- "Active": {
4967
+ "ACTIVE": {
4922
4968
  "target": UNIT,
4923
4969
  "index": 0,
4924
4970
  "traits": [
@@ -4927,7 +4973,7 @@ ORG_STATUS = Schema.collection(
4927
4973
  ],
4928
4974
  },
4929
4975
 
4930
- "Inactive": {
4976
+ "INACTIVE": {
4931
4977
  "target": UNIT,
4932
4978
  "index": 1,
4933
4979
  "traits": [
@@ -4936,7 +4982,7 @@ ORG_STATUS = Schema.collection(
4936
4982
  ],
4937
4983
  },
4938
4984
 
4939
- "PendingKyb": {
4985
+ "PENDING_KYB": {
4940
4986
  "target": UNIT,
4941
4987
  "index": 2,
4942
4988
  "traits": [
@@ -8139,11 +8185,23 @@ GET_EXPERIMENT_GROUP = Schema(
8139
8185
 
8140
8186
  )
8141
8187
 
8188
+ GROUP_TYPE_LIST = Schema.collection(
8189
+ id=ShapeID("io.superposition#GroupTypeList"),
8190
+ shape_type=ShapeType.LIST,
8191
+ members={
8192
+ "member": {
8193
+ "target": GROUP_TYPE,
8194
+ "index": 0,
8195
+ },
8196
+
8197
+ }
8198
+ )
8199
+
8142
8200
  EXPERIMENT_GROUP_SORT_ON = Schema.collection(
8143
8201
  id=ShapeID("io.superposition#ExperimentGroupSortOn"),
8144
8202
  shape_type=ShapeType.ENUM,
8145
8203
  members={
8146
- "Name": {
8204
+ "NAME": {
8147
8205
  "target": UNIT,
8148
8206
  "index": 0,
8149
8207
  "traits": [
@@ -8152,7 +8210,7 @@ EXPERIMENT_GROUP_SORT_ON = Schema.collection(
8152
8210
  ],
8153
8211
  },
8154
8212
 
8155
- "CreatedAt": {
8213
+ "CREATED_AT": {
8156
8214
  "target": UNIT,
8157
8215
  "index": 1,
8158
8216
  "traits": [
@@ -8161,7 +8219,7 @@ EXPERIMENT_GROUP_SORT_ON = Schema.collection(
8161
8219
  ],
8162
8220
  },
8163
8221
 
8164
- "LastModifiedAt": {
8222
+ "LAST_MODIFIED_AT": {
8165
8223
  "target": UNIT,
8166
8224
  "index": 2,
8167
8225
  "traits": [
@@ -8276,7 +8334,7 @@ LIST_EXPERIMENT_GROUPS_INPUT = Schema.collection(
8276
8334
  },
8277
8335
 
8278
8336
  "group_type": {
8279
- "target": GROUP_TYPE,
8337
+ "target": GROUP_TYPE_LIST,
8280
8338
  "index": 10,
8281
8339
  "traits": [
8282
8340
  Trait.new(id=ShapeID("smithy.api#httpQuery"), value="group_type"),
@@ -9329,7 +9387,7 @@ EXPERIMENT_SORT_ON = Schema.collection(
9329
9387
  id=ShapeID("io.superposition#ExperimentSortOn"),
9330
9388
  shape_type=ShapeType.ENUM,
9331
9389
  members={
9332
- "LastModifiedAt": {
9390
+ "LAST_MODIFIED_AT": {
9333
9391
  "target": UNIT,
9334
9392
  "index": 0,
9335
9393
  "traits": [
@@ -9338,7 +9396,7 @@ EXPERIMENT_SORT_ON = Schema.collection(
9338
9396
  ],
9339
9397
  },
9340
9398
 
9341
- "CreatedAt": {
9399
+ "CREATED_AT": {
9342
9400
  "target": UNIT,
9343
9401
  "index": 1,
9344
9402
  "traits": [
@@ -9350,6 +9408,18 @@ EXPERIMENT_SORT_ON = Schema.collection(
9350
9408
  }
9351
9409
  )
9352
9410
 
9411
+ EXPERIMENT_STATUS_TYPE_LIST = Schema.collection(
9412
+ id=ShapeID("io.superposition#ExperimentStatusTypeList"),
9413
+ shape_type=ShapeType.LIST,
9414
+ members={
9415
+ "member": {
9416
+ "target": EXPERIMENT_STATUS_TYPE,
9417
+ "index": 0,
9418
+ },
9419
+
9420
+ }
9421
+ )
9422
+
9353
9423
  LIST_EXPERIMENT_INPUT = Schema.collection(
9354
9424
  id=ShapeID("io.superposition#ListExperimentInput"),
9355
9425
 
@@ -9406,7 +9476,7 @@ LIST_EXPERIMENT_INPUT = Schema.collection(
9406
9476
  },
9407
9477
 
9408
9478
  "status": {
9409
- "target": EXPERIMENT_STATUS_TYPE,
9479
+ "target": EXPERIMENT_STATUS_TYPE_LIST,
9410
9480
  "index": 5,
9411
9481
  "traits": [
9412
9482
  Trait.new(id=ShapeID("smithy.api#httpQuery"), value="status"),
@@ -9445,7 +9515,7 @@ LIST_EXPERIMENT_INPUT = Schema.collection(
9445
9515
  },
9446
9516
 
9447
9517
  "experiment_ids": {
9448
- "target": STRING,
9518
+ "target": STRING_LIST,
9449
9519
  "index": 9,
9450
9520
  "traits": [
9451
9521
  Trait.new(id=ShapeID("smithy.api#notProperty")),
@@ -9455,7 +9525,7 @@ LIST_EXPERIMENT_INPUT = Schema.collection(
9455
9525
  },
9456
9526
 
9457
9527
  "experiment_group_ids": {
9458
- "target": STRING,
9528
+ "target": STRING_LIST,
9459
9529
  "index": 10,
9460
9530
  "traits": [
9461
9531
  Trait.new(id=ShapeID("smithy.api#notProperty")),
@@ -9465,7 +9535,7 @@ LIST_EXPERIMENT_INPUT = Schema.collection(
9465
9535
  },
9466
9536
 
9467
9537
  "created_by": {
9468
- "target": STRING,
9538
+ "target": STRING_LIST,
9469
9539
  "index": 11,
9470
9540
  "traits": [
9471
9541
  Trait.new(id=ShapeID("smithy.api#notProperty")),
@@ -10751,6 +10821,18 @@ GET_FUNCTION = Schema(
10751
10821
 
10752
10822
  )
10753
10823
 
10824
+ FUNCTION_TYPES_LIST = Schema.collection(
10825
+ id=ShapeID("io.superposition#FunctionTypesList"),
10826
+ shape_type=ShapeType.LIST,
10827
+ members={
10828
+ "member": {
10829
+ "target": FUNCTION_TYPES,
10830
+ "index": 0,
10831
+ },
10832
+
10833
+ }
10834
+ )
10835
+
10754
10836
  LIST_FUNCTION_INPUT = Schema.collection(
10755
10837
  id=ShapeID("io.superposition#ListFunctionInput"),
10756
10838
 
@@ -10806,6 +10888,15 @@ LIST_FUNCTION_INPUT = Schema.collection(
10806
10888
  ],
10807
10889
  },
10808
10890
 
10891
+ "function_type": {
10892
+ "target": FUNCTION_TYPES_LIST,
10893
+ "index": 5,
10894
+ "traits": [
10895
+ Trait.new(id=ShapeID("smithy.api#httpQuery"), value="function_type"),
10896
+
10897
+ ],
10898
+ },
10899
+
10809
10900
  }
10810
10901
  )
10811
10902
 
@@ -812,6 +812,29 @@ APPLICABLE_VARIANTS = APIOperation(
812
812
  ]
813
813
  )
814
814
 
815
+ class AuditAction(StrEnum):
816
+ INSERT = "INSERT"
817
+ UPDATE = "UPDATE"
818
+ DELETE = "DELETE"
819
+
820
+ def _serialize_audit_action_list(serializer: ShapeSerializer, schema: Schema, value: list[str]) -> None:
821
+ member_schema = schema.members["member"]
822
+ with serializer.begin_list(schema, len(value)) as ls:
823
+ for e in value:
824
+ ls.write_string(member_schema, e)
825
+
826
+ def _deserialize_audit_action_list(deserializer: ShapeDeserializer, schema: Schema) -> list[str]:
827
+ result: list[str] = []
828
+ member_schema = schema.members["member"]
829
+ def _read_value(d: ShapeDeserializer):
830
+ if d.is_null():
831
+ d.read_null()
832
+
833
+ else:
834
+ result.append(d.read_string(member_schema))
835
+ deserializer.read_list(schema, _read_value)
836
+ return result
837
+
815
838
  class SortBy(StrEnum):
816
839
  """
817
840
  Sort order enumeration for list operations.
@@ -842,12 +865,6 @@ class ListAuditLogsInput:
842
865
  If true, returns all requested items, ignoring pagination parameters page and
843
866
  count.
844
867
 
845
- :param tables:
846
- Comma serparated list of tables.
847
-
848
- :param action:
849
- Comma serparated list of actions.
850
-
851
868
  :param sort_by:
852
869
  Sort order enumeration for list operations.
853
870
 
@@ -860,8 +877,8 @@ class ListAuditLogsInput:
860
877
  all: bool | None = None
861
878
  from_date: datetime | None = None
862
879
  to_date: datetime | None = None
863
- tables: str | None = None
864
- action: str | None = None
880
+ tables: list[str] | None = None
881
+ action: list[str] | None = None
865
882
  username: str | None = None
866
883
  sort_by: str | None = None
867
884
 
@@ -903,10 +920,10 @@ class ListAuditLogsInput:
903
920
  kwargs["to_date"] = de.read_timestamp(_SCHEMA_LIST_AUDIT_LOGS_INPUT.members["to_date"])
904
921
 
905
922
  case 7:
906
- kwargs["tables"] = de.read_string(_SCHEMA_LIST_AUDIT_LOGS_INPUT.members["tables"])
923
+ kwargs["tables"] = _deserialize_string_list(de, _SCHEMA_LIST_AUDIT_LOGS_INPUT.members["tables"])
907
924
 
908
925
  case 8:
909
- kwargs["action"] = de.read_string(_SCHEMA_LIST_AUDIT_LOGS_INPUT.members["action"])
926
+ kwargs["action"] = _deserialize_audit_action_list(de, _SCHEMA_LIST_AUDIT_LOGS_INPUT.members["action"])
910
927
 
911
928
  case 9:
912
929
  kwargs["username"] = de.read_string(_SCHEMA_LIST_AUDIT_LOGS_INPUT.members["username"])
@@ -2218,7 +2235,7 @@ class GetConfigInput:
2218
2235
 
2219
2236
  workspace_id: str | None = None
2220
2237
  org_id: str | None = None
2221
- prefix: str | None = None
2238
+ prefix: list[str] | None = None
2222
2239
  version: str | None = None
2223
2240
  context: dict[str, Document] | None = None
2224
2241
 
@@ -2246,7 +2263,7 @@ class GetConfigInput:
2246
2263
  kwargs["org_id"] = de.read_string(_SCHEMA_GET_CONFIG_INPUT.members["org_id"])
2247
2264
 
2248
2265
  case 2:
2249
- kwargs["prefix"] = de.read_string(_SCHEMA_GET_CONFIG_INPUT.members["prefix"])
2266
+ kwargs["prefix"] = _deserialize_string_list(de, _SCHEMA_GET_CONFIG_INPUT.members["prefix"])
2250
2267
 
2251
2268
  case 3:
2252
2269
  kwargs["version"] = de.read_string(_SCHEMA_GET_CONFIG_INPUT.members["version"])
@@ -2808,7 +2825,7 @@ class GetResolvedConfigInput:
2808
2825
 
2809
2826
  workspace_id: str | None = None
2810
2827
  org_id: str | None = None
2811
- prefix: str | None = None
2828
+ prefix: list[str] | None = None
2812
2829
  version: str | None = None
2813
2830
  show_reasoning: bool | None = None
2814
2831
  merge_strategy: str | None = None
@@ -2839,7 +2856,7 @@ class GetResolvedConfigInput:
2839
2856
  kwargs["org_id"] = de.read_string(_SCHEMA_GET_RESOLVED_CONFIG_INPUT.members["org_id"])
2840
2857
 
2841
2858
  case 2:
2842
- kwargs["prefix"] = de.read_string(_SCHEMA_GET_RESOLVED_CONFIG_INPUT.members["prefix"])
2859
+ kwargs["prefix"] = _deserialize_string_list(de, _SCHEMA_GET_RESOLVED_CONFIG_INPUT.members["prefix"])
2843
2860
 
2844
2861
  case 3:
2845
2862
  kwargs["version"] = de.read_string(_SCHEMA_GET_RESOLVED_CONFIG_INPUT.members["version"])
@@ -3887,11 +3904,11 @@ class ListContextsInput:
3887
3904
  all: bool | None = None
3888
3905
  workspace_id: str | None = None
3889
3906
  org_id: str | None = None
3890
- prefix: str | None = None
3907
+ prefix: list[str] | None = None
3891
3908
  sort_on: str | None = None
3892
3909
  sort_by: str | None = None
3893
- created_by: str | None = None
3894
- last_modified_by: str | None = None
3910
+ created_by: list[str] | None = None
3911
+ last_modified_by: list[str] | None = None
3895
3912
  plaintext: str | None = None
3896
3913
  dimension_match_strategy: str | None = None
3897
3914
 
@@ -3927,7 +3944,7 @@ class ListContextsInput:
3927
3944
  kwargs["org_id"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["org_id"])
3928
3945
 
3929
3946
  case 5:
3930
- kwargs["prefix"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["prefix"])
3947
+ kwargs["prefix"] = _deserialize_string_list(de, _SCHEMA_LIST_CONTEXTS_INPUT.members["prefix"])
3931
3948
 
3932
3949
  case 6:
3933
3950
  kwargs["sort_on"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["sort_on"])
@@ -3936,10 +3953,10 @@ class ListContextsInput:
3936
3953
  kwargs["sort_by"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["sort_by"])
3937
3954
 
3938
3955
  case 8:
3939
- kwargs["created_by"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["created_by"])
3956
+ kwargs["created_by"] = _deserialize_string_list(de, _SCHEMA_LIST_CONTEXTS_INPUT.members["created_by"])
3940
3957
 
3941
3958
  case 9:
3942
- kwargs["last_modified_by"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["last_modified_by"])
3959
+ kwargs["last_modified_by"] = _deserialize_string_list(de, _SCHEMA_LIST_CONTEXTS_INPUT.members["last_modified_by"])
3943
3960
 
3944
3961
  case 10:
3945
3962
  kwargs["plaintext"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["plaintext"])
@@ -8868,6 +8885,24 @@ ShapeID("io.superposition#InternalServerError"): InternalServerError,
8868
8885
  ]
8869
8886
  )
8870
8887
 
8888
+ def _serialize_group_type_list(serializer: ShapeSerializer, schema: Schema, value: list[str]) -> None:
8889
+ member_schema = schema.members["member"]
8890
+ with serializer.begin_list(schema, len(value)) as ls:
8891
+ for e in value:
8892
+ ls.write_string(member_schema, e)
8893
+
8894
+ def _deserialize_group_type_list(deserializer: ShapeDeserializer, schema: Schema) -> list[str]:
8895
+ result: list[str] = []
8896
+ member_schema = schema.members["member"]
8897
+ def _read_value(d: ShapeDeserializer):
8898
+ if d.is_null():
8899
+ d.read_null()
8900
+
8901
+ else:
8902
+ result.append(d.read_string(member_schema))
8903
+ deserializer.read_list(schema, _read_value)
8904
+ return result
8905
+
8871
8906
  class ExperimentGroupSortOn(StrEnum):
8872
8907
  NAME = "name"
8873
8908
  """
@@ -8930,7 +8965,7 @@ class ListExperimentGroupsInput:
8930
8965
  last_modified_by: str | None = None
8931
8966
  sort_on: str | None = None
8932
8967
  sort_by: str | None = None
8933
- group_type: str | None = None
8968
+ group_type: list[str] | None = None
8934
8969
 
8935
8970
  def serialize(self, serializer: ShapeSerializer):
8936
8971
  serializer.write_struct(_SCHEMA_LIST_EXPERIMENT_GROUPS_INPUT, self)
@@ -8979,7 +9014,7 @@ class ListExperimentGroupsInput:
8979
9014
  kwargs["sort_by"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_GROUPS_INPUT.members["sort_by"])
8980
9015
 
8981
9016
  case 10:
8982
- kwargs["group_type"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_GROUPS_INPUT.members["group_type"])
9017
+ kwargs["group_type"] = _deserialize_group_type_list(de, _SCHEMA_LIST_EXPERIMENT_GROUPS_INPUT.members["group_type"])
8983
9018
 
8984
9019
  case _:
8985
9020
  logger.debug("Unexpected member schema: %s", schema)
@@ -9965,6 +10000,24 @@ class ExperimentSortOn(StrEnum):
9965
10000
  LAST_MODIFIED_AT = "last_modified_at"
9966
10001
  CREATED_AT = "created_at"
9967
10002
 
10003
+ def _serialize_experiment_status_type_list(serializer: ShapeSerializer, schema: Schema, value: list[str]) -> None:
10004
+ member_schema = schema.members["member"]
10005
+ with serializer.begin_list(schema, len(value)) as ls:
10006
+ for e in value:
10007
+ ls.write_string(member_schema, e)
10008
+
10009
+ def _deserialize_experiment_status_type_list(deserializer: ShapeDeserializer, schema: Schema) -> list[str]:
10010
+ result: list[str] = []
10011
+ member_schema = schema.members["member"]
10012
+ def _read_value(d: ShapeDeserializer):
10013
+ if d.is_null():
10014
+ d.read_null()
10015
+
10016
+ else:
10017
+ result.append(d.read_string(member_schema))
10018
+ deserializer.read_list(schema, _read_value)
10019
+ return result
10020
+
9968
10021
  @dataclass(kw_only=True)
9969
10022
  class ListExperimentInput:
9970
10023
  """
@@ -9992,13 +10045,13 @@ class ListExperimentInput:
9992
10045
  all: bool | None = None
9993
10046
  workspace_id: str | None = None
9994
10047
  org_id: str | None = None
9995
- status: str | None = None
10048
+ status: list[str] | None = None
9996
10049
  from_date: datetime | None = None
9997
10050
  to_date: datetime | None = None
9998
10051
  experiment_name: str | None = None
9999
- experiment_ids: str | None = None
10000
- experiment_group_ids: str | None = None
10001
- created_by: str | None = None
10052
+ experiment_ids: list[str] | None = None
10053
+ experiment_group_ids: list[str] | None = None
10054
+ created_by: list[str] | None = None
10002
10055
  sort_on: str | None = None
10003
10056
  sort_by: str | None = None
10004
10057
  global_experiments_only: bool | None = None
@@ -10036,7 +10089,7 @@ class ListExperimentInput:
10036
10089
  kwargs["org_id"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_INPUT.members["org_id"])
10037
10090
 
10038
10091
  case 5:
10039
- kwargs["status"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_INPUT.members["status"])
10092
+ kwargs["status"] = _deserialize_experiment_status_type_list(de, _SCHEMA_LIST_EXPERIMENT_INPUT.members["status"])
10040
10093
 
10041
10094
  case 6:
10042
10095
  kwargs["from_date"] = de.read_timestamp(_SCHEMA_LIST_EXPERIMENT_INPUT.members["from_date"])
@@ -10048,13 +10101,13 @@ class ListExperimentInput:
10048
10101
  kwargs["experiment_name"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_INPUT.members["experiment_name"])
10049
10102
 
10050
10103
  case 9:
10051
- kwargs["experiment_ids"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_INPUT.members["experiment_ids"])
10104
+ kwargs["experiment_ids"] = _deserialize_string_list(de, _SCHEMA_LIST_EXPERIMENT_INPUT.members["experiment_ids"])
10052
10105
 
10053
10106
  case 10:
10054
- kwargs["experiment_group_ids"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_INPUT.members["experiment_group_ids"])
10107
+ kwargs["experiment_group_ids"] = _deserialize_string_list(de, _SCHEMA_LIST_EXPERIMENT_INPUT.members["experiment_group_ids"])
10055
10108
 
10056
10109
  case 11:
10057
- kwargs["created_by"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_INPUT.members["created_by"])
10110
+ kwargs["created_by"] = _deserialize_string_list(de, _SCHEMA_LIST_EXPERIMENT_INPUT.members["created_by"])
10058
10111
 
10059
10112
  case 12:
10060
10113
  kwargs["sort_on"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_INPUT.members["sort_on"])
@@ -11247,6 +11300,24 @@ ShapeID("io.superposition#InternalServerError"): InternalServerError,
11247
11300
  ]
11248
11301
  )
11249
11302
 
11303
+ def _serialize_function_types_list(serializer: ShapeSerializer, schema: Schema, value: list[str]) -> None:
11304
+ member_schema = schema.members["member"]
11305
+ with serializer.begin_list(schema, len(value)) as ls:
11306
+ for e in value:
11307
+ ls.write_string(member_schema, e)
11308
+
11309
+ def _deserialize_function_types_list(deserializer: ShapeDeserializer, schema: Schema) -> list[str]:
11310
+ result: list[str] = []
11311
+ member_schema = schema.members["member"]
11312
+ def _read_value(d: ShapeDeserializer):
11313
+ if d.is_null():
11314
+ d.read_null()
11315
+
11316
+ else:
11317
+ result.append(d.read_string(member_schema))
11318
+ deserializer.read_list(schema, _read_value)
11319
+ return result
11320
+
11250
11321
  @dataclass(kw_only=True)
11251
11322
  class ListFunctionInput:
11252
11323
  """
@@ -11268,6 +11339,7 @@ class ListFunctionInput:
11268
11339
  all: bool | None = None
11269
11340
  workspace_id: str | None = None
11270
11341
  org_id: str | None = None
11342
+ function_type: list[str] | None = None
11271
11343
 
11272
11344
  def serialize(self, serializer: ShapeSerializer):
11273
11345
  serializer.write_struct(_SCHEMA_LIST_FUNCTION_INPUT, self)
@@ -11300,6 +11372,9 @@ class ListFunctionInput:
11300
11372
  case 4:
11301
11373
  kwargs["org_id"] = de.read_string(_SCHEMA_LIST_FUNCTION_INPUT.members["org_id"])
11302
11374
 
11375
+ case 5:
11376
+ kwargs["function_type"] = _deserialize_function_types_list(de, _SCHEMA_LIST_FUNCTION_INPUT.members["function_type"])
11377
+
11303
11378
  case _:
11304
11379
  logger.debug("Unexpected member schema: %s", schema)
11305
11380
 
@@ -878,7 +878,7 @@ async def _serialize_get_config(input: GetConfigInput, config: Config) -> HTTPRe
878
878
 
879
879
  query_params: list[tuple[str, str | None]] = []
880
880
  if input.prefix is not None:
881
- query_params.append(("prefix", input.prefix))
881
+ query_params.extend(("prefix", e) for e in input.prefix)
882
882
  if input.version is not None:
883
883
  query_params.append(("version", input.version))
884
884
 
@@ -1205,7 +1205,7 @@ async def _serialize_get_resolved_config(input: GetResolvedConfigInput, config:
1205
1205
 
1206
1206
  query_params: list[tuple[str, str | None]] = []
1207
1207
  if input.prefix is not None:
1208
- query_params.append(("prefix", input.prefix))
1208
+ query_params.extend(("prefix", e) for e in input.prefix)
1209
1209
  if input.version is not None:
1210
1210
  query_params.append(("version", input.version))
1211
1211
  if input.show_reasoning is not None:
@@ -1460,9 +1460,9 @@ async def _serialize_list_audit_logs(input: ListAuditLogsInput, config: Config)
1460
1460
  if input.to_date is not None:
1461
1461
  query_params.append(("to_date", serialize_rfc3339(ensure_utc(input.to_date))))
1462
1462
  if input.tables is not None:
1463
- query_params.append(("table", input.tables))
1463
+ query_params.extend(("table", e) for e in input.tables)
1464
1464
  if input.action is not None:
1465
- query_params.append(("action", input.action))
1465
+ query_params.extend(("action", e) for e in input.action)
1466
1466
  if input.username is not None:
1467
1467
  query_params.append(("username", input.username))
1468
1468
  if input.sort_by is not None:
@@ -1505,15 +1505,15 @@ async def _serialize_list_contexts(input: ListContextsInput, config: Config) ->
1505
1505
  if input.all is not None:
1506
1506
  query_params.append(("all", ('true' if input.all else 'false')))
1507
1507
  if input.prefix is not None:
1508
- query_params.append(("prefix", input.prefix))
1508
+ query_params.extend(("prefix", e) for e in input.prefix)
1509
1509
  if input.sort_on is not None:
1510
1510
  query_params.append(("sort_on", input.sort_on))
1511
1511
  if input.sort_by is not None:
1512
1512
  query_params.append(("sort_by", input.sort_by))
1513
1513
  if input.created_by is not None:
1514
- query_params.append(("created_by", input.created_by))
1514
+ query_params.extend(("created_by", e) for e in input.created_by)
1515
1515
  if input.last_modified_by is not None:
1516
- query_params.append(("last_modified_by", input.last_modified_by))
1516
+ query_params.extend(("last_modified_by", e) for e in input.last_modified_by)
1517
1517
  if input.plaintext is not None:
1518
1518
  query_params.append(("plaintext", input.plaintext))
1519
1519
  if input.dimension_match_strategy is not None:
@@ -1632,7 +1632,7 @@ async def _serialize_list_experiment(input: ListExperimentInput, config: Config)
1632
1632
  if input.all is not None:
1633
1633
  query_params.append(("all", ('true' if input.all else 'false')))
1634
1634
  if input.status is not None:
1635
- query_params.append(("status", input.status))
1635
+ query_params.extend(("status", e) for e in input.status)
1636
1636
  if input.from_date is not None:
1637
1637
  query_params.append(("from_date", serialize_rfc3339(ensure_utc(input.from_date))))
1638
1638
  if input.to_date is not None:
@@ -1640,11 +1640,11 @@ async def _serialize_list_experiment(input: ListExperimentInput, config: Config)
1640
1640
  if input.experiment_name is not None:
1641
1641
  query_params.append(("experiment_name", input.experiment_name))
1642
1642
  if input.experiment_ids is not None:
1643
- query_params.append(("experiment_ids", input.experiment_ids))
1643
+ query_params.extend(("experiment_ids", e) for e in input.experiment_ids)
1644
1644
  if input.experiment_group_ids is not None:
1645
- query_params.append(("experiment_group_ids", input.experiment_group_ids))
1645
+ query_params.extend(("experiment_group_ids", e) for e in input.experiment_group_ids)
1646
1646
  if input.created_by is not None:
1647
- query_params.append(("created_by", input.created_by))
1647
+ query_params.extend(("created_by", e) for e in input.created_by)
1648
1648
  if input.sort_on is not None:
1649
1649
  query_params.append(("sort_on", input.sort_on))
1650
1650
  if input.sort_by is not None:
@@ -1701,7 +1701,7 @@ async def _serialize_list_experiment_groups(input: ListExperimentGroupsInput, co
1701
1701
  if input.sort_by is not None:
1702
1702
  query_params.append(("sort_by", input.sort_by))
1703
1703
  if input.group_type is not None:
1704
- query_params.append(("group_type", input.group_type))
1704
+ query_params.extend(("group_type", e) for e in input.group_type)
1705
1705
 
1706
1706
  query = join_query_params(params=query_params, prefix=query)
1707
1707
 
@@ -1739,6 +1739,8 @@ async def _serialize_list_function(input: ListFunctionInput, config: Config) ->
1739
1739
  query_params.append(("page", str(input.page)))
1740
1740
  if input.all is not None:
1741
1741
  query_params.append(("all", ('true' if input.all else 'false')))
1742
+ if input.function_type is not None:
1743
+ query_params.extend(("function_type", e) for e in input.function_type)
1742
1744
 
1743
1745
  query = join_query_params(params=query_params, prefix=query)
1744
1746
 
@@ -0,0 +1,64 @@
1
+ Metadata-Version: 2.4
2
+ Name: superposition_sdk
3
+ Version: 0.93.0
4
+ Summary: superposition_sdk client
5
+ License: Apache-2.0
6
+ Keywords: smithy,superposition_sdk
7
+ Classifier: Development Status :: 2 - Pre-Alpha
8
+ Classifier: Intended Audience :: Developers
9
+ Classifier: Intended Audience :: System Administrators
10
+ Classifier: License :: OSI Approved :: Apache Software License
11
+ Classifier: Natural Language :: English
12
+ Classifier: Programming Language :: Python
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3 :: Only
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Requires-Python: >=3.12
18
+ Requires-Dist: smithy-core==0.0.1
19
+ Requires-Dist: smithy-http[aiohttp]==0.0.1
20
+ Requires-Dist: smithy-json==0.0.1
21
+ Provides-Extra: docs
22
+ Requires-Dist: pydata-sphinx-theme>=0.16.1; extra == 'docs'
23
+ Requires-Dist: sphinx>=8.2.3; extra == 'docs'
24
+ Provides-Extra: tests
25
+ Requires-Dist: pytest-asyncio<0.21.0,>=0.20.3; extra == 'tests'
26
+ Requires-Dist: pytest<8.0.0,>=7.2.0; extra == 'tests'
27
+ Description-Content-Type: text/markdown
28
+
29
+ # Superposition SDK
30
+
31
+ Superposition SDK is a Python client for the Superposition platform, designed to facilitate programmatic integration of all Superposition's API capabilities in Python applications. Read the complete documentation at [Superposition SDK Documentation](https://juspay.io/superposition/docs).
32
+
33
+ ## Installation
34
+
35
+ Install the Superposition SDK using pip:
36
+
37
+ ```bash
38
+ pip install superposition-sdk
39
+ ```
40
+
41
+ ## Initialization
42
+
43
+ ```python
44
+ from superposition_sdk.client import Config, Superposition
45
+ client = Superposition(Config(endpoint_uri="http://localhost:8080"))
46
+ ```
47
+
48
+ ## Usage
49
+
50
+ The SDK provides commands for every API call that Superposition supports. Below is an example of how to use the SDK to list default configs.
51
+
52
+ ```python
53
+ import asyncio
54
+ from superposition_sdk.client import Config, ListDefaultConfigsInput, Superposition
55
+ from pprint import pprint
56
+
57
+ async def list_configs():
58
+ client = Superposition(Config(endpoint_uri="http://localhost:8080"))
59
+ list_configs = ListDefaultConfigsInput(workspace_id="upi", org_id="orgid162145664241766405", all=True)
60
+ response = await client.list_default_configs(list_configs)
61
+ pprint(response)
62
+
63
+ asyncio.run(list_configs())
64
+ ```
@@ -3,10 +3,10 @@ superposition_sdk/auth.py,sha256=U9D3FmOH8TX0cjibGy_CRnAkTnFEavAek0Jw1YUhN2g,404
3
3
  superposition_sdk/client.py,sha256=rs7o9mTBQ7az1PdEK_FfLwyNKvP0vJrFoO3esBZOEbk,102350
4
4
  superposition_sdk/config.py,sha256=9sPXQhX31OzU2nnOFrzlchFpfHpgnltWXynZY6qwweo,12244
5
5
  superposition_sdk/deserialize.py,sha256=QZRjEs6oTCaGHf91_Dux-MNRLUNJohVfzOIhqgSTI-I,85196
6
- superposition_sdk/models.py,sha256=ladrZWapBmukrBxiDryuPaTgTajPiUIomKWqhvlfrmE,603203
7
- superposition_sdk/serialize.py,sha256=3pHJl1YY3uP3wAulnZfCpxcw4nxeByw9CGlic9M3LJk,79869
6
+ superposition_sdk/models.py,sha256=nUv9Tgz_qPc00h6OxAwkTnskKbUS_yW7-SmWddIda6M,606384
7
+ superposition_sdk/serialize.py,sha256=tiEzN6UfBo-IzyHSSxyFf3bXNhwY-C5nOGYYzcyRNPU,80120
8
8
  superposition_sdk/_private/__init__.py,sha256=DxsJq42a0KfQv9zzLrqT0JVpoXrR-IDIYFGuJe4g1Gc,55
9
- superposition_sdk/_private/schemas.py,sha256=dPYj-p49VD0syJzIAbrBk3FO_M3_ehbiYiODNfiBbrE,326398
10
- superposition_sdk-0.92.0.dist-info/METADATA,sha256=yG7UKQ-Di9YBEBDY0yWqMrqnThjLw5-1zE9QzZAeyY4,1143
11
- superposition_sdk-0.92.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
12
- superposition_sdk-0.92.0.dist-info/RECORD,,
9
+ superposition_sdk/_private/schemas.py,sha256=HWXdqzdL4zeoVevFfwTIM2EHazmTpfKBtGuYj5iSxQQ,328428
10
+ superposition_sdk-0.93.0.dist-info/METADATA,sha256=y8HEECJJ-aV1rxoktuvUNLV7exCQreXv_aFBFKHgoVI,2278
11
+ superposition_sdk-0.93.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
12
+ superposition_sdk-0.93.0.dist-info/RECORD,,
@@ -1,31 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: superposition_sdk
3
- Version: 0.92.0
4
- Summary: superposition_sdk client
5
- License: Apache-2.0
6
- Keywords: smithy,superposition_sdk
7
- Classifier: Development Status :: 2 - Pre-Alpha
8
- Classifier: Intended Audience :: Developers
9
- Classifier: Intended Audience :: System Administrators
10
- Classifier: License :: OSI Approved :: Apache Software License
11
- Classifier: Natural Language :: English
12
- Classifier: Programming Language :: Python
13
- Classifier: Programming Language :: Python :: 3
14
- Classifier: Programming Language :: Python :: 3 :: Only
15
- Classifier: Programming Language :: Python :: 3.12
16
- Classifier: Programming Language :: Python :: 3.13
17
- Requires-Python: >=3.12
18
- Requires-Dist: smithy-core==0.0.1
19
- Requires-Dist: smithy-http[aiohttp]==0.0.1
20
- Requires-Dist: smithy-json==0.0.1
21
- Provides-Extra: docs
22
- Requires-Dist: pydata-sphinx-theme>=0.16.1; extra == 'docs'
23
- Requires-Dist: sphinx>=8.2.3; extra == 'docs'
24
- Provides-Extra: tests
25
- Requires-Dist: pytest-asyncio<0.21.0,>=0.20.3; extra == 'tests'
26
- Requires-Dist: pytest<8.0.0,>=7.2.0; extra == 'tests'
27
- Description-Content-Type: text/markdown
28
-
29
- ## Superposition Client
30
-
31
- superposition_sdk client