-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | GLOBUS Data Transfer -- -- GLOBUS Data Transfer @package globus @version 0.1.2 module Network.Globus.Types type Token a = Tagged a Text type Id a = Tagged a Text data Token' ClientId :: Token' ClientSecret :: Token' Exchange :: Token' Access :: Token' data Id' Submission :: Id' Request :: Id' Collection :: Id' data DataType (s :: Symbol) DataType :: DataType (s :: Symbol) data Endpoint Redirect :: Endpoint Authorization :: Endpoint Tokens :: Endpoint App :: Endpoint -- | Simple URI Type, since all the others are obnoxious data Uri (a :: Endpoint) Uri :: Scheme -> Text -> [Text] -> Query -> Uri (a :: Endpoint) [$sel:scheme:Uri] :: Uri (a :: Endpoint) -> Scheme [$sel:domain:Uri] :: Uri (a :: Endpoint) -> Text [$sel:path:Uri] :: Uri (a :: Endpoint) -> [Text] [$sel:params:Uri] :: Uri (a :: Endpoint) -> Query renderUri :: Uri a -> Text newtype Query Query :: [(Text, Maybe Text)] -> Query renderQuery :: Query -> Text data Scope TransferAll :: Scope Identity :: ScopeIdentity -> Scope data ScopeIdentity OpenId :: ScopeIdentity Email :: ScopeIdentity Profile :: ScopeIdentity scopeText :: Scope -> Text scope :: Text -> Maybe Scope newtype Scopes Scopes :: NonEmpty Scope -> Scopes instance GHC.Base.Semigroup Network.Globus.Types.Query instance GHC.Base.Monoid Network.Globus.Types.Query instance GHC.Classes.Eq Network.Globus.Types.ScopeIdentity instance GHC.Show.Show Network.Globus.Types.ScopeIdentity instance GHC.Classes.Eq Network.Globus.Types.Scope instance GHC.Show.Show Network.Globus.Types.Scope instance GHC.Show.Show Network.Globus.Types.Scopes instance Data.Aeson.Types.FromJSON.FromJSON Network.Globus.Types.Scopes instance Data.Aeson.Types.FromJSON.FromJSON Network.Globus.Types.Scope instance GHC.Show.Show (Network.Globus.Types.Uri a) instance GHC.Show.Show Network.Globus.Types.Query instance GHC.IsList.IsList Network.Globus.Types.Query instance Network.HTTP.Req.QueryParam Network.Globus.Types.Query instance GHC.TypeLits.KnownSymbol s => Data.Aeson.Types.ToJSON.ToJSON (Network.Globus.Types.DataType s) module Network.Globus.Transfer fetchSubmissionId :: MonadIO m => Token Access -> m (Id Submission) transferAuth :: Token Access -> Option Https transferEndpoint :: Url 'Https sendTransfer :: MonadIO m => Token Access -> TransferRequest -> m TransferResponse fetchTask :: MonadIO m => Token Access -> Id Task -> m Task newtype TaskFilters TaskFilters :: [TaskStatus] -> TaskFilters [$sel:status:TaskFilters] :: TaskFilters -> [TaskStatus] fetchTasks :: MonadIO m => Token Access -> TaskFilters -> m TaskList activityUrl :: Id Task -> Uri App taskPercentComplete :: Task -> Float data IdResponse IdResponse :: Text -> IdResponse [$sel:value:IdResponse] :: IdResponse -> Text data Task Task :: TaskStatus -> Id Task -> Text -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Maybe Text -> Id Collection -> Id Collection -> Task [$sel:status:Task] :: Task -> TaskStatus [$sel:task_id:Task] :: Task -> Id Task [$sel:label:Task] :: Task -> Text [$sel:files:Task] :: Task -> Int [$sel:directories:Task] :: Task -> Int [$sel:files_skipped:Task] :: Task -> Int [$sel:files_transferred:Task] :: Task -> Int [$sel:bytes_transferred:Task] :: Task -> Int [$sel:bytes_checksummed:Task] :: Task -> Int [$sel:effective_bytes_per_second:Task] :: Task -> Int [$sel:nice_status:Task] :: Task -> Maybe Text [$sel:source_endpoint_id:Task] :: Task -> Id Collection [$sel:destination_endpoint_id:Task] :: Task -> Id Collection data TaskStatus Active :: TaskStatus Inactive :: TaskStatus Succeeded :: TaskStatus Failed :: TaskStatus data TaskList TaskList :: Int -> Int -> Int -> Int -> [Task] -> TaskList [$sel:length:TaskList] :: TaskList -> Int [$sel:limit:TaskList] :: TaskList -> Int [$sel:offset:TaskList] :: TaskList -> Int [$sel:total:TaskList] :: TaskList -> Int [$sel:data_:TaskList] :: TaskList -> [Task] data TransferResponse TransferResponse :: Id Task -> Token Submission -> Text -> Text -> Token Request -> TransferResponse [$sel:task_id:TransferResponse] :: TransferResponse -> Id Task [$sel:submission_id:TransferResponse] :: TransferResponse -> Token Submission [$sel:message:TransferResponse] :: TransferResponse -> Text [$sel:resource:TransferResponse] :: TransferResponse -> Text [$sel:request_id:TransferResponse] :: TransferResponse -> Token Request data TransferRequest TransferRequest :: DataType "transfer" -> Id Submission -> Maybe Text -> Id Collection -> Id Collection -> [TransferItem] -> SyncLevel -> Bool -> TransferRequest [$sel:data_type:TransferRequest] :: TransferRequest -> DataType "transfer" [$sel:submission_id:TransferRequest] :: TransferRequest -> Id Submission [$sel:label:TransferRequest] :: TransferRequest -> Maybe Text [$sel:source_endpoint:TransferRequest] :: TransferRequest -> Id Collection [$sel:destination_endpoint:TransferRequest] :: TransferRequest -> Id Collection [$sel:data_:TransferRequest] :: TransferRequest -> [TransferItem] [$sel:sync_level:TransferRequest] :: TransferRequest -> SyncLevel [$sel:store_base_path_info:TransferRequest] :: TransferRequest -> Bool data TransferItem TransferItem :: DataType "transfer_item" -> FilePath -> FilePath -> Bool -> TransferItem [$sel:data_type:TransferItem] :: TransferItem -> DataType "transfer_item" [$sel:source_path:TransferItem] :: TransferItem -> FilePath [$sel:destination_path:TransferItem] :: TransferItem -> FilePath [$sel:recursive:TransferItem] :: TransferItem -> Bool data SyncLevel SyncExists :: SyncLevel SyncSize :: SyncLevel SyncTimestamp :: SyncLevel SyncChecksum :: SyncLevel dataLabelsJson :: (Generic a, GToJSON' Value Zero (Rep a)) => a -> Value dataLabels :: String -> String instance GHC.Show.Show Network.Globus.Transfer.IdResponse instance Data.Aeson.Types.FromJSON.FromJSON Network.Globus.Transfer.IdResponse instance GHC.Generics.Generic Network.Globus.Transfer.IdResponse instance GHC.Classes.Eq Network.Globus.Transfer.TaskStatus instance GHC.Show.Show Network.Globus.Transfer.TaskStatus instance GHC.Generics.Generic Network.Globus.Transfer.TaskStatus instance GHC.Classes.Eq Network.Globus.Transfer.Task instance GHC.Show.Show Network.Globus.Transfer.Task instance Data.Aeson.Types.FromJSON.FromJSON Network.Globus.Transfer.Task instance GHC.Generics.Generic Network.Globus.Transfer.Task instance GHC.Classes.Eq Network.Globus.Transfer.TaskFilters instance GHC.Show.Show Network.Globus.Transfer.TaskFilters instance GHC.Show.Show Network.Globus.Transfer.TaskList instance GHC.Generics.Generic Network.Globus.Transfer.TaskList instance GHC.Show.Show Network.Globus.Transfer.TransferResponse instance Data.Aeson.Types.FromJSON.FromJSON Network.Globus.Transfer.TransferResponse instance GHC.Generics.Generic Network.Globus.Transfer.TransferResponse instance GHC.Generics.Generic Network.Globus.Transfer.TransferItem instance GHC.Generics.Generic Network.Globus.Transfer.TransferRequest instance Data.Aeson.Types.ToJSON.ToJSON Network.Globus.Transfer.TransferRequest instance Data.Aeson.Types.ToJSON.ToJSON Network.Globus.Transfer.SyncLevel instance Data.Aeson.Types.ToJSON.ToJSON Network.Globus.Transfer.TransferItem instance Data.Aeson.Types.FromJSON.FromJSON Network.Globus.Transfer.TaskList instance GHC.Base.Monoid Network.Globus.Transfer.TaskFilters instance GHC.Base.Semigroup Network.Globus.Transfer.TaskFilters instance Data.Aeson.Types.FromJSON.FromJSON Network.Globus.Transfer.TaskStatus module Network.Globus.Auth -- | Opaque secret identifying the user. Validate on redirect newtype State State :: Text -> State -- | The end user must visit this url authorizationUrl :: Token ClientId -> Uri Redirect -> NonEmpty Scope -> State -> Uri Authorization fetchAccessTokens :: MonadIO m => Token ClientId -> Token ClientSecret -> Uri Redirect -> Token Exchange -> m (NonEmpty TokenItem) redirectUri :: QueryParam param => Uri Redirect -> param -- | fetchAccessTokens returns a non-empty list matching the scopes newtype TokenResponse TokenResponse :: NonEmpty TokenItem -> TokenResponse data TokenItem TokenItem :: Scopes -> Token Access -> Int -> State -> TokenItem [$sel:scope:TokenItem] :: TokenItem -> Scopes [$sel:access_token:TokenItem] :: TokenItem -> Token Access [$sel:expires_in:TokenItem] :: TokenItem -> Int [$sel:state:TokenItem] :: TokenItem -> State scopeToken :: Scope -> NonEmpty TokenItem -> Maybe (Token Access) -- | You MUST include the OpenId Scope for this to work fetchUserInfo :: MonadIO m => Token OpenId -> m UserInfoResponse identityAuth :: Token OpenId -> Option Https data UserInfoResponse UserInfoResponse :: UserInfo -> Maybe UserEmail -> Maybe UserProfile -> UserInfoResponse [$sel:info:UserInfoResponse] :: UserInfoResponse -> UserInfo [$sel:email:UserInfoResponse] :: UserInfoResponse -> Maybe UserEmail [$sel:profile:UserInfoResponse] :: UserInfoResponse -> Maybe UserProfile data UserInfo UserInfo :: Text -> Int -> UserInfo [$sel:sub:UserInfo] :: UserInfo -> Text [$sel:last_authentication:UserInfo] :: UserInfo -> Int newtype UserEmail UserEmail :: Text -> UserEmail data UserProfile UserProfile :: Text -> Text -> Text -> Text -> Text -> UserProfile [$sel:name:UserProfile] :: UserProfile -> Text [$sel:organization:UserProfile] :: UserProfile -> Text [$sel:preferred_username:UserProfile] :: UserProfile -> Text [$sel:identity_provider:UserProfile] :: UserProfile -> Text [$sel:identity_provider_display_name:UserProfile] :: UserProfile -> Text instance GHC.Show.Show Network.Globus.Auth.State instance Data.Aeson.Types.FromJSON.FromJSON Network.Globus.Auth.State instance Data.String.IsString Network.Globus.Auth.State instance GHC.Show.Show Network.Globus.Auth.TokenItem instance Data.Aeson.Types.FromJSON.FromJSON Network.Globus.Auth.TokenItem instance GHC.Generics.Generic Network.Globus.Auth.TokenItem instance GHC.Show.Show Network.Globus.Auth.TokenResponse instance GHC.Show.Show Network.Globus.Auth.UserInfo instance Data.Aeson.Types.FromJSON.FromJSON Network.Globus.Auth.UserInfo instance GHC.Generics.Generic Network.Globus.Auth.UserInfo instance GHC.Classes.Eq Network.Globus.Auth.UserEmail instance GHC.Show.Show Network.Globus.Auth.UserEmail instance Data.Aeson.Types.FromJSON.FromJSON Network.Globus.Auth.UserEmail instance GHC.Show.Show Network.Globus.Auth.UserProfile instance Data.Aeson.Types.FromJSON.FromJSON Network.Globus.Auth.UserProfile instance GHC.Generics.Generic Network.Globus.Auth.UserProfile instance Data.Aeson.Types.FromJSON.FromJSON Network.Globus.Auth.UserInfoResponse instance Data.Aeson.Types.FromJSON.FromJSON Network.Globus.Auth.TokenResponse module Network.Globus -- | A Tagged s b value is a value b with an -- attached phantom type s. This can be used in place of the -- more traditional but less safe idiom of passing in an undefined value -- with the type, because unlike an (s -> b), a -- Tagged s b can't try to use the argument s as -- a real value. -- -- Moreover, you don't have to rely on the compiler to inline away the -- extra argument, because the newtype is "free" -- -- Tagged has kind k -> * -> * if the compiler -- supports PolyKinds, therefore there is an extra k -- showing in the instance haddocks that may cause confusion. newtype () => Tagged (s :: k) b Tagged :: b -> Tagged (s :: k) b [unTagged] :: Tagged (s :: k) b -> b -- | A type-level tag that specifies URL scheme used (and thus if HTTPS is -- enabled). This is used to force TLS requirement for some -- authentication Options. data () => Scheme -- | HTTP Http :: Scheme -- | HTTPS Https :: Scheme module Effectful.Globus data Globus :: Effect [AuthUrl] :: Uri Redirect -> NonEmpty Scope -> State -> Globus m (Uri Authorization) [GetUserInfo] :: Token OpenId -> Globus m UserInfoResponse [GetAccessTokens] :: Token Exchange -> Uri Redirect -> Globus m (NonEmpty TokenItem) [SubmissionId] :: Token Access -> Globus m (Id Submission) [Transfer] :: Token Access -> TransferRequest -> Globus m TransferResponse [StatusTask] :: Token Access -> Id Task -> Globus m Task [StatusTasks] :: Token Access -> TaskFilters -> Globus m TaskList data GlobusClient GlobusClient :: Token ClientId -> Token ClientSecret -> GlobusClient [$sel:clientId:GlobusClient] :: GlobusClient -> Token ClientId [$sel:clientSecret:GlobusClient] :: GlobusClient -> Token ClientSecret runGlobus :: IOE :> es => GlobusClient -> Eff (Globus : es) a -> Eff es a -- | Opaque secret identifying the user. Validate on redirect newtype State State :: Text -> State -- | A Tagged s b value is a value b with an -- attached phantom type s. This can be used in place of the -- more traditional but less safe idiom of passing in an undefined value -- with the type, because unlike an (s -> b), a -- Tagged s b can't try to use the argument s as -- a real value. -- -- Moreover, you don't have to rely on the compiler to inline away the -- extra argument, because the newtype is "free" -- -- Tagged has kind k -> * -> * if the compiler -- supports PolyKinds, therefore there is an extra k -- showing in the instance haddocks that may cause confusion. newtype () => Tagged (s :: k) b Tagged :: b -> Tagged (s :: k) b [unTagged] :: Tagged (s :: k) b -> b data TransferRequest TransferRequest :: DataType "transfer" -> Id Submission -> Maybe Text -> Id Collection -> Id Collection -> [TransferItem] -> SyncLevel -> Bool -> TransferRequest [$sel:data_type:TransferRequest] :: TransferRequest -> DataType "transfer" [$sel:submission_id:TransferRequest] :: TransferRequest -> Id Submission [$sel:label:TransferRequest] :: TransferRequest -> Maybe Text [$sel:source_endpoint:TransferRequest] :: TransferRequest -> Id Collection [$sel:destination_endpoint:TransferRequest] :: TransferRequest -> Id Collection [$sel:data_:TransferRequest] :: TransferRequest -> [TransferItem] [$sel:sync_level:TransferRequest] :: TransferRequest -> SyncLevel [$sel:store_base_path_info:TransferRequest] :: TransferRequest -> Bool data TransferResponse TransferResponse :: Id Task -> Token Submission -> Text -> Text -> Token Request -> TransferResponse [$sel:task_id:TransferResponse] :: TransferResponse -> Id Task [$sel:submission_id:TransferResponse] :: TransferResponse -> Token Submission [$sel:message:TransferResponse] :: TransferResponse -> Text [$sel:resource:TransferResponse] :: TransferResponse -> Text [$sel:request_id:TransferResponse] :: TransferResponse -> Token Request data TransferItem TransferItem :: DataType "transfer_item" -> FilePath -> FilePath -> Bool -> TransferItem [$sel:data_type:TransferItem] :: TransferItem -> DataType "transfer_item" [$sel:source_path:TransferItem] :: TransferItem -> FilePath [$sel:destination_path:TransferItem] :: TransferItem -> FilePath [$sel:recursive:TransferItem] :: TransferItem -> Bool data SyncLevel SyncExists :: SyncLevel SyncSize :: SyncLevel SyncTimestamp :: SyncLevel SyncChecksum :: SyncLevel data Task Task :: TaskStatus -> Id Task -> Text -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Maybe Text -> Id Collection -> Id Collection -> Task [$sel:status:Task] :: Task -> TaskStatus [$sel:task_id:Task] :: Task -> Id Task [$sel:label:Task] :: Task -> Text [$sel:files:Task] :: Task -> Int [$sel:directories:Task] :: Task -> Int [$sel:files_skipped:Task] :: Task -> Int [$sel:files_transferred:Task] :: Task -> Int [$sel:bytes_transferred:Task] :: Task -> Int [$sel:bytes_checksummed:Task] :: Task -> Int [$sel:effective_bytes_per_second:Task] :: Task -> Int [$sel:nice_status:Task] :: Task -> Maybe Text [$sel:source_endpoint_id:Task] :: Task -> Id Collection [$sel:destination_endpoint_id:Task] :: Task -> Id Collection data TaskStatus Active :: TaskStatus Inactive :: TaskStatus Succeeded :: TaskStatus Failed :: TaskStatus newtype TaskFilters TaskFilters :: [TaskStatus] -> TaskFilters [$sel:status:TaskFilters] :: TaskFilters -> [TaskStatus] data TaskList TaskList :: Int -> Int -> Int -> Int -> [Task] -> TaskList [$sel:length:TaskList] :: TaskList -> Int [$sel:limit:TaskList] :: TaskList -> Int [$sel:offset:TaskList] :: TaskList -> Int [$sel:total:TaskList] :: TaskList -> Int [$sel:data_:TaskList] :: TaskList -> [Task] -- | A type-level tag that specifies URL scheme used (and thus if HTTPS is -- enabled). This is used to force TLS requirement for some -- authentication Options. data () => Scheme -- | HTTP Http :: Scheme -- | HTTPS Https :: Scheme