module Kubernetes.Model.V1.PersistentVolume
( PersistentVolume (..)
, kind
, apiVersion
, metadata
, spec
, status
, mkPersistentVolume
) where
import Control.Lens.TH (makeLenses)
import Data.Aeson.TH (defaultOptions,
deriveJSON,
fieldLabelModifier)
import Data.Text (Text)
import GHC.Generics (Generic)
import Kubernetes.Model.V1.ObjectMeta (ObjectMeta)
import Kubernetes.Model.V1.PersistentVolumeSpec (PersistentVolumeSpec)
import Kubernetes.Model.V1.PersistentVolumeStatus (PersistentVolumeStatus)
import Prelude hiding (drop, error,
max, min)
import qualified Prelude as P
import Test.QuickCheck (Arbitrary,
arbitrary)
import Test.QuickCheck.Instances ()
data PersistentVolume = PersistentVolume
{ _kind :: !(Maybe Text)
, _apiVersion :: !(Maybe Text)
, _metadata :: !(Maybe ObjectMeta)
, _spec :: !(Maybe PersistentVolumeSpec)
, _status :: !(Maybe PersistentVolumeStatus)
} deriving (Show, Eq, Generic)
makeLenses ''PersistentVolume
$(deriveJSON defaultOptions{fieldLabelModifier = (\n -> if n == "_type_" then "type" else P.drop 1 n)} ''PersistentVolume)
instance Arbitrary PersistentVolume where
arbitrary = PersistentVolume <$> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary
mkPersistentVolume :: PersistentVolume
mkPersistentVolume = PersistentVolume Nothing Nothing Nothing Nothing Nothing