Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- type Asset = Asset' (Qualified AssetKey)
- data Asset' key
- mkAsset :: key -> Asset' key
- assetKey :: forall key key. Lens (Asset' key) (Asset' key) key key
- assetExpires :: forall key. Lens' (Asset' key) (Maybe UTCTime)
- assetToken :: forall key. Lens' (Asset' key) (Maybe AssetToken)
- data AssetKey = AssetKeyV3 AssetId AssetRetention
- assetKeyToText :: AssetKey -> Text
- newtype AssetToken = AssetToken {}
- newtype NewAssetToken = NewAssetToken {}
- buildMultipartBody :: AssetSettings -> Type -> LByteString -> Builder
- beginMultipartBody :: AssetSettings -> AssetHeaders -> Builder
- endMultipartBody :: Builder
- data AssetHeaders = AssetHeaders {}
- mkHeaders :: Type -> LByteString -> AssetHeaders
- data AssetSettings
- defAssetSettings :: AssetSettings
- setAssetPublic :: Lens' AssetSettings Bool
- setAssetRetention :: Lens' AssetSettings (Maybe AssetRetention)
- data AssetRetention
- assetRetentionSeconds :: AssetRetention -> Maybe NominalDiffTime
- assetExpiringSeconds :: NominalDiffTime
- assetVolatileSeconds :: NominalDiffTime
- retentionToTextRep :: AssetRetention -> Text
- newtype AssetLocation r = AssetLocation {
- getAssetLocation :: URIRef r
- data LocalOrRemoteAsset
Asset
A newly uploaded asset.
Instances
assetToken :: forall key. Lens' (Asset' key) (Maybe AssetToken) Source #
AssetKey
A unique, versioned asset identifier. Note: Can be turned into a sum type with additional constructors for future versions.
Instances
assetKeyToText :: AssetKey -> Text Source #
AssetToken
newtype AssetToken Source #
Asset tokens are bearer tokens that grant access to a single asset.
Instances
newtype NewAssetToken Source #
A newly (re)generated token for an existing asset.
Instances
Arbitrary NewAssetToken Source # | |
Defined in Wire.API.Asset arbitrary :: Gen NewAssetToken Source # shrink :: NewAssetToken -> [NewAssetToken] Source # | |
FromJSON NewAssetToken Source # | |
Defined in Wire.API.Asset parseJSON :: Value -> Parser NewAssetToken Source # parseJSONList :: Value -> Parser [NewAssetToken] Source # | |
ToJSON NewAssetToken Source # | |
Defined in Wire.API.Asset toJSON :: NewAssetToken -> Value Source # toEncoding :: NewAssetToken -> Encoding Source # toJSONList :: [NewAssetToken] -> Value Source # toEncodingList :: [NewAssetToken] -> Encoding Source # | |
Show NewAssetToken Source # | |
Defined in Wire.API.Asset showsPrec :: Int -> NewAssetToken -> ShowS # show :: NewAssetToken -> String # showList :: [NewAssetToken] -> ShowS # | |
Eq NewAssetToken Source # | |
Defined in Wire.API.Asset (==) :: NewAssetToken -> NewAssetToken -> Bool # (/=) :: NewAssetToken -> NewAssetToken -> Bool # | |
ToSchema NewAssetToken Source # | |
Defined in Wire.API.Asset | |
ToSchema NewAssetToken Source # | |
Defined in Wire.API.Asset |
Body Construction
buildMultipartBody :: AssetSettings -> Type -> LByteString -> Builder Source #
Build a complete multipart/mixed
request body for a one-shot,
non-resumable asset upload.
beginMultipartBody :: AssetSettings -> AssetHeaders -> Builder Source #
Begin building a multipart/mixed
request body for a non-resumable upload.
The returned Builder
can be immediately followed by the actual asset bytes.
endMultipartBody :: Builder Source #
The trailer of a non-resumable multipart/mixed
request body initiated
via beginMultipartBody
.
AssetHeaders
mkHeaders :: Type -> LByteString -> AssetHeaders Source #
AssetSettings
data AssetSettings Source #
Settings provided during upload.
Instances
data AssetRetention Source #
The desired asset retention.
AssetEternal | The asset is retained indefinitely. Typically used for profile pictures / assets frequently accessed. |
AssetPersistent | DEPRECATED: should not be used by clients for new assets The asset is retained indefinitely. |
AssetVolatile | The asset is retained for a short period of time. |
AssetEternalInfrequentAccess | The asset is retained indefinitely, storage is optimised for infrequent access |
AssetExpiring | The asset is retained for an extended period of time, but not indefinitely. |
Instances
assetRetentionSeconds :: AssetRetention -> Maybe NominalDiffTime Source #
The minimum TTL in seconds corresponding to a chosen retention.
Streaming
newtype AssetLocation r Source #
Instances
data LocalOrRemoteAsset Source #
An asset as returned by the download API: if the asset is local, only a URL is returned, and if it is remote the content of the asset is streamed.
Instances
(ResponseType r1 ~ AssetLocation Absolute, ResponseType r2 ~ SourceIO ByteString, KnownError (MapError e)) => AsUnion '[ErrorResponse e, r1, r2] (Maybe LocalOrRemoteAsset) Source # | |
Defined in Wire.API.Asset toUnion :: Maybe LocalOrRemoteAsset -> Union (ResponseTypes '[ErrorResponse e, r1, r2]) Source # fromUnion :: Union (ResponseTypes '[ErrorResponse e, r1, r2]) -> Maybe LocalOrRemoteAsset Source # |