Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@ module Io.Superposition.Model.ApplicableVariantsInput (
setOrgId,
setContext,
setIdentifier,
setPrefix,
build,
ApplicableVariantsInputBuilder,
ApplicableVariantsInput,
workspace_id,
org_id,
context,
identifier
identifier,
prefix
) where
import qualified Control.Applicative
import qualified Control.Monad.State.Strict
Expand All @@ -29,7 +31,8 @@ data ApplicableVariantsInput = ApplicableVariantsInput {
workspace_id :: Data.Text.Text,
org_id :: Data.Text.Text,
context :: Data.Map.Map Data.Text.Text Data.Aeson.Value,
identifier :: Data.Text.Text
identifier :: Data.Text.Text,
prefix :: Data.Maybe.Maybe ([] Data.Text.Text)
} deriving (
GHC.Show.Show,
Data.Eq.Eq,
Expand All @@ -41,7 +44,8 @@ instance Data.Aeson.ToJSON ApplicableVariantsInput where
"workspace_id" Data.Aeson..= workspace_id a,
"org_id" Data.Aeson..= org_id a,
"context" Data.Aeson..= context a,
"identifier" Data.Aeson..= identifier a
"identifier" Data.Aeson..= identifier a,
"prefix" Data.Aeson..= prefix a
]


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



Expand All @@ -61,7 +66,8 @@ data ApplicableVariantsInputBuilderState = ApplicableVariantsInputBuilderState {
workspace_idBuilderState :: Data.Maybe.Maybe Data.Text.Text,
org_idBuilderState :: Data.Maybe.Maybe Data.Text.Text,
contextBuilderState :: Data.Maybe.Maybe (Data.Map.Map Data.Text.Text Data.Aeson.Value),
identifierBuilderState :: Data.Maybe.Maybe Data.Text.Text
identifierBuilderState :: Data.Maybe.Maybe Data.Text.Text,
prefixBuilderState :: Data.Maybe.Maybe ([] Data.Text.Text)
} deriving (
GHC.Generics.Generic
)
Expand All @@ -71,7 +77,8 @@ defaultBuilderState = ApplicableVariantsInputBuilderState {
workspace_idBuilderState = Data.Maybe.Nothing,
org_idBuilderState = Data.Maybe.Nothing,
contextBuilderState = Data.Maybe.Nothing,
identifierBuilderState = Data.Maybe.Nothing
identifierBuilderState = Data.Maybe.Nothing,
prefixBuilderState = Data.Maybe.Nothing
}

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

setPrefix :: Data.Maybe.Maybe ([] Data.Text.Text) -> ApplicableVariantsInputBuilder ()
setPrefix value =
Control.Monad.State.Strict.modify (\s -> (s { prefixBuilderState = value }))

build :: ApplicableVariantsInputBuilder () -> Data.Either.Either Data.Text.Text ApplicableVariantsInput
build builder = do
let (_, st) = Control.Monad.State.Strict.runState builder defaultBuilderState
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)
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)
context' <- Data.Maybe.maybe (Data.Either.Left "Io.Superposition.Model.ApplicableVariantsInput.ApplicableVariantsInput.context is a required property.") Data.Either.Right (contextBuilderState st)
identifier' <- Data.Maybe.maybe (Data.Either.Left "Io.Superposition.Model.ApplicableVariantsInput.ApplicableVariantsInput.identifier is a required property.") Data.Either.Right (identifierBuilderState st)
prefix' <- Data.Either.Right (prefixBuilderState st)
Data.Either.Right (ApplicableVariantsInput {
workspace_id = workspace_id',
org_id = org_id',
context = context',
identifier = identifier'
identifier = identifier',
prefix = prefix'
})


Expand All @@ -114,9 +127,9 @@ instance Io.Superposition.Utility.IntoRequestBuilder ApplicableVariantsInput whe
"experiments",
"applicable-variants"
]

Io.Superposition.Utility.serQuery "identifier" (identifier self)
Io.Superposition.Utility.serQuery "prefix" (prefix self)
Io.Superposition.Utility.serHeader "x-workspace" (workspace_id self)
Io.Superposition.Utility.serHeader "x-org-id" (org_id self)
Io.Superposition.Utility.serField "identifier" (identifier self)
Io.Superposition.Utility.serField "context" (context self)

110 changes: 110 additions & 0 deletions clients/haskell/sdk/Io/Superposition/Model/ConfigData.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
module Io.Superposition.Model.ConfigData (
setContexts,
setOverrides,
setDefaultConfigs,
setDimensions,
build,
ConfigDataBuilder,
ConfigData,
contexts,
overrides,
default_configs,
dimensions
) where
import qualified Control.Applicative
import qualified Control.Monad.State.Strict
import qualified Data.Aeson
import qualified Data.Either
import qualified Data.Eq
import qualified Data.Functor
import qualified Data.Map
import qualified Data.Maybe
import qualified Data.Text
import qualified GHC.Generics
import qualified GHC.Show
import qualified Io.Superposition.Model.ContextPartial
import qualified Io.Superposition.Model.DimensionInfo
import qualified Io.Superposition.Utility

data ConfigData = ConfigData {
contexts :: [] Io.Superposition.Model.ContextPartial.ContextPartial,
overrides :: Data.Map.Map Data.Text.Text (Data.Map.Map Data.Text.Text Data.Aeson.Value),
default_configs :: Data.Map.Map Data.Text.Text Data.Aeson.Value,
dimensions :: Data.Map.Map Data.Text.Text Io.Superposition.Model.DimensionInfo.DimensionInfo
} deriving (
GHC.Show.Show,
Data.Eq.Eq,
GHC.Generics.Generic
)

instance Data.Aeson.ToJSON ConfigData where
toJSON a = Data.Aeson.object [
"contexts" Data.Aeson..= contexts a,
"overrides" Data.Aeson..= overrides a,
"default_configs" Data.Aeson..= default_configs a,
"dimensions" Data.Aeson..= dimensions a
]


instance Io.Superposition.Utility.SerializeBody ConfigData

instance Data.Aeson.FromJSON ConfigData where
parseJSON = Data.Aeson.withObject "ConfigData" $ \v -> ConfigData
Data.Functor.<$> (v Data.Aeson..: "contexts")
Control.Applicative.<*> (v Data.Aeson..: "overrides")
Control.Applicative.<*> (v Data.Aeson..: "default_configs")
Control.Applicative.<*> (v Data.Aeson..: "dimensions")




data ConfigDataBuilderState = ConfigDataBuilderState {
contextsBuilderState :: Data.Maybe.Maybe ([] Io.Superposition.Model.ContextPartial.ContextPartial),
overridesBuilderState :: Data.Maybe.Maybe (Data.Map.Map Data.Text.Text (Data.Map.Map Data.Text.Text Data.Aeson.Value)),
default_configsBuilderState :: Data.Maybe.Maybe (Data.Map.Map Data.Text.Text Data.Aeson.Value),
dimensionsBuilderState :: Data.Maybe.Maybe (Data.Map.Map Data.Text.Text Io.Superposition.Model.DimensionInfo.DimensionInfo)
} deriving (
GHC.Generics.Generic
)

defaultBuilderState :: ConfigDataBuilderState
defaultBuilderState = ConfigDataBuilderState {
contextsBuilderState = Data.Maybe.Nothing,
overridesBuilderState = Data.Maybe.Nothing,
default_configsBuilderState = Data.Maybe.Nothing,
dimensionsBuilderState = Data.Maybe.Nothing
}

type ConfigDataBuilder = Control.Monad.State.Strict.State ConfigDataBuilderState

setContexts :: [] Io.Superposition.Model.ContextPartial.ContextPartial -> ConfigDataBuilder ()
setContexts value =
Control.Monad.State.Strict.modify (\s -> (s { contextsBuilderState = Data.Maybe.Just value }))

setOverrides :: Data.Map.Map Data.Text.Text (Data.Map.Map Data.Text.Text Data.Aeson.Value) -> ConfigDataBuilder ()
setOverrides value =
Control.Monad.State.Strict.modify (\s -> (s { overridesBuilderState = Data.Maybe.Just value }))

setDefaultConfigs :: Data.Map.Map Data.Text.Text Data.Aeson.Value -> ConfigDataBuilder ()
setDefaultConfigs value =
Control.Monad.State.Strict.modify (\s -> (s { default_configsBuilderState = Data.Maybe.Just value }))

setDimensions :: Data.Map.Map Data.Text.Text Io.Superposition.Model.DimensionInfo.DimensionInfo -> ConfigDataBuilder ()
setDimensions value =
Control.Monad.State.Strict.modify (\s -> (s { dimensionsBuilderState = Data.Maybe.Just value }))

build :: ConfigDataBuilder () -> Data.Either.Either Data.Text.Text ConfigData
build builder = do
let (_, st) = Control.Monad.State.Strict.runState builder defaultBuilderState
contexts' <- Data.Maybe.maybe (Data.Either.Left "Io.Superposition.Model.ConfigData.ConfigData.contexts is a required property.") Data.Either.Right (contextsBuilderState st)
overrides' <- Data.Maybe.maybe (Data.Either.Left "Io.Superposition.Model.ConfigData.ConfigData.overrides is a required property.") Data.Either.Right (overridesBuilderState st)
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)
dimensions' <- Data.Maybe.maybe (Data.Either.Left "Io.Superposition.Model.ConfigData.ConfigData.dimensions is a required property.") Data.Either.Right (dimensionsBuilderState st)
Data.Either.Right (ConfigData {
contexts = contexts',
overrides = overrides',
default_configs = default_configs',
dimensions = dimensions'
})


Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,13 @@ import qualified Data.Text
import qualified Data.Time
import qualified GHC.Generics
import qualified GHC.Show
import qualified Io.Superposition.Model.ConfigData
import qualified Io.Superposition.Utility
import qualified Network.HTTP.Types

data GetVersionOutput = GetVersionOutput {
id' :: Data.Text.Text,
config :: Data.Aeson.Value,
config :: Io.Superposition.Model.ConfigData.ConfigData,
config_hash :: Data.Text.Text,
created_at :: Data.Time.UTCTime,
description :: Data.Text.Text,
Expand Down Expand Up @@ -69,7 +70,7 @@ instance Data.Aeson.FromJSON GetVersionOutput where

data GetVersionOutputBuilderState = GetVersionOutputBuilderState {
id'BuilderState :: Data.Maybe.Maybe Data.Text.Text,
configBuilderState :: Data.Maybe.Maybe Data.Aeson.Value,
configBuilderState :: Data.Maybe.Maybe Io.Superposition.Model.ConfigData.ConfigData,
config_hashBuilderState :: Data.Maybe.Maybe Data.Text.Text,
created_atBuilderState :: Data.Maybe.Maybe Data.Time.UTCTime,
descriptionBuilderState :: Data.Maybe.Maybe Data.Text.Text,
Expand All @@ -94,7 +95,7 @@ setId' :: Data.Text.Text -> GetVersionOutputBuilder ()
setId' value =
Control.Monad.State.Strict.modify (\s -> (s { id'BuilderState = Data.Maybe.Just value }))

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,12 @@ import qualified Data.Text
import qualified Data.Time
import qualified GHC.Generics
import qualified GHC.Show
import qualified Io.Superposition.Model.ConfigData
import qualified Io.Superposition.Utility

data ListVersionsMember = ListVersionsMember {
id' :: Data.Text.Text,
config :: Data.Aeson.Value,
config :: Io.Superposition.Model.ConfigData.ConfigData,
created_at :: Data.Time.UTCTime,
description :: Data.Text.Text,
tags :: Data.Maybe.Maybe ([] Data.Text.Text)
Expand Down Expand Up @@ -63,7 +64,7 @@ instance Data.Aeson.FromJSON ListVersionsMember where

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

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

Expand Down
1 change: 1 addition & 0 deletions clients/haskell/sdk/SuperpositionSDK.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ library
Io.Superposition.Model.VariantUpdateRequest,
Io.Superposition.Model.GetFunctionOutput,
Io.Superposition.Model.UpdateOverridesExperimentInput,
Io.Superposition.Model.ConfigData,
Io.Superposition.Command.CreateVariable,
Io.Superposition.Model.ListDimensionsInput,
Io.Superposition.Model.ConcludeExperimentInput,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -272,9 +272,9 @@
@SmithyGenerated
final class SuperpositionAsyncClientImpl extends Client implements SuperpositionAsyncClient {
private static final TypeRegistry TYPE_REGISTRY = TypeRegistry.builder()
.putType(AccessDeniedException.$ID, AccessDeniedException.class, AccessDeniedException::builder)
.putType(ValidationException.$ID, ValidationException.class, ValidationException::builder)
.putType(NotAuthorizedException.$ID, NotAuthorizedException.class, NotAuthorizedException::builder)
.putType(ValidationException.$ID, ValidationException.class, ValidationException::builder)
.putType(AccessDeniedException.$ID, AccessDeniedException.class, AccessDeniedException::builder)
.putType(InternalFailureException.$ID, InternalFailureException.class, InternalFailureException::builder)
.putType(UnknownOperationException.$ID, UnknownOperationException.class, UnknownOperationException::builder)
.putType(MalformedRequestException.$ID, MalformedRequestException.class, MalformedRequestException::builder)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -272,9 +272,9 @@
@SmithyGenerated
final class SuperpositionClientImpl extends Client implements SuperpositionClient {
private static final TypeRegistry TYPE_REGISTRY = TypeRegistry.builder()
.putType(AccessDeniedException.$ID, AccessDeniedException.class, AccessDeniedException::builder)
.putType(ValidationException.$ID, ValidationException.class, ValidationException::builder)
.putType(NotAuthorizedException.$ID, NotAuthorizedException.class, NotAuthorizedException::builder)
.putType(ValidationException.$ID, ValidationException.class, ValidationException::builder)
.putType(AccessDeniedException.$ID, AccessDeniedException.class, AccessDeniedException::builder)
.putType(InternalFailureException.$ID, InternalFailureException.class, InternalFailureException::builder)
.putType(UnknownOperationException.$ID, UnknownOperationException.class, UnknownOperationException::builder)
.putType(MalformedRequestException.$ID, MalformedRequestException.class, MalformedRequestException::builder)
Expand Down
Loading
Loading