module Kubernetes.Model.V1.PersistentVolumeClaimSpec
( PersistentVolumeClaimSpec (..)
, accessModes
, resources
, volumeName
, mkPersistentVolumeClaimSpec
) 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.PersistentVolumeAccessMode (PersistentVolumeAccessMode)
import Kubernetes.Model.V1.ResourceRequirements (ResourceRequirements)
import Prelude hiding (drop,
error, max,
min)
import qualified Prelude as P
import Test.QuickCheck (Arbitrary,
arbitrary)
import Test.QuickCheck.Instances ()
data PersistentVolumeClaimSpec = PersistentVolumeClaimSpec
{ _accessModes :: !(Maybe [PersistentVolumeAccessMode])
, _resources :: !(Maybe ResourceRequirements)
, _volumeName :: !(Maybe Text)
} deriving (Show, Eq, Generic)
makeLenses ''PersistentVolumeClaimSpec
$(deriveJSON defaultOptions{fieldLabelModifier = (\n -> if n == "_type_" then "type" else P.drop 1 n)} ''PersistentVolumeClaimSpec)
instance Arbitrary PersistentVolumeClaimSpec where
arbitrary = PersistentVolumeClaimSpec <$> arbitrary <*> arbitrary <*> arbitrary
mkPersistentVolumeClaimSpec :: PersistentVolumeClaimSpec
mkPersistentVolumeClaimSpec = PersistentVolumeClaimSpec Nothing Nothing Nothing