-
Notifications
You must be signed in to change notification settings - Fork 196
Expand file tree
/
Copy pathCache.hs
More file actions
78 lines (65 loc) · 2.62 KB
/
Cache.hs
File metadata and controls
78 lines (65 loc) · 2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE KindSignatures #-}
module GitHub.Data.Actions.Cache (
Cache(..),
RepositoryCacheUsage(..),
OrganizationCacheUsage(..)
) where
import GitHub.Data.Id (Id)
import GitHub.Internal.Prelude
import Prelude ()
import GitHub.Data.Actions.Common (WithTotalCount (WithTotalCount))
-------------------------------------------------------------------------------
-- Cache
-------------------------------------------------------------------------------
data Cache = Cache
{ cacheId :: !(Id Cache)
, cacheRef :: !Text
, cacheKey :: !Text
, cacheVersion :: !Text
, cacheLastAccessedAt :: !UTCTime
, cacheCreatedAt :: !UTCTime
, cacheSizeInBytes :: !Int
}
deriving (Show, Data, Eq, Ord, Generic)
data RepositoryCacheUsage = RepositoryCacheUsage
{ repositoryCacheUsageFullName :: !Text
, repositoryCacheUsageActiveCachesSizeInBytes :: !Int
, repositoryCacheUsageActiveCachesCount :: !Int
}
deriving (Show, Data, Eq, Ord, Generic)
data OrganizationCacheUsage = OrganizationCacheUsage
{ organizationCacheUsageTotalActiveCachesSizeInBytes :: !Int
, organizationCacheUsageTotalActiveCachesCount :: !Int
}
deriving (Show, Data, Eq, Ord, Generic)
-------------------------------------------------------------------------------
-- JSON instances
-------------------------------------------------------------------------------
instance FromJSON Cache where
parseJSON = withObject "Cache" $ \o -> Cache
<$> o .: "id"
<*> o .: "ref"
<*> o .: "key"
<*> o .: "version"
<*> o .: "last_accessed_at"
<*> o .: "created_at"
<*> o .: "size_in_bytes"
instance FromJSON (WithTotalCount Cache) where
parseJSON = withObject "CacheList" $ \o -> WithTotalCount
<$> o .: "actions_caches"
<*> o .: "total_count"
instance FromJSON OrganizationCacheUsage where
parseJSON = withObject "OrganizationCacheUsage" $ \o -> OrganizationCacheUsage
<$> o .: "total_active_caches_size_in_bytes"
<*> o .: "total_active_caches_count"
instance FromJSON RepositoryCacheUsage where
parseJSON = withObject "RepositoryCacheUsage" $ \o -> RepositoryCacheUsage
<$> o .: "full_name"
<*> o .: "active_caches_size_in_bytes"
<*> o .: "active_caches_count"
instance FromJSON (WithTotalCount RepositoryCacheUsage) where
parseJSON = withObject "CacheUsageList" $ \o -> WithTotalCount
<$> o .: "repository_cache_usages"
<*> o .: "total_count"