superposition-sdk 0.89.0__py3-none-any.whl → 0.91.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.

@@ -1649,6 +1649,23 @@ OBJECT = Schema.collection(
1649
1649
  }
1650
1650
  )
1651
1651
 
1652
+ DIMENSION_DATA = Schema.collection(
1653
+ id=ShapeID("io.superposition#DimensionData"),
1654
+ shape_type=ShapeType.MAP,
1655
+ members={
1656
+ "key": {
1657
+ "target": STRING,
1658
+ "index": 0,
1659
+ },
1660
+
1661
+ "value": {
1662
+ "target": DOCUMENT,
1663
+ "index": 1,
1664
+ },
1665
+
1666
+ }
1667
+ )
1668
+
1652
1669
  OVERRIDES_MAP = Schema.collection(
1653
1670
  id=ShapeID("io.superposition#OverridesMap"),
1654
1671
  shape_type=ShapeType.MAP,
@@ -1701,9 +1718,18 @@ GET_CONFIG_OUTPUT = Schema.collection(
1701
1718
  ],
1702
1719
  },
1703
1720
 
1721
+ "dimensions": {
1722
+ "target": DIMENSION_DATA,
1723
+ "index": 3,
1724
+ "traits": [
1725
+ Trait.new(id=ShapeID("smithy.api#notProperty")),
1726
+
1727
+ ],
1728
+ },
1729
+
1704
1730
  "version": {
1705
1731
  "target": STRING,
1706
- "index": 3,
1732
+ "index": 4,
1707
1733
  "traits": [
1708
1734
  Trait.new(id=ShapeID("smithy.api#httpHeader"), value="x-config-version"),
1709
1735
 
@@ -1712,7 +1738,7 @@ GET_CONFIG_OUTPUT = Schema.collection(
1712
1738
 
1713
1739
  "last_modified": {
1714
1740
  "target": DATE_TIME,
1715
- "index": 4,
1741
+ "index": 5,
1716
1742
  "traits": [
1717
1743
  Trait.new(id=ShapeID("smithy.api#httpHeader"), value="last-modified"),
1718
1744
 
@@ -1721,7 +1747,7 @@ GET_CONFIG_OUTPUT = Schema.collection(
1721
1747
 
1722
1748
  "audit_id": {
1723
1749
  "target": STRING,
1724
- "index": 5,
1750
+ "index": 6,
1725
1751
  "traits": [
1726
1752
  Trait.new(id=ShapeID("smithy.api#httpHeader"), value="x-audit-id"),
1727
1753
  Trait.new(id=ShapeID("smithy.api#notProperty")),
@@ -2680,6 +2706,31 @@ GET_CONTEXT_FROM_CONDITION = Schema(
2680
2706
 
2681
2707
  )
2682
2708
 
2709
+ DIMENSION_MATCH_STRATEGY = Schema.collection(
2710
+ id=ShapeID("io.superposition#DimensionMatchStrategy"),
2711
+ shape_type=ShapeType.ENUM,
2712
+ members={
2713
+ "Exact": {
2714
+ "target": UNIT,
2715
+ "index": 0,
2716
+ "traits": [
2717
+ Trait.new(id=ShapeID("smithy.api#enumValue"), value="exact"),
2718
+
2719
+ ],
2720
+ },
2721
+
2722
+ "Subset": {
2723
+ "target": UNIT,
2724
+ "index": 1,
2725
+ "traits": [
2726
+ Trait.new(id=ShapeID("smithy.api#enumValue"), value="subset"),
2727
+
2728
+ ],
2729
+ },
2730
+
2731
+ }
2732
+ )
2733
+
2683
2734
  SORT_BY = Schema.collection(
2684
2735
  id=ShapeID("io.superposition#SortBy"),
2685
2736
  shape_type=ShapeType.ENUM,
@@ -2788,9 +2839,19 @@ LIST_CONTEXTS_INPUT = Schema.collection(
2788
2839
  ],
2789
2840
  },
2790
2841
 
2842
+ "all": {
2843
+ "target": BOOLEAN,
2844
+ "index": 4,
2845
+ "traits": [
2846
+ Trait.new(id=ShapeID("smithy.api#notProperty")),
2847
+ Trait.new(id=ShapeID("smithy.api#httpQuery"), value="all"),
2848
+
2849
+ ],
2850
+ },
2851
+
2791
2852
  "prefix": {
2792
2853
  "target": STRING,
2793
- "index": 4,
2854
+ "index": 5,
2794
2855
  "traits": [
2795
2856
  Trait.new(id=ShapeID("smithy.api#notProperty")),
2796
2857
  Trait.new(id=ShapeID("smithy.api#httpQuery"), value="prefix"),
@@ -2800,7 +2861,7 @@ LIST_CONTEXTS_INPUT = Schema.collection(
2800
2861
 
2801
2862
  "sort_on": {
2802
2863
  "target": CONTEXT_FILTER_SORT_ON,
2803
- "index": 5,
2864
+ "index": 6,
2804
2865
  "traits": [
2805
2866
  Trait.new(id=ShapeID("smithy.api#notProperty")),
2806
2867
  Trait.new(id=ShapeID("smithy.api#httpQuery"), value="sort_on"),
@@ -2810,7 +2871,7 @@ LIST_CONTEXTS_INPUT = Schema.collection(
2810
2871
 
2811
2872
  "sort_by": {
2812
2873
  "target": SORT_BY,
2813
- "index": 6,
2874
+ "index": 7,
2814
2875
  "traits": [
2815
2876
  Trait.new(id=ShapeID("smithy.api#notProperty")),
2816
2877
  Trait.new(id=ShapeID("smithy.api#httpQuery"), value="sort_by"),
@@ -2820,7 +2881,7 @@ LIST_CONTEXTS_INPUT = Schema.collection(
2820
2881
 
2821
2882
  "created_by": {
2822
2883
  "target": STRING,
2823
- "index": 7,
2884
+ "index": 8,
2824
2885
  "traits": [
2825
2886
  Trait.new(id=ShapeID("smithy.api#notProperty")),
2826
2887
  Trait.new(id=ShapeID("smithy.api#httpQuery"), value="created_by"),
@@ -2830,7 +2891,7 @@ LIST_CONTEXTS_INPUT = Schema.collection(
2830
2891
 
2831
2892
  "last_modified_by": {
2832
2893
  "target": STRING,
2833
- "index": 8,
2894
+ "index": 9,
2834
2895
  "traits": [
2835
2896
  Trait.new(id=ShapeID("smithy.api#notProperty")),
2836
2897
  Trait.new(id=ShapeID("smithy.api#httpQuery"), value="last_modified_by"),
@@ -2840,7 +2901,7 @@ LIST_CONTEXTS_INPUT = Schema.collection(
2840
2901
 
2841
2902
  "plaintext": {
2842
2903
  "target": STRING,
2843
- "index": 9,
2904
+ "index": 10,
2844
2905
  "traits": [
2845
2906
  Trait.new(id=ShapeID("smithy.api#notProperty")),
2846
2907
  Trait.new(id=ShapeID("smithy.api#httpQuery"), value="plaintext"),
@@ -2848,6 +2909,16 @@ LIST_CONTEXTS_INPUT = Schema.collection(
2848
2909
  ],
2849
2910
  },
2850
2911
 
2912
+ "dimension_match_strategy": {
2913
+ "target": DIMENSION_MATCH_STRATEGY,
2914
+ "index": 11,
2915
+ "traits": [
2916
+ Trait.new(id=ShapeID("smithy.api#notProperty")),
2917
+ Trait.new(id=ShapeID("smithy.api#httpQuery"), value="dimension_match_strategy"),
2918
+
2919
+ ],
2920
+ },
2921
+
2851
2922
  }
2852
2923
  )
2853
2924
 
@@ -3519,15 +3590,25 @@ CREATE_DEFAULT_CONFIG = Schema(
3519
3590
 
3520
3591
  )
3521
3592
 
3522
- DEPENDENCIES = Schema.collection(
3523
- id=ShapeID("io.superposition#Dependencies"),
3524
- shape_type=ShapeType.LIST,
3593
+ DIMENSION_TYPE = Schema.collection(
3594
+ id=ShapeID("io.superposition#DimensionType"),
3595
+ shape_type=ShapeType.UNION,
3525
3596
  members={
3526
- "member": {
3527
- "target": STRING,
3597
+ "REGULAR": {
3598
+ "target": UNIT,
3528
3599
  "index": 0,
3529
3600
  },
3530
3601
 
3602
+ "LOCAL_COHORT": {
3603
+ "target": STRING,
3604
+ "index": 1,
3605
+ },
3606
+
3607
+ "REMOTE_COHORT": {
3608
+ "target": STRING,
3609
+ "index": 2,
3610
+ },
3611
+
3531
3612
  }
3532
3613
  )
3533
3614
 
@@ -3592,14 +3673,9 @@ CREATE_DIMENSION_INPUT = Schema.collection(
3592
3673
  "index": 5,
3593
3674
  },
3594
3675
 
3595
- "dependencies": {
3596
- "target": DEPENDENCIES,
3597
- "index": 6,
3598
- },
3599
-
3600
3676
  "description": {
3601
3677
  "target": STRING,
3602
- "index": 7,
3678
+ "index": 6,
3603
3679
  "traits": [
3604
3680
  Trait.new(id=ShapeID("smithy.api#required")),
3605
3681
 
@@ -3608,28 +3684,21 @@ CREATE_DIMENSION_INPUT = Schema.collection(
3608
3684
 
3609
3685
  "change_reason": {
3610
3686
  "target": STRING,
3611
- "index": 8,
3687
+ "index": 7,
3612
3688
  "traits": [
3613
3689
  Trait.new(id=ShapeID("smithy.api#required")),
3614
3690
 
3615
3691
  ],
3616
3692
  },
3617
3693
 
3618
- "autocomplete_function_name": {
3619
- "target": STRING,
3620
- "index": 9,
3694
+ "dimension_type": {
3695
+ "target": DIMENSION_TYPE,
3696
+ "index": 8,
3621
3697
  },
3622
3698
 
3623
- }
3624
- )
3625
-
3626
- DEPENDENTS = Schema.collection(
3627
- id=ShapeID("io.superposition#Dependents"),
3628
- shape_type=ShapeType.LIST,
3629
- members={
3630
- "member": {
3699
+ "autocomplete_function_name": {
3631
3700
  "target": STRING,
3632
- "index": 0,
3701
+ "index": 9,
3633
3702
  },
3634
3703
 
3635
3704
  }
@@ -3730,8 +3799,8 @@ CREATE_DIMENSION_OUTPUT = Schema.collection(
3730
3799
  ],
3731
3800
  },
3732
3801
 
3733
- "dependencies": {
3734
- "target": DEPENDENCIES,
3802
+ "dependency_graph": {
3803
+ "target": OBJECT,
3735
3804
  "index": 10,
3736
3805
  "traits": [
3737
3806
  Trait.new(id=ShapeID("smithy.api#required")),
@@ -3739,8 +3808,8 @@ CREATE_DIMENSION_OUTPUT = Schema.collection(
3739
3808
  ],
3740
3809
  },
3741
3810
 
3742
- "dependents": {
3743
- "target": DEPENDENTS,
3811
+ "dimension_type": {
3812
+ "target": DIMENSION_TYPE,
3744
3813
  "index": 11,
3745
3814
  "traits": [
3746
3815
  Trait.new(id=ShapeID("smithy.api#required")),
@@ -3748,23 +3817,14 @@ CREATE_DIMENSION_OUTPUT = Schema.collection(
3748
3817
  ],
3749
3818
  },
3750
3819
 
3751
- "dependency_graph": {
3752
- "target": OBJECT,
3753
- "index": 12,
3754
- "traits": [
3755
- Trait.new(id=ShapeID("smithy.api#required")),
3756
-
3757
- ],
3758
- },
3759
-
3760
3820
  "autocomplete_function_name": {
3761
3821
  "target": STRING,
3762
- "index": 13,
3822
+ "index": 12,
3763
3823
  },
3764
3824
 
3765
3825
  "mandatory": {
3766
3826
  "target": BOOLEAN,
3767
- "index": 14,
3827
+ "index": 13,
3768
3828
  "traits": [
3769
3829
  Trait.new(id=ShapeID("smithy.api#notProperty")),
3770
3830
 
@@ -6635,8 +6695,8 @@ GET_DIMENSION_OUTPUT = Schema.collection(
6635
6695
  ],
6636
6696
  },
6637
6697
 
6638
- "dependencies": {
6639
- "target": DEPENDENCIES,
6698
+ "dependency_graph": {
6699
+ "target": OBJECT,
6640
6700
  "index": 10,
6641
6701
  "traits": [
6642
6702
  Trait.new(id=ShapeID("smithy.api#required")),
@@ -6644,8 +6704,8 @@ GET_DIMENSION_OUTPUT = Schema.collection(
6644
6704
  ],
6645
6705
  },
6646
6706
 
6647
- "dependents": {
6648
- "target": DEPENDENTS,
6707
+ "dimension_type": {
6708
+ "target": DIMENSION_TYPE,
6649
6709
  "index": 11,
6650
6710
  "traits": [
6651
6711
  Trait.new(id=ShapeID("smithy.api#required")),
@@ -6653,23 +6713,14 @@ GET_DIMENSION_OUTPUT = Schema.collection(
6653
6713
  ],
6654
6714
  },
6655
6715
 
6656
- "dependency_graph": {
6657
- "target": OBJECT,
6658
- "index": 12,
6659
- "traits": [
6660
- Trait.new(id=ShapeID("smithy.api#required")),
6661
-
6662
- ],
6663
- },
6664
-
6665
6716
  "autocomplete_function_name": {
6666
6717
  "target": STRING,
6667
- "index": 13,
6718
+ "index": 12,
6668
6719
  },
6669
6720
 
6670
6721
  "mandatory": {
6671
6722
  "target": BOOLEAN,
6672
- "index": 14,
6723
+ "index": 13,
6673
6724
  "traits": [
6674
6725
  Trait.new(id=ShapeID("smithy.api#notProperty")),
6675
6726
 
@@ -6841,8 +6892,8 @@ DIMENSION_EXT = Schema.collection(
6841
6892
  ],
6842
6893
  },
6843
6894
 
6844
- "dependencies": {
6845
- "target": DEPENDENCIES,
6895
+ "dependency_graph": {
6896
+ "target": OBJECT,
6846
6897
  "index": 10,
6847
6898
  "traits": [
6848
6899
  Trait.new(id=ShapeID("smithy.api#required")),
@@ -6850,8 +6901,8 @@ DIMENSION_EXT = Schema.collection(
6850
6901
  ],
6851
6902
  },
6852
6903
 
6853
- "dependents": {
6854
- "target": DEPENDENTS,
6904
+ "dimension_type": {
6905
+ "target": DIMENSION_TYPE,
6855
6906
  "index": 11,
6856
6907
  "traits": [
6857
6908
  Trait.new(id=ShapeID("smithy.api#required")),
@@ -6859,23 +6910,14 @@ DIMENSION_EXT = Schema.collection(
6859
6910
  ],
6860
6911
  },
6861
6912
 
6862
- "dependency_graph": {
6863
- "target": OBJECT,
6864
- "index": 12,
6865
- "traits": [
6866
- Trait.new(id=ShapeID("smithy.api#required")),
6867
-
6868
- ],
6869
- },
6870
-
6871
6913
  "autocomplete_function_name": {
6872
6914
  "target": STRING,
6873
- "index": 13,
6915
+ "index": 12,
6874
6916
  },
6875
6917
 
6876
6918
  "mandatory": {
6877
6919
  "target": BOOLEAN,
6878
- "index": 14,
6920
+ "index": 13,
6879
6921
  "traits": [
6880
6922
  Trait.new(id=ShapeID("smithy.api#notProperty")),
6881
6923
 
@@ -6996,14 +7038,9 @@ UPDATE_DIMENSION_INPUT = Schema.collection(
6996
7038
  "index": 6,
6997
7039
  },
6998
7040
 
6999
- "dependencies": {
7000
- "target": DEPENDENCIES,
7001
- "index": 7,
7002
- },
7003
-
7004
7041
  "change_reason": {
7005
7042
  "target": STRING,
7006
- "index": 8,
7043
+ "index": 7,
7007
7044
  "traits": [
7008
7045
  Trait.new(id=ShapeID("smithy.api#required")),
7009
7046
 
@@ -7012,7 +7049,7 @@ UPDATE_DIMENSION_INPUT = Schema.collection(
7012
7049
 
7013
7050
  "autocomplete_function_name": {
7014
7051
  "target": STRING,
7015
- "index": 9,
7052
+ "index": 8,
7016
7053
  },
7017
7054
 
7018
7055
  }
@@ -7113,8 +7150,8 @@ UPDATE_DIMENSION_OUTPUT = Schema.collection(
7113
7150
  ],
7114
7151
  },
7115
7152
 
7116
- "dependencies": {
7117
- "target": DEPENDENCIES,
7153
+ "dependency_graph": {
7154
+ "target": OBJECT,
7118
7155
  "index": 10,
7119
7156
  "traits": [
7120
7157
  Trait.new(id=ShapeID("smithy.api#required")),
@@ -7122,8 +7159,8 @@ UPDATE_DIMENSION_OUTPUT = Schema.collection(
7122
7159
  ],
7123
7160
  },
7124
7161
 
7125
- "dependents": {
7126
- "target": DEPENDENTS,
7162
+ "dimension_type": {
7163
+ "target": DIMENSION_TYPE,
7127
7164
  "index": 11,
7128
7165
  "traits": [
7129
7166
  Trait.new(id=ShapeID("smithy.api#required")),
@@ -7131,23 +7168,14 @@ UPDATE_DIMENSION_OUTPUT = Schema.collection(
7131
7168
  ],
7132
7169
  },
7133
7170
 
7134
- "dependency_graph": {
7135
- "target": OBJECT,
7136
- "index": 12,
7137
- "traits": [
7138
- Trait.new(id=ShapeID("smithy.api#required")),
7139
-
7140
- ],
7141
- },
7142
-
7143
7171
  "autocomplete_function_name": {
7144
7172
  "target": STRING,
7145
- "index": 13,
7173
+ "index": 12,
7146
7174
  },
7147
7175
 
7148
7176
  "mandatory": {
7149
7177
  "target": BOOLEAN,
7150
- "index": 14,
7178
+ "index": 13,
7151
7179
  "traits": [
7152
7180
  Trait.new(id=ShapeID("smithy.api#notProperty")),
7153
7181
 
@@ -8981,6 +9009,16 @@ LIST_EXPERIMENT_INPUT = Schema.collection(
8981
9009
  ],
8982
9010
  },
8983
9011
 
9012
+ "dimension_match_strategy": {
9013
+ "target": DIMENSION_MATCH_STRATEGY,
9014
+ "index": 15,
9015
+ "traits": [
9016
+ Trait.new(id=ShapeID("smithy.api#notProperty")),
9017
+ Trait.new(id=ShapeID("smithy.api#httpQuery"), value="dimension_match_strategy"),
9018
+
9019
+ ],
9020
+ },
9021
+
8984
9022
  }
8985
9023
  )
8986
9024
 
@@ -1060,7 +1060,7 @@ class Superposition:
1060
1060
  async def get_dimension(self, input: GetDimensionInput, plugins: list[Plugin] | None = None) -> GetDimensionOutput:
1061
1061
  """
1062
1062
  Retrieves detailed information about a specific dimension, including its schema,
1063
- dependencies, and configuration metadata.
1063
+ cohort dependency graph, and configuration metadata.
1064
1064
 
1065
1065
  :param input: The operation's input.
1066
1066
 
@@ -9,6 +9,7 @@ from typing import Any, ClassVar, Literal, Self, Union
9
9
  from smithy_core.deserializers import ShapeDeserializer
10
10
  from smithy_core.documents import Document, TypeRegistry
11
11
  from smithy_core.exceptions import SmithyException
12
+ from smithy_core.prelude import UNIT as _SCHEMA_UNIT
12
13
  from smithy_core.schemas import APIOperation, Schema
13
14
  from smithy_core.serializers import ShapeSerializer
14
15
  from smithy_core.shapes import ShapeID
@@ -88,6 +89,7 @@ from ._private.schemas import (
88
89
  DELETE_TYPE_TEMPLATES_INPUT as _SCHEMA_DELETE_TYPE_TEMPLATES_INPUT,
89
90
  DELETE_TYPE_TEMPLATES_OUTPUT as _SCHEMA_DELETE_TYPE_TEMPLATES_OUTPUT,
90
91
  DIMENSION_EXT as _SCHEMA_DIMENSION_EXT,
92
+ DIMENSION_TYPE as _SCHEMA_DIMENSION_TYPE,
91
93
  DISCARD_EXPERIMENT as _SCHEMA_DISCARD_EXPERIMENT,
92
94
  DISCARD_EXPERIMENT_INPUT as _SCHEMA_DISCARD_EXPERIMENT_INPUT,
93
95
  DISCARD_EXPERIMENT_OUTPUT as _SCHEMA_DISCARD_EXPERIMENT_OUTPUT,
@@ -2325,6 +2327,24 @@ def _deserialize_object(deserializer: ShapeDeserializer, schema: Schema) -> dict
2325
2327
  deserializer.read_map(schema, _read_value)
2326
2328
  return result
2327
2329
 
2330
+ def _serialize_dimension_data(serializer: ShapeSerializer, schema: Schema, value: dict[str, Document]) -> None:
2331
+ with serializer.begin_map(schema, len(value)) as m:
2332
+ value_schema = schema.members["value"]
2333
+ for k, v in value.items():
2334
+ m.entry(k, lambda vs: vs.write_document(value_schema, v))
2335
+
2336
+ def _deserialize_dimension_data(deserializer: ShapeDeserializer, schema: Schema) -> dict[str, Document]:
2337
+ result: dict[str, Document] = {}
2338
+ value_schema = schema.members["value"]
2339
+ def _read_value(k: str, d: ShapeDeserializer):
2340
+ if d.is_null():
2341
+ d.read_null()
2342
+
2343
+ else:
2344
+ result[k] = d.read_document(value_schema)
2345
+ deserializer.read_map(schema, _read_value)
2346
+ return result
2347
+
2328
2348
  def _serialize_overrides_map(serializer: ShapeSerializer, schema: Schema, value: dict[str, dict[str, Document]]) -> None:
2329
2349
  with serializer.begin_map(schema, len(value)) as m:
2330
2350
  value_schema = schema.members["value"]
@@ -2356,6 +2376,7 @@ class GetConfigOutput:
2356
2376
  contexts: list[ContextPartial] | None = None
2357
2377
  overrides: dict[str, dict[str, Document]] | None = None
2358
2378
  default_configs: dict[str, Document] | None = None
2379
+ dimensions: dict[str, Document] | None = None
2359
2380
  version: str | None = None
2360
2381
  last_modified: datetime | None = None
2361
2382
  audit_id: str | None = None
@@ -2373,6 +2394,9 @@ class GetConfigOutput:
2373
2394
  if self.default_configs is not None:
2374
2395
  _serialize_object(serializer, _SCHEMA_GET_CONFIG_OUTPUT.members["default_configs"], self.default_configs)
2375
2396
 
2397
+ if self.dimensions is not None:
2398
+ _serialize_dimension_data(serializer, _SCHEMA_GET_CONFIG_OUTPUT.members["dimensions"], self.dimensions)
2399
+
2376
2400
  @classmethod
2377
2401
  def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
2378
2402
  return cls(**cls.deserialize_kwargs(deserializer))
@@ -2393,12 +2417,15 @@ class GetConfigOutput:
2393
2417
  kwargs["default_configs"] = _deserialize_object(de, _SCHEMA_GET_CONFIG_OUTPUT.members["default_configs"])
2394
2418
 
2395
2419
  case 3:
2396
- kwargs["version"] = de.read_string(_SCHEMA_GET_CONFIG_OUTPUT.members["version"])
2420
+ kwargs["dimensions"] = _deserialize_dimension_data(de, _SCHEMA_GET_CONFIG_OUTPUT.members["dimensions"])
2397
2421
 
2398
2422
  case 4:
2399
- kwargs["last_modified"] = de.read_timestamp(_SCHEMA_GET_CONFIG_OUTPUT.members["last_modified"])
2423
+ kwargs["version"] = de.read_string(_SCHEMA_GET_CONFIG_OUTPUT.members["version"])
2400
2424
 
2401
2425
  case 5:
2426
+ kwargs["last_modified"] = de.read_timestamp(_SCHEMA_GET_CONFIG_OUTPUT.members["last_modified"])
2427
+
2428
+ case 6:
2402
2429
  kwargs["audit_id"] = de.read_string(_SCHEMA_GET_CONFIG_OUTPUT.members["audit_id"])
2403
2430
 
2404
2431
  case _:
@@ -3436,6 +3463,22 @@ ShapeID("io.superposition#InternalServerError"): InternalServerError,
3436
3463
  ]
3437
3464
  )
3438
3465
 
3466
+ class DimensionMatchStrategy(StrEnum):
3467
+ """
3468
+ Strategy to follow while filter items based on the context
3469
+
3470
+ """
3471
+ EXACT = "exact"
3472
+ """
3473
+ Match the overrides which have the exact context
3474
+
3475
+ """
3476
+ SUBSET = "subset"
3477
+ """
3478
+ Match the overrides which have the given context as subset
3479
+
3480
+ """
3481
+
3439
3482
  class SortBy(StrEnum):
3440
3483
  """
3441
3484
  Sort order enumeration for list operations.
@@ -3464,18 +3507,23 @@ class ListContextsInput:
3464
3507
  :param sort_by:
3465
3508
  Sort order enumeration for list operations.
3466
3509
 
3510
+ :param dimension_match_strategy:
3511
+ Strategy to follow while filter items based on the context
3512
+
3467
3513
  """
3468
3514
 
3469
3515
  workspace_id: str | None = None
3470
3516
  org_id: str = "juspay"
3471
3517
  page: int | None = None
3472
3518
  count: int | None = None
3519
+ all: bool | None = None
3473
3520
  prefix: str | None = None
3474
3521
  sort_on: str | None = None
3475
3522
  sort_by: str | None = None
3476
3523
  created_by: str | None = None
3477
3524
  last_modified_by: str | None = None
3478
3525
  plaintext: str | None = None
3526
+ dimension_match_strategy: str | None = None
3479
3527
 
3480
3528
  def serialize(self, serializer: ShapeSerializer):
3481
3529
  serializer.write_struct(_SCHEMA_LIST_CONTEXTS_INPUT, self)
@@ -3506,23 +3554,29 @@ class ListContextsInput:
3506
3554
  kwargs["count"] = de.read_integer(_SCHEMA_LIST_CONTEXTS_INPUT.members["count"])
3507
3555
 
3508
3556
  case 4:
3509
- kwargs["prefix"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["prefix"])
3557
+ kwargs["all"] = de.read_boolean(_SCHEMA_LIST_CONTEXTS_INPUT.members["all"])
3510
3558
 
3511
3559
  case 5:
3512
- kwargs["sort_on"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["sort_on"])
3560
+ kwargs["prefix"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["prefix"])
3513
3561
 
3514
3562
  case 6:
3515
- kwargs["sort_by"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["sort_by"])
3563
+ kwargs["sort_on"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["sort_on"])
3516
3564
 
3517
3565
  case 7:
3518
- kwargs["created_by"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["created_by"])
3566
+ kwargs["sort_by"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["sort_by"])
3519
3567
 
3520
3568
  case 8:
3521
- kwargs["last_modified_by"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["last_modified_by"])
3569
+ kwargs["created_by"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["created_by"])
3522
3570
 
3523
3571
  case 9:
3572
+ kwargs["last_modified_by"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["last_modified_by"])
3573
+
3574
+ case 10:
3524
3575
  kwargs["plaintext"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["plaintext"])
3525
3576
 
3577
+ case 11:
3578
+ kwargs["dimension_match_strategy"] = de.read_string(_SCHEMA_LIST_CONTEXTS_INPUT.members["dimension_match_strategy"])
3579
+
3526
3580
  case _:
3527
3581
  logger.debug("Unexpected member schema: %s", schema)
3528
3582
 
@@ -4338,23 +4392,131 @@ CREATE_DEFAULT_CONFIG = APIOperation(
4338
4392
  ]
4339
4393
  )
4340
4394
 
4341
- def _serialize_dependencies(serializer: ShapeSerializer, schema: Schema, value: list[str]) -> None:
4342
- member_schema = schema.members["member"]
4343
- with serializer.begin_list(schema, len(value)) as ls:
4344
- for e in value:
4345
- ls.write_string(member_schema, e)
4395
+ @dataclass(kw_only=True)
4396
+ class Unit:
4346
4397
 
4347
- def _deserialize_dependencies(deserializer: ShapeDeserializer, schema: Schema) -> list[str]:
4348
- result: list[str] = []
4349
- member_schema = schema.members["member"]
4350
- def _read_value(d: ShapeDeserializer):
4351
- if d.is_null():
4352
- d.read_null()
4398
+ def serialize(self, serializer: ShapeSerializer):
4399
+ serializer.write_struct(_SCHEMA_UNIT, self)
4353
4400
 
4354
- else:
4355
- result.append(d.read_string(member_schema))
4356
- deserializer.read_list(schema, _read_value)
4357
- return result
4401
+ def serialize_members(self, serializer: ShapeSerializer):
4402
+ pass
4403
+
4404
+ @classmethod
4405
+ def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
4406
+ return cls(**cls.deserialize_kwargs(deserializer))
4407
+
4408
+ @classmethod
4409
+ def deserialize_kwargs(cls, deserializer: ShapeDeserializer) -> dict[str, Any]:
4410
+ kwargs: dict[str, Any] = {}
4411
+
4412
+ def _consumer(schema: Schema, de: ShapeDeserializer) -> None:
4413
+ match schema.expect_member_index():
4414
+
4415
+ case _:
4416
+ logger.debug("Unexpected member schema: %s", schema)
4417
+
4418
+ deserializer.read_struct(_SCHEMA_UNIT, consumer=_consumer)
4419
+ return kwargs
4420
+
4421
+ @dataclass
4422
+ class DimensionTypeREGULAR:
4423
+
4424
+ value: Unit
4425
+
4426
+ def serialize(self, serializer: ShapeSerializer):
4427
+ serializer.write_struct(_SCHEMA_DIMENSION_TYPE, self)
4428
+
4429
+ def serialize_members(self, serializer: ShapeSerializer):
4430
+ serializer.write_struct(_SCHEMA_DIMENSION_TYPE.members["REGULAR"], self.value)
4431
+
4432
+ @classmethod
4433
+ def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
4434
+ return cls(value=Unit.deserialize(deserializer))
4435
+
4436
+ @dataclass
4437
+ class DimensionTypeLOCAL_COHORT:
4438
+
4439
+ value: str
4440
+
4441
+ def serialize(self, serializer: ShapeSerializer):
4442
+ serializer.write_struct(_SCHEMA_DIMENSION_TYPE, self)
4443
+
4444
+ def serialize_members(self, serializer: ShapeSerializer):
4445
+ serializer.write_string(_SCHEMA_DIMENSION_TYPE.members["LOCAL_COHORT"], self.value)
4446
+
4447
+ @classmethod
4448
+ def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
4449
+ return cls(value=deserializer.read_string(_SCHEMA_DIMENSION_TYPE.members["LOCAL_COHORT"]))
4450
+
4451
+ @dataclass
4452
+ class DimensionTypeREMOTE_COHORT:
4453
+
4454
+ value: str
4455
+
4456
+ def serialize(self, serializer: ShapeSerializer):
4457
+ serializer.write_struct(_SCHEMA_DIMENSION_TYPE, self)
4458
+
4459
+ def serialize_members(self, serializer: ShapeSerializer):
4460
+ serializer.write_string(_SCHEMA_DIMENSION_TYPE.members["REMOTE_COHORT"], self.value)
4461
+
4462
+ @classmethod
4463
+ def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
4464
+ return cls(value=deserializer.read_string(_SCHEMA_DIMENSION_TYPE.members["REMOTE_COHORT"]))
4465
+
4466
+ @dataclass
4467
+ class DimensionTypeUnknown:
4468
+ """Represents an unknown variant.
4469
+
4470
+ If you receive this value, you will need to update your library to receive the
4471
+ parsed value.
4472
+
4473
+ This value may not be deliberately sent.
4474
+ """
4475
+
4476
+ tag: str
4477
+
4478
+ def serialize(self, serializer: ShapeSerializer):
4479
+ raise SmithyException("Unknown union variants may not be serialized.")
4480
+
4481
+ def serialize_members(self, serializer: ShapeSerializer):
4482
+ raise SmithyException("Unknown union variants may not be serialized.")
4483
+
4484
+ @classmethod
4485
+ def deserialize(cls, deserializer: ShapeDeserializer) -> Self:
4486
+ raise NotImplementedError()
4487
+
4488
+ DimensionType = Union[DimensionTypeREGULAR | DimensionTypeLOCAL_COHORT | DimensionTypeREMOTE_COHORT | DimensionTypeUnknown]
4489
+
4490
+ class _DimensionTypeDeserializer:
4491
+ _result: DimensionType | None = None
4492
+
4493
+ def deserialize(self, deserializer: ShapeDeserializer) -> DimensionType:
4494
+ self._result = None
4495
+ deserializer.read_struct(_SCHEMA_DIMENSION_TYPE, self._consumer)
4496
+
4497
+ if self._result is None:
4498
+ raise SmithyException("Unions must have exactly one value, but found none.")
4499
+
4500
+ return self._result
4501
+
4502
+ def _consumer(self, schema: Schema, de: ShapeDeserializer) -> None:
4503
+ match schema.expect_member_index():
4504
+ case 0:
4505
+ self._set_result(DimensionTypeREGULAR.deserialize(de))
4506
+
4507
+ case 1:
4508
+ self._set_result(DimensionTypeLOCAL_COHORT.deserialize(de))
4509
+
4510
+ case 2:
4511
+ self._set_result(DimensionTypeREMOTE_COHORT.deserialize(de))
4512
+
4513
+ case _:
4514
+ logger.debug("Unexpected member schema: %s", schema)
4515
+
4516
+ def _set_result(self, value: DimensionType) -> None:
4517
+ if self._result is not None:
4518
+ raise SmithyException("Unions must have exactly one value, but found more than one.")
4519
+ self._result = value
4358
4520
 
4359
4521
  @dataclass(kw_only=True)
4360
4522
  class CreateDimensionInput:
@@ -4365,9 +4527,9 @@ class CreateDimensionInput:
4365
4527
  position: int | None = None
4366
4528
  schema: Document | None = None
4367
4529
  function_name: str | None = None
4368
- dependencies: list[str] | None = None
4369
4530
  description: str | None = None
4370
4531
  change_reason: str | None = None
4532
+ dimension_type: DimensionType | None = None
4371
4533
  autocomplete_function_name: str | None = None
4372
4534
 
4373
4535
  def serialize(self, serializer: ShapeSerializer):
@@ -4386,15 +4548,15 @@ class CreateDimensionInput:
4386
4548
  if self.function_name is not None:
4387
4549
  serializer.write_string(_SCHEMA_CREATE_DIMENSION_INPUT.members["function_name"], self.function_name)
4388
4550
 
4389
- if self.dependencies is not None:
4390
- _serialize_dependencies(serializer, _SCHEMA_CREATE_DIMENSION_INPUT.members["dependencies"], self.dependencies)
4391
-
4392
4551
  if self.description is not None:
4393
4552
  serializer.write_string(_SCHEMA_CREATE_DIMENSION_INPUT.members["description"], self.description)
4394
4553
 
4395
4554
  if self.change_reason is not None:
4396
4555
  serializer.write_string(_SCHEMA_CREATE_DIMENSION_INPUT.members["change_reason"], self.change_reason)
4397
4556
 
4557
+ if self.dimension_type is not None:
4558
+ serializer.write_struct(_SCHEMA_CREATE_DIMENSION_INPUT.members["dimension_type"], self.dimension_type)
4559
+
4398
4560
  if self.autocomplete_function_name is not None:
4399
4561
  serializer.write_string(_SCHEMA_CREATE_DIMENSION_INPUT.members["autocomplete_function_name"], self.autocomplete_function_name)
4400
4562
 
@@ -4427,13 +4589,13 @@ class CreateDimensionInput:
4427
4589
  kwargs["function_name"] = de.read_string(_SCHEMA_CREATE_DIMENSION_INPUT.members["function_name"])
4428
4590
 
4429
4591
  case 6:
4430
- kwargs["dependencies"] = _deserialize_dependencies(de, _SCHEMA_CREATE_DIMENSION_INPUT.members["dependencies"])
4592
+ kwargs["description"] = de.read_string(_SCHEMA_CREATE_DIMENSION_INPUT.members["description"])
4431
4593
 
4432
4594
  case 7:
4433
- kwargs["description"] = de.read_string(_SCHEMA_CREATE_DIMENSION_INPUT.members["description"])
4595
+ kwargs["change_reason"] = de.read_string(_SCHEMA_CREATE_DIMENSION_INPUT.members["change_reason"])
4434
4596
 
4435
4597
  case 8:
4436
- kwargs["change_reason"] = de.read_string(_SCHEMA_CREATE_DIMENSION_INPUT.members["change_reason"])
4598
+ kwargs["dimension_type"] = _DimensionTypeDeserializer().deserialize(de)
4437
4599
 
4438
4600
  case 9:
4439
4601
  kwargs["autocomplete_function_name"] = de.read_string(_SCHEMA_CREATE_DIMENSION_INPUT.members["autocomplete_function_name"])
@@ -4444,24 +4606,6 @@ class CreateDimensionInput:
4444
4606
  deserializer.read_struct(_SCHEMA_CREATE_DIMENSION_INPUT, consumer=_consumer)
4445
4607
  return kwargs
4446
4608
 
4447
- def _serialize_dependents(serializer: ShapeSerializer, schema: Schema, value: list[str]) -> None:
4448
- member_schema = schema.members["member"]
4449
- with serializer.begin_list(schema, len(value)) as ls:
4450
- for e in value:
4451
- ls.write_string(member_schema, e)
4452
-
4453
- def _deserialize_dependents(deserializer: ShapeDeserializer, schema: Schema) -> list[str]:
4454
- result: list[str] = []
4455
- member_schema = schema.members["member"]
4456
- def _read_value(d: ShapeDeserializer):
4457
- if d.is_null():
4458
- d.read_null()
4459
-
4460
- else:
4461
- result.append(d.read_string(member_schema))
4462
- deserializer.read_list(schema, _read_value)
4463
- return result
4464
-
4465
4609
  @dataclass(kw_only=True)
4466
4610
  class CreateDimensionOutput:
4467
4611
  """
@@ -4490,12 +4634,10 @@ class CreateDimensionOutput:
4490
4634
 
4491
4635
  created_by: str
4492
4636
 
4493
- dependencies: list[str]
4494
-
4495
- dependents: list[str]
4496
-
4497
4637
  dependency_graph: dict[str, Document]
4498
4638
 
4639
+ dimension_type: DimensionType
4640
+
4499
4641
  function_name: str | None = None
4500
4642
  autocomplete_function_name: str | None = None
4501
4643
  mandatory: bool | None = None
@@ -4516,9 +4658,8 @@ class CreateDimensionOutput:
4516
4658
  serializer.write_string(_SCHEMA_CREATE_DIMENSION_OUTPUT.members["last_modified_by"], self.last_modified_by)
4517
4659
  serializer.write_timestamp(_SCHEMA_CREATE_DIMENSION_OUTPUT.members["created_at"], self.created_at)
4518
4660
  serializer.write_string(_SCHEMA_CREATE_DIMENSION_OUTPUT.members["created_by"], self.created_by)
4519
- _serialize_dependencies(serializer, _SCHEMA_CREATE_DIMENSION_OUTPUT.members["dependencies"], self.dependencies)
4520
- _serialize_dependents(serializer, _SCHEMA_CREATE_DIMENSION_OUTPUT.members["dependents"], self.dependents)
4521
4661
  _serialize_object(serializer, _SCHEMA_CREATE_DIMENSION_OUTPUT.members["dependency_graph"], self.dependency_graph)
4662
+ serializer.write_struct(_SCHEMA_CREATE_DIMENSION_OUTPUT.members["dimension_type"], self.dimension_type)
4522
4663
  if self.autocomplete_function_name is not None:
4523
4664
  serializer.write_string(_SCHEMA_CREATE_DIMENSION_OUTPUT.members["autocomplete_function_name"], self.autocomplete_function_name)
4524
4665
 
@@ -4566,18 +4707,15 @@ class CreateDimensionOutput:
4566
4707
  kwargs["created_by"] = de.read_string(_SCHEMA_CREATE_DIMENSION_OUTPUT.members["created_by"])
4567
4708
 
4568
4709
  case 10:
4569
- kwargs["dependencies"] = _deserialize_dependencies(de, _SCHEMA_CREATE_DIMENSION_OUTPUT.members["dependencies"])
4710
+ kwargs["dependency_graph"] = _deserialize_object(de, _SCHEMA_CREATE_DIMENSION_OUTPUT.members["dependency_graph"])
4570
4711
 
4571
4712
  case 11:
4572
- kwargs["dependents"] = _deserialize_dependents(de, _SCHEMA_CREATE_DIMENSION_OUTPUT.members["dependents"])
4713
+ kwargs["dimension_type"] = _DimensionTypeDeserializer().deserialize(de)
4573
4714
 
4574
4715
  case 12:
4575
- kwargs["dependency_graph"] = _deserialize_object(de, _SCHEMA_CREATE_DIMENSION_OUTPUT.members["dependency_graph"])
4576
-
4577
- case 13:
4578
4716
  kwargs["autocomplete_function_name"] = de.read_string(_SCHEMA_CREATE_DIMENSION_OUTPUT.members["autocomplete_function_name"])
4579
4717
 
4580
- case 14:
4718
+ case 13:
4581
4719
  kwargs["mandatory"] = de.read_boolean(_SCHEMA_CREATE_DIMENSION_OUTPUT.members["mandatory"])
4582
4720
 
4583
4721
  case _:
@@ -7200,12 +7338,10 @@ class GetDimensionOutput:
7200
7338
 
7201
7339
  created_by: str
7202
7340
 
7203
- dependencies: list[str]
7204
-
7205
- dependents: list[str]
7206
-
7207
7341
  dependency_graph: dict[str, Document]
7208
7342
 
7343
+ dimension_type: DimensionType
7344
+
7209
7345
  function_name: str | None = None
7210
7346
  autocomplete_function_name: str | None = None
7211
7347
  mandatory: bool | None = None
@@ -7226,9 +7362,8 @@ class GetDimensionOutput:
7226
7362
  serializer.write_string(_SCHEMA_GET_DIMENSION_OUTPUT.members["last_modified_by"], self.last_modified_by)
7227
7363
  serializer.write_timestamp(_SCHEMA_GET_DIMENSION_OUTPUT.members["created_at"], self.created_at)
7228
7364
  serializer.write_string(_SCHEMA_GET_DIMENSION_OUTPUT.members["created_by"], self.created_by)
7229
- _serialize_dependencies(serializer, _SCHEMA_GET_DIMENSION_OUTPUT.members["dependencies"], self.dependencies)
7230
- _serialize_dependents(serializer, _SCHEMA_GET_DIMENSION_OUTPUT.members["dependents"], self.dependents)
7231
7365
  _serialize_object(serializer, _SCHEMA_GET_DIMENSION_OUTPUT.members["dependency_graph"], self.dependency_graph)
7366
+ serializer.write_struct(_SCHEMA_GET_DIMENSION_OUTPUT.members["dimension_type"], self.dimension_type)
7232
7367
  if self.autocomplete_function_name is not None:
7233
7368
  serializer.write_string(_SCHEMA_GET_DIMENSION_OUTPUT.members["autocomplete_function_name"], self.autocomplete_function_name)
7234
7369
 
@@ -7276,18 +7411,15 @@ class GetDimensionOutput:
7276
7411
  kwargs["created_by"] = de.read_string(_SCHEMA_GET_DIMENSION_OUTPUT.members["created_by"])
7277
7412
 
7278
7413
  case 10:
7279
- kwargs["dependencies"] = _deserialize_dependencies(de, _SCHEMA_GET_DIMENSION_OUTPUT.members["dependencies"])
7414
+ kwargs["dependency_graph"] = _deserialize_object(de, _SCHEMA_GET_DIMENSION_OUTPUT.members["dependency_graph"])
7280
7415
 
7281
7416
  case 11:
7282
- kwargs["dependents"] = _deserialize_dependents(de, _SCHEMA_GET_DIMENSION_OUTPUT.members["dependents"])
7417
+ kwargs["dimension_type"] = _DimensionTypeDeserializer().deserialize(de)
7283
7418
 
7284
7419
  case 12:
7285
- kwargs["dependency_graph"] = _deserialize_object(de, _SCHEMA_GET_DIMENSION_OUTPUT.members["dependency_graph"])
7286
-
7287
- case 13:
7288
7420
  kwargs["autocomplete_function_name"] = de.read_string(_SCHEMA_GET_DIMENSION_OUTPUT.members["autocomplete_function_name"])
7289
7421
 
7290
- case 14:
7422
+ case 13:
7291
7423
  kwargs["mandatory"] = de.read_boolean(_SCHEMA_GET_DIMENSION_OUTPUT.members["mandatory"])
7292
7424
 
7293
7425
  case _:
@@ -7385,12 +7517,10 @@ class DimensionExt:
7385
7517
 
7386
7518
  created_by: str
7387
7519
 
7388
- dependencies: list[str]
7389
-
7390
- dependents: list[str]
7391
-
7392
7520
  dependency_graph: dict[str, Document]
7393
7521
 
7522
+ dimension_type: DimensionType
7523
+
7394
7524
  function_name: str | None = None
7395
7525
  autocomplete_function_name: str | None = None
7396
7526
  mandatory: bool | None = None
@@ -7411,9 +7541,8 @@ class DimensionExt:
7411
7541
  serializer.write_string(_SCHEMA_DIMENSION_EXT.members["last_modified_by"], self.last_modified_by)
7412
7542
  serializer.write_timestamp(_SCHEMA_DIMENSION_EXT.members["created_at"], self.created_at)
7413
7543
  serializer.write_string(_SCHEMA_DIMENSION_EXT.members["created_by"], self.created_by)
7414
- _serialize_dependencies(serializer, _SCHEMA_DIMENSION_EXT.members["dependencies"], self.dependencies)
7415
- _serialize_dependents(serializer, _SCHEMA_DIMENSION_EXT.members["dependents"], self.dependents)
7416
7544
  _serialize_object(serializer, _SCHEMA_DIMENSION_EXT.members["dependency_graph"], self.dependency_graph)
7545
+ serializer.write_struct(_SCHEMA_DIMENSION_EXT.members["dimension_type"], self.dimension_type)
7417
7546
  if self.autocomplete_function_name is not None:
7418
7547
  serializer.write_string(_SCHEMA_DIMENSION_EXT.members["autocomplete_function_name"], self.autocomplete_function_name)
7419
7548
 
@@ -7461,18 +7590,15 @@ class DimensionExt:
7461
7590
  kwargs["created_by"] = de.read_string(_SCHEMA_DIMENSION_EXT.members["created_by"])
7462
7591
 
7463
7592
  case 10:
7464
- kwargs["dependencies"] = _deserialize_dependencies(de, _SCHEMA_DIMENSION_EXT.members["dependencies"])
7593
+ kwargs["dependency_graph"] = _deserialize_object(de, _SCHEMA_DIMENSION_EXT.members["dependency_graph"])
7465
7594
 
7466
7595
  case 11:
7467
- kwargs["dependents"] = _deserialize_dependents(de, _SCHEMA_DIMENSION_EXT.members["dependents"])
7596
+ kwargs["dimension_type"] = _DimensionTypeDeserializer().deserialize(de)
7468
7597
 
7469
7598
  case 12:
7470
- kwargs["dependency_graph"] = _deserialize_object(de, _SCHEMA_DIMENSION_EXT.members["dependency_graph"])
7471
-
7472
- case 13:
7473
7599
  kwargs["autocomplete_function_name"] = de.read_string(_SCHEMA_DIMENSION_EXT.members["autocomplete_function_name"])
7474
7600
 
7475
- case 14:
7601
+ case 13:
7476
7602
  kwargs["mandatory"] = de.read_boolean(_SCHEMA_DIMENSION_EXT.members["mandatory"])
7477
7603
 
7478
7604
  case _:
@@ -7567,7 +7693,6 @@ class UpdateDimensionInput:
7567
7693
  position: int | None = None
7568
7694
  function_name: str | None = None
7569
7695
  description: str | None = None
7570
- dependencies: list[str] | None = None
7571
7696
  change_reason: str | None = None
7572
7697
  autocomplete_function_name: str | None = None
7573
7698
 
@@ -7587,9 +7712,6 @@ class UpdateDimensionInput:
7587
7712
  if self.description is not None:
7588
7713
  serializer.write_string(_SCHEMA_UPDATE_DIMENSION_INPUT.members["description"], self.description)
7589
7714
 
7590
- if self.dependencies is not None:
7591
- _serialize_dependencies(serializer, _SCHEMA_UPDATE_DIMENSION_INPUT.members["dependencies"], self.dependencies)
7592
-
7593
7715
  if self.change_reason is not None:
7594
7716
  serializer.write_string(_SCHEMA_UPDATE_DIMENSION_INPUT.members["change_reason"], self.change_reason)
7595
7717
 
@@ -7628,12 +7750,9 @@ class UpdateDimensionInput:
7628
7750
  kwargs["description"] = de.read_string(_SCHEMA_UPDATE_DIMENSION_INPUT.members["description"])
7629
7751
 
7630
7752
  case 7:
7631
- kwargs["dependencies"] = _deserialize_dependencies(de, _SCHEMA_UPDATE_DIMENSION_INPUT.members["dependencies"])
7632
-
7633
- case 8:
7634
7753
  kwargs["change_reason"] = de.read_string(_SCHEMA_UPDATE_DIMENSION_INPUT.members["change_reason"])
7635
7754
 
7636
- case 9:
7755
+ case 8:
7637
7756
  kwargs["autocomplete_function_name"] = de.read_string(_SCHEMA_UPDATE_DIMENSION_INPUT.members["autocomplete_function_name"])
7638
7757
 
7639
7758
  case _:
@@ -7670,12 +7789,10 @@ class UpdateDimensionOutput:
7670
7789
 
7671
7790
  created_by: str
7672
7791
 
7673
- dependencies: list[str]
7674
-
7675
- dependents: list[str]
7676
-
7677
7792
  dependency_graph: dict[str, Document]
7678
7793
 
7794
+ dimension_type: DimensionType
7795
+
7679
7796
  function_name: str | None = None
7680
7797
  autocomplete_function_name: str | None = None
7681
7798
  mandatory: bool | None = None
@@ -7696,9 +7813,8 @@ class UpdateDimensionOutput:
7696
7813
  serializer.write_string(_SCHEMA_UPDATE_DIMENSION_OUTPUT.members["last_modified_by"], self.last_modified_by)
7697
7814
  serializer.write_timestamp(_SCHEMA_UPDATE_DIMENSION_OUTPUT.members["created_at"], self.created_at)
7698
7815
  serializer.write_string(_SCHEMA_UPDATE_DIMENSION_OUTPUT.members["created_by"], self.created_by)
7699
- _serialize_dependencies(serializer, _SCHEMA_UPDATE_DIMENSION_OUTPUT.members["dependencies"], self.dependencies)
7700
- _serialize_dependents(serializer, _SCHEMA_UPDATE_DIMENSION_OUTPUT.members["dependents"], self.dependents)
7701
7816
  _serialize_object(serializer, _SCHEMA_UPDATE_DIMENSION_OUTPUT.members["dependency_graph"], self.dependency_graph)
7817
+ serializer.write_struct(_SCHEMA_UPDATE_DIMENSION_OUTPUT.members["dimension_type"], self.dimension_type)
7702
7818
  if self.autocomplete_function_name is not None:
7703
7819
  serializer.write_string(_SCHEMA_UPDATE_DIMENSION_OUTPUT.members["autocomplete_function_name"], self.autocomplete_function_name)
7704
7820
 
@@ -7746,18 +7862,15 @@ class UpdateDimensionOutput:
7746
7862
  kwargs["created_by"] = de.read_string(_SCHEMA_UPDATE_DIMENSION_OUTPUT.members["created_by"])
7747
7863
 
7748
7864
  case 10:
7749
- kwargs["dependencies"] = _deserialize_dependencies(de, _SCHEMA_UPDATE_DIMENSION_OUTPUT.members["dependencies"])
7865
+ kwargs["dependency_graph"] = _deserialize_object(de, _SCHEMA_UPDATE_DIMENSION_OUTPUT.members["dependency_graph"])
7750
7866
 
7751
7867
  case 11:
7752
- kwargs["dependents"] = _deserialize_dependents(de, _SCHEMA_UPDATE_DIMENSION_OUTPUT.members["dependents"])
7868
+ kwargs["dimension_type"] = _DimensionTypeDeserializer().deserialize(de)
7753
7869
 
7754
7870
  case 12:
7755
- kwargs["dependency_graph"] = _deserialize_object(de, _SCHEMA_UPDATE_DIMENSION_OUTPUT.members["dependency_graph"])
7756
-
7757
- case 13:
7758
7871
  kwargs["autocomplete_function_name"] = de.read_string(_SCHEMA_UPDATE_DIMENSION_OUTPUT.members["autocomplete_function_name"])
7759
7872
 
7760
- case 14:
7873
+ case 13:
7761
7874
  kwargs["mandatory"] = de.read_boolean(_SCHEMA_UPDATE_DIMENSION_OUTPUT.members["mandatory"])
7762
7875
 
7763
7876
  case _:
@@ -9260,6 +9373,9 @@ class ListExperimentInput:
9260
9373
  :param sort_by:
9261
9374
  Sort order enumeration for list operations.
9262
9375
 
9376
+ :param dimension_match_strategy:
9377
+ Strategy to follow while filter items based on the context
9378
+
9263
9379
  """
9264
9380
 
9265
9381
  workspace_id: str | None = None
@@ -9277,6 +9393,7 @@ class ListExperimentInput:
9277
9393
  sort_on: str | None = None
9278
9394
  sort_by: str | None = None
9279
9395
  global_experiments_only: bool | None = None
9396
+ dimension_match_strategy: str | None = None
9280
9397
 
9281
9398
  def serialize(self, serializer: ShapeSerializer):
9282
9399
  serializer.write_struct(_SCHEMA_LIST_EXPERIMENT_INPUT, self)
@@ -9339,6 +9456,9 @@ class ListExperimentInput:
9339
9456
  case 14:
9340
9457
  kwargs["global_experiments_only"] = de.read_boolean(_SCHEMA_LIST_EXPERIMENT_INPUT.members["global_experiments_only"])
9341
9458
 
9459
+ case 15:
9460
+ kwargs["dimension_match_strategy"] = de.read_string(_SCHEMA_LIST_EXPERIMENT_INPUT.members["dimension_match_strategy"])
9461
+
9342
9462
  case _:
9343
9463
  logger.debug("Unexpected member schema: %s", schema)
9344
9464
 
@@ -1303,6 +1303,8 @@ async def _serialize_list_contexts(input: ListContextsInput, config: Config) ->
1303
1303
  query_params.append(("page", str(input.page)))
1304
1304
  if input.count is not None:
1305
1305
  query_params.append(("count", str(input.count)))
1306
+ if input.all is not None:
1307
+ query_params.append(("all", ('true' if input.all else 'false')))
1306
1308
  if input.prefix is not None:
1307
1309
  query_params.append(("prefix", input.prefix))
1308
1310
  if input.sort_on is not None:
@@ -1315,6 +1317,8 @@ async def _serialize_list_contexts(input: ListContextsInput, config: Config) ->
1315
1317
  query_params.append(("last_modified_by", input.last_modified_by))
1316
1318
  if input.plaintext is not None:
1317
1319
  query_params.append(("plaintext", input.plaintext))
1320
+ if input.dimension_match_strategy is not None:
1321
+ query_params.append(("dimension_match_strategy", input.dimension_match_strategy))
1318
1322
 
1319
1323
  query = join_query_params(params=query_params, prefix=query)
1320
1324
 
@@ -1446,6 +1450,8 @@ async def _serialize_list_experiment(input: ListExperimentInput, config: Config)
1446
1450
  query_params.append(("sort_by", input.sort_by))
1447
1451
  if input.global_experiments_only is not None:
1448
1452
  query_params.append(("global_experiments_only", ('true' if input.global_experiments_only else 'false')))
1453
+ if input.dimension_match_strategy is not None:
1454
+ query_params.append(("dimension_match_strategy", input.dimension_match_strategy))
1449
1455
 
1450
1456
  query = join_query_params(params=query_params, prefix=query)
1451
1457
 
@@ -0,0 +1,31 @@
1
+ Metadata-Version: 2.4
2
+ Name: superposition_sdk
3
+ Version: 0.91.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
@@ -0,0 +1,12 @@
1
+ superposition_sdk/__init__.py,sha256=Inc_oe2U1CzZ_ZxsNVbU96RGaAlD-6M5xt1ZcW5hGUo,83
2
+ superposition_sdk/auth.py,sha256=U9D3FmOH8TX0cjibGy_CRnAkTnFEavAek0Jw1YUhN2g,404
3
+ superposition_sdk/client.py,sha256=kG44iiz2qtuS4I8MYDkzUxrAbzFUbyPymyPrbuZpMSc,94395
4
+ superposition_sdk/config.py,sha256=elPULtcHP7am9Wk7VqIpzPMNlcQIdH1Do9gNeAkqdHM,11425
5
+ superposition_sdk/deserialize.py,sha256=fVUcHo_BtWwtINcbBWGXDVo0GmSPT0pEyDwEB6Jf82Y,77499
6
+ superposition_sdk/models.py,sha256=yZFgjI5fQtablUD5qbGYEvR0yBN5a-4kWp-Fax3Yv9U,560644
7
+ superposition_sdk/serialize.py,sha256=aaQOAoA-_HaFl0Zl5cC2JSPebG4oE0OH1Izj1wy3p78,73276
8
+ superposition_sdk/_private/__init__.py,sha256=DxsJq42a0KfQv9zzLrqT0JVpoXrR-IDIYFGuJe4g1Gc,55
9
+ superposition_sdk/_private/schemas.py,sha256=Xtl1rkGslxdknASI1qwKd62WA6F68UqVRaPIjmeKH5c,304488
10
+ superposition_sdk-0.91.0.dist-info/METADATA,sha256=kZL_K_ZQYM1FjhCOUzQb-VoPKef5008sZG-t0W_mKgA,1143
11
+ superposition_sdk-0.91.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
12
+ superposition_sdk-0.91.0.dist-info/RECORD,,
@@ -1,64 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: superposition_sdk
3
- Version: 0.89.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
- ```
@@ -1,12 +0,0 @@
1
- superposition_sdk/__init__.py,sha256=Inc_oe2U1CzZ_ZxsNVbU96RGaAlD-6M5xt1ZcW5hGUo,83
2
- superposition_sdk/auth.py,sha256=U9D3FmOH8TX0cjibGy_CRnAkTnFEavAek0Jw1YUhN2g,404
3
- superposition_sdk/client.py,sha256=SICMUtPJo3H_xYFXcofHZVZoRiYq_zFO7sMZP9Z5BHs,94384
4
- superposition_sdk/config.py,sha256=elPULtcHP7am9Wk7VqIpzPMNlcQIdH1Do9gNeAkqdHM,11425
5
- superposition_sdk/deserialize.py,sha256=fVUcHo_BtWwtINcbBWGXDVo0GmSPT0pEyDwEB6Jf82Y,77499
6
- superposition_sdk/models.py,sha256=ooFJllHmXldDPYmV1daKwYbsDrnUAIr0TWePHAFJRK0,557184
7
- superposition_sdk/serialize.py,sha256=Z-Jh_Et1VEPDDDv0hOShfr6ku_l8bNZR2S1YZbNcdpg,72891
8
- superposition_sdk/_private/__init__.py,sha256=DxsJq42a0KfQv9zzLrqT0JVpoXrR-IDIYFGuJe4g1Gc,55
9
- superposition_sdk/_private/schemas.py,sha256=glJ2WIDMEVkAofZoARyFqE4jLxd8nvYVXb1hDTikYKs,303394
10
- superposition_sdk-0.89.0.dist-info/METADATA,sha256=oz0B1BC9cdRZ2dp3bHDrkpiZUFSjEe3CCXYOcNAOSpU,2280
11
- superposition_sdk-0.89.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
12
- superposition_sdk-0.89.0.dist-info/RECORD,,