module Effectful.Zoo.Amazonka.Api.Send ( sendAws, askAwsEnv, localAwsEnv, lazySendAws, ) where import Amazonka qualified as AWS import Effectful import Effectful.Dispatch.Dynamic import Effectful.Error.Static import Effectful.Resource import Effectful.Zoo.Amazonka.Data.AwsEnv import Effectful.Zoo.Amazonka.Data.AwsError import Effectful.Zoo.Amazonka.Data.AwsLogEntry import Effectful.Zoo.Amazonka.Data.AwsRequest import Effectful.Zoo.Amazonka.Data.AwsResponse import Effectful.Zoo.Amazonka.Dynamic import Effectful.Zoo.Core import Effectful.Zoo.DataLog.Api import Effectful.Zoo.DataLog.Dynamic import Effectful.Zoo.Lazy.Dynamic import GHC.Stack qualified as GHC import HaskellWorks.Prelude sendAwsInternal :: forall a r. () => AwsRequest a => HasCallStack => r <: Amazonka => r <: Error AwsError => Typeable (AwsResponse a) => Typeable a => a -> Eff r (AwsResponse a) sendAwsInternal :: forall a (r :: [Effect]). (AwsRequest a, HasCallStack, r <: Amazonka, r <: Error AwsError, Typeable (AwsResponse a), Typeable a) => a -> Eff r (AwsResponse a) sendAwsInternal a req = Amazonka (Eff r) (Either AwsError (AwsResponse a)) -> Eff r (Either AwsError (AwsResponse a)) forall (e :: Effect) (es :: [Effect]) a. (HasCallStack, DispatchOf e ~ 'Dynamic, e :> es) => e (Eff es) a -> Eff es a send (a -> Amazonka (Eff r) (Either AwsError (AwsResponse a)) forall a1 (a :: * -> *). (HasCallStack, AwsRequest a1, Typeable a1, Typeable (AwsResponse a1)) => a1 -> Amazonka a (Either AwsError (AwsResponse a1)) SendAws a req) Eff r (Either AwsError (AwsResponse a)) -> (Eff r (Either AwsError (AwsResponse a)) -> Eff r (AwsResponse a)) -> Eff r (AwsResponse a) forall a b. a -> (a -> b) -> b & (AwsError -> Eff r (AwsResponse a)) -> Eff r (Either AwsError (AwsResponse a)) -> Eff r (AwsResponse a) forall e a (m :: * -> *). Monad m => (e -> m a) -> m (Either e a) -> m a onLeftM AwsError -> Eff r (AwsResponse a) forall e (es :: [Effect]) a. (HasCallStack, Error e :> es, Show e) => e -> Eff es a throwError askAwsEnv :: () => HasCallStack => r <: Amazonka => Eff r AwsEnv askAwsEnv :: forall (r :: [Effect]). (HasCallStack, r <: Amazonka) => Eff r AwsEnv askAwsEnv = Amazonka (Eff r) AwsEnv -> Eff r AwsEnv forall (e :: Effect) (es :: [Effect]) a. (HasCallStack, DispatchOf e ~ 'Dynamic, e :> es) => e (Eff es) a -> Eff es a send Amazonka (Eff r) AwsEnv forall (a :: * -> *). Amazonka a AwsEnv AskAwsEnv localAwsEnv :: () => HasCallStack => r <: Amazonka => (AwsEnv -> AwsEnv) -> Eff r a -> Eff r a localAwsEnv :: forall (r :: [Effect]) a. (HasCallStack, r <: Amazonka) => (AwsEnv -> AwsEnv) -> Eff r a -> Eff r a localAwsEnv AwsEnv -> AwsEnv f Eff r a m = Amazonka (Eff r) a -> Eff r a forall (e :: Effect) (es :: [Effect]) a. (HasCallStack, DispatchOf e ~ 'Dynamic, e :> es) => e (Eff es) a -> Eff es a send ((AwsEnv -> AwsEnv) -> Eff r a -> Amazonka (Eff r) a forall (a :: * -> *) b. (AwsEnv -> AwsEnv) -> a b -> Amazonka a b LocalAwsEnv AwsEnv -> AwsEnv f Eff r a m) sendAws :: forall a r. () => HasCallStack => AwsRequest a => r <: Amazonka => r <: DataLog AwsLogEntry => r <: Error AwsError => r <: IOE => Typeable (AwsResponse a) => Typeable a => a -> Eff r (AwsResponse a) sendAws :: forall a (r :: [Effect]). (HasCallStack, AwsRequest a, r <: Amazonka, r <: DataLog AwsLogEntry, r <: Error AwsError, r <: IOE, Typeable (AwsResponse a), Typeable a) => a -> Eff r (AwsResponse a) sendAws a req = (HasCallStack => Eff r (AwsResponse a)) -> Eff r (AwsResponse a) forall a. HasCallStack => (HasCallStack => a) -> a withFrozenCallStack ((HasCallStack => Eff r (AwsResponse a)) -> Eff r (AwsResponse a)) -> (HasCallStack => Eff r (AwsResponse a)) -> Eff r (AwsResponse a) forall a b. (a -> b) -> a -> b $ do AwsEnv envAws0 <- Eff r AwsEnv forall (r :: [Effect]). (HasCallStack, r <: Amazonka) => Eff r AwsEnv askAwsEnv AwsEnv envAws1 <- UnliftStrategy -> ((forall {r}. Eff r r -> IO r) -> IO AwsEnv) -> Eff r AwsEnv forall (es :: [Effect]) a. (HasCallStack, IOE :> es) => UnliftStrategy -> ((forall r. Eff es r -> IO r) -> IO a) -> Eff es a withEffToIO (Persistence -> Limit -> UnliftStrategy ConcUnlift Persistence Persistent Limit Unlimited) (((forall {r}. Eff r r -> IO r) -> IO AwsEnv) -> Eff r AwsEnv) -> ((forall {r}. Eff r r -> IO r) -> IO AwsEnv) -> Eff r AwsEnv forall a b. (a -> b) -> a -> b $ \forall {r}. Eff r r -> IO r effToIO -> AwsEnv -> IO AwsEnv forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure (AwsEnv -> IO AwsEnv) -> AwsEnv -> IO AwsEnv forall a b. (a -> b) -> a -> b $ AwsEnv envAws0 { AWS.logger = \LogLevel logLevel ByteStringBuilder builder -> Eff r () -> IO () forall {r}. Eff r r -> IO r effToIO (Eff r () -> IO ()) -> Eff r () -> IO () forall a b. (a -> b) -> a -> b $ AwsLogEntry -> Eff r () forall (r :: [Effect]) i. (HasCallStack, r <: DataLog i) => i -> Eff r () dataLog (AwsLogEntry -> Eff r ()) -> AwsLogEntry -> Eff r () forall a b. (a -> b) -> a -> b $ CallStack -> LogLevel -> ByteStringBuilder -> AwsLogEntry AwsLogEntry CallStack HasCallStack => CallStack GHC.callStack LogLevel logLevel ByteStringBuilder builder } (AwsEnv -> AwsEnv) -> Eff r (AwsResponse a) -> Eff r (AwsResponse a) forall (r :: [Effect]) a. (HasCallStack, r <: Amazonka) => (AwsEnv -> AwsEnv) -> Eff r a -> Eff r a localAwsEnv (AwsEnv -> AwsEnv -> AwsEnv forall a b. a -> b -> a const AwsEnv envAws1) (Eff r (AwsResponse a) -> Eff r (AwsResponse a)) -> Eff r (AwsResponse a) -> Eff r (AwsResponse a) forall a b. (a -> b) -> a -> b $ a -> Eff r (AwsResponse a) forall a (r :: [Effect]). (AwsRequest a, HasCallStack, r <: Amazonka, r <: Error AwsError, Typeable (AwsResponse a), Typeable a) => a -> Eff r (AwsResponse a) sendAwsInternal a req lazySendAws :: forall a r. () => HasCallStack => AwsRequest a => r <: DataLog AwsLogEntry => r <: Error AwsError => r <: IOE => r <: Lazy AwsEnv => r <: Resource => Typeable (AwsResponse a) => Typeable a => a -> Eff r (AwsResponse a) lazySendAws :: forall a (r :: [Effect]). (HasCallStack, AwsRequest a, r <: DataLog AwsLogEntry, r <: Error AwsError, r <: IOE, r <: Lazy AwsEnv, r <: Resource, Typeable (AwsResponse a), Typeable a) => a -> Eff r (AwsResponse a) lazySendAws a req = (HasCallStack => Eff r (AwsResponse a)) -> Eff r (AwsResponse a) forall a. HasCallStack => (HasCallStack => a) -> a GHC.withFrozenCallStack ((HasCallStack => Eff r (AwsResponse a)) -> Eff r (AwsResponse a)) -> (HasCallStack => Eff r (AwsResponse a)) -> Eff r (AwsResponse a) forall a b. (a -> b) -> a -> b $ do AwsEnv awsEnv <- Eff r AwsEnv forall (r :: [Effect]) i. (r <: Lazy i) => Eff r i lazyAsk AwsEnv -> Eff (Amazonka : r) (AwsResponse a) -> Eff r (AwsResponse a) forall a (r :: [Effect]). (r <: IOE, r <: Resource) => AwsEnv -> Eff (Amazonka : r) a -> Eff r a runAmazonka AwsEnv awsEnv (a -> Eff (Amazonka : r) (AwsResponse a) forall a (r :: [Effect]). (HasCallStack, AwsRequest a, r <: Amazonka, r <: DataLog AwsLogEntry, r <: Error AwsError, r <: IOE, Typeable (AwsResponse a), Typeable a) => a -> Eff r (AwsResponse a) sendAws a req)