Skip to content

Commit 7819098

Browse files
committed
fix: RemoteProvider cleanup
1 parent 9f610ad commit 7819098

61 files changed

Lines changed: 1637 additions & 699 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

clients/haskell/sdk/Io/Superposition/Model/ApplicableVariantsInput.hs

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@ module Io.Superposition.Model.ApplicableVariantsInput (
33
setOrgId,
44
setContext,
55
setIdentifier,
6+
setPrefix,
67
build,
78
ApplicableVariantsInputBuilder,
89
ApplicableVariantsInput,
910
workspace_id,
1011
org_id,
1112
context,
12-
identifier
13+
identifier,
14+
prefix
1315
) where
1416
import qualified Control.Applicative
1517
import qualified Control.Monad.State.Strict
@@ -29,7 +31,8 @@ data ApplicableVariantsInput = ApplicableVariantsInput {
2931
workspace_id :: Data.Text.Text,
3032
org_id :: Data.Text.Text,
3133
context :: Data.Map.Map Data.Text.Text Data.Aeson.Value,
32-
identifier :: Data.Text.Text
34+
identifier :: Data.Text.Text,
35+
prefix :: Data.Maybe.Maybe ([] Data.Text.Text)
3336
} deriving (
3437
GHC.Show.Show,
3538
Data.Eq.Eq,
@@ -41,7 +44,8 @@ instance Data.Aeson.ToJSON ApplicableVariantsInput where
4144
"workspace_id" Data.Aeson..= workspace_id a,
4245
"org_id" Data.Aeson..= org_id a,
4346
"context" Data.Aeson..= context a,
44-
"identifier" Data.Aeson..= identifier a
47+
"identifier" Data.Aeson..= identifier a,
48+
"prefix" Data.Aeson..= prefix a
4549
]
4650

4751

@@ -53,6 +57,7 @@ instance Data.Aeson.FromJSON ApplicableVariantsInput where
5357
Control.Applicative.<*> (v Data.Aeson..: "org_id")
5458
Control.Applicative.<*> (v Data.Aeson..: "context")
5559
Control.Applicative.<*> (v Data.Aeson..: "identifier")
60+
Control.Applicative.<*> (v Data.Aeson..:? "prefix")
5661

5762

5863

@@ -61,7 +66,8 @@ data ApplicableVariantsInputBuilderState = ApplicableVariantsInputBuilderState {
6166
workspace_idBuilderState :: Data.Maybe.Maybe Data.Text.Text,
6267
org_idBuilderState :: Data.Maybe.Maybe Data.Text.Text,
6368
contextBuilderState :: Data.Maybe.Maybe (Data.Map.Map Data.Text.Text Data.Aeson.Value),
64-
identifierBuilderState :: Data.Maybe.Maybe Data.Text.Text
69+
identifierBuilderState :: Data.Maybe.Maybe Data.Text.Text,
70+
prefixBuilderState :: Data.Maybe.Maybe ([] Data.Text.Text)
6571
} deriving (
6672
GHC.Generics.Generic
6773
)
@@ -71,7 +77,8 @@ defaultBuilderState = ApplicableVariantsInputBuilderState {
7177
workspace_idBuilderState = Data.Maybe.Nothing,
7278
org_idBuilderState = Data.Maybe.Nothing,
7379
contextBuilderState = Data.Maybe.Nothing,
74-
identifierBuilderState = Data.Maybe.Nothing
80+
identifierBuilderState = Data.Maybe.Nothing,
81+
prefixBuilderState = Data.Maybe.Nothing
7582
}
7683

7784
type ApplicableVariantsInputBuilder = Control.Monad.State.Strict.State ApplicableVariantsInputBuilderState
@@ -92,18 +99,24 @@ setIdentifier :: Data.Text.Text -> ApplicableVariantsInputBuilder ()
9299
setIdentifier value =
93100
Control.Monad.State.Strict.modify (\s -> (s { identifierBuilderState = Data.Maybe.Just value }))
94101

102+
setPrefix :: Data.Maybe.Maybe ([] Data.Text.Text) -> ApplicableVariantsInputBuilder ()
103+
setPrefix value =
104+
Control.Monad.State.Strict.modify (\s -> (s { prefixBuilderState = value }))
105+
95106
build :: ApplicableVariantsInputBuilder () -> Data.Either.Either Data.Text.Text ApplicableVariantsInput
96107
build builder = do
97108
let (_, st) = Control.Monad.State.Strict.runState builder defaultBuilderState
98109
workspace_id' <- Data.Maybe.maybe (Data.Either.Left "Io.Superposition.Model.ApplicableVariantsInput.ApplicableVariantsInput.workspace_id is a required property.") Data.Either.Right (workspace_idBuilderState st)
99110
org_id' <- Data.Maybe.maybe (Data.Either.Left "Io.Superposition.Model.ApplicableVariantsInput.ApplicableVariantsInput.org_id is a required property.") Data.Either.Right (org_idBuilderState st)
100111
context' <- Data.Maybe.maybe (Data.Either.Left "Io.Superposition.Model.ApplicableVariantsInput.ApplicableVariantsInput.context is a required property.") Data.Either.Right (contextBuilderState st)
101112
identifier' <- Data.Maybe.maybe (Data.Either.Left "Io.Superposition.Model.ApplicableVariantsInput.ApplicableVariantsInput.identifier is a required property.") Data.Either.Right (identifierBuilderState st)
113+
prefix' <- Data.Either.Right (prefixBuilderState st)
102114
Data.Either.Right (ApplicableVariantsInput {
103115
workspace_id = workspace_id',
104116
org_id = org_id',
105117
context = context',
106-
identifier = identifier'
118+
identifier = identifier',
119+
prefix = prefix'
107120
})
108121

109122

@@ -114,9 +127,9 @@ instance Io.Superposition.Utility.IntoRequestBuilder ApplicableVariantsInput whe
114127
"experiments",
115128
"applicable-variants"
116129
]
117-
130+
Io.Superposition.Utility.serQuery "identifier" (identifier self)
131+
Io.Superposition.Utility.serQuery "prefix" (prefix self)
118132
Io.Superposition.Utility.serHeader "x-workspace" (workspace_id self)
119133
Io.Superposition.Utility.serHeader "x-org-id" (org_id self)
120-
Io.Superposition.Utility.serField "identifier" (identifier self)
121134
Io.Superposition.Utility.serField "context" (context self)
122135

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
module Io.Superposition.Model.ConfigData (
2+
setContexts,
3+
setOverrides,
4+
setDefaultConfigs,
5+
setDimensions,
6+
build,
7+
ConfigDataBuilder,
8+
ConfigData,
9+
contexts,
10+
overrides,
11+
default_configs,
12+
dimensions
13+
) where
14+
import qualified Control.Applicative
15+
import qualified Control.Monad.State.Strict
16+
import qualified Data.Aeson
17+
import qualified Data.Either
18+
import qualified Data.Eq
19+
import qualified Data.Functor
20+
import qualified Data.Map
21+
import qualified Data.Maybe
22+
import qualified Data.Text
23+
import qualified GHC.Generics
24+
import qualified GHC.Show
25+
import qualified Io.Superposition.Model.ContextPartial
26+
import qualified Io.Superposition.Model.DimensionInfo
27+
import qualified Io.Superposition.Utility
28+
29+
data ConfigData = ConfigData {
30+
contexts :: [] Io.Superposition.Model.ContextPartial.ContextPartial,
31+
overrides :: Data.Map.Map Data.Text.Text (Data.Map.Map Data.Text.Text Data.Aeson.Value),
32+
default_configs :: Data.Map.Map Data.Text.Text Data.Aeson.Value,
33+
dimensions :: Data.Map.Map Data.Text.Text Io.Superposition.Model.DimensionInfo.DimensionInfo
34+
} deriving (
35+
GHC.Show.Show,
36+
Data.Eq.Eq,
37+
GHC.Generics.Generic
38+
)
39+
40+
instance Data.Aeson.ToJSON ConfigData where
41+
toJSON a = Data.Aeson.object [
42+
"contexts" Data.Aeson..= contexts a,
43+
"overrides" Data.Aeson..= overrides a,
44+
"default_configs" Data.Aeson..= default_configs a,
45+
"dimensions" Data.Aeson..= dimensions a
46+
]
47+
48+
49+
instance Io.Superposition.Utility.SerializeBody ConfigData
50+
51+
instance Data.Aeson.FromJSON ConfigData where
52+
parseJSON = Data.Aeson.withObject "ConfigData" $ \v -> ConfigData
53+
Data.Functor.<$> (v Data.Aeson..: "contexts")
54+
Control.Applicative.<*> (v Data.Aeson..: "overrides")
55+
Control.Applicative.<*> (v Data.Aeson..: "default_configs")
56+
Control.Applicative.<*> (v Data.Aeson..: "dimensions")
57+
58+
59+
60+
61+
data ConfigDataBuilderState = ConfigDataBuilderState {
62+
contextsBuilderState :: Data.Maybe.Maybe ([] Io.Superposition.Model.ContextPartial.ContextPartial),
63+
overridesBuilderState :: Data.Maybe.Maybe (Data.Map.Map Data.Text.Text (Data.Map.Map Data.Text.Text Data.Aeson.Value)),
64+
default_configsBuilderState :: Data.Maybe.Maybe (Data.Map.Map Data.Text.Text Data.Aeson.Value),
65+
dimensionsBuilderState :: Data.Maybe.Maybe (Data.Map.Map Data.Text.Text Io.Superposition.Model.DimensionInfo.DimensionInfo)
66+
} deriving (
67+
GHC.Generics.Generic
68+
)
69+
70+
defaultBuilderState :: ConfigDataBuilderState
71+
defaultBuilderState = ConfigDataBuilderState {
72+
contextsBuilderState = Data.Maybe.Nothing,
73+
overridesBuilderState = Data.Maybe.Nothing,
74+
default_configsBuilderState = Data.Maybe.Nothing,
75+
dimensionsBuilderState = Data.Maybe.Nothing
76+
}
77+
78+
type ConfigDataBuilder = Control.Monad.State.Strict.State ConfigDataBuilderState
79+
80+
setContexts :: [] Io.Superposition.Model.ContextPartial.ContextPartial -> ConfigDataBuilder ()
81+
setContexts value =
82+
Control.Monad.State.Strict.modify (\s -> (s { contextsBuilderState = Data.Maybe.Just value }))
83+
84+
setOverrides :: Data.Map.Map Data.Text.Text (Data.Map.Map Data.Text.Text Data.Aeson.Value) -> ConfigDataBuilder ()
85+
setOverrides value =
86+
Control.Monad.State.Strict.modify (\s -> (s { overridesBuilderState = Data.Maybe.Just value }))
87+
88+
setDefaultConfigs :: Data.Map.Map Data.Text.Text Data.Aeson.Value -> ConfigDataBuilder ()
89+
setDefaultConfigs value =
90+
Control.Monad.State.Strict.modify (\s -> (s { default_configsBuilderState = Data.Maybe.Just value }))
91+
92+
setDimensions :: Data.Map.Map Data.Text.Text Io.Superposition.Model.DimensionInfo.DimensionInfo -> ConfigDataBuilder ()
93+
setDimensions value =
94+
Control.Monad.State.Strict.modify (\s -> (s { dimensionsBuilderState = Data.Maybe.Just value }))
95+
96+
build :: ConfigDataBuilder () -> Data.Either.Either Data.Text.Text ConfigData
97+
build builder = do
98+
let (_, st) = Control.Monad.State.Strict.runState builder defaultBuilderState
99+
contexts' <- Data.Maybe.maybe (Data.Either.Left "Io.Superposition.Model.ConfigData.ConfigData.contexts is a required property.") Data.Either.Right (contextsBuilderState st)
100+
overrides' <- Data.Maybe.maybe (Data.Either.Left "Io.Superposition.Model.ConfigData.ConfigData.overrides is a required property.") Data.Either.Right (overridesBuilderState st)
101+
default_configs' <- Data.Maybe.maybe (Data.Either.Left "Io.Superposition.Model.ConfigData.ConfigData.default_configs is a required property.") Data.Either.Right (default_configsBuilderState st)
102+
dimensions' <- Data.Maybe.maybe (Data.Either.Left "Io.Superposition.Model.ConfigData.ConfigData.dimensions is a required property.") Data.Either.Right (dimensionsBuilderState st)
103+
Data.Either.Right (ConfigData {
104+
contexts = contexts',
105+
overrides = overrides',
106+
default_configs = default_configs',
107+
dimensions = dimensions'
108+
})
109+
110+

clients/haskell/sdk/Io/Superposition/Model/GetVersionOutput.hs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,13 @@ import qualified Data.Text
2626
import qualified Data.Time
2727
import qualified GHC.Generics
2828
import qualified GHC.Show
29+
import qualified Io.Superposition.Model.ConfigData
2930
import qualified Io.Superposition.Utility
3031
import qualified Network.HTTP.Types
3132

3233
data GetVersionOutput = GetVersionOutput {
3334
id' :: Data.Text.Text,
34-
config :: Data.Aeson.Value,
35+
config :: Io.Superposition.Model.ConfigData.ConfigData,
3536
config_hash :: Data.Text.Text,
3637
created_at :: Data.Time.UTCTime,
3738
description :: Data.Text.Text,
@@ -69,7 +70,7 @@ instance Data.Aeson.FromJSON GetVersionOutput where
6970

7071
data GetVersionOutputBuilderState = GetVersionOutputBuilderState {
7172
id'BuilderState :: Data.Maybe.Maybe Data.Text.Text,
72-
configBuilderState :: Data.Maybe.Maybe Data.Aeson.Value,
73+
configBuilderState :: Data.Maybe.Maybe Io.Superposition.Model.ConfigData.ConfigData,
7374
config_hashBuilderState :: Data.Maybe.Maybe Data.Text.Text,
7475
created_atBuilderState :: Data.Maybe.Maybe Data.Time.UTCTime,
7576
descriptionBuilderState :: Data.Maybe.Maybe Data.Text.Text,
@@ -94,7 +95,7 @@ setId' :: Data.Text.Text -> GetVersionOutputBuilder ()
9495
setId' value =
9596
Control.Monad.State.Strict.modify (\s -> (s { id'BuilderState = Data.Maybe.Just value }))
9697

97-
setConfig :: Data.Aeson.Value -> GetVersionOutputBuilder ()
98+
setConfig :: Io.Superposition.Model.ConfigData.ConfigData -> GetVersionOutputBuilder ()
9899
setConfig value =
99100
Control.Monad.State.Strict.modify (\s -> (s { configBuilderState = Data.Maybe.Just value }))
100101

clients/haskell/sdk/Io/Superposition/Model/ListVersionsMember.hs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,12 @@ import qualified Data.Text
2424
import qualified Data.Time
2525
import qualified GHC.Generics
2626
import qualified GHC.Show
27+
import qualified Io.Superposition.Model.ConfigData
2728
import qualified Io.Superposition.Utility
2829

2930
data ListVersionsMember = ListVersionsMember {
3031
id' :: Data.Text.Text,
31-
config :: Data.Aeson.Value,
32+
config :: Io.Superposition.Model.ConfigData.ConfigData,
3233
created_at :: Data.Time.UTCTime,
3334
description :: Data.Text.Text,
3435
tags :: Data.Maybe.Maybe ([] Data.Text.Text)
@@ -63,7 +64,7 @@ instance Data.Aeson.FromJSON ListVersionsMember where
6364

6465
data ListVersionsMemberBuilderState = ListVersionsMemberBuilderState {
6566
id'BuilderState :: Data.Maybe.Maybe Data.Text.Text,
66-
configBuilderState :: Data.Maybe.Maybe Data.Aeson.Value,
67+
configBuilderState :: Data.Maybe.Maybe Io.Superposition.Model.ConfigData.ConfigData,
6768
created_atBuilderState :: Data.Maybe.Maybe Data.Time.UTCTime,
6869
descriptionBuilderState :: Data.Maybe.Maybe Data.Text.Text,
6970
tagsBuilderState :: Data.Maybe.Maybe ([] Data.Text.Text)
@@ -86,7 +87,7 @@ setId' :: Data.Text.Text -> ListVersionsMemberBuilder ()
8687
setId' value =
8788
Control.Monad.State.Strict.modify (\s -> (s { id'BuilderState = Data.Maybe.Just value }))
8889

89-
setConfig :: Data.Aeson.Value -> ListVersionsMemberBuilder ()
90+
setConfig :: Io.Superposition.Model.ConfigData.ConfigData -> ListVersionsMemberBuilder ()
9091
setConfig value =
9192
Control.Monad.State.Strict.modify (\s -> (s { configBuilderState = Data.Maybe.Just value }))
9293

clients/haskell/sdk/SuperpositionSDK.cabal

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ library
4747
Io.Superposition.Command.CreateDimension,
4848
Io.Superposition.Model.ContextMove,
4949
Io.Superposition.Model.ExperimentType,
50-
Io.Superposition.Model.GetVersionInput,
51-
Io.Superposition.Model.ContextPartial,
5250
Io.Superposition.Model.BulkOperationOutput,
51+
Io.Superposition.Model.ContextPartial,
52+
Io.Superposition.Model.GetVersionInput,
5353
Io.Superposition.Command.Publish,
5454
Io.Superposition.Command.UpdateExperimentGroup,
5555
Io.Superposition.Model.BulkOperationInput,
@@ -81,6 +81,7 @@ library
8181
Io.Superposition.Model.VariantUpdateRequest,
8282
Io.Superposition.Model.GetFunctionOutput,
8383
Io.Superposition.Model.UpdateOverridesExperimentInput,
84+
Io.Superposition.Model.ConfigData,
8485
Io.Superposition.Command.CreateVariable,
8586
Io.Superposition.Model.ListDimensionsInput,
8687
Io.Superposition.Model.ConcludeExperimentInput,

clients/java/sdk/src/main/java/io/juspay/superposition/client/SuperpositionAsyncClient.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1819,12 +1819,12 @@ final class Builder extends Client.Builder<SuperpositionAsyncClient, Builder> {
18191819
Node.objectNode()
18201820
);
18211821

1822-
private static final HttpBearerAuthTrait httpBearerAuthScheme = new HttpBearerAuthTrait();
1823-
private static final AuthSchemeFactory<HttpBearerAuthTrait> httpBearerAuthSchemeFactory = new HttpBearerAuthScheme.Factory();
1824-
18251822
private static final HttpBasicAuthTrait httpBasicAuthScheme = new HttpBasicAuthTrait();
18261823
private static final AuthSchemeFactory<HttpBasicAuthTrait> httpBasicAuthSchemeFactory = new HttpBasicAuthAuthScheme.Factory();
18271824

1825+
private static final HttpBearerAuthTrait httpBearerAuthScheme = new HttpBearerAuthTrait();
1826+
private static final AuthSchemeFactory<HttpBearerAuthTrait> httpBearerAuthSchemeFactory = new HttpBearerAuthScheme.Factory();
1827+
18281828
private Builder() {
18291829
configBuilder().putSupportedAuthSchemes(httpBasicAuthSchemeFactory.createAuthScheme(httpBasicAuthScheme), httpBearerAuthSchemeFactory.createAuthScheme(httpBearerAuthScheme));
18301830
}

clients/java/sdk/src/main/java/io/juspay/superposition/client/SuperpositionAsyncClientImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,9 +272,9 @@
272272
@SmithyGenerated
273273
final class SuperpositionAsyncClientImpl extends Client implements SuperpositionAsyncClient {
274274
private static final TypeRegistry TYPE_REGISTRY = TypeRegistry.builder()
275+
.putType(NotAuthorizedException.$ID, NotAuthorizedException.class, NotAuthorizedException::builder)
275276
.putType(ValidationException.$ID, ValidationException.class, ValidationException::builder)
276277
.putType(AccessDeniedException.$ID, AccessDeniedException.class, AccessDeniedException::builder)
277-
.putType(NotAuthorizedException.$ID, NotAuthorizedException.class, NotAuthorizedException::builder)
278278
.putType(InternalFailureException.$ID, InternalFailureException.class, InternalFailureException::builder)
279279
.putType(UnknownOperationException.$ID, UnknownOperationException.class, UnknownOperationException::builder)
280280
.putType(MalformedRequestException.$ID, MalformedRequestException.class, MalformedRequestException::builder)

clients/java/sdk/src/main/java/io/juspay/superposition/client/SuperpositionClient.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1818,12 +1818,12 @@ final class Builder extends Client.Builder<SuperpositionClient, Builder> {
18181818
Node.objectNode()
18191819
);
18201820

1821-
private static final HttpBearerAuthTrait httpBearerAuthScheme = new HttpBearerAuthTrait();
1822-
private static final AuthSchemeFactory<HttpBearerAuthTrait> httpBearerAuthSchemeFactory = new HttpBearerAuthScheme.Factory();
1823-
18241821
private static final HttpBasicAuthTrait httpBasicAuthScheme = new HttpBasicAuthTrait();
18251822
private static final AuthSchemeFactory<HttpBasicAuthTrait> httpBasicAuthSchemeFactory = new HttpBasicAuthAuthScheme.Factory();
18261823

1824+
private static final HttpBearerAuthTrait httpBearerAuthScheme = new HttpBearerAuthTrait();
1825+
private static final AuthSchemeFactory<HttpBearerAuthTrait> httpBearerAuthSchemeFactory = new HttpBearerAuthScheme.Factory();
1826+
18271827
private Builder() {
18281828
configBuilder().putSupportedAuthSchemes(httpBasicAuthSchemeFactory.createAuthScheme(httpBasicAuthScheme), httpBearerAuthSchemeFactory.createAuthScheme(httpBearerAuthScheme));
18291829
}

clients/java/sdk/src/main/java/io/juspay/superposition/client/SuperpositionClientImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,9 +272,9 @@
272272
@SmithyGenerated
273273
final class SuperpositionClientImpl extends Client implements SuperpositionClient {
274274
private static final TypeRegistry TYPE_REGISTRY = TypeRegistry.builder()
275+
.putType(NotAuthorizedException.$ID, NotAuthorizedException.class, NotAuthorizedException::builder)
275276
.putType(ValidationException.$ID, ValidationException.class, ValidationException::builder)
276277
.putType(AccessDeniedException.$ID, AccessDeniedException.class, AccessDeniedException::builder)
277-
.putType(NotAuthorizedException.$ID, NotAuthorizedException.class, NotAuthorizedException::builder)
278278
.putType(InternalFailureException.$ID, InternalFailureException.class, InternalFailureException::builder)
279279
.putType(UnknownOperationException.$ID, UnknownOperationException.class, UnknownOperationException::builder)
280280
.putType(MalformedRequestException.$ID, MalformedRequestException.class, MalformedRequestException::builder)

0 commit comments

Comments
 (0)