packages feed

cachix-api-1.14.0: src/Cachix/Types/PinCreate.hs

module Cachix.Types.PinCreate where

import Data.Aeson (FromJSON, ToJSON)
import qualified Data.OpenApi as OpenApi
import qualified Data.Swagger as Swagger
import Protolude

data Keep = Days Int | Revisions Int | Forever
  deriving (Show, Eq, Generic, ToJSON, FromJSON, OpenApi.ToSchema)

-- to support Keep with data constructor with arguments
instance Swagger.ToSchema Keep where
  declareNamedSchema = Swagger.genericDeclareNamedSchemaUnrestricted Swagger.defaultSchemaOptions

data PinCreate = PinCreate
  { name :: Text,
    storePath :: Text,
    artifacts :: [Text],
    keep :: Maybe Keep
  }
  deriving (Show, Eq, Generic, ToJSON, FromJSON, Swagger.ToSchema, OpenApi.ToSchema)