{-
   Kubernetes

   No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)

   OpenAPI Version: 3.0.1
   Kubernetes API version: release-1.16
   Generated by OpenAPI Generator (https://openapi-generator.tech)
-}

{-|
Module : Kubernetes.OpenAPI.Model
-}

{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveFoldable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveTraversable #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-matches -fno-warn-unused-binds -fno-warn-unused-imports #-}

module Kubernetes.OpenAPI.Model (module Kubernetes.OpenAPI.Model, module Kubernetes.OpenAPI.ImportMappings) where

import Kubernetes.OpenAPI.Core
import Kubernetes.OpenAPI.MimeTypes
import Kubernetes.OpenAPI.ImportMappings

import Data.Aeson ((.:),(.:!),(.:?),(.=))

import qualified Control.Arrow as P (left)
import qualified Data.Aeson as A
import qualified Data.ByteString as B
import qualified Data.ByteString.Base64 as B64
import qualified Data.ByteString.Char8 as BC
import qualified Data.ByteString.Lazy as BL
import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)
import qualified Data.Foldable as P
import qualified Data.HashMap.Lazy as HM
import qualified Data.Map as Map
import qualified Data.Maybe as P
import qualified Data.Set as Set
import qualified Data.Text as T
import qualified Data.Text.Encoding as T
import qualified Data.Time as TI
import qualified Lens.Micro as L
import qualified Web.FormUrlEncoded as WH
import qualified Web.HttpApiData as WH

import Control.Applicative ((<|>))
import Control.Applicative (Alternative)
import Data.Function ((&))
import Data.Monoid ((<>))
import Data.Text (Text)
import Prelude (($),(/=),(.),(<$>),(<*>),(>>=),(=<<),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)

import qualified Prelude as P



-- * Parameter newtypes


-- ** AllowWatchBookmarks
newtype AllowWatchBookmarks = AllowWatchBookmarks { AllowWatchBookmarks -> Bool
unAllowWatchBookmarks :: Bool } deriving (AllowWatchBookmarks -> AllowWatchBookmarks -> Bool
(AllowWatchBookmarks -> AllowWatchBookmarks -> Bool)
-> (AllowWatchBookmarks -> AllowWatchBookmarks -> Bool)
-> Eq AllowWatchBookmarks
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AllowWatchBookmarks -> AllowWatchBookmarks -> Bool
$c/= :: AllowWatchBookmarks -> AllowWatchBookmarks -> Bool
== :: AllowWatchBookmarks -> AllowWatchBookmarks -> Bool
$c== :: AllowWatchBookmarks -> AllowWatchBookmarks -> Bool
P.Eq, Int -> AllowWatchBookmarks -> ShowS
[AllowWatchBookmarks] -> ShowS
AllowWatchBookmarks -> String
(Int -> AllowWatchBookmarks -> ShowS)
-> (AllowWatchBookmarks -> String)
-> ([AllowWatchBookmarks] -> ShowS)
-> Show AllowWatchBookmarks
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AllowWatchBookmarks] -> ShowS
$cshowList :: [AllowWatchBookmarks] -> ShowS
show :: AllowWatchBookmarks -> String
$cshow :: AllowWatchBookmarks -> String
showsPrec :: Int -> AllowWatchBookmarks -> ShowS
$cshowsPrec :: Int -> AllowWatchBookmarks -> ShowS
P.Show)

-- ** Body
newtype Body = Body { Body -> Value
unBody :: A.Value } deriving (Body -> Body -> Bool
(Body -> Body -> Bool) -> (Body -> Body -> Bool) -> Eq Body
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Body -> Body -> Bool
$c/= :: Body -> Body -> Bool
== :: Body -> Body -> Bool
$c== :: Body -> Body -> Bool
P.Eq, Int -> Body -> ShowS
[Body] -> ShowS
Body -> String
(Int -> Body -> ShowS)
-> (Body -> String) -> ([Body] -> ShowS) -> Show Body
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Body] -> ShowS
$cshowList :: [Body] -> ShowS
show :: Body -> String
$cshow :: Body -> String
showsPrec :: Int -> Body -> ShowS
$cshowsPrec :: Int -> Body -> ShowS
P.Show, [Body] -> Encoding
[Body] -> Value
Body -> Encoding
Body -> Value
(Body -> Value)
-> (Body -> Encoding)
-> ([Body] -> Value)
-> ([Body] -> Encoding)
-> ToJSON Body
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [Body] -> Encoding
$ctoEncodingList :: [Body] -> Encoding
toJSONList :: [Body] -> Value
$ctoJSONList :: [Body] -> Value
toEncoding :: Body -> Encoding
$ctoEncoding :: Body -> Encoding
toJSON :: Body -> Value
$ctoJSON :: Body -> Value
A.ToJSON)

-- ** Command
newtype Command = Command { Command -> Text
unCommand :: Text } deriving (Command -> Command -> Bool
(Command -> Command -> Bool)
-> (Command -> Command -> Bool) -> Eq Command
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Command -> Command -> Bool
$c/= :: Command -> Command -> Bool
== :: Command -> Command -> Bool
$c== :: Command -> Command -> Bool
P.Eq, Int -> Command -> ShowS
[Command] -> ShowS
Command -> String
(Int -> Command -> ShowS)
-> (Command -> String) -> ([Command] -> ShowS) -> Show Command
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Command] -> ShowS
$cshowList :: [Command] -> ShowS
show :: Command -> String
$cshow :: Command -> String
showsPrec :: Int -> Command -> ShowS
$cshowsPrec :: Int -> Command -> ShowS
P.Show)

-- ** Container
newtype Container = Container { Container -> Text
unContainer :: Text } deriving (Container -> Container -> Bool
(Container -> Container -> Bool)
-> (Container -> Container -> Bool) -> Eq Container
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Container -> Container -> Bool
$c/= :: Container -> Container -> Bool
== :: Container -> Container -> Bool
$c== :: Container -> Container -> Bool
P.Eq, Int -> Container -> ShowS
[Container] -> ShowS
Container -> String
(Int -> Container -> ShowS)
-> (Container -> String)
-> ([Container] -> ShowS)
-> Show Container
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Container] -> ShowS
$cshowList :: [Container] -> ShowS
show :: Container -> String
$cshow :: Container -> String
showsPrec :: Int -> Container -> ShowS
$cshowsPrec :: Int -> Container -> ShowS
P.Show)

-- ** Continue
newtype Continue = Continue { Continue -> Text
unContinue :: Text } deriving (Continue -> Continue -> Bool
(Continue -> Continue -> Bool)
-> (Continue -> Continue -> Bool) -> Eq Continue
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Continue -> Continue -> Bool
$c/= :: Continue -> Continue -> Bool
== :: Continue -> Continue -> Bool
$c== :: Continue -> Continue -> Bool
P.Eq, Int -> Continue -> ShowS
[Continue] -> ShowS
Continue -> String
(Int -> Continue -> ShowS)
-> (Continue -> String) -> ([Continue] -> ShowS) -> Show Continue
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Continue] -> ShowS
$cshowList :: [Continue] -> ShowS
show :: Continue -> String
$cshow :: Continue -> String
showsPrec :: Int -> Continue -> ShowS
$cshowsPrec :: Int -> Continue -> ShowS
P.Show)

-- ** DryRun
newtype DryRun = DryRun { DryRun -> Text
unDryRun :: Text } deriving (DryRun -> DryRun -> Bool
(DryRun -> DryRun -> Bool)
-> (DryRun -> DryRun -> Bool) -> Eq DryRun
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DryRun -> DryRun -> Bool
$c/= :: DryRun -> DryRun -> Bool
== :: DryRun -> DryRun -> Bool
$c== :: DryRun -> DryRun -> Bool
P.Eq, Int -> DryRun -> ShowS
[DryRun] -> ShowS
DryRun -> String
(Int -> DryRun -> ShowS)
-> (DryRun -> String) -> ([DryRun] -> ShowS) -> Show DryRun
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DryRun] -> ShowS
$cshowList :: [DryRun] -> ShowS
show :: DryRun -> String
$cshow :: DryRun -> String
showsPrec :: Int -> DryRun -> ShowS
$cshowsPrec :: Int -> DryRun -> ShowS
P.Show)

-- ** Exact
newtype Exact = Exact { Exact -> Bool
unExact :: Bool } deriving (Exact -> Exact -> Bool
(Exact -> Exact -> Bool) -> (Exact -> Exact -> Bool) -> Eq Exact
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Exact -> Exact -> Bool
$c/= :: Exact -> Exact -> Bool
== :: Exact -> Exact -> Bool
$c== :: Exact -> Exact -> Bool
P.Eq, Int -> Exact -> ShowS
[Exact] -> ShowS
Exact -> String
(Int -> Exact -> ShowS)
-> (Exact -> String) -> ([Exact] -> ShowS) -> Show Exact
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Exact] -> ShowS
$cshowList :: [Exact] -> ShowS
show :: Exact -> String
$cshow :: Exact -> String
showsPrec :: Int -> Exact -> ShowS
$cshowsPrec :: Int -> Exact -> ShowS
P.Show)

-- ** Export
newtype Export = Export { Export -> Bool
unExport :: Bool } deriving (Export -> Export -> Bool
(Export -> Export -> Bool)
-> (Export -> Export -> Bool) -> Eq Export
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Export -> Export -> Bool
$c/= :: Export -> Export -> Bool
== :: Export -> Export -> Bool
$c== :: Export -> Export -> Bool
P.Eq, Int -> Export -> ShowS
[Export] -> ShowS
Export -> String
(Int -> Export -> ShowS)
-> (Export -> String) -> ([Export] -> ShowS) -> Show Export
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Export] -> ShowS
$cshowList :: [Export] -> ShowS
show :: Export -> String
$cshow :: Export -> String
showsPrec :: Int -> Export -> ShowS
$cshowsPrec :: Int -> Export -> ShowS
P.Show)

-- ** FieldManager
newtype FieldManager = FieldManager { FieldManager -> Text
unFieldManager :: Text } deriving (FieldManager -> FieldManager -> Bool
(FieldManager -> FieldManager -> Bool)
-> (FieldManager -> FieldManager -> Bool) -> Eq FieldManager
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FieldManager -> FieldManager -> Bool
$c/= :: FieldManager -> FieldManager -> Bool
== :: FieldManager -> FieldManager -> Bool
$c== :: FieldManager -> FieldManager -> Bool
P.Eq, Int -> FieldManager -> ShowS
[FieldManager] -> ShowS
FieldManager -> String
(Int -> FieldManager -> ShowS)
-> (FieldManager -> String)
-> ([FieldManager] -> ShowS)
-> Show FieldManager
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FieldManager] -> ShowS
$cshowList :: [FieldManager] -> ShowS
show :: FieldManager -> String
$cshow :: FieldManager -> String
showsPrec :: Int -> FieldManager -> ShowS
$cshowsPrec :: Int -> FieldManager -> ShowS
P.Show)

-- ** FieldSelector
newtype FieldSelector = FieldSelector { FieldSelector -> Text
unFieldSelector :: Text } deriving (FieldSelector -> FieldSelector -> Bool
(FieldSelector -> FieldSelector -> Bool)
-> (FieldSelector -> FieldSelector -> Bool) -> Eq FieldSelector
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FieldSelector -> FieldSelector -> Bool
$c/= :: FieldSelector -> FieldSelector -> Bool
== :: FieldSelector -> FieldSelector -> Bool
$c== :: FieldSelector -> FieldSelector -> Bool
P.Eq, Int -> FieldSelector -> ShowS
[FieldSelector] -> ShowS
FieldSelector -> String
(Int -> FieldSelector -> ShowS)
-> (FieldSelector -> String)
-> ([FieldSelector] -> ShowS)
-> Show FieldSelector
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FieldSelector] -> ShowS
$cshowList :: [FieldSelector] -> ShowS
show :: FieldSelector -> String
$cshow :: FieldSelector -> String
showsPrec :: Int -> FieldSelector -> ShowS
$cshowsPrec :: Int -> FieldSelector -> ShowS
P.Show)

-- ** Follow
newtype Follow = Follow { Follow -> Bool
unFollow :: Bool } deriving (Follow -> Follow -> Bool
(Follow -> Follow -> Bool)
-> (Follow -> Follow -> Bool) -> Eq Follow
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Follow -> Follow -> Bool
$c/= :: Follow -> Follow -> Bool
== :: Follow -> Follow -> Bool
$c== :: Follow -> Follow -> Bool
P.Eq, Int -> Follow -> ShowS
[Follow] -> ShowS
Follow -> String
(Int -> Follow -> ShowS)
-> (Follow -> String) -> ([Follow] -> ShowS) -> Show Follow
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Follow] -> ShowS
$cshowList :: [Follow] -> ShowS
show :: Follow -> String
$cshow :: Follow -> String
showsPrec :: Int -> Follow -> ShowS
$cshowsPrec :: Int -> Follow -> ShowS
P.Show)

-- ** Force
newtype Force = Force { Force -> Bool
unForce :: Bool } deriving (Force -> Force -> Bool
(Force -> Force -> Bool) -> (Force -> Force -> Bool) -> Eq Force
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Force -> Force -> Bool
$c/= :: Force -> Force -> Bool
== :: Force -> Force -> Bool
$c== :: Force -> Force -> Bool
P.Eq, Int -> Force -> ShowS
[Force] -> ShowS
Force -> String
(Int -> Force -> ShowS)
-> (Force -> String) -> ([Force] -> ShowS) -> Show Force
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Force] -> ShowS
$cshowList :: [Force] -> ShowS
show :: Force -> String
$cshow :: Force -> String
showsPrec :: Int -> Force -> ShowS
$cshowsPrec :: Int -> Force -> ShowS
P.Show)

-- ** GracePeriodSeconds
newtype GracePeriodSeconds = GracePeriodSeconds { GracePeriodSeconds -> Int
unGracePeriodSeconds :: Int } deriving (GracePeriodSeconds -> GracePeriodSeconds -> Bool
(GracePeriodSeconds -> GracePeriodSeconds -> Bool)
-> (GracePeriodSeconds -> GracePeriodSeconds -> Bool)
-> Eq GracePeriodSeconds
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GracePeriodSeconds -> GracePeriodSeconds -> Bool
$c/= :: GracePeriodSeconds -> GracePeriodSeconds -> Bool
== :: GracePeriodSeconds -> GracePeriodSeconds -> Bool
$c== :: GracePeriodSeconds -> GracePeriodSeconds -> Bool
P.Eq, Int -> GracePeriodSeconds -> ShowS
[GracePeriodSeconds] -> ShowS
GracePeriodSeconds -> String
(Int -> GracePeriodSeconds -> ShowS)
-> (GracePeriodSeconds -> String)
-> ([GracePeriodSeconds] -> ShowS)
-> Show GracePeriodSeconds
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GracePeriodSeconds] -> ShowS
$cshowList :: [GracePeriodSeconds] -> ShowS
show :: GracePeriodSeconds -> String
$cshow :: GracePeriodSeconds -> String
showsPrec :: Int -> GracePeriodSeconds -> ShowS
$cshowsPrec :: Int -> GracePeriodSeconds -> ShowS
P.Show)

-- ** Group
newtype Group = Group { Group -> Text
unGroup :: Text } deriving (Group -> Group -> Bool
(Group -> Group -> Bool) -> (Group -> Group -> Bool) -> Eq Group
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Group -> Group -> Bool
$c/= :: Group -> Group -> Bool
== :: Group -> Group -> Bool
$c== :: Group -> Group -> Bool
P.Eq, Int -> Group -> ShowS
[Group] -> ShowS
Group -> String
(Int -> Group -> ShowS)
-> (Group -> String) -> ([Group] -> ShowS) -> Show Group
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Group] -> ShowS
$cshowList :: [Group] -> ShowS
show :: Group -> String
$cshow :: Group -> String
showsPrec :: Int -> Group -> ShowS
$cshowsPrec :: Int -> Group -> ShowS
P.Show)

-- ** LabelSelector
newtype LabelSelector = LabelSelector { LabelSelector -> Text
unLabelSelector :: Text } deriving (LabelSelector -> LabelSelector -> Bool
(LabelSelector -> LabelSelector -> Bool)
-> (LabelSelector -> LabelSelector -> Bool) -> Eq LabelSelector
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LabelSelector -> LabelSelector -> Bool
$c/= :: LabelSelector -> LabelSelector -> Bool
== :: LabelSelector -> LabelSelector -> Bool
$c== :: LabelSelector -> LabelSelector -> Bool
P.Eq, Int -> LabelSelector -> ShowS
[LabelSelector] -> ShowS
LabelSelector -> String
(Int -> LabelSelector -> ShowS)
-> (LabelSelector -> String)
-> ([LabelSelector] -> ShowS)
-> Show LabelSelector
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LabelSelector] -> ShowS
$cshowList :: [LabelSelector] -> ShowS
show :: LabelSelector -> String
$cshow :: LabelSelector -> String
showsPrec :: Int -> LabelSelector -> ShowS
$cshowsPrec :: Int -> LabelSelector -> ShowS
P.Show)

-- ** Limit
newtype Limit = Limit { Limit -> Int
unLimit :: Int } deriving (Limit -> Limit -> Bool
(Limit -> Limit -> Bool) -> (Limit -> Limit -> Bool) -> Eq Limit
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Limit -> Limit -> Bool
$c/= :: Limit -> Limit -> Bool
== :: Limit -> Limit -> Bool
$c== :: Limit -> Limit -> Bool
P.Eq, Int -> Limit -> ShowS
[Limit] -> ShowS
Limit -> String
(Int -> Limit -> ShowS)
-> (Limit -> String) -> ([Limit] -> ShowS) -> Show Limit
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Limit] -> ShowS
$cshowList :: [Limit] -> ShowS
show :: Limit -> String
$cshow :: Limit -> String
showsPrec :: Int -> Limit -> ShowS
$cshowsPrec :: Int -> Limit -> ShowS
P.Show)

-- ** LimitBytes
newtype LimitBytes = LimitBytes { LimitBytes -> Int
unLimitBytes :: Int } deriving (LimitBytes -> LimitBytes -> Bool
(LimitBytes -> LimitBytes -> Bool)
-> (LimitBytes -> LimitBytes -> Bool) -> Eq LimitBytes
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LimitBytes -> LimitBytes -> Bool
$c/= :: LimitBytes -> LimitBytes -> Bool
== :: LimitBytes -> LimitBytes -> Bool
$c== :: LimitBytes -> LimitBytes -> Bool
P.Eq, Int -> LimitBytes -> ShowS
[LimitBytes] -> ShowS
LimitBytes -> String
(Int -> LimitBytes -> ShowS)
-> (LimitBytes -> String)
-> ([LimitBytes] -> ShowS)
-> Show LimitBytes
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LimitBytes] -> ShowS
$cshowList :: [LimitBytes] -> ShowS
show :: LimitBytes -> String
$cshow :: LimitBytes -> String
showsPrec :: Int -> LimitBytes -> ShowS
$cshowsPrec :: Int -> LimitBytes -> ShowS
P.Show)

-- ** Logpath
newtype Logpath = Logpath { Logpath -> Text
unLogpath :: Text } deriving (Logpath -> Logpath -> Bool
(Logpath -> Logpath -> Bool)
-> (Logpath -> Logpath -> Bool) -> Eq Logpath
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Logpath -> Logpath -> Bool
$c/= :: Logpath -> Logpath -> Bool
== :: Logpath -> Logpath -> Bool
$c== :: Logpath -> Logpath -> Bool
P.Eq, Int -> Logpath -> ShowS
[Logpath] -> ShowS
Logpath -> String
(Int -> Logpath -> ShowS)
-> (Logpath -> String) -> ([Logpath] -> ShowS) -> Show Logpath
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Logpath] -> ShowS
$cshowList :: [Logpath] -> ShowS
show :: Logpath -> String
$cshow :: Logpath -> String
showsPrec :: Int -> Logpath -> ShowS
$cshowsPrec :: Int -> Logpath -> ShowS
P.Show)

-- ** Name
newtype Name = Name { Name -> Text
unName :: Text } deriving (Name -> Name -> Bool
(Name -> Name -> Bool) -> (Name -> Name -> Bool) -> Eq Name
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Name -> Name -> Bool
$c/= :: Name -> Name -> Bool
== :: Name -> Name -> Bool
$c== :: Name -> Name -> Bool
P.Eq, Int -> Name -> ShowS
[Name] -> ShowS
Name -> String
(Int -> Name -> ShowS)
-> (Name -> String) -> ([Name] -> ShowS) -> Show Name
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Name] -> ShowS
$cshowList :: [Name] -> ShowS
show :: Name -> String
$cshow :: Name -> String
showsPrec :: Int -> Name -> ShowS
$cshowsPrec :: Int -> Name -> ShowS
P.Show)

-- ** Namespace
newtype Namespace = Namespace { Namespace -> Text
unNamespace :: Text } deriving (Namespace -> Namespace -> Bool
(Namespace -> Namespace -> Bool)
-> (Namespace -> Namespace -> Bool) -> Eq Namespace
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Namespace -> Namespace -> Bool
$c/= :: Namespace -> Namespace -> Bool
== :: Namespace -> Namespace -> Bool
$c== :: Namespace -> Namespace -> Bool
P.Eq, Int -> Namespace -> ShowS
[Namespace] -> ShowS
Namespace -> String
(Int -> Namespace -> ShowS)
-> (Namespace -> String)
-> ([Namespace] -> ShowS)
-> Show Namespace
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Namespace] -> ShowS
$cshowList :: [Namespace] -> ShowS
show :: Namespace -> String
$cshow :: Namespace -> String
showsPrec :: Int -> Namespace -> ShowS
$cshowsPrec :: Int -> Namespace -> ShowS
P.Show)

-- ** OrphanDependents
newtype OrphanDependents = OrphanDependents { OrphanDependents -> Bool
unOrphanDependents :: Bool } deriving (OrphanDependents -> OrphanDependents -> Bool
(OrphanDependents -> OrphanDependents -> Bool)
-> (OrphanDependents -> OrphanDependents -> Bool)
-> Eq OrphanDependents
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OrphanDependents -> OrphanDependents -> Bool
$c/= :: OrphanDependents -> OrphanDependents -> Bool
== :: OrphanDependents -> OrphanDependents -> Bool
$c== :: OrphanDependents -> OrphanDependents -> Bool
P.Eq, Int -> OrphanDependents -> ShowS
[OrphanDependents] -> ShowS
OrphanDependents -> String
(Int -> OrphanDependents -> ShowS)
-> (OrphanDependents -> String)
-> ([OrphanDependents] -> ShowS)
-> Show OrphanDependents
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [OrphanDependents] -> ShowS
$cshowList :: [OrphanDependents] -> ShowS
show :: OrphanDependents -> String
$cshow :: OrphanDependents -> String
showsPrec :: Int -> OrphanDependents -> ShowS
$cshowsPrec :: Int -> OrphanDependents -> ShowS
P.Show)

-- ** Path
newtype Path = Path { Path -> Text
unPath :: Text } deriving (Path -> Path -> Bool
(Path -> Path -> Bool) -> (Path -> Path -> Bool) -> Eq Path
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Path -> Path -> Bool
$c/= :: Path -> Path -> Bool
== :: Path -> Path -> Bool
$c== :: Path -> Path -> Bool
P.Eq, Int -> Path -> ShowS
[Path] -> ShowS
Path -> String
(Int -> Path -> ShowS)
-> (Path -> String) -> ([Path] -> ShowS) -> Show Path
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Path] -> ShowS
$cshowList :: [Path] -> ShowS
show :: Path -> String
$cshow :: Path -> String
showsPrec :: Int -> Path -> ShowS
$cshowsPrec :: Int -> Path -> ShowS
P.Show)

-- ** Path2
newtype Path2 = Path2 { Path2 -> Text
unPath2 :: Text } deriving (Path2 -> Path2 -> Bool
(Path2 -> Path2 -> Bool) -> (Path2 -> Path2 -> Bool) -> Eq Path2
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Path2 -> Path2 -> Bool
$c/= :: Path2 -> Path2 -> Bool
== :: Path2 -> Path2 -> Bool
$c== :: Path2 -> Path2 -> Bool
P.Eq, Int -> Path2 -> ShowS
[Path2] -> ShowS
Path2 -> String
(Int -> Path2 -> ShowS)
-> (Path2 -> String) -> ([Path2] -> ShowS) -> Show Path2
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Path2] -> ShowS
$cshowList :: [Path2] -> ShowS
show :: Path2 -> String
$cshow :: Path2 -> String
showsPrec :: Int -> Path2 -> ShowS
$cshowsPrec :: Int -> Path2 -> ShowS
P.Show)

-- ** Plural
newtype Plural = Plural { Plural -> Text
unPlural :: Text } deriving (Plural -> Plural -> Bool
(Plural -> Plural -> Bool)
-> (Plural -> Plural -> Bool) -> Eq Plural
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Plural -> Plural -> Bool
$c/= :: Plural -> Plural -> Bool
== :: Plural -> Plural -> Bool
$c== :: Plural -> Plural -> Bool
P.Eq, Int -> Plural -> ShowS
[Plural] -> ShowS
Plural -> String
(Int -> Plural -> ShowS)
-> (Plural -> String) -> ([Plural] -> ShowS) -> Show Plural
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Plural] -> ShowS
$cshowList :: [Plural] -> ShowS
show :: Plural -> String
$cshow :: Plural -> String
showsPrec :: Int -> Plural -> ShowS
$cshowsPrec :: Int -> Plural -> ShowS
P.Show)

-- ** Ports
newtype Ports = Ports { Ports -> Int
unPorts :: Int } deriving (Ports -> Ports -> Bool
(Ports -> Ports -> Bool) -> (Ports -> Ports -> Bool) -> Eq Ports
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Ports -> Ports -> Bool
$c/= :: Ports -> Ports -> Bool
== :: Ports -> Ports -> Bool
$c== :: Ports -> Ports -> Bool
P.Eq, Int -> Ports -> ShowS
[Ports] -> ShowS
Ports -> String
(Int -> Ports -> ShowS)
-> (Ports -> String) -> ([Ports] -> ShowS) -> Show Ports
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Ports] -> ShowS
$cshowList :: [Ports] -> ShowS
show :: Ports -> String
$cshow :: Ports -> String
showsPrec :: Int -> Ports -> ShowS
$cshowsPrec :: Int -> Ports -> ShowS
P.Show)

-- ** Pretty
newtype Pretty = Pretty { Pretty -> Text
unPretty :: Text } deriving (Pretty -> Pretty -> Bool
(Pretty -> Pretty -> Bool)
-> (Pretty -> Pretty -> Bool) -> Eq Pretty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Pretty -> Pretty -> Bool
$c/= :: Pretty -> Pretty -> Bool
== :: Pretty -> Pretty -> Bool
$c== :: Pretty -> Pretty -> Bool
P.Eq, Int -> Pretty -> ShowS
[Pretty] -> ShowS
Pretty -> String
(Int -> Pretty -> ShowS)
-> (Pretty -> String) -> ([Pretty] -> ShowS) -> Show Pretty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Pretty] -> ShowS
$cshowList :: [Pretty] -> ShowS
show :: Pretty -> String
$cshow :: Pretty -> String
showsPrec :: Int -> Pretty -> ShowS
$cshowsPrec :: Int -> Pretty -> ShowS
P.Show)

-- ** Previous
newtype Previous = Previous { Previous -> Bool
unPrevious :: Bool } deriving (Previous -> Previous -> Bool
(Previous -> Previous -> Bool)
-> (Previous -> Previous -> Bool) -> Eq Previous
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Previous -> Previous -> Bool
$c/= :: Previous -> Previous -> Bool
== :: Previous -> Previous -> Bool
$c== :: Previous -> Previous -> Bool
P.Eq, Int -> Previous -> ShowS
[Previous] -> ShowS
Previous -> String
(Int -> Previous -> ShowS)
-> (Previous -> String) -> ([Previous] -> ShowS) -> Show Previous
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Previous] -> ShowS
$cshowList :: [Previous] -> ShowS
show :: Previous -> String
$cshow :: Previous -> String
showsPrec :: Int -> Previous -> ShowS
$cshowsPrec :: Int -> Previous -> ShowS
P.Show)

-- ** PropagationPolicy
newtype PropagationPolicy = PropagationPolicy { PropagationPolicy -> Text
unPropagationPolicy :: Text } deriving (PropagationPolicy -> PropagationPolicy -> Bool
(PropagationPolicy -> PropagationPolicy -> Bool)
-> (PropagationPolicy -> PropagationPolicy -> Bool)
-> Eq PropagationPolicy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PropagationPolicy -> PropagationPolicy -> Bool
$c/= :: PropagationPolicy -> PropagationPolicy -> Bool
== :: PropagationPolicy -> PropagationPolicy -> Bool
$c== :: PropagationPolicy -> PropagationPolicy -> Bool
P.Eq, Int -> PropagationPolicy -> ShowS
[PropagationPolicy] -> ShowS
PropagationPolicy -> String
(Int -> PropagationPolicy -> ShowS)
-> (PropagationPolicy -> String)
-> ([PropagationPolicy] -> ShowS)
-> Show PropagationPolicy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PropagationPolicy] -> ShowS
$cshowList :: [PropagationPolicy] -> ShowS
show :: PropagationPolicy -> String
$cshow :: PropagationPolicy -> String
showsPrec :: Int -> PropagationPolicy -> ShowS
$cshowsPrec :: Int -> PropagationPolicy -> ShowS
P.Show)

-- ** ResourceVersion
newtype ResourceVersion = ResourceVersion { ResourceVersion -> Text
unResourceVersion :: Text } deriving (ResourceVersion -> ResourceVersion -> Bool
(ResourceVersion -> ResourceVersion -> Bool)
-> (ResourceVersion -> ResourceVersion -> Bool)
-> Eq ResourceVersion
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ResourceVersion -> ResourceVersion -> Bool
$c/= :: ResourceVersion -> ResourceVersion -> Bool
== :: ResourceVersion -> ResourceVersion -> Bool
$c== :: ResourceVersion -> ResourceVersion -> Bool
P.Eq, Int -> ResourceVersion -> ShowS
[ResourceVersion] -> ShowS
ResourceVersion -> String
(Int -> ResourceVersion -> ShowS)
-> (ResourceVersion -> String)
-> ([ResourceVersion] -> ShowS)
-> Show ResourceVersion
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ResourceVersion] -> ShowS
$cshowList :: [ResourceVersion] -> ShowS
show :: ResourceVersion -> String
$cshow :: ResourceVersion -> String
showsPrec :: Int -> ResourceVersion -> ShowS
$cshowsPrec :: Int -> ResourceVersion -> ShowS
P.Show)

-- ** SinceSeconds
newtype SinceSeconds = SinceSeconds { SinceSeconds -> Int
unSinceSeconds :: Int } deriving (SinceSeconds -> SinceSeconds -> Bool
(SinceSeconds -> SinceSeconds -> Bool)
-> (SinceSeconds -> SinceSeconds -> Bool) -> Eq SinceSeconds
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SinceSeconds -> SinceSeconds -> Bool
$c/= :: SinceSeconds -> SinceSeconds -> Bool
== :: SinceSeconds -> SinceSeconds -> Bool
$c== :: SinceSeconds -> SinceSeconds -> Bool
P.Eq, Int -> SinceSeconds -> ShowS
[SinceSeconds] -> ShowS
SinceSeconds -> String
(Int -> SinceSeconds -> ShowS)
-> (SinceSeconds -> String)
-> ([SinceSeconds] -> ShowS)
-> Show SinceSeconds
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SinceSeconds] -> ShowS
$cshowList :: [SinceSeconds] -> ShowS
show :: SinceSeconds -> String
$cshow :: SinceSeconds -> String
showsPrec :: Int -> SinceSeconds -> ShowS
$cshowsPrec :: Int -> SinceSeconds -> ShowS
P.Show)

-- ** Stderr
newtype Stderr = Stderr { Stderr -> Bool
unStderr :: Bool } deriving (Stderr -> Stderr -> Bool
(Stderr -> Stderr -> Bool)
-> (Stderr -> Stderr -> Bool) -> Eq Stderr
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Stderr -> Stderr -> Bool
$c/= :: Stderr -> Stderr -> Bool
== :: Stderr -> Stderr -> Bool
$c== :: Stderr -> Stderr -> Bool
P.Eq, Int -> Stderr -> ShowS
[Stderr] -> ShowS
Stderr -> String
(Int -> Stderr -> ShowS)
-> (Stderr -> String) -> ([Stderr] -> ShowS) -> Show Stderr
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Stderr] -> ShowS
$cshowList :: [Stderr] -> ShowS
show :: Stderr -> String
$cshow :: Stderr -> String
showsPrec :: Int -> Stderr -> ShowS
$cshowsPrec :: Int -> Stderr -> ShowS
P.Show)

-- ** Stdin
newtype Stdin = Stdin { Stdin -> Bool
unStdin :: Bool } deriving (Stdin -> Stdin -> Bool
(Stdin -> Stdin -> Bool) -> (Stdin -> Stdin -> Bool) -> Eq Stdin
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Stdin -> Stdin -> Bool
$c/= :: Stdin -> Stdin -> Bool
== :: Stdin -> Stdin -> Bool
$c== :: Stdin -> Stdin -> Bool
P.Eq, Int -> Stdin -> ShowS
[Stdin] -> ShowS
Stdin -> String
(Int -> Stdin -> ShowS)
-> (Stdin -> String) -> ([Stdin] -> ShowS) -> Show Stdin
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Stdin] -> ShowS
$cshowList :: [Stdin] -> ShowS
show :: Stdin -> String
$cshow :: Stdin -> String
showsPrec :: Int -> Stdin -> ShowS
$cshowsPrec :: Int -> Stdin -> ShowS
P.Show)

-- ** Stdout
newtype Stdout = Stdout { Stdout -> Bool
unStdout :: Bool } deriving (Stdout -> Stdout -> Bool
(Stdout -> Stdout -> Bool)
-> (Stdout -> Stdout -> Bool) -> Eq Stdout
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Stdout -> Stdout -> Bool
$c/= :: Stdout -> Stdout -> Bool
== :: Stdout -> Stdout -> Bool
$c== :: Stdout -> Stdout -> Bool
P.Eq, Int -> Stdout -> ShowS
[Stdout] -> ShowS
Stdout -> String
(Int -> Stdout -> ShowS)
-> (Stdout -> String) -> ([Stdout] -> ShowS) -> Show Stdout
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Stdout] -> ShowS
$cshowList :: [Stdout] -> ShowS
show :: Stdout -> String
$cshow :: Stdout -> String
showsPrec :: Int -> Stdout -> ShowS
$cshowsPrec :: Int -> Stdout -> ShowS
P.Show)

-- ** TailLines
newtype TailLines = TailLines { TailLines -> Int
unTailLines :: Int } deriving (TailLines -> TailLines -> Bool
(TailLines -> TailLines -> Bool)
-> (TailLines -> TailLines -> Bool) -> Eq TailLines
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TailLines -> TailLines -> Bool
$c/= :: TailLines -> TailLines -> Bool
== :: TailLines -> TailLines -> Bool
$c== :: TailLines -> TailLines -> Bool
P.Eq, Int -> TailLines -> ShowS
[TailLines] -> ShowS
TailLines -> String
(Int -> TailLines -> ShowS)
-> (TailLines -> String)
-> ([TailLines] -> ShowS)
-> Show TailLines
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TailLines] -> ShowS
$cshowList :: [TailLines] -> ShowS
show :: TailLines -> String
$cshow :: TailLines -> String
showsPrec :: Int -> TailLines -> ShowS
$cshowsPrec :: Int -> TailLines -> ShowS
P.Show)

-- ** TimeoutSeconds
newtype TimeoutSeconds = TimeoutSeconds { TimeoutSeconds -> Int
unTimeoutSeconds :: Int } deriving (TimeoutSeconds -> TimeoutSeconds -> Bool
(TimeoutSeconds -> TimeoutSeconds -> Bool)
-> (TimeoutSeconds -> TimeoutSeconds -> Bool) -> Eq TimeoutSeconds
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TimeoutSeconds -> TimeoutSeconds -> Bool
$c/= :: TimeoutSeconds -> TimeoutSeconds -> Bool
== :: TimeoutSeconds -> TimeoutSeconds -> Bool
$c== :: TimeoutSeconds -> TimeoutSeconds -> Bool
P.Eq, Int -> TimeoutSeconds -> ShowS
[TimeoutSeconds] -> ShowS
TimeoutSeconds -> String
(Int -> TimeoutSeconds -> ShowS)
-> (TimeoutSeconds -> String)
-> ([TimeoutSeconds] -> ShowS)
-> Show TimeoutSeconds
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TimeoutSeconds] -> ShowS
$cshowList :: [TimeoutSeconds] -> ShowS
show :: TimeoutSeconds -> String
$cshow :: TimeoutSeconds -> String
showsPrec :: Int -> TimeoutSeconds -> ShowS
$cshowsPrec :: Int -> TimeoutSeconds -> ShowS
P.Show)

-- ** Timestamps
newtype Timestamps = Timestamps { Timestamps -> Bool
unTimestamps :: Bool } deriving (Timestamps -> Timestamps -> Bool
(Timestamps -> Timestamps -> Bool)
-> (Timestamps -> Timestamps -> Bool) -> Eq Timestamps
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Timestamps -> Timestamps -> Bool
$c/= :: Timestamps -> Timestamps -> Bool
== :: Timestamps -> Timestamps -> Bool
$c== :: Timestamps -> Timestamps -> Bool
P.Eq, Int -> Timestamps -> ShowS
[Timestamps] -> ShowS
Timestamps -> String
(Int -> Timestamps -> ShowS)
-> (Timestamps -> String)
-> ([Timestamps] -> ShowS)
-> Show Timestamps
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Timestamps] -> ShowS
$cshowList :: [Timestamps] -> ShowS
show :: Timestamps -> String
$cshow :: Timestamps -> String
showsPrec :: Int -> Timestamps -> ShowS
$cshowsPrec :: Int -> Timestamps -> ShowS
P.Show)

-- ** Tty
newtype Tty = Tty { Tty -> Bool
unTty :: Bool } deriving (Tty -> Tty -> Bool
(Tty -> Tty -> Bool) -> (Tty -> Tty -> Bool) -> Eq Tty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Tty -> Tty -> Bool
$c/= :: Tty -> Tty -> Bool
== :: Tty -> Tty -> Bool
$c== :: Tty -> Tty -> Bool
P.Eq, Int -> Tty -> ShowS
[Tty] -> ShowS
Tty -> String
(Int -> Tty -> ShowS)
-> (Tty -> String) -> ([Tty] -> ShowS) -> Show Tty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Tty] -> ShowS
$cshowList :: [Tty] -> ShowS
show :: Tty -> String
$cshow :: Tty -> String
showsPrec :: Int -> Tty -> ShowS
$cshowsPrec :: Int -> Tty -> ShowS
P.Show)

-- ** Version
newtype Version = Version { Version -> Text
unVersion :: Text } deriving (Version -> Version -> Bool
(Version -> Version -> Bool)
-> (Version -> Version -> Bool) -> Eq Version
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Version -> Version -> Bool
$c/= :: Version -> Version -> Bool
== :: Version -> Version -> Bool
$c== :: Version -> Version -> Bool
P.Eq, Int -> Version -> ShowS
[Version] -> ShowS
Version -> String
(Int -> Version -> ShowS)
-> (Version -> String) -> ([Version] -> ShowS) -> Show Version
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Version] -> ShowS
$cshowList :: [Version] -> ShowS
show :: Version -> String
$cshow :: Version -> String
showsPrec :: Int -> Version -> ShowS
$cshowsPrec :: Int -> Version -> ShowS
P.Show)

-- ** Watch
newtype Watch = Watch { Watch -> Bool
unWatch :: Bool } deriving (Watch -> Watch -> Bool
(Watch -> Watch -> Bool) -> (Watch -> Watch -> Bool) -> Eq Watch
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Watch -> Watch -> Bool
$c/= :: Watch -> Watch -> Bool
== :: Watch -> Watch -> Bool
$c== :: Watch -> Watch -> Bool
P.Eq, Int -> Watch -> ShowS
[Watch] -> ShowS
Watch -> String
(Int -> Watch -> ShowS)
-> (Watch -> String) -> ([Watch] -> ShowS) -> Show Watch
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Watch] -> ShowS
$cshowList :: [Watch] -> ShowS
show :: Watch -> String
$cshow :: Watch -> String
showsPrec :: Int -> Watch -> ShowS
$cshowsPrec :: Int -> Watch -> ShowS
P.Show)

-- * Models


-- ** AdmissionregistrationV1ServiceReference
-- | AdmissionregistrationV1ServiceReference
-- ServiceReference holds a reference to Service.legacy.k8s.io
data AdmissionregistrationV1ServiceReference = AdmissionregistrationV1ServiceReference
  { AdmissionregistrationV1ServiceReference -> Text
admissionregistrationV1ServiceReferenceName :: !(Text) -- ^ /Required/ "name" - &#x60;name&#x60; is the name of the service. Required
  , AdmissionregistrationV1ServiceReference -> Text
admissionregistrationV1ServiceReferenceNamespace :: !(Text) -- ^ /Required/ "namespace" - &#x60;namespace&#x60; is the namespace of the service. Required
  , AdmissionregistrationV1ServiceReference -> Maybe Text
admissionregistrationV1ServiceReferencePath :: !(Maybe Text) -- ^ "path" - &#x60;path&#x60; is an optional URL path which will be sent in any request to this service.
  , AdmissionregistrationV1ServiceReference -> Maybe Int
admissionregistrationV1ServiceReferencePort :: !(Maybe Int) -- ^ "port" - If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. &#x60;port&#x60; should be a valid port number (1-65535, inclusive).
  } deriving (Int -> AdmissionregistrationV1ServiceReference -> ShowS
[AdmissionregistrationV1ServiceReference] -> ShowS
AdmissionregistrationV1ServiceReference -> String
(Int -> AdmissionregistrationV1ServiceReference -> ShowS)
-> (AdmissionregistrationV1ServiceReference -> String)
-> ([AdmissionregistrationV1ServiceReference] -> ShowS)
-> Show AdmissionregistrationV1ServiceReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AdmissionregistrationV1ServiceReference] -> ShowS
$cshowList :: [AdmissionregistrationV1ServiceReference] -> ShowS
show :: AdmissionregistrationV1ServiceReference -> String
$cshow :: AdmissionregistrationV1ServiceReference -> String
showsPrec :: Int -> AdmissionregistrationV1ServiceReference -> ShowS
$cshowsPrec :: Int -> AdmissionregistrationV1ServiceReference -> ShowS
P.Show, AdmissionregistrationV1ServiceReference
-> AdmissionregistrationV1ServiceReference -> Bool
(AdmissionregistrationV1ServiceReference
 -> AdmissionregistrationV1ServiceReference -> Bool)
-> (AdmissionregistrationV1ServiceReference
    -> AdmissionregistrationV1ServiceReference -> Bool)
-> Eq AdmissionregistrationV1ServiceReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AdmissionregistrationV1ServiceReference
-> AdmissionregistrationV1ServiceReference -> Bool
$c/= :: AdmissionregistrationV1ServiceReference
-> AdmissionregistrationV1ServiceReference -> Bool
== :: AdmissionregistrationV1ServiceReference
-> AdmissionregistrationV1ServiceReference -> Bool
$c== :: AdmissionregistrationV1ServiceReference
-> AdmissionregistrationV1ServiceReference -> Bool
P.Eq, P.Typeable)

-- | FromJSON AdmissionregistrationV1ServiceReference
instance A.FromJSON AdmissionregistrationV1ServiceReference where
  parseJSON :: Value -> Parser AdmissionregistrationV1ServiceReference
parseJSON = String
-> (Object -> Parser AdmissionregistrationV1ServiceReference)
-> Value
-> Parser AdmissionregistrationV1ServiceReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"AdmissionregistrationV1ServiceReference" ((Object -> Parser AdmissionregistrationV1ServiceReference)
 -> Value -> Parser AdmissionregistrationV1ServiceReference)
-> (Object -> Parser AdmissionregistrationV1ServiceReference)
-> Value
-> Parser AdmissionregistrationV1ServiceReference
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Text
-> Maybe Text
-> Maybe Int
-> AdmissionregistrationV1ServiceReference
AdmissionregistrationV1ServiceReference
      (Text
 -> Text
 -> Maybe Text
 -> Maybe Int
 -> AdmissionregistrationV1ServiceReference)
-> Parser Text
-> Parser
     (Text
      -> Maybe Text
      -> Maybe Int
      -> AdmissionregistrationV1ServiceReference)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Text
   -> Maybe Text
   -> Maybe Int
   -> AdmissionregistrationV1ServiceReference)
-> Parser Text
-> Parser
     (Maybe Text
      -> Maybe Int -> AdmissionregistrationV1ServiceReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"namespace")
      Parser
  (Maybe Text
   -> Maybe Int -> AdmissionregistrationV1ServiceReference)
-> Parser (Maybe Text)
-> Parser (Maybe Int -> AdmissionregistrationV1ServiceReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"path")
      Parser (Maybe Int -> AdmissionregistrationV1ServiceReference)
-> Parser (Maybe Int)
-> Parser AdmissionregistrationV1ServiceReference
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"port")

-- | ToJSON AdmissionregistrationV1ServiceReference
instance A.ToJSON AdmissionregistrationV1ServiceReference where
  toJSON :: AdmissionregistrationV1ServiceReference -> Value
toJSON AdmissionregistrationV1ServiceReference {Maybe Int
Maybe Text
Text
admissionregistrationV1ServiceReferencePort :: Maybe Int
admissionregistrationV1ServiceReferencePath :: Maybe Text
admissionregistrationV1ServiceReferenceNamespace :: Text
admissionregistrationV1ServiceReferenceName :: Text
admissionregistrationV1ServiceReferencePort :: AdmissionregistrationV1ServiceReference -> Maybe Int
admissionregistrationV1ServiceReferencePath :: AdmissionregistrationV1ServiceReference -> Maybe Text
admissionregistrationV1ServiceReferenceNamespace :: AdmissionregistrationV1ServiceReference -> Text
admissionregistrationV1ServiceReferenceName :: AdmissionregistrationV1ServiceReference -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
admissionregistrationV1ServiceReferenceName
      , Text
"namespace" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
admissionregistrationV1ServiceReferenceNamespace
      , Text
"path" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
admissionregistrationV1ServiceReferencePath
      , Text
"port" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
admissionregistrationV1ServiceReferencePort
      ]


-- | Construct a value of type 'AdmissionregistrationV1ServiceReference' (by applying it's required fields, if any)
mkAdmissionregistrationV1ServiceReference
  :: Text -- ^ 'admissionregistrationV1ServiceReferenceName': `name` is the name of the service. Required
  -> Text -- ^ 'admissionregistrationV1ServiceReferenceNamespace': `namespace` is the namespace of the service. Required
  -> AdmissionregistrationV1ServiceReference
mkAdmissionregistrationV1ServiceReference :: Text -> Text -> AdmissionregistrationV1ServiceReference
mkAdmissionregistrationV1ServiceReference Text
admissionregistrationV1ServiceReferenceName Text
admissionregistrationV1ServiceReferenceNamespace =
  AdmissionregistrationV1ServiceReference :: Text
-> Text
-> Maybe Text
-> Maybe Int
-> AdmissionregistrationV1ServiceReference
AdmissionregistrationV1ServiceReference
  { Text
admissionregistrationV1ServiceReferenceName :: Text
admissionregistrationV1ServiceReferenceName :: Text
admissionregistrationV1ServiceReferenceName
  , Text
admissionregistrationV1ServiceReferenceNamespace :: Text
admissionregistrationV1ServiceReferenceNamespace :: Text
admissionregistrationV1ServiceReferenceNamespace
  , admissionregistrationV1ServiceReferencePath :: Maybe Text
admissionregistrationV1ServiceReferencePath = Maybe Text
forall a. Maybe a
Nothing
  , admissionregistrationV1ServiceReferencePort :: Maybe Int
admissionregistrationV1ServiceReferencePort = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** AdmissionregistrationV1WebhookClientConfig
-- | AdmissionregistrationV1WebhookClientConfig
-- WebhookClientConfig contains the information to make a TLS connection with the webhook
data AdmissionregistrationV1WebhookClientConfig = AdmissionregistrationV1WebhookClientConfig
  { AdmissionregistrationV1WebhookClientConfig -> Maybe ByteArray
admissionregistrationV1WebhookClientConfigCaBundle :: !(Maybe ByteArray) -- ^ "caBundle" - &#x60;caBundle&#x60; is a PEM encoded CA bundle which will be used to validate the webhook&#39;s server certificate. If unspecified, system trust roots on the apiserver are used.
  , AdmissionregistrationV1WebhookClientConfig
-> Maybe AdmissionregistrationV1ServiceReference
admissionregistrationV1WebhookClientConfigService :: !(Maybe AdmissionregistrationV1ServiceReference) -- ^ "service"
  , AdmissionregistrationV1WebhookClientConfig -> Maybe Text
admissionregistrationV1WebhookClientConfigUrl :: !(Maybe Text) -- ^ "url" - &#x60;url&#x60; gives the location of the webhook, in standard URL form (&#x60;scheme://host:port/path&#x60;). Exactly one of &#x60;url&#x60; or &#x60;service&#x60; must be specified.  The &#x60;host&#x60; should not refer to a service running in the cluster; use the &#x60;service&#x60; field instead. The host might be resolved via external DNS in some apiservers (e.g., &#x60;kube-apiserver&#x60; cannot resolve in-cluster DNS as that would be a layering violation). &#x60;host&#x60; may also be an IP address.  Please note that using &#x60;localhost&#x60; or &#x60;127.0.0.1&#x60; as a &#x60;host&#x60; is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.  The scheme must be \&quot;https\&quot;; the URL must begin with \&quot;https://\&quot;.  A path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.  Attempting to use a user or basic auth e.g. \&quot;user:password@\&quot; is not allowed. Fragments (\&quot;#...\&quot;) and query parameters (\&quot;?...\&quot;) are not allowed, either.
  } deriving (Int -> AdmissionregistrationV1WebhookClientConfig -> ShowS
[AdmissionregistrationV1WebhookClientConfig] -> ShowS
AdmissionregistrationV1WebhookClientConfig -> String
(Int -> AdmissionregistrationV1WebhookClientConfig -> ShowS)
-> (AdmissionregistrationV1WebhookClientConfig -> String)
-> ([AdmissionregistrationV1WebhookClientConfig] -> ShowS)
-> Show AdmissionregistrationV1WebhookClientConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AdmissionregistrationV1WebhookClientConfig] -> ShowS
$cshowList :: [AdmissionregistrationV1WebhookClientConfig] -> ShowS
show :: AdmissionregistrationV1WebhookClientConfig -> String
$cshow :: AdmissionregistrationV1WebhookClientConfig -> String
showsPrec :: Int -> AdmissionregistrationV1WebhookClientConfig -> ShowS
$cshowsPrec :: Int -> AdmissionregistrationV1WebhookClientConfig -> ShowS
P.Show, AdmissionregistrationV1WebhookClientConfig
-> AdmissionregistrationV1WebhookClientConfig -> Bool
(AdmissionregistrationV1WebhookClientConfig
 -> AdmissionregistrationV1WebhookClientConfig -> Bool)
-> (AdmissionregistrationV1WebhookClientConfig
    -> AdmissionregistrationV1WebhookClientConfig -> Bool)
-> Eq AdmissionregistrationV1WebhookClientConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AdmissionregistrationV1WebhookClientConfig
-> AdmissionregistrationV1WebhookClientConfig -> Bool
$c/= :: AdmissionregistrationV1WebhookClientConfig
-> AdmissionregistrationV1WebhookClientConfig -> Bool
== :: AdmissionregistrationV1WebhookClientConfig
-> AdmissionregistrationV1WebhookClientConfig -> Bool
$c== :: AdmissionregistrationV1WebhookClientConfig
-> AdmissionregistrationV1WebhookClientConfig -> Bool
P.Eq, P.Typeable)

-- | FromJSON AdmissionregistrationV1WebhookClientConfig
instance A.FromJSON AdmissionregistrationV1WebhookClientConfig where
  parseJSON :: Value -> Parser AdmissionregistrationV1WebhookClientConfig
parseJSON = String
-> (Object -> Parser AdmissionregistrationV1WebhookClientConfig)
-> Value
-> Parser AdmissionregistrationV1WebhookClientConfig
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"AdmissionregistrationV1WebhookClientConfig" ((Object -> Parser AdmissionregistrationV1WebhookClientConfig)
 -> Value -> Parser AdmissionregistrationV1WebhookClientConfig)
-> (Object -> Parser AdmissionregistrationV1WebhookClientConfig)
-> Value
-> Parser AdmissionregistrationV1WebhookClientConfig
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe ByteArray
-> Maybe AdmissionregistrationV1ServiceReference
-> Maybe Text
-> AdmissionregistrationV1WebhookClientConfig
AdmissionregistrationV1WebhookClientConfig
      (Maybe ByteArray
 -> Maybe AdmissionregistrationV1ServiceReference
 -> Maybe Text
 -> AdmissionregistrationV1WebhookClientConfig)
-> Parser (Maybe ByteArray)
-> Parser
     (Maybe AdmissionregistrationV1ServiceReference
      -> Maybe Text -> AdmissionregistrationV1WebhookClientConfig)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe ByteArray)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"caBundle")
      Parser
  (Maybe AdmissionregistrationV1ServiceReference
   -> Maybe Text -> AdmissionregistrationV1WebhookClientConfig)
-> Parser (Maybe AdmissionregistrationV1ServiceReference)
-> Parser
     (Maybe Text -> AdmissionregistrationV1WebhookClientConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe AdmissionregistrationV1ServiceReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"service")
      Parser (Maybe Text -> AdmissionregistrationV1WebhookClientConfig)
-> Parser (Maybe Text)
-> Parser AdmissionregistrationV1WebhookClientConfig
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"url")

-- | ToJSON AdmissionregistrationV1WebhookClientConfig
instance A.ToJSON AdmissionregistrationV1WebhookClientConfig where
  toJSON :: AdmissionregistrationV1WebhookClientConfig -> Value
toJSON AdmissionregistrationV1WebhookClientConfig {Maybe Text
Maybe ByteArray
Maybe AdmissionregistrationV1ServiceReference
admissionregistrationV1WebhookClientConfigUrl :: Maybe Text
admissionregistrationV1WebhookClientConfigService :: Maybe AdmissionregistrationV1ServiceReference
admissionregistrationV1WebhookClientConfigCaBundle :: Maybe ByteArray
admissionregistrationV1WebhookClientConfigUrl :: AdmissionregistrationV1WebhookClientConfig -> Maybe Text
admissionregistrationV1WebhookClientConfigService :: AdmissionregistrationV1WebhookClientConfig
-> Maybe AdmissionregistrationV1ServiceReference
admissionregistrationV1WebhookClientConfigCaBundle :: AdmissionregistrationV1WebhookClientConfig -> Maybe ByteArray
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"caBundle" Text -> Maybe ByteArray -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ByteArray
admissionregistrationV1WebhookClientConfigCaBundle
      , Text
"service" Text
-> Maybe AdmissionregistrationV1ServiceReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe AdmissionregistrationV1ServiceReference
admissionregistrationV1WebhookClientConfigService
      , Text
"url" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
admissionregistrationV1WebhookClientConfigUrl
      ]


-- | Construct a value of type 'AdmissionregistrationV1WebhookClientConfig' (by applying it's required fields, if any)
mkAdmissionregistrationV1WebhookClientConfig
  :: AdmissionregistrationV1WebhookClientConfig
mkAdmissionregistrationV1WebhookClientConfig :: AdmissionregistrationV1WebhookClientConfig
mkAdmissionregistrationV1WebhookClientConfig =
  AdmissionregistrationV1WebhookClientConfig :: Maybe ByteArray
-> Maybe AdmissionregistrationV1ServiceReference
-> Maybe Text
-> AdmissionregistrationV1WebhookClientConfig
AdmissionregistrationV1WebhookClientConfig
  { admissionregistrationV1WebhookClientConfigCaBundle :: Maybe ByteArray
admissionregistrationV1WebhookClientConfigCaBundle = Maybe ByteArray
forall a. Maybe a
Nothing
  , admissionregistrationV1WebhookClientConfigService :: Maybe AdmissionregistrationV1ServiceReference
admissionregistrationV1WebhookClientConfigService = Maybe AdmissionregistrationV1ServiceReference
forall a. Maybe a
Nothing
  , admissionregistrationV1WebhookClientConfigUrl :: Maybe Text
admissionregistrationV1WebhookClientConfigUrl = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** AdmissionregistrationV1beta1ServiceReference
-- | AdmissionregistrationV1beta1ServiceReference
-- ServiceReference holds a reference to Service.legacy.k8s.io
data AdmissionregistrationV1beta1ServiceReference = AdmissionregistrationV1beta1ServiceReference
  { AdmissionregistrationV1beta1ServiceReference -> Text
admissionregistrationV1beta1ServiceReferenceName :: !(Text) -- ^ /Required/ "name" - &#x60;name&#x60; is the name of the service. Required
  , AdmissionregistrationV1beta1ServiceReference -> Text
admissionregistrationV1beta1ServiceReferenceNamespace :: !(Text) -- ^ /Required/ "namespace" - &#x60;namespace&#x60; is the namespace of the service. Required
  , AdmissionregistrationV1beta1ServiceReference -> Maybe Text
admissionregistrationV1beta1ServiceReferencePath :: !(Maybe Text) -- ^ "path" - &#x60;path&#x60; is an optional URL path which will be sent in any request to this service.
  , AdmissionregistrationV1beta1ServiceReference -> Maybe Int
admissionregistrationV1beta1ServiceReferencePort :: !(Maybe Int) -- ^ "port" - If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. &#x60;port&#x60; should be a valid port number (1-65535, inclusive).
  } deriving (Int -> AdmissionregistrationV1beta1ServiceReference -> ShowS
[AdmissionregistrationV1beta1ServiceReference] -> ShowS
AdmissionregistrationV1beta1ServiceReference -> String
(Int -> AdmissionregistrationV1beta1ServiceReference -> ShowS)
-> (AdmissionregistrationV1beta1ServiceReference -> String)
-> ([AdmissionregistrationV1beta1ServiceReference] -> ShowS)
-> Show AdmissionregistrationV1beta1ServiceReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AdmissionregistrationV1beta1ServiceReference] -> ShowS
$cshowList :: [AdmissionregistrationV1beta1ServiceReference] -> ShowS
show :: AdmissionregistrationV1beta1ServiceReference -> String
$cshow :: AdmissionregistrationV1beta1ServiceReference -> String
showsPrec :: Int -> AdmissionregistrationV1beta1ServiceReference -> ShowS
$cshowsPrec :: Int -> AdmissionregistrationV1beta1ServiceReference -> ShowS
P.Show, AdmissionregistrationV1beta1ServiceReference
-> AdmissionregistrationV1beta1ServiceReference -> Bool
(AdmissionregistrationV1beta1ServiceReference
 -> AdmissionregistrationV1beta1ServiceReference -> Bool)
-> (AdmissionregistrationV1beta1ServiceReference
    -> AdmissionregistrationV1beta1ServiceReference -> Bool)
-> Eq AdmissionregistrationV1beta1ServiceReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AdmissionregistrationV1beta1ServiceReference
-> AdmissionregistrationV1beta1ServiceReference -> Bool
$c/= :: AdmissionregistrationV1beta1ServiceReference
-> AdmissionregistrationV1beta1ServiceReference -> Bool
== :: AdmissionregistrationV1beta1ServiceReference
-> AdmissionregistrationV1beta1ServiceReference -> Bool
$c== :: AdmissionregistrationV1beta1ServiceReference
-> AdmissionregistrationV1beta1ServiceReference -> Bool
P.Eq, P.Typeable)

-- | FromJSON AdmissionregistrationV1beta1ServiceReference
instance A.FromJSON AdmissionregistrationV1beta1ServiceReference where
  parseJSON :: Value -> Parser AdmissionregistrationV1beta1ServiceReference
parseJSON = String
-> (Object -> Parser AdmissionregistrationV1beta1ServiceReference)
-> Value
-> Parser AdmissionregistrationV1beta1ServiceReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"AdmissionregistrationV1beta1ServiceReference" ((Object -> Parser AdmissionregistrationV1beta1ServiceReference)
 -> Value -> Parser AdmissionregistrationV1beta1ServiceReference)
-> (Object -> Parser AdmissionregistrationV1beta1ServiceReference)
-> Value
-> Parser AdmissionregistrationV1beta1ServiceReference
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Text
-> Maybe Text
-> Maybe Int
-> AdmissionregistrationV1beta1ServiceReference
AdmissionregistrationV1beta1ServiceReference
      (Text
 -> Text
 -> Maybe Text
 -> Maybe Int
 -> AdmissionregistrationV1beta1ServiceReference)
-> Parser Text
-> Parser
     (Text
      -> Maybe Text
      -> Maybe Int
      -> AdmissionregistrationV1beta1ServiceReference)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Text
   -> Maybe Text
   -> Maybe Int
   -> AdmissionregistrationV1beta1ServiceReference)
-> Parser Text
-> Parser
     (Maybe Text
      -> Maybe Int -> AdmissionregistrationV1beta1ServiceReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"namespace")
      Parser
  (Maybe Text
   -> Maybe Int -> AdmissionregistrationV1beta1ServiceReference)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int -> AdmissionregistrationV1beta1ServiceReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"path")
      Parser (Maybe Int -> AdmissionregistrationV1beta1ServiceReference)
-> Parser (Maybe Int)
-> Parser AdmissionregistrationV1beta1ServiceReference
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"port")

-- | ToJSON AdmissionregistrationV1beta1ServiceReference
instance A.ToJSON AdmissionregistrationV1beta1ServiceReference where
  toJSON :: AdmissionregistrationV1beta1ServiceReference -> Value
toJSON AdmissionregistrationV1beta1ServiceReference {Maybe Int
Maybe Text
Text
admissionregistrationV1beta1ServiceReferencePort :: Maybe Int
admissionregistrationV1beta1ServiceReferencePath :: Maybe Text
admissionregistrationV1beta1ServiceReferenceNamespace :: Text
admissionregistrationV1beta1ServiceReferenceName :: Text
admissionregistrationV1beta1ServiceReferencePort :: AdmissionregistrationV1beta1ServiceReference -> Maybe Int
admissionregistrationV1beta1ServiceReferencePath :: AdmissionregistrationV1beta1ServiceReference -> Maybe Text
admissionregistrationV1beta1ServiceReferenceNamespace :: AdmissionregistrationV1beta1ServiceReference -> Text
admissionregistrationV1beta1ServiceReferenceName :: AdmissionregistrationV1beta1ServiceReference -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
admissionregistrationV1beta1ServiceReferenceName
      , Text
"namespace" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
admissionregistrationV1beta1ServiceReferenceNamespace
      , Text
"path" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
admissionregistrationV1beta1ServiceReferencePath
      , Text
"port" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
admissionregistrationV1beta1ServiceReferencePort
      ]


-- | Construct a value of type 'AdmissionregistrationV1beta1ServiceReference' (by applying it's required fields, if any)
mkAdmissionregistrationV1beta1ServiceReference
  :: Text -- ^ 'admissionregistrationV1beta1ServiceReferenceName': `name` is the name of the service. Required
  -> Text -- ^ 'admissionregistrationV1beta1ServiceReferenceNamespace': `namespace` is the namespace of the service. Required
  -> AdmissionregistrationV1beta1ServiceReference
mkAdmissionregistrationV1beta1ServiceReference :: Text -> Text -> AdmissionregistrationV1beta1ServiceReference
mkAdmissionregistrationV1beta1ServiceReference Text
admissionregistrationV1beta1ServiceReferenceName Text
admissionregistrationV1beta1ServiceReferenceNamespace =
  AdmissionregistrationV1beta1ServiceReference :: Text
-> Text
-> Maybe Text
-> Maybe Int
-> AdmissionregistrationV1beta1ServiceReference
AdmissionregistrationV1beta1ServiceReference
  { Text
admissionregistrationV1beta1ServiceReferenceName :: Text
admissionregistrationV1beta1ServiceReferenceName :: Text
admissionregistrationV1beta1ServiceReferenceName
  , Text
admissionregistrationV1beta1ServiceReferenceNamespace :: Text
admissionregistrationV1beta1ServiceReferenceNamespace :: Text
admissionregistrationV1beta1ServiceReferenceNamespace
  , admissionregistrationV1beta1ServiceReferencePath :: Maybe Text
admissionregistrationV1beta1ServiceReferencePath = Maybe Text
forall a. Maybe a
Nothing
  , admissionregistrationV1beta1ServiceReferencePort :: Maybe Int
admissionregistrationV1beta1ServiceReferencePort = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** AdmissionregistrationV1beta1WebhookClientConfig
-- | AdmissionregistrationV1beta1WebhookClientConfig
-- WebhookClientConfig contains the information to make a TLS connection with the webhook
data AdmissionregistrationV1beta1WebhookClientConfig = AdmissionregistrationV1beta1WebhookClientConfig
  { AdmissionregistrationV1beta1WebhookClientConfig -> Maybe ByteArray
admissionregistrationV1beta1WebhookClientConfigCaBundle :: !(Maybe ByteArray) -- ^ "caBundle" - &#x60;caBundle&#x60; is a PEM encoded CA bundle which will be used to validate the webhook&#39;s server certificate. If unspecified, system trust roots on the apiserver are used.
  , AdmissionregistrationV1beta1WebhookClientConfig
-> Maybe AdmissionregistrationV1beta1ServiceReference
admissionregistrationV1beta1WebhookClientConfigService :: !(Maybe AdmissionregistrationV1beta1ServiceReference) -- ^ "service"
  , AdmissionregistrationV1beta1WebhookClientConfig -> Maybe Text
admissionregistrationV1beta1WebhookClientConfigUrl :: !(Maybe Text) -- ^ "url" - &#x60;url&#x60; gives the location of the webhook, in standard URL form (&#x60;scheme://host:port/path&#x60;). Exactly one of &#x60;url&#x60; or &#x60;service&#x60; must be specified.  The &#x60;host&#x60; should not refer to a service running in the cluster; use the &#x60;service&#x60; field instead. The host might be resolved via external DNS in some apiservers (e.g., &#x60;kube-apiserver&#x60; cannot resolve in-cluster DNS as that would be a layering violation). &#x60;host&#x60; may also be an IP address.  Please note that using &#x60;localhost&#x60; or &#x60;127.0.0.1&#x60; as a &#x60;host&#x60; is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.  The scheme must be \&quot;https\&quot;; the URL must begin with \&quot;https://\&quot;.  A path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.  Attempting to use a user or basic auth e.g. \&quot;user:password@\&quot; is not allowed. Fragments (\&quot;#...\&quot;) and query parameters (\&quot;?...\&quot;) are not allowed, either.
  } deriving (Int -> AdmissionregistrationV1beta1WebhookClientConfig -> ShowS
[AdmissionregistrationV1beta1WebhookClientConfig] -> ShowS
AdmissionregistrationV1beta1WebhookClientConfig -> String
(Int -> AdmissionregistrationV1beta1WebhookClientConfig -> ShowS)
-> (AdmissionregistrationV1beta1WebhookClientConfig -> String)
-> ([AdmissionregistrationV1beta1WebhookClientConfig] -> ShowS)
-> Show AdmissionregistrationV1beta1WebhookClientConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AdmissionregistrationV1beta1WebhookClientConfig] -> ShowS
$cshowList :: [AdmissionregistrationV1beta1WebhookClientConfig] -> ShowS
show :: AdmissionregistrationV1beta1WebhookClientConfig -> String
$cshow :: AdmissionregistrationV1beta1WebhookClientConfig -> String
showsPrec :: Int -> AdmissionregistrationV1beta1WebhookClientConfig -> ShowS
$cshowsPrec :: Int -> AdmissionregistrationV1beta1WebhookClientConfig -> ShowS
P.Show, AdmissionregistrationV1beta1WebhookClientConfig
-> AdmissionregistrationV1beta1WebhookClientConfig -> Bool
(AdmissionregistrationV1beta1WebhookClientConfig
 -> AdmissionregistrationV1beta1WebhookClientConfig -> Bool)
-> (AdmissionregistrationV1beta1WebhookClientConfig
    -> AdmissionregistrationV1beta1WebhookClientConfig -> Bool)
-> Eq AdmissionregistrationV1beta1WebhookClientConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AdmissionregistrationV1beta1WebhookClientConfig
-> AdmissionregistrationV1beta1WebhookClientConfig -> Bool
$c/= :: AdmissionregistrationV1beta1WebhookClientConfig
-> AdmissionregistrationV1beta1WebhookClientConfig -> Bool
== :: AdmissionregistrationV1beta1WebhookClientConfig
-> AdmissionregistrationV1beta1WebhookClientConfig -> Bool
$c== :: AdmissionregistrationV1beta1WebhookClientConfig
-> AdmissionregistrationV1beta1WebhookClientConfig -> Bool
P.Eq, P.Typeable)

-- | FromJSON AdmissionregistrationV1beta1WebhookClientConfig
instance A.FromJSON AdmissionregistrationV1beta1WebhookClientConfig where
  parseJSON :: Value -> Parser AdmissionregistrationV1beta1WebhookClientConfig
parseJSON = String
-> (Object
    -> Parser AdmissionregistrationV1beta1WebhookClientConfig)
-> Value
-> Parser AdmissionregistrationV1beta1WebhookClientConfig
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"AdmissionregistrationV1beta1WebhookClientConfig" ((Object -> Parser AdmissionregistrationV1beta1WebhookClientConfig)
 -> Value -> Parser AdmissionregistrationV1beta1WebhookClientConfig)
-> (Object
    -> Parser AdmissionregistrationV1beta1WebhookClientConfig)
-> Value
-> Parser AdmissionregistrationV1beta1WebhookClientConfig
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe ByteArray
-> Maybe AdmissionregistrationV1beta1ServiceReference
-> Maybe Text
-> AdmissionregistrationV1beta1WebhookClientConfig
AdmissionregistrationV1beta1WebhookClientConfig
      (Maybe ByteArray
 -> Maybe AdmissionregistrationV1beta1ServiceReference
 -> Maybe Text
 -> AdmissionregistrationV1beta1WebhookClientConfig)
-> Parser (Maybe ByteArray)
-> Parser
     (Maybe AdmissionregistrationV1beta1ServiceReference
      -> Maybe Text -> AdmissionregistrationV1beta1WebhookClientConfig)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe ByteArray)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"caBundle")
      Parser
  (Maybe AdmissionregistrationV1beta1ServiceReference
   -> Maybe Text -> AdmissionregistrationV1beta1WebhookClientConfig)
-> Parser (Maybe AdmissionregistrationV1beta1ServiceReference)
-> Parser
     (Maybe Text -> AdmissionregistrationV1beta1WebhookClientConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text
-> Parser (Maybe AdmissionregistrationV1beta1ServiceReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"service")
      Parser
  (Maybe Text -> AdmissionregistrationV1beta1WebhookClientConfig)
-> Parser (Maybe Text)
-> Parser AdmissionregistrationV1beta1WebhookClientConfig
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"url")

-- | ToJSON AdmissionregistrationV1beta1WebhookClientConfig
instance A.ToJSON AdmissionregistrationV1beta1WebhookClientConfig where
  toJSON :: AdmissionregistrationV1beta1WebhookClientConfig -> Value
toJSON AdmissionregistrationV1beta1WebhookClientConfig {Maybe Text
Maybe ByteArray
Maybe AdmissionregistrationV1beta1ServiceReference
admissionregistrationV1beta1WebhookClientConfigUrl :: Maybe Text
admissionregistrationV1beta1WebhookClientConfigService :: Maybe AdmissionregistrationV1beta1ServiceReference
admissionregistrationV1beta1WebhookClientConfigCaBundle :: Maybe ByteArray
admissionregistrationV1beta1WebhookClientConfigUrl :: AdmissionregistrationV1beta1WebhookClientConfig -> Maybe Text
admissionregistrationV1beta1WebhookClientConfigService :: AdmissionregistrationV1beta1WebhookClientConfig
-> Maybe AdmissionregistrationV1beta1ServiceReference
admissionregistrationV1beta1WebhookClientConfigCaBundle :: AdmissionregistrationV1beta1WebhookClientConfig -> Maybe ByteArray
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"caBundle" Text -> Maybe ByteArray -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ByteArray
admissionregistrationV1beta1WebhookClientConfigCaBundle
      , Text
"service" Text
-> Maybe AdmissionregistrationV1beta1ServiceReference
-> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe AdmissionregistrationV1beta1ServiceReference
admissionregistrationV1beta1WebhookClientConfigService
      , Text
"url" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
admissionregistrationV1beta1WebhookClientConfigUrl
      ]


-- | Construct a value of type 'AdmissionregistrationV1beta1WebhookClientConfig' (by applying it's required fields, if any)
mkAdmissionregistrationV1beta1WebhookClientConfig
  :: AdmissionregistrationV1beta1WebhookClientConfig
mkAdmissionregistrationV1beta1WebhookClientConfig :: AdmissionregistrationV1beta1WebhookClientConfig
mkAdmissionregistrationV1beta1WebhookClientConfig =
  AdmissionregistrationV1beta1WebhookClientConfig :: Maybe ByteArray
-> Maybe AdmissionregistrationV1beta1ServiceReference
-> Maybe Text
-> AdmissionregistrationV1beta1WebhookClientConfig
AdmissionregistrationV1beta1WebhookClientConfig
  { admissionregistrationV1beta1WebhookClientConfigCaBundle :: Maybe ByteArray
admissionregistrationV1beta1WebhookClientConfigCaBundle = Maybe ByteArray
forall a. Maybe a
Nothing
  , admissionregistrationV1beta1WebhookClientConfigService :: Maybe AdmissionregistrationV1beta1ServiceReference
admissionregistrationV1beta1WebhookClientConfigService = Maybe AdmissionregistrationV1beta1ServiceReference
forall a. Maybe a
Nothing
  , admissionregistrationV1beta1WebhookClientConfigUrl :: Maybe Text
admissionregistrationV1beta1WebhookClientConfigUrl = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** ApiextensionsV1ServiceReference
-- | ApiextensionsV1ServiceReference
-- ServiceReference holds a reference to Service.legacy.k8s.io
data ApiextensionsV1ServiceReference = ApiextensionsV1ServiceReference
  { ApiextensionsV1ServiceReference -> Text
apiextensionsV1ServiceReferenceName :: !(Text) -- ^ /Required/ "name" - name is the name of the service. Required
  , ApiextensionsV1ServiceReference -> Text
apiextensionsV1ServiceReferenceNamespace :: !(Text) -- ^ /Required/ "namespace" - namespace is the namespace of the service. Required
  , ApiextensionsV1ServiceReference -> Maybe Text
apiextensionsV1ServiceReferencePath :: !(Maybe Text) -- ^ "path" - path is an optional URL path at which the webhook will be contacted.
  , ApiextensionsV1ServiceReference -> Maybe Int
apiextensionsV1ServiceReferencePort :: !(Maybe Int) -- ^ "port" - port is an optional service port at which the webhook will be contacted. &#x60;port&#x60; should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.
  } deriving (Int -> ApiextensionsV1ServiceReference -> ShowS
[ApiextensionsV1ServiceReference] -> ShowS
ApiextensionsV1ServiceReference -> String
(Int -> ApiextensionsV1ServiceReference -> ShowS)
-> (ApiextensionsV1ServiceReference -> String)
-> ([ApiextensionsV1ServiceReference] -> ShowS)
-> Show ApiextensionsV1ServiceReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ApiextensionsV1ServiceReference] -> ShowS
$cshowList :: [ApiextensionsV1ServiceReference] -> ShowS
show :: ApiextensionsV1ServiceReference -> String
$cshow :: ApiextensionsV1ServiceReference -> String
showsPrec :: Int -> ApiextensionsV1ServiceReference -> ShowS
$cshowsPrec :: Int -> ApiextensionsV1ServiceReference -> ShowS
P.Show, ApiextensionsV1ServiceReference
-> ApiextensionsV1ServiceReference -> Bool
(ApiextensionsV1ServiceReference
 -> ApiextensionsV1ServiceReference -> Bool)
-> (ApiextensionsV1ServiceReference
    -> ApiextensionsV1ServiceReference -> Bool)
-> Eq ApiextensionsV1ServiceReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ApiextensionsV1ServiceReference
-> ApiextensionsV1ServiceReference -> Bool
$c/= :: ApiextensionsV1ServiceReference
-> ApiextensionsV1ServiceReference -> Bool
== :: ApiextensionsV1ServiceReference
-> ApiextensionsV1ServiceReference -> Bool
$c== :: ApiextensionsV1ServiceReference
-> ApiextensionsV1ServiceReference -> Bool
P.Eq, P.Typeable)

-- | FromJSON ApiextensionsV1ServiceReference
instance A.FromJSON ApiextensionsV1ServiceReference where
  parseJSON :: Value -> Parser ApiextensionsV1ServiceReference
parseJSON = String
-> (Object -> Parser ApiextensionsV1ServiceReference)
-> Value
-> Parser ApiextensionsV1ServiceReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ApiextensionsV1ServiceReference" ((Object -> Parser ApiextensionsV1ServiceReference)
 -> Value -> Parser ApiextensionsV1ServiceReference)
-> (Object -> Parser ApiextensionsV1ServiceReference)
-> Value
-> Parser ApiextensionsV1ServiceReference
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Text
-> Maybe Text
-> Maybe Int
-> ApiextensionsV1ServiceReference
ApiextensionsV1ServiceReference
      (Text
 -> Text
 -> Maybe Text
 -> Maybe Int
 -> ApiextensionsV1ServiceReference)
-> Parser Text
-> Parser
     (Text
      -> Maybe Text -> Maybe Int -> ApiextensionsV1ServiceReference)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Text
   -> Maybe Text -> Maybe Int -> ApiextensionsV1ServiceReference)
-> Parser Text
-> Parser
     (Maybe Text -> Maybe Int -> ApiextensionsV1ServiceReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"namespace")
      Parser (Maybe Text -> Maybe Int -> ApiextensionsV1ServiceReference)
-> Parser (Maybe Text)
-> Parser (Maybe Int -> ApiextensionsV1ServiceReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"path")
      Parser (Maybe Int -> ApiextensionsV1ServiceReference)
-> Parser (Maybe Int) -> Parser ApiextensionsV1ServiceReference
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"port")

-- | ToJSON ApiextensionsV1ServiceReference
instance A.ToJSON ApiextensionsV1ServiceReference where
  toJSON :: ApiextensionsV1ServiceReference -> Value
toJSON ApiextensionsV1ServiceReference {Maybe Int
Maybe Text
Text
apiextensionsV1ServiceReferencePort :: Maybe Int
apiextensionsV1ServiceReferencePath :: Maybe Text
apiextensionsV1ServiceReferenceNamespace :: Text
apiextensionsV1ServiceReferenceName :: Text
apiextensionsV1ServiceReferencePort :: ApiextensionsV1ServiceReference -> Maybe Int
apiextensionsV1ServiceReferencePath :: ApiextensionsV1ServiceReference -> Maybe Text
apiextensionsV1ServiceReferenceNamespace :: ApiextensionsV1ServiceReference -> Text
apiextensionsV1ServiceReferenceName :: ApiextensionsV1ServiceReference -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
apiextensionsV1ServiceReferenceName
      , Text
"namespace" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
apiextensionsV1ServiceReferenceNamespace
      , Text
"path" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
apiextensionsV1ServiceReferencePath
      , Text
"port" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
apiextensionsV1ServiceReferencePort
      ]


-- | Construct a value of type 'ApiextensionsV1ServiceReference' (by applying it's required fields, if any)
mkApiextensionsV1ServiceReference
  :: Text -- ^ 'apiextensionsV1ServiceReferenceName': name is the name of the service. Required
  -> Text -- ^ 'apiextensionsV1ServiceReferenceNamespace': namespace is the namespace of the service. Required
  -> ApiextensionsV1ServiceReference
mkApiextensionsV1ServiceReference :: Text -> Text -> ApiextensionsV1ServiceReference
mkApiextensionsV1ServiceReference Text
apiextensionsV1ServiceReferenceName Text
apiextensionsV1ServiceReferenceNamespace =
  ApiextensionsV1ServiceReference :: Text
-> Text
-> Maybe Text
-> Maybe Int
-> ApiextensionsV1ServiceReference
ApiextensionsV1ServiceReference
  { Text
apiextensionsV1ServiceReferenceName :: Text
apiextensionsV1ServiceReferenceName :: Text
apiextensionsV1ServiceReferenceName
  , Text
apiextensionsV1ServiceReferenceNamespace :: Text
apiextensionsV1ServiceReferenceNamespace :: Text
apiextensionsV1ServiceReferenceNamespace
  , apiextensionsV1ServiceReferencePath :: Maybe Text
apiextensionsV1ServiceReferencePath = Maybe Text
forall a. Maybe a
Nothing
  , apiextensionsV1ServiceReferencePort :: Maybe Int
apiextensionsV1ServiceReferencePort = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** ApiextensionsV1WebhookClientConfig
-- | ApiextensionsV1WebhookClientConfig
-- WebhookClientConfig contains the information to make a TLS connection with the webhook.
data ApiextensionsV1WebhookClientConfig = ApiextensionsV1WebhookClientConfig
  { ApiextensionsV1WebhookClientConfig -> Maybe ByteArray
apiextensionsV1WebhookClientConfigCaBundle :: !(Maybe ByteArray) -- ^ "caBundle" - caBundle is a PEM encoded CA bundle which will be used to validate the webhook&#39;s server certificate. If unspecified, system trust roots on the apiserver are used.
  , ApiextensionsV1WebhookClientConfig
-> Maybe ApiextensionsV1ServiceReference
apiextensionsV1WebhookClientConfigService :: !(Maybe ApiextensionsV1ServiceReference) -- ^ "service"
  , ApiextensionsV1WebhookClientConfig -> Maybe Text
apiextensionsV1WebhookClientConfigUrl :: !(Maybe Text) -- ^ "url" - url gives the location of the webhook, in standard URL form (&#x60;scheme://host:port/path&#x60;). Exactly one of &#x60;url&#x60; or &#x60;service&#x60; must be specified.  The &#x60;host&#x60; should not refer to a service running in the cluster; use the &#x60;service&#x60; field instead. The host might be resolved via external DNS in some apiservers (e.g., &#x60;kube-apiserver&#x60; cannot resolve in-cluster DNS as that would be a layering violation). &#x60;host&#x60; may also be an IP address.  Please note that using &#x60;localhost&#x60; or &#x60;127.0.0.1&#x60; as a &#x60;host&#x60; is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.  The scheme must be \&quot;https\&quot;; the URL must begin with \&quot;https://\&quot;.  A path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.  Attempting to use a user or basic auth e.g. \&quot;user:password@\&quot; is not allowed. Fragments (\&quot;#...\&quot;) and query parameters (\&quot;?...\&quot;) are not allowed, either.
  } deriving (Int -> ApiextensionsV1WebhookClientConfig -> ShowS
[ApiextensionsV1WebhookClientConfig] -> ShowS
ApiextensionsV1WebhookClientConfig -> String
(Int -> ApiextensionsV1WebhookClientConfig -> ShowS)
-> (ApiextensionsV1WebhookClientConfig -> String)
-> ([ApiextensionsV1WebhookClientConfig] -> ShowS)
-> Show ApiextensionsV1WebhookClientConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ApiextensionsV1WebhookClientConfig] -> ShowS
$cshowList :: [ApiextensionsV1WebhookClientConfig] -> ShowS
show :: ApiextensionsV1WebhookClientConfig -> String
$cshow :: ApiextensionsV1WebhookClientConfig -> String
showsPrec :: Int -> ApiextensionsV1WebhookClientConfig -> ShowS
$cshowsPrec :: Int -> ApiextensionsV1WebhookClientConfig -> ShowS
P.Show, ApiextensionsV1WebhookClientConfig
-> ApiextensionsV1WebhookClientConfig -> Bool
(ApiextensionsV1WebhookClientConfig
 -> ApiextensionsV1WebhookClientConfig -> Bool)
-> (ApiextensionsV1WebhookClientConfig
    -> ApiextensionsV1WebhookClientConfig -> Bool)
-> Eq ApiextensionsV1WebhookClientConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ApiextensionsV1WebhookClientConfig
-> ApiextensionsV1WebhookClientConfig -> Bool
$c/= :: ApiextensionsV1WebhookClientConfig
-> ApiextensionsV1WebhookClientConfig -> Bool
== :: ApiextensionsV1WebhookClientConfig
-> ApiextensionsV1WebhookClientConfig -> Bool
$c== :: ApiextensionsV1WebhookClientConfig
-> ApiextensionsV1WebhookClientConfig -> Bool
P.Eq, P.Typeable)

-- | FromJSON ApiextensionsV1WebhookClientConfig
instance A.FromJSON ApiextensionsV1WebhookClientConfig where
  parseJSON :: Value -> Parser ApiextensionsV1WebhookClientConfig
parseJSON = String
-> (Object -> Parser ApiextensionsV1WebhookClientConfig)
-> Value
-> Parser ApiextensionsV1WebhookClientConfig
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ApiextensionsV1WebhookClientConfig" ((Object -> Parser ApiextensionsV1WebhookClientConfig)
 -> Value -> Parser ApiextensionsV1WebhookClientConfig)
-> (Object -> Parser ApiextensionsV1WebhookClientConfig)
-> Value
-> Parser ApiextensionsV1WebhookClientConfig
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe ByteArray
-> Maybe ApiextensionsV1ServiceReference
-> Maybe Text
-> ApiextensionsV1WebhookClientConfig
ApiextensionsV1WebhookClientConfig
      (Maybe ByteArray
 -> Maybe ApiextensionsV1ServiceReference
 -> Maybe Text
 -> ApiextensionsV1WebhookClientConfig)
-> Parser (Maybe ByteArray)
-> Parser
     (Maybe ApiextensionsV1ServiceReference
      -> Maybe Text -> ApiextensionsV1WebhookClientConfig)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe ByteArray)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"caBundle")
      Parser
  (Maybe ApiextensionsV1ServiceReference
   -> Maybe Text -> ApiextensionsV1WebhookClientConfig)
-> Parser (Maybe ApiextensionsV1ServiceReference)
-> Parser (Maybe Text -> ApiextensionsV1WebhookClientConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe ApiextensionsV1ServiceReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"service")
      Parser (Maybe Text -> ApiextensionsV1WebhookClientConfig)
-> Parser (Maybe Text) -> Parser ApiextensionsV1WebhookClientConfig
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"url")

-- | ToJSON ApiextensionsV1WebhookClientConfig
instance A.ToJSON ApiextensionsV1WebhookClientConfig where
  toJSON :: ApiextensionsV1WebhookClientConfig -> Value
toJSON ApiextensionsV1WebhookClientConfig {Maybe Text
Maybe ByteArray
Maybe ApiextensionsV1ServiceReference
apiextensionsV1WebhookClientConfigUrl :: Maybe Text
apiextensionsV1WebhookClientConfigService :: Maybe ApiextensionsV1ServiceReference
apiextensionsV1WebhookClientConfigCaBundle :: Maybe ByteArray
apiextensionsV1WebhookClientConfigUrl :: ApiextensionsV1WebhookClientConfig -> Maybe Text
apiextensionsV1WebhookClientConfigService :: ApiextensionsV1WebhookClientConfig
-> Maybe ApiextensionsV1ServiceReference
apiextensionsV1WebhookClientConfigCaBundle :: ApiextensionsV1WebhookClientConfig -> Maybe ByteArray
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"caBundle" Text -> Maybe ByteArray -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ByteArray
apiextensionsV1WebhookClientConfigCaBundle
      , Text
"service" Text -> Maybe ApiextensionsV1ServiceReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ApiextensionsV1ServiceReference
apiextensionsV1WebhookClientConfigService
      , Text
"url" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
apiextensionsV1WebhookClientConfigUrl
      ]


-- | Construct a value of type 'ApiextensionsV1WebhookClientConfig' (by applying it's required fields, if any)
mkApiextensionsV1WebhookClientConfig
  :: ApiextensionsV1WebhookClientConfig
mkApiextensionsV1WebhookClientConfig :: ApiextensionsV1WebhookClientConfig
mkApiextensionsV1WebhookClientConfig =
  ApiextensionsV1WebhookClientConfig :: Maybe ByteArray
-> Maybe ApiextensionsV1ServiceReference
-> Maybe Text
-> ApiextensionsV1WebhookClientConfig
ApiextensionsV1WebhookClientConfig
  { apiextensionsV1WebhookClientConfigCaBundle :: Maybe ByteArray
apiextensionsV1WebhookClientConfigCaBundle = Maybe ByteArray
forall a. Maybe a
Nothing
  , apiextensionsV1WebhookClientConfigService :: Maybe ApiextensionsV1ServiceReference
apiextensionsV1WebhookClientConfigService = Maybe ApiextensionsV1ServiceReference
forall a. Maybe a
Nothing
  , apiextensionsV1WebhookClientConfigUrl :: Maybe Text
apiextensionsV1WebhookClientConfigUrl = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** ApiextensionsV1beta1ServiceReference
-- | ApiextensionsV1beta1ServiceReference
-- ServiceReference holds a reference to Service.legacy.k8s.io
data ApiextensionsV1beta1ServiceReference = ApiextensionsV1beta1ServiceReference
  { ApiextensionsV1beta1ServiceReference -> Text
apiextensionsV1beta1ServiceReferenceName :: !(Text) -- ^ /Required/ "name" - name is the name of the service. Required
  , ApiextensionsV1beta1ServiceReference -> Text
apiextensionsV1beta1ServiceReferenceNamespace :: !(Text) -- ^ /Required/ "namespace" - namespace is the namespace of the service. Required
  , ApiextensionsV1beta1ServiceReference -> Maybe Text
apiextensionsV1beta1ServiceReferencePath :: !(Maybe Text) -- ^ "path" - path is an optional URL path at which the webhook will be contacted.
  , ApiextensionsV1beta1ServiceReference -> Maybe Int
apiextensionsV1beta1ServiceReferencePort :: !(Maybe Int) -- ^ "port" - port is an optional service port at which the webhook will be contacted. &#x60;port&#x60; should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.
  } deriving (Int -> ApiextensionsV1beta1ServiceReference -> ShowS
[ApiextensionsV1beta1ServiceReference] -> ShowS
ApiextensionsV1beta1ServiceReference -> String
(Int -> ApiextensionsV1beta1ServiceReference -> ShowS)
-> (ApiextensionsV1beta1ServiceReference -> String)
-> ([ApiextensionsV1beta1ServiceReference] -> ShowS)
-> Show ApiextensionsV1beta1ServiceReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ApiextensionsV1beta1ServiceReference] -> ShowS
$cshowList :: [ApiextensionsV1beta1ServiceReference] -> ShowS
show :: ApiextensionsV1beta1ServiceReference -> String
$cshow :: ApiextensionsV1beta1ServiceReference -> String
showsPrec :: Int -> ApiextensionsV1beta1ServiceReference -> ShowS
$cshowsPrec :: Int -> ApiextensionsV1beta1ServiceReference -> ShowS
P.Show, ApiextensionsV1beta1ServiceReference
-> ApiextensionsV1beta1ServiceReference -> Bool
(ApiextensionsV1beta1ServiceReference
 -> ApiextensionsV1beta1ServiceReference -> Bool)
-> (ApiextensionsV1beta1ServiceReference
    -> ApiextensionsV1beta1ServiceReference -> Bool)
-> Eq ApiextensionsV1beta1ServiceReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ApiextensionsV1beta1ServiceReference
-> ApiextensionsV1beta1ServiceReference -> Bool
$c/= :: ApiextensionsV1beta1ServiceReference
-> ApiextensionsV1beta1ServiceReference -> Bool
== :: ApiextensionsV1beta1ServiceReference
-> ApiextensionsV1beta1ServiceReference -> Bool
$c== :: ApiextensionsV1beta1ServiceReference
-> ApiextensionsV1beta1ServiceReference -> Bool
P.Eq, P.Typeable)

-- | FromJSON ApiextensionsV1beta1ServiceReference
instance A.FromJSON ApiextensionsV1beta1ServiceReference where
  parseJSON :: Value -> Parser ApiextensionsV1beta1ServiceReference
parseJSON = String
-> (Object -> Parser ApiextensionsV1beta1ServiceReference)
-> Value
-> Parser ApiextensionsV1beta1ServiceReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ApiextensionsV1beta1ServiceReference" ((Object -> Parser ApiextensionsV1beta1ServiceReference)
 -> Value -> Parser ApiextensionsV1beta1ServiceReference)
-> (Object -> Parser ApiextensionsV1beta1ServiceReference)
-> Value
-> Parser ApiextensionsV1beta1ServiceReference
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Text
-> Maybe Text
-> Maybe Int
-> ApiextensionsV1beta1ServiceReference
ApiextensionsV1beta1ServiceReference
      (Text
 -> Text
 -> Maybe Text
 -> Maybe Int
 -> ApiextensionsV1beta1ServiceReference)
-> Parser Text
-> Parser
     (Text
      -> Maybe Text -> Maybe Int -> ApiextensionsV1beta1ServiceReference)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Text
   -> Maybe Text -> Maybe Int -> ApiextensionsV1beta1ServiceReference)
-> Parser Text
-> Parser
     (Maybe Text -> Maybe Int -> ApiextensionsV1beta1ServiceReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"namespace")
      Parser
  (Maybe Text -> Maybe Int -> ApiextensionsV1beta1ServiceReference)
-> Parser (Maybe Text)
-> Parser (Maybe Int -> ApiextensionsV1beta1ServiceReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"path")
      Parser (Maybe Int -> ApiextensionsV1beta1ServiceReference)
-> Parser (Maybe Int)
-> Parser ApiextensionsV1beta1ServiceReference
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"port")

-- | ToJSON ApiextensionsV1beta1ServiceReference
instance A.ToJSON ApiextensionsV1beta1ServiceReference where
  toJSON :: ApiextensionsV1beta1ServiceReference -> Value
toJSON ApiextensionsV1beta1ServiceReference {Maybe Int
Maybe Text
Text
apiextensionsV1beta1ServiceReferencePort :: Maybe Int
apiextensionsV1beta1ServiceReferencePath :: Maybe Text
apiextensionsV1beta1ServiceReferenceNamespace :: Text
apiextensionsV1beta1ServiceReferenceName :: Text
apiextensionsV1beta1ServiceReferencePort :: ApiextensionsV1beta1ServiceReference -> Maybe Int
apiextensionsV1beta1ServiceReferencePath :: ApiextensionsV1beta1ServiceReference -> Maybe Text
apiextensionsV1beta1ServiceReferenceNamespace :: ApiextensionsV1beta1ServiceReference -> Text
apiextensionsV1beta1ServiceReferenceName :: ApiextensionsV1beta1ServiceReference -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
apiextensionsV1beta1ServiceReferenceName
      , Text
"namespace" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
apiextensionsV1beta1ServiceReferenceNamespace
      , Text
"path" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
apiextensionsV1beta1ServiceReferencePath
      , Text
"port" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
apiextensionsV1beta1ServiceReferencePort
      ]


-- | Construct a value of type 'ApiextensionsV1beta1ServiceReference' (by applying it's required fields, if any)
mkApiextensionsV1beta1ServiceReference
  :: Text -- ^ 'apiextensionsV1beta1ServiceReferenceName': name is the name of the service. Required
  -> Text -- ^ 'apiextensionsV1beta1ServiceReferenceNamespace': namespace is the namespace of the service. Required
  -> ApiextensionsV1beta1ServiceReference
mkApiextensionsV1beta1ServiceReference :: Text -> Text -> ApiextensionsV1beta1ServiceReference
mkApiextensionsV1beta1ServiceReference Text
apiextensionsV1beta1ServiceReferenceName Text
apiextensionsV1beta1ServiceReferenceNamespace =
  ApiextensionsV1beta1ServiceReference :: Text
-> Text
-> Maybe Text
-> Maybe Int
-> ApiextensionsV1beta1ServiceReference
ApiextensionsV1beta1ServiceReference
  { Text
apiextensionsV1beta1ServiceReferenceName :: Text
apiextensionsV1beta1ServiceReferenceName :: Text
apiextensionsV1beta1ServiceReferenceName
  , Text
apiextensionsV1beta1ServiceReferenceNamespace :: Text
apiextensionsV1beta1ServiceReferenceNamespace :: Text
apiextensionsV1beta1ServiceReferenceNamespace
  , apiextensionsV1beta1ServiceReferencePath :: Maybe Text
apiextensionsV1beta1ServiceReferencePath = Maybe Text
forall a. Maybe a
Nothing
  , apiextensionsV1beta1ServiceReferencePort :: Maybe Int
apiextensionsV1beta1ServiceReferencePort = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** ApiextensionsV1beta1WebhookClientConfig
-- | ApiextensionsV1beta1WebhookClientConfig
-- WebhookClientConfig contains the information to make a TLS connection with the webhook.
data ApiextensionsV1beta1WebhookClientConfig = ApiextensionsV1beta1WebhookClientConfig
  { ApiextensionsV1beta1WebhookClientConfig -> Maybe ByteArray
apiextensionsV1beta1WebhookClientConfigCaBundle :: !(Maybe ByteArray) -- ^ "caBundle" - caBundle is a PEM encoded CA bundle which will be used to validate the webhook&#39;s server certificate. If unspecified, system trust roots on the apiserver are used.
  , ApiextensionsV1beta1WebhookClientConfig
-> Maybe ApiextensionsV1beta1ServiceReference
apiextensionsV1beta1WebhookClientConfigService :: !(Maybe ApiextensionsV1beta1ServiceReference) -- ^ "service"
  , ApiextensionsV1beta1WebhookClientConfig -> Maybe Text
apiextensionsV1beta1WebhookClientConfigUrl :: !(Maybe Text) -- ^ "url" - url gives the location of the webhook, in standard URL form (&#x60;scheme://host:port/path&#x60;). Exactly one of &#x60;url&#x60; or &#x60;service&#x60; must be specified.  The &#x60;host&#x60; should not refer to a service running in the cluster; use the &#x60;service&#x60; field instead. The host might be resolved via external DNS in some apiservers (e.g., &#x60;kube-apiserver&#x60; cannot resolve in-cluster DNS as that would be a layering violation). &#x60;host&#x60; may also be an IP address.  Please note that using &#x60;localhost&#x60; or &#x60;127.0.0.1&#x60; as a &#x60;host&#x60; is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.  The scheme must be \&quot;https\&quot;; the URL must begin with \&quot;https://\&quot;.  A path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.  Attempting to use a user or basic auth e.g. \&quot;user:password@\&quot; is not allowed. Fragments (\&quot;#...\&quot;) and query parameters (\&quot;?...\&quot;) are not allowed, either.
  } deriving (Int -> ApiextensionsV1beta1WebhookClientConfig -> ShowS
[ApiextensionsV1beta1WebhookClientConfig] -> ShowS
ApiextensionsV1beta1WebhookClientConfig -> String
(Int -> ApiextensionsV1beta1WebhookClientConfig -> ShowS)
-> (ApiextensionsV1beta1WebhookClientConfig -> String)
-> ([ApiextensionsV1beta1WebhookClientConfig] -> ShowS)
-> Show ApiextensionsV1beta1WebhookClientConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ApiextensionsV1beta1WebhookClientConfig] -> ShowS
$cshowList :: [ApiextensionsV1beta1WebhookClientConfig] -> ShowS
show :: ApiextensionsV1beta1WebhookClientConfig -> String
$cshow :: ApiextensionsV1beta1WebhookClientConfig -> String
showsPrec :: Int -> ApiextensionsV1beta1WebhookClientConfig -> ShowS
$cshowsPrec :: Int -> ApiextensionsV1beta1WebhookClientConfig -> ShowS
P.Show, ApiextensionsV1beta1WebhookClientConfig
-> ApiextensionsV1beta1WebhookClientConfig -> Bool
(ApiextensionsV1beta1WebhookClientConfig
 -> ApiextensionsV1beta1WebhookClientConfig -> Bool)
-> (ApiextensionsV1beta1WebhookClientConfig
    -> ApiextensionsV1beta1WebhookClientConfig -> Bool)
-> Eq ApiextensionsV1beta1WebhookClientConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ApiextensionsV1beta1WebhookClientConfig
-> ApiextensionsV1beta1WebhookClientConfig -> Bool
$c/= :: ApiextensionsV1beta1WebhookClientConfig
-> ApiextensionsV1beta1WebhookClientConfig -> Bool
== :: ApiextensionsV1beta1WebhookClientConfig
-> ApiextensionsV1beta1WebhookClientConfig -> Bool
$c== :: ApiextensionsV1beta1WebhookClientConfig
-> ApiextensionsV1beta1WebhookClientConfig -> Bool
P.Eq, P.Typeable)

-- | FromJSON ApiextensionsV1beta1WebhookClientConfig
instance A.FromJSON ApiextensionsV1beta1WebhookClientConfig where
  parseJSON :: Value -> Parser ApiextensionsV1beta1WebhookClientConfig
parseJSON = String
-> (Object -> Parser ApiextensionsV1beta1WebhookClientConfig)
-> Value
-> Parser ApiextensionsV1beta1WebhookClientConfig
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ApiextensionsV1beta1WebhookClientConfig" ((Object -> Parser ApiextensionsV1beta1WebhookClientConfig)
 -> Value -> Parser ApiextensionsV1beta1WebhookClientConfig)
-> (Object -> Parser ApiextensionsV1beta1WebhookClientConfig)
-> Value
-> Parser ApiextensionsV1beta1WebhookClientConfig
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe ByteArray
-> Maybe ApiextensionsV1beta1ServiceReference
-> Maybe Text
-> ApiextensionsV1beta1WebhookClientConfig
ApiextensionsV1beta1WebhookClientConfig
      (Maybe ByteArray
 -> Maybe ApiextensionsV1beta1ServiceReference
 -> Maybe Text
 -> ApiextensionsV1beta1WebhookClientConfig)
-> Parser (Maybe ByteArray)
-> Parser
     (Maybe ApiextensionsV1beta1ServiceReference
      -> Maybe Text -> ApiextensionsV1beta1WebhookClientConfig)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe ByteArray)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"caBundle")
      Parser
  (Maybe ApiextensionsV1beta1ServiceReference
   -> Maybe Text -> ApiextensionsV1beta1WebhookClientConfig)
-> Parser (Maybe ApiextensionsV1beta1ServiceReference)
-> Parser (Maybe Text -> ApiextensionsV1beta1WebhookClientConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe ApiextensionsV1beta1ServiceReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"service")
      Parser (Maybe Text -> ApiextensionsV1beta1WebhookClientConfig)
-> Parser (Maybe Text)
-> Parser ApiextensionsV1beta1WebhookClientConfig
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"url")

-- | ToJSON ApiextensionsV1beta1WebhookClientConfig
instance A.ToJSON ApiextensionsV1beta1WebhookClientConfig where
  toJSON :: ApiextensionsV1beta1WebhookClientConfig -> Value
toJSON ApiextensionsV1beta1WebhookClientConfig {Maybe Text
Maybe ByteArray
Maybe ApiextensionsV1beta1ServiceReference
apiextensionsV1beta1WebhookClientConfigUrl :: Maybe Text
apiextensionsV1beta1WebhookClientConfigService :: Maybe ApiextensionsV1beta1ServiceReference
apiextensionsV1beta1WebhookClientConfigCaBundle :: Maybe ByteArray
apiextensionsV1beta1WebhookClientConfigUrl :: ApiextensionsV1beta1WebhookClientConfig -> Maybe Text
apiextensionsV1beta1WebhookClientConfigService :: ApiextensionsV1beta1WebhookClientConfig
-> Maybe ApiextensionsV1beta1ServiceReference
apiextensionsV1beta1WebhookClientConfigCaBundle :: ApiextensionsV1beta1WebhookClientConfig -> Maybe ByteArray
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"caBundle" Text -> Maybe ByteArray -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ByteArray
apiextensionsV1beta1WebhookClientConfigCaBundle
      , Text
"service" Text -> Maybe ApiextensionsV1beta1ServiceReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ApiextensionsV1beta1ServiceReference
apiextensionsV1beta1WebhookClientConfigService
      , Text
"url" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
apiextensionsV1beta1WebhookClientConfigUrl
      ]


-- | Construct a value of type 'ApiextensionsV1beta1WebhookClientConfig' (by applying it's required fields, if any)
mkApiextensionsV1beta1WebhookClientConfig
  :: ApiextensionsV1beta1WebhookClientConfig
mkApiextensionsV1beta1WebhookClientConfig :: ApiextensionsV1beta1WebhookClientConfig
mkApiextensionsV1beta1WebhookClientConfig =
  ApiextensionsV1beta1WebhookClientConfig :: Maybe ByteArray
-> Maybe ApiextensionsV1beta1ServiceReference
-> Maybe Text
-> ApiextensionsV1beta1WebhookClientConfig
ApiextensionsV1beta1WebhookClientConfig
  { apiextensionsV1beta1WebhookClientConfigCaBundle :: Maybe ByteArray
apiextensionsV1beta1WebhookClientConfigCaBundle = Maybe ByteArray
forall a. Maybe a
Nothing
  , apiextensionsV1beta1WebhookClientConfigService :: Maybe ApiextensionsV1beta1ServiceReference
apiextensionsV1beta1WebhookClientConfigService = Maybe ApiextensionsV1beta1ServiceReference
forall a. Maybe a
Nothing
  , apiextensionsV1beta1WebhookClientConfigUrl :: Maybe Text
apiextensionsV1beta1WebhookClientConfigUrl = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** ApiregistrationV1ServiceReference
-- | ApiregistrationV1ServiceReference
-- ServiceReference holds a reference to Service.legacy.k8s.io
data ApiregistrationV1ServiceReference = ApiregistrationV1ServiceReference
  { ApiregistrationV1ServiceReference -> Maybe Text
apiregistrationV1ServiceReferenceName :: !(Maybe Text) -- ^ "name" - Name is the name of the service
  , ApiregistrationV1ServiceReference -> Maybe Text
apiregistrationV1ServiceReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace is the namespace of the service
  , ApiregistrationV1ServiceReference -> Maybe Int
apiregistrationV1ServiceReferencePort :: !(Maybe Int) -- ^ "port" - If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. &#x60;port&#x60; should be a valid port number (1-65535, inclusive).
  } deriving (Int -> ApiregistrationV1ServiceReference -> ShowS
[ApiregistrationV1ServiceReference] -> ShowS
ApiregistrationV1ServiceReference -> String
(Int -> ApiregistrationV1ServiceReference -> ShowS)
-> (ApiregistrationV1ServiceReference -> String)
-> ([ApiregistrationV1ServiceReference] -> ShowS)
-> Show ApiregistrationV1ServiceReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ApiregistrationV1ServiceReference] -> ShowS
$cshowList :: [ApiregistrationV1ServiceReference] -> ShowS
show :: ApiregistrationV1ServiceReference -> String
$cshow :: ApiregistrationV1ServiceReference -> String
showsPrec :: Int -> ApiregistrationV1ServiceReference -> ShowS
$cshowsPrec :: Int -> ApiregistrationV1ServiceReference -> ShowS
P.Show, ApiregistrationV1ServiceReference
-> ApiregistrationV1ServiceReference -> Bool
(ApiregistrationV1ServiceReference
 -> ApiregistrationV1ServiceReference -> Bool)
-> (ApiregistrationV1ServiceReference
    -> ApiregistrationV1ServiceReference -> Bool)
-> Eq ApiregistrationV1ServiceReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ApiregistrationV1ServiceReference
-> ApiregistrationV1ServiceReference -> Bool
$c/= :: ApiregistrationV1ServiceReference
-> ApiregistrationV1ServiceReference -> Bool
== :: ApiregistrationV1ServiceReference
-> ApiregistrationV1ServiceReference -> Bool
$c== :: ApiregistrationV1ServiceReference
-> ApiregistrationV1ServiceReference -> Bool
P.Eq, P.Typeable)

-- | FromJSON ApiregistrationV1ServiceReference
instance A.FromJSON ApiregistrationV1ServiceReference where
  parseJSON :: Value -> Parser ApiregistrationV1ServiceReference
parseJSON = String
-> (Object -> Parser ApiregistrationV1ServiceReference)
-> Value
-> Parser ApiregistrationV1ServiceReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ApiregistrationV1ServiceReference" ((Object -> Parser ApiregistrationV1ServiceReference)
 -> Value -> Parser ApiregistrationV1ServiceReference)
-> (Object -> Parser ApiregistrationV1ServiceReference)
-> Value
-> Parser ApiregistrationV1ServiceReference
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text -> Maybe Int -> ApiregistrationV1ServiceReference
ApiregistrationV1ServiceReference
      (Maybe Text
 -> Maybe Text -> Maybe Int -> ApiregistrationV1ServiceReference)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Int -> ApiregistrationV1ServiceReference)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser
  (Maybe Text -> Maybe Int -> ApiregistrationV1ServiceReference)
-> Parser (Maybe Text)
-> Parser (Maybe Int -> ApiregistrationV1ServiceReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespace")
      Parser (Maybe Int -> ApiregistrationV1ServiceReference)
-> Parser (Maybe Int) -> Parser ApiregistrationV1ServiceReference
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"port")

-- | ToJSON ApiregistrationV1ServiceReference
instance A.ToJSON ApiregistrationV1ServiceReference where
  toJSON :: ApiregistrationV1ServiceReference -> Value
toJSON ApiregistrationV1ServiceReference {Maybe Int
Maybe Text
apiregistrationV1ServiceReferencePort :: Maybe Int
apiregistrationV1ServiceReferenceNamespace :: Maybe Text
apiregistrationV1ServiceReferenceName :: Maybe Text
apiregistrationV1ServiceReferencePort :: ApiregistrationV1ServiceReference -> Maybe Int
apiregistrationV1ServiceReferenceNamespace :: ApiregistrationV1ServiceReference -> Maybe Text
apiregistrationV1ServiceReferenceName :: ApiregistrationV1ServiceReference -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
apiregistrationV1ServiceReferenceName
      , Text
"namespace" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
apiregistrationV1ServiceReferenceNamespace
      , Text
"port" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
apiregistrationV1ServiceReferencePort
      ]


-- | Construct a value of type 'ApiregistrationV1ServiceReference' (by applying it's required fields, if any)
mkApiregistrationV1ServiceReference
  :: ApiregistrationV1ServiceReference
mkApiregistrationV1ServiceReference :: ApiregistrationV1ServiceReference
mkApiregistrationV1ServiceReference =
  ApiregistrationV1ServiceReference :: Maybe Text
-> Maybe Text -> Maybe Int -> ApiregistrationV1ServiceReference
ApiregistrationV1ServiceReference
  { apiregistrationV1ServiceReferenceName :: Maybe Text
apiregistrationV1ServiceReferenceName = Maybe Text
forall a. Maybe a
Nothing
  , apiregistrationV1ServiceReferenceNamespace :: Maybe Text
apiregistrationV1ServiceReferenceNamespace = Maybe Text
forall a. Maybe a
Nothing
  , apiregistrationV1ServiceReferencePort :: Maybe Int
apiregistrationV1ServiceReferencePort = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** ApiregistrationV1beta1ServiceReference
-- | ApiregistrationV1beta1ServiceReference
-- ServiceReference holds a reference to Service.legacy.k8s.io
data ApiregistrationV1beta1ServiceReference = ApiregistrationV1beta1ServiceReference
  { ApiregistrationV1beta1ServiceReference -> Maybe Text
apiregistrationV1beta1ServiceReferenceName :: !(Maybe Text) -- ^ "name" - Name is the name of the service
  , ApiregistrationV1beta1ServiceReference -> Maybe Text
apiregistrationV1beta1ServiceReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace is the namespace of the service
  , ApiregistrationV1beta1ServiceReference -> Maybe Int
apiregistrationV1beta1ServiceReferencePort :: !(Maybe Int) -- ^ "port" - If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. &#x60;port&#x60; should be a valid port number (1-65535, inclusive).
  } deriving (Int -> ApiregistrationV1beta1ServiceReference -> ShowS
[ApiregistrationV1beta1ServiceReference] -> ShowS
ApiregistrationV1beta1ServiceReference -> String
(Int -> ApiregistrationV1beta1ServiceReference -> ShowS)
-> (ApiregistrationV1beta1ServiceReference -> String)
-> ([ApiregistrationV1beta1ServiceReference] -> ShowS)
-> Show ApiregistrationV1beta1ServiceReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ApiregistrationV1beta1ServiceReference] -> ShowS
$cshowList :: [ApiregistrationV1beta1ServiceReference] -> ShowS
show :: ApiregistrationV1beta1ServiceReference -> String
$cshow :: ApiregistrationV1beta1ServiceReference -> String
showsPrec :: Int -> ApiregistrationV1beta1ServiceReference -> ShowS
$cshowsPrec :: Int -> ApiregistrationV1beta1ServiceReference -> ShowS
P.Show, ApiregistrationV1beta1ServiceReference
-> ApiregistrationV1beta1ServiceReference -> Bool
(ApiregistrationV1beta1ServiceReference
 -> ApiregistrationV1beta1ServiceReference -> Bool)
-> (ApiregistrationV1beta1ServiceReference
    -> ApiregistrationV1beta1ServiceReference -> Bool)
-> Eq ApiregistrationV1beta1ServiceReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ApiregistrationV1beta1ServiceReference
-> ApiregistrationV1beta1ServiceReference -> Bool
$c/= :: ApiregistrationV1beta1ServiceReference
-> ApiregistrationV1beta1ServiceReference -> Bool
== :: ApiregistrationV1beta1ServiceReference
-> ApiregistrationV1beta1ServiceReference -> Bool
$c== :: ApiregistrationV1beta1ServiceReference
-> ApiregistrationV1beta1ServiceReference -> Bool
P.Eq, P.Typeable)

-- | FromJSON ApiregistrationV1beta1ServiceReference
instance A.FromJSON ApiregistrationV1beta1ServiceReference where
  parseJSON :: Value -> Parser ApiregistrationV1beta1ServiceReference
parseJSON = String
-> (Object -> Parser ApiregistrationV1beta1ServiceReference)
-> Value
-> Parser ApiregistrationV1beta1ServiceReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ApiregistrationV1beta1ServiceReference" ((Object -> Parser ApiregistrationV1beta1ServiceReference)
 -> Value -> Parser ApiregistrationV1beta1ServiceReference)
-> (Object -> Parser ApiregistrationV1beta1ServiceReference)
-> Value
-> Parser ApiregistrationV1beta1ServiceReference
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe Int
-> ApiregistrationV1beta1ServiceReference
ApiregistrationV1beta1ServiceReference
      (Maybe Text
 -> Maybe Text
 -> Maybe Int
 -> ApiregistrationV1beta1ServiceReference)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Int -> ApiregistrationV1beta1ServiceReference)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser
  (Maybe Text -> Maybe Int -> ApiregistrationV1beta1ServiceReference)
-> Parser (Maybe Text)
-> Parser (Maybe Int -> ApiregistrationV1beta1ServiceReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespace")
      Parser (Maybe Int -> ApiregistrationV1beta1ServiceReference)
-> Parser (Maybe Int)
-> Parser ApiregistrationV1beta1ServiceReference
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"port")

-- | ToJSON ApiregistrationV1beta1ServiceReference
instance A.ToJSON ApiregistrationV1beta1ServiceReference where
  toJSON :: ApiregistrationV1beta1ServiceReference -> Value
toJSON ApiregistrationV1beta1ServiceReference {Maybe Int
Maybe Text
apiregistrationV1beta1ServiceReferencePort :: Maybe Int
apiregistrationV1beta1ServiceReferenceNamespace :: Maybe Text
apiregistrationV1beta1ServiceReferenceName :: Maybe Text
apiregistrationV1beta1ServiceReferencePort :: ApiregistrationV1beta1ServiceReference -> Maybe Int
apiregistrationV1beta1ServiceReferenceNamespace :: ApiregistrationV1beta1ServiceReference -> Maybe Text
apiregistrationV1beta1ServiceReferenceName :: ApiregistrationV1beta1ServiceReference -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
apiregistrationV1beta1ServiceReferenceName
      , Text
"namespace" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
apiregistrationV1beta1ServiceReferenceNamespace
      , Text
"port" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
apiregistrationV1beta1ServiceReferencePort
      ]


-- | Construct a value of type 'ApiregistrationV1beta1ServiceReference' (by applying it's required fields, if any)
mkApiregistrationV1beta1ServiceReference
  :: ApiregistrationV1beta1ServiceReference
mkApiregistrationV1beta1ServiceReference :: ApiregistrationV1beta1ServiceReference
mkApiregistrationV1beta1ServiceReference =
  ApiregistrationV1beta1ServiceReference :: Maybe Text
-> Maybe Text
-> Maybe Int
-> ApiregistrationV1beta1ServiceReference
ApiregistrationV1beta1ServiceReference
  { apiregistrationV1beta1ServiceReferenceName :: Maybe Text
apiregistrationV1beta1ServiceReferenceName = Maybe Text
forall a. Maybe a
Nothing
  , apiregistrationV1beta1ServiceReferenceNamespace :: Maybe Text
apiregistrationV1beta1ServiceReferenceNamespace = Maybe Text
forall a. Maybe a
Nothing
  , apiregistrationV1beta1ServiceReferencePort :: Maybe Int
apiregistrationV1beta1ServiceReferencePort = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** AppsV1beta1Deployment
-- | AppsV1beta1Deployment
-- DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.
data AppsV1beta1Deployment = AppsV1beta1Deployment
  { AppsV1beta1Deployment -> Maybe Text
appsV1beta1DeploymentApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , AppsV1beta1Deployment -> Maybe Text
appsV1beta1DeploymentKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , AppsV1beta1Deployment -> Maybe V1ObjectMeta
appsV1beta1DeploymentMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , AppsV1beta1Deployment -> Maybe AppsV1beta1DeploymentSpec
appsV1beta1DeploymentSpec :: !(Maybe AppsV1beta1DeploymentSpec) -- ^ "spec"
  , AppsV1beta1Deployment -> Maybe AppsV1beta1DeploymentStatus
appsV1beta1DeploymentStatus :: !(Maybe AppsV1beta1DeploymentStatus) -- ^ "status"
  } deriving (Int -> AppsV1beta1Deployment -> ShowS
[AppsV1beta1Deployment] -> ShowS
AppsV1beta1Deployment -> String
(Int -> AppsV1beta1Deployment -> ShowS)
-> (AppsV1beta1Deployment -> String)
-> ([AppsV1beta1Deployment] -> ShowS)
-> Show AppsV1beta1Deployment
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AppsV1beta1Deployment] -> ShowS
$cshowList :: [AppsV1beta1Deployment] -> ShowS
show :: AppsV1beta1Deployment -> String
$cshow :: AppsV1beta1Deployment -> String
showsPrec :: Int -> AppsV1beta1Deployment -> ShowS
$cshowsPrec :: Int -> AppsV1beta1Deployment -> ShowS
P.Show, AppsV1beta1Deployment -> AppsV1beta1Deployment -> Bool
(AppsV1beta1Deployment -> AppsV1beta1Deployment -> Bool)
-> (AppsV1beta1Deployment -> AppsV1beta1Deployment -> Bool)
-> Eq AppsV1beta1Deployment
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AppsV1beta1Deployment -> AppsV1beta1Deployment -> Bool
$c/= :: AppsV1beta1Deployment -> AppsV1beta1Deployment -> Bool
== :: AppsV1beta1Deployment -> AppsV1beta1Deployment -> Bool
$c== :: AppsV1beta1Deployment -> AppsV1beta1Deployment -> Bool
P.Eq, P.Typeable)

-- | FromJSON AppsV1beta1Deployment
instance A.FromJSON AppsV1beta1Deployment where
  parseJSON :: Value -> Parser AppsV1beta1Deployment
parseJSON = String
-> (Object -> Parser AppsV1beta1Deployment)
-> Value
-> Parser AppsV1beta1Deployment
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"AppsV1beta1Deployment" ((Object -> Parser AppsV1beta1Deployment)
 -> Value -> Parser AppsV1beta1Deployment)
-> (Object -> Parser AppsV1beta1Deployment)
-> Value
-> Parser AppsV1beta1Deployment
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe AppsV1beta1DeploymentSpec
-> Maybe AppsV1beta1DeploymentStatus
-> AppsV1beta1Deployment
AppsV1beta1Deployment
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe AppsV1beta1DeploymentSpec
 -> Maybe AppsV1beta1DeploymentStatus
 -> AppsV1beta1Deployment)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe AppsV1beta1DeploymentSpec
      -> Maybe AppsV1beta1DeploymentStatus
      -> AppsV1beta1Deployment)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe AppsV1beta1DeploymentSpec
   -> Maybe AppsV1beta1DeploymentStatus
   -> AppsV1beta1Deployment)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe AppsV1beta1DeploymentSpec
      -> Maybe AppsV1beta1DeploymentStatus
      -> AppsV1beta1Deployment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe AppsV1beta1DeploymentSpec
   -> Maybe AppsV1beta1DeploymentStatus
   -> AppsV1beta1Deployment)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe AppsV1beta1DeploymentSpec
      -> Maybe AppsV1beta1DeploymentStatus -> AppsV1beta1Deployment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe AppsV1beta1DeploymentSpec
   -> Maybe AppsV1beta1DeploymentStatus -> AppsV1beta1Deployment)
-> Parser (Maybe AppsV1beta1DeploymentSpec)
-> Parser
     (Maybe AppsV1beta1DeploymentStatus -> AppsV1beta1Deployment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe AppsV1beta1DeploymentSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe AppsV1beta1DeploymentStatus -> AppsV1beta1Deployment)
-> Parser (Maybe AppsV1beta1DeploymentStatus)
-> Parser AppsV1beta1Deployment
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe AppsV1beta1DeploymentStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON AppsV1beta1Deployment
instance A.ToJSON AppsV1beta1Deployment where
  toJSON :: AppsV1beta1Deployment -> Value
toJSON AppsV1beta1Deployment {Maybe Text
Maybe V1ObjectMeta
Maybe AppsV1beta1DeploymentStatus
Maybe AppsV1beta1DeploymentSpec
appsV1beta1DeploymentStatus :: Maybe AppsV1beta1DeploymentStatus
appsV1beta1DeploymentSpec :: Maybe AppsV1beta1DeploymentSpec
appsV1beta1DeploymentMetadata :: Maybe V1ObjectMeta
appsV1beta1DeploymentKind :: Maybe Text
appsV1beta1DeploymentApiVersion :: Maybe Text
appsV1beta1DeploymentStatus :: AppsV1beta1Deployment -> Maybe AppsV1beta1DeploymentStatus
appsV1beta1DeploymentSpec :: AppsV1beta1Deployment -> Maybe AppsV1beta1DeploymentSpec
appsV1beta1DeploymentMetadata :: AppsV1beta1Deployment -> Maybe V1ObjectMeta
appsV1beta1DeploymentKind :: AppsV1beta1Deployment -> Maybe Text
appsV1beta1DeploymentApiVersion :: AppsV1beta1Deployment -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
appsV1beta1DeploymentApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
appsV1beta1DeploymentKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
appsV1beta1DeploymentMetadata
      , Text
"spec" Text -> Maybe AppsV1beta1DeploymentSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe AppsV1beta1DeploymentSpec
appsV1beta1DeploymentSpec
      , Text
"status" Text -> Maybe AppsV1beta1DeploymentStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe AppsV1beta1DeploymentStatus
appsV1beta1DeploymentStatus
      ]


-- | Construct a value of type 'AppsV1beta1Deployment' (by applying it's required fields, if any)
mkAppsV1beta1Deployment
  :: AppsV1beta1Deployment
mkAppsV1beta1Deployment :: AppsV1beta1Deployment
mkAppsV1beta1Deployment =
  AppsV1beta1Deployment :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe AppsV1beta1DeploymentSpec
-> Maybe AppsV1beta1DeploymentStatus
-> AppsV1beta1Deployment
AppsV1beta1Deployment
  { appsV1beta1DeploymentApiVersion :: Maybe Text
appsV1beta1DeploymentApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentKind :: Maybe Text
appsV1beta1DeploymentKind = Maybe Text
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentMetadata :: Maybe V1ObjectMeta
appsV1beta1DeploymentMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentSpec :: Maybe AppsV1beta1DeploymentSpec
appsV1beta1DeploymentSpec = Maybe AppsV1beta1DeploymentSpec
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentStatus :: Maybe AppsV1beta1DeploymentStatus
appsV1beta1DeploymentStatus = Maybe AppsV1beta1DeploymentStatus
forall a. Maybe a
Nothing
  }

-- ** AppsV1beta1DeploymentCondition
-- | AppsV1beta1DeploymentCondition
-- DeploymentCondition describes the state of a deployment at a certain point.
data AppsV1beta1DeploymentCondition = AppsV1beta1DeploymentCondition
  { AppsV1beta1DeploymentCondition -> Maybe DateTime
appsV1beta1DeploymentConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.
  , AppsV1beta1DeploymentCondition -> Maybe DateTime
appsV1beta1DeploymentConditionLastUpdateTime :: !(Maybe DateTime) -- ^ "lastUpdateTime" - The last time this condition was updated.
  , AppsV1beta1DeploymentCondition -> Maybe Text
appsV1beta1DeploymentConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.
  , AppsV1beta1DeploymentCondition -> Maybe Text
appsV1beta1DeploymentConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition&#39;s last transition.
  , AppsV1beta1DeploymentCondition -> Text
appsV1beta1DeploymentConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , AppsV1beta1DeploymentCondition -> Text
appsV1beta1DeploymentConditionType :: !(Text) -- ^ /Required/ "type" - Type of deployment condition.
  } deriving (Int -> AppsV1beta1DeploymentCondition -> ShowS
[AppsV1beta1DeploymentCondition] -> ShowS
AppsV1beta1DeploymentCondition -> String
(Int -> AppsV1beta1DeploymentCondition -> ShowS)
-> (AppsV1beta1DeploymentCondition -> String)
-> ([AppsV1beta1DeploymentCondition] -> ShowS)
-> Show AppsV1beta1DeploymentCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AppsV1beta1DeploymentCondition] -> ShowS
$cshowList :: [AppsV1beta1DeploymentCondition] -> ShowS
show :: AppsV1beta1DeploymentCondition -> String
$cshow :: AppsV1beta1DeploymentCondition -> String
showsPrec :: Int -> AppsV1beta1DeploymentCondition -> ShowS
$cshowsPrec :: Int -> AppsV1beta1DeploymentCondition -> ShowS
P.Show, AppsV1beta1DeploymentCondition
-> AppsV1beta1DeploymentCondition -> Bool
(AppsV1beta1DeploymentCondition
 -> AppsV1beta1DeploymentCondition -> Bool)
-> (AppsV1beta1DeploymentCondition
    -> AppsV1beta1DeploymentCondition -> Bool)
-> Eq AppsV1beta1DeploymentCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AppsV1beta1DeploymentCondition
-> AppsV1beta1DeploymentCondition -> Bool
$c/= :: AppsV1beta1DeploymentCondition
-> AppsV1beta1DeploymentCondition -> Bool
== :: AppsV1beta1DeploymentCondition
-> AppsV1beta1DeploymentCondition -> Bool
$c== :: AppsV1beta1DeploymentCondition
-> AppsV1beta1DeploymentCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON AppsV1beta1DeploymentCondition
instance A.FromJSON AppsV1beta1DeploymentCondition where
  parseJSON :: Value -> Parser AppsV1beta1DeploymentCondition
parseJSON = String
-> (Object -> Parser AppsV1beta1DeploymentCondition)
-> Value
-> Parser AppsV1beta1DeploymentCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"AppsV1beta1DeploymentCondition" ((Object -> Parser AppsV1beta1DeploymentCondition)
 -> Value -> Parser AppsV1beta1DeploymentCondition)
-> (Object -> Parser AppsV1beta1DeploymentCondition)
-> Value
-> Parser AppsV1beta1DeploymentCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> AppsV1beta1DeploymentCondition
AppsV1beta1DeploymentCondition
      (Maybe DateTime
 -> Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> AppsV1beta1DeploymentCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe DateTime
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Text
      -> AppsV1beta1DeploymentCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe DateTime
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Text
   -> AppsV1beta1DeploymentCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text -> Text -> Text -> AppsV1beta1DeploymentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastUpdateTime")
      Parser
  (Maybe Text
   -> Maybe Text -> Text -> Text -> AppsV1beta1DeploymentCondition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Text -> Text -> AppsV1beta1DeploymentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser
  (Maybe Text -> Text -> Text -> AppsV1beta1DeploymentCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> AppsV1beta1DeploymentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> AppsV1beta1DeploymentCondition)
-> Parser Text -> Parser (Text -> AppsV1beta1DeploymentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> AppsV1beta1DeploymentCondition)
-> Parser Text -> Parser AppsV1beta1DeploymentCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON AppsV1beta1DeploymentCondition
instance A.ToJSON AppsV1beta1DeploymentCondition where
  toJSON :: AppsV1beta1DeploymentCondition -> Value
toJSON AppsV1beta1DeploymentCondition {Maybe Text
Maybe DateTime
Text
appsV1beta1DeploymentConditionType :: Text
appsV1beta1DeploymentConditionStatus :: Text
appsV1beta1DeploymentConditionReason :: Maybe Text
appsV1beta1DeploymentConditionMessage :: Maybe Text
appsV1beta1DeploymentConditionLastUpdateTime :: Maybe DateTime
appsV1beta1DeploymentConditionLastTransitionTime :: Maybe DateTime
appsV1beta1DeploymentConditionType :: AppsV1beta1DeploymentCondition -> Text
appsV1beta1DeploymentConditionStatus :: AppsV1beta1DeploymentCondition -> Text
appsV1beta1DeploymentConditionReason :: AppsV1beta1DeploymentCondition -> Maybe Text
appsV1beta1DeploymentConditionMessage :: AppsV1beta1DeploymentCondition -> Maybe Text
appsV1beta1DeploymentConditionLastUpdateTime :: AppsV1beta1DeploymentCondition -> Maybe DateTime
appsV1beta1DeploymentConditionLastTransitionTime :: AppsV1beta1DeploymentCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
appsV1beta1DeploymentConditionLastTransitionTime
      , Text
"lastUpdateTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
appsV1beta1DeploymentConditionLastUpdateTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
appsV1beta1DeploymentConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
appsV1beta1DeploymentConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
appsV1beta1DeploymentConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
appsV1beta1DeploymentConditionType
      ]


-- | Construct a value of type 'AppsV1beta1DeploymentCondition' (by applying it's required fields, if any)
mkAppsV1beta1DeploymentCondition
  :: Text -- ^ 'appsV1beta1DeploymentConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'appsV1beta1DeploymentConditionType': Type of deployment condition.
  -> AppsV1beta1DeploymentCondition
mkAppsV1beta1DeploymentCondition :: Text -> Text -> AppsV1beta1DeploymentCondition
mkAppsV1beta1DeploymentCondition Text
appsV1beta1DeploymentConditionStatus Text
appsV1beta1DeploymentConditionType =
  AppsV1beta1DeploymentCondition :: Maybe DateTime
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> AppsV1beta1DeploymentCondition
AppsV1beta1DeploymentCondition
  { appsV1beta1DeploymentConditionLastTransitionTime :: Maybe DateTime
appsV1beta1DeploymentConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentConditionLastUpdateTime :: Maybe DateTime
appsV1beta1DeploymentConditionLastUpdateTime = Maybe DateTime
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentConditionMessage :: Maybe Text
appsV1beta1DeploymentConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentConditionReason :: Maybe Text
appsV1beta1DeploymentConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
appsV1beta1DeploymentConditionStatus :: Text
appsV1beta1DeploymentConditionStatus :: Text
appsV1beta1DeploymentConditionStatus
  , Text
appsV1beta1DeploymentConditionType :: Text
appsV1beta1DeploymentConditionType :: Text
appsV1beta1DeploymentConditionType
  }

-- ** AppsV1beta1DeploymentList
-- | AppsV1beta1DeploymentList
-- DeploymentList is a list of Deployments.
data AppsV1beta1DeploymentList = AppsV1beta1DeploymentList
  { AppsV1beta1DeploymentList -> Maybe Text
appsV1beta1DeploymentListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , AppsV1beta1DeploymentList -> [AppsV1beta1Deployment]
appsV1beta1DeploymentListItems :: !([AppsV1beta1Deployment]) -- ^ /Required/ "items" - Items is the list of Deployments.
  , AppsV1beta1DeploymentList -> Maybe Text
appsV1beta1DeploymentListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , AppsV1beta1DeploymentList -> Maybe V1ListMeta
appsV1beta1DeploymentListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> AppsV1beta1DeploymentList -> ShowS
[AppsV1beta1DeploymentList] -> ShowS
AppsV1beta1DeploymentList -> String
(Int -> AppsV1beta1DeploymentList -> ShowS)
-> (AppsV1beta1DeploymentList -> String)
-> ([AppsV1beta1DeploymentList] -> ShowS)
-> Show AppsV1beta1DeploymentList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AppsV1beta1DeploymentList] -> ShowS
$cshowList :: [AppsV1beta1DeploymentList] -> ShowS
show :: AppsV1beta1DeploymentList -> String
$cshow :: AppsV1beta1DeploymentList -> String
showsPrec :: Int -> AppsV1beta1DeploymentList -> ShowS
$cshowsPrec :: Int -> AppsV1beta1DeploymentList -> ShowS
P.Show, AppsV1beta1DeploymentList -> AppsV1beta1DeploymentList -> Bool
(AppsV1beta1DeploymentList -> AppsV1beta1DeploymentList -> Bool)
-> (AppsV1beta1DeploymentList -> AppsV1beta1DeploymentList -> Bool)
-> Eq AppsV1beta1DeploymentList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AppsV1beta1DeploymentList -> AppsV1beta1DeploymentList -> Bool
$c/= :: AppsV1beta1DeploymentList -> AppsV1beta1DeploymentList -> Bool
== :: AppsV1beta1DeploymentList -> AppsV1beta1DeploymentList -> Bool
$c== :: AppsV1beta1DeploymentList -> AppsV1beta1DeploymentList -> Bool
P.Eq, P.Typeable)

-- | FromJSON AppsV1beta1DeploymentList
instance A.FromJSON AppsV1beta1DeploymentList where
  parseJSON :: Value -> Parser AppsV1beta1DeploymentList
parseJSON = String
-> (Object -> Parser AppsV1beta1DeploymentList)
-> Value
-> Parser AppsV1beta1DeploymentList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"AppsV1beta1DeploymentList" ((Object -> Parser AppsV1beta1DeploymentList)
 -> Value -> Parser AppsV1beta1DeploymentList)
-> (Object -> Parser AppsV1beta1DeploymentList)
-> Value
-> Parser AppsV1beta1DeploymentList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [AppsV1beta1Deployment]
-> Maybe Text
-> Maybe V1ListMeta
-> AppsV1beta1DeploymentList
AppsV1beta1DeploymentList
      (Maybe Text
 -> [AppsV1beta1Deployment]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> AppsV1beta1DeploymentList)
-> Parser (Maybe Text)
-> Parser
     ([AppsV1beta1Deployment]
      -> Maybe Text -> Maybe V1ListMeta -> AppsV1beta1DeploymentList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([AppsV1beta1Deployment]
   -> Maybe Text -> Maybe V1ListMeta -> AppsV1beta1DeploymentList)
-> Parser [AppsV1beta1Deployment]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> AppsV1beta1DeploymentList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [AppsV1beta1Deployment]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> AppsV1beta1DeploymentList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> AppsV1beta1DeploymentList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> AppsV1beta1DeploymentList)
-> Parser (Maybe V1ListMeta) -> Parser AppsV1beta1DeploymentList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON AppsV1beta1DeploymentList
instance A.ToJSON AppsV1beta1DeploymentList where
  toJSON :: AppsV1beta1DeploymentList -> Value
toJSON AppsV1beta1DeploymentList {[AppsV1beta1Deployment]
Maybe Text
Maybe V1ListMeta
appsV1beta1DeploymentListMetadata :: Maybe V1ListMeta
appsV1beta1DeploymentListKind :: Maybe Text
appsV1beta1DeploymentListItems :: [AppsV1beta1Deployment]
appsV1beta1DeploymentListApiVersion :: Maybe Text
appsV1beta1DeploymentListMetadata :: AppsV1beta1DeploymentList -> Maybe V1ListMeta
appsV1beta1DeploymentListKind :: AppsV1beta1DeploymentList -> Maybe Text
appsV1beta1DeploymentListItems :: AppsV1beta1DeploymentList -> [AppsV1beta1Deployment]
appsV1beta1DeploymentListApiVersion :: AppsV1beta1DeploymentList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
appsV1beta1DeploymentListApiVersion
      , Text
"items" Text -> [AppsV1beta1Deployment] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [AppsV1beta1Deployment]
appsV1beta1DeploymentListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
appsV1beta1DeploymentListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
appsV1beta1DeploymentListMetadata
      ]


-- | Construct a value of type 'AppsV1beta1DeploymentList' (by applying it's required fields, if any)
mkAppsV1beta1DeploymentList
  :: [AppsV1beta1Deployment] -- ^ 'appsV1beta1DeploymentListItems': Items is the list of Deployments.
  -> AppsV1beta1DeploymentList
mkAppsV1beta1DeploymentList :: [AppsV1beta1Deployment] -> AppsV1beta1DeploymentList
mkAppsV1beta1DeploymentList [AppsV1beta1Deployment]
appsV1beta1DeploymentListItems =
  AppsV1beta1DeploymentList :: Maybe Text
-> [AppsV1beta1Deployment]
-> Maybe Text
-> Maybe V1ListMeta
-> AppsV1beta1DeploymentList
AppsV1beta1DeploymentList
  { appsV1beta1DeploymentListApiVersion :: Maybe Text
appsV1beta1DeploymentListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [AppsV1beta1Deployment]
appsV1beta1DeploymentListItems :: [AppsV1beta1Deployment]
appsV1beta1DeploymentListItems :: [AppsV1beta1Deployment]
appsV1beta1DeploymentListItems
  , appsV1beta1DeploymentListKind :: Maybe Text
appsV1beta1DeploymentListKind = Maybe Text
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentListMetadata :: Maybe V1ListMeta
appsV1beta1DeploymentListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** AppsV1beta1DeploymentRollback
-- | AppsV1beta1DeploymentRollback
-- DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.
data AppsV1beta1DeploymentRollback = AppsV1beta1DeploymentRollback
  { AppsV1beta1DeploymentRollback -> Maybe Text
appsV1beta1DeploymentRollbackApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , AppsV1beta1DeploymentRollback -> Maybe Text
appsV1beta1DeploymentRollbackKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , AppsV1beta1DeploymentRollback -> Text
appsV1beta1DeploymentRollbackName :: !(Text) -- ^ /Required/ "name" - Required: This must match the Name of a deployment.
  , AppsV1beta1DeploymentRollback -> AppsV1beta1RollbackConfig
appsV1beta1DeploymentRollbackRollbackTo :: !(AppsV1beta1RollbackConfig) -- ^ /Required/ "rollbackTo"
  , AppsV1beta1DeploymentRollback -> Maybe (Map String Text)
appsV1beta1DeploymentRollbackUpdatedAnnotations :: !(Maybe (Map.Map String Text)) -- ^ "updatedAnnotations" - The annotations to be updated to a deployment
  } deriving (Int -> AppsV1beta1DeploymentRollback -> ShowS
[AppsV1beta1DeploymentRollback] -> ShowS
AppsV1beta1DeploymentRollback -> String
(Int -> AppsV1beta1DeploymentRollback -> ShowS)
-> (AppsV1beta1DeploymentRollback -> String)
-> ([AppsV1beta1DeploymentRollback] -> ShowS)
-> Show AppsV1beta1DeploymentRollback
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AppsV1beta1DeploymentRollback] -> ShowS
$cshowList :: [AppsV1beta1DeploymentRollback] -> ShowS
show :: AppsV1beta1DeploymentRollback -> String
$cshow :: AppsV1beta1DeploymentRollback -> String
showsPrec :: Int -> AppsV1beta1DeploymentRollback -> ShowS
$cshowsPrec :: Int -> AppsV1beta1DeploymentRollback -> ShowS
P.Show, AppsV1beta1DeploymentRollback
-> AppsV1beta1DeploymentRollback -> Bool
(AppsV1beta1DeploymentRollback
 -> AppsV1beta1DeploymentRollback -> Bool)
-> (AppsV1beta1DeploymentRollback
    -> AppsV1beta1DeploymentRollback -> Bool)
-> Eq AppsV1beta1DeploymentRollback
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AppsV1beta1DeploymentRollback
-> AppsV1beta1DeploymentRollback -> Bool
$c/= :: AppsV1beta1DeploymentRollback
-> AppsV1beta1DeploymentRollback -> Bool
== :: AppsV1beta1DeploymentRollback
-> AppsV1beta1DeploymentRollback -> Bool
$c== :: AppsV1beta1DeploymentRollback
-> AppsV1beta1DeploymentRollback -> Bool
P.Eq, P.Typeable)

-- | FromJSON AppsV1beta1DeploymentRollback
instance A.FromJSON AppsV1beta1DeploymentRollback where
  parseJSON :: Value -> Parser AppsV1beta1DeploymentRollback
parseJSON = String
-> (Object -> Parser AppsV1beta1DeploymentRollback)
-> Value
-> Parser AppsV1beta1DeploymentRollback
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"AppsV1beta1DeploymentRollback" ((Object -> Parser AppsV1beta1DeploymentRollback)
 -> Value -> Parser AppsV1beta1DeploymentRollback)
-> (Object -> Parser AppsV1beta1DeploymentRollback)
-> Value
-> Parser AppsV1beta1DeploymentRollback
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Text
-> AppsV1beta1RollbackConfig
-> Maybe (Map String Text)
-> AppsV1beta1DeploymentRollback
AppsV1beta1DeploymentRollback
      (Maybe Text
 -> Maybe Text
 -> Text
 -> AppsV1beta1RollbackConfig
 -> Maybe (Map String Text)
 -> AppsV1beta1DeploymentRollback)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text
      -> AppsV1beta1RollbackConfig
      -> Maybe (Map String Text)
      -> AppsV1beta1DeploymentRollback)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Text
   -> AppsV1beta1RollbackConfig
   -> Maybe (Map String Text)
   -> AppsV1beta1DeploymentRollback)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> AppsV1beta1RollbackConfig
      -> Maybe (Map String Text)
      -> AppsV1beta1DeploymentRollback)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Text
   -> AppsV1beta1RollbackConfig
   -> Maybe (Map String Text)
   -> AppsV1beta1DeploymentRollback)
-> Parser Text
-> Parser
     (AppsV1beta1RollbackConfig
      -> Maybe (Map String Text) -> AppsV1beta1DeploymentRollback)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (AppsV1beta1RollbackConfig
   -> Maybe (Map String Text) -> AppsV1beta1DeploymentRollback)
-> Parser AppsV1beta1RollbackConfig
-> Parser
     (Maybe (Map String Text) -> AppsV1beta1DeploymentRollback)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser AppsV1beta1RollbackConfig
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"rollbackTo")
      Parser (Maybe (Map String Text) -> AppsV1beta1DeploymentRollback)
-> Parser (Maybe (Map String Text))
-> Parser AppsV1beta1DeploymentRollback
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updatedAnnotations")

-- | ToJSON AppsV1beta1DeploymentRollback
instance A.ToJSON AppsV1beta1DeploymentRollback where
  toJSON :: AppsV1beta1DeploymentRollback -> Value
toJSON AppsV1beta1DeploymentRollback {Maybe Text
Maybe (Map String Text)
Text
AppsV1beta1RollbackConfig
appsV1beta1DeploymentRollbackUpdatedAnnotations :: Maybe (Map String Text)
appsV1beta1DeploymentRollbackRollbackTo :: AppsV1beta1RollbackConfig
appsV1beta1DeploymentRollbackName :: Text
appsV1beta1DeploymentRollbackKind :: Maybe Text
appsV1beta1DeploymentRollbackApiVersion :: Maybe Text
appsV1beta1DeploymentRollbackUpdatedAnnotations :: AppsV1beta1DeploymentRollback -> Maybe (Map String Text)
appsV1beta1DeploymentRollbackRollbackTo :: AppsV1beta1DeploymentRollback -> AppsV1beta1RollbackConfig
appsV1beta1DeploymentRollbackName :: AppsV1beta1DeploymentRollback -> Text
appsV1beta1DeploymentRollbackKind :: AppsV1beta1DeploymentRollback -> Maybe Text
appsV1beta1DeploymentRollbackApiVersion :: AppsV1beta1DeploymentRollback -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
appsV1beta1DeploymentRollbackApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
appsV1beta1DeploymentRollbackKind
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
appsV1beta1DeploymentRollbackName
      , Text
"rollbackTo" Text -> AppsV1beta1RollbackConfig -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= AppsV1beta1RollbackConfig
appsV1beta1DeploymentRollbackRollbackTo
      , Text
"updatedAnnotations" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
appsV1beta1DeploymentRollbackUpdatedAnnotations
      ]


-- | Construct a value of type 'AppsV1beta1DeploymentRollback' (by applying it's required fields, if any)
mkAppsV1beta1DeploymentRollback
  :: Text -- ^ 'appsV1beta1DeploymentRollbackName': Required: This must match the Name of a deployment.
  -> AppsV1beta1RollbackConfig -- ^ 'appsV1beta1DeploymentRollbackRollbackTo' 
  -> AppsV1beta1DeploymentRollback
mkAppsV1beta1DeploymentRollback :: Text -> AppsV1beta1RollbackConfig -> AppsV1beta1DeploymentRollback
mkAppsV1beta1DeploymentRollback Text
appsV1beta1DeploymentRollbackName AppsV1beta1RollbackConfig
appsV1beta1DeploymentRollbackRollbackTo =
  AppsV1beta1DeploymentRollback :: Maybe Text
-> Maybe Text
-> Text
-> AppsV1beta1RollbackConfig
-> Maybe (Map String Text)
-> AppsV1beta1DeploymentRollback
AppsV1beta1DeploymentRollback
  { appsV1beta1DeploymentRollbackApiVersion :: Maybe Text
appsV1beta1DeploymentRollbackApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentRollbackKind :: Maybe Text
appsV1beta1DeploymentRollbackKind = Maybe Text
forall a. Maybe a
Nothing
  , Text
appsV1beta1DeploymentRollbackName :: Text
appsV1beta1DeploymentRollbackName :: Text
appsV1beta1DeploymentRollbackName
  , AppsV1beta1RollbackConfig
appsV1beta1DeploymentRollbackRollbackTo :: AppsV1beta1RollbackConfig
appsV1beta1DeploymentRollbackRollbackTo :: AppsV1beta1RollbackConfig
appsV1beta1DeploymentRollbackRollbackTo
  , appsV1beta1DeploymentRollbackUpdatedAnnotations :: Maybe (Map String Text)
appsV1beta1DeploymentRollbackUpdatedAnnotations = Maybe (Map String Text)
forall a. Maybe a
Nothing
  }

-- ** AppsV1beta1DeploymentSpec
-- | AppsV1beta1DeploymentSpec
-- DeploymentSpec is the specification of the desired behavior of the Deployment.
data AppsV1beta1DeploymentSpec = AppsV1beta1DeploymentSpec
  { AppsV1beta1DeploymentSpec -> Maybe Int
appsV1beta1DeploymentSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)
  , AppsV1beta1DeploymentSpec -> Maybe Bool
appsV1beta1DeploymentSpecPaused :: !(Maybe Bool) -- ^ "paused" - Indicates that the deployment is paused.
  , AppsV1beta1DeploymentSpec -> Maybe Int
appsV1beta1DeploymentSpecProgressDeadlineSeconds :: !(Maybe Int) -- ^ "progressDeadlineSeconds" - The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.
  , AppsV1beta1DeploymentSpec -> Maybe Int
appsV1beta1DeploymentSpecReplicas :: !(Maybe Int) -- ^ "replicas" - Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.
  , AppsV1beta1DeploymentSpec -> Maybe Int
appsV1beta1DeploymentSpecRevisionHistoryLimit :: !(Maybe Int) -- ^ "revisionHistoryLimit" - The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 2.
  , AppsV1beta1DeploymentSpec -> Maybe AppsV1beta1RollbackConfig
appsV1beta1DeploymentSpecRollbackTo :: !(Maybe AppsV1beta1RollbackConfig) -- ^ "rollbackTo"
  , AppsV1beta1DeploymentSpec -> Maybe V1LabelSelector
appsV1beta1DeploymentSpecSelector :: !(Maybe V1LabelSelector) -- ^ "selector"
  , AppsV1beta1DeploymentSpec -> Maybe AppsV1beta1DeploymentStrategy
appsV1beta1DeploymentSpecStrategy :: !(Maybe AppsV1beta1DeploymentStrategy) -- ^ "strategy"
  , AppsV1beta1DeploymentSpec -> V1PodTemplateSpec
appsV1beta1DeploymentSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"
  } deriving (Int -> AppsV1beta1DeploymentSpec -> ShowS
[AppsV1beta1DeploymentSpec] -> ShowS
AppsV1beta1DeploymentSpec -> String
(Int -> AppsV1beta1DeploymentSpec -> ShowS)
-> (AppsV1beta1DeploymentSpec -> String)
-> ([AppsV1beta1DeploymentSpec] -> ShowS)
-> Show AppsV1beta1DeploymentSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AppsV1beta1DeploymentSpec] -> ShowS
$cshowList :: [AppsV1beta1DeploymentSpec] -> ShowS
show :: AppsV1beta1DeploymentSpec -> String
$cshow :: AppsV1beta1DeploymentSpec -> String
showsPrec :: Int -> AppsV1beta1DeploymentSpec -> ShowS
$cshowsPrec :: Int -> AppsV1beta1DeploymentSpec -> ShowS
P.Show, AppsV1beta1DeploymentSpec -> AppsV1beta1DeploymentSpec -> Bool
(AppsV1beta1DeploymentSpec -> AppsV1beta1DeploymentSpec -> Bool)
-> (AppsV1beta1DeploymentSpec -> AppsV1beta1DeploymentSpec -> Bool)
-> Eq AppsV1beta1DeploymentSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AppsV1beta1DeploymentSpec -> AppsV1beta1DeploymentSpec -> Bool
$c/= :: AppsV1beta1DeploymentSpec -> AppsV1beta1DeploymentSpec -> Bool
== :: AppsV1beta1DeploymentSpec -> AppsV1beta1DeploymentSpec -> Bool
$c== :: AppsV1beta1DeploymentSpec -> AppsV1beta1DeploymentSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON AppsV1beta1DeploymentSpec
instance A.FromJSON AppsV1beta1DeploymentSpec where
  parseJSON :: Value -> Parser AppsV1beta1DeploymentSpec
parseJSON = String
-> (Object -> Parser AppsV1beta1DeploymentSpec)
-> Value
-> Parser AppsV1beta1DeploymentSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"AppsV1beta1DeploymentSpec" ((Object -> Parser AppsV1beta1DeploymentSpec)
 -> Value -> Parser AppsV1beta1DeploymentSpec)
-> (Object -> Parser AppsV1beta1DeploymentSpec)
-> Value
-> Parser AppsV1beta1DeploymentSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Bool
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe AppsV1beta1RollbackConfig
-> Maybe V1LabelSelector
-> Maybe AppsV1beta1DeploymentStrategy
-> V1PodTemplateSpec
-> AppsV1beta1DeploymentSpec
AppsV1beta1DeploymentSpec
      (Maybe Int
 -> Maybe Bool
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe AppsV1beta1RollbackConfig
 -> Maybe V1LabelSelector
 -> Maybe AppsV1beta1DeploymentStrategy
 -> V1PodTemplateSpec
 -> AppsV1beta1DeploymentSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe AppsV1beta1RollbackConfig
      -> Maybe V1LabelSelector
      -> Maybe AppsV1beta1DeploymentStrategy
      -> V1PodTemplateSpec
      -> AppsV1beta1DeploymentSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minReadySeconds")
      Parser
  (Maybe Bool
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe AppsV1beta1RollbackConfig
   -> Maybe V1LabelSelector
   -> Maybe AppsV1beta1DeploymentStrategy
   -> V1PodTemplateSpec
   -> AppsV1beta1DeploymentSpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe AppsV1beta1RollbackConfig
      -> Maybe V1LabelSelector
      -> Maybe AppsV1beta1DeploymentStrategy
      -> V1PodTemplateSpec
      -> AppsV1beta1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"paused")
      Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe AppsV1beta1RollbackConfig
   -> Maybe V1LabelSelector
   -> Maybe AppsV1beta1DeploymentStrategy
   -> V1PodTemplateSpec
   -> AppsV1beta1DeploymentSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe AppsV1beta1RollbackConfig
      -> Maybe V1LabelSelector
      -> Maybe AppsV1beta1DeploymentStrategy
      -> V1PodTemplateSpec
      -> AppsV1beta1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"progressDeadlineSeconds")
      Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe AppsV1beta1RollbackConfig
   -> Maybe V1LabelSelector
   -> Maybe AppsV1beta1DeploymentStrategy
   -> V1PodTemplateSpec
   -> AppsV1beta1DeploymentSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe AppsV1beta1RollbackConfig
      -> Maybe V1LabelSelector
      -> Maybe AppsV1beta1DeploymentStrategy
      -> V1PodTemplateSpec
      -> AppsV1beta1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")
      Parser
  (Maybe Int
   -> Maybe AppsV1beta1RollbackConfig
   -> Maybe V1LabelSelector
   -> Maybe AppsV1beta1DeploymentStrategy
   -> V1PodTemplateSpec
   -> AppsV1beta1DeploymentSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe AppsV1beta1RollbackConfig
      -> Maybe V1LabelSelector
      -> Maybe AppsV1beta1DeploymentStrategy
      -> V1PodTemplateSpec
      -> AppsV1beta1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"revisionHistoryLimit")
      Parser
  (Maybe AppsV1beta1RollbackConfig
   -> Maybe V1LabelSelector
   -> Maybe AppsV1beta1DeploymentStrategy
   -> V1PodTemplateSpec
   -> AppsV1beta1DeploymentSpec)
-> Parser (Maybe AppsV1beta1RollbackConfig)
-> Parser
     (Maybe V1LabelSelector
      -> Maybe AppsV1beta1DeploymentStrategy
      -> V1PodTemplateSpec
      -> AppsV1beta1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe AppsV1beta1RollbackConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rollbackTo")
      Parser
  (Maybe V1LabelSelector
   -> Maybe AppsV1beta1DeploymentStrategy
   -> V1PodTemplateSpec
   -> AppsV1beta1DeploymentSpec)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (Maybe AppsV1beta1DeploymentStrategy
      -> V1PodTemplateSpec -> AppsV1beta1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")
      Parser
  (Maybe AppsV1beta1DeploymentStrategy
   -> V1PodTemplateSpec -> AppsV1beta1DeploymentSpec)
-> Parser (Maybe AppsV1beta1DeploymentStrategy)
-> Parser (V1PodTemplateSpec -> AppsV1beta1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe AppsV1beta1DeploymentStrategy)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"strategy")
      Parser (V1PodTemplateSpec -> AppsV1beta1DeploymentSpec)
-> Parser V1PodTemplateSpec -> Parser AppsV1beta1DeploymentSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1PodTemplateSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"template")

-- | ToJSON AppsV1beta1DeploymentSpec
instance A.ToJSON AppsV1beta1DeploymentSpec where
  toJSON :: AppsV1beta1DeploymentSpec -> Value
toJSON AppsV1beta1DeploymentSpec {Maybe Bool
Maybe Int
Maybe V1LabelSelector
Maybe AppsV1beta1RollbackConfig
Maybe AppsV1beta1DeploymentStrategy
V1PodTemplateSpec
appsV1beta1DeploymentSpecTemplate :: V1PodTemplateSpec
appsV1beta1DeploymentSpecStrategy :: Maybe AppsV1beta1DeploymentStrategy
appsV1beta1DeploymentSpecSelector :: Maybe V1LabelSelector
appsV1beta1DeploymentSpecRollbackTo :: Maybe AppsV1beta1RollbackConfig
appsV1beta1DeploymentSpecRevisionHistoryLimit :: Maybe Int
appsV1beta1DeploymentSpecReplicas :: Maybe Int
appsV1beta1DeploymentSpecProgressDeadlineSeconds :: Maybe Int
appsV1beta1DeploymentSpecPaused :: Maybe Bool
appsV1beta1DeploymentSpecMinReadySeconds :: Maybe Int
appsV1beta1DeploymentSpecTemplate :: AppsV1beta1DeploymentSpec -> V1PodTemplateSpec
appsV1beta1DeploymentSpecStrategy :: AppsV1beta1DeploymentSpec -> Maybe AppsV1beta1DeploymentStrategy
appsV1beta1DeploymentSpecSelector :: AppsV1beta1DeploymentSpec -> Maybe V1LabelSelector
appsV1beta1DeploymentSpecRollbackTo :: AppsV1beta1DeploymentSpec -> Maybe AppsV1beta1RollbackConfig
appsV1beta1DeploymentSpecRevisionHistoryLimit :: AppsV1beta1DeploymentSpec -> Maybe Int
appsV1beta1DeploymentSpecReplicas :: AppsV1beta1DeploymentSpec -> Maybe Int
appsV1beta1DeploymentSpecProgressDeadlineSeconds :: AppsV1beta1DeploymentSpec -> Maybe Int
appsV1beta1DeploymentSpecPaused :: AppsV1beta1DeploymentSpec -> Maybe Bool
appsV1beta1DeploymentSpecMinReadySeconds :: AppsV1beta1DeploymentSpec -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"minReadySeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
appsV1beta1DeploymentSpecMinReadySeconds
      , Text
"paused" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
appsV1beta1DeploymentSpecPaused
      , Text
"progressDeadlineSeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
appsV1beta1DeploymentSpecProgressDeadlineSeconds
      , Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
appsV1beta1DeploymentSpecReplicas
      , Text
"revisionHistoryLimit" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
appsV1beta1DeploymentSpecRevisionHistoryLimit
      , Text
"rollbackTo" Text -> Maybe AppsV1beta1RollbackConfig -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe AppsV1beta1RollbackConfig
appsV1beta1DeploymentSpecRollbackTo
      , Text
"selector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
appsV1beta1DeploymentSpecSelector
      , Text
"strategy" Text -> Maybe AppsV1beta1DeploymentStrategy -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe AppsV1beta1DeploymentStrategy
appsV1beta1DeploymentSpecStrategy
      , Text
"template" Text -> V1PodTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1PodTemplateSpec
appsV1beta1DeploymentSpecTemplate
      ]


-- | Construct a value of type 'AppsV1beta1DeploymentSpec' (by applying it's required fields, if any)
mkAppsV1beta1DeploymentSpec
  :: V1PodTemplateSpec -- ^ 'appsV1beta1DeploymentSpecTemplate' 
  -> AppsV1beta1DeploymentSpec
mkAppsV1beta1DeploymentSpec :: V1PodTemplateSpec -> AppsV1beta1DeploymentSpec
mkAppsV1beta1DeploymentSpec V1PodTemplateSpec
appsV1beta1DeploymentSpecTemplate =
  AppsV1beta1DeploymentSpec :: Maybe Int
-> Maybe Bool
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe AppsV1beta1RollbackConfig
-> Maybe V1LabelSelector
-> Maybe AppsV1beta1DeploymentStrategy
-> V1PodTemplateSpec
-> AppsV1beta1DeploymentSpec
AppsV1beta1DeploymentSpec
  { appsV1beta1DeploymentSpecMinReadySeconds :: Maybe Int
appsV1beta1DeploymentSpecMinReadySeconds = Maybe Int
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentSpecPaused :: Maybe Bool
appsV1beta1DeploymentSpecPaused = Maybe Bool
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentSpecProgressDeadlineSeconds :: Maybe Int
appsV1beta1DeploymentSpecProgressDeadlineSeconds = Maybe Int
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentSpecReplicas :: Maybe Int
appsV1beta1DeploymentSpecReplicas = Maybe Int
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentSpecRevisionHistoryLimit :: Maybe Int
appsV1beta1DeploymentSpecRevisionHistoryLimit = Maybe Int
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentSpecRollbackTo :: Maybe AppsV1beta1RollbackConfig
appsV1beta1DeploymentSpecRollbackTo = Maybe AppsV1beta1RollbackConfig
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentSpecSelector :: Maybe V1LabelSelector
appsV1beta1DeploymentSpecSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentSpecStrategy :: Maybe AppsV1beta1DeploymentStrategy
appsV1beta1DeploymentSpecStrategy = Maybe AppsV1beta1DeploymentStrategy
forall a. Maybe a
Nothing
  , V1PodTemplateSpec
appsV1beta1DeploymentSpecTemplate :: V1PodTemplateSpec
appsV1beta1DeploymentSpecTemplate :: V1PodTemplateSpec
appsV1beta1DeploymentSpecTemplate
  }

-- ** AppsV1beta1DeploymentStatus
-- | AppsV1beta1DeploymentStatus
-- DeploymentStatus is the most recently observed status of the Deployment.
data AppsV1beta1DeploymentStatus = AppsV1beta1DeploymentStatus
  { AppsV1beta1DeploymentStatus -> Maybe Int
appsV1beta1DeploymentStatusAvailableReplicas :: !(Maybe Int) -- ^ "availableReplicas" - Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.
  , AppsV1beta1DeploymentStatus -> Maybe Int
appsV1beta1DeploymentStatusCollisionCount :: !(Maybe Int) -- ^ "collisionCount" - Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.
  , AppsV1beta1DeploymentStatus
-> Maybe [AppsV1beta1DeploymentCondition]
appsV1beta1DeploymentStatusConditions :: !(Maybe [AppsV1beta1DeploymentCondition]) -- ^ "conditions" - Represents the latest available observations of a deployment&#39;s current state.
  , AppsV1beta1DeploymentStatus -> Maybe Integer
appsV1beta1DeploymentStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - The generation observed by the deployment controller.
  , AppsV1beta1DeploymentStatus -> Maybe Int
appsV1beta1DeploymentStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - Total number of ready pods targeted by this deployment.
  , AppsV1beta1DeploymentStatus -> Maybe Int
appsV1beta1DeploymentStatusReplicas :: !(Maybe Int) -- ^ "replicas" - Total number of non-terminated pods targeted by this deployment (their labels match the selector).
  , AppsV1beta1DeploymentStatus -> Maybe Int
appsV1beta1DeploymentStatusUnavailableReplicas :: !(Maybe Int) -- ^ "unavailableReplicas" - Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.
  , AppsV1beta1DeploymentStatus -> Maybe Int
appsV1beta1DeploymentStatusUpdatedReplicas :: !(Maybe Int) -- ^ "updatedReplicas" - Total number of non-terminated pods targeted by this deployment that have the desired template spec.
  } deriving (Int -> AppsV1beta1DeploymentStatus -> ShowS
[AppsV1beta1DeploymentStatus] -> ShowS
AppsV1beta1DeploymentStatus -> String
(Int -> AppsV1beta1DeploymentStatus -> ShowS)
-> (AppsV1beta1DeploymentStatus -> String)
-> ([AppsV1beta1DeploymentStatus] -> ShowS)
-> Show AppsV1beta1DeploymentStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AppsV1beta1DeploymentStatus] -> ShowS
$cshowList :: [AppsV1beta1DeploymentStatus] -> ShowS
show :: AppsV1beta1DeploymentStatus -> String
$cshow :: AppsV1beta1DeploymentStatus -> String
showsPrec :: Int -> AppsV1beta1DeploymentStatus -> ShowS
$cshowsPrec :: Int -> AppsV1beta1DeploymentStatus -> ShowS
P.Show, AppsV1beta1DeploymentStatus -> AppsV1beta1DeploymentStatus -> Bool
(AppsV1beta1DeploymentStatus
 -> AppsV1beta1DeploymentStatus -> Bool)
-> (AppsV1beta1DeploymentStatus
    -> AppsV1beta1DeploymentStatus -> Bool)
-> Eq AppsV1beta1DeploymentStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AppsV1beta1DeploymentStatus -> AppsV1beta1DeploymentStatus -> Bool
$c/= :: AppsV1beta1DeploymentStatus -> AppsV1beta1DeploymentStatus -> Bool
== :: AppsV1beta1DeploymentStatus -> AppsV1beta1DeploymentStatus -> Bool
$c== :: AppsV1beta1DeploymentStatus -> AppsV1beta1DeploymentStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON AppsV1beta1DeploymentStatus
instance A.FromJSON AppsV1beta1DeploymentStatus where
  parseJSON :: Value -> Parser AppsV1beta1DeploymentStatus
parseJSON = String
-> (Object -> Parser AppsV1beta1DeploymentStatus)
-> Value
-> Parser AppsV1beta1DeploymentStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"AppsV1beta1DeploymentStatus" ((Object -> Parser AppsV1beta1DeploymentStatus)
 -> Value -> Parser AppsV1beta1DeploymentStatus)
-> (Object -> Parser AppsV1beta1DeploymentStatus)
-> Value
-> Parser AppsV1beta1DeploymentStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Int
-> Maybe [AppsV1beta1DeploymentCondition]
-> Maybe Integer
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> AppsV1beta1DeploymentStatus
AppsV1beta1DeploymentStatus
      (Maybe Int
 -> Maybe Int
 -> Maybe [AppsV1beta1DeploymentCondition]
 -> Maybe Integer
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> AppsV1beta1DeploymentStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe [AppsV1beta1DeploymentCondition]
      -> Maybe Integer
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> AppsV1beta1DeploymentStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"availableReplicas")
      Parser
  (Maybe Int
   -> Maybe [AppsV1beta1DeploymentCondition]
   -> Maybe Integer
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> AppsV1beta1DeploymentStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe [AppsV1beta1DeploymentCondition]
      -> Maybe Integer
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> AppsV1beta1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"collisionCount")
      Parser
  (Maybe [AppsV1beta1DeploymentCondition]
   -> Maybe Integer
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> AppsV1beta1DeploymentStatus)
-> Parser (Maybe [AppsV1beta1DeploymentCondition])
-> Parser
     (Maybe Integer
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> AppsV1beta1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [AppsV1beta1DeploymentCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Maybe Integer
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> AppsV1beta1DeploymentStatus)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> AppsV1beta1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")
      Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> AppsV1beta1DeploymentStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe Int -> Maybe Int -> AppsV1beta1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readyReplicas")
      Parser
  (Maybe Int
   -> Maybe Int -> Maybe Int -> AppsV1beta1DeploymentStatus)
-> Parser (Maybe Int)
-> Parser (Maybe Int -> Maybe Int -> AppsV1beta1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")
      Parser (Maybe Int -> Maybe Int -> AppsV1beta1DeploymentStatus)
-> Parser (Maybe Int)
-> Parser (Maybe Int -> AppsV1beta1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"unavailableReplicas")
      Parser (Maybe Int -> AppsV1beta1DeploymentStatus)
-> Parser (Maybe Int) -> Parser AppsV1beta1DeploymentStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updatedReplicas")

-- | ToJSON AppsV1beta1DeploymentStatus
instance A.ToJSON AppsV1beta1DeploymentStatus where
  toJSON :: AppsV1beta1DeploymentStatus -> Value
toJSON AppsV1beta1DeploymentStatus {Maybe Int
Maybe Integer
Maybe [AppsV1beta1DeploymentCondition]
appsV1beta1DeploymentStatusUpdatedReplicas :: Maybe Int
appsV1beta1DeploymentStatusUnavailableReplicas :: Maybe Int
appsV1beta1DeploymentStatusReplicas :: Maybe Int
appsV1beta1DeploymentStatusReadyReplicas :: Maybe Int
appsV1beta1DeploymentStatusObservedGeneration :: Maybe Integer
appsV1beta1DeploymentStatusConditions :: Maybe [AppsV1beta1DeploymentCondition]
appsV1beta1DeploymentStatusCollisionCount :: Maybe Int
appsV1beta1DeploymentStatusAvailableReplicas :: Maybe Int
appsV1beta1DeploymentStatusUpdatedReplicas :: AppsV1beta1DeploymentStatus -> Maybe Int
appsV1beta1DeploymentStatusUnavailableReplicas :: AppsV1beta1DeploymentStatus -> Maybe Int
appsV1beta1DeploymentStatusReplicas :: AppsV1beta1DeploymentStatus -> Maybe Int
appsV1beta1DeploymentStatusReadyReplicas :: AppsV1beta1DeploymentStatus -> Maybe Int
appsV1beta1DeploymentStatusObservedGeneration :: AppsV1beta1DeploymentStatus -> Maybe Integer
appsV1beta1DeploymentStatusConditions :: AppsV1beta1DeploymentStatus
-> Maybe [AppsV1beta1DeploymentCondition]
appsV1beta1DeploymentStatusCollisionCount :: AppsV1beta1DeploymentStatus -> Maybe Int
appsV1beta1DeploymentStatusAvailableReplicas :: AppsV1beta1DeploymentStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"availableReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
appsV1beta1DeploymentStatusAvailableReplicas
      , Text
"collisionCount" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
appsV1beta1DeploymentStatusCollisionCount
      , Text
"conditions" Text -> Maybe [AppsV1beta1DeploymentCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [AppsV1beta1DeploymentCondition]
appsV1beta1DeploymentStatusConditions
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
appsV1beta1DeploymentStatusObservedGeneration
      , Text
"readyReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
appsV1beta1DeploymentStatusReadyReplicas
      , Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
appsV1beta1DeploymentStatusReplicas
      , Text
"unavailableReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
appsV1beta1DeploymentStatusUnavailableReplicas
      , Text
"updatedReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
appsV1beta1DeploymentStatusUpdatedReplicas
      ]


-- | Construct a value of type 'AppsV1beta1DeploymentStatus' (by applying it's required fields, if any)
mkAppsV1beta1DeploymentStatus
  :: AppsV1beta1DeploymentStatus
mkAppsV1beta1DeploymentStatus :: AppsV1beta1DeploymentStatus
mkAppsV1beta1DeploymentStatus =
  AppsV1beta1DeploymentStatus :: Maybe Int
-> Maybe Int
-> Maybe [AppsV1beta1DeploymentCondition]
-> Maybe Integer
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> AppsV1beta1DeploymentStatus
AppsV1beta1DeploymentStatus
  { appsV1beta1DeploymentStatusAvailableReplicas :: Maybe Int
appsV1beta1DeploymentStatusAvailableReplicas = Maybe Int
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentStatusCollisionCount :: Maybe Int
appsV1beta1DeploymentStatusCollisionCount = Maybe Int
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentStatusConditions :: Maybe [AppsV1beta1DeploymentCondition]
appsV1beta1DeploymentStatusConditions = Maybe [AppsV1beta1DeploymentCondition]
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentStatusObservedGeneration :: Maybe Integer
appsV1beta1DeploymentStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentStatusReadyReplicas :: Maybe Int
appsV1beta1DeploymentStatusReadyReplicas = Maybe Int
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentStatusReplicas :: Maybe Int
appsV1beta1DeploymentStatusReplicas = Maybe Int
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentStatusUnavailableReplicas :: Maybe Int
appsV1beta1DeploymentStatusUnavailableReplicas = Maybe Int
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentStatusUpdatedReplicas :: Maybe Int
appsV1beta1DeploymentStatusUpdatedReplicas = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** AppsV1beta1DeploymentStrategy
-- | AppsV1beta1DeploymentStrategy
-- DeploymentStrategy describes how to replace existing pods with new ones.
data AppsV1beta1DeploymentStrategy = AppsV1beta1DeploymentStrategy
  { AppsV1beta1DeploymentStrategy
-> Maybe AppsV1beta1RollingUpdateDeployment
appsV1beta1DeploymentStrategyRollingUpdate :: !(Maybe AppsV1beta1RollingUpdateDeployment) -- ^ "rollingUpdate"
  , AppsV1beta1DeploymentStrategy -> Maybe Text
appsV1beta1DeploymentStrategyType :: !(Maybe Text) -- ^ "type" - Type of deployment. Can be \&quot;Recreate\&quot; or \&quot;RollingUpdate\&quot;. Default is RollingUpdate.
  } deriving (Int -> AppsV1beta1DeploymentStrategy -> ShowS
[AppsV1beta1DeploymentStrategy] -> ShowS
AppsV1beta1DeploymentStrategy -> String
(Int -> AppsV1beta1DeploymentStrategy -> ShowS)
-> (AppsV1beta1DeploymentStrategy -> String)
-> ([AppsV1beta1DeploymentStrategy] -> ShowS)
-> Show AppsV1beta1DeploymentStrategy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AppsV1beta1DeploymentStrategy] -> ShowS
$cshowList :: [AppsV1beta1DeploymentStrategy] -> ShowS
show :: AppsV1beta1DeploymentStrategy -> String
$cshow :: AppsV1beta1DeploymentStrategy -> String
showsPrec :: Int -> AppsV1beta1DeploymentStrategy -> ShowS
$cshowsPrec :: Int -> AppsV1beta1DeploymentStrategy -> ShowS
P.Show, AppsV1beta1DeploymentStrategy
-> AppsV1beta1DeploymentStrategy -> Bool
(AppsV1beta1DeploymentStrategy
 -> AppsV1beta1DeploymentStrategy -> Bool)
-> (AppsV1beta1DeploymentStrategy
    -> AppsV1beta1DeploymentStrategy -> Bool)
-> Eq AppsV1beta1DeploymentStrategy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AppsV1beta1DeploymentStrategy
-> AppsV1beta1DeploymentStrategy -> Bool
$c/= :: AppsV1beta1DeploymentStrategy
-> AppsV1beta1DeploymentStrategy -> Bool
== :: AppsV1beta1DeploymentStrategy
-> AppsV1beta1DeploymentStrategy -> Bool
$c== :: AppsV1beta1DeploymentStrategy
-> AppsV1beta1DeploymentStrategy -> Bool
P.Eq, P.Typeable)

-- | FromJSON AppsV1beta1DeploymentStrategy
instance A.FromJSON AppsV1beta1DeploymentStrategy where
  parseJSON :: Value -> Parser AppsV1beta1DeploymentStrategy
parseJSON = String
-> (Object -> Parser AppsV1beta1DeploymentStrategy)
-> Value
-> Parser AppsV1beta1DeploymentStrategy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"AppsV1beta1DeploymentStrategy" ((Object -> Parser AppsV1beta1DeploymentStrategy)
 -> Value -> Parser AppsV1beta1DeploymentStrategy)
-> (Object -> Parser AppsV1beta1DeploymentStrategy)
-> Value
-> Parser AppsV1beta1DeploymentStrategy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe AppsV1beta1RollingUpdateDeployment
-> Maybe Text -> AppsV1beta1DeploymentStrategy
AppsV1beta1DeploymentStrategy
      (Maybe AppsV1beta1RollingUpdateDeployment
 -> Maybe Text -> AppsV1beta1DeploymentStrategy)
-> Parser (Maybe AppsV1beta1RollingUpdateDeployment)
-> Parser (Maybe Text -> AppsV1beta1DeploymentStrategy)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe AppsV1beta1RollingUpdateDeployment)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rollingUpdate")
      Parser (Maybe Text -> AppsV1beta1DeploymentStrategy)
-> Parser (Maybe Text) -> Parser AppsV1beta1DeploymentStrategy
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")

-- | ToJSON AppsV1beta1DeploymentStrategy
instance A.ToJSON AppsV1beta1DeploymentStrategy where
  toJSON :: AppsV1beta1DeploymentStrategy -> Value
toJSON AppsV1beta1DeploymentStrategy {Maybe Text
Maybe AppsV1beta1RollingUpdateDeployment
appsV1beta1DeploymentStrategyType :: Maybe Text
appsV1beta1DeploymentStrategyRollingUpdate :: Maybe AppsV1beta1RollingUpdateDeployment
appsV1beta1DeploymentStrategyType :: AppsV1beta1DeploymentStrategy -> Maybe Text
appsV1beta1DeploymentStrategyRollingUpdate :: AppsV1beta1DeploymentStrategy
-> Maybe AppsV1beta1RollingUpdateDeployment
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"rollingUpdate" Text -> Maybe AppsV1beta1RollingUpdateDeployment -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe AppsV1beta1RollingUpdateDeployment
appsV1beta1DeploymentStrategyRollingUpdate
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
appsV1beta1DeploymentStrategyType
      ]


-- | Construct a value of type 'AppsV1beta1DeploymentStrategy' (by applying it's required fields, if any)
mkAppsV1beta1DeploymentStrategy
  :: AppsV1beta1DeploymentStrategy
mkAppsV1beta1DeploymentStrategy :: AppsV1beta1DeploymentStrategy
mkAppsV1beta1DeploymentStrategy =
  AppsV1beta1DeploymentStrategy :: Maybe AppsV1beta1RollingUpdateDeployment
-> Maybe Text -> AppsV1beta1DeploymentStrategy
AppsV1beta1DeploymentStrategy
  { appsV1beta1DeploymentStrategyRollingUpdate :: Maybe AppsV1beta1RollingUpdateDeployment
appsV1beta1DeploymentStrategyRollingUpdate = Maybe AppsV1beta1RollingUpdateDeployment
forall a. Maybe a
Nothing
  , appsV1beta1DeploymentStrategyType :: Maybe Text
appsV1beta1DeploymentStrategyType = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** AppsV1beta1RollbackConfig
-- | AppsV1beta1RollbackConfig
-- DEPRECATED.
data AppsV1beta1RollbackConfig = AppsV1beta1RollbackConfig
  { AppsV1beta1RollbackConfig -> Maybe Integer
appsV1beta1RollbackConfigRevision :: !(Maybe Integer) -- ^ "revision" - The revision to rollback to. If set to 0, rollback to the last revision.
  } deriving (Int -> AppsV1beta1RollbackConfig -> ShowS
[AppsV1beta1RollbackConfig] -> ShowS
AppsV1beta1RollbackConfig -> String
(Int -> AppsV1beta1RollbackConfig -> ShowS)
-> (AppsV1beta1RollbackConfig -> String)
-> ([AppsV1beta1RollbackConfig] -> ShowS)
-> Show AppsV1beta1RollbackConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AppsV1beta1RollbackConfig] -> ShowS
$cshowList :: [AppsV1beta1RollbackConfig] -> ShowS
show :: AppsV1beta1RollbackConfig -> String
$cshow :: AppsV1beta1RollbackConfig -> String
showsPrec :: Int -> AppsV1beta1RollbackConfig -> ShowS
$cshowsPrec :: Int -> AppsV1beta1RollbackConfig -> ShowS
P.Show, AppsV1beta1RollbackConfig -> AppsV1beta1RollbackConfig -> Bool
(AppsV1beta1RollbackConfig -> AppsV1beta1RollbackConfig -> Bool)
-> (AppsV1beta1RollbackConfig -> AppsV1beta1RollbackConfig -> Bool)
-> Eq AppsV1beta1RollbackConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AppsV1beta1RollbackConfig -> AppsV1beta1RollbackConfig -> Bool
$c/= :: AppsV1beta1RollbackConfig -> AppsV1beta1RollbackConfig -> Bool
== :: AppsV1beta1RollbackConfig -> AppsV1beta1RollbackConfig -> Bool
$c== :: AppsV1beta1RollbackConfig -> AppsV1beta1RollbackConfig -> Bool
P.Eq, P.Typeable)

-- | FromJSON AppsV1beta1RollbackConfig
instance A.FromJSON AppsV1beta1RollbackConfig where
  parseJSON :: Value -> Parser AppsV1beta1RollbackConfig
parseJSON = String
-> (Object -> Parser AppsV1beta1RollbackConfig)
-> Value
-> Parser AppsV1beta1RollbackConfig
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"AppsV1beta1RollbackConfig" ((Object -> Parser AppsV1beta1RollbackConfig)
 -> Value -> Parser AppsV1beta1RollbackConfig)
-> (Object -> Parser AppsV1beta1RollbackConfig)
-> Value
-> Parser AppsV1beta1RollbackConfig
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Integer -> AppsV1beta1RollbackConfig
AppsV1beta1RollbackConfig
      (Maybe Integer -> AppsV1beta1RollbackConfig)
-> Parser (Maybe Integer) -> Parser AppsV1beta1RollbackConfig
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"revision")

-- | ToJSON AppsV1beta1RollbackConfig
instance A.ToJSON AppsV1beta1RollbackConfig where
  toJSON :: AppsV1beta1RollbackConfig -> Value
toJSON AppsV1beta1RollbackConfig {Maybe Integer
appsV1beta1RollbackConfigRevision :: Maybe Integer
appsV1beta1RollbackConfigRevision :: AppsV1beta1RollbackConfig -> Maybe Integer
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"revision" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
appsV1beta1RollbackConfigRevision
      ]


-- | Construct a value of type 'AppsV1beta1RollbackConfig' (by applying it's required fields, if any)
mkAppsV1beta1RollbackConfig
  :: AppsV1beta1RollbackConfig
mkAppsV1beta1RollbackConfig :: AppsV1beta1RollbackConfig
mkAppsV1beta1RollbackConfig =
  AppsV1beta1RollbackConfig :: Maybe Integer -> AppsV1beta1RollbackConfig
AppsV1beta1RollbackConfig
  { appsV1beta1RollbackConfigRevision :: Maybe Integer
appsV1beta1RollbackConfigRevision = Maybe Integer
forall a. Maybe a
Nothing
  }

-- ** AppsV1beta1RollingUpdateDeployment
-- | AppsV1beta1RollingUpdateDeployment
-- Spec to control the desired behavior of rolling update.
data AppsV1beta1RollingUpdateDeployment = AppsV1beta1RollingUpdateDeployment
  { AppsV1beta1RollingUpdateDeployment -> Maybe IntOrString
appsV1beta1RollingUpdateDeploymentMaxSurge :: !(Maybe IntOrString) -- ^ "maxSurge"
  , AppsV1beta1RollingUpdateDeployment -> Maybe IntOrString
appsV1beta1RollingUpdateDeploymentMaxUnavailable :: !(Maybe IntOrString) -- ^ "maxUnavailable"
  } deriving (Int -> AppsV1beta1RollingUpdateDeployment -> ShowS
[AppsV1beta1RollingUpdateDeployment] -> ShowS
AppsV1beta1RollingUpdateDeployment -> String
(Int -> AppsV1beta1RollingUpdateDeployment -> ShowS)
-> (AppsV1beta1RollingUpdateDeployment -> String)
-> ([AppsV1beta1RollingUpdateDeployment] -> ShowS)
-> Show AppsV1beta1RollingUpdateDeployment
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AppsV1beta1RollingUpdateDeployment] -> ShowS
$cshowList :: [AppsV1beta1RollingUpdateDeployment] -> ShowS
show :: AppsV1beta1RollingUpdateDeployment -> String
$cshow :: AppsV1beta1RollingUpdateDeployment -> String
showsPrec :: Int -> AppsV1beta1RollingUpdateDeployment -> ShowS
$cshowsPrec :: Int -> AppsV1beta1RollingUpdateDeployment -> ShowS
P.Show, AppsV1beta1RollingUpdateDeployment
-> AppsV1beta1RollingUpdateDeployment -> Bool
(AppsV1beta1RollingUpdateDeployment
 -> AppsV1beta1RollingUpdateDeployment -> Bool)
-> (AppsV1beta1RollingUpdateDeployment
    -> AppsV1beta1RollingUpdateDeployment -> Bool)
-> Eq AppsV1beta1RollingUpdateDeployment
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AppsV1beta1RollingUpdateDeployment
-> AppsV1beta1RollingUpdateDeployment -> Bool
$c/= :: AppsV1beta1RollingUpdateDeployment
-> AppsV1beta1RollingUpdateDeployment -> Bool
== :: AppsV1beta1RollingUpdateDeployment
-> AppsV1beta1RollingUpdateDeployment -> Bool
$c== :: AppsV1beta1RollingUpdateDeployment
-> AppsV1beta1RollingUpdateDeployment -> Bool
P.Eq, P.Typeable)

-- | FromJSON AppsV1beta1RollingUpdateDeployment
instance A.FromJSON AppsV1beta1RollingUpdateDeployment where
  parseJSON :: Value -> Parser AppsV1beta1RollingUpdateDeployment
parseJSON = String
-> (Object -> Parser AppsV1beta1RollingUpdateDeployment)
-> Value
-> Parser AppsV1beta1RollingUpdateDeployment
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"AppsV1beta1RollingUpdateDeployment" ((Object -> Parser AppsV1beta1RollingUpdateDeployment)
 -> Value -> Parser AppsV1beta1RollingUpdateDeployment)
-> (Object -> Parser AppsV1beta1RollingUpdateDeployment)
-> Value
-> Parser AppsV1beta1RollingUpdateDeployment
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe IntOrString
-> Maybe IntOrString -> AppsV1beta1RollingUpdateDeployment
AppsV1beta1RollingUpdateDeployment
      (Maybe IntOrString
 -> Maybe IntOrString -> AppsV1beta1RollingUpdateDeployment)
-> Parser (Maybe IntOrString)
-> Parser (Maybe IntOrString -> AppsV1beta1RollingUpdateDeployment)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe IntOrString)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxSurge")
      Parser (Maybe IntOrString -> AppsV1beta1RollingUpdateDeployment)
-> Parser (Maybe IntOrString)
-> Parser AppsV1beta1RollingUpdateDeployment
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe IntOrString)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxUnavailable")

-- | ToJSON AppsV1beta1RollingUpdateDeployment
instance A.ToJSON AppsV1beta1RollingUpdateDeployment where
  toJSON :: AppsV1beta1RollingUpdateDeployment -> Value
toJSON AppsV1beta1RollingUpdateDeployment {Maybe IntOrString
appsV1beta1RollingUpdateDeploymentMaxUnavailable :: Maybe IntOrString
appsV1beta1RollingUpdateDeploymentMaxSurge :: Maybe IntOrString
appsV1beta1RollingUpdateDeploymentMaxUnavailable :: AppsV1beta1RollingUpdateDeployment -> Maybe IntOrString
appsV1beta1RollingUpdateDeploymentMaxSurge :: AppsV1beta1RollingUpdateDeployment -> Maybe IntOrString
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"maxSurge" Text -> Maybe IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe IntOrString
appsV1beta1RollingUpdateDeploymentMaxSurge
      , Text
"maxUnavailable" Text -> Maybe IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe IntOrString
appsV1beta1RollingUpdateDeploymentMaxUnavailable
      ]


-- | Construct a value of type 'AppsV1beta1RollingUpdateDeployment' (by applying it's required fields, if any)
mkAppsV1beta1RollingUpdateDeployment
  :: AppsV1beta1RollingUpdateDeployment
mkAppsV1beta1RollingUpdateDeployment :: AppsV1beta1RollingUpdateDeployment
mkAppsV1beta1RollingUpdateDeployment =
  AppsV1beta1RollingUpdateDeployment :: Maybe IntOrString
-> Maybe IntOrString -> AppsV1beta1RollingUpdateDeployment
AppsV1beta1RollingUpdateDeployment
  { appsV1beta1RollingUpdateDeploymentMaxSurge :: Maybe IntOrString
appsV1beta1RollingUpdateDeploymentMaxSurge = Maybe IntOrString
forall a. Maybe a
Nothing
  , appsV1beta1RollingUpdateDeploymentMaxUnavailable :: Maybe IntOrString
appsV1beta1RollingUpdateDeploymentMaxUnavailable = Maybe IntOrString
forall a. Maybe a
Nothing
  }

-- ** AppsV1beta1Scale
-- | AppsV1beta1Scale
-- Scale represents a scaling request for a resource.
data AppsV1beta1Scale = AppsV1beta1Scale
  { AppsV1beta1Scale -> Maybe Text
appsV1beta1ScaleApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , AppsV1beta1Scale -> Maybe Text
appsV1beta1ScaleKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , AppsV1beta1Scale -> Maybe V1ObjectMeta
appsV1beta1ScaleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , AppsV1beta1Scale -> Maybe AppsV1beta1ScaleSpec
appsV1beta1ScaleSpec :: !(Maybe AppsV1beta1ScaleSpec) -- ^ "spec"
  , AppsV1beta1Scale -> Maybe AppsV1beta1ScaleStatus
appsV1beta1ScaleStatus :: !(Maybe AppsV1beta1ScaleStatus) -- ^ "status"
  } deriving (Int -> AppsV1beta1Scale -> ShowS
[AppsV1beta1Scale] -> ShowS
AppsV1beta1Scale -> String
(Int -> AppsV1beta1Scale -> ShowS)
-> (AppsV1beta1Scale -> String)
-> ([AppsV1beta1Scale] -> ShowS)
-> Show AppsV1beta1Scale
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AppsV1beta1Scale] -> ShowS
$cshowList :: [AppsV1beta1Scale] -> ShowS
show :: AppsV1beta1Scale -> String
$cshow :: AppsV1beta1Scale -> String
showsPrec :: Int -> AppsV1beta1Scale -> ShowS
$cshowsPrec :: Int -> AppsV1beta1Scale -> ShowS
P.Show, AppsV1beta1Scale -> AppsV1beta1Scale -> Bool
(AppsV1beta1Scale -> AppsV1beta1Scale -> Bool)
-> (AppsV1beta1Scale -> AppsV1beta1Scale -> Bool)
-> Eq AppsV1beta1Scale
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AppsV1beta1Scale -> AppsV1beta1Scale -> Bool
$c/= :: AppsV1beta1Scale -> AppsV1beta1Scale -> Bool
== :: AppsV1beta1Scale -> AppsV1beta1Scale -> Bool
$c== :: AppsV1beta1Scale -> AppsV1beta1Scale -> Bool
P.Eq, P.Typeable)

-- | FromJSON AppsV1beta1Scale
instance A.FromJSON AppsV1beta1Scale where
  parseJSON :: Value -> Parser AppsV1beta1Scale
parseJSON = String
-> (Object -> Parser AppsV1beta1Scale)
-> Value
-> Parser AppsV1beta1Scale
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"AppsV1beta1Scale" ((Object -> Parser AppsV1beta1Scale)
 -> Value -> Parser AppsV1beta1Scale)
-> (Object -> Parser AppsV1beta1Scale)
-> Value
-> Parser AppsV1beta1Scale
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe AppsV1beta1ScaleSpec
-> Maybe AppsV1beta1ScaleStatus
-> AppsV1beta1Scale
AppsV1beta1Scale
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe AppsV1beta1ScaleSpec
 -> Maybe AppsV1beta1ScaleStatus
 -> AppsV1beta1Scale)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe AppsV1beta1ScaleSpec
      -> Maybe AppsV1beta1ScaleStatus
      -> AppsV1beta1Scale)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe AppsV1beta1ScaleSpec
   -> Maybe AppsV1beta1ScaleStatus
   -> AppsV1beta1Scale)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe AppsV1beta1ScaleSpec
      -> Maybe AppsV1beta1ScaleStatus
      -> AppsV1beta1Scale)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe AppsV1beta1ScaleSpec
   -> Maybe AppsV1beta1ScaleStatus
   -> AppsV1beta1Scale)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe AppsV1beta1ScaleSpec
      -> Maybe AppsV1beta1ScaleStatus -> AppsV1beta1Scale)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe AppsV1beta1ScaleSpec
   -> Maybe AppsV1beta1ScaleStatus -> AppsV1beta1Scale)
-> Parser (Maybe AppsV1beta1ScaleSpec)
-> Parser (Maybe AppsV1beta1ScaleStatus -> AppsV1beta1Scale)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe AppsV1beta1ScaleSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe AppsV1beta1ScaleStatus -> AppsV1beta1Scale)
-> Parser (Maybe AppsV1beta1ScaleStatus) -> Parser AppsV1beta1Scale
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe AppsV1beta1ScaleStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON AppsV1beta1Scale
instance A.ToJSON AppsV1beta1Scale where
  toJSON :: AppsV1beta1Scale -> Value
toJSON AppsV1beta1Scale {Maybe Text
Maybe V1ObjectMeta
Maybe AppsV1beta1ScaleStatus
Maybe AppsV1beta1ScaleSpec
appsV1beta1ScaleStatus :: Maybe AppsV1beta1ScaleStatus
appsV1beta1ScaleSpec :: Maybe AppsV1beta1ScaleSpec
appsV1beta1ScaleMetadata :: Maybe V1ObjectMeta
appsV1beta1ScaleKind :: Maybe Text
appsV1beta1ScaleApiVersion :: Maybe Text
appsV1beta1ScaleStatus :: AppsV1beta1Scale -> Maybe AppsV1beta1ScaleStatus
appsV1beta1ScaleSpec :: AppsV1beta1Scale -> Maybe AppsV1beta1ScaleSpec
appsV1beta1ScaleMetadata :: AppsV1beta1Scale -> Maybe V1ObjectMeta
appsV1beta1ScaleKind :: AppsV1beta1Scale -> Maybe Text
appsV1beta1ScaleApiVersion :: AppsV1beta1Scale -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
appsV1beta1ScaleApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
appsV1beta1ScaleKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
appsV1beta1ScaleMetadata
      , Text
"spec" Text -> Maybe AppsV1beta1ScaleSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe AppsV1beta1ScaleSpec
appsV1beta1ScaleSpec
      , Text
"status" Text -> Maybe AppsV1beta1ScaleStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe AppsV1beta1ScaleStatus
appsV1beta1ScaleStatus
      ]


-- | Construct a value of type 'AppsV1beta1Scale' (by applying it's required fields, if any)
mkAppsV1beta1Scale
  :: AppsV1beta1Scale
mkAppsV1beta1Scale :: AppsV1beta1Scale
mkAppsV1beta1Scale =
  AppsV1beta1Scale :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe AppsV1beta1ScaleSpec
-> Maybe AppsV1beta1ScaleStatus
-> AppsV1beta1Scale
AppsV1beta1Scale
  { appsV1beta1ScaleApiVersion :: Maybe Text
appsV1beta1ScaleApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , appsV1beta1ScaleKind :: Maybe Text
appsV1beta1ScaleKind = Maybe Text
forall a. Maybe a
Nothing
  , appsV1beta1ScaleMetadata :: Maybe V1ObjectMeta
appsV1beta1ScaleMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , appsV1beta1ScaleSpec :: Maybe AppsV1beta1ScaleSpec
appsV1beta1ScaleSpec = Maybe AppsV1beta1ScaleSpec
forall a. Maybe a
Nothing
  , appsV1beta1ScaleStatus :: Maybe AppsV1beta1ScaleStatus
appsV1beta1ScaleStatus = Maybe AppsV1beta1ScaleStatus
forall a. Maybe a
Nothing
  }

-- ** AppsV1beta1ScaleSpec
-- | AppsV1beta1ScaleSpec
-- ScaleSpec describes the attributes of a scale subresource
data AppsV1beta1ScaleSpec = AppsV1beta1ScaleSpec
  { AppsV1beta1ScaleSpec -> Maybe Int
appsV1beta1ScaleSpecReplicas :: !(Maybe Int) -- ^ "replicas" - desired number of instances for the scaled object.
  } deriving (Int -> AppsV1beta1ScaleSpec -> ShowS
[AppsV1beta1ScaleSpec] -> ShowS
AppsV1beta1ScaleSpec -> String
(Int -> AppsV1beta1ScaleSpec -> ShowS)
-> (AppsV1beta1ScaleSpec -> String)
-> ([AppsV1beta1ScaleSpec] -> ShowS)
-> Show AppsV1beta1ScaleSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AppsV1beta1ScaleSpec] -> ShowS
$cshowList :: [AppsV1beta1ScaleSpec] -> ShowS
show :: AppsV1beta1ScaleSpec -> String
$cshow :: AppsV1beta1ScaleSpec -> String
showsPrec :: Int -> AppsV1beta1ScaleSpec -> ShowS
$cshowsPrec :: Int -> AppsV1beta1ScaleSpec -> ShowS
P.Show, AppsV1beta1ScaleSpec -> AppsV1beta1ScaleSpec -> Bool
(AppsV1beta1ScaleSpec -> AppsV1beta1ScaleSpec -> Bool)
-> (AppsV1beta1ScaleSpec -> AppsV1beta1ScaleSpec -> Bool)
-> Eq AppsV1beta1ScaleSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AppsV1beta1ScaleSpec -> AppsV1beta1ScaleSpec -> Bool
$c/= :: AppsV1beta1ScaleSpec -> AppsV1beta1ScaleSpec -> Bool
== :: AppsV1beta1ScaleSpec -> AppsV1beta1ScaleSpec -> Bool
$c== :: AppsV1beta1ScaleSpec -> AppsV1beta1ScaleSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON AppsV1beta1ScaleSpec
instance A.FromJSON AppsV1beta1ScaleSpec where
  parseJSON :: Value -> Parser AppsV1beta1ScaleSpec
parseJSON = String
-> (Object -> Parser AppsV1beta1ScaleSpec)
-> Value
-> Parser AppsV1beta1ScaleSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"AppsV1beta1ScaleSpec" ((Object -> Parser AppsV1beta1ScaleSpec)
 -> Value -> Parser AppsV1beta1ScaleSpec)
-> (Object -> Parser AppsV1beta1ScaleSpec)
-> Value
-> Parser AppsV1beta1ScaleSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int -> AppsV1beta1ScaleSpec
AppsV1beta1ScaleSpec
      (Maybe Int -> AppsV1beta1ScaleSpec)
-> Parser (Maybe Int) -> Parser AppsV1beta1ScaleSpec
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")

-- | ToJSON AppsV1beta1ScaleSpec
instance A.ToJSON AppsV1beta1ScaleSpec where
  toJSON :: AppsV1beta1ScaleSpec -> Value
toJSON AppsV1beta1ScaleSpec {Maybe Int
appsV1beta1ScaleSpecReplicas :: Maybe Int
appsV1beta1ScaleSpecReplicas :: AppsV1beta1ScaleSpec -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
appsV1beta1ScaleSpecReplicas
      ]


-- | Construct a value of type 'AppsV1beta1ScaleSpec' (by applying it's required fields, if any)
mkAppsV1beta1ScaleSpec
  :: AppsV1beta1ScaleSpec
mkAppsV1beta1ScaleSpec :: AppsV1beta1ScaleSpec
mkAppsV1beta1ScaleSpec =
  AppsV1beta1ScaleSpec :: Maybe Int -> AppsV1beta1ScaleSpec
AppsV1beta1ScaleSpec
  { appsV1beta1ScaleSpecReplicas :: Maybe Int
appsV1beta1ScaleSpecReplicas = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** AppsV1beta1ScaleStatus
-- | AppsV1beta1ScaleStatus
-- ScaleStatus represents the current status of a scale subresource.
data AppsV1beta1ScaleStatus = AppsV1beta1ScaleStatus
  { AppsV1beta1ScaleStatus -> Int
appsV1beta1ScaleStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - actual number of observed instances of the scaled object.
  , AppsV1beta1ScaleStatus -> Maybe (Map String Text)
appsV1beta1ScaleStatusSelector :: !(Maybe (Map.Map String Text)) -- ^ "selector" - label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors
  , AppsV1beta1ScaleStatus -> Maybe Text
appsV1beta1ScaleStatusTargetSelector :: !(Maybe Text) -- ^ "targetSelector" - label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
  } deriving (Int -> AppsV1beta1ScaleStatus -> ShowS
[AppsV1beta1ScaleStatus] -> ShowS
AppsV1beta1ScaleStatus -> String
(Int -> AppsV1beta1ScaleStatus -> ShowS)
-> (AppsV1beta1ScaleStatus -> String)
-> ([AppsV1beta1ScaleStatus] -> ShowS)
-> Show AppsV1beta1ScaleStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AppsV1beta1ScaleStatus] -> ShowS
$cshowList :: [AppsV1beta1ScaleStatus] -> ShowS
show :: AppsV1beta1ScaleStatus -> String
$cshow :: AppsV1beta1ScaleStatus -> String
showsPrec :: Int -> AppsV1beta1ScaleStatus -> ShowS
$cshowsPrec :: Int -> AppsV1beta1ScaleStatus -> ShowS
P.Show, AppsV1beta1ScaleStatus -> AppsV1beta1ScaleStatus -> Bool
(AppsV1beta1ScaleStatus -> AppsV1beta1ScaleStatus -> Bool)
-> (AppsV1beta1ScaleStatus -> AppsV1beta1ScaleStatus -> Bool)
-> Eq AppsV1beta1ScaleStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AppsV1beta1ScaleStatus -> AppsV1beta1ScaleStatus -> Bool
$c/= :: AppsV1beta1ScaleStatus -> AppsV1beta1ScaleStatus -> Bool
== :: AppsV1beta1ScaleStatus -> AppsV1beta1ScaleStatus -> Bool
$c== :: AppsV1beta1ScaleStatus -> AppsV1beta1ScaleStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON AppsV1beta1ScaleStatus
instance A.FromJSON AppsV1beta1ScaleStatus where
  parseJSON :: Value -> Parser AppsV1beta1ScaleStatus
parseJSON = String
-> (Object -> Parser AppsV1beta1ScaleStatus)
-> Value
-> Parser AppsV1beta1ScaleStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"AppsV1beta1ScaleStatus" ((Object -> Parser AppsV1beta1ScaleStatus)
 -> Value -> Parser AppsV1beta1ScaleStatus)
-> (Object -> Parser AppsV1beta1ScaleStatus)
-> Value
-> Parser AppsV1beta1ScaleStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Int
-> Maybe (Map String Text) -> Maybe Text -> AppsV1beta1ScaleStatus
AppsV1beta1ScaleStatus
      (Int
 -> Maybe (Map String Text) -> Maybe Text -> AppsV1beta1ScaleStatus)
-> Parser Int
-> Parser
     (Maybe (Map String Text) -> Maybe Text -> AppsV1beta1ScaleStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"replicas")
      Parser
  (Maybe (Map String Text) -> Maybe Text -> AppsV1beta1ScaleStatus)
-> Parser (Maybe (Map String Text))
-> Parser (Maybe Text -> AppsV1beta1ScaleStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")
      Parser (Maybe Text -> AppsV1beta1ScaleStatus)
-> Parser (Maybe Text) -> Parser AppsV1beta1ScaleStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"targetSelector")

-- | ToJSON AppsV1beta1ScaleStatus
instance A.ToJSON AppsV1beta1ScaleStatus where
  toJSON :: AppsV1beta1ScaleStatus -> Value
toJSON AppsV1beta1ScaleStatus {Int
Maybe Text
Maybe (Map String Text)
appsV1beta1ScaleStatusTargetSelector :: Maybe Text
appsV1beta1ScaleStatusSelector :: Maybe (Map String Text)
appsV1beta1ScaleStatusReplicas :: Int
appsV1beta1ScaleStatusTargetSelector :: AppsV1beta1ScaleStatus -> Maybe Text
appsV1beta1ScaleStatusSelector :: AppsV1beta1ScaleStatus -> Maybe (Map String Text)
appsV1beta1ScaleStatusReplicas :: AppsV1beta1ScaleStatus -> Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"replicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
appsV1beta1ScaleStatusReplicas
      , Text
"selector" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
appsV1beta1ScaleStatusSelector
      , Text
"targetSelector" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
appsV1beta1ScaleStatusTargetSelector
      ]


-- | Construct a value of type 'AppsV1beta1ScaleStatus' (by applying it's required fields, if any)
mkAppsV1beta1ScaleStatus
  :: Int -- ^ 'appsV1beta1ScaleStatusReplicas': actual number of observed instances of the scaled object.
  -> AppsV1beta1ScaleStatus
mkAppsV1beta1ScaleStatus :: Int -> AppsV1beta1ScaleStatus
mkAppsV1beta1ScaleStatus Int
appsV1beta1ScaleStatusReplicas =
  AppsV1beta1ScaleStatus :: Int
-> Maybe (Map String Text) -> Maybe Text -> AppsV1beta1ScaleStatus
AppsV1beta1ScaleStatus
  { Int
appsV1beta1ScaleStatusReplicas :: Int
appsV1beta1ScaleStatusReplicas :: Int
appsV1beta1ScaleStatusReplicas
  , appsV1beta1ScaleStatusSelector :: Maybe (Map String Text)
appsV1beta1ScaleStatusSelector = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , appsV1beta1ScaleStatusTargetSelector :: Maybe Text
appsV1beta1ScaleStatusTargetSelector = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1AllowedCSIDriver
-- | ExtensionsV1beta1AllowedCSIDriver
-- AllowedCSIDriver represents a single inline CSI Driver that is allowed to be used.
data ExtensionsV1beta1AllowedCSIDriver = ExtensionsV1beta1AllowedCSIDriver
  { ExtensionsV1beta1AllowedCSIDriver -> Text
extensionsV1beta1AllowedCSIDriverName :: !(Text) -- ^ /Required/ "name" - Name is the registered name of the CSI driver
  } deriving (Int -> ExtensionsV1beta1AllowedCSIDriver -> ShowS
[ExtensionsV1beta1AllowedCSIDriver] -> ShowS
ExtensionsV1beta1AllowedCSIDriver -> String
(Int -> ExtensionsV1beta1AllowedCSIDriver -> ShowS)
-> (ExtensionsV1beta1AllowedCSIDriver -> String)
-> ([ExtensionsV1beta1AllowedCSIDriver] -> ShowS)
-> Show ExtensionsV1beta1AllowedCSIDriver
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1AllowedCSIDriver] -> ShowS
$cshowList :: [ExtensionsV1beta1AllowedCSIDriver] -> ShowS
show :: ExtensionsV1beta1AllowedCSIDriver -> String
$cshow :: ExtensionsV1beta1AllowedCSIDriver -> String
showsPrec :: Int -> ExtensionsV1beta1AllowedCSIDriver -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1AllowedCSIDriver -> ShowS
P.Show, ExtensionsV1beta1AllowedCSIDriver
-> ExtensionsV1beta1AllowedCSIDriver -> Bool
(ExtensionsV1beta1AllowedCSIDriver
 -> ExtensionsV1beta1AllowedCSIDriver -> Bool)
-> (ExtensionsV1beta1AllowedCSIDriver
    -> ExtensionsV1beta1AllowedCSIDriver -> Bool)
-> Eq ExtensionsV1beta1AllowedCSIDriver
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1AllowedCSIDriver
-> ExtensionsV1beta1AllowedCSIDriver -> Bool
$c/= :: ExtensionsV1beta1AllowedCSIDriver
-> ExtensionsV1beta1AllowedCSIDriver -> Bool
== :: ExtensionsV1beta1AllowedCSIDriver
-> ExtensionsV1beta1AllowedCSIDriver -> Bool
$c== :: ExtensionsV1beta1AllowedCSIDriver
-> ExtensionsV1beta1AllowedCSIDriver -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1AllowedCSIDriver
instance A.FromJSON ExtensionsV1beta1AllowedCSIDriver where
  parseJSON :: Value -> Parser ExtensionsV1beta1AllowedCSIDriver
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1AllowedCSIDriver)
-> Value
-> Parser ExtensionsV1beta1AllowedCSIDriver
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1AllowedCSIDriver" ((Object -> Parser ExtensionsV1beta1AllowedCSIDriver)
 -> Value -> Parser ExtensionsV1beta1AllowedCSIDriver)
-> (Object -> Parser ExtensionsV1beta1AllowedCSIDriver)
-> Value
-> Parser ExtensionsV1beta1AllowedCSIDriver
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> ExtensionsV1beta1AllowedCSIDriver
ExtensionsV1beta1AllowedCSIDriver
      (Text -> ExtensionsV1beta1AllowedCSIDriver)
-> Parser Text -> Parser ExtensionsV1beta1AllowedCSIDriver
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")

-- | ToJSON ExtensionsV1beta1AllowedCSIDriver
instance A.ToJSON ExtensionsV1beta1AllowedCSIDriver where
  toJSON :: ExtensionsV1beta1AllowedCSIDriver -> Value
toJSON ExtensionsV1beta1AllowedCSIDriver {Text
extensionsV1beta1AllowedCSIDriverName :: Text
extensionsV1beta1AllowedCSIDriverName :: ExtensionsV1beta1AllowedCSIDriver -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
extensionsV1beta1AllowedCSIDriverName
      ]


-- | Construct a value of type 'ExtensionsV1beta1AllowedCSIDriver' (by applying it's required fields, if any)
mkExtensionsV1beta1AllowedCSIDriver
  :: Text -- ^ 'extensionsV1beta1AllowedCSIDriverName': Name is the registered name of the CSI driver
  -> ExtensionsV1beta1AllowedCSIDriver
mkExtensionsV1beta1AllowedCSIDriver :: Text -> ExtensionsV1beta1AllowedCSIDriver
mkExtensionsV1beta1AllowedCSIDriver Text
extensionsV1beta1AllowedCSIDriverName =
  ExtensionsV1beta1AllowedCSIDriver :: Text -> ExtensionsV1beta1AllowedCSIDriver
ExtensionsV1beta1AllowedCSIDriver
  { Text
extensionsV1beta1AllowedCSIDriverName :: Text
extensionsV1beta1AllowedCSIDriverName :: Text
extensionsV1beta1AllowedCSIDriverName
  }

-- ** ExtensionsV1beta1AllowedFlexVolume
-- | ExtensionsV1beta1AllowedFlexVolume
-- AllowedFlexVolume represents a single Flexvolume that is allowed to be used. Deprecated: use AllowedFlexVolume from policy API Group instead.
data ExtensionsV1beta1AllowedFlexVolume = ExtensionsV1beta1AllowedFlexVolume
  { ExtensionsV1beta1AllowedFlexVolume -> Text
extensionsV1beta1AllowedFlexVolumeDriver :: !(Text) -- ^ /Required/ "driver" - driver is the name of the Flexvolume driver.
  } deriving (Int -> ExtensionsV1beta1AllowedFlexVolume -> ShowS
[ExtensionsV1beta1AllowedFlexVolume] -> ShowS
ExtensionsV1beta1AllowedFlexVolume -> String
(Int -> ExtensionsV1beta1AllowedFlexVolume -> ShowS)
-> (ExtensionsV1beta1AllowedFlexVolume -> String)
-> ([ExtensionsV1beta1AllowedFlexVolume] -> ShowS)
-> Show ExtensionsV1beta1AllowedFlexVolume
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1AllowedFlexVolume] -> ShowS
$cshowList :: [ExtensionsV1beta1AllowedFlexVolume] -> ShowS
show :: ExtensionsV1beta1AllowedFlexVolume -> String
$cshow :: ExtensionsV1beta1AllowedFlexVolume -> String
showsPrec :: Int -> ExtensionsV1beta1AllowedFlexVolume -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1AllowedFlexVolume -> ShowS
P.Show, ExtensionsV1beta1AllowedFlexVolume
-> ExtensionsV1beta1AllowedFlexVolume -> Bool
(ExtensionsV1beta1AllowedFlexVolume
 -> ExtensionsV1beta1AllowedFlexVolume -> Bool)
-> (ExtensionsV1beta1AllowedFlexVolume
    -> ExtensionsV1beta1AllowedFlexVolume -> Bool)
-> Eq ExtensionsV1beta1AllowedFlexVolume
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1AllowedFlexVolume
-> ExtensionsV1beta1AllowedFlexVolume -> Bool
$c/= :: ExtensionsV1beta1AllowedFlexVolume
-> ExtensionsV1beta1AllowedFlexVolume -> Bool
== :: ExtensionsV1beta1AllowedFlexVolume
-> ExtensionsV1beta1AllowedFlexVolume -> Bool
$c== :: ExtensionsV1beta1AllowedFlexVolume
-> ExtensionsV1beta1AllowedFlexVolume -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1AllowedFlexVolume
instance A.FromJSON ExtensionsV1beta1AllowedFlexVolume where
  parseJSON :: Value -> Parser ExtensionsV1beta1AllowedFlexVolume
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1AllowedFlexVolume)
-> Value
-> Parser ExtensionsV1beta1AllowedFlexVolume
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1AllowedFlexVolume" ((Object -> Parser ExtensionsV1beta1AllowedFlexVolume)
 -> Value -> Parser ExtensionsV1beta1AllowedFlexVolume)
-> (Object -> Parser ExtensionsV1beta1AllowedFlexVolume)
-> Value
-> Parser ExtensionsV1beta1AllowedFlexVolume
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> ExtensionsV1beta1AllowedFlexVolume
ExtensionsV1beta1AllowedFlexVolume
      (Text -> ExtensionsV1beta1AllowedFlexVolume)
-> Parser Text -> Parser ExtensionsV1beta1AllowedFlexVolume
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"driver")

-- | ToJSON ExtensionsV1beta1AllowedFlexVolume
instance A.ToJSON ExtensionsV1beta1AllowedFlexVolume where
  toJSON :: ExtensionsV1beta1AllowedFlexVolume -> Value
toJSON ExtensionsV1beta1AllowedFlexVolume {Text
extensionsV1beta1AllowedFlexVolumeDriver :: Text
extensionsV1beta1AllowedFlexVolumeDriver :: ExtensionsV1beta1AllowedFlexVolume -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"driver" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
extensionsV1beta1AllowedFlexVolumeDriver
      ]


-- | Construct a value of type 'ExtensionsV1beta1AllowedFlexVolume' (by applying it's required fields, if any)
mkExtensionsV1beta1AllowedFlexVolume
  :: Text -- ^ 'extensionsV1beta1AllowedFlexVolumeDriver': driver is the name of the Flexvolume driver.
  -> ExtensionsV1beta1AllowedFlexVolume
mkExtensionsV1beta1AllowedFlexVolume :: Text -> ExtensionsV1beta1AllowedFlexVolume
mkExtensionsV1beta1AllowedFlexVolume Text
extensionsV1beta1AllowedFlexVolumeDriver =
  ExtensionsV1beta1AllowedFlexVolume :: Text -> ExtensionsV1beta1AllowedFlexVolume
ExtensionsV1beta1AllowedFlexVolume
  { Text
extensionsV1beta1AllowedFlexVolumeDriver :: Text
extensionsV1beta1AllowedFlexVolumeDriver :: Text
extensionsV1beta1AllowedFlexVolumeDriver
  }

-- ** ExtensionsV1beta1AllowedHostPath
-- | ExtensionsV1beta1AllowedHostPath
-- AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined. Deprecated: use AllowedHostPath from policy API Group instead.
data ExtensionsV1beta1AllowedHostPath = ExtensionsV1beta1AllowedHostPath
  { ExtensionsV1beta1AllowedHostPath -> Maybe Text
extensionsV1beta1AllowedHostPathPathPrefix :: !(Maybe Text) -- ^ "pathPrefix" - pathPrefix is the path prefix that the host volume must match. It does not support &#x60;*&#x60;. Trailing slashes are trimmed when validating the path prefix with a host path.  Examples: &#x60;/foo&#x60; would allow &#x60;/foo&#x60;, &#x60;/foo/&#x60; and &#x60;/foo/bar&#x60; &#x60;/foo&#x60; would not allow &#x60;/food&#x60; or &#x60;/etc/foo&#x60;
  , ExtensionsV1beta1AllowedHostPath -> Maybe Bool
extensionsV1beta1AllowedHostPathReadOnly :: !(Maybe Bool) -- ^ "readOnly" - when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.
  } deriving (Int -> ExtensionsV1beta1AllowedHostPath -> ShowS
[ExtensionsV1beta1AllowedHostPath] -> ShowS
ExtensionsV1beta1AllowedHostPath -> String
(Int -> ExtensionsV1beta1AllowedHostPath -> ShowS)
-> (ExtensionsV1beta1AllowedHostPath -> String)
-> ([ExtensionsV1beta1AllowedHostPath] -> ShowS)
-> Show ExtensionsV1beta1AllowedHostPath
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1AllowedHostPath] -> ShowS
$cshowList :: [ExtensionsV1beta1AllowedHostPath] -> ShowS
show :: ExtensionsV1beta1AllowedHostPath -> String
$cshow :: ExtensionsV1beta1AllowedHostPath -> String
showsPrec :: Int -> ExtensionsV1beta1AllowedHostPath -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1AllowedHostPath -> ShowS
P.Show, ExtensionsV1beta1AllowedHostPath
-> ExtensionsV1beta1AllowedHostPath -> Bool
(ExtensionsV1beta1AllowedHostPath
 -> ExtensionsV1beta1AllowedHostPath -> Bool)
-> (ExtensionsV1beta1AllowedHostPath
    -> ExtensionsV1beta1AllowedHostPath -> Bool)
-> Eq ExtensionsV1beta1AllowedHostPath
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1AllowedHostPath
-> ExtensionsV1beta1AllowedHostPath -> Bool
$c/= :: ExtensionsV1beta1AllowedHostPath
-> ExtensionsV1beta1AllowedHostPath -> Bool
== :: ExtensionsV1beta1AllowedHostPath
-> ExtensionsV1beta1AllowedHostPath -> Bool
$c== :: ExtensionsV1beta1AllowedHostPath
-> ExtensionsV1beta1AllowedHostPath -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1AllowedHostPath
instance A.FromJSON ExtensionsV1beta1AllowedHostPath where
  parseJSON :: Value -> Parser ExtensionsV1beta1AllowedHostPath
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1AllowedHostPath)
-> Value
-> Parser ExtensionsV1beta1AllowedHostPath
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1AllowedHostPath" ((Object -> Parser ExtensionsV1beta1AllowedHostPath)
 -> Value -> Parser ExtensionsV1beta1AllowedHostPath)
-> (Object -> Parser ExtensionsV1beta1AllowedHostPath)
-> Value
-> Parser ExtensionsV1beta1AllowedHostPath
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Bool -> ExtensionsV1beta1AllowedHostPath
ExtensionsV1beta1AllowedHostPath
      (Maybe Text -> Maybe Bool -> ExtensionsV1beta1AllowedHostPath)
-> Parser (Maybe Text)
-> Parser (Maybe Bool -> ExtensionsV1beta1AllowedHostPath)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"pathPrefix")
      Parser (Maybe Bool -> ExtensionsV1beta1AllowedHostPath)
-> Parser (Maybe Bool) -> Parser ExtensionsV1beta1AllowedHostPath
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")

-- | ToJSON ExtensionsV1beta1AllowedHostPath
instance A.ToJSON ExtensionsV1beta1AllowedHostPath where
  toJSON :: ExtensionsV1beta1AllowedHostPath -> Value
toJSON ExtensionsV1beta1AllowedHostPath {Maybe Bool
Maybe Text
extensionsV1beta1AllowedHostPathReadOnly :: Maybe Bool
extensionsV1beta1AllowedHostPathPathPrefix :: Maybe Text
extensionsV1beta1AllowedHostPathReadOnly :: ExtensionsV1beta1AllowedHostPath -> Maybe Bool
extensionsV1beta1AllowedHostPathPathPrefix :: ExtensionsV1beta1AllowedHostPath -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"pathPrefix" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1AllowedHostPathPathPrefix
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
extensionsV1beta1AllowedHostPathReadOnly
      ]


-- | Construct a value of type 'ExtensionsV1beta1AllowedHostPath' (by applying it's required fields, if any)
mkExtensionsV1beta1AllowedHostPath
  :: ExtensionsV1beta1AllowedHostPath
mkExtensionsV1beta1AllowedHostPath :: ExtensionsV1beta1AllowedHostPath
mkExtensionsV1beta1AllowedHostPath =
  ExtensionsV1beta1AllowedHostPath :: Maybe Text -> Maybe Bool -> ExtensionsV1beta1AllowedHostPath
ExtensionsV1beta1AllowedHostPath
  { extensionsV1beta1AllowedHostPathPathPrefix :: Maybe Text
extensionsV1beta1AllowedHostPathPathPrefix = Maybe Text
forall a. Maybe a
Nothing
  , extensionsV1beta1AllowedHostPathReadOnly :: Maybe Bool
extensionsV1beta1AllowedHostPathReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1Deployment
-- | ExtensionsV1beta1Deployment
-- DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.
data ExtensionsV1beta1Deployment = ExtensionsV1beta1Deployment
  { ExtensionsV1beta1Deployment -> Maybe Text
extensionsV1beta1DeploymentApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , ExtensionsV1beta1Deployment -> Maybe Text
extensionsV1beta1DeploymentKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , ExtensionsV1beta1Deployment -> Maybe V1ObjectMeta
extensionsV1beta1DeploymentMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , ExtensionsV1beta1Deployment
-> Maybe ExtensionsV1beta1DeploymentSpec
extensionsV1beta1DeploymentSpec :: !(Maybe ExtensionsV1beta1DeploymentSpec) -- ^ "spec"
  , ExtensionsV1beta1Deployment
-> Maybe ExtensionsV1beta1DeploymentStatus
extensionsV1beta1DeploymentStatus :: !(Maybe ExtensionsV1beta1DeploymentStatus) -- ^ "status"
  } deriving (Int -> ExtensionsV1beta1Deployment -> ShowS
[ExtensionsV1beta1Deployment] -> ShowS
ExtensionsV1beta1Deployment -> String
(Int -> ExtensionsV1beta1Deployment -> ShowS)
-> (ExtensionsV1beta1Deployment -> String)
-> ([ExtensionsV1beta1Deployment] -> ShowS)
-> Show ExtensionsV1beta1Deployment
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1Deployment] -> ShowS
$cshowList :: [ExtensionsV1beta1Deployment] -> ShowS
show :: ExtensionsV1beta1Deployment -> String
$cshow :: ExtensionsV1beta1Deployment -> String
showsPrec :: Int -> ExtensionsV1beta1Deployment -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1Deployment -> ShowS
P.Show, ExtensionsV1beta1Deployment -> ExtensionsV1beta1Deployment -> Bool
(ExtensionsV1beta1Deployment
 -> ExtensionsV1beta1Deployment -> Bool)
-> (ExtensionsV1beta1Deployment
    -> ExtensionsV1beta1Deployment -> Bool)
-> Eq ExtensionsV1beta1Deployment
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1Deployment -> ExtensionsV1beta1Deployment -> Bool
$c/= :: ExtensionsV1beta1Deployment -> ExtensionsV1beta1Deployment -> Bool
== :: ExtensionsV1beta1Deployment -> ExtensionsV1beta1Deployment -> Bool
$c== :: ExtensionsV1beta1Deployment -> ExtensionsV1beta1Deployment -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1Deployment
instance A.FromJSON ExtensionsV1beta1Deployment where
  parseJSON :: Value -> Parser ExtensionsV1beta1Deployment
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1Deployment)
-> Value
-> Parser ExtensionsV1beta1Deployment
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1Deployment" ((Object -> Parser ExtensionsV1beta1Deployment)
 -> Value -> Parser ExtensionsV1beta1Deployment)
-> (Object -> Parser ExtensionsV1beta1Deployment)
-> Value
-> Parser ExtensionsV1beta1Deployment
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe ExtensionsV1beta1DeploymentSpec
-> Maybe ExtensionsV1beta1DeploymentStatus
-> ExtensionsV1beta1Deployment
ExtensionsV1beta1Deployment
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe ExtensionsV1beta1DeploymentSpec
 -> Maybe ExtensionsV1beta1DeploymentStatus
 -> ExtensionsV1beta1Deployment)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe ExtensionsV1beta1DeploymentSpec
      -> Maybe ExtensionsV1beta1DeploymentStatus
      -> ExtensionsV1beta1Deployment)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe ExtensionsV1beta1DeploymentSpec
   -> Maybe ExtensionsV1beta1DeploymentStatus
   -> ExtensionsV1beta1Deployment)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe ExtensionsV1beta1DeploymentSpec
      -> Maybe ExtensionsV1beta1DeploymentStatus
      -> ExtensionsV1beta1Deployment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe ExtensionsV1beta1DeploymentSpec
   -> Maybe ExtensionsV1beta1DeploymentStatus
   -> ExtensionsV1beta1Deployment)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe ExtensionsV1beta1DeploymentSpec
      -> Maybe ExtensionsV1beta1DeploymentStatus
      -> ExtensionsV1beta1Deployment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe ExtensionsV1beta1DeploymentSpec
   -> Maybe ExtensionsV1beta1DeploymentStatus
   -> ExtensionsV1beta1Deployment)
-> Parser (Maybe ExtensionsV1beta1DeploymentSpec)
-> Parser
     (Maybe ExtensionsV1beta1DeploymentStatus
      -> ExtensionsV1beta1Deployment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe ExtensionsV1beta1DeploymentSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser
  (Maybe ExtensionsV1beta1DeploymentStatus
   -> ExtensionsV1beta1Deployment)
-> Parser (Maybe ExtensionsV1beta1DeploymentStatus)
-> Parser ExtensionsV1beta1Deployment
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe ExtensionsV1beta1DeploymentStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON ExtensionsV1beta1Deployment
instance A.ToJSON ExtensionsV1beta1Deployment where
  toJSON :: ExtensionsV1beta1Deployment -> Value
toJSON ExtensionsV1beta1Deployment {Maybe Text
Maybe V1ObjectMeta
Maybe ExtensionsV1beta1DeploymentStatus
Maybe ExtensionsV1beta1DeploymentSpec
extensionsV1beta1DeploymentStatus :: Maybe ExtensionsV1beta1DeploymentStatus
extensionsV1beta1DeploymentSpec :: Maybe ExtensionsV1beta1DeploymentSpec
extensionsV1beta1DeploymentMetadata :: Maybe V1ObjectMeta
extensionsV1beta1DeploymentKind :: Maybe Text
extensionsV1beta1DeploymentApiVersion :: Maybe Text
extensionsV1beta1DeploymentStatus :: ExtensionsV1beta1Deployment
-> Maybe ExtensionsV1beta1DeploymentStatus
extensionsV1beta1DeploymentSpec :: ExtensionsV1beta1Deployment
-> Maybe ExtensionsV1beta1DeploymentSpec
extensionsV1beta1DeploymentMetadata :: ExtensionsV1beta1Deployment -> Maybe V1ObjectMeta
extensionsV1beta1DeploymentKind :: ExtensionsV1beta1Deployment -> Maybe Text
extensionsV1beta1DeploymentApiVersion :: ExtensionsV1beta1Deployment -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1DeploymentApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1DeploymentKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
extensionsV1beta1DeploymentMetadata
      , Text
"spec" Text -> Maybe ExtensionsV1beta1DeploymentSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ExtensionsV1beta1DeploymentSpec
extensionsV1beta1DeploymentSpec
      , Text
"status" Text -> Maybe ExtensionsV1beta1DeploymentStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ExtensionsV1beta1DeploymentStatus
extensionsV1beta1DeploymentStatus
      ]


-- | Construct a value of type 'ExtensionsV1beta1Deployment' (by applying it's required fields, if any)
mkExtensionsV1beta1Deployment
  :: ExtensionsV1beta1Deployment
mkExtensionsV1beta1Deployment :: ExtensionsV1beta1Deployment
mkExtensionsV1beta1Deployment =
  ExtensionsV1beta1Deployment :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe ExtensionsV1beta1DeploymentSpec
-> Maybe ExtensionsV1beta1DeploymentStatus
-> ExtensionsV1beta1Deployment
ExtensionsV1beta1Deployment
  { extensionsV1beta1DeploymentApiVersion :: Maybe Text
extensionsV1beta1DeploymentApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentKind :: Maybe Text
extensionsV1beta1DeploymentKind = Maybe Text
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentMetadata :: Maybe V1ObjectMeta
extensionsV1beta1DeploymentMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentSpec :: Maybe ExtensionsV1beta1DeploymentSpec
extensionsV1beta1DeploymentSpec = Maybe ExtensionsV1beta1DeploymentSpec
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentStatus :: Maybe ExtensionsV1beta1DeploymentStatus
extensionsV1beta1DeploymentStatus = Maybe ExtensionsV1beta1DeploymentStatus
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1DeploymentCondition
-- | ExtensionsV1beta1DeploymentCondition
-- DeploymentCondition describes the state of a deployment at a certain point.
data ExtensionsV1beta1DeploymentCondition = ExtensionsV1beta1DeploymentCondition
  { ExtensionsV1beta1DeploymentCondition -> Maybe DateTime
extensionsV1beta1DeploymentConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.
  , ExtensionsV1beta1DeploymentCondition -> Maybe DateTime
extensionsV1beta1DeploymentConditionLastUpdateTime :: !(Maybe DateTime) -- ^ "lastUpdateTime" - The last time this condition was updated.
  , ExtensionsV1beta1DeploymentCondition -> Maybe Text
extensionsV1beta1DeploymentConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.
  , ExtensionsV1beta1DeploymentCondition -> Maybe Text
extensionsV1beta1DeploymentConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition&#39;s last transition.
  , ExtensionsV1beta1DeploymentCondition -> Text
extensionsV1beta1DeploymentConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , ExtensionsV1beta1DeploymentCondition -> Text
extensionsV1beta1DeploymentConditionType :: !(Text) -- ^ /Required/ "type" - Type of deployment condition.
  } deriving (Int -> ExtensionsV1beta1DeploymentCondition -> ShowS
[ExtensionsV1beta1DeploymentCondition] -> ShowS
ExtensionsV1beta1DeploymentCondition -> String
(Int -> ExtensionsV1beta1DeploymentCondition -> ShowS)
-> (ExtensionsV1beta1DeploymentCondition -> String)
-> ([ExtensionsV1beta1DeploymentCondition] -> ShowS)
-> Show ExtensionsV1beta1DeploymentCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1DeploymentCondition] -> ShowS
$cshowList :: [ExtensionsV1beta1DeploymentCondition] -> ShowS
show :: ExtensionsV1beta1DeploymentCondition -> String
$cshow :: ExtensionsV1beta1DeploymentCondition -> String
showsPrec :: Int -> ExtensionsV1beta1DeploymentCondition -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1DeploymentCondition -> ShowS
P.Show, ExtensionsV1beta1DeploymentCondition
-> ExtensionsV1beta1DeploymentCondition -> Bool
(ExtensionsV1beta1DeploymentCondition
 -> ExtensionsV1beta1DeploymentCondition -> Bool)
-> (ExtensionsV1beta1DeploymentCondition
    -> ExtensionsV1beta1DeploymentCondition -> Bool)
-> Eq ExtensionsV1beta1DeploymentCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1DeploymentCondition
-> ExtensionsV1beta1DeploymentCondition -> Bool
$c/= :: ExtensionsV1beta1DeploymentCondition
-> ExtensionsV1beta1DeploymentCondition -> Bool
== :: ExtensionsV1beta1DeploymentCondition
-> ExtensionsV1beta1DeploymentCondition -> Bool
$c== :: ExtensionsV1beta1DeploymentCondition
-> ExtensionsV1beta1DeploymentCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1DeploymentCondition
instance A.FromJSON ExtensionsV1beta1DeploymentCondition where
  parseJSON :: Value -> Parser ExtensionsV1beta1DeploymentCondition
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1DeploymentCondition)
-> Value
-> Parser ExtensionsV1beta1DeploymentCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1DeploymentCondition" ((Object -> Parser ExtensionsV1beta1DeploymentCondition)
 -> Value -> Parser ExtensionsV1beta1DeploymentCondition)
-> (Object -> Parser ExtensionsV1beta1DeploymentCondition)
-> Value
-> Parser ExtensionsV1beta1DeploymentCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> ExtensionsV1beta1DeploymentCondition
ExtensionsV1beta1DeploymentCondition
      (Maybe DateTime
 -> Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> ExtensionsV1beta1DeploymentCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe DateTime
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Text
      -> ExtensionsV1beta1DeploymentCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe DateTime
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Text
   -> ExtensionsV1beta1DeploymentCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Text
      -> Text
      -> ExtensionsV1beta1DeploymentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastUpdateTime")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Text
   -> Text
   -> ExtensionsV1beta1DeploymentCondition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text -> Text -> ExtensionsV1beta1DeploymentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser
  (Maybe Text
   -> Text -> Text -> ExtensionsV1beta1DeploymentCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> ExtensionsV1beta1DeploymentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> ExtensionsV1beta1DeploymentCondition)
-> Parser Text
-> Parser (Text -> ExtensionsV1beta1DeploymentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> ExtensionsV1beta1DeploymentCondition)
-> Parser Text -> Parser ExtensionsV1beta1DeploymentCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON ExtensionsV1beta1DeploymentCondition
instance A.ToJSON ExtensionsV1beta1DeploymentCondition where
  toJSON :: ExtensionsV1beta1DeploymentCondition -> Value
toJSON ExtensionsV1beta1DeploymentCondition {Maybe Text
Maybe DateTime
Text
extensionsV1beta1DeploymentConditionType :: Text
extensionsV1beta1DeploymentConditionStatus :: Text
extensionsV1beta1DeploymentConditionReason :: Maybe Text
extensionsV1beta1DeploymentConditionMessage :: Maybe Text
extensionsV1beta1DeploymentConditionLastUpdateTime :: Maybe DateTime
extensionsV1beta1DeploymentConditionLastTransitionTime :: Maybe DateTime
extensionsV1beta1DeploymentConditionType :: ExtensionsV1beta1DeploymentCondition -> Text
extensionsV1beta1DeploymentConditionStatus :: ExtensionsV1beta1DeploymentCondition -> Text
extensionsV1beta1DeploymentConditionReason :: ExtensionsV1beta1DeploymentCondition -> Maybe Text
extensionsV1beta1DeploymentConditionMessage :: ExtensionsV1beta1DeploymentCondition -> Maybe Text
extensionsV1beta1DeploymentConditionLastUpdateTime :: ExtensionsV1beta1DeploymentCondition -> Maybe DateTime
extensionsV1beta1DeploymentConditionLastTransitionTime :: ExtensionsV1beta1DeploymentCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
extensionsV1beta1DeploymentConditionLastTransitionTime
      , Text
"lastUpdateTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
extensionsV1beta1DeploymentConditionLastUpdateTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1DeploymentConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1DeploymentConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
extensionsV1beta1DeploymentConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
extensionsV1beta1DeploymentConditionType
      ]


-- | Construct a value of type 'ExtensionsV1beta1DeploymentCondition' (by applying it's required fields, if any)
mkExtensionsV1beta1DeploymentCondition
  :: Text -- ^ 'extensionsV1beta1DeploymentConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'extensionsV1beta1DeploymentConditionType': Type of deployment condition.
  -> ExtensionsV1beta1DeploymentCondition
mkExtensionsV1beta1DeploymentCondition :: Text -> Text -> ExtensionsV1beta1DeploymentCondition
mkExtensionsV1beta1DeploymentCondition Text
extensionsV1beta1DeploymentConditionStatus Text
extensionsV1beta1DeploymentConditionType =
  ExtensionsV1beta1DeploymentCondition :: Maybe DateTime
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> ExtensionsV1beta1DeploymentCondition
ExtensionsV1beta1DeploymentCondition
  { extensionsV1beta1DeploymentConditionLastTransitionTime :: Maybe DateTime
extensionsV1beta1DeploymentConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentConditionLastUpdateTime :: Maybe DateTime
extensionsV1beta1DeploymentConditionLastUpdateTime = Maybe DateTime
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentConditionMessage :: Maybe Text
extensionsV1beta1DeploymentConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentConditionReason :: Maybe Text
extensionsV1beta1DeploymentConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
extensionsV1beta1DeploymentConditionStatus :: Text
extensionsV1beta1DeploymentConditionStatus :: Text
extensionsV1beta1DeploymentConditionStatus
  , Text
extensionsV1beta1DeploymentConditionType :: Text
extensionsV1beta1DeploymentConditionType :: Text
extensionsV1beta1DeploymentConditionType
  }

-- ** ExtensionsV1beta1DeploymentList
-- | ExtensionsV1beta1DeploymentList
-- DeploymentList is a list of Deployments.
data ExtensionsV1beta1DeploymentList = ExtensionsV1beta1DeploymentList
  { ExtensionsV1beta1DeploymentList -> Maybe Text
extensionsV1beta1DeploymentListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , ExtensionsV1beta1DeploymentList -> [ExtensionsV1beta1Deployment]
extensionsV1beta1DeploymentListItems :: !([ExtensionsV1beta1Deployment]) -- ^ /Required/ "items" - Items is the list of Deployments.
  , ExtensionsV1beta1DeploymentList -> Maybe Text
extensionsV1beta1DeploymentListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , ExtensionsV1beta1DeploymentList -> Maybe V1ListMeta
extensionsV1beta1DeploymentListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> ExtensionsV1beta1DeploymentList -> ShowS
[ExtensionsV1beta1DeploymentList] -> ShowS
ExtensionsV1beta1DeploymentList -> String
(Int -> ExtensionsV1beta1DeploymentList -> ShowS)
-> (ExtensionsV1beta1DeploymentList -> String)
-> ([ExtensionsV1beta1DeploymentList] -> ShowS)
-> Show ExtensionsV1beta1DeploymentList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1DeploymentList] -> ShowS
$cshowList :: [ExtensionsV1beta1DeploymentList] -> ShowS
show :: ExtensionsV1beta1DeploymentList -> String
$cshow :: ExtensionsV1beta1DeploymentList -> String
showsPrec :: Int -> ExtensionsV1beta1DeploymentList -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1DeploymentList -> ShowS
P.Show, ExtensionsV1beta1DeploymentList
-> ExtensionsV1beta1DeploymentList -> Bool
(ExtensionsV1beta1DeploymentList
 -> ExtensionsV1beta1DeploymentList -> Bool)
-> (ExtensionsV1beta1DeploymentList
    -> ExtensionsV1beta1DeploymentList -> Bool)
-> Eq ExtensionsV1beta1DeploymentList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1DeploymentList
-> ExtensionsV1beta1DeploymentList -> Bool
$c/= :: ExtensionsV1beta1DeploymentList
-> ExtensionsV1beta1DeploymentList -> Bool
== :: ExtensionsV1beta1DeploymentList
-> ExtensionsV1beta1DeploymentList -> Bool
$c== :: ExtensionsV1beta1DeploymentList
-> ExtensionsV1beta1DeploymentList -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1DeploymentList
instance A.FromJSON ExtensionsV1beta1DeploymentList where
  parseJSON :: Value -> Parser ExtensionsV1beta1DeploymentList
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1DeploymentList)
-> Value
-> Parser ExtensionsV1beta1DeploymentList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1DeploymentList" ((Object -> Parser ExtensionsV1beta1DeploymentList)
 -> Value -> Parser ExtensionsV1beta1DeploymentList)
-> (Object -> Parser ExtensionsV1beta1DeploymentList)
-> Value
-> Parser ExtensionsV1beta1DeploymentList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [ExtensionsV1beta1Deployment]
-> Maybe Text
-> Maybe V1ListMeta
-> ExtensionsV1beta1DeploymentList
ExtensionsV1beta1DeploymentList
      (Maybe Text
 -> [ExtensionsV1beta1Deployment]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> ExtensionsV1beta1DeploymentList)
-> Parser (Maybe Text)
-> Parser
     ([ExtensionsV1beta1Deployment]
      -> Maybe Text
      -> Maybe V1ListMeta
      -> ExtensionsV1beta1DeploymentList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([ExtensionsV1beta1Deployment]
   -> Maybe Text
   -> Maybe V1ListMeta
   -> ExtensionsV1beta1DeploymentList)
-> Parser [ExtensionsV1beta1Deployment]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> ExtensionsV1beta1DeploymentList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [ExtensionsV1beta1Deployment]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> ExtensionsV1beta1DeploymentList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> ExtensionsV1beta1DeploymentList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> ExtensionsV1beta1DeploymentList)
-> Parser (Maybe V1ListMeta)
-> Parser ExtensionsV1beta1DeploymentList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON ExtensionsV1beta1DeploymentList
instance A.ToJSON ExtensionsV1beta1DeploymentList where
  toJSON :: ExtensionsV1beta1DeploymentList -> Value
toJSON ExtensionsV1beta1DeploymentList {[ExtensionsV1beta1Deployment]
Maybe Text
Maybe V1ListMeta
extensionsV1beta1DeploymentListMetadata :: Maybe V1ListMeta
extensionsV1beta1DeploymentListKind :: Maybe Text
extensionsV1beta1DeploymentListItems :: [ExtensionsV1beta1Deployment]
extensionsV1beta1DeploymentListApiVersion :: Maybe Text
extensionsV1beta1DeploymentListMetadata :: ExtensionsV1beta1DeploymentList -> Maybe V1ListMeta
extensionsV1beta1DeploymentListKind :: ExtensionsV1beta1DeploymentList -> Maybe Text
extensionsV1beta1DeploymentListItems :: ExtensionsV1beta1DeploymentList -> [ExtensionsV1beta1Deployment]
extensionsV1beta1DeploymentListApiVersion :: ExtensionsV1beta1DeploymentList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1DeploymentListApiVersion
      , Text
"items" Text -> [ExtensionsV1beta1Deployment] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [ExtensionsV1beta1Deployment]
extensionsV1beta1DeploymentListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1DeploymentListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
extensionsV1beta1DeploymentListMetadata
      ]


-- | Construct a value of type 'ExtensionsV1beta1DeploymentList' (by applying it's required fields, if any)
mkExtensionsV1beta1DeploymentList
  :: [ExtensionsV1beta1Deployment] -- ^ 'extensionsV1beta1DeploymentListItems': Items is the list of Deployments.
  -> ExtensionsV1beta1DeploymentList
mkExtensionsV1beta1DeploymentList :: [ExtensionsV1beta1Deployment] -> ExtensionsV1beta1DeploymentList
mkExtensionsV1beta1DeploymentList [ExtensionsV1beta1Deployment]
extensionsV1beta1DeploymentListItems =
  ExtensionsV1beta1DeploymentList :: Maybe Text
-> [ExtensionsV1beta1Deployment]
-> Maybe Text
-> Maybe V1ListMeta
-> ExtensionsV1beta1DeploymentList
ExtensionsV1beta1DeploymentList
  { extensionsV1beta1DeploymentListApiVersion :: Maybe Text
extensionsV1beta1DeploymentListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [ExtensionsV1beta1Deployment]
extensionsV1beta1DeploymentListItems :: [ExtensionsV1beta1Deployment]
extensionsV1beta1DeploymentListItems :: [ExtensionsV1beta1Deployment]
extensionsV1beta1DeploymentListItems
  , extensionsV1beta1DeploymentListKind :: Maybe Text
extensionsV1beta1DeploymentListKind = Maybe Text
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentListMetadata :: Maybe V1ListMeta
extensionsV1beta1DeploymentListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1DeploymentRollback
-- | ExtensionsV1beta1DeploymentRollback
-- DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.
data ExtensionsV1beta1DeploymentRollback = ExtensionsV1beta1DeploymentRollback
  { ExtensionsV1beta1DeploymentRollback -> Maybe Text
extensionsV1beta1DeploymentRollbackApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , ExtensionsV1beta1DeploymentRollback -> Maybe Text
extensionsV1beta1DeploymentRollbackKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , ExtensionsV1beta1DeploymentRollback -> Text
extensionsV1beta1DeploymentRollbackName :: !(Text) -- ^ /Required/ "name" - Required: This must match the Name of a deployment.
  , ExtensionsV1beta1DeploymentRollback
-> ExtensionsV1beta1RollbackConfig
extensionsV1beta1DeploymentRollbackRollbackTo :: !(ExtensionsV1beta1RollbackConfig) -- ^ /Required/ "rollbackTo"
  , ExtensionsV1beta1DeploymentRollback -> Maybe (Map String Text)
extensionsV1beta1DeploymentRollbackUpdatedAnnotations :: !(Maybe (Map.Map String Text)) -- ^ "updatedAnnotations" - The annotations to be updated to a deployment
  } deriving (Int -> ExtensionsV1beta1DeploymentRollback -> ShowS
[ExtensionsV1beta1DeploymentRollback] -> ShowS
ExtensionsV1beta1DeploymentRollback -> String
(Int -> ExtensionsV1beta1DeploymentRollback -> ShowS)
-> (ExtensionsV1beta1DeploymentRollback -> String)
-> ([ExtensionsV1beta1DeploymentRollback] -> ShowS)
-> Show ExtensionsV1beta1DeploymentRollback
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1DeploymentRollback] -> ShowS
$cshowList :: [ExtensionsV1beta1DeploymentRollback] -> ShowS
show :: ExtensionsV1beta1DeploymentRollback -> String
$cshow :: ExtensionsV1beta1DeploymentRollback -> String
showsPrec :: Int -> ExtensionsV1beta1DeploymentRollback -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1DeploymentRollback -> ShowS
P.Show, ExtensionsV1beta1DeploymentRollback
-> ExtensionsV1beta1DeploymentRollback -> Bool
(ExtensionsV1beta1DeploymentRollback
 -> ExtensionsV1beta1DeploymentRollback -> Bool)
-> (ExtensionsV1beta1DeploymentRollback
    -> ExtensionsV1beta1DeploymentRollback -> Bool)
-> Eq ExtensionsV1beta1DeploymentRollback
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1DeploymentRollback
-> ExtensionsV1beta1DeploymentRollback -> Bool
$c/= :: ExtensionsV1beta1DeploymentRollback
-> ExtensionsV1beta1DeploymentRollback -> Bool
== :: ExtensionsV1beta1DeploymentRollback
-> ExtensionsV1beta1DeploymentRollback -> Bool
$c== :: ExtensionsV1beta1DeploymentRollback
-> ExtensionsV1beta1DeploymentRollback -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1DeploymentRollback
instance A.FromJSON ExtensionsV1beta1DeploymentRollback where
  parseJSON :: Value -> Parser ExtensionsV1beta1DeploymentRollback
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1DeploymentRollback)
-> Value
-> Parser ExtensionsV1beta1DeploymentRollback
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1DeploymentRollback" ((Object -> Parser ExtensionsV1beta1DeploymentRollback)
 -> Value -> Parser ExtensionsV1beta1DeploymentRollback)
-> (Object -> Parser ExtensionsV1beta1DeploymentRollback)
-> Value
-> Parser ExtensionsV1beta1DeploymentRollback
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Text
-> ExtensionsV1beta1RollbackConfig
-> Maybe (Map String Text)
-> ExtensionsV1beta1DeploymentRollback
ExtensionsV1beta1DeploymentRollback
      (Maybe Text
 -> Maybe Text
 -> Text
 -> ExtensionsV1beta1RollbackConfig
 -> Maybe (Map String Text)
 -> ExtensionsV1beta1DeploymentRollback)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text
      -> ExtensionsV1beta1RollbackConfig
      -> Maybe (Map String Text)
      -> ExtensionsV1beta1DeploymentRollback)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Text
   -> ExtensionsV1beta1RollbackConfig
   -> Maybe (Map String Text)
   -> ExtensionsV1beta1DeploymentRollback)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> ExtensionsV1beta1RollbackConfig
      -> Maybe (Map String Text)
      -> ExtensionsV1beta1DeploymentRollback)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Text
   -> ExtensionsV1beta1RollbackConfig
   -> Maybe (Map String Text)
   -> ExtensionsV1beta1DeploymentRollback)
-> Parser Text
-> Parser
     (ExtensionsV1beta1RollbackConfig
      -> Maybe (Map String Text) -> ExtensionsV1beta1DeploymentRollback)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (ExtensionsV1beta1RollbackConfig
   -> Maybe (Map String Text) -> ExtensionsV1beta1DeploymentRollback)
-> Parser ExtensionsV1beta1RollbackConfig
-> Parser
     (Maybe (Map String Text) -> ExtensionsV1beta1DeploymentRollback)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser ExtensionsV1beta1RollbackConfig
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"rollbackTo")
      Parser
  (Maybe (Map String Text) -> ExtensionsV1beta1DeploymentRollback)
-> Parser (Maybe (Map String Text))
-> Parser ExtensionsV1beta1DeploymentRollback
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updatedAnnotations")

-- | ToJSON ExtensionsV1beta1DeploymentRollback
instance A.ToJSON ExtensionsV1beta1DeploymentRollback where
  toJSON :: ExtensionsV1beta1DeploymentRollback -> Value
toJSON ExtensionsV1beta1DeploymentRollback {Maybe Text
Maybe (Map String Text)
Text
ExtensionsV1beta1RollbackConfig
extensionsV1beta1DeploymentRollbackUpdatedAnnotations :: Maybe (Map String Text)
extensionsV1beta1DeploymentRollbackRollbackTo :: ExtensionsV1beta1RollbackConfig
extensionsV1beta1DeploymentRollbackName :: Text
extensionsV1beta1DeploymentRollbackKind :: Maybe Text
extensionsV1beta1DeploymentRollbackApiVersion :: Maybe Text
extensionsV1beta1DeploymentRollbackUpdatedAnnotations :: ExtensionsV1beta1DeploymentRollback -> Maybe (Map String Text)
extensionsV1beta1DeploymentRollbackRollbackTo :: ExtensionsV1beta1DeploymentRollback
-> ExtensionsV1beta1RollbackConfig
extensionsV1beta1DeploymentRollbackName :: ExtensionsV1beta1DeploymentRollback -> Text
extensionsV1beta1DeploymentRollbackKind :: ExtensionsV1beta1DeploymentRollback -> Maybe Text
extensionsV1beta1DeploymentRollbackApiVersion :: ExtensionsV1beta1DeploymentRollback -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1DeploymentRollbackApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1DeploymentRollbackKind
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
extensionsV1beta1DeploymentRollbackName
      , Text
"rollbackTo" Text -> ExtensionsV1beta1RollbackConfig -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= ExtensionsV1beta1RollbackConfig
extensionsV1beta1DeploymentRollbackRollbackTo
      , Text
"updatedAnnotations" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
extensionsV1beta1DeploymentRollbackUpdatedAnnotations
      ]


-- | Construct a value of type 'ExtensionsV1beta1DeploymentRollback' (by applying it's required fields, if any)
mkExtensionsV1beta1DeploymentRollback
  :: Text -- ^ 'extensionsV1beta1DeploymentRollbackName': Required: This must match the Name of a deployment.
  -> ExtensionsV1beta1RollbackConfig -- ^ 'extensionsV1beta1DeploymentRollbackRollbackTo' 
  -> ExtensionsV1beta1DeploymentRollback
mkExtensionsV1beta1DeploymentRollback :: Text
-> ExtensionsV1beta1RollbackConfig
-> ExtensionsV1beta1DeploymentRollback
mkExtensionsV1beta1DeploymentRollback Text
extensionsV1beta1DeploymentRollbackName ExtensionsV1beta1RollbackConfig
extensionsV1beta1DeploymentRollbackRollbackTo =
  ExtensionsV1beta1DeploymentRollback :: Maybe Text
-> Maybe Text
-> Text
-> ExtensionsV1beta1RollbackConfig
-> Maybe (Map String Text)
-> ExtensionsV1beta1DeploymentRollback
ExtensionsV1beta1DeploymentRollback
  { extensionsV1beta1DeploymentRollbackApiVersion :: Maybe Text
extensionsV1beta1DeploymentRollbackApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentRollbackKind :: Maybe Text
extensionsV1beta1DeploymentRollbackKind = Maybe Text
forall a. Maybe a
Nothing
  , Text
extensionsV1beta1DeploymentRollbackName :: Text
extensionsV1beta1DeploymentRollbackName :: Text
extensionsV1beta1DeploymentRollbackName
  , ExtensionsV1beta1RollbackConfig
extensionsV1beta1DeploymentRollbackRollbackTo :: ExtensionsV1beta1RollbackConfig
extensionsV1beta1DeploymentRollbackRollbackTo :: ExtensionsV1beta1RollbackConfig
extensionsV1beta1DeploymentRollbackRollbackTo
  , extensionsV1beta1DeploymentRollbackUpdatedAnnotations :: Maybe (Map String Text)
extensionsV1beta1DeploymentRollbackUpdatedAnnotations = Maybe (Map String Text)
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1DeploymentSpec
-- | ExtensionsV1beta1DeploymentSpec
-- DeploymentSpec is the specification of the desired behavior of the Deployment.
data ExtensionsV1beta1DeploymentSpec = ExtensionsV1beta1DeploymentSpec
  { ExtensionsV1beta1DeploymentSpec -> Maybe Int
extensionsV1beta1DeploymentSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)
  , ExtensionsV1beta1DeploymentSpec -> Maybe Bool
extensionsV1beta1DeploymentSpecPaused :: !(Maybe Bool) -- ^ "paused" - Indicates that the deployment is paused and will not be processed by the deployment controller.
  , ExtensionsV1beta1DeploymentSpec -> Maybe Int
extensionsV1beta1DeploymentSpecProgressDeadlineSeconds :: !(Maybe Int) -- ^ "progressDeadlineSeconds" - The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. This is set to the max value of int32 (i.e. 2147483647) by default, which means \&quot;no deadline\&quot;.
  , ExtensionsV1beta1DeploymentSpec -> Maybe Int
extensionsV1beta1DeploymentSpecReplicas :: !(Maybe Int) -- ^ "replicas" - Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.
  , ExtensionsV1beta1DeploymentSpec -> Maybe Int
extensionsV1beta1DeploymentSpecRevisionHistoryLimit :: !(Maybe Int) -- ^ "revisionHistoryLimit" - The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. This is set to the max value of int32 (i.e. 2147483647) by default, which means \&quot;retaining all old RelicaSets\&quot;.
  , ExtensionsV1beta1DeploymentSpec
-> Maybe ExtensionsV1beta1RollbackConfig
extensionsV1beta1DeploymentSpecRollbackTo :: !(Maybe ExtensionsV1beta1RollbackConfig) -- ^ "rollbackTo"
  , ExtensionsV1beta1DeploymentSpec -> Maybe V1LabelSelector
extensionsV1beta1DeploymentSpecSelector :: !(Maybe V1LabelSelector) -- ^ "selector"
  , ExtensionsV1beta1DeploymentSpec
-> Maybe ExtensionsV1beta1DeploymentStrategy
extensionsV1beta1DeploymentSpecStrategy :: !(Maybe ExtensionsV1beta1DeploymentStrategy) -- ^ "strategy"
  , ExtensionsV1beta1DeploymentSpec -> V1PodTemplateSpec
extensionsV1beta1DeploymentSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"
  } deriving (Int -> ExtensionsV1beta1DeploymentSpec -> ShowS
[ExtensionsV1beta1DeploymentSpec] -> ShowS
ExtensionsV1beta1DeploymentSpec -> String
(Int -> ExtensionsV1beta1DeploymentSpec -> ShowS)
-> (ExtensionsV1beta1DeploymentSpec -> String)
-> ([ExtensionsV1beta1DeploymentSpec] -> ShowS)
-> Show ExtensionsV1beta1DeploymentSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1DeploymentSpec] -> ShowS
$cshowList :: [ExtensionsV1beta1DeploymentSpec] -> ShowS
show :: ExtensionsV1beta1DeploymentSpec -> String
$cshow :: ExtensionsV1beta1DeploymentSpec -> String
showsPrec :: Int -> ExtensionsV1beta1DeploymentSpec -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1DeploymentSpec -> ShowS
P.Show, ExtensionsV1beta1DeploymentSpec
-> ExtensionsV1beta1DeploymentSpec -> Bool
(ExtensionsV1beta1DeploymentSpec
 -> ExtensionsV1beta1DeploymentSpec -> Bool)
-> (ExtensionsV1beta1DeploymentSpec
    -> ExtensionsV1beta1DeploymentSpec -> Bool)
-> Eq ExtensionsV1beta1DeploymentSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1DeploymentSpec
-> ExtensionsV1beta1DeploymentSpec -> Bool
$c/= :: ExtensionsV1beta1DeploymentSpec
-> ExtensionsV1beta1DeploymentSpec -> Bool
== :: ExtensionsV1beta1DeploymentSpec
-> ExtensionsV1beta1DeploymentSpec -> Bool
$c== :: ExtensionsV1beta1DeploymentSpec
-> ExtensionsV1beta1DeploymentSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1DeploymentSpec
instance A.FromJSON ExtensionsV1beta1DeploymentSpec where
  parseJSON :: Value -> Parser ExtensionsV1beta1DeploymentSpec
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1DeploymentSpec)
-> Value
-> Parser ExtensionsV1beta1DeploymentSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1DeploymentSpec" ((Object -> Parser ExtensionsV1beta1DeploymentSpec)
 -> Value -> Parser ExtensionsV1beta1DeploymentSpec)
-> (Object -> Parser ExtensionsV1beta1DeploymentSpec)
-> Value
-> Parser ExtensionsV1beta1DeploymentSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Bool
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe ExtensionsV1beta1RollbackConfig
-> Maybe V1LabelSelector
-> Maybe ExtensionsV1beta1DeploymentStrategy
-> V1PodTemplateSpec
-> ExtensionsV1beta1DeploymentSpec
ExtensionsV1beta1DeploymentSpec
      (Maybe Int
 -> Maybe Bool
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe ExtensionsV1beta1RollbackConfig
 -> Maybe V1LabelSelector
 -> Maybe ExtensionsV1beta1DeploymentStrategy
 -> V1PodTemplateSpec
 -> ExtensionsV1beta1DeploymentSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe ExtensionsV1beta1RollbackConfig
      -> Maybe V1LabelSelector
      -> Maybe ExtensionsV1beta1DeploymentStrategy
      -> V1PodTemplateSpec
      -> ExtensionsV1beta1DeploymentSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minReadySeconds")
      Parser
  (Maybe Bool
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe ExtensionsV1beta1RollbackConfig
   -> Maybe V1LabelSelector
   -> Maybe ExtensionsV1beta1DeploymentStrategy
   -> V1PodTemplateSpec
   -> ExtensionsV1beta1DeploymentSpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe ExtensionsV1beta1RollbackConfig
      -> Maybe V1LabelSelector
      -> Maybe ExtensionsV1beta1DeploymentStrategy
      -> V1PodTemplateSpec
      -> ExtensionsV1beta1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"paused")
      Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe ExtensionsV1beta1RollbackConfig
   -> Maybe V1LabelSelector
   -> Maybe ExtensionsV1beta1DeploymentStrategy
   -> V1PodTemplateSpec
   -> ExtensionsV1beta1DeploymentSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe ExtensionsV1beta1RollbackConfig
      -> Maybe V1LabelSelector
      -> Maybe ExtensionsV1beta1DeploymentStrategy
      -> V1PodTemplateSpec
      -> ExtensionsV1beta1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"progressDeadlineSeconds")
      Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe ExtensionsV1beta1RollbackConfig
   -> Maybe V1LabelSelector
   -> Maybe ExtensionsV1beta1DeploymentStrategy
   -> V1PodTemplateSpec
   -> ExtensionsV1beta1DeploymentSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe ExtensionsV1beta1RollbackConfig
      -> Maybe V1LabelSelector
      -> Maybe ExtensionsV1beta1DeploymentStrategy
      -> V1PodTemplateSpec
      -> ExtensionsV1beta1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")
      Parser
  (Maybe Int
   -> Maybe ExtensionsV1beta1RollbackConfig
   -> Maybe V1LabelSelector
   -> Maybe ExtensionsV1beta1DeploymentStrategy
   -> V1PodTemplateSpec
   -> ExtensionsV1beta1DeploymentSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe ExtensionsV1beta1RollbackConfig
      -> Maybe V1LabelSelector
      -> Maybe ExtensionsV1beta1DeploymentStrategy
      -> V1PodTemplateSpec
      -> ExtensionsV1beta1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"revisionHistoryLimit")
      Parser
  (Maybe ExtensionsV1beta1RollbackConfig
   -> Maybe V1LabelSelector
   -> Maybe ExtensionsV1beta1DeploymentStrategy
   -> V1PodTemplateSpec
   -> ExtensionsV1beta1DeploymentSpec)
-> Parser (Maybe ExtensionsV1beta1RollbackConfig)
-> Parser
     (Maybe V1LabelSelector
      -> Maybe ExtensionsV1beta1DeploymentStrategy
      -> V1PodTemplateSpec
      -> ExtensionsV1beta1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe ExtensionsV1beta1RollbackConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rollbackTo")
      Parser
  (Maybe V1LabelSelector
   -> Maybe ExtensionsV1beta1DeploymentStrategy
   -> V1PodTemplateSpec
   -> ExtensionsV1beta1DeploymentSpec)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (Maybe ExtensionsV1beta1DeploymentStrategy
      -> V1PodTemplateSpec -> ExtensionsV1beta1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")
      Parser
  (Maybe ExtensionsV1beta1DeploymentStrategy
   -> V1PodTemplateSpec -> ExtensionsV1beta1DeploymentSpec)
-> Parser (Maybe ExtensionsV1beta1DeploymentStrategy)
-> Parser (V1PodTemplateSpec -> ExtensionsV1beta1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe ExtensionsV1beta1DeploymentStrategy)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"strategy")
      Parser (V1PodTemplateSpec -> ExtensionsV1beta1DeploymentSpec)
-> Parser V1PodTemplateSpec
-> Parser ExtensionsV1beta1DeploymentSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1PodTemplateSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"template")

-- | ToJSON ExtensionsV1beta1DeploymentSpec
instance A.ToJSON ExtensionsV1beta1DeploymentSpec where
  toJSON :: ExtensionsV1beta1DeploymentSpec -> Value
toJSON ExtensionsV1beta1DeploymentSpec {Maybe Bool
Maybe Int
Maybe V1LabelSelector
Maybe ExtensionsV1beta1RollbackConfig
Maybe ExtensionsV1beta1DeploymentStrategy
V1PodTemplateSpec
extensionsV1beta1DeploymentSpecTemplate :: V1PodTemplateSpec
extensionsV1beta1DeploymentSpecStrategy :: Maybe ExtensionsV1beta1DeploymentStrategy
extensionsV1beta1DeploymentSpecSelector :: Maybe V1LabelSelector
extensionsV1beta1DeploymentSpecRollbackTo :: Maybe ExtensionsV1beta1RollbackConfig
extensionsV1beta1DeploymentSpecRevisionHistoryLimit :: Maybe Int
extensionsV1beta1DeploymentSpecReplicas :: Maybe Int
extensionsV1beta1DeploymentSpecProgressDeadlineSeconds :: Maybe Int
extensionsV1beta1DeploymentSpecPaused :: Maybe Bool
extensionsV1beta1DeploymentSpecMinReadySeconds :: Maybe Int
extensionsV1beta1DeploymentSpecTemplate :: ExtensionsV1beta1DeploymentSpec -> V1PodTemplateSpec
extensionsV1beta1DeploymentSpecStrategy :: ExtensionsV1beta1DeploymentSpec
-> Maybe ExtensionsV1beta1DeploymentStrategy
extensionsV1beta1DeploymentSpecSelector :: ExtensionsV1beta1DeploymentSpec -> Maybe V1LabelSelector
extensionsV1beta1DeploymentSpecRollbackTo :: ExtensionsV1beta1DeploymentSpec
-> Maybe ExtensionsV1beta1RollbackConfig
extensionsV1beta1DeploymentSpecRevisionHistoryLimit :: ExtensionsV1beta1DeploymentSpec -> Maybe Int
extensionsV1beta1DeploymentSpecReplicas :: ExtensionsV1beta1DeploymentSpec -> Maybe Int
extensionsV1beta1DeploymentSpecProgressDeadlineSeconds :: ExtensionsV1beta1DeploymentSpec -> Maybe Int
extensionsV1beta1DeploymentSpecPaused :: ExtensionsV1beta1DeploymentSpec -> Maybe Bool
extensionsV1beta1DeploymentSpecMinReadySeconds :: ExtensionsV1beta1DeploymentSpec -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"minReadySeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
extensionsV1beta1DeploymentSpecMinReadySeconds
      , Text
"paused" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
extensionsV1beta1DeploymentSpecPaused
      , Text
"progressDeadlineSeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
extensionsV1beta1DeploymentSpecProgressDeadlineSeconds
      , Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
extensionsV1beta1DeploymentSpecReplicas
      , Text
"revisionHistoryLimit" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
extensionsV1beta1DeploymentSpecRevisionHistoryLimit
      , Text
"rollbackTo" Text -> Maybe ExtensionsV1beta1RollbackConfig -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ExtensionsV1beta1RollbackConfig
extensionsV1beta1DeploymentSpecRollbackTo
      , Text
"selector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
extensionsV1beta1DeploymentSpecSelector
      , Text
"strategy" Text -> Maybe ExtensionsV1beta1DeploymentStrategy -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ExtensionsV1beta1DeploymentStrategy
extensionsV1beta1DeploymentSpecStrategy
      , Text
"template" Text -> V1PodTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1PodTemplateSpec
extensionsV1beta1DeploymentSpecTemplate
      ]


-- | Construct a value of type 'ExtensionsV1beta1DeploymentSpec' (by applying it's required fields, if any)
mkExtensionsV1beta1DeploymentSpec
  :: V1PodTemplateSpec -- ^ 'extensionsV1beta1DeploymentSpecTemplate' 
  -> ExtensionsV1beta1DeploymentSpec
mkExtensionsV1beta1DeploymentSpec :: V1PodTemplateSpec -> ExtensionsV1beta1DeploymentSpec
mkExtensionsV1beta1DeploymentSpec V1PodTemplateSpec
extensionsV1beta1DeploymentSpecTemplate =
  ExtensionsV1beta1DeploymentSpec :: Maybe Int
-> Maybe Bool
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe ExtensionsV1beta1RollbackConfig
-> Maybe V1LabelSelector
-> Maybe ExtensionsV1beta1DeploymentStrategy
-> V1PodTemplateSpec
-> ExtensionsV1beta1DeploymentSpec
ExtensionsV1beta1DeploymentSpec
  { extensionsV1beta1DeploymentSpecMinReadySeconds :: Maybe Int
extensionsV1beta1DeploymentSpecMinReadySeconds = Maybe Int
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentSpecPaused :: Maybe Bool
extensionsV1beta1DeploymentSpecPaused = Maybe Bool
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentSpecProgressDeadlineSeconds :: Maybe Int
extensionsV1beta1DeploymentSpecProgressDeadlineSeconds = Maybe Int
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentSpecReplicas :: Maybe Int
extensionsV1beta1DeploymentSpecReplicas = Maybe Int
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentSpecRevisionHistoryLimit :: Maybe Int
extensionsV1beta1DeploymentSpecRevisionHistoryLimit = Maybe Int
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentSpecRollbackTo :: Maybe ExtensionsV1beta1RollbackConfig
extensionsV1beta1DeploymentSpecRollbackTo = Maybe ExtensionsV1beta1RollbackConfig
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentSpecSelector :: Maybe V1LabelSelector
extensionsV1beta1DeploymentSpecSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentSpecStrategy :: Maybe ExtensionsV1beta1DeploymentStrategy
extensionsV1beta1DeploymentSpecStrategy = Maybe ExtensionsV1beta1DeploymentStrategy
forall a. Maybe a
Nothing
  , V1PodTemplateSpec
extensionsV1beta1DeploymentSpecTemplate :: V1PodTemplateSpec
extensionsV1beta1DeploymentSpecTemplate :: V1PodTemplateSpec
extensionsV1beta1DeploymentSpecTemplate
  }

-- ** ExtensionsV1beta1DeploymentStatus
-- | ExtensionsV1beta1DeploymentStatus
-- DeploymentStatus is the most recently observed status of the Deployment.
data ExtensionsV1beta1DeploymentStatus = ExtensionsV1beta1DeploymentStatus
  { ExtensionsV1beta1DeploymentStatus -> Maybe Int
extensionsV1beta1DeploymentStatusAvailableReplicas :: !(Maybe Int) -- ^ "availableReplicas" - Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.
  , ExtensionsV1beta1DeploymentStatus -> Maybe Int
extensionsV1beta1DeploymentStatusCollisionCount :: !(Maybe Int) -- ^ "collisionCount" - Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.
  , ExtensionsV1beta1DeploymentStatus
-> Maybe [ExtensionsV1beta1DeploymentCondition]
extensionsV1beta1DeploymentStatusConditions :: !(Maybe [ExtensionsV1beta1DeploymentCondition]) -- ^ "conditions" - Represents the latest available observations of a deployment&#39;s current state.
  , ExtensionsV1beta1DeploymentStatus -> Maybe Integer
extensionsV1beta1DeploymentStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - The generation observed by the deployment controller.
  , ExtensionsV1beta1DeploymentStatus -> Maybe Int
extensionsV1beta1DeploymentStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - Total number of ready pods targeted by this deployment.
  , ExtensionsV1beta1DeploymentStatus -> Maybe Int
extensionsV1beta1DeploymentStatusReplicas :: !(Maybe Int) -- ^ "replicas" - Total number of non-terminated pods targeted by this deployment (their labels match the selector).
  , ExtensionsV1beta1DeploymentStatus -> Maybe Int
extensionsV1beta1DeploymentStatusUnavailableReplicas :: !(Maybe Int) -- ^ "unavailableReplicas" - Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.
  , ExtensionsV1beta1DeploymentStatus -> Maybe Int
extensionsV1beta1DeploymentStatusUpdatedReplicas :: !(Maybe Int) -- ^ "updatedReplicas" - Total number of non-terminated pods targeted by this deployment that have the desired template spec.
  } deriving (Int -> ExtensionsV1beta1DeploymentStatus -> ShowS
[ExtensionsV1beta1DeploymentStatus] -> ShowS
ExtensionsV1beta1DeploymentStatus -> String
(Int -> ExtensionsV1beta1DeploymentStatus -> ShowS)
-> (ExtensionsV1beta1DeploymentStatus -> String)
-> ([ExtensionsV1beta1DeploymentStatus] -> ShowS)
-> Show ExtensionsV1beta1DeploymentStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1DeploymentStatus] -> ShowS
$cshowList :: [ExtensionsV1beta1DeploymentStatus] -> ShowS
show :: ExtensionsV1beta1DeploymentStatus -> String
$cshow :: ExtensionsV1beta1DeploymentStatus -> String
showsPrec :: Int -> ExtensionsV1beta1DeploymentStatus -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1DeploymentStatus -> ShowS
P.Show, ExtensionsV1beta1DeploymentStatus
-> ExtensionsV1beta1DeploymentStatus -> Bool
(ExtensionsV1beta1DeploymentStatus
 -> ExtensionsV1beta1DeploymentStatus -> Bool)
-> (ExtensionsV1beta1DeploymentStatus
    -> ExtensionsV1beta1DeploymentStatus -> Bool)
-> Eq ExtensionsV1beta1DeploymentStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1DeploymentStatus
-> ExtensionsV1beta1DeploymentStatus -> Bool
$c/= :: ExtensionsV1beta1DeploymentStatus
-> ExtensionsV1beta1DeploymentStatus -> Bool
== :: ExtensionsV1beta1DeploymentStatus
-> ExtensionsV1beta1DeploymentStatus -> Bool
$c== :: ExtensionsV1beta1DeploymentStatus
-> ExtensionsV1beta1DeploymentStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1DeploymentStatus
instance A.FromJSON ExtensionsV1beta1DeploymentStatus where
  parseJSON :: Value -> Parser ExtensionsV1beta1DeploymentStatus
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1DeploymentStatus)
-> Value
-> Parser ExtensionsV1beta1DeploymentStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1DeploymentStatus" ((Object -> Parser ExtensionsV1beta1DeploymentStatus)
 -> Value -> Parser ExtensionsV1beta1DeploymentStatus)
-> (Object -> Parser ExtensionsV1beta1DeploymentStatus)
-> Value
-> Parser ExtensionsV1beta1DeploymentStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Int
-> Maybe [ExtensionsV1beta1DeploymentCondition]
-> Maybe Integer
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> ExtensionsV1beta1DeploymentStatus
ExtensionsV1beta1DeploymentStatus
      (Maybe Int
 -> Maybe Int
 -> Maybe [ExtensionsV1beta1DeploymentCondition]
 -> Maybe Integer
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> ExtensionsV1beta1DeploymentStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe [ExtensionsV1beta1DeploymentCondition]
      -> Maybe Integer
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> ExtensionsV1beta1DeploymentStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"availableReplicas")
      Parser
  (Maybe Int
   -> Maybe [ExtensionsV1beta1DeploymentCondition]
   -> Maybe Integer
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> ExtensionsV1beta1DeploymentStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe [ExtensionsV1beta1DeploymentCondition]
      -> Maybe Integer
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> ExtensionsV1beta1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"collisionCount")
      Parser
  (Maybe [ExtensionsV1beta1DeploymentCondition]
   -> Maybe Integer
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> ExtensionsV1beta1DeploymentStatus)
-> Parser (Maybe [ExtensionsV1beta1DeploymentCondition])
-> Parser
     (Maybe Integer
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> ExtensionsV1beta1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe [ExtensionsV1beta1DeploymentCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Maybe Integer
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> ExtensionsV1beta1DeploymentStatus)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> ExtensionsV1beta1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")
      Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> ExtensionsV1beta1DeploymentStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe Int -> Maybe Int -> ExtensionsV1beta1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readyReplicas")
      Parser
  (Maybe Int
   -> Maybe Int -> Maybe Int -> ExtensionsV1beta1DeploymentStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int -> Maybe Int -> ExtensionsV1beta1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")
      Parser
  (Maybe Int -> Maybe Int -> ExtensionsV1beta1DeploymentStatus)
-> Parser (Maybe Int)
-> Parser (Maybe Int -> ExtensionsV1beta1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"unavailableReplicas")
      Parser (Maybe Int -> ExtensionsV1beta1DeploymentStatus)
-> Parser (Maybe Int) -> Parser ExtensionsV1beta1DeploymentStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updatedReplicas")

-- | ToJSON ExtensionsV1beta1DeploymentStatus
instance A.ToJSON ExtensionsV1beta1DeploymentStatus where
  toJSON :: ExtensionsV1beta1DeploymentStatus -> Value
toJSON ExtensionsV1beta1DeploymentStatus {Maybe Int
Maybe Integer
Maybe [ExtensionsV1beta1DeploymentCondition]
extensionsV1beta1DeploymentStatusUpdatedReplicas :: Maybe Int
extensionsV1beta1DeploymentStatusUnavailableReplicas :: Maybe Int
extensionsV1beta1DeploymentStatusReplicas :: Maybe Int
extensionsV1beta1DeploymentStatusReadyReplicas :: Maybe Int
extensionsV1beta1DeploymentStatusObservedGeneration :: Maybe Integer
extensionsV1beta1DeploymentStatusConditions :: Maybe [ExtensionsV1beta1DeploymentCondition]
extensionsV1beta1DeploymentStatusCollisionCount :: Maybe Int
extensionsV1beta1DeploymentStatusAvailableReplicas :: Maybe Int
extensionsV1beta1DeploymentStatusUpdatedReplicas :: ExtensionsV1beta1DeploymentStatus -> Maybe Int
extensionsV1beta1DeploymentStatusUnavailableReplicas :: ExtensionsV1beta1DeploymentStatus -> Maybe Int
extensionsV1beta1DeploymentStatusReplicas :: ExtensionsV1beta1DeploymentStatus -> Maybe Int
extensionsV1beta1DeploymentStatusReadyReplicas :: ExtensionsV1beta1DeploymentStatus -> Maybe Int
extensionsV1beta1DeploymentStatusObservedGeneration :: ExtensionsV1beta1DeploymentStatus -> Maybe Integer
extensionsV1beta1DeploymentStatusConditions :: ExtensionsV1beta1DeploymentStatus
-> Maybe [ExtensionsV1beta1DeploymentCondition]
extensionsV1beta1DeploymentStatusCollisionCount :: ExtensionsV1beta1DeploymentStatus -> Maybe Int
extensionsV1beta1DeploymentStatusAvailableReplicas :: ExtensionsV1beta1DeploymentStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"availableReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
extensionsV1beta1DeploymentStatusAvailableReplicas
      , Text
"collisionCount" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
extensionsV1beta1DeploymentStatusCollisionCount
      , Text
"conditions" Text
-> Maybe [ExtensionsV1beta1DeploymentCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [ExtensionsV1beta1DeploymentCondition]
extensionsV1beta1DeploymentStatusConditions
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
extensionsV1beta1DeploymentStatusObservedGeneration
      , Text
"readyReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
extensionsV1beta1DeploymentStatusReadyReplicas
      , Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
extensionsV1beta1DeploymentStatusReplicas
      , Text
"unavailableReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
extensionsV1beta1DeploymentStatusUnavailableReplicas
      , Text
"updatedReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
extensionsV1beta1DeploymentStatusUpdatedReplicas
      ]


-- | Construct a value of type 'ExtensionsV1beta1DeploymentStatus' (by applying it's required fields, if any)
mkExtensionsV1beta1DeploymentStatus
  :: ExtensionsV1beta1DeploymentStatus
mkExtensionsV1beta1DeploymentStatus :: ExtensionsV1beta1DeploymentStatus
mkExtensionsV1beta1DeploymentStatus =
  ExtensionsV1beta1DeploymentStatus :: Maybe Int
-> Maybe Int
-> Maybe [ExtensionsV1beta1DeploymentCondition]
-> Maybe Integer
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> ExtensionsV1beta1DeploymentStatus
ExtensionsV1beta1DeploymentStatus
  { extensionsV1beta1DeploymentStatusAvailableReplicas :: Maybe Int
extensionsV1beta1DeploymentStatusAvailableReplicas = Maybe Int
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentStatusCollisionCount :: Maybe Int
extensionsV1beta1DeploymentStatusCollisionCount = Maybe Int
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentStatusConditions :: Maybe [ExtensionsV1beta1DeploymentCondition]
extensionsV1beta1DeploymentStatusConditions = Maybe [ExtensionsV1beta1DeploymentCondition]
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentStatusObservedGeneration :: Maybe Integer
extensionsV1beta1DeploymentStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentStatusReadyReplicas :: Maybe Int
extensionsV1beta1DeploymentStatusReadyReplicas = Maybe Int
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentStatusReplicas :: Maybe Int
extensionsV1beta1DeploymentStatusReplicas = Maybe Int
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentStatusUnavailableReplicas :: Maybe Int
extensionsV1beta1DeploymentStatusUnavailableReplicas = Maybe Int
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentStatusUpdatedReplicas :: Maybe Int
extensionsV1beta1DeploymentStatusUpdatedReplicas = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1DeploymentStrategy
-- | ExtensionsV1beta1DeploymentStrategy
-- DeploymentStrategy describes how to replace existing pods with new ones.
data ExtensionsV1beta1DeploymentStrategy = ExtensionsV1beta1DeploymentStrategy
  { ExtensionsV1beta1DeploymentStrategy
-> Maybe ExtensionsV1beta1RollingUpdateDeployment
extensionsV1beta1DeploymentStrategyRollingUpdate :: !(Maybe ExtensionsV1beta1RollingUpdateDeployment) -- ^ "rollingUpdate"
  , ExtensionsV1beta1DeploymentStrategy -> Maybe Text
extensionsV1beta1DeploymentStrategyType :: !(Maybe Text) -- ^ "type" - Type of deployment. Can be \&quot;Recreate\&quot; or \&quot;RollingUpdate\&quot;. Default is RollingUpdate.
  } deriving (Int -> ExtensionsV1beta1DeploymentStrategy -> ShowS
[ExtensionsV1beta1DeploymentStrategy] -> ShowS
ExtensionsV1beta1DeploymentStrategy -> String
(Int -> ExtensionsV1beta1DeploymentStrategy -> ShowS)
-> (ExtensionsV1beta1DeploymentStrategy -> String)
-> ([ExtensionsV1beta1DeploymentStrategy] -> ShowS)
-> Show ExtensionsV1beta1DeploymentStrategy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1DeploymentStrategy] -> ShowS
$cshowList :: [ExtensionsV1beta1DeploymentStrategy] -> ShowS
show :: ExtensionsV1beta1DeploymentStrategy -> String
$cshow :: ExtensionsV1beta1DeploymentStrategy -> String
showsPrec :: Int -> ExtensionsV1beta1DeploymentStrategy -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1DeploymentStrategy -> ShowS
P.Show, ExtensionsV1beta1DeploymentStrategy
-> ExtensionsV1beta1DeploymentStrategy -> Bool
(ExtensionsV1beta1DeploymentStrategy
 -> ExtensionsV1beta1DeploymentStrategy -> Bool)
-> (ExtensionsV1beta1DeploymentStrategy
    -> ExtensionsV1beta1DeploymentStrategy -> Bool)
-> Eq ExtensionsV1beta1DeploymentStrategy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1DeploymentStrategy
-> ExtensionsV1beta1DeploymentStrategy -> Bool
$c/= :: ExtensionsV1beta1DeploymentStrategy
-> ExtensionsV1beta1DeploymentStrategy -> Bool
== :: ExtensionsV1beta1DeploymentStrategy
-> ExtensionsV1beta1DeploymentStrategy -> Bool
$c== :: ExtensionsV1beta1DeploymentStrategy
-> ExtensionsV1beta1DeploymentStrategy -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1DeploymentStrategy
instance A.FromJSON ExtensionsV1beta1DeploymentStrategy where
  parseJSON :: Value -> Parser ExtensionsV1beta1DeploymentStrategy
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1DeploymentStrategy)
-> Value
-> Parser ExtensionsV1beta1DeploymentStrategy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1DeploymentStrategy" ((Object -> Parser ExtensionsV1beta1DeploymentStrategy)
 -> Value -> Parser ExtensionsV1beta1DeploymentStrategy)
-> (Object -> Parser ExtensionsV1beta1DeploymentStrategy)
-> Value
-> Parser ExtensionsV1beta1DeploymentStrategy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe ExtensionsV1beta1RollingUpdateDeployment
-> Maybe Text -> ExtensionsV1beta1DeploymentStrategy
ExtensionsV1beta1DeploymentStrategy
      (Maybe ExtensionsV1beta1RollingUpdateDeployment
 -> Maybe Text -> ExtensionsV1beta1DeploymentStrategy)
-> Parser (Maybe ExtensionsV1beta1RollingUpdateDeployment)
-> Parser (Maybe Text -> ExtensionsV1beta1DeploymentStrategy)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object
-> Text -> Parser (Maybe ExtensionsV1beta1RollingUpdateDeployment)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rollingUpdate")
      Parser (Maybe Text -> ExtensionsV1beta1DeploymentStrategy)
-> Parser (Maybe Text)
-> Parser ExtensionsV1beta1DeploymentStrategy
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")

-- | ToJSON ExtensionsV1beta1DeploymentStrategy
instance A.ToJSON ExtensionsV1beta1DeploymentStrategy where
  toJSON :: ExtensionsV1beta1DeploymentStrategy -> Value
toJSON ExtensionsV1beta1DeploymentStrategy {Maybe Text
Maybe ExtensionsV1beta1RollingUpdateDeployment
extensionsV1beta1DeploymentStrategyType :: Maybe Text
extensionsV1beta1DeploymentStrategyRollingUpdate :: Maybe ExtensionsV1beta1RollingUpdateDeployment
extensionsV1beta1DeploymentStrategyType :: ExtensionsV1beta1DeploymentStrategy -> Maybe Text
extensionsV1beta1DeploymentStrategyRollingUpdate :: ExtensionsV1beta1DeploymentStrategy
-> Maybe ExtensionsV1beta1RollingUpdateDeployment
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"rollingUpdate" Text
-> Maybe ExtensionsV1beta1RollingUpdateDeployment -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ExtensionsV1beta1RollingUpdateDeployment
extensionsV1beta1DeploymentStrategyRollingUpdate
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1DeploymentStrategyType
      ]


-- | Construct a value of type 'ExtensionsV1beta1DeploymentStrategy' (by applying it's required fields, if any)
mkExtensionsV1beta1DeploymentStrategy
  :: ExtensionsV1beta1DeploymentStrategy
mkExtensionsV1beta1DeploymentStrategy :: ExtensionsV1beta1DeploymentStrategy
mkExtensionsV1beta1DeploymentStrategy =
  ExtensionsV1beta1DeploymentStrategy :: Maybe ExtensionsV1beta1RollingUpdateDeployment
-> Maybe Text -> ExtensionsV1beta1DeploymentStrategy
ExtensionsV1beta1DeploymentStrategy
  { extensionsV1beta1DeploymentStrategyRollingUpdate :: Maybe ExtensionsV1beta1RollingUpdateDeployment
extensionsV1beta1DeploymentStrategyRollingUpdate = Maybe ExtensionsV1beta1RollingUpdateDeployment
forall a. Maybe a
Nothing
  , extensionsV1beta1DeploymentStrategyType :: Maybe Text
extensionsV1beta1DeploymentStrategyType = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1FSGroupStrategyOptions
-- | ExtensionsV1beta1FSGroupStrategyOptions
-- FSGroupStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use FSGroupStrategyOptions from policy API Group instead.
data ExtensionsV1beta1FSGroupStrategyOptions = ExtensionsV1beta1FSGroupStrategyOptions
  { ExtensionsV1beta1FSGroupStrategyOptions
-> Maybe [ExtensionsV1beta1IDRange]
extensionsV1beta1FSGroupStrategyOptionsRanges :: !(Maybe [ExtensionsV1beta1IDRange]) -- ^ "ranges" - ranges are the allowed ranges of fs groups.  If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs.
  , ExtensionsV1beta1FSGroupStrategyOptions -> Maybe Text
extensionsV1beta1FSGroupStrategyOptionsRule :: !(Maybe Text) -- ^ "rule" - rule is the strategy that will dictate what FSGroup is used in the SecurityContext.
  } deriving (Int -> ExtensionsV1beta1FSGroupStrategyOptions -> ShowS
[ExtensionsV1beta1FSGroupStrategyOptions] -> ShowS
ExtensionsV1beta1FSGroupStrategyOptions -> String
(Int -> ExtensionsV1beta1FSGroupStrategyOptions -> ShowS)
-> (ExtensionsV1beta1FSGroupStrategyOptions -> String)
-> ([ExtensionsV1beta1FSGroupStrategyOptions] -> ShowS)
-> Show ExtensionsV1beta1FSGroupStrategyOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1FSGroupStrategyOptions] -> ShowS
$cshowList :: [ExtensionsV1beta1FSGroupStrategyOptions] -> ShowS
show :: ExtensionsV1beta1FSGroupStrategyOptions -> String
$cshow :: ExtensionsV1beta1FSGroupStrategyOptions -> String
showsPrec :: Int -> ExtensionsV1beta1FSGroupStrategyOptions -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1FSGroupStrategyOptions -> ShowS
P.Show, ExtensionsV1beta1FSGroupStrategyOptions
-> ExtensionsV1beta1FSGroupStrategyOptions -> Bool
(ExtensionsV1beta1FSGroupStrategyOptions
 -> ExtensionsV1beta1FSGroupStrategyOptions -> Bool)
-> (ExtensionsV1beta1FSGroupStrategyOptions
    -> ExtensionsV1beta1FSGroupStrategyOptions -> Bool)
-> Eq ExtensionsV1beta1FSGroupStrategyOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1FSGroupStrategyOptions
-> ExtensionsV1beta1FSGroupStrategyOptions -> Bool
$c/= :: ExtensionsV1beta1FSGroupStrategyOptions
-> ExtensionsV1beta1FSGroupStrategyOptions -> Bool
== :: ExtensionsV1beta1FSGroupStrategyOptions
-> ExtensionsV1beta1FSGroupStrategyOptions -> Bool
$c== :: ExtensionsV1beta1FSGroupStrategyOptions
-> ExtensionsV1beta1FSGroupStrategyOptions -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1FSGroupStrategyOptions
instance A.FromJSON ExtensionsV1beta1FSGroupStrategyOptions where
  parseJSON :: Value -> Parser ExtensionsV1beta1FSGroupStrategyOptions
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1FSGroupStrategyOptions)
-> Value
-> Parser ExtensionsV1beta1FSGroupStrategyOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1FSGroupStrategyOptions" ((Object -> Parser ExtensionsV1beta1FSGroupStrategyOptions)
 -> Value -> Parser ExtensionsV1beta1FSGroupStrategyOptions)
-> (Object -> Parser ExtensionsV1beta1FSGroupStrategyOptions)
-> Value
-> Parser ExtensionsV1beta1FSGroupStrategyOptions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [ExtensionsV1beta1IDRange]
-> Maybe Text -> ExtensionsV1beta1FSGroupStrategyOptions
ExtensionsV1beta1FSGroupStrategyOptions
      (Maybe [ExtensionsV1beta1IDRange]
 -> Maybe Text -> ExtensionsV1beta1FSGroupStrategyOptions)
-> Parser (Maybe [ExtensionsV1beta1IDRange])
-> Parser (Maybe Text -> ExtensionsV1beta1FSGroupStrategyOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [ExtensionsV1beta1IDRange])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ranges")
      Parser (Maybe Text -> ExtensionsV1beta1FSGroupStrategyOptions)
-> Parser (Maybe Text)
-> Parser ExtensionsV1beta1FSGroupStrategyOptions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rule")

-- | ToJSON ExtensionsV1beta1FSGroupStrategyOptions
instance A.ToJSON ExtensionsV1beta1FSGroupStrategyOptions where
  toJSON :: ExtensionsV1beta1FSGroupStrategyOptions -> Value
toJSON ExtensionsV1beta1FSGroupStrategyOptions {Maybe [ExtensionsV1beta1IDRange]
Maybe Text
extensionsV1beta1FSGroupStrategyOptionsRule :: Maybe Text
extensionsV1beta1FSGroupStrategyOptionsRanges :: Maybe [ExtensionsV1beta1IDRange]
extensionsV1beta1FSGroupStrategyOptionsRule :: ExtensionsV1beta1FSGroupStrategyOptions -> Maybe Text
extensionsV1beta1FSGroupStrategyOptionsRanges :: ExtensionsV1beta1FSGroupStrategyOptions
-> Maybe [ExtensionsV1beta1IDRange]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"ranges" Text -> Maybe [ExtensionsV1beta1IDRange] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [ExtensionsV1beta1IDRange]
extensionsV1beta1FSGroupStrategyOptionsRanges
      , Text
"rule" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1FSGroupStrategyOptionsRule
      ]


-- | Construct a value of type 'ExtensionsV1beta1FSGroupStrategyOptions' (by applying it's required fields, if any)
mkExtensionsV1beta1FSGroupStrategyOptions
  :: ExtensionsV1beta1FSGroupStrategyOptions
mkExtensionsV1beta1FSGroupStrategyOptions :: ExtensionsV1beta1FSGroupStrategyOptions
mkExtensionsV1beta1FSGroupStrategyOptions =
  ExtensionsV1beta1FSGroupStrategyOptions :: Maybe [ExtensionsV1beta1IDRange]
-> Maybe Text -> ExtensionsV1beta1FSGroupStrategyOptions
ExtensionsV1beta1FSGroupStrategyOptions
  { extensionsV1beta1FSGroupStrategyOptionsRanges :: Maybe [ExtensionsV1beta1IDRange]
extensionsV1beta1FSGroupStrategyOptionsRanges = Maybe [ExtensionsV1beta1IDRange]
forall a. Maybe a
Nothing
  , extensionsV1beta1FSGroupStrategyOptionsRule :: Maybe Text
extensionsV1beta1FSGroupStrategyOptionsRule = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1HTTPIngressPath
-- | ExtensionsV1beta1HTTPIngressPath
-- HTTPIngressPath associates a path regex with a backend. Incoming urls matching the path are forwarded to the backend.
data ExtensionsV1beta1HTTPIngressPath = ExtensionsV1beta1HTTPIngressPath
  { ExtensionsV1beta1HTTPIngressPath -> ExtensionsV1beta1IngressBackend
extensionsV1beta1HTTPIngressPathBackend :: !(ExtensionsV1beta1IngressBackend) -- ^ /Required/ "backend"
  , ExtensionsV1beta1HTTPIngressPath -> Maybe Text
extensionsV1beta1HTTPIngressPathPath :: !(Maybe Text) -- ^ "path" - Path is an extended POSIX regex as defined by IEEE Std 1003.1, (i.e this follows the egrep/unix syntax, not the perl syntax) matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \&quot;path\&quot; part of a URL as defined by RFC 3986. Paths must begin with a &#39;/&#39;. If unspecified, the path defaults to a catch all sending traffic to the backend.
  } deriving (Int -> ExtensionsV1beta1HTTPIngressPath -> ShowS
[ExtensionsV1beta1HTTPIngressPath] -> ShowS
ExtensionsV1beta1HTTPIngressPath -> String
(Int -> ExtensionsV1beta1HTTPIngressPath -> ShowS)
-> (ExtensionsV1beta1HTTPIngressPath -> String)
-> ([ExtensionsV1beta1HTTPIngressPath] -> ShowS)
-> Show ExtensionsV1beta1HTTPIngressPath
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1HTTPIngressPath] -> ShowS
$cshowList :: [ExtensionsV1beta1HTTPIngressPath] -> ShowS
show :: ExtensionsV1beta1HTTPIngressPath -> String
$cshow :: ExtensionsV1beta1HTTPIngressPath -> String
showsPrec :: Int -> ExtensionsV1beta1HTTPIngressPath -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1HTTPIngressPath -> ShowS
P.Show, ExtensionsV1beta1HTTPIngressPath
-> ExtensionsV1beta1HTTPIngressPath -> Bool
(ExtensionsV1beta1HTTPIngressPath
 -> ExtensionsV1beta1HTTPIngressPath -> Bool)
-> (ExtensionsV1beta1HTTPIngressPath
    -> ExtensionsV1beta1HTTPIngressPath -> Bool)
-> Eq ExtensionsV1beta1HTTPIngressPath
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1HTTPIngressPath
-> ExtensionsV1beta1HTTPIngressPath -> Bool
$c/= :: ExtensionsV1beta1HTTPIngressPath
-> ExtensionsV1beta1HTTPIngressPath -> Bool
== :: ExtensionsV1beta1HTTPIngressPath
-> ExtensionsV1beta1HTTPIngressPath -> Bool
$c== :: ExtensionsV1beta1HTTPIngressPath
-> ExtensionsV1beta1HTTPIngressPath -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1HTTPIngressPath
instance A.FromJSON ExtensionsV1beta1HTTPIngressPath where
  parseJSON :: Value -> Parser ExtensionsV1beta1HTTPIngressPath
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1HTTPIngressPath)
-> Value
-> Parser ExtensionsV1beta1HTTPIngressPath
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1HTTPIngressPath" ((Object -> Parser ExtensionsV1beta1HTTPIngressPath)
 -> Value -> Parser ExtensionsV1beta1HTTPIngressPath)
-> (Object -> Parser ExtensionsV1beta1HTTPIngressPath)
-> Value
-> Parser ExtensionsV1beta1HTTPIngressPath
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    ExtensionsV1beta1IngressBackend
-> Maybe Text -> ExtensionsV1beta1HTTPIngressPath
ExtensionsV1beta1HTTPIngressPath
      (ExtensionsV1beta1IngressBackend
 -> Maybe Text -> ExtensionsV1beta1HTTPIngressPath)
-> Parser ExtensionsV1beta1IngressBackend
-> Parser (Maybe Text -> ExtensionsV1beta1HTTPIngressPath)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser ExtensionsV1beta1IngressBackend
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"backend")
      Parser (Maybe Text -> ExtensionsV1beta1HTTPIngressPath)
-> Parser (Maybe Text) -> Parser ExtensionsV1beta1HTTPIngressPath
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"path")

-- | ToJSON ExtensionsV1beta1HTTPIngressPath
instance A.ToJSON ExtensionsV1beta1HTTPIngressPath where
  toJSON :: ExtensionsV1beta1HTTPIngressPath -> Value
toJSON ExtensionsV1beta1HTTPIngressPath {Maybe Text
ExtensionsV1beta1IngressBackend
extensionsV1beta1HTTPIngressPathPath :: Maybe Text
extensionsV1beta1HTTPIngressPathBackend :: ExtensionsV1beta1IngressBackend
extensionsV1beta1HTTPIngressPathPath :: ExtensionsV1beta1HTTPIngressPath -> Maybe Text
extensionsV1beta1HTTPIngressPathBackend :: ExtensionsV1beta1HTTPIngressPath -> ExtensionsV1beta1IngressBackend
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"backend" Text -> ExtensionsV1beta1IngressBackend -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= ExtensionsV1beta1IngressBackend
extensionsV1beta1HTTPIngressPathBackend
      , Text
"path" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1HTTPIngressPathPath
      ]


-- | Construct a value of type 'ExtensionsV1beta1HTTPIngressPath' (by applying it's required fields, if any)
mkExtensionsV1beta1HTTPIngressPath
  :: ExtensionsV1beta1IngressBackend -- ^ 'extensionsV1beta1HTTPIngressPathBackend' 
  -> ExtensionsV1beta1HTTPIngressPath
mkExtensionsV1beta1HTTPIngressPath :: ExtensionsV1beta1IngressBackend -> ExtensionsV1beta1HTTPIngressPath
mkExtensionsV1beta1HTTPIngressPath ExtensionsV1beta1IngressBackend
extensionsV1beta1HTTPIngressPathBackend =
  ExtensionsV1beta1HTTPIngressPath :: ExtensionsV1beta1IngressBackend
-> Maybe Text -> ExtensionsV1beta1HTTPIngressPath
ExtensionsV1beta1HTTPIngressPath
  { ExtensionsV1beta1IngressBackend
extensionsV1beta1HTTPIngressPathBackend :: ExtensionsV1beta1IngressBackend
extensionsV1beta1HTTPIngressPathBackend :: ExtensionsV1beta1IngressBackend
extensionsV1beta1HTTPIngressPathBackend
  , extensionsV1beta1HTTPIngressPathPath :: Maybe Text
extensionsV1beta1HTTPIngressPathPath = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1HTTPIngressRuleValue
-- | ExtensionsV1beta1HTTPIngressRuleValue
-- HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://<host>/<path>?<searchpart> -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.
data ExtensionsV1beta1HTTPIngressRuleValue = ExtensionsV1beta1HTTPIngressRuleValue
  { ExtensionsV1beta1HTTPIngressRuleValue
-> [ExtensionsV1beta1HTTPIngressPath]
extensionsV1beta1HTTPIngressRuleValuePaths :: !([ExtensionsV1beta1HTTPIngressPath]) -- ^ /Required/ "paths" - A collection of paths that map requests to backends.
  } deriving (Int -> ExtensionsV1beta1HTTPIngressRuleValue -> ShowS
[ExtensionsV1beta1HTTPIngressRuleValue] -> ShowS
ExtensionsV1beta1HTTPIngressRuleValue -> String
(Int -> ExtensionsV1beta1HTTPIngressRuleValue -> ShowS)
-> (ExtensionsV1beta1HTTPIngressRuleValue -> String)
-> ([ExtensionsV1beta1HTTPIngressRuleValue] -> ShowS)
-> Show ExtensionsV1beta1HTTPIngressRuleValue
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1HTTPIngressRuleValue] -> ShowS
$cshowList :: [ExtensionsV1beta1HTTPIngressRuleValue] -> ShowS
show :: ExtensionsV1beta1HTTPIngressRuleValue -> String
$cshow :: ExtensionsV1beta1HTTPIngressRuleValue -> String
showsPrec :: Int -> ExtensionsV1beta1HTTPIngressRuleValue -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1HTTPIngressRuleValue -> ShowS
P.Show, ExtensionsV1beta1HTTPIngressRuleValue
-> ExtensionsV1beta1HTTPIngressRuleValue -> Bool
(ExtensionsV1beta1HTTPIngressRuleValue
 -> ExtensionsV1beta1HTTPIngressRuleValue -> Bool)
-> (ExtensionsV1beta1HTTPIngressRuleValue
    -> ExtensionsV1beta1HTTPIngressRuleValue -> Bool)
-> Eq ExtensionsV1beta1HTTPIngressRuleValue
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1HTTPIngressRuleValue
-> ExtensionsV1beta1HTTPIngressRuleValue -> Bool
$c/= :: ExtensionsV1beta1HTTPIngressRuleValue
-> ExtensionsV1beta1HTTPIngressRuleValue -> Bool
== :: ExtensionsV1beta1HTTPIngressRuleValue
-> ExtensionsV1beta1HTTPIngressRuleValue -> Bool
$c== :: ExtensionsV1beta1HTTPIngressRuleValue
-> ExtensionsV1beta1HTTPIngressRuleValue -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1HTTPIngressRuleValue
instance A.FromJSON ExtensionsV1beta1HTTPIngressRuleValue where
  parseJSON :: Value -> Parser ExtensionsV1beta1HTTPIngressRuleValue
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1HTTPIngressRuleValue)
-> Value
-> Parser ExtensionsV1beta1HTTPIngressRuleValue
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1HTTPIngressRuleValue" ((Object -> Parser ExtensionsV1beta1HTTPIngressRuleValue)
 -> Value -> Parser ExtensionsV1beta1HTTPIngressRuleValue)
-> (Object -> Parser ExtensionsV1beta1HTTPIngressRuleValue)
-> Value
-> Parser ExtensionsV1beta1HTTPIngressRuleValue
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    [ExtensionsV1beta1HTTPIngressPath]
-> ExtensionsV1beta1HTTPIngressRuleValue
ExtensionsV1beta1HTTPIngressRuleValue
      ([ExtensionsV1beta1HTTPIngressPath]
 -> ExtensionsV1beta1HTTPIngressRuleValue)
-> Parser [ExtensionsV1beta1HTTPIngressPath]
-> Parser ExtensionsV1beta1HTTPIngressRuleValue
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser [ExtensionsV1beta1HTTPIngressPath]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"paths")

-- | ToJSON ExtensionsV1beta1HTTPIngressRuleValue
instance A.ToJSON ExtensionsV1beta1HTTPIngressRuleValue where
  toJSON :: ExtensionsV1beta1HTTPIngressRuleValue -> Value
toJSON ExtensionsV1beta1HTTPIngressRuleValue {[ExtensionsV1beta1HTTPIngressPath]
extensionsV1beta1HTTPIngressRuleValuePaths :: [ExtensionsV1beta1HTTPIngressPath]
extensionsV1beta1HTTPIngressRuleValuePaths :: ExtensionsV1beta1HTTPIngressRuleValue
-> [ExtensionsV1beta1HTTPIngressPath]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"paths" Text -> [ExtensionsV1beta1HTTPIngressPath] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [ExtensionsV1beta1HTTPIngressPath]
extensionsV1beta1HTTPIngressRuleValuePaths
      ]


-- | Construct a value of type 'ExtensionsV1beta1HTTPIngressRuleValue' (by applying it's required fields, if any)
mkExtensionsV1beta1HTTPIngressRuleValue
  :: [ExtensionsV1beta1HTTPIngressPath] -- ^ 'extensionsV1beta1HTTPIngressRuleValuePaths': A collection of paths that map requests to backends.
  -> ExtensionsV1beta1HTTPIngressRuleValue
mkExtensionsV1beta1HTTPIngressRuleValue :: [ExtensionsV1beta1HTTPIngressPath]
-> ExtensionsV1beta1HTTPIngressRuleValue
mkExtensionsV1beta1HTTPIngressRuleValue [ExtensionsV1beta1HTTPIngressPath]
extensionsV1beta1HTTPIngressRuleValuePaths =
  ExtensionsV1beta1HTTPIngressRuleValue :: [ExtensionsV1beta1HTTPIngressPath]
-> ExtensionsV1beta1HTTPIngressRuleValue
ExtensionsV1beta1HTTPIngressRuleValue
  { [ExtensionsV1beta1HTTPIngressPath]
extensionsV1beta1HTTPIngressRuleValuePaths :: [ExtensionsV1beta1HTTPIngressPath]
extensionsV1beta1HTTPIngressRuleValuePaths :: [ExtensionsV1beta1HTTPIngressPath]
extensionsV1beta1HTTPIngressRuleValuePaths
  }

-- ** ExtensionsV1beta1HostPortRange
-- | ExtensionsV1beta1HostPortRange
-- HostPortRange defines a range of host ports that will be enabled by a policy for pods to use.  It requires both the start and end to be defined. Deprecated: use HostPortRange from policy API Group instead.
data ExtensionsV1beta1HostPortRange = ExtensionsV1beta1HostPortRange
  { ExtensionsV1beta1HostPortRange -> Int
extensionsV1beta1HostPortRangeMax :: !(Int) -- ^ /Required/ "max" - max is the end of the range, inclusive.
  , ExtensionsV1beta1HostPortRange -> Int
extensionsV1beta1HostPortRangeMin :: !(Int) -- ^ /Required/ "min" - min is the start of the range, inclusive.
  } deriving (Int -> ExtensionsV1beta1HostPortRange -> ShowS
[ExtensionsV1beta1HostPortRange] -> ShowS
ExtensionsV1beta1HostPortRange -> String
(Int -> ExtensionsV1beta1HostPortRange -> ShowS)
-> (ExtensionsV1beta1HostPortRange -> String)
-> ([ExtensionsV1beta1HostPortRange] -> ShowS)
-> Show ExtensionsV1beta1HostPortRange
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1HostPortRange] -> ShowS
$cshowList :: [ExtensionsV1beta1HostPortRange] -> ShowS
show :: ExtensionsV1beta1HostPortRange -> String
$cshow :: ExtensionsV1beta1HostPortRange -> String
showsPrec :: Int -> ExtensionsV1beta1HostPortRange -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1HostPortRange -> ShowS
P.Show, ExtensionsV1beta1HostPortRange
-> ExtensionsV1beta1HostPortRange -> Bool
(ExtensionsV1beta1HostPortRange
 -> ExtensionsV1beta1HostPortRange -> Bool)
-> (ExtensionsV1beta1HostPortRange
    -> ExtensionsV1beta1HostPortRange -> Bool)
-> Eq ExtensionsV1beta1HostPortRange
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1HostPortRange
-> ExtensionsV1beta1HostPortRange -> Bool
$c/= :: ExtensionsV1beta1HostPortRange
-> ExtensionsV1beta1HostPortRange -> Bool
== :: ExtensionsV1beta1HostPortRange
-> ExtensionsV1beta1HostPortRange -> Bool
$c== :: ExtensionsV1beta1HostPortRange
-> ExtensionsV1beta1HostPortRange -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1HostPortRange
instance A.FromJSON ExtensionsV1beta1HostPortRange where
  parseJSON :: Value -> Parser ExtensionsV1beta1HostPortRange
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1HostPortRange)
-> Value
-> Parser ExtensionsV1beta1HostPortRange
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1HostPortRange" ((Object -> Parser ExtensionsV1beta1HostPortRange)
 -> Value -> Parser ExtensionsV1beta1HostPortRange)
-> (Object -> Parser ExtensionsV1beta1HostPortRange)
-> Value
-> Parser ExtensionsV1beta1HostPortRange
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Int -> Int -> ExtensionsV1beta1HostPortRange
ExtensionsV1beta1HostPortRange
      (Int -> Int -> ExtensionsV1beta1HostPortRange)
-> Parser Int -> Parser (Int -> ExtensionsV1beta1HostPortRange)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"max")
      Parser (Int -> ExtensionsV1beta1HostPortRange)
-> Parser Int -> Parser ExtensionsV1beta1HostPortRange
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"min")

-- | ToJSON ExtensionsV1beta1HostPortRange
instance A.ToJSON ExtensionsV1beta1HostPortRange where
  toJSON :: ExtensionsV1beta1HostPortRange -> Value
toJSON ExtensionsV1beta1HostPortRange {Int
extensionsV1beta1HostPortRangeMin :: Int
extensionsV1beta1HostPortRangeMax :: Int
extensionsV1beta1HostPortRangeMin :: ExtensionsV1beta1HostPortRange -> Int
extensionsV1beta1HostPortRangeMax :: ExtensionsV1beta1HostPortRange -> Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"max" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
extensionsV1beta1HostPortRangeMax
      , Text
"min" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
extensionsV1beta1HostPortRangeMin
      ]


-- | Construct a value of type 'ExtensionsV1beta1HostPortRange' (by applying it's required fields, if any)
mkExtensionsV1beta1HostPortRange
  :: Int -- ^ 'extensionsV1beta1HostPortRangeMax': max is the end of the range, inclusive.
  -> Int -- ^ 'extensionsV1beta1HostPortRangeMin': min is the start of the range, inclusive.
  -> ExtensionsV1beta1HostPortRange
mkExtensionsV1beta1HostPortRange :: Int -> Int -> ExtensionsV1beta1HostPortRange
mkExtensionsV1beta1HostPortRange Int
extensionsV1beta1HostPortRangeMax Int
extensionsV1beta1HostPortRangeMin =
  ExtensionsV1beta1HostPortRange :: Int -> Int -> ExtensionsV1beta1HostPortRange
ExtensionsV1beta1HostPortRange
  { Int
extensionsV1beta1HostPortRangeMax :: Int
extensionsV1beta1HostPortRangeMax :: Int
extensionsV1beta1HostPortRangeMax
  , Int
extensionsV1beta1HostPortRangeMin :: Int
extensionsV1beta1HostPortRangeMin :: Int
extensionsV1beta1HostPortRangeMin
  }

-- ** ExtensionsV1beta1IDRange
-- | ExtensionsV1beta1IDRange
-- IDRange provides a min/max of an allowed range of IDs. Deprecated: use IDRange from policy API Group instead.
data ExtensionsV1beta1IDRange = ExtensionsV1beta1IDRange
  { ExtensionsV1beta1IDRange -> Integer
extensionsV1beta1IDRangeMax :: !(Integer) -- ^ /Required/ "max" - max is the end of the range, inclusive.
  , ExtensionsV1beta1IDRange -> Integer
extensionsV1beta1IDRangeMin :: !(Integer) -- ^ /Required/ "min" - min is the start of the range, inclusive.
  } deriving (Int -> ExtensionsV1beta1IDRange -> ShowS
[ExtensionsV1beta1IDRange] -> ShowS
ExtensionsV1beta1IDRange -> String
(Int -> ExtensionsV1beta1IDRange -> ShowS)
-> (ExtensionsV1beta1IDRange -> String)
-> ([ExtensionsV1beta1IDRange] -> ShowS)
-> Show ExtensionsV1beta1IDRange
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1IDRange] -> ShowS
$cshowList :: [ExtensionsV1beta1IDRange] -> ShowS
show :: ExtensionsV1beta1IDRange -> String
$cshow :: ExtensionsV1beta1IDRange -> String
showsPrec :: Int -> ExtensionsV1beta1IDRange -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1IDRange -> ShowS
P.Show, ExtensionsV1beta1IDRange -> ExtensionsV1beta1IDRange -> Bool
(ExtensionsV1beta1IDRange -> ExtensionsV1beta1IDRange -> Bool)
-> (ExtensionsV1beta1IDRange -> ExtensionsV1beta1IDRange -> Bool)
-> Eq ExtensionsV1beta1IDRange
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1IDRange -> ExtensionsV1beta1IDRange -> Bool
$c/= :: ExtensionsV1beta1IDRange -> ExtensionsV1beta1IDRange -> Bool
== :: ExtensionsV1beta1IDRange -> ExtensionsV1beta1IDRange -> Bool
$c== :: ExtensionsV1beta1IDRange -> ExtensionsV1beta1IDRange -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1IDRange
instance A.FromJSON ExtensionsV1beta1IDRange where
  parseJSON :: Value -> Parser ExtensionsV1beta1IDRange
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1IDRange)
-> Value
-> Parser ExtensionsV1beta1IDRange
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1IDRange" ((Object -> Parser ExtensionsV1beta1IDRange)
 -> Value -> Parser ExtensionsV1beta1IDRange)
-> (Object -> Parser ExtensionsV1beta1IDRange)
-> Value
-> Parser ExtensionsV1beta1IDRange
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Integer -> Integer -> ExtensionsV1beta1IDRange
ExtensionsV1beta1IDRange
      (Integer -> Integer -> ExtensionsV1beta1IDRange)
-> Parser Integer -> Parser (Integer -> ExtensionsV1beta1IDRange)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Integer
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"max")
      Parser (Integer -> ExtensionsV1beta1IDRange)
-> Parser Integer -> Parser ExtensionsV1beta1IDRange
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Integer
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"min")

-- | ToJSON ExtensionsV1beta1IDRange
instance A.ToJSON ExtensionsV1beta1IDRange where
  toJSON :: ExtensionsV1beta1IDRange -> Value
toJSON ExtensionsV1beta1IDRange {Integer
extensionsV1beta1IDRangeMin :: Integer
extensionsV1beta1IDRangeMax :: Integer
extensionsV1beta1IDRangeMin :: ExtensionsV1beta1IDRange -> Integer
extensionsV1beta1IDRangeMax :: ExtensionsV1beta1IDRange -> Integer
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"max" Text -> Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Integer
extensionsV1beta1IDRangeMax
      , Text
"min" Text -> Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Integer
extensionsV1beta1IDRangeMin
      ]


-- | Construct a value of type 'ExtensionsV1beta1IDRange' (by applying it's required fields, if any)
mkExtensionsV1beta1IDRange
  :: Integer -- ^ 'extensionsV1beta1IDRangeMax': max is the end of the range, inclusive.
  -> Integer -- ^ 'extensionsV1beta1IDRangeMin': min is the start of the range, inclusive.
  -> ExtensionsV1beta1IDRange
mkExtensionsV1beta1IDRange :: Integer -> Integer -> ExtensionsV1beta1IDRange
mkExtensionsV1beta1IDRange Integer
extensionsV1beta1IDRangeMax Integer
extensionsV1beta1IDRangeMin =
  ExtensionsV1beta1IDRange :: Integer -> Integer -> ExtensionsV1beta1IDRange
ExtensionsV1beta1IDRange
  { Integer
extensionsV1beta1IDRangeMax :: Integer
extensionsV1beta1IDRangeMax :: Integer
extensionsV1beta1IDRangeMax
  , Integer
extensionsV1beta1IDRangeMin :: Integer
extensionsV1beta1IDRangeMin :: Integer
extensionsV1beta1IDRangeMin
  }

-- ** ExtensionsV1beta1Ingress
-- | ExtensionsV1beta1Ingress
-- Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.
data ExtensionsV1beta1Ingress = ExtensionsV1beta1Ingress
  { ExtensionsV1beta1Ingress -> Maybe Text
extensionsV1beta1IngressApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , ExtensionsV1beta1Ingress -> Maybe Text
extensionsV1beta1IngressKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , ExtensionsV1beta1Ingress -> Maybe V1ObjectMeta
extensionsV1beta1IngressMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , ExtensionsV1beta1Ingress -> Maybe ExtensionsV1beta1IngressSpec
extensionsV1beta1IngressSpec :: !(Maybe ExtensionsV1beta1IngressSpec) -- ^ "spec"
  , ExtensionsV1beta1Ingress -> Maybe ExtensionsV1beta1IngressStatus
extensionsV1beta1IngressStatus :: !(Maybe ExtensionsV1beta1IngressStatus) -- ^ "status"
  } deriving (Int -> ExtensionsV1beta1Ingress -> ShowS
[ExtensionsV1beta1Ingress] -> ShowS
ExtensionsV1beta1Ingress -> String
(Int -> ExtensionsV1beta1Ingress -> ShowS)
-> (ExtensionsV1beta1Ingress -> String)
-> ([ExtensionsV1beta1Ingress] -> ShowS)
-> Show ExtensionsV1beta1Ingress
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1Ingress] -> ShowS
$cshowList :: [ExtensionsV1beta1Ingress] -> ShowS
show :: ExtensionsV1beta1Ingress -> String
$cshow :: ExtensionsV1beta1Ingress -> String
showsPrec :: Int -> ExtensionsV1beta1Ingress -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1Ingress -> ShowS
P.Show, ExtensionsV1beta1Ingress -> ExtensionsV1beta1Ingress -> Bool
(ExtensionsV1beta1Ingress -> ExtensionsV1beta1Ingress -> Bool)
-> (ExtensionsV1beta1Ingress -> ExtensionsV1beta1Ingress -> Bool)
-> Eq ExtensionsV1beta1Ingress
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1Ingress -> ExtensionsV1beta1Ingress -> Bool
$c/= :: ExtensionsV1beta1Ingress -> ExtensionsV1beta1Ingress -> Bool
== :: ExtensionsV1beta1Ingress -> ExtensionsV1beta1Ingress -> Bool
$c== :: ExtensionsV1beta1Ingress -> ExtensionsV1beta1Ingress -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1Ingress
instance A.FromJSON ExtensionsV1beta1Ingress where
  parseJSON :: Value -> Parser ExtensionsV1beta1Ingress
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1Ingress)
-> Value
-> Parser ExtensionsV1beta1Ingress
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1Ingress" ((Object -> Parser ExtensionsV1beta1Ingress)
 -> Value -> Parser ExtensionsV1beta1Ingress)
-> (Object -> Parser ExtensionsV1beta1Ingress)
-> Value
-> Parser ExtensionsV1beta1Ingress
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe ExtensionsV1beta1IngressSpec
-> Maybe ExtensionsV1beta1IngressStatus
-> ExtensionsV1beta1Ingress
ExtensionsV1beta1Ingress
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe ExtensionsV1beta1IngressSpec
 -> Maybe ExtensionsV1beta1IngressStatus
 -> ExtensionsV1beta1Ingress)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe ExtensionsV1beta1IngressSpec
      -> Maybe ExtensionsV1beta1IngressStatus
      -> ExtensionsV1beta1Ingress)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe ExtensionsV1beta1IngressSpec
   -> Maybe ExtensionsV1beta1IngressStatus
   -> ExtensionsV1beta1Ingress)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe ExtensionsV1beta1IngressSpec
      -> Maybe ExtensionsV1beta1IngressStatus
      -> ExtensionsV1beta1Ingress)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe ExtensionsV1beta1IngressSpec
   -> Maybe ExtensionsV1beta1IngressStatus
   -> ExtensionsV1beta1Ingress)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe ExtensionsV1beta1IngressSpec
      -> Maybe ExtensionsV1beta1IngressStatus
      -> ExtensionsV1beta1Ingress)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe ExtensionsV1beta1IngressSpec
   -> Maybe ExtensionsV1beta1IngressStatus
   -> ExtensionsV1beta1Ingress)
-> Parser (Maybe ExtensionsV1beta1IngressSpec)
-> Parser
     (Maybe ExtensionsV1beta1IngressStatus -> ExtensionsV1beta1Ingress)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe ExtensionsV1beta1IngressSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser
  (Maybe ExtensionsV1beta1IngressStatus -> ExtensionsV1beta1Ingress)
-> Parser (Maybe ExtensionsV1beta1IngressStatus)
-> Parser ExtensionsV1beta1Ingress
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe ExtensionsV1beta1IngressStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON ExtensionsV1beta1Ingress
instance A.ToJSON ExtensionsV1beta1Ingress where
  toJSON :: ExtensionsV1beta1Ingress -> Value
toJSON ExtensionsV1beta1Ingress {Maybe Text
Maybe V1ObjectMeta
Maybe ExtensionsV1beta1IngressStatus
Maybe ExtensionsV1beta1IngressSpec
extensionsV1beta1IngressStatus :: Maybe ExtensionsV1beta1IngressStatus
extensionsV1beta1IngressSpec :: Maybe ExtensionsV1beta1IngressSpec
extensionsV1beta1IngressMetadata :: Maybe V1ObjectMeta
extensionsV1beta1IngressKind :: Maybe Text
extensionsV1beta1IngressApiVersion :: Maybe Text
extensionsV1beta1IngressStatus :: ExtensionsV1beta1Ingress -> Maybe ExtensionsV1beta1IngressStatus
extensionsV1beta1IngressSpec :: ExtensionsV1beta1Ingress -> Maybe ExtensionsV1beta1IngressSpec
extensionsV1beta1IngressMetadata :: ExtensionsV1beta1Ingress -> Maybe V1ObjectMeta
extensionsV1beta1IngressKind :: ExtensionsV1beta1Ingress -> Maybe Text
extensionsV1beta1IngressApiVersion :: ExtensionsV1beta1Ingress -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1IngressApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1IngressKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
extensionsV1beta1IngressMetadata
      , Text
"spec" Text -> Maybe ExtensionsV1beta1IngressSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ExtensionsV1beta1IngressSpec
extensionsV1beta1IngressSpec
      , Text
"status" Text -> Maybe ExtensionsV1beta1IngressStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ExtensionsV1beta1IngressStatus
extensionsV1beta1IngressStatus
      ]


-- | Construct a value of type 'ExtensionsV1beta1Ingress' (by applying it's required fields, if any)
mkExtensionsV1beta1Ingress
  :: ExtensionsV1beta1Ingress
mkExtensionsV1beta1Ingress :: ExtensionsV1beta1Ingress
mkExtensionsV1beta1Ingress =
  ExtensionsV1beta1Ingress :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe ExtensionsV1beta1IngressSpec
-> Maybe ExtensionsV1beta1IngressStatus
-> ExtensionsV1beta1Ingress
ExtensionsV1beta1Ingress
  { extensionsV1beta1IngressApiVersion :: Maybe Text
extensionsV1beta1IngressApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , extensionsV1beta1IngressKind :: Maybe Text
extensionsV1beta1IngressKind = Maybe Text
forall a. Maybe a
Nothing
  , extensionsV1beta1IngressMetadata :: Maybe V1ObjectMeta
extensionsV1beta1IngressMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , extensionsV1beta1IngressSpec :: Maybe ExtensionsV1beta1IngressSpec
extensionsV1beta1IngressSpec = Maybe ExtensionsV1beta1IngressSpec
forall a. Maybe a
Nothing
  , extensionsV1beta1IngressStatus :: Maybe ExtensionsV1beta1IngressStatus
extensionsV1beta1IngressStatus = Maybe ExtensionsV1beta1IngressStatus
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1IngressBackend
-- | ExtensionsV1beta1IngressBackend
-- IngressBackend describes all endpoints for a given service and port.
data ExtensionsV1beta1IngressBackend = ExtensionsV1beta1IngressBackend
  { ExtensionsV1beta1IngressBackend -> Text
extensionsV1beta1IngressBackendServiceName :: !(Text) -- ^ /Required/ "serviceName" - Specifies the name of the referenced service.
  , ExtensionsV1beta1IngressBackend -> IntOrString
extensionsV1beta1IngressBackendServicePort :: !(IntOrString) -- ^ /Required/ "servicePort"
  } deriving (Int -> ExtensionsV1beta1IngressBackend -> ShowS
[ExtensionsV1beta1IngressBackend] -> ShowS
ExtensionsV1beta1IngressBackend -> String
(Int -> ExtensionsV1beta1IngressBackend -> ShowS)
-> (ExtensionsV1beta1IngressBackend -> String)
-> ([ExtensionsV1beta1IngressBackend] -> ShowS)
-> Show ExtensionsV1beta1IngressBackend
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1IngressBackend] -> ShowS
$cshowList :: [ExtensionsV1beta1IngressBackend] -> ShowS
show :: ExtensionsV1beta1IngressBackend -> String
$cshow :: ExtensionsV1beta1IngressBackend -> String
showsPrec :: Int -> ExtensionsV1beta1IngressBackend -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1IngressBackend -> ShowS
P.Show, ExtensionsV1beta1IngressBackend
-> ExtensionsV1beta1IngressBackend -> Bool
(ExtensionsV1beta1IngressBackend
 -> ExtensionsV1beta1IngressBackend -> Bool)
-> (ExtensionsV1beta1IngressBackend
    -> ExtensionsV1beta1IngressBackend -> Bool)
-> Eq ExtensionsV1beta1IngressBackend
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1IngressBackend
-> ExtensionsV1beta1IngressBackend -> Bool
$c/= :: ExtensionsV1beta1IngressBackend
-> ExtensionsV1beta1IngressBackend -> Bool
== :: ExtensionsV1beta1IngressBackend
-> ExtensionsV1beta1IngressBackend -> Bool
$c== :: ExtensionsV1beta1IngressBackend
-> ExtensionsV1beta1IngressBackend -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1IngressBackend
instance A.FromJSON ExtensionsV1beta1IngressBackend where
  parseJSON :: Value -> Parser ExtensionsV1beta1IngressBackend
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1IngressBackend)
-> Value
-> Parser ExtensionsV1beta1IngressBackend
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1IngressBackend" ((Object -> Parser ExtensionsV1beta1IngressBackend)
 -> Value -> Parser ExtensionsV1beta1IngressBackend)
-> (Object -> Parser ExtensionsV1beta1IngressBackend)
-> Value
-> Parser ExtensionsV1beta1IngressBackend
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> IntOrString -> ExtensionsV1beta1IngressBackend
ExtensionsV1beta1IngressBackend
      (Text -> IntOrString -> ExtensionsV1beta1IngressBackend)
-> Parser Text
-> Parser (IntOrString -> ExtensionsV1beta1IngressBackend)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"serviceName")
      Parser (IntOrString -> ExtensionsV1beta1IngressBackend)
-> Parser IntOrString -> Parser ExtensionsV1beta1IngressBackend
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser IntOrString
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"servicePort")

-- | ToJSON ExtensionsV1beta1IngressBackend
instance A.ToJSON ExtensionsV1beta1IngressBackend where
  toJSON :: ExtensionsV1beta1IngressBackend -> Value
toJSON ExtensionsV1beta1IngressBackend {Text
IntOrString
extensionsV1beta1IngressBackendServicePort :: IntOrString
extensionsV1beta1IngressBackendServiceName :: Text
extensionsV1beta1IngressBackendServicePort :: ExtensionsV1beta1IngressBackend -> IntOrString
extensionsV1beta1IngressBackendServiceName :: ExtensionsV1beta1IngressBackend -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"serviceName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
extensionsV1beta1IngressBackendServiceName
      , Text
"servicePort" Text -> IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= IntOrString
extensionsV1beta1IngressBackendServicePort
      ]


-- | Construct a value of type 'ExtensionsV1beta1IngressBackend' (by applying it's required fields, if any)
mkExtensionsV1beta1IngressBackend
  :: Text -- ^ 'extensionsV1beta1IngressBackendServiceName': Specifies the name of the referenced service.
  -> IntOrString -- ^ 'extensionsV1beta1IngressBackendServicePort' 
  -> ExtensionsV1beta1IngressBackend
mkExtensionsV1beta1IngressBackend :: Text -> IntOrString -> ExtensionsV1beta1IngressBackend
mkExtensionsV1beta1IngressBackend Text
extensionsV1beta1IngressBackendServiceName IntOrString
extensionsV1beta1IngressBackendServicePort =
  ExtensionsV1beta1IngressBackend :: Text -> IntOrString -> ExtensionsV1beta1IngressBackend
ExtensionsV1beta1IngressBackend
  { Text
extensionsV1beta1IngressBackendServiceName :: Text
extensionsV1beta1IngressBackendServiceName :: Text
extensionsV1beta1IngressBackendServiceName
  , IntOrString
extensionsV1beta1IngressBackendServicePort :: IntOrString
extensionsV1beta1IngressBackendServicePort :: IntOrString
extensionsV1beta1IngressBackendServicePort
  }

-- ** ExtensionsV1beta1IngressList
-- | ExtensionsV1beta1IngressList
-- IngressList is a collection of Ingress.
data ExtensionsV1beta1IngressList = ExtensionsV1beta1IngressList
  { ExtensionsV1beta1IngressList -> Maybe Text
extensionsV1beta1IngressListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , ExtensionsV1beta1IngressList -> [ExtensionsV1beta1Ingress]
extensionsV1beta1IngressListItems :: !([ExtensionsV1beta1Ingress]) -- ^ /Required/ "items" - Items is the list of Ingress.
  , ExtensionsV1beta1IngressList -> Maybe Text
extensionsV1beta1IngressListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , ExtensionsV1beta1IngressList -> Maybe V1ListMeta
extensionsV1beta1IngressListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> ExtensionsV1beta1IngressList -> ShowS
[ExtensionsV1beta1IngressList] -> ShowS
ExtensionsV1beta1IngressList -> String
(Int -> ExtensionsV1beta1IngressList -> ShowS)
-> (ExtensionsV1beta1IngressList -> String)
-> ([ExtensionsV1beta1IngressList] -> ShowS)
-> Show ExtensionsV1beta1IngressList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1IngressList] -> ShowS
$cshowList :: [ExtensionsV1beta1IngressList] -> ShowS
show :: ExtensionsV1beta1IngressList -> String
$cshow :: ExtensionsV1beta1IngressList -> String
showsPrec :: Int -> ExtensionsV1beta1IngressList -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1IngressList -> ShowS
P.Show, ExtensionsV1beta1IngressList
-> ExtensionsV1beta1IngressList -> Bool
(ExtensionsV1beta1IngressList
 -> ExtensionsV1beta1IngressList -> Bool)
-> (ExtensionsV1beta1IngressList
    -> ExtensionsV1beta1IngressList -> Bool)
-> Eq ExtensionsV1beta1IngressList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1IngressList
-> ExtensionsV1beta1IngressList -> Bool
$c/= :: ExtensionsV1beta1IngressList
-> ExtensionsV1beta1IngressList -> Bool
== :: ExtensionsV1beta1IngressList
-> ExtensionsV1beta1IngressList -> Bool
$c== :: ExtensionsV1beta1IngressList
-> ExtensionsV1beta1IngressList -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1IngressList
instance A.FromJSON ExtensionsV1beta1IngressList where
  parseJSON :: Value -> Parser ExtensionsV1beta1IngressList
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1IngressList)
-> Value
-> Parser ExtensionsV1beta1IngressList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1IngressList" ((Object -> Parser ExtensionsV1beta1IngressList)
 -> Value -> Parser ExtensionsV1beta1IngressList)
-> (Object -> Parser ExtensionsV1beta1IngressList)
-> Value
-> Parser ExtensionsV1beta1IngressList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [ExtensionsV1beta1Ingress]
-> Maybe Text
-> Maybe V1ListMeta
-> ExtensionsV1beta1IngressList
ExtensionsV1beta1IngressList
      (Maybe Text
 -> [ExtensionsV1beta1Ingress]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> ExtensionsV1beta1IngressList)
-> Parser (Maybe Text)
-> Parser
     ([ExtensionsV1beta1Ingress]
      -> Maybe Text -> Maybe V1ListMeta -> ExtensionsV1beta1IngressList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([ExtensionsV1beta1Ingress]
   -> Maybe Text -> Maybe V1ListMeta -> ExtensionsV1beta1IngressList)
-> Parser [ExtensionsV1beta1Ingress]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> ExtensionsV1beta1IngressList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [ExtensionsV1beta1Ingress]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> ExtensionsV1beta1IngressList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> ExtensionsV1beta1IngressList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> ExtensionsV1beta1IngressList)
-> Parser (Maybe V1ListMeta) -> Parser ExtensionsV1beta1IngressList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON ExtensionsV1beta1IngressList
instance A.ToJSON ExtensionsV1beta1IngressList where
  toJSON :: ExtensionsV1beta1IngressList -> Value
toJSON ExtensionsV1beta1IngressList {[ExtensionsV1beta1Ingress]
Maybe Text
Maybe V1ListMeta
extensionsV1beta1IngressListMetadata :: Maybe V1ListMeta
extensionsV1beta1IngressListKind :: Maybe Text
extensionsV1beta1IngressListItems :: [ExtensionsV1beta1Ingress]
extensionsV1beta1IngressListApiVersion :: Maybe Text
extensionsV1beta1IngressListMetadata :: ExtensionsV1beta1IngressList -> Maybe V1ListMeta
extensionsV1beta1IngressListKind :: ExtensionsV1beta1IngressList -> Maybe Text
extensionsV1beta1IngressListItems :: ExtensionsV1beta1IngressList -> [ExtensionsV1beta1Ingress]
extensionsV1beta1IngressListApiVersion :: ExtensionsV1beta1IngressList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1IngressListApiVersion
      , Text
"items" Text -> [ExtensionsV1beta1Ingress] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [ExtensionsV1beta1Ingress]
extensionsV1beta1IngressListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1IngressListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
extensionsV1beta1IngressListMetadata
      ]


-- | Construct a value of type 'ExtensionsV1beta1IngressList' (by applying it's required fields, if any)
mkExtensionsV1beta1IngressList
  :: [ExtensionsV1beta1Ingress] -- ^ 'extensionsV1beta1IngressListItems': Items is the list of Ingress.
  -> ExtensionsV1beta1IngressList
mkExtensionsV1beta1IngressList :: [ExtensionsV1beta1Ingress] -> ExtensionsV1beta1IngressList
mkExtensionsV1beta1IngressList [ExtensionsV1beta1Ingress]
extensionsV1beta1IngressListItems =
  ExtensionsV1beta1IngressList :: Maybe Text
-> [ExtensionsV1beta1Ingress]
-> Maybe Text
-> Maybe V1ListMeta
-> ExtensionsV1beta1IngressList
ExtensionsV1beta1IngressList
  { extensionsV1beta1IngressListApiVersion :: Maybe Text
extensionsV1beta1IngressListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [ExtensionsV1beta1Ingress]
extensionsV1beta1IngressListItems :: [ExtensionsV1beta1Ingress]
extensionsV1beta1IngressListItems :: [ExtensionsV1beta1Ingress]
extensionsV1beta1IngressListItems
  , extensionsV1beta1IngressListKind :: Maybe Text
extensionsV1beta1IngressListKind = Maybe Text
forall a. Maybe a
Nothing
  , extensionsV1beta1IngressListMetadata :: Maybe V1ListMeta
extensionsV1beta1IngressListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1IngressRule
-- | ExtensionsV1beta1IngressRule
-- IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.
data ExtensionsV1beta1IngressRule = ExtensionsV1beta1IngressRule
  { ExtensionsV1beta1IngressRule -> Maybe Text
extensionsV1beta1IngressRuleHost :: !(Maybe Text) -- ^ "host" - Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \&quot;host\&quot; part of the URI as defined in the RFC: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the    IP in the Spec of the parent Ingress. 2. The &#x60;:&#x60; delimiter is not respected because ports are not allowed.    Currently the port of an Ingress is implicitly :80 for http and    :443 for https. Both these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.
  , ExtensionsV1beta1IngressRule
-> Maybe ExtensionsV1beta1HTTPIngressRuleValue
extensionsV1beta1IngressRuleHttp :: !(Maybe ExtensionsV1beta1HTTPIngressRuleValue) -- ^ "http"
  } deriving (Int -> ExtensionsV1beta1IngressRule -> ShowS
[ExtensionsV1beta1IngressRule] -> ShowS
ExtensionsV1beta1IngressRule -> String
(Int -> ExtensionsV1beta1IngressRule -> ShowS)
-> (ExtensionsV1beta1IngressRule -> String)
-> ([ExtensionsV1beta1IngressRule] -> ShowS)
-> Show ExtensionsV1beta1IngressRule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1IngressRule] -> ShowS
$cshowList :: [ExtensionsV1beta1IngressRule] -> ShowS
show :: ExtensionsV1beta1IngressRule -> String
$cshow :: ExtensionsV1beta1IngressRule -> String
showsPrec :: Int -> ExtensionsV1beta1IngressRule -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1IngressRule -> ShowS
P.Show, ExtensionsV1beta1IngressRule
-> ExtensionsV1beta1IngressRule -> Bool
(ExtensionsV1beta1IngressRule
 -> ExtensionsV1beta1IngressRule -> Bool)
-> (ExtensionsV1beta1IngressRule
    -> ExtensionsV1beta1IngressRule -> Bool)
-> Eq ExtensionsV1beta1IngressRule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1IngressRule
-> ExtensionsV1beta1IngressRule -> Bool
$c/= :: ExtensionsV1beta1IngressRule
-> ExtensionsV1beta1IngressRule -> Bool
== :: ExtensionsV1beta1IngressRule
-> ExtensionsV1beta1IngressRule -> Bool
$c== :: ExtensionsV1beta1IngressRule
-> ExtensionsV1beta1IngressRule -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1IngressRule
instance A.FromJSON ExtensionsV1beta1IngressRule where
  parseJSON :: Value -> Parser ExtensionsV1beta1IngressRule
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1IngressRule)
-> Value
-> Parser ExtensionsV1beta1IngressRule
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1IngressRule" ((Object -> Parser ExtensionsV1beta1IngressRule)
 -> Value -> Parser ExtensionsV1beta1IngressRule)
-> (Object -> Parser ExtensionsV1beta1IngressRule)
-> Value
-> Parser ExtensionsV1beta1IngressRule
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe ExtensionsV1beta1HTTPIngressRuleValue
-> ExtensionsV1beta1IngressRule
ExtensionsV1beta1IngressRule
      (Maybe Text
 -> Maybe ExtensionsV1beta1HTTPIngressRuleValue
 -> ExtensionsV1beta1IngressRule)
-> Parser (Maybe Text)
-> Parser
     (Maybe ExtensionsV1beta1HTTPIngressRuleValue
      -> ExtensionsV1beta1IngressRule)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"host")
      Parser
  (Maybe ExtensionsV1beta1HTTPIngressRuleValue
   -> ExtensionsV1beta1IngressRule)
-> Parser (Maybe ExtensionsV1beta1HTTPIngressRuleValue)
-> Parser ExtensionsV1beta1IngressRule
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe ExtensionsV1beta1HTTPIngressRuleValue)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"http")

-- | ToJSON ExtensionsV1beta1IngressRule
instance A.ToJSON ExtensionsV1beta1IngressRule where
  toJSON :: ExtensionsV1beta1IngressRule -> Value
toJSON ExtensionsV1beta1IngressRule {Maybe Text
Maybe ExtensionsV1beta1HTTPIngressRuleValue
extensionsV1beta1IngressRuleHttp :: Maybe ExtensionsV1beta1HTTPIngressRuleValue
extensionsV1beta1IngressRuleHost :: Maybe Text
extensionsV1beta1IngressRuleHttp :: ExtensionsV1beta1IngressRule
-> Maybe ExtensionsV1beta1HTTPIngressRuleValue
extensionsV1beta1IngressRuleHost :: ExtensionsV1beta1IngressRule -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"host" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1IngressRuleHost
      , Text
"http" Text
-> Maybe ExtensionsV1beta1HTTPIngressRuleValue -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ExtensionsV1beta1HTTPIngressRuleValue
extensionsV1beta1IngressRuleHttp
      ]


-- | Construct a value of type 'ExtensionsV1beta1IngressRule' (by applying it's required fields, if any)
mkExtensionsV1beta1IngressRule
  :: ExtensionsV1beta1IngressRule
mkExtensionsV1beta1IngressRule :: ExtensionsV1beta1IngressRule
mkExtensionsV1beta1IngressRule =
  ExtensionsV1beta1IngressRule :: Maybe Text
-> Maybe ExtensionsV1beta1HTTPIngressRuleValue
-> ExtensionsV1beta1IngressRule
ExtensionsV1beta1IngressRule
  { extensionsV1beta1IngressRuleHost :: Maybe Text
extensionsV1beta1IngressRuleHost = Maybe Text
forall a. Maybe a
Nothing
  , extensionsV1beta1IngressRuleHttp :: Maybe ExtensionsV1beta1HTTPIngressRuleValue
extensionsV1beta1IngressRuleHttp = Maybe ExtensionsV1beta1HTTPIngressRuleValue
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1IngressSpec
-- | ExtensionsV1beta1IngressSpec
-- IngressSpec describes the Ingress the user wishes to exist.
data ExtensionsV1beta1IngressSpec = ExtensionsV1beta1IngressSpec
  { ExtensionsV1beta1IngressSpec
-> Maybe ExtensionsV1beta1IngressBackend
extensionsV1beta1IngressSpecBackend :: !(Maybe ExtensionsV1beta1IngressBackend) -- ^ "backend"
  , ExtensionsV1beta1IngressSpec
-> Maybe [ExtensionsV1beta1IngressRule]
extensionsV1beta1IngressSpecRules :: !(Maybe [ExtensionsV1beta1IngressRule]) -- ^ "rules" - A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.
  , ExtensionsV1beta1IngressSpec -> Maybe [ExtensionsV1beta1IngressTLS]
extensionsV1beta1IngressSpecTls :: !(Maybe [ExtensionsV1beta1IngressTLS]) -- ^ "tls" - TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.
  } deriving (Int -> ExtensionsV1beta1IngressSpec -> ShowS
[ExtensionsV1beta1IngressSpec] -> ShowS
ExtensionsV1beta1IngressSpec -> String
(Int -> ExtensionsV1beta1IngressSpec -> ShowS)
-> (ExtensionsV1beta1IngressSpec -> String)
-> ([ExtensionsV1beta1IngressSpec] -> ShowS)
-> Show ExtensionsV1beta1IngressSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1IngressSpec] -> ShowS
$cshowList :: [ExtensionsV1beta1IngressSpec] -> ShowS
show :: ExtensionsV1beta1IngressSpec -> String
$cshow :: ExtensionsV1beta1IngressSpec -> String
showsPrec :: Int -> ExtensionsV1beta1IngressSpec -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1IngressSpec -> ShowS
P.Show, ExtensionsV1beta1IngressSpec
-> ExtensionsV1beta1IngressSpec -> Bool
(ExtensionsV1beta1IngressSpec
 -> ExtensionsV1beta1IngressSpec -> Bool)
-> (ExtensionsV1beta1IngressSpec
    -> ExtensionsV1beta1IngressSpec -> Bool)
-> Eq ExtensionsV1beta1IngressSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1IngressSpec
-> ExtensionsV1beta1IngressSpec -> Bool
$c/= :: ExtensionsV1beta1IngressSpec
-> ExtensionsV1beta1IngressSpec -> Bool
== :: ExtensionsV1beta1IngressSpec
-> ExtensionsV1beta1IngressSpec -> Bool
$c== :: ExtensionsV1beta1IngressSpec
-> ExtensionsV1beta1IngressSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1IngressSpec
instance A.FromJSON ExtensionsV1beta1IngressSpec where
  parseJSON :: Value -> Parser ExtensionsV1beta1IngressSpec
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1IngressSpec)
-> Value
-> Parser ExtensionsV1beta1IngressSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1IngressSpec" ((Object -> Parser ExtensionsV1beta1IngressSpec)
 -> Value -> Parser ExtensionsV1beta1IngressSpec)
-> (Object -> Parser ExtensionsV1beta1IngressSpec)
-> Value
-> Parser ExtensionsV1beta1IngressSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe ExtensionsV1beta1IngressBackend
-> Maybe [ExtensionsV1beta1IngressRule]
-> Maybe [ExtensionsV1beta1IngressTLS]
-> ExtensionsV1beta1IngressSpec
ExtensionsV1beta1IngressSpec
      (Maybe ExtensionsV1beta1IngressBackend
 -> Maybe [ExtensionsV1beta1IngressRule]
 -> Maybe [ExtensionsV1beta1IngressTLS]
 -> ExtensionsV1beta1IngressSpec)
-> Parser (Maybe ExtensionsV1beta1IngressBackend)
-> Parser
     (Maybe [ExtensionsV1beta1IngressRule]
      -> Maybe [ExtensionsV1beta1IngressTLS]
      -> ExtensionsV1beta1IngressSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe ExtensionsV1beta1IngressBackend)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"backend")
      Parser
  (Maybe [ExtensionsV1beta1IngressRule]
   -> Maybe [ExtensionsV1beta1IngressTLS]
   -> ExtensionsV1beta1IngressSpec)
-> Parser (Maybe [ExtensionsV1beta1IngressRule])
-> Parser
     (Maybe [ExtensionsV1beta1IngressTLS]
      -> ExtensionsV1beta1IngressSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [ExtensionsV1beta1IngressRule])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rules")
      Parser
  (Maybe [ExtensionsV1beta1IngressTLS]
   -> ExtensionsV1beta1IngressSpec)
-> Parser (Maybe [ExtensionsV1beta1IngressTLS])
-> Parser ExtensionsV1beta1IngressSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [ExtensionsV1beta1IngressTLS])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"tls")

-- | ToJSON ExtensionsV1beta1IngressSpec
instance A.ToJSON ExtensionsV1beta1IngressSpec where
  toJSON :: ExtensionsV1beta1IngressSpec -> Value
toJSON ExtensionsV1beta1IngressSpec {Maybe [ExtensionsV1beta1IngressTLS]
Maybe [ExtensionsV1beta1IngressRule]
Maybe ExtensionsV1beta1IngressBackend
extensionsV1beta1IngressSpecTls :: Maybe [ExtensionsV1beta1IngressTLS]
extensionsV1beta1IngressSpecRules :: Maybe [ExtensionsV1beta1IngressRule]
extensionsV1beta1IngressSpecBackend :: Maybe ExtensionsV1beta1IngressBackend
extensionsV1beta1IngressSpecTls :: ExtensionsV1beta1IngressSpec -> Maybe [ExtensionsV1beta1IngressTLS]
extensionsV1beta1IngressSpecRules :: ExtensionsV1beta1IngressSpec
-> Maybe [ExtensionsV1beta1IngressRule]
extensionsV1beta1IngressSpecBackend :: ExtensionsV1beta1IngressSpec
-> Maybe ExtensionsV1beta1IngressBackend
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"backend" Text -> Maybe ExtensionsV1beta1IngressBackend -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ExtensionsV1beta1IngressBackend
extensionsV1beta1IngressSpecBackend
      , Text
"rules" Text -> Maybe [ExtensionsV1beta1IngressRule] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [ExtensionsV1beta1IngressRule]
extensionsV1beta1IngressSpecRules
      , Text
"tls" Text -> Maybe [ExtensionsV1beta1IngressTLS] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [ExtensionsV1beta1IngressTLS]
extensionsV1beta1IngressSpecTls
      ]


-- | Construct a value of type 'ExtensionsV1beta1IngressSpec' (by applying it's required fields, if any)
mkExtensionsV1beta1IngressSpec
  :: ExtensionsV1beta1IngressSpec
mkExtensionsV1beta1IngressSpec :: ExtensionsV1beta1IngressSpec
mkExtensionsV1beta1IngressSpec =
  ExtensionsV1beta1IngressSpec :: Maybe ExtensionsV1beta1IngressBackend
-> Maybe [ExtensionsV1beta1IngressRule]
-> Maybe [ExtensionsV1beta1IngressTLS]
-> ExtensionsV1beta1IngressSpec
ExtensionsV1beta1IngressSpec
  { extensionsV1beta1IngressSpecBackend :: Maybe ExtensionsV1beta1IngressBackend
extensionsV1beta1IngressSpecBackend = Maybe ExtensionsV1beta1IngressBackend
forall a. Maybe a
Nothing
  , extensionsV1beta1IngressSpecRules :: Maybe [ExtensionsV1beta1IngressRule]
extensionsV1beta1IngressSpecRules = Maybe [ExtensionsV1beta1IngressRule]
forall a. Maybe a
Nothing
  , extensionsV1beta1IngressSpecTls :: Maybe [ExtensionsV1beta1IngressTLS]
extensionsV1beta1IngressSpecTls = Maybe [ExtensionsV1beta1IngressTLS]
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1IngressStatus
-- | ExtensionsV1beta1IngressStatus
-- IngressStatus describe the current state of the Ingress.
data ExtensionsV1beta1IngressStatus = ExtensionsV1beta1IngressStatus
  { ExtensionsV1beta1IngressStatus -> Maybe V1LoadBalancerStatus
extensionsV1beta1IngressStatusLoadBalancer :: !(Maybe V1LoadBalancerStatus) -- ^ "loadBalancer"
  } deriving (Int -> ExtensionsV1beta1IngressStatus -> ShowS
[ExtensionsV1beta1IngressStatus] -> ShowS
ExtensionsV1beta1IngressStatus -> String
(Int -> ExtensionsV1beta1IngressStatus -> ShowS)
-> (ExtensionsV1beta1IngressStatus -> String)
-> ([ExtensionsV1beta1IngressStatus] -> ShowS)
-> Show ExtensionsV1beta1IngressStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1IngressStatus] -> ShowS
$cshowList :: [ExtensionsV1beta1IngressStatus] -> ShowS
show :: ExtensionsV1beta1IngressStatus -> String
$cshow :: ExtensionsV1beta1IngressStatus -> String
showsPrec :: Int -> ExtensionsV1beta1IngressStatus -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1IngressStatus -> ShowS
P.Show, ExtensionsV1beta1IngressStatus
-> ExtensionsV1beta1IngressStatus -> Bool
(ExtensionsV1beta1IngressStatus
 -> ExtensionsV1beta1IngressStatus -> Bool)
-> (ExtensionsV1beta1IngressStatus
    -> ExtensionsV1beta1IngressStatus -> Bool)
-> Eq ExtensionsV1beta1IngressStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1IngressStatus
-> ExtensionsV1beta1IngressStatus -> Bool
$c/= :: ExtensionsV1beta1IngressStatus
-> ExtensionsV1beta1IngressStatus -> Bool
== :: ExtensionsV1beta1IngressStatus
-> ExtensionsV1beta1IngressStatus -> Bool
$c== :: ExtensionsV1beta1IngressStatus
-> ExtensionsV1beta1IngressStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1IngressStatus
instance A.FromJSON ExtensionsV1beta1IngressStatus where
  parseJSON :: Value -> Parser ExtensionsV1beta1IngressStatus
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1IngressStatus)
-> Value
-> Parser ExtensionsV1beta1IngressStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1IngressStatus" ((Object -> Parser ExtensionsV1beta1IngressStatus)
 -> Value -> Parser ExtensionsV1beta1IngressStatus)
-> (Object -> Parser ExtensionsV1beta1IngressStatus)
-> Value
-> Parser ExtensionsV1beta1IngressStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1LoadBalancerStatus -> ExtensionsV1beta1IngressStatus
ExtensionsV1beta1IngressStatus
      (Maybe V1LoadBalancerStatus -> ExtensionsV1beta1IngressStatus)
-> Parser (Maybe V1LoadBalancerStatus)
-> Parser ExtensionsV1beta1IngressStatus
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1LoadBalancerStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"loadBalancer")

-- | ToJSON ExtensionsV1beta1IngressStatus
instance A.ToJSON ExtensionsV1beta1IngressStatus where
  toJSON :: ExtensionsV1beta1IngressStatus -> Value
toJSON ExtensionsV1beta1IngressStatus {Maybe V1LoadBalancerStatus
extensionsV1beta1IngressStatusLoadBalancer :: Maybe V1LoadBalancerStatus
extensionsV1beta1IngressStatusLoadBalancer :: ExtensionsV1beta1IngressStatus -> Maybe V1LoadBalancerStatus
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"loadBalancer" Text -> Maybe V1LoadBalancerStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LoadBalancerStatus
extensionsV1beta1IngressStatusLoadBalancer
      ]


-- | Construct a value of type 'ExtensionsV1beta1IngressStatus' (by applying it's required fields, if any)
mkExtensionsV1beta1IngressStatus
  :: ExtensionsV1beta1IngressStatus
mkExtensionsV1beta1IngressStatus :: ExtensionsV1beta1IngressStatus
mkExtensionsV1beta1IngressStatus =
  ExtensionsV1beta1IngressStatus :: Maybe V1LoadBalancerStatus -> ExtensionsV1beta1IngressStatus
ExtensionsV1beta1IngressStatus
  { extensionsV1beta1IngressStatusLoadBalancer :: Maybe V1LoadBalancerStatus
extensionsV1beta1IngressStatusLoadBalancer = Maybe V1LoadBalancerStatus
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1IngressTLS
-- | ExtensionsV1beta1IngressTLS
-- IngressTLS describes the transport layer security associated with an Ingress.
data ExtensionsV1beta1IngressTLS = ExtensionsV1beta1IngressTLS
  { ExtensionsV1beta1IngressTLS -> Maybe [Text]
extensionsV1beta1IngressTLSHosts :: !(Maybe [Text]) -- ^ "hosts" - Hosts are a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.
  , ExtensionsV1beta1IngressTLS -> Maybe Text
extensionsV1beta1IngressTLSSecretName :: !(Maybe Text) -- ^ "secretName" - SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \&quot;Host\&quot; header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing.
  } deriving (Int -> ExtensionsV1beta1IngressTLS -> ShowS
[ExtensionsV1beta1IngressTLS] -> ShowS
ExtensionsV1beta1IngressTLS -> String
(Int -> ExtensionsV1beta1IngressTLS -> ShowS)
-> (ExtensionsV1beta1IngressTLS -> String)
-> ([ExtensionsV1beta1IngressTLS] -> ShowS)
-> Show ExtensionsV1beta1IngressTLS
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1IngressTLS] -> ShowS
$cshowList :: [ExtensionsV1beta1IngressTLS] -> ShowS
show :: ExtensionsV1beta1IngressTLS -> String
$cshow :: ExtensionsV1beta1IngressTLS -> String
showsPrec :: Int -> ExtensionsV1beta1IngressTLS -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1IngressTLS -> ShowS
P.Show, ExtensionsV1beta1IngressTLS -> ExtensionsV1beta1IngressTLS -> Bool
(ExtensionsV1beta1IngressTLS
 -> ExtensionsV1beta1IngressTLS -> Bool)
-> (ExtensionsV1beta1IngressTLS
    -> ExtensionsV1beta1IngressTLS -> Bool)
-> Eq ExtensionsV1beta1IngressTLS
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1IngressTLS -> ExtensionsV1beta1IngressTLS -> Bool
$c/= :: ExtensionsV1beta1IngressTLS -> ExtensionsV1beta1IngressTLS -> Bool
== :: ExtensionsV1beta1IngressTLS -> ExtensionsV1beta1IngressTLS -> Bool
$c== :: ExtensionsV1beta1IngressTLS -> ExtensionsV1beta1IngressTLS -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1IngressTLS
instance A.FromJSON ExtensionsV1beta1IngressTLS where
  parseJSON :: Value -> Parser ExtensionsV1beta1IngressTLS
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1IngressTLS)
-> Value
-> Parser ExtensionsV1beta1IngressTLS
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1IngressTLS" ((Object -> Parser ExtensionsV1beta1IngressTLS)
 -> Value -> Parser ExtensionsV1beta1IngressTLS)
-> (Object -> Parser ExtensionsV1beta1IngressTLS)
-> Value
-> Parser ExtensionsV1beta1IngressTLS
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text] -> Maybe Text -> ExtensionsV1beta1IngressTLS
ExtensionsV1beta1IngressTLS
      (Maybe [Text] -> Maybe Text -> ExtensionsV1beta1IngressTLS)
-> Parser (Maybe [Text])
-> Parser (Maybe Text -> ExtensionsV1beta1IngressTLS)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hosts")
      Parser (Maybe Text -> ExtensionsV1beta1IngressTLS)
-> Parser (Maybe Text) -> Parser ExtensionsV1beta1IngressTLS
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretName")

-- | ToJSON ExtensionsV1beta1IngressTLS
instance A.ToJSON ExtensionsV1beta1IngressTLS where
  toJSON :: ExtensionsV1beta1IngressTLS -> Value
toJSON ExtensionsV1beta1IngressTLS {Maybe [Text]
Maybe Text
extensionsV1beta1IngressTLSSecretName :: Maybe Text
extensionsV1beta1IngressTLSHosts :: Maybe [Text]
extensionsV1beta1IngressTLSSecretName :: ExtensionsV1beta1IngressTLS -> Maybe Text
extensionsV1beta1IngressTLSHosts :: ExtensionsV1beta1IngressTLS -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"hosts" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
extensionsV1beta1IngressTLSHosts
      , Text
"secretName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1IngressTLSSecretName
      ]


-- | Construct a value of type 'ExtensionsV1beta1IngressTLS' (by applying it's required fields, if any)
mkExtensionsV1beta1IngressTLS
  :: ExtensionsV1beta1IngressTLS
mkExtensionsV1beta1IngressTLS :: ExtensionsV1beta1IngressTLS
mkExtensionsV1beta1IngressTLS =
  ExtensionsV1beta1IngressTLS :: Maybe [Text] -> Maybe Text -> ExtensionsV1beta1IngressTLS
ExtensionsV1beta1IngressTLS
  { extensionsV1beta1IngressTLSHosts :: Maybe [Text]
extensionsV1beta1IngressTLSHosts = Maybe [Text]
forall a. Maybe a
Nothing
  , extensionsV1beta1IngressTLSSecretName :: Maybe Text
extensionsV1beta1IngressTLSSecretName = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1PodSecurityPolicy
-- | ExtensionsV1beta1PodSecurityPolicy
-- PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container. Deprecated: use PodSecurityPolicy from policy API Group instead.
data ExtensionsV1beta1PodSecurityPolicy = ExtensionsV1beta1PodSecurityPolicy
  { ExtensionsV1beta1PodSecurityPolicy -> Maybe Text
extensionsV1beta1PodSecurityPolicyApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , ExtensionsV1beta1PodSecurityPolicy -> Maybe Text
extensionsV1beta1PodSecurityPolicyKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , ExtensionsV1beta1PodSecurityPolicy -> Maybe V1ObjectMeta
extensionsV1beta1PodSecurityPolicyMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , ExtensionsV1beta1PodSecurityPolicy
-> Maybe ExtensionsV1beta1PodSecurityPolicySpec
extensionsV1beta1PodSecurityPolicySpec :: !(Maybe ExtensionsV1beta1PodSecurityPolicySpec) -- ^ "spec"
  } deriving (Int -> ExtensionsV1beta1PodSecurityPolicy -> ShowS
[ExtensionsV1beta1PodSecurityPolicy] -> ShowS
ExtensionsV1beta1PodSecurityPolicy -> String
(Int -> ExtensionsV1beta1PodSecurityPolicy -> ShowS)
-> (ExtensionsV1beta1PodSecurityPolicy -> String)
-> ([ExtensionsV1beta1PodSecurityPolicy] -> ShowS)
-> Show ExtensionsV1beta1PodSecurityPolicy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1PodSecurityPolicy] -> ShowS
$cshowList :: [ExtensionsV1beta1PodSecurityPolicy] -> ShowS
show :: ExtensionsV1beta1PodSecurityPolicy -> String
$cshow :: ExtensionsV1beta1PodSecurityPolicy -> String
showsPrec :: Int -> ExtensionsV1beta1PodSecurityPolicy -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1PodSecurityPolicy -> ShowS
P.Show, ExtensionsV1beta1PodSecurityPolicy
-> ExtensionsV1beta1PodSecurityPolicy -> Bool
(ExtensionsV1beta1PodSecurityPolicy
 -> ExtensionsV1beta1PodSecurityPolicy -> Bool)
-> (ExtensionsV1beta1PodSecurityPolicy
    -> ExtensionsV1beta1PodSecurityPolicy -> Bool)
-> Eq ExtensionsV1beta1PodSecurityPolicy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1PodSecurityPolicy
-> ExtensionsV1beta1PodSecurityPolicy -> Bool
$c/= :: ExtensionsV1beta1PodSecurityPolicy
-> ExtensionsV1beta1PodSecurityPolicy -> Bool
== :: ExtensionsV1beta1PodSecurityPolicy
-> ExtensionsV1beta1PodSecurityPolicy -> Bool
$c== :: ExtensionsV1beta1PodSecurityPolicy
-> ExtensionsV1beta1PodSecurityPolicy -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1PodSecurityPolicy
instance A.FromJSON ExtensionsV1beta1PodSecurityPolicy where
  parseJSON :: Value -> Parser ExtensionsV1beta1PodSecurityPolicy
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1PodSecurityPolicy)
-> Value
-> Parser ExtensionsV1beta1PodSecurityPolicy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1PodSecurityPolicy" ((Object -> Parser ExtensionsV1beta1PodSecurityPolicy)
 -> Value -> Parser ExtensionsV1beta1PodSecurityPolicy)
-> (Object -> Parser ExtensionsV1beta1PodSecurityPolicy)
-> Value
-> Parser ExtensionsV1beta1PodSecurityPolicy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe ExtensionsV1beta1PodSecurityPolicySpec
-> ExtensionsV1beta1PodSecurityPolicy
ExtensionsV1beta1PodSecurityPolicy
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe ExtensionsV1beta1PodSecurityPolicySpec
 -> ExtensionsV1beta1PodSecurityPolicy)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe ExtensionsV1beta1PodSecurityPolicySpec
      -> ExtensionsV1beta1PodSecurityPolicy)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe ExtensionsV1beta1PodSecurityPolicySpec
   -> ExtensionsV1beta1PodSecurityPolicy)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe ExtensionsV1beta1PodSecurityPolicySpec
      -> ExtensionsV1beta1PodSecurityPolicy)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe ExtensionsV1beta1PodSecurityPolicySpec
   -> ExtensionsV1beta1PodSecurityPolicy)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe ExtensionsV1beta1PodSecurityPolicySpec
      -> ExtensionsV1beta1PodSecurityPolicy)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe ExtensionsV1beta1PodSecurityPolicySpec
   -> ExtensionsV1beta1PodSecurityPolicy)
-> Parser (Maybe ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser ExtensionsV1beta1PodSecurityPolicy
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe ExtensionsV1beta1PodSecurityPolicySpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")

-- | ToJSON ExtensionsV1beta1PodSecurityPolicy
instance A.ToJSON ExtensionsV1beta1PodSecurityPolicy where
  toJSON :: ExtensionsV1beta1PodSecurityPolicy -> Value
toJSON ExtensionsV1beta1PodSecurityPolicy {Maybe Text
Maybe V1ObjectMeta
Maybe ExtensionsV1beta1PodSecurityPolicySpec
extensionsV1beta1PodSecurityPolicySpec :: Maybe ExtensionsV1beta1PodSecurityPolicySpec
extensionsV1beta1PodSecurityPolicyMetadata :: Maybe V1ObjectMeta
extensionsV1beta1PodSecurityPolicyKind :: Maybe Text
extensionsV1beta1PodSecurityPolicyApiVersion :: Maybe Text
extensionsV1beta1PodSecurityPolicySpec :: ExtensionsV1beta1PodSecurityPolicy
-> Maybe ExtensionsV1beta1PodSecurityPolicySpec
extensionsV1beta1PodSecurityPolicyMetadata :: ExtensionsV1beta1PodSecurityPolicy -> Maybe V1ObjectMeta
extensionsV1beta1PodSecurityPolicyKind :: ExtensionsV1beta1PodSecurityPolicy -> Maybe Text
extensionsV1beta1PodSecurityPolicyApiVersion :: ExtensionsV1beta1PodSecurityPolicy -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1PodSecurityPolicyApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1PodSecurityPolicyKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
extensionsV1beta1PodSecurityPolicyMetadata
      , Text
"spec" Text
-> Maybe ExtensionsV1beta1PodSecurityPolicySpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ExtensionsV1beta1PodSecurityPolicySpec
extensionsV1beta1PodSecurityPolicySpec
      ]


-- | Construct a value of type 'ExtensionsV1beta1PodSecurityPolicy' (by applying it's required fields, if any)
mkExtensionsV1beta1PodSecurityPolicy
  :: ExtensionsV1beta1PodSecurityPolicy
mkExtensionsV1beta1PodSecurityPolicy :: ExtensionsV1beta1PodSecurityPolicy
mkExtensionsV1beta1PodSecurityPolicy =
  ExtensionsV1beta1PodSecurityPolicy :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe ExtensionsV1beta1PodSecurityPolicySpec
-> ExtensionsV1beta1PodSecurityPolicy
ExtensionsV1beta1PodSecurityPolicy
  { extensionsV1beta1PodSecurityPolicyApiVersion :: Maybe Text
extensionsV1beta1PodSecurityPolicyApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicyKind :: Maybe Text
extensionsV1beta1PodSecurityPolicyKind = Maybe Text
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicyMetadata :: Maybe V1ObjectMeta
extensionsV1beta1PodSecurityPolicyMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpec :: Maybe ExtensionsV1beta1PodSecurityPolicySpec
extensionsV1beta1PodSecurityPolicySpec = Maybe ExtensionsV1beta1PodSecurityPolicySpec
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1PodSecurityPolicyList
-- | ExtensionsV1beta1PodSecurityPolicyList
-- PodSecurityPolicyList is a list of PodSecurityPolicy objects. Deprecated: use PodSecurityPolicyList from policy API Group instead.
data ExtensionsV1beta1PodSecurityPolicyList = ExtensionsV1beta1PodSecurityPolicyList
  { ExtensionsV1beta1PodSecurityPolicyList -> Maybe Text
extensionsV1beta1PodSecurityPolicyListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , ExtensionsV1beta1PodSecurityPolicyList
-> [ExtensionsV1beta1PodSecurityPolicy]
extensionsV1beta1PodSecurityPolicyListItems :: !([ExtensionsV1beta1PodSecurityPolicy]) -- ^ /Required/ "items" - items is a list of schema objects.
  , ExtensionsV1beta1PodSecurityPolicyList -> Maybe Text
extensionsV1beta1PodSecurityPolicyListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , ExtensionsV1beta1PodSecurityPolicyList -> Maybe V1ListMeta
extensionsV1beta1PodSecurityPolicyListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> ExtensionsV1beta1PodSecurityPolicyList -> ShowS
[ExtensionsV1beta1PodSecurityPolicyList] -> ShowS
ExtensionsV1beta1PodSecurityPolicyList -> String
(Int -> ExtensionsV1beta1PodSecurityPolicyList -> ShowS)
-> (ExtensionsV1beta1PodSecurityPolicyList -> String)
-> ([ExtensionsV1beta1PodSecurityPolicyList] -> ShowS)
-> Show ExtensionsV1beta1PodSecurityPolicyList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1PodSecurityPolicyList] -> ShowS
$cshowList :: [ExtensionsV1beta1PodSecurityPolicyList] -> ShowS
show :: ExtensionsV1beta1PodSecurityPolicyList -> String
$cshow :: ExtensionsV1beta1PodSecurityPolicyList -> String
showsPrec :: Int -> ExtensionsV1beta1PodSecurityPolicyList -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1PodSecurityPolicyList -> ShowS
P.Show, ExtensionsV1beta1PodSecurityPolicyList
-> ExtensionsV1beta1PodSecurityPolicyList -> Bool
(ExtensionsV1beta1PodSecurityPolicyList
 -> ExtensionsV1beta1PodSecurityPolicyList -> Bool)
-> (ExtensionsV1beta1PodSecurityPolicyList
    -> ExtensionsV1beta1PodSecurityPolicyList -> Bool)
-> Eq ExtensionsV1beta1PodSecurityPolicyList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1PodSecurityPolicyList
-> ExtensionsV1beta1PodSecurityPolicyList -> Bool
$c/= :: ExtensionsV1beta1PodSecurityPolicyList
-> ExtensionsV1beta1PodSecurityPolicyList -> Bool
== :: ExtensionsV1beta1PodSecurityPolicyList
-> ExtensionsV1beta1PodSecurityPolicyList -> Bool
$c== :: ExtensionsV1beta1PodSecurityPolicyList
-> ExtensionsV1beta1PodSecurityPolicyList -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1PodSecurityPolicyList
instance A.FromJSON ExtensionsV1beta1PodSecurityPolicyList where
  parseJSON :: Value -> Parser ExtensionsV1beta1PodSecurityPolicyList
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1PodSecurityPolicyList)
-> Value
-> Parser ExtensionsV1beta1PodSecurityPolicyList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1PodSecurityPolicyList" ((Object -> Parser ExtensionsV1beta1PodSecurityPolicyList)
 -> Value -> Parser ExtensionsV1beta1PodSecurityPolicyList)
-> (Object -> Parser ExtensionsV1beta1PodSecurityPolicyList)
-> Value
-> Parser ExtensionsV1beta1PodSecurityPolicyList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [ExtensionsV1beta1PodSecurityPolicy]
-> Maybe Text
-> Maybe V1ListMeta
-> ExtensionsV1beta1PodSecurityPolicyList
ExtensionsV1beta1PodSecurityPolicyList
      (Maybe Text
 -> [ExtensionsV1beta1PodSecurityPolicy]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> ExtensionsV1beta1PodSecurityPolicyList)
-> Parser (Maybe Text)
-> Parser
     ([ExtensionsV1beta1PodSecurityPolicy]
      -> Maybe Text
      -> Maybe V1ListMeta
      -> ExtensionsV1beta1PodSecurityPolicyList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([ExtensionsV1beta1PodSecurityPolicy]
   -> Maybe Text
   -> Maybe V1ListMeta
   -> ExtensionsV1beta1PodSecurityPolicyList)
-> Parser [ExtensionsV1beta1PodSecurityPolicy]
-> Parser
     (Maybe Text
      -> Maybe V1ListMeta -> ExtensionsV1beta1PodSecurityPolicyList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [ExtensionsV1beta1PodSecurityPolicy]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text
   -> Maybe V1ListMeta -> ExtensionsV1beta1PodSecurityPolicyList)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ListMeta -> ExtensionsV1beta1PodSecurityPolicyList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> ExtensionsV1beta1PodSecurityPolicyList)
-> Parser (Maybe V1ListMeta)
-> Parser ExtensionsV1beta1PodSecurityPolicyList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON ExtensionsV1beta1PodSecurityPolicyList
instance A.ToJSON ExtensionsV1beta1PodSecurityPolicyList where
  toJSON :: ExtensionsV1beta1PodSecurityPolicyList -> Value
toJSON ExtensionsV1beta1PodSecurityPolicyList {[ExtensionsV1beta1PodSecurityPolicy]
Maybe Text
Maybe V1ListMeta
extensionsV1beta1PodSecurityPolicyListMetadata :: Maybe V1ListMeta
extensionsV1beta1PodSecurityPolicyListKind :: Maybe Text
extensionsV1beta1PodSecurityPolicyListItems :: [ExtensionsV1beta1PodSecurityPolicy]
extensionsV1beta1PodSecurityPolicyListApiVersion :: Maybe Text
extensionsV1beta1PodSecurityPolicyListMetadata :: ExtensionsV1beta1PodSecurityPolicyList -> Maybe V1ListMeta
extensionsV1beta1PodSecurityPolicyListKind :: ExtensionsV1beta1PodSecurityPolicyList -> Maybe Text
extensionsV1beta1PodSecurityPolicyListItems :: ExtensionsV1beta1PodSecurityPolicyList
-> [ExtensionsV1beta1PodSecurityPolicy]
extensionsV1beta1PodSecurityPolicyListApiVersion :: ExtensionsV1beta1PodSecurityPolicyList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1PodSecurityPolicyListApiVersion
      , Text
"items" Text -> [ExtensionsV1beta1PodSecurityPolicy] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [ExtensionsV1beta1PodSecurityPolicy]
extensionsV1beta1PodSecurityPolicyListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1PodSecurityPolicyListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
extensionsV1beta1PodSecurityPolicyListMetadata
      ]


-- | Construct a value of type 'ExtensionsV1beta1PodSecurityPolicyList' (by applying it's required fields, if any)
mkExtensionsV1beta1PodSecurityPolicyList
  :: [ExtensionsV1beta1PodSecurityPolicy] -- ^ 'extensionsV1beta1PodSecurityPolicyListItems': items is a list of schema objects.
  -> ExtensionsV1beta1PodSecurityPolicyList
mkExtensionsV1beta1PodSecurityPolicyList :: [ExtensionsV1beta1PodSecurityPolicy]
-> ExtensionsV1beta1PodSecurityPolicyList
mkExtensionsV1beta1PodSecurityPolicyList [ExtensionsV1beta1PodSecurityPolicy]
extensionsV1beta1PodSecurityPolicyListItems =
  ExtensionsV1beta1PodSecurityPolicyList :: Maybe Text
-> [ExtensionsV1beta1PodSecurityPolicy]
-> Maybe Text
-> Maybe V1ListMeta
-> ExtensionsV1beta1PodSecurityPolicyList
ExtensionsV1beta1PodSecurityPolicyList
  { extensionsV1beta1PodSecurityPolicyListApiVersion :: Maybe Text
extensionsV1beta1PodSecurityPolicyListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [ExtensionsV1beta1PodSecurityPolicy]
extensionsV1beta1PodSecurityPolicyListItems :: [ExtensionsV1beta1PodSecurityPolicy]
extensionsV1beta1PodSecurityPolicyListItems :: [ExtensionsV1beta1PodSecurityPolicy]
extensionsV1beta1PodSecurityPolicyListItems
  , extensionsV1beta1PodSecurityPolicyListKind :: Maybe Text
extensionsV1beta1PodSecurityPolicyListKind = Maybe Text
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicyListMetadata :: Maybe V1ListMeta
extensionsV1beta1PodSecurityPolicyListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1PodSecurityPolicySpec
-- | ExtensionsV1beta1PodSecurityPolicySpec
-- PodSecurityPolicySpec defines the policy enforced. Deprecated: use PodSecurityPolicySpec from policy API Group instead.
data ExtensionsV1beta1PodSecurityPolicySpec = ExtensionsV1beta1PodSecurityPolicySpec
  { ExtensionsV1beta1PodSecurityPolicySpec -> Maybe Bool
extensionsV1beta1PodSecurityPolicySpecAllowPrivilegeEscalation :: !(Maybe Bool) -- ^ "allowPrivilegeEscalation" - allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.
  , ExtensionsV1beta1PodSecurityPolicySpec
-> Maybe [ExtensionsV1beta1AllowedCSIDriver]
extensionsV1beta1PodSecurityPolicySpecAllowedCsiDrivers :: !(Maybe [ExtensionsV1beta1AllowedCSIDriver]) -- ^ "allowedCSIDrivers" - AllowedCSIDrivers is a whitelist of inline CSI drivers that must be explicitly set to be embedded within a pod spec. An empty value indicates that any CSI driver can be used for inline ephemeral volumes.
  , ExtensionsV1beta1PodSecurityPolicySpec -> Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedCapabilities :: !(Maybe [Text]) -- ^ "allowedCapabilities" - allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author&#39;s discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.
  , ExtensionsV1beta1PodSecurityPolicySpec
-> Maybe [ExtensionsV1beta1AllowedFlexVolume]
extensionsV1beta1PodSecurityPolicySpecAllowedFlexVolumes :: !(Maybe [ExtensionsV1beta1AllowedFlexVolume]) -- ^ "allowedFlexVolumes" - allowedFlexVolumes is a whitelist of allowed Flexvolumes.  Empty or nil indicates that all Flexvolumes may be used.  This parameter is effective only when the usage of the Flexvolumes is allowed in the \&quot;volumes\&quot; field.
  , ExtensionsV1beta1PodSecurityPolicySpec
-> Maybe [ExtensionsV1beta1AllowedHostPath]
extensionsV1beta1PodSecurityPolicySpecAllowedHostPaths :: !(Maybe [ExtensionsV1beta1AllowedHostPath]) -- ^ "allowedHostPaths" - allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used.
  , ExtensionsV1beta1PodSecurityPolicySpec -> Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedProcMountTypes :: !(Maybe [Text]) -- ^ "allowedProcMountTypes" - AllowedProcMountTypes is a whitelist of allowed ProcMountTypes. Empty or nil indicates that only the DefaultProcMountType may be used. This requires the ProcMountType feature flag to be enabled.
  , ExtensionsV1beta1PodSecurityPolicySpec -> Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedUnsafeSysctls :: !(Maybe [Text]) -- ^ "allowedUnsafeSysctls" - allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \&quot;*\&quot; in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection.  Examples: e.g. \&quot;foo/*\&quot; allows \&quot;foo/bar\&quot;, \&quot;foo/baz\&quot;, etc. e.g. \&quot;foo.*\&quot; allows \&quot;foo.bar\&quot;, \&quot;foo.baz\&quot;, etc.
  , ExtensionsV1beta1PodSecurityPolicySpec -> Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecDefaultAddCapabilities :: !(Maybe [Text]) -- ^ "defaultAddCapabilities" - defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability.  You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.
  , ExtensionsV1beta1PodSecurityPolicySpec -> Maybe Bool
extensionsV1beta1PodSecurityPolicySpecDefaultAllowPrivilegeEscalation :: !(Maybe Bool) -- ^ "defaultAllowPrivilegeEscalation" - defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.
  , ExtensionsV1beta1PodSecurityPolicySpec -> Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecForbiddenSysctls :: !(Maybe [Text]) -- ^ "forbiddenSysctls" - forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \&quot;*\&quot; in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.  Examples: e.g. \&quot;foo/*\&quot; forbids \&quot;foo/bar\&quot;, \&quot;foo/baz\&quot;, etc. e.g. \&quot;foo.*\&quot; forbids \&quot;foo.bar\&quot;, \&quot;foo.baz\&quot;, etc.
  , ExtensionsV1beta1PodSecurityPolicySpec
-> ExtensionsV1beta1FSGroupStrategyOptions
extensionsV1beta1PodSecurityPolicySpecFsGroup :: !(ExtensionsV1beta1FSGroupStrategyOptions) -- ^ /Required/ "fsGroup"
  , ExtensionsV1beta1PodSecurityPolicySpec -> Maybe Bool
extensionsV1beta1PodSecurityPolicySpecHostIpc :: !(Maybe Bool) -- ^ "hostIPC" - hostIPC determines if the policy allows the use of HostIPC in the pod spec.
  , ExtensionsV1beta1PodSecurityPolicySpec -> Maybe Bool
extensionsV1beta1PodSecurityPolicySpecHostNetwork :: !(Maybe Bool) -- ^ "hostNetwork" - hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.
  , ExtensionsV1beta1PodSecurityPolicySpec -> Maybe Bool
extensionsV1beta1PodSecurityPolicySpecHostPid :: !(Maybe Bool) -- ^ "hostPID" - hostPID determines if the policy allows the use of HostPID in the pod spec.
  , ExtensionsV1beta1PodSecurityPolicySpec
-> Maybe [ExtensionsV1beta1HostPortRange]
extensionsV1beta1PodSecurityPolicySpecHostPorts :: !(Maybe [ExtensionsV1beta1HostPortRange]) -- ^ "hostPorts" - hostPorts determines which host port ranges are allowed to be exposed.
  , ExtensionsV1beta1PodSecurityPolicySpec -> Maybe Bool
extensionsV1beta1PodSecurityPolicySpecPrivileged :: !(Maybe Bool) -- ^ "privileged" - privileged determines if a pod can request to be run as privileged.
  , ExtensionsV1beta1PodSecurityPolicySpec -> Maybe Bool
extensionsV1beta1PodSecurityPolicySpecReadOnlyRootFilesystem :: !(Maybe Bool) -- ^ "readOnlyRootFilesystem" - readOnlyRootFilesystem when set to true will force containers to run with a read only root file system.  If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.
  , ExtensionsV1beta1PodSecurityPolicySpec -> Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecRequiredDropCapabilities :: !(Maybe [Text]) -- ^ "requiredDropCapabilities" - requiredDropCapabilities are the capabilities that will be dropped from the container.  These are required to be dropped and cannot be added.
  , ExtensionsV1beta1PodSecurityPolicySpec
-> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRunAsGroup :: !(Maybe ExtensionsV1beta1RunAsGroupStrategyOptions) -- ^ "runAsGroup"
  , ExtensionsV1beta1PodSecurityPolicySpec
-> ExtensionsV1beta1RunAsUserStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRunAsUser :: !(ExtensionsV1beta1RunAsUserStrategyOptions) -- ^ /Required/ "runAsUser"
  , ExtensionsV1beta1PodSecurityPolicySpec
-> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRuntimeClass :: !(Maybe ExtensionsV1beta1RuntimeClassStrategyOptions) -- ^ "runtimeClass"
  , ExtensionsV1beta1PodSecurityPolicySpec
-> ExtensionsV1beta1SELinuxStrategyOptions
extensionsV1beta1PodSecurityPolicySpecSeLinux :: !(ExtensionsV1beta1SELinuxStrategyOptions) -- ^ /Required/ "seLinux"
  , ExtensionsV1beta1PodSecurityPolicySpec
-> ExtensionsV1beta1SupplementalGroupsStrategyOptions
extensionsV1beta1PodSecurityPolicySpecSupplementalGroups :: !(ExtensionsV1beta1SupplementalGroupsStrategyOptions) -- ^ /Required/ "supplementalGroups"
  , ExtensionsV1beta1PodSecurityPolicySpec -> Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecVolumes :: !(Maybe [Text]) -- ^ "volumes" - volumes is a white list of allowed volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use &#39;*&#39;.
  } deriving (Int -> ExtensionsV1beta1PodSecurityPolicySpec -> ShowS
[ExtensionsV1beta1PodSecurityPolicySpec] -> ShowS
ExtensionsV1beta1PodSecurityPolicySpec -> String
(Int -> ExtensionsV1beta1PodSecurityPolicySpec -> ShowS)
-> (ExtensionsV1beta1PodSecurityPolicySpec -> String)
-> ([ExtensionsV1beta1PodSecurityPolicySpec] -> ShowS)
-> Show ExtensionsV1beta1PodSecurityPolicySpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1PodSecurityPolicySpec] -> ShowS
$cshowList :: [ExtensionsV1beta1PodSecurityPolicySpec] -> ShowS
show :: ExtensionsV1beta1PodSecurityPolicySpec -> String
$cshow :: ExtensionsV1beta1PodSecurityPolicySpec -> String
showsPrec :: Int -> ExtensionsV1beta1PodSecurityPolicySpec -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1PodSecurityPolicySpec -> ShowS
P.Show, ExtensionsV1beta1PodSecurityPolicySpec
-> ExtensionsV1beta1PodSecurityPolicySpec -> Bool
(ExtensionsV1beta1PodSecurityPolicySpec
 -> ExtensionsV1beta1PodSecurityPolicySpec -> Bool)
-> (ExtensionsV1beta1PodSecurityPolicySpec
    -> ExtensionsV1beta1PodSecurityPolicySpec -> Bool)
-> Eq ExtensionsV1beta1PodSecurityPolicySpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1PodSecurityPolicySpec
-> ExtensionsV1beta1PodSecurityPolicySpec -> Bool
$c/= :: ExtensionsV1beta1PodSecurityPolicySpec
-> ExtensionsV1beta1PodSecurityPolicySpec -> Bool
== :: ExtensionsV1beta1PodSecurityPolicySpec
-> ExtensionsV1beta1PodSecurityPolicySpec -> Bool
$c== :: ExtensionsV1beta1PodSecurityPolicySpec
-> ExtensionsV1beta1PodSecurityPolicySpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1PodSecurityPolicySpec
instance A.FromJSON ExtensionsV1beta1PodSecurityPolicySpec where
  parseJSON :: Value -> Parser ExtensionsV1beta1PodSecurityPolicySpec
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1PodSecurityPolicySpec)
-> Value
-> Parser ExtensionsV1beta1PodSecurityPolicySpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1PodSecurityPolicySpec" ((Object -> Parser ExtensionsV1beta1PodSecurityPolicySpec)
 -> Value -> Parser ExtensionsV1beta1PodSecurityPolicySpec)
-> (Object -> Parser ExtensionsV1beta1PodSecurityPolicySpec)
-> Value
-> Parser ExtensionsV1beta1PodSecurityPolicySpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Bool
-> Maybe [ExtensionsV1beta1AllowedCSIDriver]
-> Maybe [Text]
-> Maybe [ExtensionsV1beta1AllowedFlexVolume]
-> Maybe [ExtensionsV1beta1AllowedHostPath]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe Bool
-> Maybe [Text]
-> ExtensionsV1beta1FSGroupStrategyOptions
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe [ExtensionsV1beta1HostPortRange]
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
-> ExtensionsV1beta1RunAsUserStrategyOptions
-> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
-> ExtensionsV1beta1SELinuxStrategyOptions
-> ExtensionsV1beta1SupplementalGroupsStrategyOptions
-> Maybe [Text]
-> ExtensionsV1beta1PodSecurityPolicySpec
ExtensionsV1beta1PodSecurityPolicySpec
      (Maybe Bool
 -> Maybe [ExtensionsV1beta1AllowedCSIDriver]
 -> Maybe [Text]
 -> Maybe [ExtensionsV1beta1AllowedFlexVolume]
 -> Maybe [ExtensionsV1beta1AllowedHostPath]
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe Bool
 -> Maybe [Text]
 -> ExtensionsV1beta1FSGroupStrategyOptions
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe [ExtensionsV1beta1HostPortRange]
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe [Text]
 -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
 -> ExtensionsV1beta1RunAsUserStrategyOptions
 -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
 -> ExtensionsV1beta1SELinuxStrategyOptions
 -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
 -> Maybe [Text]
 -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [ExtensionsV1beta1AllowedCSIDriver]
      -> Maybe [Text]
      -> Maybe [ExtensionsV1beta1AllowedFlexVolume]
      -> Maybe [ExtensionsV1beta1AllowedHostPath]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe [Text]
      -> ExtensionsV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [ExtensionsV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowPrivilegeEscalation")
      Parser
  (Maybe [ExtensionsV1beta1AllowedCSIDriver]
   -> Maybe [Text]
   -> Maybe [ExtensionsV1beta1AllowedFlexVolume]
   -> Maybe [ExtensionsV1beta1AllowedHostPath]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe [Text]
   -> ExtensionsV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [ExtensionsV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [ExtensionsV1beta1AllowedCSIDriver])
-> Parser
     (Maybe [Text]
      -> Maybe [ExtensionsV1beta1AllowedFlexVolume]
      -> Maybe [ExtensionsV1beta1AllowedHostPath]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe [Text]
      -> ExtensionsV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [ExtensionsV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe [ExtensionsV1beta1AllowedCSIDriver])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowedCSIDrivers")
      Parser
  (Maybe [Text]
   -> Maybe [ExtensionsV1beta1AllowedFlexVolume]
   -> Maybe [ExtensionsV1beta1AllowedHostPath]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe [Text]
   -> ExtensionsV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [ExtensionsV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [ExtensionsV1beta1AllowedFlexVolume]
      -> Maybe [ExtensionsV1beta1AllowedHostPath]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe [Text]
      -> ExtensionsV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [ExtensionsV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowedCapabilities")
      Parser
  (Maybe [ExtensionsV1beta1AllowedFlexVolume]
   -> Maybe [ExtensionsV1beta1AllowedHostPath]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe [Text]
   -> ExtensionsV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [ExtensionsV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [ExtensionsV1beta1AllowedFlexVolume])
-> Parser
     (Maybe [ExtensionsV1beta1AllowedHostPath]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe [Text]
      -> ExtensionsV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [ExtensionsV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe [ExtensionsV1beta1AllowedFlexVolume])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowedFlexVolumes")
      Parser
  (Maybe [ExtensionsV1beta1AllowedHostPath]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe [Text]
   -> ExtensionsV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [ExtensionsV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [ExtensionsV1beta1AllowedHostPath])
-> Parser
     (Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe [Text]
      -> ExtensionsV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [ExtensionsV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [ExtensionsV1beta1AllowedHostPath])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowedHostPaths")
      Parser
  (Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe [Text]
   -> ExtensionsV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [ExtensionsV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe [Text]
      -> ExtensionsV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [ExtensionsV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowedProcMountTypes")
      Parser
  (Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe [Text]
   -> ExtensionsV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [ExtensionsV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe Bool
      -> Maybe [Text]
      -> ExtensionsV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [ExtensionsV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowedUnsafeSysctls")
      Parser
  (Maybe [Text]
   -> Maybe Bool
   -> Maybe [Text]
   -> ExtensionsV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [ExtensionsV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Bool
      -> Maybe [Text]
      -> ExtensionsV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [ExtensionsV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"defaultAddCapabilities")
      Parser
  (Maybe Bool
   -> Maybe [Text]
   -> ExtensionsV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [ExtensionsV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [Text]
      -> ExtensionsV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [ExtensionsV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"defaultAllowPrivilegeEscalation")
      Parser
  (Maybe [Text]
   -> ExtensionsV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [ExtensionsV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [Text])
-> Parser
     (ExtensionsV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [ExtensionsV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"forbiddenSysctls")
      Parser
  (ExtensionsV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [ExtensionsV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser ExtensionsV1beta1FSGroupStrategyOptions
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [ExtensionsV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser ExtensionsV1beta1FSGroupStrategyOptions
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"fsGroup")
      Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [ExtensionsV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe [ExtensionsV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostIPC")
      Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe [ExtensionsV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe [ExtensionsV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostNetwork")
      Parser
  (Maybe Bool
   -> Maybe [ExtensionsV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [ExtensionsV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostPID")
      Parser
  (Maybe [ExtensionsV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [ExtensionsV1beta1HostPortRange])
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [ExtensionsV1beta1HostPortRange])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostPorts")
      Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"privileged")
      Parser
  (Maybe Bool
   -> Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [Text]
      -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnlyRootFilesystem")
      Parser
  (Maybe [Text]
   -> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
      -> ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"requiredDropCapabilities")
      Parser
  (Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
   -> ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe ExtensionsV1beta1RunAsGroupStrategyOptions)
-> Parser
     (ExtensionsV1beta1RunAsUserStrategyOptions
      -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text
-> Parser (Maybe ExtensionsV1beta1RunAsGroupStrategyOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"runAsGroup")
      Parser
  (ExtensionsV1beta1RunAsUserStrategyOptions
   -> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser ExtensionsV1beta1RunAsUserStrategyOptions
-> Parser
     (Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
      -> ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser ExtensionsV1beta1RunAsUserStrategyOptions
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"runAsUser")
      Parser
  (Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
   -> ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe ExtensionsV1beta1RuntimeClassStrategyOptions)
-> Parser
     (ExtensionsV1beta1SELinuxStrategyOptions
      -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text
-> Parser (Maybe ExtensionsV1beta1RuntimeClassStrategyOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"runtimeClass")
      Parser
  (ExtensionsV1beta1SELinuxStrategyOptions
   -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser ExtensionsV1beta1SELinuxStrategyOptions
-> Parser
     (ExtensionsV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text] -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser ExtensionsV1beta1SELinuxStrategyOptions
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"seLinux")
      Parser
  (ExtensionsV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text] -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser ExtensionsV1beta1SupplementalGroupsStrategyOptions
-> Parser (Maybe [Text] -> ExtensionsV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text
-> Parser ExtensionsV1beta1SupplementalGroupsStrategyOptions
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"supplementalGroups")
      Parser (Maybe [Text] -> ExtensionsV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [Text])
-> Parser ExtensionsV1beta1PodSecurityPolicySpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumes")

-- | ToJSON ExtensionsV1beta1PodSecurityPolicySpec
instance A.ToJSON ExtensionsV1beta1PodSecurityPolicySpec where
  toJSON :: ExtensionsV1beta1PodSecurityPolicySpec -> Value
toJSON ExtensionsV1beta1PodSecurityPolicySpec {Maybe Bool
Maybe [Text]
Maybe [ExtensionsV1beta1HostPortRange]
Maybe [ExtensionsV1beta1AllowedHostPath]
Maybe [ExtensionsV1beta1AllowedFlexVolume]
Maybe [ExtensionsV1beta1AllowedCSIDriver]
Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
ExtensionsV1beta1SupplementalGroupsStrategyOptions
ExtensionsV1beta1SELinuxStrategyOptions
ExtensionsV1beta1RunAsUserStrategyOptions
ExtensionsV1beta1FSGroupStrategyOptions
extensionsV1beta1PodSecurityPolicySpecVolumes :: Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecSupplementalGroups :: ExtensionsV1beta1SupplementalGroupsStrategyOptions
extensionsV1beta1PodSecurityPolicySpecSeLinux :: ExtensionsV1beta1SELinuxStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRuntimeClass :: Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRunAsUser :: ExtensionsV1beta1RunAsUserStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRunAsGroup :: Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRequiredDropCapabilities :: Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecReadOnlyRootFilesystem :: Maybe Bool
extensionsV1beta1PodSecurityPolicySpecPrivileged :: Maybe Bool
extensionsV1beta1PodSecurityPolicySpecHostPorts :: Maybe [ExtensionsV1beta1HostPortRange]
extensionsV1beta1PodSecurityPolicySpecHostPid :: Maybe Bool
extensionsV1beta1PodSecurityPolicySpecHostNetwork :: Maybe Bool
extensionsV1beta1PodSecurityPolicySpecHostIpc :: Maybe Bool
extensionsV1beta1PodSecurityPolicySpecFsGroup :: ExtensionsV1beta1FSGroupStrategyOptions
extensionsV1beta1PodSecurityPolicySpecForbiddenSysctls :: Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecDefaultAllowPrivilegeEscalation :: Maybe Bool
extensionsV1beta1PodSecurityPolicySpecDefaultAddCapabilities :: Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedUnsafeSysctls :: Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedProcMountTypes :: Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedHostPaths :: Maybe [ExtensionsV1beta1AllowedHostPath]
extensionsV1beta1PodSecurityPolicySpecAllowedFlexVolumes :: Maybe [ExtensionsV1beta1AllowedFlexVolume]
extensionsV1beta1PodSecurityPolicySpecAllowedCapabilities :: Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedCsiDrivers :: Maybe [ExtensionsV1beta1AllowedCSIDriver]
extensionsV1beta1PodSecurityPolicySpecAllowPrivilegeEscalation :: Maybe Bool
extensionsV1beta1PodSecurityPolicySpecVolumes :: ExtensionsV1beta1PodSecurityPolicySpec -> Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecSupplementalGroups :: ExtensionsV1beta1PodSecurityPolicySpec
-> ExtensionsV1beta1SupplementalGroupsStrategyOptions
extensionsV1beta1PodSecurityPolicySpecSeLinux :: ExtensionsV1beta1PodSecurityPolicySpec
-> ExtensionsV1beta1SELinuxStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRuntimeClass :: ExtensionsV1beta1PodSecurityPolicySpec
-> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRunAsUser :: ExtensionsV1beta1PodSecurityPolicySpec
-> ExtensionsV1beta1RunAsUserStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRunAsGroup :: ExtensionsV1beta1PodSecurityPolicySpec
-> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRequiredDropCapabilities :: ExtensionsV1beta1PodSecurityPolicySpec -> Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecReadOnlyRootFilesystem :: ExtensionsV1beta1PodSecurityPolicySpec -> Maybe Bool
extensionsV1beta1PodSecurityPolicySpecPrivileged :: ExtensionsV1beta1PodSecurityPolicySpec -> Maybe Bool
extensionsV1beta1PodSecurityPolicySpecHostPorts :: ExtensionsV1beta1PodSecurityPolicySpec
-> Maybe [ExtensionsV1beta1HostPortRange]
extensionsV1beta1PodSecurityPolicySpecHostPid :: ExtensionsV1beta1PodSecurityPolicySpec -> Maybe Bool
extensionsV1beta1PodSecurityPolicySpecHostNetwork :: ExtensionsV1beta1PodSecurityPolicySpec -> Maybe Bool
extensionsV1beta1PodSecurityPolicySpecHostIpc :: ExtensionsV1beta1PodSecurityPolicySpec -> Maybe Bool
extensionsV1beta1PodSecurityPolicySpecFsGroup :: ExtensionsV1beta1PodSecurityPolicySpec
-> ExtensionsV1beta1FSGroupStrategyOptions
extensionsV1beta1PodSecurityPolicySpecForbiddenSysctls :: ExtensionsV1beta1PodSecurityPolicySpec -> Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecDefaultAllowPrivilegeEscalation :: ExtensionsV1beta1PodSecurityPolicySpec -> Maybe Bool
extensionsV1beta1PodSecurityPolicySpecDefaultAddCapabilities :: ExtensionsV1beta1PodSecurityPolicySpec -> Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedUnsafeSysctls :: ExtensionsV1beta1PodSecurityPolicySpec -> Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedProcMountTypes :: ExtensionsV1beta1PodSecurityPolicySpec -> Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedHostPaths :: ExtensionsV1beta1PodSecurityPolicySpec
-> Maybe [ExtensionsV1beta1AllowedHostPath]
extensionsV1beta1PodSecurityPolicySpecAllowedFlexVolumes :: ExtensionsV1beta1PodSecurityPolicySpec
-> Maybe [ExtensionsV1beta1AllowedFlexVolume]
extensionsV1beta1PodSecurityPolicySpecAllowedCapabilities :: ExtensionsV1beta1PodSecurityPolicySpec -> Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedCsiDrivers :: ExtensionsV1beta1PodSecurityPolicySpec
-> Maybe [ExtensionsV1beta1AllowedCSIDriver]
extensionsV1beta1PodSecurityPolicySpecAllowPrivilegeEscalation :: ExtensionsV1beta1PodSecurityPolicySpec -> Maybe Bool
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"allowPrivilegeEscalation" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
extensionsV1beta1PodSecurityPolicySpecAllowPrivilegeEscalation
      , Text
"allowedCSIDrivers" Text -> Maybe [ExtensionsV1beta1AllowedCSIDriver] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [ExtensionsV1beta1AllowedCSIDriver]
extensionsV1beta1PodSecurityPolicySpecAllowedCsiDrivers
      , Text
"allowedCapabilities" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedCapabilities
      , Text
"allowedFlexVolumes" Text -> Maybe [ExtensionsV1beta1AllowedFlexVolume] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [ExtensionsV1beta1AllowedFlexVolume]
extensionsV1beta1PodSecurityPolicySpecAllowedFlexVolumes
      , Text
"allowedHostPaths" Text -> Maybe [ExtensionsV1beta1AllowedHostPath] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [ExtensionsV1beta1AllowedHostPath]
extensionsV1beta1PodSecurityPolicySpecAllowedHostPaths
      , Text
"allowedProcMountTypes" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedProcMountTypes
      , Text
"allowedUnsafeSysctls" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedUnsafeSysctls
      , Text
"defaultAddCapabilities" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecDefaultAddCapabilities
      , Text
"defaultAllowPrivilegeEscalation" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
extensionsV1beta1PodSecurityPolicySpecDefaultAllowPrivilegeEscalation
      , Text
"forbiddenSysctls" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecForbiddenSysctls
      , Text
"fsGroup" Text -> ExtensionsV1beta1FSGroupStrategyOptions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= ExtensionsV1beta1FSGroupStrategyOptions
extensionsV1beta1PodSecurityPolicySpecFsGroup
      , Text
"hostIPC" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
extensionsV1beta1PodSecurityPolicySpecHostIpc
      , Text
"hostNetwork" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
extensionsV1beta1PodSecurityPolicySpecHostNetwork
      , Text
"hostPID" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
extensionsV1beta1PodSecurityPolicySpecHostPid
      , Text
"hostPorts" Text -> Maybe [ExtensionsV1beta1HostPortRange] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [ExtensionsV1beta1HostPortRange]
extensionsV1beta1PodSecurityPolicySpecHostPorts
      , Text
"privileged" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
extensionsV1beta1PodSecurityPolicySpecPrivileged
      , Text
"readOnlyRootFilesystem" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
extensionsV1beta1PodSecurityPolicySpecReadOnlyRootFilesystem
      , Text
"requiredDropCapabilities" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecRequiredDropCapabilities
      , Text
"runAsGroup" Text
-> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
-> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRunAsGroup
      , Text
"runAsUser" Text -> ExtensionsV1beta1RunAsUserStrategyOptions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= ExtensionsV1beta1RunAsUserStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRunAsUser
      , Text
"runtimeClass" Text
-> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
-> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRuntimeClass
      , Text
"seLinux" Text -> ExtensionsV1beta1SELinuxStrategyOptions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= ExtensionsV1beta1SELinuxStrategyOptions
extensionsV1beta1PodSecurityPolicySpecSeLinux
      , Text
"supplementalGroups" Text
-> ExtensionsV1beta1SupplementalGroupsStrategyOptions
-> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= ExtensionsV1beta1SupplementalGroupsStrategyOptions
extensionsV1beta1PodSecurityPolicySpecSupplementalGroups
      , Text
"volumes" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecVolumes
      ]


-- | Construct a value of type 'ExtensionsV1beta1PodSecurityPolicySpec' (by applying it's required fields, if any)
mkExtensionsV1beta1PodSecurityPolicySpec
  :: ExtensionsV1beta1FSGroupStrategyOptions -- ^ 'extensionsV1beta1PodSecurityPolicySpecFsGroup' 
  -> ExtensionsV1beta1RunAsUserStrategyOptions -- ^ 'extensionsV1beta1PodSecurityPolicySpecRunAsUser' 
  -> ExtensionsV1beta1SELinuxStrategyOptions -- ^ 'extensionsV1beta1PodSecurityPolicySpecSeLinux' 
  -> ExtensionsV1beta1SupplementalGroupsStrategyOptions -- ^ 'extensionsV1beta1PodSecurityPolicySpecSupplementalGroups' 
  -> ExtensionsV1beta1PodSecurityPolicySpec
mkExtensionsV1beta1PodSecurityPolicySpec :: ExtensionsV1beta1FSGroupStrategyOptions
-> ExtensionsV1beta1RunAsUserStrategyOptions
-> ExtensionsV1beta1SELinuxStrategyOptions
-> ExtensionsV1beta1SupplementalGroupsStrategyOptions
-> ExtensionsV1beta1PodSecurityPolicySpec
mkExtensionsV1beta1PodSecurityPolicySpec ExtensionsV1beta1FSGroupStrategyOptions
extensionsV1beta1PodSecurityPolicySpecFsGroup ExtensionsV1beta1RunAsUserStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRunAsUser ExtensionsV1beta1SELinuxStrategyOptions
extensionsV1beta1PodSecurityPolicySpecSeLinux ExtensionsV1beta1SupplementalGroupsStrategyOptions
extensionsV1beta1PodSecurityPolicySpecSupplementalGroups =
  ExtensionsV1beta1PodSecurityPolicySpec :: Maybe Bool
-> Maybe [ExtensionsV1beta1AllowedCSIDriver]
-> Maybe [Text]
-> Maybe [ExtensionsV1beta1AllowedFlexVolume]
-> Maybe [ExtensionsV1beta1AllowedHostPath]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe Bool
-> Maybe [Text]
-> ExtensionsV1beta1FSGroupStrategyOptions
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe [ExtensionsV1beta1HostPortRange]
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
-> ExtensionsV1beta1RunAsUserStrategyOptions
-> Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
-> ExtensionsV1beta1SELinuxStrategyOptions
-> ExtensionsV1beta1SupplementalGroupsStrategyOptions
-> Maybe [Text]
-> ExtensionsV1beta1PodSecurityPolicySpec
ExtensionsV1beta1PodSecurityPolicySpec
  { extensionsV1beta1PodSecurityPolicySpecAllowPrivilegeEscalation :: Maybe Bool
extensionsV1beta1PodSecurityPolicySpecAllowPrivilegeEscalation = Maybe Bool
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpecAllowedCsiDrivers :: Maybe [ExtensionsV1beta1AllowedCSIDriver]
extensionsV1beta1PodSecurityPolicySpecAllowedCsiDrivers = Maybe [ExtensionsV1beta1AllowedCSIDriver]
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpecAllowedCapabilities :: Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedCapabilities = Maybe [Text]
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpecAllowedFlexVolumes :: Maybe [ExtensionsV1beta1AllowedFlexVolume]
extensionsV1beta1PodSecurityPolicySpecAllowedFlexVolumes = Maybe [ExtensionsV1beta1AllowedFlexVolume]
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpecAllowedHostPaths :: Maybe [ExtensionsV1beta1AllowedHostPath]
extensionsV1beta1PodSecurityPolicySpecAllowedHostPaths = Maybe [ExtensionsV1beta1AllowedHostPath]
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpecAllowedProcMountTypes :: Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedProcMountTypes = Maybe [Text]
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpecAllowedUnsafeSysctls :: Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecAllowedUnsafeSysctls = Maybe [Text]
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpecDefaultAddCapabilities :: Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecDefaultAddCapabilities = Maybe [Text]
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpecDefaultAllowPrivilegeEscalation :: Maybe Bool
extensionsV1beta1PodSecurityPolicySpecDefaultAllowPrivilegeEscalation = Maybe Bool
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpecForbiddenSysctls :: Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecForbiddenSysctls = Maybe [Text]
forall a. Maybe a
Nothing
  , ExtensionsV1beta1FSGroupStrategyOptions
extensionsV1beta1PodSecurityPolicySpecFsGroup :: ExtensionsV1beta1FSGroupStrategyOptions
extensionsV1beta1PodSecurityPolicySpecFsGroup :: ExtensionsV1beta1FSGroupStrategyOptions
extensionsV1beta1PodSecurityPolicySpecFsGroup
  , extensionsV1beta1PodSecurityPolicySpecHostIpc :: Maybe Bool
extensionsV1beta1PodSecurityPolicySpecHostIpc = Maybe Bool
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpecHostNetwork :: Maybe Bool
extensionsV1beta1PodSecurityPolicySpecHostNetwork = Maybe Bool
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpecHostPid :: Maybe Bool
extensionsV1beta1PodSecurityPolicySpecHostPid = Maybe Bool
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpecHostPorts :: Maybe [ExtensionsV1beta1HostPortRange]
extensionsV1beta1PodSecurityPolicySpecHostPorts = Maybe [ExtensionsV1beta1HostPortRange]
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpecPrivileged :: Maybe Bool
extensionsV1beta1PodSecurityPolicySpecPrivileged = Maybe Bool
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpecReadOnlyRootFilesystem :: Maybe Bool
extensionsV1beta1PodSecurityPolicySpecReadOnlyRootFilesystem = Maybe Bool
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpecRequiredDropCapabilities :: Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecRequiredDropCapabilities = Maybe [Text]
forall a. Maybe a
Nothing
  , extensionsV1beta1PodSecurityPolicySpecRunAsGroup :: Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRunAsGroup = Maybe ExtensionsV1beta1RunAsGroupStrategyOptions
forall a. Maybe a
Nothing
  , ExtensionsV1beta1RunAsUserStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRunAsUser :: ExtensionsV1beta1RunAsUserStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRunAsUser :: ExtensionsV1beta1RunAsUserStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRunAsUser
  , extensionsV1beta1PodSecurityPolicySpecRuntimeClass :: Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
extensionsV1beta1PodSecurityPolicySpecRuntimeClass = Maybe ExtensionsV1beta1RuntimeClassStrategyOptions
forall a. Maybe a
Nothing
  , ExtensionsV1beta1SELinuxStrategyOptions
extensionsV1beta1PodSecurityPolicySpecSeLinux :: ExtensionsV1beta1SELinuxStrategyOptions
extensionsV1beta1PodSecurityPolicySpecSeLinux :: ExtensionsV1beta1SELinuxStrategyOptions
extensionsV1beta1PodSecurityPolicySpecSeLinux
  , ExtensionsV1beta1SupplementalGroupsStrategyOptions
extensionsV1beta1PodSecurityPolicySpecSupplementalGroups :: ExtensionsV1beta1SupplementalGroupsStrategyOptions
extensionsV1beta1PodSecurityPolicySpecSupplementalGroups :: ExtensionsV1beta1SupplementalGroupsStrategyOptions
extensionsV1beta1PodSecurityPolicySpecSupplementalGroups
  , extensionsV1beta1PodSecurityPolicySpecVolumes :: Maybe [Text]
extensionsV1beta1PodSecurityPolicySpecVolumes = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1RollbackConfig
-- | ExtensionsV1beta1RollbackConfig
-- DEPRECATED.
data ExtensionsV1beta1RollbackConfig = ExtensionsV1beta1RollbackConfig
  { ExtensionsV1beta1RollbackConfig -> Maybe Integer
extensionsV1beta1RollbackConfigRevision :: !(Maybe Integer) -- ^ "revision" - The revision to rollback to. If set to 0, rollback to the last revision.
  } deriving (Int -> ExtensionsV1beta1RollbackConfig -> ShowS
[ExtensionsV1beta1RollbackConfig] -> ShowS
ExtensionsV1beta1RollbackConfig -> String
(Int -> ExtensionsV1beta1RollbackConfig -> ShowS)
-> (ExtensionsV1beta1RollbackConfig -> String)
-> ([ExtensionsV1beta1RollbackConfig] -> ShowS)
-> Show ExtensionsV1beta1RollbackConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1RollbackConfig] -> ShowS
$cshowList :: [ExtensionsV1beta1RollbackConfig] -> ShowS
show :: ExtensionsV1beta1RollbackConfig -> String
$cshow :: ExtensionsV1beta1RollbackConfig -> String
showsPrec :: Int -> ExtensionsV1beta1RollbackConfig -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1RollbackConfig -> ShowS
P.Show, ExtensionsV1beta1RollbackConfig
-> ExtensionsV1beta1RollbackConfig -> Bool
(ExtensionsV1beta1RollbackConfig
 -> ExtensionsV1beta1RollbackConfig -> Bool)
-> (ExtensionsV1beta1RollbackConfig
    -> ExtensionsV1beta1RollbackConfig -> Bool)
-> Eq ExtensionsV1beta1RollbackConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1RollbackConfig
-> ExtensionsV1beta1RollbackConfig -> Bool
$c/= :: ExtensionsV1beta1RollbackConfig
-> ExtensionsV1beta1RollbackConfig -> Bool
== :: ExtensionsV1beta1RollbackConfig
-> ExtensionsV1beta1RollbackConfig -> Bool
$c== :: ExtensionsV1beta1RollbackConfig
-> ExtensionsV1beta1RollbackConfig -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1RollbackConfig
instance A.FromJSON ExtensionsV1beta1RollbackConfig where
  parseJSON :: Value -> Parser ExtensionsV1beta1RollbackConfig
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1RollbackConfig)
-> Value
-> Parser ExtensionsV1beta1RollbackConfig
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1RollbackConfig" ((Object -> Parser ExtensionsV1beta1RollbackConfig)
 -> Value -> Parser ExtensionsV1beta1RollbackConfig)
-> (Object -> Parser ExtensionsV1beta1RollbackConfig)
-> Value
-> Parser ExtensionsV1beta1RollbackConfig
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Integer -> ExtensionsV1beta1RollbackConfig
ExtensionsV1beta1RollbackConfig
      (Maybe Integer -> ExtensionsV1beta1RollbackConfig)
-> Parser (Maybe Integer) -> Parser ExtensionsV1beta1RollbackConfig
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"revision")

-- | ToJSON ExtensionsV1beta1RollbackConfig
instance A.ToJSON ExtensionsV1beta1RollbackConfig where
  toJSON :: ExtensionsV1beta1RollbackConfig -> Value
toJSON ExtensionsV1beta1RollbackConfig {Maybe Integer
extensionsV1beta1RollbackConfigRevision :: Maybe Integer
extensionsV1beta1RollbackConfigRevision :: ExtensionsV1beta1RollbackConfig -> Maybe Integer
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"revision" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
extensionsV1beta1RollbackConfigRevision
      ]


-- | Construct a value of type 'ExtensionsV1beta1RollbackConfig' (by applying it's required fields, if any)
mkExtensionsV1beta1RollbackConfig
  :: ExtensionsV1beta1RollbackConfig
mkExtensionsV1beta1RollbackConfig :: ExtensionsV1beta1RollbackConfig
mkExtensionsV1beta1RollbackConfig =
  ExtensionsV1beta1RollbackConfig :: Maybe Integer -> ExtensionsV1beta1RollbackConfig
ExtensionsV1beta1RollbackConfig
  { extensionsV1beta1RollbackConfigRevision :: Maybe Integer
extensionsV1beta1RollbackConfigRevision = Maybe Integer
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1RollingUpdateDeployment
-- | ExtensionsV1beta1RollingUpdateDeployment
-- Spec to control the desired behavior of rolling update.
data ExtensionsV1beta1RollingUpdateDeployment = ExtensionsV1beta1RollingUpdateDeployment
  { ExtensionsV1beta1RollingUpdateDeployment -> Maybe IntOrString
extensionsV1beta1RollingUpdateDeploymentMaxSurge :: !(Maybe IntOrString) -- ^ "maxSurge"
  , ExtensionsV1beta1RollingUpdateDeployment -> Maybe IntOrString
extensionsV1beta1RollingUpdateDeploymentMaxUnavailable :: !(Maybe IntOrString) -- ^ "maxUnavailable"
  } deriving (Int -> ExtensionsV1beta1RollingUpdateDeployment -> ShowS
[ExtensionsV1beta1RollingUpdateDeployment] -> ShowS
ExtensionsV1beta1RollingUpdateDeployment -> String
(Int -> ExtensionsV1beta1RollingUpdateDeployment -> ShowS)
-> (ExtensionsV1beta1RollingUpdateDeployment -> String)
-> ([ExtensionsV1beta1RollingUpdateDeployment] -> ShowS)
-> Show ExtensionsV1beta1RollingUpdateDeployment
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1RollingUpdateDeployment] -> ShowS
$cshowList :: [ExtensionsV1beta1RollingUpdateDeployment] -> ShowS
show :: ExtensionsV1beta1RollingUpdateDeployment -> String
$cshow :: ExtensionsV1beta1RollingUpdateDeployment -> String
showsPrec :: Int -> ExtensionsV1beta1RollingUpdateDeployment -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1RollingUpdateDeployment -> ShowS
P.Show, ExtensionsV1beta1RollingUpdateDeployment
-> ExtensionsV1beta1RollingUpdateDeployment -> Bool
(ExtensionsV1beta1RollingUpdateDeployment
 -> ExtensionsV1beta1RollingUpdateDeployment -> Bool)
-> (ExtensionsV1beta1RollingUpdateDeployment
    -> ExtensionsV1beta1RollingUpdateDeployment -> Bool)
-> Eq ExtensionsV1beta1RollingUpdateDeployment
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1RollingUpdateDeployment
-> ExtensionsV1beta1RollingUpdateDeployment -> Bool
$c/= :: ExtensionsV1beta1RollingUpdateDeployment
-> ExtensionsV1beta1RollingUpdateDeployment -> Bool
== :: ExtensionsV1beta1RollingUpdateDeployment
-> ExtensionsV1beta1RollingUpdateDeployment -> Bool
$c== :: ExtensionsV1beta1RollingUpdateDeployment
-> ExtensionsV1beta1RollingUpdateDeployment -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1RollingUpdateDeployment
instance A.FromJSON ExtensionsV1beta1RollingUpdateDeployment where
  parseJSON :: Value -> Parser ExtensionsV1beta1RollingUpdateDeployment
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1RollingUpdateDeployment)
-> Value
-> Parser ExtensionsV1beta1RollingUpdateDeployment
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1RollingUpdateDeployment" ((Object -> Parser ExtensionsV1beta1RollingUpdateDeployment)
 -> Value -> Parser ExtensionsV1beta1RollingUpdateDeployment)
-> (Object -> Parser ExtensionsV1beta1RollingUpdateDeployment)
-> Value
-> Parser ExtensionsV1beta1RollingUpdateDeployment
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe IntOrString
-> Maybe IntOrString -> ExtensionsV1beta1RollingUpdateDeployment
ExtensionsV1beta1RollingUpdateDeployment
      (Maybe IntOrString
 -> Maybe IntOrString -> ExtensionsV1beta1RollingUpdateDeployment)
-> Parser (Maybe IntOrString)
-> Parser
     (Maybe IntOrString -> ExtensionsV1beta1RollingUpdateDeployment)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe IntOrString)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxSurge")
      Parser
  (Maybe IntOrString -> ExtensionsV1beta1RollingUpdateDeployment)
-> Parser (Maybe IntOrString)
-> Parser ExtensionsV1beta1RollingUpdateDeployment
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe IntOrString)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxUnavailable")

-- | ToJSON ExtensionsV1beta1RollingUpdateDeployment
instance A.ToJSON ExtensionsV1beta1RollingUpdateDeployment where
  toJSON :: ExtensionsV1beta1RollingUpdateDeployment -> Value
toJSON ExtensionsV1beta1RollingUpdateDeployment {Maybe IntOrString
extensionsV1beta1RollingUpdateDeploymentMaxUnavailable :: Maybe IntOrString
extensionsV1beta1RollingUpdateDeploymentMaxSurge :: Maybe IntOrString
extensionsV1beta1RollingUpdateDeploymentMaxUnavailable :: ExtensionsV1beta1RollingUpdateDeployment -> Maybe IntOrString
extensionsV1beta1RollingUpdateDeploymentMaxSurge :: ExtensionsV1beta1RollingUpdateDeployment -> Maybe IntOrString
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"maxSurge" Text -> Maybe IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe IntOrString
extensionsV1beta1RollingUpdateDeploymentMaxSurge
      , Text
"maxUnavailable" Text -> Maybe IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe IntOrString
extensionsV1beta1RollingUpdateDeploymentMaxUnavailable
      ]


-- | Construct a value of type 'ExtensionsV1beta1RollingUpdateDeployment' (by applying it's required fields, if any)
mkExtensionsV1beta1RollingUpdateDeployment
  :: ExtensionsV1beta1RollingUpdateDeployment
mkExtensionsV1beta1RollingUpdateDeployment :: ExtensionsV1beta1RollingUpdateDeployment
mkExtensionsV1beta1RollingUpdateDeployment =
  ExtensionsV1beta1RollingUpdateDeployment :: Maybe IntOrString
-> Maybe IntOrString -> ExtensionsV1beta1RollingUpdateDeployment
ExtensionsV1beta1RollingUpdateDeployment
  { extensionsV1beta1RollingUpdateDeploymentMaxSurge :: Maybe IntOrString
extensionsV1beta1RollingUpdateDeploymentMaxSurge = Maybe IntOrString
forall a. Maybe a
Nothing
  , extensionsV1beta1RollingUpdateDeploymentMaxUnavailable :: Maybe IntOrString
extensionsV1beta1RollingUpdateDeploymentMaxUnavailable = Maybe IntOrString
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1RunAsGroupStrategyOptions
-- | ExtensionsV1beta1RunAsGroupStrategyOptions
-- RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsGroupStrategyOptions from policy API Group instead.
data ExtensionsV1beta1RunAsGroupStrategyOptions = ExtensionsV1beta1RunAsGroupStrategyOptions
  { ExtensionsV1beta1RunAsGroupStrategyOptions
-> Maybe [ExtensionsV1beta1IDRange]
extensionsV1beta1RunAsGroupStrategyOptionsRanges :: !(Maybe [ExtensionsV1beta1IDRange]) -- ^ "ranges" - ranges are the allowed ranges of gids that may be used. If you would like to force a single gid then supply a single range with the same start and end. Required for MustRunAs.
  , ExtensionsV1beta1RunAsGroupStrategyOptions -> Text
extensionsV1beta1RunAsGroupStrategyOptionsRule :: !(Text) -- ^ /Required/ "rule" - rule is the strategy that will dictate the allowable RunAsGroup values that may be set.
  } deriving (Int -> ExtensionsV1beta1RunAsGroupStrategyOptions -> ShowS
[ExtensionsV1beta1RunAsGroupStrategyOptions] -> ShowS
ExtensionsV1beta1RunAsGroupStrategyOptions -> String
(Int -> ExtensionsV1beta1RunAsGroupStrategyOptions -> ShowS)
-> (ExtensionsV1beta1RunAsGroupStrategyOptions -> String)
-> ([ExtensionsV1beta1RunAsGroupStrategyOptions] -> ShowS)
-> Show ExtensionsV1beta1RunAsGroupStrategyOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1RunAsGroupStrategyOptions] -> ShowS
$cshowList :: [ExtensionsV1beta1RunAsGroupStrategyOptions] -> ShowS
show :: ExtensionsV1beta1RunAsGroupStrategyOptions -> String
$cshow :: ExtensionsV1beta1RunAsGroupStrategyOptions -> String
showsPrec :: Int -> ExtensionsV1beta1RunAsGroupStrategyOptions -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1RunAsGroupStrategyOptions -> ShowS
P.Show, ExtensionsV1beta1RunAsGroupStrategyOptions
-> ExtensionsV1beta1RunAsGroupStrategyOptions -> Bool
(ExtensionsV1beta1RunAsGroupStrategyOptions
 -> ExtensionsV1beta1RunAsGroupStrategyOptions -> Bool)
-> (ExtensionsV1beta1RunAsGroupStrategyOptions
    -> ExtensionsV1beta1RunAsGroupStrategyOptions -> Bool)
-> Eq ExtensionsV1beta1RunAsGroupStrategyOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1RunAsGroupStrategyOptions
-> ExtensionsV1beta1RunAsGroupStrategyOptions -> Bool
$c/= :: ExtensionsV1beta1RunAsGroupStrategyOptions
-> ExtensionsV1beta1RunAsGroupStrategyOptions -> Bool
== :: ExtensionsV1beta1RunAsGroupStrategyOptions
-> ExtensionsV1beta1RunAsGroupStrategyOptions -> Bool
$c== :: ExtensionsV1beta1RunAsGroupStrategyOptions
-> ExtensionsV1beta1RunAsGroupStrategyOptions -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1RunAsGroupStrategyOptions
instance A.FromJSON ExtensionsV1beta1RunAsGroupStrategyOptions where
  parseJSON :: Value -> Parser ExtensionsV1beta1RunAsGroupStrategyOptions
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1RunAsGroupStrategyOptions)
-> Value
-> Parser ExtensionsV1beta1RunAsGroupStrategyOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1RunAsGroupStrategyOptions" ((Object -> Parser ExtensionsV1beta1RunAsGroupStrategyOptions)
 -> Value -> Parser ExtensionsV1beta1RunAsGroupStrategyOptions)
-> (Object -> Parser ExtensionsV1beta1RunAsGroupStrategyOptions)
-> Value
-> Parser ExtensionsV1beta1RunAsGroupStrategyOptions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [ExtensionsV1beta1IDRange]
-> Text -> ExtensionsV1beta1RunAsGroupStrategyOptions
ExtensionsV1beta1RunAsGroupStrategyOptions
      (Maybe [ExtensionsV1beta1IDRange]
 -> Text -> ExtensionsV1beta1RunAsGroupStrategyOptions)
-> Parser (Maybe [ExtensionsV1beta1IDRange])
-> Parser (Text -> ExtensionsV1beta1RunAsGroupStrategyOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [ExtensionsV1beta1IDRange])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ranges")
      Parser (Text -> ExtensionsV1beta1RunAsGroupStrategyOptions)
-> Parser Text -> Parser ExtensionsV1beta1RunAsGroupStrategyOptions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"rule")

-- | ToJSON ExtensionsV1beta1RunAsGroupStrategyOptions
instance A.ToJSON ExtensionsV1beta1RunAsGroupStrategyOptions where
  toJSON :: ExtensionsV1beta1RunAsGroupStrategyOptions -> Value
toJSON ExtensionsV1beta1RunAsGroupStrategyOptions {Maybe [ExtensionsV1beta1IDRange]
Text
extensionsV1beta1RunAsGroupStrategyOptionsRule :: Text
extensionsV1beta1RunAsGroupStrategyOptionsRanges :: Maybe [ExtensionsV1beta1IDRange]
extensionsV1beta1RunAsGroupStrategyOptionsRule :: ExtensionsV1beta1RunAsGroupStrategyOptions -> Text
extensionsV1beta1RunAsGroupStrategyOptionsRanges :: ExtensionsV1beta1RunAsGroupStrategyOptions
-> Maybe [ExtensionsV1beta1IDRange]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"ranges" Text -> Maybe [ExtensionsV1beta1IDRange] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [ExtensionsV1beta1IDRange]
extensionsV1beta1RunAsGroupStrategyOptionsRanges
      , Text
"rule" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
extensionsV1beta1RunAsGroupStrategyOptionsRule
      ]


-- | Construct a value of type 'ExtensionsV1beta1RunAsGroupStrategyOptions' (by applying it's required fields, if any)
mkExtensionsV1beta1RunAsGroupStrategyOptions
  :: Text -- ^ 'extensionsV1beta1RunAsGroupStrategyOptionsRule': rule is the strategy that will dictate the allowable RunAsGroup values that may be set.
  -> ExtensionsV1beta1RunAsGroupStrategyOptions
mkExtensionsV1beta1RunAsGroupStrategyOptions :: Text -> ExtensionsV1beta1RunAsGroupStrategyOptions
mkExtensionsV1beta1RunAsGroupStrategyOptions Text
extensionsV1beta1RunAsGroupStrategyOptionsRule =
  ExtensionsV1beta1RunAsGroupStrategyOptions :: Maybe [ExtensionsV1beta1IDRange]
-> Text -> ExtensionsV1beta1RunAsGroupStrategyOptions
ExtensionsV1beta1RunAsGroupStrategyOptions
  { extensionsV1beta1RunAsGroupStrategyOptionsRanges :: Maybe [ExtensionsV1beta1IDRange]
extensionsV1beta1RunAsGroupStrategyOptionsRanges = Maybe [ExtensionsV1beta1IDRange]
forall a. Maybe a
Nothing
  , Text
extensionsV1beta1RunAsGroupStrategyOptionsRule :: Text
extensionsV1beta1RunAsGroupStrategyOptionsRule :: Text
extensionsV1beta1RunAsGroupStrategyOptionsRule
  }

-- ** ExtensionsV1beta1RunAsUserStrategyOptions
-- | ExtensionsV1beta1RunAsUserStrategyOptions
-- RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsUserStrategyOptions from policy API Group instead.
data ExtensionsV1beta1RunAsUserStrategyOptions = ExtensionsV1beta1RunAsUserStrategyOptions
  { ExtensionsV1beta1RunAsUserStrategyOptions
-> Maybe [ExtensionsV1beta1IDRange]
extensionsV1beta1RunAsUserStrategyOptionsRanges :: !(Maybe [ExtensionsV1beta1IDRange]) -- ^ "ranges" - ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.
  , ExtensionsV1beta1RunAsUserStrategyOptions -> Text
extensionsV1beta1RunAsUserStrategyOptionsRule :: !(Text) -- ^ /Required/ "rule" - rule is the strategy that will dictate the allowable RunAsUser values that may be set.
  } deriving (Int -> ExtensionsV1beta1RunAsUserStrategyOptions -> ShowS
[ExtensionsV1beta1RunAsUserStrategyOptions] -> ShowS
ExtensionsV1beta1RunAsUserStrategyOptions -> String
(Int -> ExtensionsV1beta1RunAsUserStrategyOptions -> ShowS)
-> (ExtensionsV1beta1RunAsUserStrategyOptions -> String)
-> ([ExtensionsV1beta1RunAsUserStrategyOptions] -> ShowS)
-> Show ExtensionsV1beta1RunAsUserStrategyOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1RunAsUserStrategyOptions] -> ShowS
$cshowList :: [ExtensionsV1beta1RunAsUserStrategyOptions] -> ShowS
show :: ExtensionsV1beta1RunAsUserStrategyOptions -> String
$cshow :: ExtensionsV1beta1RunAsUserStrategyOptions -> String
showsPrec :: Int -> ExtensionsV1beta1RunAsUserStrategyOptions -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1RunAsUserStrategyOptions -> ShowS
P.Show, ExtensionsV1beta1RunAsUserStrategyOptions
-> ExtensionsV1beta1RunAsUserStrategyOptions -> Bool
(ExtensionsV1beta1RunAsUserStrategyOptions
 -> ExtensionsV1beta1RunAsUserStrategyOptions -> Bool)
-> (ExtensionsV1beta1RunAsUserStrategyOptions
    -> ExtensionsV1beta1RunAsUserStrategyOptions -> Bool)
-> Eq ExtensionsV1beta1RunAsUserStrategyOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1RunAsUserStrategyOptions
-> ExtensionsV1beta1RunAsUserStrategyOptions -> Bool
$c/= :: ExtensionsV1beta1RunAsUserStrategyOptions
-> ExtensionsV1beta1RunAsUserStrategyOptions -> Bool
== :: ExtensionsV1beta1RunAsUserStrategyOptions
-> ExtensionsV1beta1RunAsUserStrategyOptions -> Bool
$c== :: ExtensionsV1beta1RunAsUserStrategyOptions
-> ExtensionsV1beta1RunAsUserStrategyOptions -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1RunAsUserStrategyOptions
instance A.FromJSON ExtensionsV1beta1RunAsUserStrategyOptions where
  parseJSON :: Value -> Parser ExtensionsV1beta1RunAsUserStrategyOptions
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1RunAsUserStrategyOptions)
-> Value
-> Parser ExtensionsV1beta1RunAsUserStrategyOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1RunAsUserStrategyOptions" ((Object -> Parser ExtensionsV1beta1RunAsUserStrategyOptions)
 -> Value -> Parser ExtensionsV1beta1RunAsUserStrategyOptions)
-> (Object -> Parser ExtensionsV1beta1RunAsUserStrategyOptions)
-> Value
-> Parser ExtensionsV1beta1RunAsUserStrategyOptions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [ExtensionsV1beta1IDRange]
-> Text -> ExtensionsV1beta1RunAsUserStrategyOptions
ExtensionsV1beta1RunAsUserStrategyOptions
      (Maybe [ExtensionsV1beta1IDRange]
 -> Text -> ExtensionsV1beta1RunAsUserStrategyOptions)
-> Parser (Maybe [ExtensionsV1beta1IDRange])
-> Parser (Text -> ExtensionsV1beta1RunAsUserStrategyOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [ExtensionsV1beta1IDRange])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ranges")
      Parser (Text -> ExtensionsV1beta1RunAsUserStrategyOptions)
-> Parser Text -> Parser ExtensionsV1beta1RunAsUserStrategyOptions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"rule")

-- | ToJSON ExtensionsV1beta1RunAsUserStrategyOptions
instance A.ToJSON ExtensionsV1beta1RunAsUserStrategyOptions where
  toJSON :: ExtensionsV1beta1RunAsUserStrategyOptions -> Value
toJSON ExtensionsV1beta1RunAsUserStrategyOptions {Maybe [ExtensionsV1beta1IDRange]
Text
extensionsV1beta1RunAsUserStrategyOptionsRule :: Text
extensionsV1beta1RunAsUserStrategyOptionsRanges :: Maybe [ExtensionsV1beta1IDRange]
extensionsV1beta1RunAsUserStrategyOptionsRule :: ExtensionsV1beta1RunAsUserStrategyOptions -> Text
extensionsV1beta1RunAsUserStrategyOptionsRanges :: ExtensionsV1beta1RunAsUserStrategyOptions
-> Maybe [ExtensionsV1beta1IDRange]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"ranges" Text -> Maybe [ExtensionsV1beta1IDRange] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [ExtensionsV1beta1IDRange]
extensionsV1beta1RunAsUserStrategyOptionsRanges
      , Text
"rule" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
extensionsV1beta1RunAsUserStrategyOptionsRule
      ]


-- | Construct a value of type 'ExtensionsV1beta1RunAsUserStrategyOptions' (by applying it's required fields, if any)
mkExtensionsV1beta1RunAsUserStrategyOptions
  :: Text -- ^ 'extensionsV1beta1RunAsUserStrategyOptionsRule': rule is the strategy that will dictate the allowable RunAsUser values that may be set.
  -> ExtensionsV1beta1RunAsUserStrategyOptions
mkExtensionsV1beta1RunAsUserStrategyOptions :: Text -> ExtensionsV1beta1RunAsUserStrategyOptions
mkExtensionsV1beta1RunAsUserStrategyOptions Text
extensionsV1beta1RunAsUserStrategyOptionsRule =
  ExtensionsV1beta1RunAsUserStrategyOptions :: Maybe [ExtensionsV1beta1IDRange]
-> Text -> ExtensionsV1beta1RunAsUserStrategyOptions
ExtensionsV1beta1RunAsUserStrategyOptions
  { extensionsV1beta1RunAsUserStrategyOptionsRanges :: Maybe [ExtensionsV1beta1IDRange]
extensionsV1beta1RunAsUserStrategyOptionsRanges = Maybe [ExtensionsV1beta1IDRange]
forall a. Maybe a
Nothing
  , Text
extensionsV1beta1RunAsUserStrategyOptionsRule :: Text
extensionsV1beta1RunAsUserStrategyOptionsRule :: Text
extensionsV1beta1RunAsUserStrategyOptionsRule
  }

-- ** ExtensionsV1beta1RuntimeClassStrategyOptions
-- | ExtensionsV1beta1RuntimeClassStrategyOptions
-- RuntimeClassStrategyOptions define the strategy that will dictate the allowable RuntimeClasses for a pod.
data ExtensionsV1beta1RuntimeClassStrategyOptions = ExtensionsV1beta1RuntimeClassStrategyOptions
  { ExtensionsV1beta1RuntimeClassStrategyOptions -> [Text]
extensionsV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames :: !([Text]) -- ^ /Required/ "allowedRuntimeClassNames" - allowedRuntimeClassNames is a whitelist of RuntimeClass names that may be specified on a pod. A value of \&quot;*\&quot; means that any RuntimeClass name is allowed, and must be the only item in the list. An empty list requires the RuntimeClassName field to be unset.
  , ExtensionsV1beta1RuntimeClassStrategyOptions -> Maybe Text
extensionsV1beta1RuntimeClassStrategyOptionsDefaultRuntimeClassName :: !(Maybe Text) -- ^ "defaultRuntimeClassName" - defaultRuntimeClassName is the default RuntimeClassName to set on the pod. The default MUST be allowed by the allowedRuntimeClassNames list. A value of nil does not mutate the Pod.
  } deriving (Int -> ExtensionsV1beta1RuntimeClassStrategyOptions -> ShowS
[ExtensionsV1beta1RuntimeClassStrategyOptions] -> ShowS
ExtensionsV1beta1RuntimeClassStrategyOptions -> String
(Int -> ExtensionsV1beta1RuntimeClassStrategyOptions -> ShowS)
-> (ExtensionsV1beta1RuntimeClassStrategyOptions -> String)
-> ([ExtensionsV1beta1RuntimeClassStrategyOptions] -> ShowS)
-> Show ExtensionsV1beta1RuntimeClassStrategyOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1RuntimeClassStrategyOptions] -> ShowS
$cshowList :: [ExtensionsV1beta1RuntimeClassStrategyOptions] -> ShowS
show :: ExtensionsV1beta1RuntimeClassStrategyOptions -> String
$cshow :: ExtensionsV1beta1RuntimeClassStrategyOptions -> String
showsPrec :: Int -> ExtensionsV1beta1RuntimeClassStrategyOptions -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1RuntimeClassStrategyOptions -> ShowS
P.Show, ExtensionsV1beta1RuntimeClassStrategyOptions
-> ExtensionsV1beta1RuntimeClassStrategyOptions -> Bool
(ExtensionsV1beta1RuntimeClassStrategyOptions
 -> ExtensionsV1beta1RuntimeClassStrategyOptions -> Bool)
-> (ExtensionsV1beta1RuntimeClassStrategyOptions
    -> ExtensionsV1beta1RuntimeClassStrategyOptions -> Bool)
-> Eq ExtensionsV1beta1RuntimeClassStrategyOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1RuntimeClassStrategyOptions
-> ExtensionsV1beta1RuntimeClassStrategyOptions -> Bool
$c/= :: ExtensionsV1beta1RuntimeClassStrategyOptions
-> ExtensionsV1beta1RuntimeClassStrategyOptions -> Bool
== :: ExtensionsV1beta1RuntimeClassStrategyOptions
-> ExtensionsV1beta1RuntimeClassStrategyOptions -> Bool
$c== :: ExtensionsV1beta1RuntimeClassStrategyOptions
-> ExtensionsV1beta1RuntimeClassStrategyOptions -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1RuntimeClassStrategyOptions
instance A.FromJSON ExtensionsV1beta1RuntimeClassStrategyOptions where
  parseJSON :: Value -> Parser ExtensionsV1beta1RuntimeClassStrategyOptions
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1RuntimeClassStrategyOptions)
-> Value
-> Parser ExtensionsV1beta1RuntimeClassStrategyOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1RuntimeClassStrategyOptions" ((Object -> Parser ExtensionsV1beta1RuntimeClassStrategyOptions)
 -> Value -> Parser ExtensionsV1beta1RuntimeClassStrategyOptions)
-> (Object -> Parser ExtensionsV1beta1RuntimeClassStrategyOptions)
-> Value
-> Parser ExtensionsV1beta1RuntimeClassStrategyOptions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    [Text]
-> Maybe Text -> ExtensionsV1beta1RuntimeClassStrategyOptions
ExtensionsV1beta1RuntimeClassStrategyOptions
      ([Text]
 -> Maybe Text -> ExtensionsV1beta1RuntimeClassStrategyOptions)
-> Parser [Text]
-> Parser
     (Maybe Text -> ExtensionsV1beta1RuntimeClassStrategyOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"allowedRuntimeClassNames")
      Parser (Maybe Text -> ExtensionsV1beta1RuntimeClassStrategyOptions)
-> Parser (Maybe Text)
-> Parser ExtensionsV1beta1RuntimeClassStrategyOptions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"defaultRuntimeClassName")

-- | ToJSON ExtensionsV1beta1RuntimeClassStrategyOptions
instance A.ToJSON ExtensionsV1beta1RuntimeClassStrategyOptions where
  toJSON :: ExtensionsV1beta1RuntimeClassStrategyOptions -> Value
toJSON ExtensionsV1beta1RuntimeClassStrategyOptions {[Text]
Maybe Text
extensionsV1beta1RuntimeClassStrategyOptionsDefaultRuntimeClassName :: Maybe Text
extensionsV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames :: [Text]
extensionsV1beta1RuntimeClassStrategyOptionsDefaultRuntimeClassName :: ExtensionsV1beta1RuntimeClassStrategyOptions -> Maybe Text
extensionsV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames :: ExtensionsV1beta1RuntimeClassStrategyOptions -> [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"allowedRuntimeClassNames" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
extensionsV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames
      , Text
"defaultRuntimeClassName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1RuntimeClassStrategyOptionsDefaultRuntimeClassName
      ]


-- | Construct a value of type 'ExtensionsV1beta1RuntimeClassStrategyOptions' (by applying it's required fields, if any)
mkExtensionsV1beta1RuntimeClassStrategyOptions
  :: [Text] -- ^ 'extensionsV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames': allowedRuntimeClassNames is a whitelist of RuntimeClass names that may be specified on a pod. A value of \"*\" means that any RuntimeClass name is allowed, and must be the only item in the list. An empty list requires the RuntimeClassName field to be unset.
  -> ExtensionsV1beta1RuntimeClassStrategyOptions
mkExtensionsV1beta1RuntimeClassStrategyOptions :: [Text] -> ExtensionsV1beta1RuntimeClassStrategyOptions
mkExtensionsV1beta1RuntimeClassStrategyOptions [Text]
extensionsV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames =
  ExtensionsV1beta1RuntimeClassStrategyOptions :: [Text]
-> Maybe Text -> ExtensionsV1beta1RuntimeClassStrategyOptions
ExtensionsV1beta1RuntimeClassStrategyOptions
  { [Text]
extensionsV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames :: [Text]
extensionsV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames :: [Text]
extensionsV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames
  , extensionsV1beta1RuntimeClassStrategyOptionsDefaultRuntimeClassName :: Maybe Text
extensionsV1beta1RuntimeClassStrategyOptionsDefaultRuntimeClassName = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1SELinuxStrategyOptions
-- | ExtensionsV1beta1SELinuxStrategyOptions
-- SELinuxStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use SELinuxStrategyOptions from policy API Group instead.
data ExtensionsV1beta1SELinuxStrategyOptions = ExtensionsV1beta1SELinuxStrategyOptions
  { ExtensionsV1beta1SELinuxStrategyOptions -> Text
extensionsV1beta1SELinuxStrategyOptionsRule :: !(Text) -- ^ /Required/ "rule" - rule is the strategy that will dictate the allowable labels that may be set.
  , ExtensionsV1beta1SELinuxStrategyOptions -> Maybe V1SELinuxOptions
extensionsV1beta1SELinuxStrategyOptionsSeLinuxOptions :: !(Maybe V1SELinuxOptions) -- ^ "seLinuxOptions"
  } deriving (Int -> ExtensionsV1beta1SELinuxStrategyOptions -> ShowS
[ExtensionsV1beta1SELinuxStrategyOptions] -> ShowS
ExtensionsV1beta1SELinuxStrategyOptions -> String
(Int -> ExtensionsV1beta1SELinuxStrategyOptions -> ShowS)
-> (ExtensionsV1beta1SELinuxStrategyOptions -> String)
-> ([ExtensionsV1beta1SELinuxStrategyOptions] -> ShowS)
-> Show ExtensionsV1beta1SELinuxStrategyOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1SELinuxStrategyOptions] -> ShowS
$cshowList :: [ExtensionsV1beta1SELinuxStrategyOptions] -> ShowS
show :: ExtensionsV1beta1SELinuxStrategyOptions -> String
$cshow :: ExtensionsV1beta1SELinuxStrategyOptions -> String
showsPrec :: Int -> ExtensionsV1beta1SELinuxStrategyOptions -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1SELinuxStrategyOptions -> ShowS
P.Show, ExtensionsV1beta1SELinuxStrategyOptions
-> ExtensionsV1beta1SELinuxStrategyOptions -> Bool
(ExtensionsV1beta1SELinuxStrategyOptions
 -> ExtensionsV1beta1SELinuxStrategyOptions -> Bool)
-> (ExtensionsV1beta1SELinuxStrategyOptions
    -> ExtensionsV1beta1SELinuxStrategyOptions -> Bool)
-> Eq ExtensionsV1beta1SELinuxStrategyOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1SELinuxStrategyOptions
-> ExtensionsV1beta1SELinuxStrategyOptions -> Bool
$c/= :: ExtensionsV1beta1SELinuxStrategyOptions
-> ExtensionsV1beta1SELinuxStrategyOptions -> Bool
== :: ExtensionsV1beta1SELinuxStrategyOptions
-> ExtensionsV1beta1SELinuxStrategyOptions -> Bool
$c== :: ExtensionsV1beta1SELinuxStrategyOptions
-> ExtensionsV1beta1SELinuxStrategyOptions -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1SELinuxStrategyOptions
instance A.FromJSON ExtensionsV1beta1SELinuxStrategyOptions where
  parseJSON :: Value -> Parser ExtensionsV1beta1SELinuxStrategyOptions
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1SELinuxStrategyOptions)
-> Value
-> Parser ExtensionsV1beta1SELinuxStrategyOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1SELinuxStrategyOptions" ((Object -> Parser ExtensionsV1beta1SELinuxStrategyOptions)
 -> Value -> Parser ExtensionsV1beta1SELinuxStrategyOptions)
-> (Object -> Parser ExtensionsV1beta1SELinuxStrategyOptions)
-> Value
-> Parser ExtensionsV1beta1SELinuxStrategyOptions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Maybe V1SELinuxOptions
-> ExtensionsV1beta1SELinuxStrategyOptions
ExtensionsV1beta1SELinuxStrategyOptions
      (Text
 -> Maybe V1SELinuxOptions
 -> ExtensionsV1beta1SELinuxStrategyOptions)
-> Parser Text
-> Parser
     (Maybe V1SELinuxOptions -> ExtensionsV1beta1SELinuxStrategyOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"rule")
      Parser
  (Maybe V1SELinuxOptions -> ExtensionsV1beta1SELinuxStrategyOptions)
-> Parser (Maybe V1SELinuxOptions)
-> Parser ExtensionsV1beta1SELinuxStrategyOptions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SELinuxOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"seLinuxOptions")

-- | ToJSON ExtensionsV1beta1SELinuxStrategyOptions
instance A.ToJSON ExtensionsV1beta1SELinuxStrategyOptions where
  toJSON :: ExtensionsV1beta1SELinuxStrategyOptions -> Value
toJSON ExtensionsV1beta1SELinuxStrategyOptions {Maybe V1SELinuxOptions
Text
extensionsV1beta1SELinuxStrategyOptionsSeLinuxOptions :: Maybe V1SELinuxOptions
extensionsV1beta1SELinuxStrategyOptionsRule :: Text
extensionsV1beta1SELinuxStrategyOptionsSeLinuxOptions :: ExtensionsV1beta1SELinuxStrategyOptions -> Maybe V1SELinuxOptions
extensionsV1beta1SELinuxStrategyOptionsRule :: ExtensionsV1beta1SELinuxStrategyOptions -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"rule" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
extensionsV1beta1SELinuxStrategyOptionsRule
      , Text
"seLinuxOptions" Text -> Maybe V1SELinuxOptions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SELinuxOptions
extensionsV1beta1SELinuxStrategyOptionsSeLinuxOptions
      ]


-- | Construct a value of type 'ExtensionsV1beta1SELinuxStrategyOptions' (by applying it's required fields, if any)
mkExtensionsV1beta1SELinuxStrategyOptions
  :: Text -- ^ 'extensionsV1beta1SELinuxStrategyOptionsRule': rule is the strategy that will dictate the allowable labels that may be set.
  -> ExtensionsV1beta1SELinuxStrategyOptions
mkExtensionsV1beta1SELinuxStrategyOptions :: Text -> ExtensionsV1beta1SELinuxStrategyOptions
mkExtensionsV1beta1SELinuxStrategyOptions Text
extensionsV1beta1SELinuxStrategyOptionsRule =
  ExtensionsV1beta1SELinuxStrategyOptions :: Text
-> Maybe V1SELinuxOptions
-> ExtensionsV1beta1SELinuxStrategyOptions
ExtensionsV1beta1SELinuxStrategyOptions
  { Text
extensionsV1beta1SELinuxStrategyOptionsRule :: Text
extensionsV1beta1SELinuxStrategyOptionsRule :: Text
extensionsV1beta1SELinuxStrategyOptionsRule
  , extensionsV1beta1SELinuxStrategyOptionsSeLinuxOptions :: Maybe V1SELinuxOptions
extensionsV1beta1SELinuxStrategyOptionsSeLinuxOptions = Maybe V1SELinuxOptions
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1Scale
-- | ExtensionsV1beta1Scale
-- represents a scaling request for a resource.
data ExtensionsV1beta1Scale = ExtensionsV1beta1Scale
  { ExtensionsV1beta1Scale -> Maybe Text
extensionsV1beta1ScaleApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , ExtensionsV1beta1Scale -> Maybe Text
extensionsV1beta1ScaleKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , ExtensionsV1beta1Scale -> Maybe V1ObjectMeta
extensionsV1beta1ScaleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , ExtensionsV1beta1Scale -> Maybe ExtensionsV1beta1ScaleSpec
extensionsV1beta1ScaleSpec :: !(Maybe ExtensionsV1beta1ScaleSpec) -- ^ "spec"
  , ExtensionsV1beta1Scale -> Maybe ExtensionsV1beta1ScaleStatus
extensionsV1beta1ScaleStatus :: !(Maybe ExtensionsV1beta1ScaleStatus) -- ^ "status"
  } deriving (Int -> ExtensionsV1beta1Scale -> ShowS
[ExtensionsV1beta1Scale] -> ShowS
ExtensionsV1beta1Scale -> String
(Int -> ExtensionsV1beta1Scale -> ShowS)
-> (ExtensionsV1beta1Scale -> String)
-> ([ExtensionsV1beta1Scale] -> ShowS)
-> Show ExtensionsV1beta1Scale
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1Scale] -> ShowS
$cshowList :: [ExtensionsV1beta1Scale] -> ShowS
show :: ExtensionsV1beta1Scale -> String
$cshow :: ExtensionsV1beta1Scale -> String
showsPrec :: Int -> ExtensionsV1beta1Scale -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1Scale -> ShowS
P.Show, ExtensionsV1beta1Scale -> ExtensionsV1beta1Scale -> Bool
(ExtensionsV1beta1Scale -> ExtensionsV1beta1Scale -> Bool)
-> (ExtensionsV1beta1Scale -> ExtensionsV1beta1Scale -> Bool)
-> Eq ExtensionsV1beta1Scale
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1Scale -> ExtensionsV1beta1Scale -> Bool
$c/= :: ExtensionsV1beta1Scale -> ExtensionsV1beta1Scale -> Bool
== :: ExtensionsV1beta1Scale -> ExtensionsV1beta1Scale -> Bool
$c== :: ExtensionsV1beta1Scale -> ExtensionsV1beta1Scale -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1Scale
instance A.FromJSON ExtensionsV1beta1Scale where
  parseJSON :: Value -> Parser ExtensionsV1beta1Scale
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1Scale)
-> Value
-> Parser ExtensionsV1beta1Scale
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1Scale" ((Object -> Parser ExtensionsV1beta1Scale)
 -> Value -> Parser ExtensionsV1beta1Scale)
-> (Object -> Parser ExtensionsV1beta1Scale)
-> Value
-> Parser ExtensionsV1beta1Scale
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe ExtensionsV1beta1ScaleSpec
-> Maybe ExtensionsV1beta1ScaleStatus
-> ExtensionsV1beta1Scale
ExtensionsV1beta1Scale
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe ExtensionsV1beta1ScaleSpec
 -> Maybe ExtensionsV1beta1ScaleStatus
 -> ExtensionsV1beta1Scale)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe ExtensionsV1beta1ScaleSpec
      -> Maybe ExtensionsV1beta1ScaleStatus
      -> ExtensionsV1beta1Scale)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe ExtensionsV1beta1ScaleSpec
   -> Maybe ExtensionsV1beta1ScaleStatus
   -> ExtensionsV1beta1Scale)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe ExtensionsV1beta1ScaleSpec
      -> Maybe ExtensionsV1beta1ScaleStatus
      -> ExtensionsV1beta1Scale)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe ExtensionsV1beta1ScaleSpec
   -> Maybe ExtensionsV1beta1ScaleStatus
   -> ExtensionsV1beta1Scale)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe ExtensionsV1beta1ScaleSpec
      -> Maybe ExtensionsV1beta1ScaleStatus -> ExtensionsV1beta1Scale)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe ExtensionsV1beta1ScaleSpec
   -> Maybe ExtensionsV1beta1ScaleStatus -> ExtensionsV1beta1Scale)
-> Parser (Maybe ExtensionsV1beta1ScaleSpec)
-> Parser
     (Maybe ExtensionsV1beta1ScaleStatus -> ExtensionsV1beta1Scale)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe ExtensionsV1beta1ScaleSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser
  (Maybe ExtensionsV1beta1ScaleStatus -> ExtensionsV1beta1Scale)
-> Parser (Maybe ExtensionsV1beta1ScaleStatus)
-> Parser ExtensionsV1beta1Scale
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe ExtensionsV1beta1ScaleStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON ExtensionsV1beta1Scale
instance A.ToJSON ExtensionsV1beta1Scale where
  toJSON :: ExtensionsV1beta1Scale -> Value
toJSON ExtensionsV1beta1Scale {Maybe Text
Maybe V1ObjectMeta
Maybe ExtensionsV1beta1ScaleStatus
Maybe ExtensionsV1beta1ScaleSpec
extensionsV1beta1ScaleStatus :: Maybe ExtensionsV1beta1ScaleStatus
extensionsV1beta1ScaleSpec :: Maybe ExtensionsV1beta1ScaleSpec
extensionsV1beta1ScaleMetadata :: Maybe V1ObjectMeta
extensionsV1beta1ScaleKind :: Maybe Text
extensionsV1beta1ScaleApiVersion :: Maybe Text
extensionsV1beta1ScaleStatus :: ExtensionsV1beta1Scale -> Maybe ExtensionsV1beta1ScaleStatus
extensionsV1beta1ScaleSpec :: ExtensionsV1beta1Scale -> Maybe ExtensionsV1beta1ScaleSpec
extensionsV1beta1ScaleMetadata :: ExtensionsV1beta1Scale -> Maybe V1ObjectMeta
extensionsV1beta1ScaleKind :: ExtensionsV1beta1Scale -> Maybe Text
extensionsV1beta1ScaleApiVersion :: ExtensionsV1beta1Scale -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1ScaleApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1ScaleKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
extensionsV1beta1ScaleMetadata
      , Text
"spec" Text -> Maybe ExtensionsV1beta1ScaleSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ExtensionsV1beta1ScaleSpec
extensionsV1beta1ScaleSpec
      , Text
"status" Text -> Maybe ExtensionsV1beta1ScaleStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ExtensionsV1beta1ScaleStatus
extensionsV1beta1ScaleStatus
      ]


-- | Construct a value of type 'ExtensionsV1beta1Scale' (by applying it's required fields, if any)
mkExtensionsV1beta1Scale
  :: ExtensionsV1beta1Scale
mkExtensionsV1beta1Scale :: ExtensionsV1beta1Scale
mkExtensionsV1beta1Scale =
  ExtensionsV1beta1Scale :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe ExtensionsV1beta1ScaleSpec
-> Maybe ExtensionsV1beta1ScaleStatus
-> ExtensionsV1beta1Scale
ExtensionsV1beta1Scale
  { extensionsV1beta1ScaleApiVersion :: Maybe Text
extensionsV1beta1ScaleApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , extensionsV1beta1ScaleKind :: Maybe Text
extensionsV1beta1ScaleKind = Maybe Text
forall a. Maybe a
Nothing
  , extensionsV1beta1ScaleMetadata :: Maybe V1ObjectMeta
extensionsV1beta1ScaleMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , extensionsV1beta1ScaleSpec :: Maybe ExtensionsV1beta1ScaleSpec
extensionsV1beta1ScaleSpec = Maybe ExtensionsV1beta1ScaleSpec
forall a. Maybe a
Nothing
  , extensionsV1beta1ScaleStatus :: Maybe ExtensionsV1beta1ScaleStatus
extensionsV1beta1ScaleStatus = Maybe ExtensionsV1beta1ScaleStatus
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1ScaleSpec
-- | ExtensionsV1beta1ScaleSpec
-- describes the attributes of a scale subresource
data ExtensionsV1beta1ScaleSpec = ExtensionsV1beta1ScaleSpec
  { ExtensionsV1beta1ScaleSpec -> Maybe Int
extensionsV1beta1ScaleSpecReplicas :: !(Maybe Int) -- ^ "replicas" - desired number of instances for the scaled object.
  } deriving (Int -> ExtensionsV1beta1ScaleSpec -> ShowS
[ExtensionsV1beta1ScaleSpec] -> ShowS
ExtensionsV1beta1ScaleSpec -> String
(Int -> ExtensionsV1beta1ScaleSpec -> ShowS)
-> (ExtensionsV1beta1ScaleSpec -> String)
-> ([ExtensionsV1beta1ScaleSpec] -> ShowS)
-> Show ExtensionsV1beta1ScaleSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1ScaleSpec] -> ShowS
$cshowList :: [ExtensionsV1beta1ScaleSpec] -> ShowS
show :: ExtensionsV1beta1ScaleSpec -> String
$cshow :: ExtensionsV1beta1ScaleSpec -> String
showsPrec :: Int -> ExtensionsV1beta1ScaleSpec -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1ScaleSpec -> ShowS
P.Show, ExtensionsV1beta1ScaleSpec -> ExtensionsV1beta1ScaleSpec -> Bool
(ExtensionsV1beta1ScaleSpec -> ExtensionsV1beta1ScaleSpec -> Bool)
-> (ExtensionsV1beta1ScaleSpec
    -> ExtensionsV1beta1ScaleSpec -> Bool)
-> Eq ExtensionsV1beta1ScaleSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1ScaleSpec -> ExtensionsV1beta1ScaleSpec -> Bool
$c/= :: ExtensionsV1beta1ScaleSpec -> ExtensionsV1beta1ScaleSpec -> Bool
== :: ExtensionsV1beta1ScaleSpec -> ExtensionsV1beta1ScaleSpec -> Bool
$c== :: ExtensionsV1beta1ScaleSpec -> ExtensionsV1beta1ScaleSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1ScaleSpec
instance A.FromJSON ExtensionsV1beta1ScaleSpec where
  parseJSON :: Value -> Parser ExtensionsV1beta1ScaleSpec
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1ScaleSpec)
-> Value
-> Parser ExtensionsV1beta1ScaleSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1ScaleSpec" ((Object -> Parser ExtensionsV1beta1ScaleSpec)
 -> Value -> Parser ExtensionsV1beta1ScaleSpec)
-> (Object -> Parser ExtensionsV1beta1ScaleSpec)
-> Value
-> Parser ExtensionsV1beta1ScaleSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int -> ExtensionsV1beta1ScaleSpec
ExtensionsV1beta1ScaleSpec
      (Maybe Int -> ExtensionsV1beta1ScaleSpec)
-> Parser (Maybe Int) -> Parser ExtensionsV1beta1ScaleSpec
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")

-- | ToJSON ExtensionsV1beta1ScaleSpec
instance A.ToJSON ExtensionsV1beta1ScaleSpec where
  toJSON :: ExtensionsV1beta1ScaleSpec -> Value
toJSON ExtensionsV1beta1ScaleSpec {Maybe Int
extensionsV1beta1ScaleSpecReplicas :: Maybe Int
extensionsV1beta1ScaleSpecReplicas :: ExtensionsV1beta1ScaleSpec -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
extensionsV1beta1ScaleSpecReplicas
      ]


-- | Construct a value of type 'ExtensionsV1beta1ScaleSpec' (by applying it's required fields, if any)
mkExtensionsV1beta1ScaleSpec
  :: ExtensionsV1beta1ScaleSpec
mkExtensionsV1beta1ScaleSpec :: ExtensionsV1beta1ScaleSpec
mkExtensionsV1beta1ScaleSpec =
  ExtensionsV1beta1ScaleSpec :: Maybe Int -> ExtensionsV1beta1ScaleSpec
ExtensionsV1beta1ScaleSpec
  { extensionsV1beta1ScaleSpecReplicas :: Maybe Int
extensionsV1beta1ScaleSpecReplicas = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1ScaleStatus
-- | ExtensionsV1beta1ScaleStatus
-- represents the current status of a scale subresource.
data ExtensionsV1beta1ScaleStatus = ExtensionsV1beta1ScaleStatus
  { ExtensionsV1beta1ScaleStatus -> Int
extensionsV1beta1ScaleStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - actual number of observed instances of the scaled object.
  , ExtensionsV1beta1ScaleStatus -> Maybe (Map String Text)
extensionsV1beta1ScaleStatusSelector :: !(Maybe (Map.Map String Text)) -- ^ "selector" - label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors
  , ExtensionsV1beta1ScaleStatus -> Maybe Text
extensionsV1beta1ScaleStatusTargetSelector :: !(Maybe Text) -- ^ "targetSelector" - label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
  } deriving (Int -> ExtensionsV1beta1ScaleStatus -> ShowS
[ExtensionsV1beta1ScaleStatus] -> ShowS
ExtensionsV1beta1ScaleStatus -> String
(Int -> ExtensionsV1beta1ScaleStatus -> ShowS)
-> (ExtensionsV1beta1ScaleStatus -> String)
-> ([ExtensionsV1beta1ScaleStatus] -> ShowS)
-> Show ExtensionsV1beta1ScaleStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1ScaleStatus] -> ShowS
$cshowList :: [ExtensionsV1beta1ScaleStatus] -> ShowS
show :: ExtensionsV1beta1ScaleStatus -> String
$cshow :: ExtensionsV1beta1ScaleStatus -> String
showsPrec :: Int -> ExtensionsV1beta1ScaleStatus -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1ScaleStatus -> ShowS
P.Show, ExtensionsV1beta1ScaleStatus
-> ExtensionsV1beta1ScaleStatus -> Bool
(ExtensionsV1beta1ScaleStatus
 -> ExtensionsV1beta1ScaleStatus -> Bool)
-> (ExtensionsV1beta1ScaleStatus
    -> ExtensionsV1beta1ScaleStatus -> Bool)
-> Eq ExtensionsV1beta1ScaleStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1ScaleStatus
-> ExtensionsV1beta1ScaleStatus -> Bool
$c/= :: ExtensionsV1beta1ScaleStatus
-> ExtensionsV1beta1ScaleStatus -> Bool
== :: ExtensionsV1beta1ScaleStatus
-> ExtensionsV1beta1ScaleStatus -> Bool
$c== :: ExtensionsV1beta1ScaleStatus
-> ExtensionsV1beta1ScaleStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1ScaleStatus
instance A.FromJSON ExtensionsV1beta1ScaleStatus where
  parseJSON :: Value -> Parser ExtensionsV1beta1ScaleStatus
parseJSON = String
-> (Object -> Parser ExtensionsV1beta1ScaleStatus)
-> Value
-> Parser ExtensionsV1beta1ScaleStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1ScaleStatus" ((Object -> Parser ExtensionsV1beta1ScaleStatus)
 -> Value -> Parser ExtensionsV1beta1ScaleStatus)
-> (Object -> Parser ExtensionsV1beta1ScaleStatus)
-> Value
-> Parser ExtensionsV1beta1ScaleStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Int
-> Maybe (Map String Text)
-> Maybe Text
-> ExtensionsV1beta1ScaleStatus
ExtensionsV1beta1ScaleStatus
      (Int
 -> Maybe (Map String Text)
 -> Maybe Text
 -> ExtensionsV1beta1ScaleStatus)
-> Parser Int
-> Parser
     (Maybe (Map String Text)
      -> Maybe Text -> ExtensionsV1beta1ScaleStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"replicas")
      Parser
  (Maybe (Map String Text)
   -> Maybe Text -> ExtensionsV1beta1ScaleStatus)
-> Parser (Maybe (Map String Text))
-> Parser (Maybe Text -> ExtensionsV1beta1ScaleStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")
      Parser (Maybe Text -> ExtensionsV1beta1ScaleStatus)
-> Parser (Maybe Text) -> Parser ExtensionsV1beta1ScaleStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"targetSelector")

-- | ToJSON ExtensionsV1beta1ScaleStatus
instance A.ToJSON ExtensionsV1beta1ScaleStatus where
  toJSON :: ExtensionsV1beta1ScaleStatus -> Value
toJSON ExtensionsV1beta1ScaleStatus {Int
Maybe Text
Maybe (Map String Text)
extensionsV1beta1ScaleStatusTargetSelector :: Maybe Text
extensionsV1beta1ScaleStatusSelector :: Maybe (Map String Text)
extensionsV1beta1ScaleStatusReplicas :: Int
extensionsV1beta1ScaleStatusTargetSelector :: ExtensionsV1beta1ScaleStatus -> Maybe Text
extensionsV1beta1ScaleStatusSelector :: ExtensionsV1beta1ScaleStatus -> Maybe (Map String Text)
extensionsV1beta1ScaleStatusReplicas :: ExtensionsV1beta1ScaleStatus -> Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"replicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
extensionsV1beta1ScaleStatusReplicas
      , Text
"selector" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
extensionsV1beta1ScaleStatusSelector
      , Text
"targetSelector" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1ScaleStatusTargetSelector
      ]


-- | Construct a value of type 'ExtensionsV1beta1ScaleStatus' (by applying it's required fields, if any)
mkExtensionsV1beta1ScaleStatus
  :: Int -- ^ 'extensionsV1beta1ScaleStatusReplicas': actual number of observed instances of the scaled object.
  -> ExtensionsV1beta1ScaleStatus
mkExtensionsV1beta1ScaleStatus :: Int -> ExtensionsV1beta1ScaleStatus
mkExtensionsV1beta1ScaleStatus Int
extensionsV1beta1ScaleStatusReplicas =
  ExtensionsV1beta1ScaleStatus :: Int
-> Maybe (Map String Text)
-> Maybe Text
-> ExtensionsV1beta1ScaleStatus
ExtensionsV1beta1ScaleStatus
  { Int
extensionsV1beta1ScaleStatusReplicas :: Int
extensionsV1beta1ScaleStatusReplicas :: Int
extensionsV1beta1ScaleStatusReplicas
  , extensionsV1beta1ScaleStatusSelector :: Maybe (Map String Text)
extensionsV1beta1ScaleStatusSelector = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , extensionsV1beta1ScaleStatusTargetSelector :: Maybe Text
extensionsV1beta1ScaleStatusTargetSelector = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** ExtensionsV1beta1SupplementalGroupsStrategyOptions
-- | ExtensionsV1beta1SupplementalGroupsStrategyOptions
-- SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use SupplementalGroupsStrategyOptions from policy API Group instead.
data ExtensionsV1beta1SupplementalGroupsStrategyOptions = ExtensionsV1beta1SupplementalGroupsStrategyOptions
  { ExtensionsV1beta1SupplementalGroupsStrategyOptions
-> Maybe [ExtensionsV1beta1IDRange]
extensionsV1beta1SupplementalGroupsStrategyOptionsRanges :: !(Maybe [ExtensionsV1beta1IDRange]) -- ^ "ranges" - ranges are the allowed ranges of supplemental groups.  If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.
  , ExtensionsV1beta1SupplementalGroupsStrategyOptions -> Maybe Text
extensionsV1beta1SupplementalGroupsStrategyOptionsRule :: !(Maybe Text) -- ^ "rule" - rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.
  } deriving (Int -> ExtensionsV1beta1SupplementalGroupsStrategyOptions -> ShowS
[ExtensionsV1beta1SupplementalGroupsStrategyOptions] -> ShowS
ExtensionsV1beta1SupplementalGroupsStrategyOptions -> String
(Int
 -> ExtensionsV1beta1SupplementalGroupsStrategyOptions -> ShowS)
-> (ExtensionsV1beta1SupplementalGroupsStrategyOptions -> String)
-> ([ExtensionsV1beta1SupplementalGroupsStrategyOptions] -> ShowS)
-> Show ExtensionsV1beta1SupplementalGroupsStrategyOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExtensionsV1beta1SupplementalGroupsStrategyOptions] -> ShowS
$cshowList :: [ExtensionsV1beta1SupplementalGroupsStrategyOptions] -> ShowS
show :: ExtensionsV1beta1SupplementalGroupsStrategyOptions -> String
$cshow :: ExtensionsV1beta1SupplementalGroupsStrategyOptions -> String
showsPrec :: Int -> ExtensionsV1beta1SupplementalGroupsStrategyOptions -> ShowS
$cshowsPrec :: Int -> ExtensionsV1beta1SupplementalGroupsStrategyOptions -> ShowS
P.Show, ExtensionsV1beta1SupplementalGroupsStrategyOptions
-> ExtensionsV1beta1SupplementalGroupsStrategyOptions -> Bool
(ExtensionsV1beta1SupplementalGroupsStrategyOptions
 -> ExtensionsV1beta1SupplementalGroupsStrategyOptions -> Bool)
-> (ExtensionsV1beta1SupplementalGroupsStrategyOptions
    -> ExtensionsV1beta1SupplementalGroupsStrategyOptions -> Bool)
-> Eq ExtensionsV1beta1SupplementalGroupsStrategyOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExtensionsV1beta1SupplementalGroupsStrategyOptions
-> ExtensionsV1beta1SupplementalGroupsStrategyOptions -> Bool
$c/= :: ExtensionsV1beta1SupplementalGroupsStrategyOptions
-> ExtensionsV1beta1SupplementalGroupsStrategyOptions -> Bool
== :: ExtensionsV1beta1SupplementalGroupsStrategyOptions
-> ExtensionsV1beta1SupplementalGroupsStrategyOptions -> Bool
$c== :: ExtensionsV1beta1SupplementalGroupsStrategyOptions
-> ExtensionsV1beta1SupplementalGroupsStrategyOptions -> Bool
P.Eq, P.Typeable)

-- | FromJSON ExtensionsV1beta1SupplementalGroupsStrategyOptions
instance A.FromJSON ExtensionsV1beta1SupplementalGroupsStrategyOptions where
  parseJSON :: Value -> Parser ExtensionsV1beta1SupplementalGroupsStrategyOptions
parseJSON = String
-> (Object
    -> Parser ExtensionsV1beta1SupplementalGroupsStrategyOptions)
-> Value
-> Parser ExtensionsV1beta1SupplementalGroupsStrategyOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"ExtensionsV1beta1SupplementalGroupsStrategyOptions" ((Object
  -> Parser ExtensionsV1beta1SupplementalGroupsStrategyOptions)
 -> Value
 -> Parser ExtensionsV1beta1SupplementalGroupsStrategyOptions)
-> (Object
    -> Parser ExtensionsV1beta1SupplementalGroupsStrategyOptions)
-> Value
-> Parser ExtensionsV1beta1SupplementalGroupsStrategyOptions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [ExtensionsV1beta1IDRange]
-> Maybe Text -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
ExtensionsV1beta1SupplementalGroupsStrategyOptions
      (Maybe [ExtensionsV1beta1IDRange]
 -> Maybe Text
 -> ExtensionsV1beta1SupplementalGroupsStrategyOptions)
-> Parser (Maybe [ExtensionsV1beta1IDRange])
-> Parser
     (Maybe Text -> ExtensionsV1beta1SupplementalGroupsStrategyOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [ExtensionsV1beta1IDRange])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ranges")
      Parser
  (Maybe Text -> ExtensionsV1beta1SupplementalGroupsStrategyOptions)
-> Parser (Maybe Text)
-> Parser ExtensionsV1beta1SupplementalGroupsStrategyOptions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rule")

-- | ToJSON ExtensionsV1beta1SupplementalGroupsStrategyOptions
instance A.ToJSON ExtensionsV1beta1SupplementalGroupsStrategyOptions where
  toJSON :: ExtensionsV1beta1SupplementalGroupsStrategyOptions -> Value
toJSON ExtensionsV1beta1SupplementalGroupsStrategyOptions {Maybe [ExtensionsV1beta1IDRange]
Maybe Text
extensionsV1beta1SupplementalGroupsStrategyOptionsRule :: Maybe Text
extensionsV1beta1SupplementalGroupsStrategyOptionsRanges :: Maybe [ExtensionsV1beta1IDRange]
extensionsV1beta1SupplementalGroupsStrategyOptionsRule :: ExtensionsV1beta1SupplementalGroupsStrategyOptions -> Maybe Text
extensionsV1beta1SupplementalGroupsStrategyOptionsRanges :: ExtensionsV1beta1SupplementalGroupsStrategyOptions
-> Maybe [ExtensionsV1beta1IDRange]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"ranges" Text -> Maybe [ExtensionsV1beta1IDRange] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [ExtensionsV1beta1IDRange]
extensionsV1beta1SupplementalGroupsStrategyOptionsRanges
      , Text
"rule" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
extensionsV1beta1SupplementalGroupsStrategyOptionsRule
      ]


-- | Construct a value of type 'ExtensionsV1beta1SupplementalGroupsStrategyOptions' (by applying it's required fields, if any)
mkExtensionsV1beta1SupplementalGroupsStrategyOptions
  :: ExtensionsV1beta1SupplementalGroupsStrategyOptions
mkExtensionsV1beta1SupplementalGroupsStrategyOptions :: ExtensionsV1beta1SupplementalGroupsStrategyOptions
mkExtensionsV1beta1SupplementalGroupsStrategyOptions =
  ExtensionsV1beta1SupplementalGroupsStrategyOptions :: Maybe [ExtensionsV1beta1IDRange]
-> Maybe Text -> ExtensionsV1beta1SupplementalGroupsStrategyOptions
ExtensionsV1beta1SupplementalGroupsStrategyOptions
  { extensionsV1beta1SupplementalGroupsStrategyOptionsRanges :: Maybe [ExtensionsV1beta1IDRange]
extensionsV1beta1SupplementalGroupsStrategyOptionsRanges = Maybe [ExtensionsV1beta1IDRange]
forall a. Maybe a
Nothing
  , extensionsV1beta1SupplementalGroupsStrategyOptionsRule :: Maybe Text
extensionsV1beta1SupplementalGroupsStrategyOptionsRule = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** NetworkingV1beta1HTTPIngressPath
-- | NetworkingV1beta1HTTPIngressPath
-- HTTPIngressPath associates a path regex with a backend. Incoming urls matching the path are forwarded to the backend.
data NetworkingV1beta1HTTPIngressPath = NetworkingV1beta1HTTPIngressPath
  { NetworkingV1beta1HTTPIngressPath -> NetworkingV1beta1IngressBackend
networkingV1beta1HTTPIngressPathBackend :: !(NetworkingV1beta1IngressBackend) -- ^ /Required/ "backend"
  , NetworkingV1beta1HTTPIngressPath -> Maybe Text
networkingV1beta1HTTPIngressPathPath :: !(Maybe Text) -- ^ "path" - Path is an extended POSIX regex as defined by IEEE Std 1003.1, (i.e this follows the egrep/unix syntax, not the perl syntax) matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \&quot;path\&quot; part of a URL as defined by RFC 3986. Paths must begin with a &#39;/&#39;. If unspecified, the path defaults to a catch all sending traffic to the backend.
  } deriving (Int -> NetworkingV1beta1HTTPIngressPath -> ShowS
[NetworkingV1beta1HTTPIngressPath] -> ShowS
NetworkingV1beta1HTTPIngressPath -> String
(Int -> NetworkingV1beta1HTTPIngressPath -> ShowS)
-> (NetworkingV1beta1HTTPIngressPath -> String)
-> ([NetworkingV1beta1HTTPIngressPath] -> ShowS)
-> Show NetworkingV1beta1HTTPIngressPath
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NetworkingV1beta1HTTPIngressPath] -> ShowS
$cshowList :: [NetworkingV1beta1HTTPIngressPath] -> ShowS
show :: NetworkingV1beta1HTTPIngressPath -> String
$cshow :: NetworkingV1beta1HTTPIngressPath -> String
showsPrec :: Int -> NetworkingV1beta1HTTPIngressPath -> ShowS
$cshowsPrec :: Int -> NetworkingV1beta1HTTPIngressPath -> ShowS
P.Show, NetworkingV1beta1HTTPIngressPath
-> NetworkingV1beta1HTTPIngressPath -> Bool
(NetworkingV1beta1HTTPIngressPath
 -> NetworkingV1beta1HTTPIngressPath -> Bool)
-> (NetworkingV1beta1HTTPIngressPath
    -> NetworkingV1beta1HTTPIngressPath -> Bool)
-> Eq NetworkingV1beta1HTTPIngressPath
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NetworkingV1beta1HTTPIngressPath
-> NetworkingV1beta1HTTPIngressPath -> Bool
$c/= :: NetworkingV1beta1HTTPIngressPath
-> NetworkingV1beta1HTTPIngressPath -> Bool
== :: NetworkingV1beta1HTTPIngressPath
-> NetworkingV1beta1HTTPIngressPath -> Bool
$c== :: NetworkingV1beta1HTTPIngressPath
-> NetworkingV1beta1HTTPIngressPath -> Bool
P.Eq, P.Typeable)

-- | FromJSON NetworkingV1beta1HTTPIngressPath
instance A.FromJSON NetworkingV1beta1HTTPIngressPath where
  parseJSON :: Value -> Parser NetworkingV1beta1HTTPIngressPath
parseJSON = String
-> (Object -> Parser NetworkingV1beta1HTTPIngressPath)
-> Value
-> Parser NetworkingV1beta1HTTPIngressPath
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"NetworkingV1beta1HTTPIngressPath" ((Object -> Parser NetworkingV1beta1HTTPIngressPath)
 -> Value -> Parser NetworkingV1beta1HTTPIngressPath)
-> (Object -> Parser NetworkingV1beta1HTTPIngressPath)
-> Value
-> Parser NetworkingV1beta1HTTPIngressPath
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    NetworkingV1beta1IngressBackend
-> Maybe Text -> NetworkingV1beta1HTTPIngressPath
NetworkingV1beta1HTTPIngressPath
      (NetworkingV1beta1IngressBackend
 -> Maybe Text -> NetworkingV1beta1HTTPIngressPath)
-> Parser NetworkingV1beta1IngressBackend
-> Parser (Maybe Text -> NetworkingV1beta1HTTPIngressPath)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser NetworkingV1beta1IngressBackend
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"backend")
      Parser (Maybe Text -> NetworkingV1beta1HTTPIngressPath)
-> Parser (Maybe Text) -> Parser NetworkingV1beta1HTTPIngressPath
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"path")

-- | ToJSON NetworkingV1beta1HTTPIngressPath
instance A.ToJSON NetworkingV1beta1HTTPIngressPath where
  toJSON :: NetworkingV1beta1HTTPIngressPath -> Value
toJSON NetworkingV1beta1HTTPIngressPath {Maybe Text
NetworkingV1beta1IngressBackend
networkingV1beta1HTTPIngressPathPath :: Maybe Text
networkingV1beta1HTTPIngressPathBackend :: NetworkingV1beta1IngressBackend
networkingV1beta1HTTPIngressPathPath :: NetworkingV1beta1HTTPIngressPath -> Maybe Text
networkingV1beta1HTTPIngressPathBackend :: NetworkingV1beta1HTTPIngressPath -> NetworkingV1beta1IngressBackend
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"backend" Text -> NetworkingV1beta1IngressBackend -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= NetworkingV1beta1IngressBackend
networkingV1beta1HTTPIngressPathBackend
      , Text
"path" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
networkingV1beta1HTTPIngressPathPath
      ]


-- | Construct a value of type 'NetworkingV1beta1HTTPIngressPath' (by applying it's required fields, if any)
mkNetworkingV1beta1HTTPIngressPath
  :: NetworkingV1beta1IngressBackend -- ^ 'networkingV1beta1HTTPIngressPathBackend' 
  -> NetworkingV1beta1HTTPIngressPath
mkNetworkingV1beta1HTTPIngressPath :: NetworkingV1beta1IngressBackend -> NetworkingV1beta1HTTPIngressPath
mkNetworkingV1beta1HTTPIngressPath NetworkingV1beta1IngressBackend
networkingV1beta1HTTPIngressPathBackend =
  NetworkingV1beta1HTTPIngressPath :: NetworkingV1beta1IngressBackend
-> Maybe Text -> NetworkingV1beta1HTTPIngressPath
NetworkingV1beta1HTTPIngressPath
  { NetworkingV1beta1IngressBackend
networkingV1beta1HTTPIngressPathBackend :: NetworkingV1beta1IngressBackend
networkingV1beta1HTTPIngressPathBackend :: NetworkingV1beta1IngressBackend
networkingV1beta1HTTPIngressPathBackend
  , networkingV1beta1HTTPIngressPathPath :: Maybe Text
networkingV1beta1HTTPIngressPathPath = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** NetworkingV1beta1HTTPIngressRuleValue
-- | NetworkingV1beta1HTTPIngressRuleValue
-- HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://<host>/<path>?<searchpart> -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.
data NetworkingV1beta1HTTPIngressRuleValue = NetworkingV1beta1HTTPIngressRuleValue
  { NetworkingV1beta1HTTPIngressRuleValue
-> [NetworkingV1beta1HTTPIngressPath]
networkingV1beta1HTTPIngressRuleValuePaths :: !([NetworkingV1beta1HTTPIngressPath]) -- ^ /Required/ "paths" - A collection of paths that map requests to backends.
  } deriving (Int -> NetworkingV1beta1HTTPIngressRuleValue -> ShowS
[NetworkingV1beta1HTTPIngressRuleValue] -> ShowS
NetworkingV1beta1HTTPIngressRuleValue -> String
(Int -> NetworkingV1beta1HTTPIngressRuleValue -> ShowS)
-> (NetworkingV1beta1HTTPIngressRuleValue -> String)
-> ([NetworkingV1beta1HTTPIngressRuleValue] -> ShowS)
-> Show NetworkingV1beta1HTTPIngressRuleValue
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NetworkingV1beta1HTTPIngressRuleValue] -> ShowS
$cshowList :: [NetworkingV1beta1HTTPIngressRuleValue] -> ShowS
show :: NetworkingV1beta1HTTPIngressRuleValue -> String
$cshow :: NetworkingV1beta1HTTPIngressRuleValue -> String
showsPrec :: Int -> NetworkingV1beta1HTTPIngressRuleValue -> ShowS
$cshowsPrec :: Int -> NetworkingV1beta1HTTPIngressRuleValue -> ShowS
P.Show, NetworkingV1beta1HTTPIngressRuleValue
-> NetworkingV1beta1HTTPIngressRuleValue -> Bool
(NetworkingV1beta1HTTPIngressRuleValue
 -> NetworkingV1beta1HTTPIngressRuleValue -> Bool)
-> (NetworkingV1beta1HTTPIngressRuleValue
    -> NetworkingV1beta1HTTPIngressRuleValue -> Bool)
-> Eq NetworkingV1beta1HTTPIngressRuleValue
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NetworkingV1beta1HTTPIngressRuleValue
-> NetworkingV1beta1HTTPIngressRuleValue -> Bool
$c/= :: NetworkingV1beta1HTTPIngressRuleValue
-> NetworkingV1beta1HTTPIngressRuleValue -> Bool
== :: NetworkingV1beta1HTTPIngressRuleValue
-> NetworkingV1beta1HTTPIngressRuleValue -> Bool
$c== :: NetworkingV1beta1HTTPIngressRuleValue
-> NetworkingV1beta1HTTPIngressRuleValue -> Bool
P.Eq, P.Typeable)

-- | FromJSON NetworkingV1beta1HTTPIngressRuleValue
instance A.FromJSON NetworkingV1beta1HTTPIngressRuleValue where
  parseJSON :: Value -> Parser NetworkingV1beta1HTTPIngressRuleValue
parseJSON = String
-> (Object -> Parser NetworkingV1beta1HTTPIngressRuleValue)
-> Value
-> Parser NetworkingV1beta1HTTPIngressRuleValue
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"NetworkingV1beta1HTTPIngressRuleValue" ((Object -> Parser NetworkingV1beta1HTTPIngressRuleValue)
 -> Value -> Parser NetworkingV1beta1HTTPIngressRuleValue)
-> (Object -> Parser NetworkingV1beta1HTTPIngressRuleValue)
-> Value
-> Parser NetworkingV1beta1HTTPIngressRuleValue
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    [NetworkingV1beta1HTTPIngressPath]
-> NetworkingV1beta1HTTPIngressRuleValue
NetworkingV1beta1HTTPIngressRuleValue
      ([NetworkingV1beta1HTTPIngressPath]
 -> NetworkingV1beta1HTTPIngressRuleValue)
-> Parser [NetworkingV1beta1HTTPIngressPath]
-> Parser NetworkingV1beta1HTTPIngressRuleValue
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser [NetworkingV1beta1HTTPIngressPath]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"paths")

-- | ToJSON NetworkingV1beta1HTTPIngressRuleValue
instance A.ToJSON NetworkingV1beta1HTTPIngressRuleValue where
  toJSON :: NetworkingV1beta1HTTPIngressRuleValue -> Value
toJSON NetworkingV1beta1HTTPIngressRuleValue {[NetworkingV1beta1HTTPIngressPath]
networkingV1beta1HTTPIngressRuleValuePaths :: [NetworkingV1beta1HTTPIngressPath]
networkingV1beta1HTTPIngressRuleValuePaths :: NetworkingV1beta1HTTPIngressRuleValue
-> [NetworkingV1beta1HTTPIngressPath]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"paths" Text -> [NetworkingV1beta1HTTPIngressPath] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [NetworkingV1beta1HTTPIngressPath]
networkingV1beta1HTTPIngressRuleValuePaths
      ]


-- | Construct a value of type 'NetworkingV1beta1HTTPIngressRuleValue' (by applying it's required fields, if any)
mkNetworkingV1beta1HTTPIngressRuleValue
  :: [NetworkingV1beta1HTTPIngressPath] -- ^ 'networkingV1beta1HTTPIngressRuleValuePaths': A collection of paths that map requests to backends.
  -> NetworkingV1beta1HTTPIngressRuleValue
mkNetworkingV1beta1HTTPIngressRuleValue :: [NetworkingV1beta1HTTPIngressPath]
-> NetworkingV1beta1HTTPIngressRuleValue
mkNetworkingV1beta1HTTPIngressRuleValue [NetworkingV1beta1HTTPIngressPath]
networkingV1beta1HTTPIngressRuleValuePaths =
  NetworkingV1beta1HTTPIngressRuleValue :: [NetworkingV1beta1HTTPIngressPath]
-> NetworkingV1beta1HTTPIngressRuleValue
NetworkingV1beta1HTTPIngressRuleValue
  { [NetworkingV1beta1HTTPIngressPath]
networkingV1beta1HTTPIngressRuleValuePaths :: [NetworkingV1beta1HTTPIngressPath]
networkingV1beta1HTTPIngressRuleValuePaths :: [NetworkingV1beta1HTTPIngressPath]
networkingV1beta1HTTPIngressRuleValuePaths
  }

-- ** NetworkingV1beta1Ingress
-- | NetworkingV1beta1Ingress
-- Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.
data NetworkingV1beta1Ingress = NetworkingV1beta1Ingress
  { NetworkingV1beta1Ingress -> Maybe Text
networkingV1beta1IngressApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , NetworkingV1beta1Ingress -> Maybe Text
networkingV1beta1IngressKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , NetworkingV1beta1Ingress -> Maybe V1ObjectMeta
networkingV1beta1IngressMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , NetworkingV1beta1Ingress -> Maybe NetworkingV1beta1IngressSpec
networkingV1beta1IngressSpec :: !(Maybe NetworkingV1beta1IngressSpec) -- ^ "spec"
  , NetworkingV1beta1Ingress -> Maybe NetworkingV1beta1IngressStatus
networkingV1beta1IngressStatus :: !(Maybe NetworkingV1beta1IngressStatus) -- ^ "status"
  } deriving (Int -> NetworkingV1beta1Ingress -> ShowS
[NetworkingV1beta1Ingress] -> ShowS
NetworkingV1beta1Ingress -> String
(Int -> NetworkingV1beta1Ingress -> ShowS)
-> (NetworkingV1beta1Ingress -> String)
-> ([NetworkingV1beta1Ingress] -> ShowS)
-> Show NetworkingV1beta1Ingress
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NetworkingV1beta1Ingress] -> ShowS
$cshowList :: [NetworkingV1beta1Ingress] -> ShowS
show :: NetworkingV1beta1Ingress -> String
$cshow :: NetworkingV1beta1Ingress -> String
showsPrec :: Int -> NetworkingV1beta1Ingress -> ShowS
$cshowsPrec :: Int -> NetworkingV1beta1Ingress -> ShowS
P.Show, NetworkingV1beta1Ingress -> NetworkingV1beta1Ingress -> Bool
(NetworkingV1beta1Ingress -> NetworkingV1beta1Ingress -> Bool)
-> (NetworkingV1beta1Ingress -> NetworkingV1beta1Ingress -> Bool)
-> Eq NetworkingV1beta1Ingress
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NetworkingV1beta1Ingress -> NetworkingV1beta1Ingress -> Bool
$c/= :: NetworkingV1beta1Ingress -> NetworkingV1beta1Ingress -> Bool
== :: NetworkingV1beta1Ingress -> NetworkingV1beta1Ingress -> Bool
$c== :: NetworkingV1beta1Ingress -> NetworkingV1beta1Ingress -> Bool
P.Eq, P.Typeable)

-- | FromJSON NetworkingV1beta1Ingress
instance A.FromJSON NetworkingV1beta1Ingress where
  parseJSON :: Value -> Parser NetworkingV1beta1Ingress
parseJSON = String
-> (Object -> Parser NetworkingV1beta1Ingress)
-> Value
-> Parser NetworkingV1beta1Ingress
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"NetworkingV1beta1Ingress" ((Object -> Parser NetworkingV1beta1Ingress)
 -> Value -> Parser NetworkingV1beta1Ingress)
-> (Object -> Parser NetworkingV1beta1Ingress)
-> Value
-> Parser NetworkingV1beta1Ingress
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe NetworkingV1beta1IngressSpec
-> Maybe NetworkingV1beta1IngressStatus
-> NetworkingV1beta1Ingress
NetworkingV1beta1Ingress
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe NetworkingV1beta1IngressSpec
 -> Maybe NetworkingV1beta1IngressStatus
 -> NetworkingV1beta1Ingress)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe NetworkingV1beta1IngressSpec
      -> Maybe NetworkingV1beta1IngressStatus
      -> NetworkingV1beta1Ingress)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe NetworkingV1beta1IngressSpec
   -> Maybe NetworkingV1beta1IngressStatus
   -> NetworkingV1beta1Ingress)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe NetworkingV1beta1IngressSpec
      -> Maybe NetworkingV1beta1IngressStatus
      -> NetworkingV1beta1Ingress)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe NetworkingV1beta1IngressSpec
   -> Maybe NetworkingV1beta1IngressStatus
   -> NetworkingV1beta1Ingress)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe NetworkingV1beta1IngressSpec
      -> Maybe NetworkingV1beta1IngressStatus
      -> NetworkingV1beta1Ingress)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe NetworkingV1beta1IngressSpec
   -> Maybe NetworkingV1beta1IngressStatus
   -> NetworkingV1beta1Ingress)
-> Parser (Maybe NetworkingV1beta1IngressSpec)
-> Parser
     (Maybe NetworkingV1beta1IngressStatus -> NetworkingV1beta1Ingress)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe NetworkingV1beta1IngressSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser
  (Maybe NetworkingV1beta1IngressStatus -> NetworkingV1beta1Ingress)
-> Parser (Maybe NetworkingV1beta1IngressStatus)
-> Parser NetworkingV1beta1Ingress
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe NetworkingV1beta1IngressStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON NetworkingV1beta1Ingress
instance A.ToJSON NetworkingV1beta1Ingress where
  toJSON :: NetworkingV1beta1Ingress -> Value
toJSON NetworkingV1beta1Ingress {Maybe Text
Maybe V1ObjectMeta
Maybe NetworkingV1beta1IngressStatus
Maybe NetworkingV1beta1IngressSpec
networkingV1beta1IngressStatus :: Maybe NetworkingV1beta1IngressStatus
networkingV1beta1IngressSpec :: Maybe NetworkingV1beta1IngressSpec
networkingV1beta1IngressMetadata :: Maybe V1ObjectMeta
networkingV1beta1IngressKind :: Maybe Text
networkingV1beta1IngressApiVersion :: Maybe Text
networkingV1beta1IngressStatus :: NetworkingV1beta1Ingress -> Maybe NetworkingV1beta1IngressStatus
networkingV1beta1IngressSpec :: NetworkingV1beta1Ingress -> Maybe NetworkingV1beta1IngressSpec
networkingV1beta1IngressMetadata :: NetworkingV1beta1Ingress -> Maybe V1ObjectMeta
networkingV1beta1IngressKind :: NetworkingV1beta1Ingress -> Maybe Text
networkingV1beta1IngressApiVersion :: NetworkingV1beta1Ingress -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
networkingV1beta1IngressApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
networkingV1beta1IngressKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
networkingV1beta1IngressMetadata
      , Text
"spec" Text -> Maybe NetworkingV1beta1IngressSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe NetworkingV1beta1IngressSpec
networkingV1beta1IngressSpec
      , Text
"status" Text -> Maybe NetworkingV1beta1IngressStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe NetworkingV1beta1IngressStatus
networkingV1beta1IngressStatus
      ]


-- | Construct a value of type 'NetworkingV1beta1Ingress' (by applying it's required fields, if any)
mkNetworkingV1beta1Ingress
  :: NetworkingV1beta1Ingress
mkNetworkingV1beta1Ingress :: NetworkingV1beta1Ingress
mkNetworkingV1beta1Ingress =
  NetworkingV1beta1Ingress :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe NetworkingV1beta1IngressSpec
-> Maybe NetworkingV1beta1IngressStatus
-> NetworkingV1beta1Ingress
NetworkingV1beta1Ingress
  { networkingV1beta1IngressApiVersion :: Maybe Text
networkingV1beta1IngressApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , networkingV1beta1IngressKind :: Maybe Text
networkingV1beta1IngressKind = Maybe Text
forall a. Maybe a
Nothing
  , networkingV1beta1IngressMetadata :: Maybe V1ObjectMeta
networkingV1beta1IngressMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , networkingV1beta1IngressSpec :: Maybe NetworkingV1beta1IngressSpec
networkingV1beta1IngressSpec = Maybe NetworkingV1beta1IngressSpec
forall a. Maybe a
Nothing
  , networkingV1beta1IngressStatus :: Maybe NetworkingV1beta1IngressStatus
networkingV1beta1IngressStatus = Maybe NetworkingV1beta1IngressStatus
forall a. Maybe a
Nothing
  }

-- ** NetworkingV1beta1IngressBackend
-- | NetworkingV1beta1IngressBackend
-- IngressBackend describes all endpoints for a given service and port.
data NetworkingV1beta1IngressBackend = NetworkingV1beta1IngressBackend
  { NetworkingV1beta1IngressBackend -> Text
networkingV1beta1IngressBackendServiceName :: !(Text) -- ^ /Required/ "serviceName" - Specifies the name of the referenced service.
  , NetworkingV1beta1IngressBackend -> IntOrString
networkingV1beta1IngressBackendServicePort :: !(IntOrString) -- ^ /Required/ "servicePort"
  } deriving (Int -> NetworkingV1beta1IngressBackend -> ShowS
[NetworkingV1beta1IngressBackend] -> ShowS
NetworkingV1beta1IngressBackend -> String
(Int -> NetworkingV1beta1IngressBackend -> ShowS)
-> (NetworkingV1beta1IngressBackend -> String)
-> ([NetworkingV1beta1IngressBackend] -> ShowS)
-> Show NetworkingV1beta1IngressBackend
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NetworkingV1beta1IngressBackend] -> ShowS
$cshowList :: [NetworkingV1beta1IngressBackend] -> ShowS
show :: NetworkingV1beta1IngressBackend -> String
$cshow :: NetworkingV1beta1IngressBackend -> String
showsPrec :: Int -> NetworkingV1beta1IngressBackend -> ShowS
$cshowsPrec :: Int -> NetworkingV1beta1IngressBackend -> ShowS
P.Show, NetworkingV1beta1IngressBackend
-> NetworkingV1beta1IngressBackend -> Bool
(NetworkingV1beta1IngressBackend
 -> NetworkingV1beta1IngressBackend -> Bool)
-> (NetworkingV1beta1IngressBackend
    -> NetworkingV1beta1IngressBackend -> Bool)
-> Eq NetworkingV1beta1IngressBackend
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NetworkingV1beta1IngressBackend
-> NetworkingV1beta1IngressBackend -> Bool
$c/= :: NetworkingV1beta1IngressBackend
-> NetworkingV1beta1IngressBackend -> Bool
== :: NetworkingV1beta1IngressBackend
-> NetworkingV1beta1IngressBackend -> Bool
$c== :: NetworkingV1beta1IngressBackend
-> NetworkingV1beta1IngressBackend -> Bool
P.Eq, P.Typeable)

-- | FromJSON NetworkingV1beta1IngressBackend
instance A.FromJSON NetworkingV1beta1IngressBackend where
  parseJSON :: Value -> Parser NetworkingV1beta1IngressBackend
parseJSON = String
-> (Object -> Parser NetworkingV1beta1IngressBackend)
-> Value
-> Parser NetworkingV1beta1IngressBackend
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"NetworkingV1beta1IngressBackend" ((Object -> Parser NetworkingV1beta1IngressBackend)
 -> Value -> Parser NetworkingV1beta1IngressBackend)
-> (Object -> Parser NetworkingV1beta1IngressBackend)
-> Value
-> Parser NetworkingV1beta1IngressBackend
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> IntOrString -> NetworkingV1beta1IngressBackend
NetworkingV1beta1IngressBackend
      (Text -> IntOrString -> NetworkingV1beta1IngressBackend)
-> Parser Text
-> Parser (IntOrString -> NetworkingV1beta1IngressBackend)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"serviceName")
      Parser (IntOrString -> NetworkingV1beta1IngressBackend)
-> Parser IntOrString -> Parser NetworkingV1beta1IngressBackend
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser IntOrString
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"servicePort")

-- | ToJSON NetworkingV1beta1IngressBackend
instance A.ToJSON NetworkingV1beta1IngressBackend where
  toJSON :: NetworkingV1beta1IngressBackend -> Value
toJSON NetworkingV1beta1IngressBackend {Text
IntOrString
networkingV1beta1IngressBackendServicePort :: IntOrString
networkingV1beta1IngressBackendServiceName :: Text
networkingV1beta1IngressBackendServicePort :: NetworkingV1beta1IngressBackend -> IntOrString
networkingV1beta1IngressBackendServiceName :: NetworkingV1beta1IngressBackend -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"serviceName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
networkingV1beta1IngressBackendServiceName
      , Text
"servicePort" Text -> IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= IntOrString
networkingV1beta1IngressBackendServicePort
      ]


-- | Construct a value of type 'NetworkingV1beta1IngressBackend' (by applying it's required fields, if any)
mkNetworkingV1beta1IngressBackend
  :: Text -- ^ 'networkingV1beta1IngressBackendServiceName': Specifies the name of the referenced service.
  -> IntOrString -- ^ 'networkingV1beta1IngressBackendServicePort' 
  -> NetworkingV1beta1IngressBackend
mkNetworkingV1beta1IngressBackend :: Text -> IntOrString -> NetworkingV1beta1IngressBackend
mkNetworkingV1beta1IngressBackend Text
networkingV1beta1IngressBackendServiceName IntOrString
networkingV1beta1IngressBackendServicePort =
  NetworkingV1beta1IngressBackend :: Text -> IntOrString -> NetworkingV1beta1IngressBackend
NetworkingV1beta1IngressBackend
  { Text
networkingV1beta1IngressBackendServiceName :: Text
networkingV1beta1IngressBackendServiceName :: Text
networkingV1beta1IngressBackendServiceName
  , IntOrString
networkingV1beta1IngressBackendServicePort :: IntOrString
networkingV1beta1IngressBackendServicePort :: IntOrString
networkingV1beta1IngressBackendServicePort
  }

-- ** NetworkingV1beta1IngressList
-- | NetworkingV1beta1IngressList
-- IngressList is a collection of Ingress.
data NetworkingV1beta1IngressList = NetworkingV1beta1IngressList
  { NetworkingV1beta1IngressList -> Maybe Text
networkingV1beta1IngressListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , NetworkingV1beta1IngressList -> [NetworkingV1beta1Ingress]
networkingV1beta1IngressListItems :: !([NetworkingV1beta1Ingress]) -- ^ /Required/ "items" - Items is the list of Ingress.
  , NetworkingV1beta1IngressList -> Maybe Text
networkingV1beta1IngressListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , NetworkingV1beta1IngressList -> Maybe V1ListMeta
networkingV1beta1IngressListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> NetworkingV1beta1IngressList -> ShowS
[NetworkingV1beta1IngressList] -> ShowS
NetworkingV1beta1IngressList -> String
(Int -> NetworkingV1beta1IngressList -> ShowS)
-> (NetworkingV1beta1IngressList -> String)
-> ([NetworkingV1beta1IngressList] -> ShowS)
-> Show NetworkingV1beta1IngressList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NetworkingV1beta1IngressList] -> ShowS
$cshowList :: [NetworkingV1beta1IngressList] -> ShowS
show :: NetworkingV1beta1IngressList -> String
$cshow :: NetworkingV1beta1IngressList -> String
showsPrec :: Int -> NetworkingV1beta1IngressList -> ShowS
$cshowsPrec :: Int -> NetworkingV1beta1IngressList -> ShowS
P.Show, NetworkingV1beta1IngressList
-> NetworkingV1beta1IngressList -> Bool
(NetworkingV1beta1IngressList
 -> NetworkingV1beta1IngressList -> Bool)
-> (NetworkingV1beta1IngressList
    -> NetworkingV1beta1IngressList -> Bool)
-> Eq NetworkingV1beta1IngressList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NetworkingV1beta1IngressList
-> NetworkingV1beta1IngressList -> Bool
$c/= :: NetworkingV1beta1IngressList
-> NetworkingV1beta1IngressList -> Bool
== :: NetworkingV1beta1IngressList
-> NetworkingV1beta1IngressList -> Bool
$c== :: NetworkingV1beta1IngressList
-> NetworkingV1beta1IngressList -> Bool
P.Eq, P.Typeable)

-- | FromJSON NetworkingV1beta1IngressList
instance A.FromJSON NetworkingV1beta1IngressList where
  parseJSON :: Value -> Parser NetworkingV1beta1IngressList
parseJSON = String
-> (Object -> Parser NetworkingV1beta1IngressList)
-> Value
-> Parser NetworkingV1beta1IngressList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"NetworkingV1beta1IngressList" ((Object -> Parser NetworkingV1beta1IngressList)
 -> Value -> Parser NetworkingV1beta1IngressList)
-> (Object -> Parser NetworkingV1beta1IngressList)
-> Value
-> Parser NetworkingV1beta1IngressList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [NetworkingV1beta1Ingress]
-> Maybe Text
-> Maybe V1ListMeta
-> NetworkingV1beta1IngressList
NetworkingV1beta1IngressList
      (Maybe Text
 -> [NetworkingV1beta1Ingress]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> NetworkingV1beta1IngressList)
-> Parser (Maybe Text)
-> Parser
     ([NetworkingV1beta1Ingress]
      -> Maybe Text -> Maybe V1ListMeta -> NetworkingV1beta1IngressList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([NetworkingV1beta1Ingress]
   -> Maybe Text -> Maybe V1ListMeta -> NetworkingV1beta1IngressList)
-> Parser [NetworkingV1beta1Ingress]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> NetworkingV1beta1IngressList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [NetworkingV1beta1Ingress]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> NetworkingV1beta1IngressList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> NetworkingV1beta1IngressList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> NetworkingV1beta1IngressList)
-> Parser (Maybe V1ListMeta) -> Parser NetworkingV1beta1IngressList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON NetworkingV1beta1IngressList
instance A.ToJSON NetworkingV1beta1IngressList where
  toJSON :: NetworkingV1beta1IngressList -> Value
toJSON NetworkingV1beta1IngressList {[NetworkingV1beta1Ingress]
Maybe Text
Maybe V1ListMeta
networkingV1beta1IngressListMetadata :: Maybe V1ListMeta
networkingV1beta1IngressListKind :: Maybe Text
networkingV1beta1IngressListItems :: [NetworkingV1beta1Ingress]
networkingV1beta1IngressListApiVersion :: Maybe Text
networkingV1beta1IngressListMetadata :: NetworkingV1beta1IngressList -> Maybe V1ListMeta
networkingV1beta1IngressListKind :: NetworkingV1beta1IngressList -> Maybe Text
networkingV1beta1IngressListItems :: NetworkingV1beta1IngressList -> [NetworkingV1beta1Ingress]
networkingV1beta1IngressListApiVersion :: NetworkingV1beta1IngressList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
networkingV1beta1IngressListApiVersion
      , Text
"items" Text -> [NetworkingV1beta1Ingress] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [NetworkingV1beta1Ingress]
networkingV1beta1IngressListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
networkingV1beta1IngressListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
networkingV1beta1IngressListMetadata
      ]


-- | Construct a value of type 'NetworkingV1beta1IngressList' (by applying it's required fields, if any)
mkNetworkingV1beta1IngressList
  :: [NetworkingV1beta1Ingress] -- ^ 'networkingV1beta1IngressListItems': Items is the list of Ingress.
  -> NetworkingV1beta1IngressList
mkNetworkingV1beta1IngressList :: [NetworkingV1beta1Ingress] -> NetworkingV1beta1IngressList
mkNetworkingV1beta1IngressList [NetworkingV1beta1Ingress]
networkingV1beta1IngressListItems =
  NetworkingV1beta1IngressList :: Maybe Text
-> [NetworkingV1beta1Ingress]
-> Maybe Text
-> Maybe V1ListMeta
-> NetworkingV1beta1IngressList
NetworkingV1beta1IngressList
  { networkingV1beta1IngressListApiVersion :: Maybe Text
networkingV1beta1IngressListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [NetworkingV1beta1Ingress]
networkingV1beta1IngressListItems :: [NetworkingV1beta1Ingress]
networkingV1beta1IngressListItems :: [NetworkingV1beta1Ingress]
networkingV1beta1IngressListItems
  , networkingV1beta1IngressListKind :: Maybe Text
networkingV1beta1IngressListKind = Maybe Text
forall a. Maybe a
Nothing
  , networkingV1beta1IngressListMetadata :: Maybe V1ListMeta
networkingV1beta1IngressListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** NetworkingV1beta1IngressRule
-- | NetworkingV1beta1IngressRule
-- IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.
data NetworkingV1beta1IngressRule = NetworkingV1beta1IngressRule
  { NetworkingV1beta1IngressRule -> Maybe Text
networkingV1beta1IngressRuleHost :: !(Maybe Text) -- ^ "host" - Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \&quot;host\&quot; part of the URI as defined in the RFC: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the    IP in the Spec of the parent Ingress. 2. The &#x60;:&#x60; delimiter is not respected because ports are not allowed.    Currently the port of an Ingress is implicitly :80 for http and    :443 for https. Both these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.
  , NetworkingV1beta1IngressRule
-> Maybe NetworkingV1beta1HTTPIngressRuleValue
networkingV1beta1IngressRuleHttp :: !(Maybe NetworkingV1beta1HTTPIngressRuleValue) -- ^ "http"
  } deriving (Int -> NetworkingV1beta1IngressRule -> ShowS
[NetworkingV1beta1IngressRule] -> ShowS
NetworkingV1beta1IngressRule -> String
(Int -> NetworkingV1beta1IngressRule -> ShowS)
-> (NetworkingV1beta1IngressRule -> String)
-> ([NetworkingV1beta1IngressRule] -> ShowS)
-> Show NetworkingV1beta1IngressRule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NetworkingV1beta1IngressRule] -> ShowS
$cshowList :: [NetworkingV1beta1IngressRule] -> ShowS
show :: NetworkingV1beta1IngressRule -> String
$cshow :: NetworkingV1beta1IngressRule -> String
showsPrec :: Int -> NetworkingV1beta1IngressRule -> ShowS
$cshowsPrec :: Int -> NetworkingV1beta1IngressRule -> ShowS
P.Show, NetworkingV1beta1IngressRule
-> NetworkingV1beta1IngressRule -> Bool
(NetworkingV1beta1IngressRule
 -> NetworkingV1beta1IngressRule -> Bool)
-> (NetworkingV1beta1IngressRule
    -> NetworkingV1beta1IngressRule -> Bool)
-> Eq NetworkingV1beta1IngressRule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NetworkingV1beta1IngressRule
-> NetworkingV1beta1IngressRule -> Bool
$c/= :: NetworkingV1beta1IngressRule
-> NetworkingV1beta1IngressRule -> Bool
== :: NetworkingV1beta1IngressRule
-> NetworkingV1beta1IngressRule -> Bool
$c== :: NetworkingV1beta1IngressRule
-> NetworkingV1beta1IngressRule -> Bool
P.Eq, P.Typeable)

-- | FromJSON NetworkingV1beta1IngressRule
instance A.FromJSON NetworkingV1beta1IngressRule where
  parseJSON :: Value -> Parser NetworkingV1beta1IngressRule
parseJSON = String
-> (Object -> Parser NetworkingV1beta1IngressRule)
-> Value
-> Parser NetworkingV1beta1IngressRule
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"NetworkingV1beta1IngressRule" ((Object -> Parser NetworkingV1beta1IngressRule)
 -> Value -> Parser NetworkingV1beta1IngressRule)
-> (Object -> Parser NetworkingV1beta1IngressRule)
-> Value
-> Parser NetworkingV1beta1IngressRule
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe NetworkingV1beta1HTTPIngressRuleValue
-> NetworkingV1beta1IngressRule
NetworkingV1beta1IngressRule
      (Maybe Text
 -> Maybe NetworkingV1beta1HTTPIngressRuleValue
 -> NetworkingV1beta1IngressRule)
-> Parser (Maybe Text)
-> Parser
     (Maybe NetworkingV1beta1HTTPIngressRuleValue
      -> NetworkingV1beta1IngressRule)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"host")
      Parser
  (Maybe NetworkingV1beta1HTTPIngressRuleValue
   -> NetworkingV1beta1IngressRule)
-> Parser (Maybe NetworkingV1beta1HTTPIngressRuleValue)
-> Parser NetworkingV1beta1IngressRule
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe NetworkingV1beta1HTTPIngressRuleValue)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"http")

-- | ToJSON NetworkingV1beta1IngressRule
instance A.ToJSON NetworkingV1beta1IngressRule where
  toJSON :: NetworkingV1beta1IngressRule -> Value
toJSON NetworkingV1beta1IngressRule {Maybe Text
Maybe NetworkingV1beta1HTTPIngressRuleValue
networkingV1beta1IngressRuleHttp :: Maybe NetworkingV1beta1HTTPIngressRuleValue
networkingV1beta1IngressRuleHost :: Maybe Text
networkingV1beta1IngressRuleHttp :: NetworkingV1beta1IngressRule
-> Maybe NetworkingV1beta1HTTPIngressRuleValue
networkingV1beta1IngressRuleHost :: NetworkingV1beta1IngressRule -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"host" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
networkingV1beta1IngressRuleHost
      , Text
"http" Text
-> Maybe NetworkingV1beta1HTTPIngressRuleValue -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe NetworkingV1beta1HTTPIngressRuleValue
networkingV1beta1IngressRuleHttp
      ]


-- | Construct a value of type 'NetworkingV1beta1IngressRule' (by applying it's required fields, if any)
mkNetworkingV1beta1IngressRule
  :: NetworkingV1beta1IngressRule
mkNetworkingV1beta1IngressRule :: NetworkingV1beta1IngressRule
mkNetworkingV1beta1IngressRule =
  NetworkingV1beta1IngressRule :: Maybe Text
-> Maybe NetworkingV1beta1HTTPIngressRuleValue
-> NetworkingV1beta1IngressRule
NetworkingV1beta1IngressRule
  { networkingV1beta1IngressRuleHost :: Maybe Text
networkingV1beta1IngressRuleHost = Maybe Text
forall a. Maybe a
Nothing
  , networkingV1beta1IngressRuleHttp :: Maybe NetworkingV1beta1HTTPIngressRuleValue
networkingV1beta1IngressRuleHttp = Maybe NetworkingV1beta1HTTPIngressRuleValue
forall a. Maybe a
Nothing
  }

-- ** NetworkingV1beta1IngressSpec
-- | NetworkingV1beta1IngressSpec
-- IngressSpec describes the Ingress the user wishes to exist.
data NetworkingV1beta1IngressSpec = NetworkingV1beta1IngressSpec
  { NetworkingV1beta1IngressSpec
-> Maybe NetworkingV1beta1IngressBackend
networkingV1beta1IngressSpecBackend :: !(Maybe NetworkingV1beta1IngressBackend) -- ^ "backend"
  , NetworkingV1beta1IngressSpec
-> Maybe [NetworkingV1beta1IngressRule]
networkingV1beta1IngressSpecRules :: !(Maybe [NetworkingV1beta1IngressRule]) -- ^ "rules" - A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.
  , NetworkingV1beta1IngressSpec -> Maybe [NetworkingV1beta1IngressTLS]
networkingV1beta1IngressSpecTls :: !(Maybe [NetworkingV1beta1IngressTLS]) -- ^ "tls" - TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.
  } deriving (Int -> NetworkingV1beta1IngressSpec -> ShowS
[NetworkingV1beta1IngressSpec] -> ShowS
NetworkingV1beta1IngressSpec -> String
(Int -> NetworkingV1beta1IngressSpec -> ShowS)
-> (NetworkingV1beta1IngressSpec -> String)
-> ([NetworkingV1beta1IngressSpec] -> ShowS)
-> Show NetworkingV1beta1IngressSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NetworkingV1beta1IngressSpec] -> ShowS
$cshowList :: [NetworkingV1beta1IngressSpec] -> ShowS
show :: NetworkingV1beta1IngressSpec -> String
$cshow :: NetworkingV1beta1IngressSpec -> String
showsPrec :: Int -> NetworkingV1beta1IngressSpec -> ShowS
$cshowsPrec :: Int -> NetworkingV1beta1IngressSpec -> ShowS
P.Show, NetworkingV1beta1IngressSpec
-> NetworkingV1beta1IngressSpec -> Bool
(NetworkingV1beta1IngressSpec
 -> NetworkingV1beta1IngressSpec -> Bool)
-> (NetworkingV1beta1IngressSpec
    -> NetworkingV1beta1IngressSpec -> Bool)
-> Eq NetworkingV1beta1IngressSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NetworkingV1beta1IngressSpec
-> NetworkingV1beta1IngressSpec -> Bool
$c/= :: NetworkingV1beta1IngressSpec
-> NetworkingV1beta1IngressSpec -> Bool
== :: NetworkingV1beta1IngressSpec
-> NetworkingV1beta1IngressSpec -> Bool
$c== :: NetworkingV1beta1IngressSpec
-> NetworkingV1beta1IngressSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON NetworkingV1beta1IngressSpec
instance A.FromJSON NetworkingV1beta1IngressSpec where
  parseJSON :: Value -> Parser NetworkingV1beta1IngressSpec
parseJSON = String
-> (Object -> Parser NetworkingV1beta1IngressSpec)
-> Value
-> Parser NetworkingV1beta1IngressSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"NetworkingV1beta1IngressSpec" ((Object -> Parser NetworkingV1beta1IngressSpec)
 -> Value -> Parser NetworkingV1beta1IngressSpec)
-> (Object -> Parser NetworkingV1beta1IngressSpec)
-> Value
-> Parser NetworkingV1beta1IngressSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe NetworkingV1beta1IngressBackend
-> Maybe [NetworkingV1beta1IngressRule]
-> Maybe [NetworkingV1beta1IngressTLS]
-> NetworkingV1beta1IngressSpec
NetworkingV1beta1IngressSpec
      (Maybe NetworkingV1beta1IngressBackend
 -> Maybe [NetworkingV1beta1IngressRule]
 -> Maybe [NetworkingV1beta1IngressTLS]
 -> NetworkingV1beta1IngressSpec)
-> Parser (Maybe NetworkingV1beta1IngressBackend)
-> Parser
     (Maybe [NetworkingV1beta1IngressRule]
      -> Maybe [NetworkingV1beta1IngressTLS]
      -> NetworkingV1beta1IngressSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe NetworkingV1beta1IngressBackend)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"backend")
      Parser
  (Maybe [NetworkingV1beta1IngressRule]
   -> Maybe [NetworkingV1beta1IngressTLS]
   -> NetworkingV1beta1IngressSpec)
-> Parser (Maybe [NetworkingV1beta1IngressRule])
-> Parser
     (Maybe [NetworkingV1beta1IngressTLS]
      -> NetworkingV1beta1IngressSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [NetworkingV1beta1IngressRule])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rules")
      Parser
  (Maybe [NetworkingV1beta1IngressTLS]
   -> NetworkingV1beta1IngressSpec)
-> Parser (Maybe [NetworkingV1beta1IngressTLS])
-> Parser NetworkingV1beta1IngressSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [NetworkingV1beta1IngressTLS])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"tls")

-- | ToJSON NetworkingV1beta1IngressSpec
instance A.ToJSON NetworkingV1beta1IngressSpec where
  toJSON :: NetworkingV1beta1IngressSpec -> Value
toJSON NetworkingV1beta1IngressSpec {Maybe [NetworkingV1beta1IngressTLS]
Maybe [NetworkingV1beta1IngressRule]
Maybe NetworkingV1beta1IngressBackend
networkingV1beta1IngressSpecTls :: Maybe [NetworkingV1beta1IngressTLS]
networkingV1beta1IngressSpecRules :: Maybe [NetworkingV1beta1IngressRule]
networkingV1beta1IngressSpecBackend :: Maybe NetworkingV1beta1IngressBackend
networkingV1beta1IngressSpecTls :: NetworkingV1beta1IngressSpec -> Maybe [NetworkingV1beta1IngressTLS]
networkingV1beta1IngressSpecRules :: NetworkingV1beta1IngressSpec
-> Maybe [NetworkingV1beta1IngressRule]
networkingV1beta1IngressSpecBackend :: NetworkingV1beta1IngressSpec
-> Maybe NetworkingV1beta1IngressBackend
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"backend" Text -> Maybe NetworkingV1beta1IngressBackend -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe NetworkingV1beta1IngressBackend
networkingV1beta1IngressSpecBackend
      , Text
"rules" Text -> Maybe [NetworkingV1beta1IngressRule] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [NetworkingV1beta1IngressRule]
networkingV1beta1IngressSpecRules
      , Text
"tls" Text -> Maybe [NetworkingV1beta1IngressTLS] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [NetworkingV1beta1IngressTLS]
networkingV1beta1IngressSpecTls
      ]


-- | Construct a value of type 'NetworkingV1beta1IngressSpec' (by applying it's required fields, if any)
mkNetworkingV1beta1IngressSpec
  :: NetworkingV1beta1IngressSpec
mkNetworkingV1beta1IngressSpec :: NetworkingV1beta1IngressSpec
mkNetworkingV1beta1IngressSpec =
  NetworkingV1beta1IngressSpec :: Maybe NetworkingV1beta1IngressBackend
-> Maybe [NetworkingV1beta1IngressRule]
-> Maybe [NetworkingV1beta1IngressTLS]
-> NetworkingV1beta1IngressSpec
NetworkingV1beta1IngressSpec
  { networkingV1beta1IngressSpecBackend :: Maybe NetworkingV1beta1IngressBackend
networkingV1beta1IngressSpecBackend = Maybe NetworkingV1beta1IngressBackend
forall a. Maybe a
Nothing
  , networkingV1beta1IngressSpecRules :: Maybe [NetworkingV1beta1IngressRule]
networkingV1beta1IngressSpecRules = Maybe [NetworkingV1beta1IngressRule]
forall a. Maybe a
Nothing
  , networkingV1beta1IngressSpecTls :: Maybe [NetworkingV1beta1IngressTLS]
networkingV1beta1IngressSpecTls = Maybe [NetworkingV1beta1IngressTLS]
forall a. Maybe a
Nothing
  }

-- ** NetworkingV1beta1IngressStatus
-- | NetworkingV1beta1IngressStatus
-- IngressStatus describe the current state of the Ingress.
data NetworkingV1beta1IngressStatus = NetworkingV1beta1IngressStatus
  { NetworkingV1beta1IngressStatus -> Maybe V1LoadBalancerStatus
networkingV1beta1IngressStatusLoadBalancer :: !(Maybe V1LoadBalancerStatus) -- ^ "loadBalancer"
  } deriving (Int -> NetworkingV1beta1IngressStatus -> ShowS
[NetworkingV1beta1IngressStatus] -> ShowS
NetworkingV1beta1IngressStatus -> String
(Int -> NetworkingV1beta1IngressStatus -> ShowS)
-> (NetworkingV1beta1IngressStatus -> String)
-> ([NetworkingV1beta1IngressStatus] -> ShowS)
-> Show NetworkingV1beta1IngressStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NetworkingV1beta1IngressStatus] -> ShowS
$cshowList :: [NetworkingV1beta1IngressStatus] -> ShowS
show :: NetworkingV1beta1IngressStatus -> String
$cshow :: NetworkingV1beta1IngressStatus -> String
showsPrec :: Int -> NetworkingV1beta1IngressStatus -> ShowS
$cshowsPrec :: Int -> NetworkingV1beta1IngressStatus -> ShowS
P.Show, NetworkingV1beta1IngressStatus
-> NetworkingV1beta1IngressStatus -> Bool
(NetworkingV1beta1IngressStatus
 -> NetworkingV1beta1IngressStatus -> Bool)
-> (NetworkingV1beta1IngressStatus
    -> NetworkingV1beta1IngressStatus -> Bool)
-> Eq NetworkingV1beta1IngressStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NetworkingV1beta1IngressStatus
-> NetworkingV1beta1IngressStatus -> Bool
$c/= :: NetworkingV1beta1IngressStatus
-> NetworkingV1beta1IngressStatus -> Bool
== :: NetworkingV1beta1IngressStatus
-> NetworkingV1beta1IngressStatus -> Bool
$c== :: NetworkingV1beta1IngressStatus
-> NetworkingV1beta1IngressStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON NetworkingV1beta1IngressStatus
instance A.FromJSON NetworkingV1beta1IngressStatus where
  parseJSON :: Value -> Parser NetworkingV1beta1IngressStatus
parseJSON = String
-> (Object -> Parser NetworkingV1beta1IngressStatus)
-> Value
-> Parser NetworkingV1beta1IngressStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"NetworkingV1beta1IngressStatus" ((Object -> Parser NetworkingV1beta1IngressStatus)
 -> Value -> Parser NetworkingV1beta1IngressStatus)
-> (Object -> Parser NetworkingV1beta1IngressStatus)
-> Value
-> Parser NetworkingV1beta1IngressStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1LoadBalancerStatus -> NetworkingV1beta1IngressStatus
NetworkingV1beta1IngressStatus
      (Maybe V1LoadBalancerStatus -> NetworkingV1beta1IngressStatus)
-> Parser (Maybe V1LoadBalancerStatus)
-> Parser NetworkingV1beta1IngressStatus
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1LoadBalancerStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"loadBalancer")

-- | ToJSON NetworkingV1beta1IngressStatus
instance A.ToJSON NetworkingV1beta1IngressStatus where
  toJSON :: NetworkingV1beta1IngressStatus -> Value
toJSON NetworkingV1beta1IngressStatus {Maybe V1LoadBalancerStatus
networkingV1beta1IngressStatusLoadBalancer :: Maybe V1LoadBalancerStatus
networkingV1beta1IngressStatusLoadBalancer :: NetworkingV1beta1IngressStatus -> Maybe V1LoadBalancerStatus
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"loadBalancer" Text -> Maybe V1LoadBalancerStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LoadBalancerStatus
networkingV1beta1IngressStatusLoadBalancer
      ]


-- | Construct a value of type 'NetworkingV1beta1IngressStatus' (by applying it's required fields, if any)
mkNetworkingV1beta1IngressStatus
  :: NetworkingV1beta1IngressStatus
mkNetworkingV1beta1IngressStatus :: NetworkingV1beta1IngressStatus
mkNetworkingV1beta1IngressStatus =
  NetworkingV1beta1IngressStatus :: Maybe V1LoadBalancerStatus -> NetworkingV1beta1IngressStatus
NetworkingV1beta1IngressStatus
  { networkingV1beta1IngressStatusLoadBalancer :: Maybe V1LoadBalancerStatus
networkingV1beta1IngressStatusLoadBalancer = Maybe V1LoadBalancerStatus
forall a. Maybe a
Nothing
  }

-- ** NetworkingV1beta1IngressTLS
-- | NetworkingV1beta1IngressTLS
-- IngressTLS describes the transport layer security associated with an Ingress.
data NetworkingV1beta1IngressTLS = NetworkingV1beta1IngressTLS
  { NetworkingV1beta1IngressTLS -> Maybe [Text]
networkingV1beta1IngressTLSHosts :: !(Maybe [Text]) -- ^ "hosts" - Hosts are a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.
  , NetworkingV1beta1IngressTLS -> Maybe Text
networkingV1beta1IngressTLSSecretName :: !(Maybe Text) -- ^ "secretName" - SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \&quot;Host\&quot; header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing.
  } deriving (Int -> NetworkingV1beta1IngressTLS -> ShowS
[NetworkingV1beta1IngressTLS] -> ShowS
NetworkingV1beta1IngressTLS -> String
(Int -> NetworkingV1beta1IngressTLS -> ShowS)
-> (NetworkingV1beta1IngressTLS -> String)
-> ([NetworkingV1beta1IngressTLS] -> ShowS)
-> Show NetworkingV1beta1IngressTLS
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NetworkingV1beta1IngressTLS] -> ShowS
$cshowList :: [NetworkingV1beta1IngressTLS] -> ShowS
show :: NetworkingV1beta1IngressTLS -> String
$cshow :: NetworkingV1beta1IngressTLS -> String
showsPrec :: Int -> NetworkingV1beta1IngressTLS -> ShowS
$cshowsPrec :: Int -> NetworkingV1beta1IngressTLS -> ShowS
P.Show, NetworkingV1beta1IngressTLS -> NetworkingV1beta1IngressTLS -> Bool
(NetworkingV1beta1IngressTLS
 -> NetworkingV1beta1IngressTLS -> Bool)
-> (NetworkingV1beta1IngressTLS
    -> NetworkingV1beta1IngressTLS -> Bool)
-> Eq NetworkingV1beta1IngressTLS
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NetworkingV1beta1IngressTLS -> NetworkingV1beta1IngressTLS -> Bool
$c/= :: NetworkingV1beta1IngressTLS -> NetworkingV1beta1IngressTLS -> Bool
== :: NetworkingV1beta1IngressTLS -> NetworkingV1beta1IngressTLS -> Bool
$c== :: NetworkingV1beta1IngressTLS -> NetworkingV1beta1IngressTLS -> Bool
P.Eq, P.Typeable)

-- | FromJSON NetworkingV1beta1IngressTLS
instance A.FromJSON NetworkingV1beta1IngressTLS where
  parseJSON :: Value -> Parser NetworkingV1beta1IngressTLS
parseJSON = String
-> (Object -> Parser NetworkingV1beta1IngressTLS)
-> Value
-> Parser NetworkingV1beta1IngressTLS
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"NetworkingV1beta1IngressTLS" ((Object -> Parser NetworkingV1beta1IngressTLS)
 -> Value -> Parser NetworkingV1beta1IngressTLS)
-> (Object -> Parser NetworkingV1beta1IngressTLS)
-> Value
-> Parser NetworkingV1beta1IngressTLS
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text] -> Maybe Text -> NetworkingV1beta1IngressTLS
NetworkingV1beta1IngressTLS
      (Maybe [Text] -> Maybe Text -> NetworkingV1beta1IngressTLS)
-> Parser (Maybe [Text])
-> Parser (Maybe Text -> NetworkingV1beta1IngressTLS)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hosts")
      Parser (Maybe Text -> NetworkingV1beta1IngressTLS)
-> Parser (Maybe Text) -> Parser NetworkingV1beta1IngressTLS
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretName")

-- | ToJSON NetworkingV1beta1IngressTLS
instance A.ToJSON NetworkingV1beta1IngressTLS where
  toJSON :: NetworkingV1beta1IngressTLS -> Value
toJSON NetworkingV1beta1IngressTLS {Maybe [Text]
Maybe Text
networkingV1beta1IngressTLSSecretName :: Maybe Text
networkingV1beta1IngressTLSHosts :: Maybe [Text]
networkingV1beta1IngressTLSSecretName :: NetworkingV1beta1IngressTLS -> Maybe Text
networkingV1beta1IngressTLSHosts :: NetworkingV1beta1IngressTLS -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"hosts" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
networkingV1beta1IngressTLSHosts
      , Text
"secretName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
networkingV1beta1IngressTLSSecretName
      ]


-- | Construct a value of type 'NetworkingV1beta1IngressTLS' (by applying it's required fields, if any)
mkNetworkingV1beta1IngressTLS
  :: NetworkingV1beta1IngressTLS
mkNetworkingV1beta1IngressTLS :: NetworkingV1beta1IngressTLS
mkNetworkingV1beta1IngressTLS =
  NetworkingV1beta1IngressTLS :: Maybe [Text] -> Maybe Text -> NetworkingV1beta1IngressTLS
NetworkingV1beta1IngressTLS
  { networkingV1beta1IngressTLSHosts :: Maybe [Text]
networkingV1beta1IngressTLSHosts = Maybe [Text]
forall a. Maybe a
Nothing
  , networkingV1beta1IngressTLSSecretName :: Maybe Text
networkingV1beta1IngressTLSSecretName = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** PolicyV1beta1AllowedCSIDriver
-- | PolicyV1beta1AllowedCSIDriver
-- AllowedCSIDriver represents a single inline CSI Driver that is allowed to be used.
data PolicyV1beta1AllowedCSIDriver = PolicyV1beta1AllowedCSIDriver
  { PolicyV1beta1AllowedCSIDriver -> Text
policyV1beta1AllowedCSIDriverName :: !(Text) -- ^ /Required/ "name" - Name is the registered name of the CSI driver
  } deriving (Int -> PolicyV1beta1AllowedCSIDriver -> ShowS
[PolicyV1beta1AllowedCSIDriver] -> ShowS
PolicyV1beta1AllowedCSIDriver -> String
(Int -> PolicyV1beta1AllowedCSIDriver -> ShowS)
-> (PolicyV1beta1AllowedCSIDriver -> String)
-> ([PolicyV1beta1AllowedCSIDriver] -> ShowS)
-> Show PolicyV1beta1AllowedCSIDriver
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PolicyV1beta1AllowedCSIDriver] -> ShowS
$cshowList :: [PolicyV1beta1AllowedCSIDriver] -> ShowS
show :: PolicyV1beta1AllowedCSIDriver -> String
$cshow :: PolicyV1beta1AllowedCSIDriver -> String
showsPrec :: Int -> PolicyV1beta1AllowedCSIDriver -> ShowS
$cshowsPrec :: Int -> PolicyV1beta1AllowedCSIDriver -> ShowS
P.Show, PolicyV1beta1AllowedCSIDriver
-> PolicyV1beta1AllowedCSIDriver -> Bool
(PolicyV1beta1AllowedCSIDriver
 -> PolicyV1beta1AllowedCSIDriver -> Bool)
-> (PolicyV1beta1AllowedCSIDriver
    -> PolicyV1beta1AllowedCSIDriver -> Bool)
-> Eq PolicyV1beta1AllowedCSIDriver
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PolicyV1beta1AllowedCSIDriver
-> PolicyV1beta1AllowedCSIDriver -> Bool
$c/= :: PolicyV1beta1AllowedCSIDriver
-> PolicyV1beta1AllowedCSIDriver -> Bool
== :: PolicyV1beta1AllowedCSIDriver
-> PolicyV1beta1AllowedCSIDriver -> Bool
$c== :: PolicyV1beta1AllowedCSIDriver
-> PolicyV1beta1AllowedCSIDriver -> Bool
P.Eq, P.Typeable)

-- | FromJSON PolicyV1beta1AllowedCSIDriver
instance A.FromJSON PolicyV1beta1AllowedCSIDriver where
  parseJSON :: Value -> Parser PolicyV1beta1AllowedCSIDriver
parseJSON = String
-> (Object -> Parser PolicyV1beta1AllowedCSIDriver)
-> Value
-> Parser PolicyV1beta1AllowedCSIDriver
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"PolicyV1beta1AllowedCSIDriver" ((Object -> Parser PolicyV1beta1AllowedCSIDriver)
 -> Value -> Parser PolicyV1beta1AllowedCSIDriver)
-> (Object -> Parser PolicyV1beta1AllowedCSIDriver)
-> Value
-> Parser PolicyV1beta1AllowedCSIDriver
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> PolicyV1beta1AllowedCSIDriver
PolicyV1beta1AllowedCSIDriver
      (Text -> PolicyV1beta1AllowedCSIDriver)
-> Parser Text -> Parser PolicyV1beta1AllowedCSIDriver
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")

-- | ToJSON PolicyV1beta1AllowedCSIDriver
instance A.ToJSON PolicyV1beta1AllowedCSIDriver where
  toJSON :: PolicyV1beta1AllowedCSIDriver -> Value
toJSON PolicyV1beta1AllowedCSIDriver {Text
policyV1beta1AllowedCSIDriverName :: Text
policyV1beta1AllowedCSIDriverName :: PolicyV1beta1AllowedCSIDriver -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
policyV1beta1AllowedCSIDriverName
      ]


-- | Construct a value of type 'PolicyV1beta1AllowedCSIDriver' (by applying it's required fields, if any)
mkPolicyV1beta1AllowedCSIDriver
  :: Text -- ^ 'policyV1beta1AllowedCSIDriverName': Name is the registered name of the CSI driver
  -> PolicyV1beta1AllowedCSIDriver
mkPolicyV1beta1AllowedCSIDriver :: Text -> PolicyV1beta1AllowedCSIDriver
mkPolicyV1beta1AllowedCSIDriver Text
policyV1beta1AllowedCSIDriverName =
  PolicyV1beta1AllowedCSIDriver :: Text -> PolicyV1beta1AllowedCSIDriver
PolicyV1beta1AllowedCSIDriver
  { Text
policyV1beta1AllowedCSIDriverName :: Text
policyV1beta1AllowedCSIDriverName :: Text
policyV1beta1AllowedCSIDriverName
  }

-- ** PolicyV1beta1AllowedFlexVolume
-- | PolicyV1beta1AllowedFlexVolume
-- AllowedFlexVolume represents a single Flexvolume that is allowed to be used.
data PolicyV1beta1AllowedFlexVolume = PolicyV1beta1AllowedFlexVolume
  { PolicyV1beta1AllowedFlexVolume -> Text
policyV1beta1AllowedFlexVolumeDriver :: !(Text) -- ^ /Required/ "driver" - driver is the name of the Flexvolume driver.
  } deriving (Int -> PolicyV1beta1AllowedFlexVolume -> ShowS
[PolicyV1beta1AllowedFlexVolume] -> ShowS
PolicyV1beta1AllowedFlexVolume -> String
(Int -> PolicyV1beta1AllowedFlexVolume -> ShowS)
-> (PolicyV1beta1AllowedFlexVolume -> String)
-> ([PolicyV1beta1AllowedFlexVolume] -> ShowS)
-> Show PolicyV1beta1AllowedFlexVolume
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PolicyV1beta1AllowedFlexVolume] -> ShowS
$cshowList :: [PolicyV1beta1AllowedFlexVolume] -> ShowS
show :: PolicyV1beta1AllowedFlexVolume -> String
$cshow :: PolicyV1beta1AllowedFlexVolume -> String
showsPrec :: Int -> PolicyV1beta1AllowedFlexVolume -> ShowS
$cshowsPrec :: Int -> PolicyV1beta1AllowedFlexVolume -> ShowS
P.Show, PolicyV1beta1AllowedFlexVolume
-> PolicyV1beta1AllowedFlexVolume -> Bool
(PolicyV1beta1AllowedFlexVolume
 -> PolicyV1beta1AllowedFlexVolume -> Bool)
-> (PolicyV1beta1AllowedFlexVolume
    -> PolicyV1beta1AllowedFlexVolume -> Bool)
-> Eq PolicyV1beta1AllowedFlexVolume
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PolicyV1beta1AllowedFlexVolume
-> PolicyV1beta1AllowedFlexVolume -> Bool
$c/= :: PolicyV1beta1AllowedFlexVolume
-> PolicyV1beta1AllowedFlexVolume -> Bool
== :: PolicyV1beta1AllowedFlexVolume
-> PolicyV1beta1AllowedFlexVolume -> Bool
$c== :: PolicyV1beta1AllowedFlexVolume
-> PolicyV1beta1AllowedFlexVolume -> Bool
P.Eq, P.Typeable)

-- | FromJSON PolicyV1beta1AllowedFlexVolume
instance A.FromJSON PolicyV1beta1AllowedFlexVolume where
  parseJSON :: Value -> Parser PolicyV1beta1AllowedFlexVolume
parseJSON = String
-> (Object -> Parser PolicyV1beta1AllowedFlexVolume)
-> Value
-> Parser PolicyV1beta1AllowedFlexVolume
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"PolicyV1beta1AllowedFlexVolume" ((Object -> Parser PolicyV1beta1AllowedFlexVolume)
 -> Value -> Parser PolicyV1beta1AllowedFlexVolume)
-> (Object -> Parser PolicyV1beta1AllowedFlexVolume)
-> Value
-> Parser PolicyV1beta1AllowedFlexVolume
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> PolicyV1beta1AllowedFlexVolume
PolicyV1beta1AllowedFlexVolume
      (Text -> PolicyV1beta1AllowedFlexVolume)
-> Parser Text -> Parser PolicyV1beta1AllowedFlexVolume
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"driver")

-- | ToJSON PolicyV1beta1AllowedFlexVolume
instance A.ToJSON PolicyV1beta1AllowedFlexVolume where
  toJSON :: PolicyV1beta1AllowedFlexVolume -> Value
toJSON PolicyV1beta1AllowedFlexVolume {Text
policyV1beta1AllowedFlexVolumeDriver :: Text
policyV1beta1AllowedFlexVolumeDriver :: PolicyV1beta1AllowedFlexVolume -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"driver" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
policyV1beta1AllowedFlexVolumeDriver
      ]


-- | Construct a value of type 'PolicyV1beta1AllowedFlexVolume' (by applying it's required fields, if any)
mkPolicyV1beta1AllowedFlexVolume
  :: Text -- ^ 'policyV1beta1AllowedFlexVolumeDriver': driver is the name of the Flexvolume driver.
  -> PolicyV1beta1AllowedFlexVolume
mkPolicyV1beta1AllowedFlexVolume :: Text -> PolicyV1beta1AllowedFlexVolume
mkPolicyV1beta1AllowedFlexVolume Text
policyV1beta1AllowedFlexVolumeDriver =
  PolicyV1beta1AllowedFlexVolume :: Text -> PolicyV1beta1AllowedFlexVolume
PolicyV1beta1AllowedFlexVolume
  { Text
policyV1beta1AllowedFlexVolumeDriver :: Text
policyV1beta1AllowedFlexVolumeDriver :: Text
policyV1beta1AllowedFlexVolumeDriver
  }

-- ** PolicyV1beta1AllowedHostPath
-- | PolicyV1beta1AllowedHostPath
-- AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined.
data PolicyV1beta1AllowedHostPath = PolicyV1beta1AllowedHostPath
  { PolicyV1beta1AllowedHostPath -> Maybe Text
policyV1beta1AllowedHostPathPathPrefix :: !(Maybe Text) -- ^ "pathPrefix" - pathPrefix is the path prefix that the host volume must match. It does not support &#x60;*&#x60;. Trailing slashes are trimmed when validating the path prefix with a host path.  Examples: &#x60;/foo&#x60; would allow &#x60;/foo&#x60;, &#x60;/foo/&#x60; and &#x60;/foo/bar&#x60; &#x60;/foo&#x60; would not allow &#x60;/food&#x60; or &#x60;/etc/foo&#x60;
  , PolicyV1beta1AllowedHostPath -> Maybe Bool
policyV1beta1AllowedHostPathReadOnly :: !(Maybe Bool) -- ^ "readOnly" - when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.
  } deriving (Int -> PolicyV1beta1AllowedHostPath -> ShowS
[PolicyV1beta1AllowedHostPath] -> ShowS
PolicyV1beta1AllowedHostPath -> String
(Int -> PolicyV1beta1AllowedHostPath -> ShowS)
-> (PolicyV1beta1AllowedHostPath -> String)
-> ([PolicyV1beta1AllowedHostPath] -> ShowS)
-> Show PolicyV1beta1AllowedHostPath
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PolicyV1beta1AllowedHostPath] -> ShowS
$cshowList :: [PolicyV1beta1AllowedHostPath] -> ShowS
show :: PolicyV1beta1AllowedHostPath -> String
$cshow :: PolicyV1beta1AllowedHostPath -> String
showsPrec :: Int -> PolicyV1beta1AllowedHostPath -> ShowS
$cshowsPrec :: Int -> PolicyV1beta1AllowedHostPath -> ShowS
P.Show, PolicyV1beta1AllowedHostPath
-> PolicyV1beta1AllowedHostPath -> Bool
(PolicyV1beta1AllowedHostPath
 -> PolicyV1beta1AllowedHostPath -> Bool)
-> (PolicyV1beta1AllowedHostPath
    -> PolicyV1beta1AllowedHostPath -> Bool)
-> Eq PolicyV1beta1AllowedHostPath
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PolicyV1beta1AllowedHostPath
-> PolicyV1beta1AllowedHostPath -> Bool
$c/= :: PolicyV1beta1AllowedHostPath
-> PolicyV1beta1AllowedHostPath -> Bool
== :: PolicyV1beta1AllowedHostPath
-> PolicyV1beta1AllowedHostPath -> Bool
$c== :: PolicyV1beta1AllowedHostPath
-> PolicyV1beta1AllowedHostPath -> Bool
P.Eq, P.Typeable)

-- | FromJSON PolicyV1beta1AllowedHostPath
instance A.FromJSON PolicyV1beta1AllowedHostPath where
  parseJSON :: Value -> Parser PolicyV1beta1AllowedHostPath
parseJSON = String
-> (Object -> Parser PolicyV1beta1AllowedHostPath)
-> Value
-> Parser PolicyV1beta1AllowedHostPath
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"PolicyV1beta1AllowedHostPath" ((Object -> Parser PolicyV1beta1AllowedHostPath)
 -> Value -> Parser PolicyV1beta1AllowedHostPath)
-> (Object -> Parser PolicyV1beta1AllowedHostPath)
-> Value
-> Parser PolicyV1beta1AllowedHostPath
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Bool -> PolicyV1beta1AllowedHostPath
PolicyV1beta1AllowedHostPath
      (Maybe Text -> Maybe Bool -> PolicyV1beta1AllowedHostPath)
-> Parser (Maybe Text)
-> Parser (Maybe Bool -> PolicyV1beta1AllowedHostPath)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"pathPrefix")
      Parser (Maybe Bool -> PolicyV1beta1AllowedHostPath)
-> Parser (Maybe Bool) -> Parser PolicyV1beta1AllowedHostPath
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")

-- | ToJSON PolicyV1beta1AllowedHostPath
instance A.ToJSON PolicyV1beta1AllowedHostPath where
  toJSON :: PolicyV1beta1AllowedHostPath -> Value
toJSON PolicyV1beta1AllowedHostPath {Maybe Bool
Maybe Text
policyV1beta1AllowedHostPathReadOnly :: Maybe Bool
policyV1beta1AllowedHostPathPathPrefix :: Maybe Text
policyV1beta1AllowedHostPathReadOnly :: PolicyV1beta1AllowedHostPath -> Maybe Bool
policyV1beta1AllowedHostPathPathPrefix :: PolicyV1beta1AllowedHostPath -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"pathPrefix" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
policyV1beta1AllowedHostPathPathPrefix
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
policyV1beta1AllowedHostPathReadOnly
      ]


-- | Construct a value of type 'PolicyV1beta1AllowedHostPath' (by applying it's required fields, if any)
mkPolicyV1beta1AllowedHostPath
  :: PolicyV1beta1AllowedHostPath
mkPolicyV1beta1AllowedHostPath :: PolicyV1beta1AllowedHostPath
mkPolicyV1beta1AllowedHostPath =
  PolicyV1beta1AllowedHostPath :: Maybe Text -> Maybe Bool -> PolicyV1beta1AllowedHostPath
PolicyV1beta1AllowedHostPath
  { policyV1beta1AllowedHostPathPathPrefix :: Maybe Text
policyV1beta1AllowedHostPathPathPrefix = Maybe Text
forall a. Maybe a
Nothing
  , policyV1beta1AllowedHostPathReadOnly :: Maybe Bool
policyV1beta1AllowedHostPathReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** PolicyV1beta1FSGroupStrategyOptions
-- | PolicyV1beta1FSGroupStrategyOptions
-- FSGroupStrategyOptions defines the strategy type and options used to create the strategy.
data PolicyV1beta1FSGroupStrategyOptions = PolicyV1beta1FSGroupStrategyOptions
  { PolicyV1beta1FSGroupStrategyOptions -> Maybe [PolicyV1beta1IDRange]
policyV1beta1FSGroupStrategyOptionsRanges :: !(Maybe [PolicyV1beta1IDRange]) -- ^ "ranges" - ranges are the allowed ranges of fs groups.  If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs.
  , PolicyV1beta1FSGroupStrategyOptions -> Maybe Text
policyV1beta1FSGroupStrategyOptionsRule :: !(Maybe Text) -- ^ "rule" - rule is the strategy that will dictate what FSGroup is used in the SecurityContext.
  } deriving (Int -> PolicyV1beta1FSGroupStrategyOptions -> ShowS
[PolicyV1beta1FSGroupStrategyOptions] -> ShowS
PolicyV1beta1FSGroupStrategyOptions -> String
(Int -> PolicyV1beta1FSGroupStrategyOptions -> ShowS)
-> (PolicyV1beta1FSGroupStrategyOptions -> String)
-> ([PolicyV1beta1FSGroupStrategyOptions] -> ShowS)
-> Show PolicyV1beta1FSGroupStrategyOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PolicyV1beta1FSGroupStrategyOptions] -> ShowS
$cshowList :: [PolicyV1beta1FSGroupStrategyOptions] -> ShowS
show :: PolicyV1beta1FSGroupStrategyOptions -> String
$cshow :: PolicyV1beta1FSGroupStrategyOptions -> String
showsPrec :: Int -> PolicyV1beta1FSGroupStrategyOptions -> ShowS
$cshowsPrec :: Int -> PolicyV1beta1FSGroupStrategyOptions -> ShowS
P.Show, PolicyV1beta1FSGroupStrategyOptions
-> PolicyV1beta1FSGroupStrategyOptions -> Bool
(PolicyV1beta1FSGroupStrategyOptions
 -> PolicyV1beta1FSGroupStrategyOptions -> Bool)
-> (PolicyV1beta1FSGroupStrategyOptions
    -> PolicyV1beta1FSGroupStrategyOptions -> Bool)
-> Eq PolicyV1beta1FSGroupStrategyOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PolicyV1beta1FSGroupStrategyOptions
-> PolicyV1beta1FSGroupStrategyOptions -> Bool
$c/= :: PolicyV1beta1FSGroupStrategyOptions
-> PolicyV1beta1FSGroupStrategyOptions -> Bool
== :: PolicyV1beta1FSGroupStrategyOptions
-> PolicyV1beta1FSGroupStrategyOptions -> Bool
$c== :: PolicyV1beta1FSGroupStrategyOptions
-> PolicyV1beta1FSGroupStrategyOptions -> Bool
P.Eq, P.Typeable)

-- | FromJSON PolicyV1beta1FSGroupStrategyOptions
instance A.FromJSON PolicyV1beta1FSGroupStrategyOptions where
  parseJSON :: Value -> Parser PolicyV1beta1FSGroupStrategyOptions
parseJSON = String
-> (Object -> Parser PolicyV1beta1FSGroupStrategyOptions)
-> Value
-> Parser PolicyV1beta1FSGroupStrategyOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"PolicyV1beta1FSGroupStrategyOptions" ((Object -> Parser PolicyV1beta1FSGroupStrategyOptions)
 -> Value -> Parser PolicyV1beta1FSGroupStrategyOptions)
-> (Object -> Parser PolicyV1beta1FSGroupStrategyOptions)
-> Value
-> Parser PolicyV1beta1FSGroupStrategyOptions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [PolicyV1beta1IDRange]
-> Maybe Text -> PolicyV1beta1FSGroupStrategyOptions
PolicyV1beta1FSGroupStrategyOptions
      (Maybe [PolicyV1beta1IDRange]
 -> Maybe Text -> PolicyV1beta1FSGroupStrategyOptions)
-> Parser (Maybe [PolicyV1beta1IDRange])
-> Parser (Maybe Text -> PolicyV1beta1FSGroupStrategyOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [PolicyV1beta1IDRange])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ranges")
      Parser (Maybe Text -> PolicyV1beta1FSGroupStrategyOptions)
-> Parser (Maybe Text)
-> Parser PolicyV1beta1FSGroupStrategyOptions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rule")

-- | ToJSON PolicyV1beta1FSGroupStrategyOptions
instance A.ToJSON PolicyV1beta1FSGroupStrategyOptions where
  toJSON :: PolicyV1beta1FSGroupStrategyOptions -> Value
toJSON PolicyV1beta1FSGroupStrategyOptions {Maybe [PolicyV1beta1IDRange]
Maybe Text
policyV1beta1FSGroupStrategyOptionsRule :: Maybe Text
policyV1beta1FSGroupStrategyOptionsRanges :: Maybe [PolicyV1beta1IDRange]
policyV1beta1FSGroupStrategyOptionsRule :: PolicyV1beta1FSGroupStrategyOptions -> Maybe Text
policyV1beta1FSGroupStrategyOptionsRanges :: PolicyV1beta1FSGroupStrategyOptions -> Maybe [PolicyV1beta1IDRange]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"ranges" Text -> Maybe [PolicyV1beta1IDRange] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [PolicyV1beta1IDRange]
policyV1beta1FSGroupStrategyOptionsRanges
      , Text
"rule" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
policyV1beta1FSGroupStrategyOptionsRule
      ]


-- | Construct a value of type 'PolicyV1beta1FSGroupStrategyOptions' (by applying it's required fields, if any)
mkPolicyV1beta1FSGroupStrategyOptions
  :: PolicyV1beta1FSGroupStrategyOptions
mkPolicyV1beta1FSGroupStrategyOptions :: PolicyV1beta1FSGroupStrategyOptions
mkPolicyV1beta1FSGroupStrategyOptions =
  PolicyV1beta1FSGroupStrategyOptions :: Maybe [PolicyV1beta1IDRange]
-> Maybe Text -> PolicyV1beta1FSGroupStrategyOptions
PolicyV1beta1FSGroupStrategyOptions
  { policyV1beta1FSGroupStrategyOptionsRanges :: Maybe [PolicyV1beta1IDRange]
policyV1beta1FSGroupStrategyOptionsRanges = Maybe [PolicyV1beta1IDRange]
forall a. Maybe a
Nothing
  , policyV1beta1FSGroupStrategyOptionsRule :: Maybe Text
policyV1beta1FSGroupStrategyOptionsRule = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** PolicyV1beta1HostPortRange
-- | PolicyV1beta1HostPortRange
-- HostPortRange defines a range of host ports that will be enabled by a policy for pods to use.  It requires both the start and end to be defined.
data PolicyV1beta1HostPortRange = PolicyV1beta1HostPortRange
  { PolicyV1beta1HostPortRange -> Int
policyV1beta1HostPortRangeMax :: !(Int) -- ^ /Required/ "max" - max is the end of the range, inclusive.
  , PolicyV1beta1HostPortRange -> Int
policyV1beta1HostPortRangeMin :: !(Int) -- ^ /Required/ "min" - min is the start of the range, inclusive.
  } deriving (Int -> PolicyV1beta1HostPortRange -> ShowS
[PolicyV1beta1HostPortRange] -> ShowS
PolicyV1beta1HostPortRange -> String
(Int -> PolicyV1beta1HostPortRange -> ShowS)
-> (PolicyV1beta1HostPortRange -> String)
-> ([PolicyV1beta1HostPortRange] -> ShowS)
-> Show PolicyV1beta1HostPortRange
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PolicyV1beta1HostPortRange] -> ShowS
$cshowList :: [PolicyV1beta1HostPortRange] -> ShowS
show :: PolicyV1beta1HostPortRange -> String
$cshow :: PolicyV1beta1HostPortRange -> String
showsPrec :: Int -> PolicyV1beta1HostPortRange -> ShowS
$cshowsPrec :: Int -> PolicyV1beta1HostPortRange -> ShowS
P.Show, PolicyV1beta1HostPortRange -> PolicyV1beta1HostPortRange -> Bool
(PolicyV1beta1HostPortRange -> PolicyV1beta1HostPortRange -> Bool)
-> (PolicyV1beta1HostPortRange
    -> PolicyV1beta1HostPortRange -> Bool)
-> Eq PolicyV1beta1HostPortRange
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PolicyV1beta1HostPortRange -> PolicyV1beta1HostPortRange -> Bool
$c/= :: PolicyV1beta1HostPortRange -> PolicyV1beta1HostPortRange -> Bool
== :: PolicyV1beta1HostPortRange -> PolicyV1beta1HostPortRange -> Bool
$c== :: PolicyV1beta1HostPortRange -> PolicyV1beta1HostPortRange -> Bool
P.Eq, P.Typeable)

-- | FromJSON PolicyV1beta1HostPortRange
instance A.FromJSON PolicyV1beta1HostPortRange where
  parseJSON :: Value -> Parser PolicyV1beta1HostPortRange
parseJSON = String
-> (Object -> Parser PolicyV1beta1HostPortRange)
-> Value
-> Parser PolicyV1beta1HostPortRange
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"PolicyV1beta1HostPortRange" ((Object -> Parser PolicyV1beta1HostPortRange)
 -> Value -> Parser PolicyV1beta1HostPortRange)
-> (Object -> Parser PolicyV1beta1HostPortRange)
-> Value
-> Parser PolicyV1beta1HostPortRange
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Int -> Int -> PolicyV1beta1HostPortRange
PolicyV1beta1HostPortRange
      (Int -> Int -> PolicyV1beta1HostPortRange)
-> Parser Int -> Parser (Int -> PolicyV1beta1HostPortRange)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"max")
      Parser (Int -> PolicyV1beta1HostPortRange)
-> Parser Int -> Parser PolicyV1beta1HostPortRange
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"min")

-- | ToJSON PolicyV1beta1HostPortRange
instance A.ToJSON PolicyV1beta1HostPortRange where
  toJSON :: PolicyV1beta1HostPortRange -> Value
toJSON PolicyV1beta1HostPortRange {Int
policyV1beta1HostPortRangeMin :: Int
policyV1beta1HostPortRangeMax :: Int
policyV1beta1HostPortRangeMin :: PolicyV1beta1HostPortRange -> Int
policyV1beta1HostPortRangeMax :: PolicyV1beta1HostPortRange -> Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"max" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
policyV1beta1HostPortRangeMax
      , Text
"min" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
policyV1beta1HostPortRangeMin
      ]


-- | Construct a value of type 'PolicyV1beta1HostPortRange' (by applying it's required fields, if any)
mkPolicyV1beta1HostPortRange
  :: Int -- ^ 'policyV1beta1HostPortRangeMax': max is the end of the range, inclusive.
  -> Int -- ^ 'policyV1beta1HostPortRangeMin': min is the start of the range, inclusive.
  -> PolicyV1beta1HostPortRange
mkPolicyV1beta1HostPortRange :: Int -> Int -> PolicyV1beta1HostPortRange
mkPolicyV1beta1HostPortRange Int
policyV1beta1HostPortRangeMax Int
policyV1beta1HostPortRangeMin =
  PolicyV1beta1HostPortRange :: Int -> Int -> PolicyV1beta1HostPortRange
PolicyV1beta1HostPortRange
  { Int
policyV1beta1HostPortRangeMax :: Int
policyV1beta1HostPortRangeMax :: Int
policyV1beta1HostPortRangeMax
  , Int
policyV1beta1HostPortRangeMin :: Int
policyV1beta1HostPortRangeMin :: Int
policyV1beta1HostPortRangeMin
  }

-- ** PolicyV1beta1IDRange
-- | PolicyV1beta1IDRange
-- IDRange provides a min/max of an allowed range of IDs.
data PolicyV1beta1IDRange = PolicyV1beta1IDRange
  { PolicyV1beta1IDRange -> Integer
policyV1beta1IDRangeMax :: !(Integer) -- ^ /Required/ "max" - max is the end of the range, inclusive.
  , PolicyV1beta1IDRange -> Integer
policyV1beta1IDRangeMin :: !(Integer) -- ^ /Required/ "min" - min is the start of the range, inclusive.
  } deriving (Int -> PolicyV1beta1IDRange -> ShowS
[PolicyV1beta1IDRange] -> ShowS
PolicyV1beta1IDRange -> String
(Int -> PolicyV1beta1IDRange -> ShowS)
-> (PolicyV1beta1IDRange -> String)
-> ([PolicyV1beta1IDRange] -> ShowS)
-> Show PolicyV1beta1IDRange
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PolicyV1beta1IDRange] -> ShowS
$cshowList :: [PolicyV1beta1IDRange] -> ShowS
show :: PolicyV1beta1IDRange -> String
$cshow :: PolicyV1beta1IDRange -> String
showsPrec :: Int -> PolicyV1beta1IDRange -> ShowS
$cshowsPrec :: Int -> PolicyV1beta1IDRange -> ShowS
P.Show, PolicyV1beta1IDRange -> PolicyV1beta1IDRange -> Bool
(PolicyV1beta1IDRange -> PolicyV1beta1IDRange -> Bool)
-> (PolicyV1beta1IDRange -> PolicyV1beta1IDRange -> Bool)
-> Eq PolicyV1beta1IDRange
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PolicyV1beta1IDRange -> PolicyV1beta1IDRange -> Bool
$c/= :: PolicyV1beta1IDRange -> PolicyV1beta1IDRange -> Bool
== :: PolicyV1beta1IDRange -> PolicyV1beta1IDRange -> Bool
$c== :: PolicyV1beta1IDRange -> PolicyV1beta1IDRange -> Bool
P.Eq, P.Typeable)

-- | FromJSON PolicyV1beta1IDRange
instance A.FromJSON PolicyV1beta1IDRange where
  parseJSON :: Value -> Parser PolicyV1beta1IDRange
parseJSON = String
-> (Object -> Parser PolicyV1beta1IDRange)
-> Value
-> Parser PolicyV1beta1IDRange
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"PolicyV1beta1IDRange" ((Object -> Parser PolicyV1beta1IDRange)
 -> Value -> Parser PolicyV1beta1IDRange)
-> (Object -> Parser PolicyV1beta1IDRange)
-> Value
-> Parser PolicyV1beta1IDRange
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Integer -> Integer -> PolicyV1beta1IDRange
PolicyV1beta1IDRange
      (Integer -> Integer -> PolicyV1beta1IDRange)
-> Parser Integer -> Parser (Integer -> PolicyV1beta1IDRange)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Integer
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"max")
      Parser (Integer -> PolicyV1beta1IDRange)
-> Parser Integer -> Parser PolicyV1beta1IDRange
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Integer
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"min")

-- | ToJSON PolicyV1beta1IDRange
instance A.ToJSON PolicyV1beta1IDRange where
  toJSON :: PolicyV1beta1IDRange -> Value
toJSON PolicyV1beta1IDRange {Integer
policyV1beta1IDRangeMin :: Integer
policyV1beta1IDRangeMax :: Integer
policyV1beta1IDRangeMin :: PolicyV1beta1IDRange -> Integer
policyV1beta1IDRangeMax :: PolicyV1beta1IDRange -> Integer
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"max" Text -> Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Integer
policyV1beta1IDRangeMax
      , Text
"min" Text -> Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Integer
policyV1beta1IDRangeMin
      ]


-- | Construct a value of type 'PolicyV1beta1IDRange' (by applying it's required fields, if any)
mkPolicyV1beta1IDRange
  :: Integer -- ^ 'policyV1beta1IDRangeMax': max is the end of the range, inclusive.
  -> Integer -- ^ 'policyV1beta1IDRangeMin': min is the start of the range, inclusive.
  -> PolicyV1beta1IDRange
mkPolicyV1beta1IDRange :: Integer -> Integer -> PolicyV1beta1IDRange
mkPolicyV1beta1IDRange Integer
policyV1beta1IDRangeMax Integer
policyV1beta1IDRangeMin =
  PolicyV1beta1IDRange :: Integer -> Integer -> PolicyV1beta1IDRange
PolicyV1beta1IDRange
  { Integer
policyV1beta1IDRangeMax :: Integer
policyV1beta1IDRangeMax :: Integer
policyV1beta1IDRangeMax
  , Integer
policyV1beta1IDRangeMin :: Integer
policyV1beta1IDRangeMin :: Integer
policyV1beta1IDRangeMin
  }

-- ** PolicyV1beta1PodSecurityPolicy
-- | PolicyV1beta1PodSecurityPolicy
-- PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.
data PolicyV1beta1PodSecurityPolicy = PolicyV1beta1PodSecurityPolicy
  { PolicyV1beta1PodSecurityPolicy -> Maybe Text
policyV1beta1PodSecurityPolicyApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , PolicyV1beta1PodSecurityPolicy -> Maybe Text
policyV1beta1PodSecurityPolicyKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , PolicyV1beta1PodSecurityPolicy -> Maybe V1ObjectMeta
policyV1beta1PodSecurityPolicyMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , PolicyV1beta1PodSecurityPolicy
-> Maybe PolicyV1beta1PodSecurityPolicySpec
policyV1beta1PodSecurityPolicySpec :: !(Maybe PolicyV1beta1PodSecurityPolicySpec) -- ^ "spec"
  } deriving (Int -> PolicyV1beta1PodSecurityPolicy -> ShowS
[PolicyV1beta1PodSecurityPolicy] -> ShowS
PolicyV1beta1PodSecurityPolicy -> String
(Int -> PolicyV1beta1PodSecurityPolicy -> ShowS)
-> (PolicyV1beta1PodSecurityPolicy -> String)
-> ([PolicyV1beta1PodSecurityPolicy] -> ShowS)
-> Show PolicyV1beta1PodSecurityPolicy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PolicyV1beta1PodSecurityPolicy] -> ShowS
$cshowList :: [PolicyV1beta1PodSecurityPolicy] -> ShowS
show :: PolicyV1beta1PodSecurityPolicy -> String
$cshow :: PolicyV1beta1PodSecurityPolicy -> String
showsPrec :: Int -> PolicyV1beta1PodSecurityPolicy -> ShowS
$cshowsPrec :: Int -> PolicyV1beta1PodSecurityPolicy -> ShowS
P.Show, PolicyV1beta1PodSecurityPolicy
-> PolicyV1beta1PodSecurityPolicy -> Bool
(PolicyV1beta1PodSecurityPolicy
 -> PolicyV1beta1PodSecurityPolicy -> Bool)
-> (PolicyV1beta1PodSecurityPolicy
    -> PolicyV1beta1PodSecurityPolicy -> Bool)
-> Eq PolicyV1beta1PodSecurityPolicy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PolicyV1beta1PodSecurityPolicy
-> PolicyV1beta1PodSecurityPolicy -> Bool
$c/= :: PolicyV1beta1PodSecurityPolicy
-> PolicyV1beta1PodSecurityPolicy -> Bool
== :: PolicyV1beta1PodSecurityPolicy
-> PolicyV1beta1PodSecurityPolicy -> Bool
$c== :: PolicyV1beta1PodSecurityPolicy
-> PolicyV1beta1PodSecurityPolicy -> Bool
P.Eq, P.Typeable)

-- | FromJSON PolicyV1beta1PodSecurityPolicy
instance A.FromJSON PolicyV1beta1PodSecurityPolicy where
  parseJSON :: Value -> Parser PolicyV1beta1PodSecurityPolicy
parseJSON = String
-> (Object -> Parser PolicyV1beta1PodSecurityPolicy)
-> Value
-> Parser PolicyV1beta1PodSecurityPolicy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"PolicyV1beta1PodSecurityPolicy" ((Object -> Parser PolicyV1beta1PodSecurityPolicy)
 -> Value -> Parser PolicyV1beta1PodSecurityPolicy)
-> (Object -> Parser PolicyV1beta1PodSecurityPolicy)
-> Value
-> Parser PolicyV1beta1PodSecurityPolicy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe PolicyV1beta1PodSecurityPolicySpec
-> PolicyV1beta1PodSecurityPolicy
PolicyV1beta1PodSecurityPolicy
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe PolicyV1beta1PodSecurityPolicySpec
 -> PolicyV1beta1PodSecurityPolicy)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe PolicyV1beta1PodSecurityPolicySpec
      -> PolicyV1beta1PodSecurityPolicy)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe PolicyV1beta1PodSecurityPolicySpec
   -> PolicyV1beta1PodSecurityPolicy)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe PolicyV1beta1PodSecurityPolicySpec
      -> PolicyV1beta1PodSecurityPolicy)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe PolicyV1beta1PodSecurityPolicySpec
   -> PolicyV1beta1PodSecurityPolicy)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe PolicyV1beta1PodSecurityPolicySpec
      -> PolicyV1beta1PodSecurityPolicy)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe PolicyV1beta1PodSecurityPolicySpec
   -> PolicyV1beta1PodSecurityPolicy)
-> Parser (Maybe PolicyV1beta1PodSecurityPolicySpec)
-> Parser PolicyV1beta1PodSecurityPolicy
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe PolicyV1beta1PodSecurityPolicySpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")

-- | ToJSON PolicyV1beta1PodSecurityPolicy
instance A.ToJSON PolicyV1beta1PodSecurityPolicy where
  toJSON :: PolicyV1beta1PodSecurityPolicy -> Value
toJSON PolicyV1beta1PodSecurityPolicy {Maybe Text
Maybe V1ObjectMeta
Maybe PolicyV1beta1PodSecurityPolicySpec
policyV1beta1PodSecurityPolicySpec :: Maybe PolicyV1beta1PodSecurityPolicySpec
policyV1beta1PodSecurityPolicyMetadata :: Maybe V1ObjectMeta
policyV1beta1PodSecurityPolicyKind :: Maybe Text
policyV1beta1PodSecurityPolicyApiVersion :: Maybe Text
policyV1beta1PodSecurityPolicySpec :: PolicyV1beta1PodSecurityPolicy
-> Maybe PolicyV1beta1PodSecurityPolicySpec
policyV1beta1PodSecurityPolicyMetadata :: PolicyV1beta1PodSecurityPolicy -> Maybe V1ObjectMeta
policyV1beta1PodSecurityPolicyKind :: PolicyV1beta1PodSecurityPolicy -> Maybe Text
policyV1beta1PodSecurityPolicyApiVersion :: PolicyV1beta1PodSecurityPolicy -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
policyV1beta1PodSecurityPolicyApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
policyV1beta1PodSecurityPolicyKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
policyV1beta1PodSecurityPolicyMetadata
      , Text
"spec" Text -> Maybe PolicyV1beta1PodSecurityPolicySpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe PolicyV1beta1PodSecurityPolicySpec
policyV1beta1PodSecurityPolicySpec
      ]


-- | Construct a value of type 'PolicyV1beta1PodSecurityPolicy' (by applying it's required fields, if any)
mkPolicyV1beta1PodSecurityPolicy
  :: PolicyV1beta1PodSecurityPolicy
mkPolicyV1beta1PodSecurityPolicy :: PolicyV1beta1PodSecurityPolicy
mkPolicyV1beta1PodSecurityPolicy =
  PolicyV1beta1PodSecurityPolicy :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe PolicyV1beta1PodSecurityPolicySpec
-> PolicyV1beta1PodSecurityPolicy
PolicyV1beta1PodSecurityPolicy
  { policyV1beta1PodSecurityPolicyApiVersion :: Maybe Text
policyV1beta1PodSecurityPolicyApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicyKind :: Maybe Text
policyV1beta1PodSecurityPolicyKind = Maybe Text
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicyMetadata :: Maybe V1ObjectMeta
policyV1beta1PodSecurityPolicyMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpec :: Maybe PolicyV1beta1PodSecurityPolicySpec
policyV1beta1PodSecurityPolicySpec = Maybe PolicyV1beta1PodSecurityPolicySpec
forall a. Maybe a
Nothing
  }

-- ** PolicyV1beta1PodSecurityPolicyList
-- | PolicyV1beta1PodSecurityPolicyList
-- PodSecurityPolicyList is a list of PodSecurityPolicy objects.
data PolicyV1beta1PodSecurityPolicyList = PolicyV1beta1PodSecurityPolicyList
  { PolicyV1beta1PodSecurityPolicyList -> Maybe Text
policyV1beta1PodSecurityPolicyListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , PolicyV1beta1PodSecurityPolicyList
-> [PolicyV1beta1PodSecurityPolicy]
policyV1beta1PodSecurityPolicyListItems :: !([PolicyV1beta1PodSecurityPolicy]) -- ^ /Required/ "items" - items is a list of schema objects.
  , PolicyV1beta1PodSecurityPolicyList -> Maybe Text
policyV1beta1PodSecurityPolicyListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , PolicyV1beta1PodSecurityPolicyList -> Maybe V1ListMeta
policyV1beta1PodSecurityPolicyListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> PolicyV1beta1PodSecurityPolicyList -> ShowS
[PolicyV1beta1PodSecurityPolicyList] -> ShowS
PolicyV1beta1PodSecurityPolicyList -> String
(Int -> PolicyV1beta1PodSecurityPolicyList -> ShowS)
-> (PolicyV1beta1PodSecurityPolicyList -> String)
-> ([PolicyV1beta1PodSecurityPolicyList] -> ShowS)
-> Show PolicyV1beta1PodSecurityPolicyList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PolicyV1beta1PodSecurityPolicyList] -> ShowS
$cshowList :: [PolicyV1beta1PodSecurityPolicyList] -> ShowS
show :: PolicyV1beta1PodSecurityPolicyList -> String
$cshow :: PolicyV1beta1PodSecurityPolicyList -> String
showsPrec :: Int -> PolicyV1beta1PodSecurityPolicyList -> ShowS
$cshowsPrec :: Int -> PolicyV1beta1PodSecurityPolicyList -> ShowS
P.Show, PolicyV1beta1PodSecurityPolicyList
-> PolicyV1beta1PodSecurityPolicyList -> Bool
(PolicyV1beta1PodSecurityPolicyList
 -> PolicyV1beta1PodSecurityPolicyList -> Bool)
-> (PolicyV1beta1PodSecurityPolicyList
    -> PolicyV1beta1PodSecurityPolicyList -> Bool)
-> Eq PolicyV1beta1PodSecurityPolicyList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PolicyV1beta1PodSecurityPolicyList
-> PolicyV1beta1PodSecurityPolicyList -> Bool
$c/= :: PolicyV1beta1PodSecurityPolicyList
-> PolicyV1beta1PodSecurityPolicyList -> Bool
== :: PolicyV1beta1PodSecurityPolicyList
-> PolicyV1beta1PodSecurityPolicyList -> Bool
$c== :: PolicyV1beta1PodSecurityPolicyList
-> PolicyV1beta1PodSecurityPolicyList -> Bool
P.Eq, P.Typeable)

-- | FromJSON PolicyV1beta1PodSecurityPolicyList
instance A.FromJSON PolicyV1beta1PodSecurityPolicyList where
  parseJSON :: Value -> Parser PolicyV1beta1PodSecurityPolicyList
parseJSON = String
-> (Object -> Parser PolicyV1beta1PodSecurityPolicyList)
-> Value
-> Parser PolicyV1beta1PodSecurityPolicyList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"PolicyV1beta1PodSecurityPolicyList" ((Object -> Parser PolicyV1beta1PodSecurityPolicyList)
 -> Value -> Parser PolicyV1beta1PodSecurityPolicyList)
-> (Object -> Parser PolicyV1beta1PodSecurityPolicyList)
-> Value
-> Parser PolicyV1beta1PodSecurityPolicyList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [PolicyV1beta1PodSecurityPolicy]
-> Maybe Text
-> Maybe V1ListMeta
-> PolicyV1beta1PodSecurityPolicyList
PolicyV1beta1PodSecurityPolicyList
      (Maybe Text
 -> [PolicyV1beta1PodSecurityPolicy]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> PolicyV1beta1PodSecurityPolicyList)
-> Parser (Maybe Text)
-> Parser
     ([PolicyV1beta1PodSecurityPolicy]
      -> Maybe Text
      -> Maybe V1ListMeta
      -> PolicyV1beta1PodSecurityPolicyList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([PolicyV1beta1PodSecurityPolicy]
   -> Maybe Text
   -> Maybe V1ListMeta
   -> PolicyV1beta1PodSecurityPolicyList)
-> Parser [PolicyV1beta1PodSecurityPolicy]
-> Parser
     (Maybe Text
      -> Maybe V1ListMeta -> PolicyV1beta1PodSecurityPolicyList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [PolicyV1beta1PodSecurityPolicy]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text
   -> Maybe V1ListMeta -> PolicyV1beta1PodSecurityPolicyList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> PolicyV1beta1PodSecurityPolicyList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> PolicyV1beta1PodSecurityPolicyList)
-> Parser (Maybe V1ListMeta)
-> Parser PolicyV1beta1PodSecurityPolicyList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON PolicyV1beta1PodSecurityPolicyList
instance A.ToJSON PolicyV1beta1PodSecurityPolicyList where
  toJSON :: PolicyV1beta1PodSecurityPolicyList -> Value
toJSON PolicyV1beta1PodSecurityPolicyList {[PolicyV1beta1PodSecurityPolicy]
Maybe Text
Maybe V1ListMeta
policyV1beta1PodSecurityPolicyListMetadata :: Maybe V1ListMeta
policyV1beta1PodSecurityPolicyListKind :: Maybe Text
policyV1beta1PodSecurityPolicyListItems :: [PolicyV1beta1PodSecurityPolicy]
policyV1beta1PodSecurityPolicyListApiVersion :: Maybe Text
policyV1beta1PodSecurityPolicyListMetadata :: PolicyV1beta1PodSecurityPolicyList -> Maybe V1ListMeta
policyV1beta1PodSecurityPolicyListKind :: PolicyV1beta1PodSecurityPolicyList -> Maybe Text
policyV1beta1PodSecurityPolicyListItems :: PolicyV1beta1PodSecurityPolicyList
-> [PolicyV1beta1PodSecurityPolicy]
policyV1beta1PodSecurityPolicyListApiVersion :: PolicyV1beta1PodSecurityPolicyList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
policyV1beta1PodSecurityPolicyListApiVersion
      , Text
"items" Text -> [PolicyV1beta1PodSecurityPolicy] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [PolicyV1beta1PodSecurityPolicy]
policyV1beta1PodSecurityPolicyListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
policyV1beta1PodSecurityPolicyListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
policyV1beta1PodSecurityPolicyListMetadata
      ]


-- | Construct a value of type 'PolicyV1beta1PodSecurityPolicyList' (by applying it's required fields, if any)
mkPolicyV1beta1PodSecurityPolicyList
  :: [PolicyV1beta1PodSecurityPolicy] -- ^ 'policyV1beta1PodSecurityPolicyListItems': items is a list of schema objects.
  -> PolicyV1beta1PodSecurityPolicyList
mkPolicyV1beta1PodSecurityPolicyList :: [PolicyV1beta1PodSecurityPolicy]
-> PolicyV1beta1PodSecurityPolicyList
mkPolicyV1beta1PodSecurityPolicyList [PolicyV1beta1PodSecurityPolicy]
policyV1beta1PodSecurityPolicyListItems =
  PolicyV1beta1PodSecurityPolicyList :: Maybe Text
-> [PolicyV1beta1PodSecurityPolicy]
-> Maybe Text
-> Maybe V1ListMeta
-> PolicyV1beta1PodSecurityPolicyList
PolicyV1beta1PodSecurityPolicyList
  { policyV1beta1PodSecurityPolicyListApiVersion :: Maybe Text
policyV1beta1PodSecurityPolicyListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [PolicyV1beta1PodSecurityPolicy]
policyV1beta1PodSecurityPolicyListItems :: [PolicyV1beta1PodSecurityPolicy]
policyV1beta1PodSecurityPolicyListItems :: [PolicyV1beta1PodSecurityPolicy]
policyV1beta1PodSecurityPolicyListItems
  , policyV1beta1PodSecurityPolicyListKind :: Maybe Text
policyV1beta1PodSecurityPolicyListKind = Maybe Text
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicyListMetadata :: Maybe V1ListMeta
policyV1beta1PodSecurityPolicyListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** PolicyV1beta1PodSecurityPolicySpec
-- | PolicyV1beta1PodSecurityPolicySpec
-- PodSecurityPolicySpec defines the policy enforced.
data PolicyV1beta1PodSecurityPolicySpec = PolicyV1beta1PodSecurityPolicySpec
  { PolicyV1beta1PodSecurityPolicySpec -> Maybe Bool
policyV1beta1PodSecurityPolicySpecAllowPrivilegeEscalation :: !(Maybe Bool) -- ^ "allowPrivilegeEscalation" - allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.
  , PolicyV1beta1PodSecurityPolicySpec
-> Maybe [PolicyV1beta1AllowedCSIDriver]
policyV1beta1PodSecurityPolicySpecAllowedCsiDrivers :: !(Maybe [PolicyV1beta1AllowedCSIDriver]) -- ^ "allowedCSIDrivers" - AllowedCSIDrivers is a whitelist of inline CSI drivers that must be explicitly set to be embedded within a pod spec. An empty value indicates that any CSI driver can be used for inline ephemeral volumes. This is an alpha field, and is only honored if the API server enables the CSIInlineVolume feature gate.
  , PolicyV1beta1PodSecurityPolicySpec -> Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedCapabilities :: !(Maybe [Text]) -- ^ "allowedCapabilities" - allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author&#39;s discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.
  , PolicyV1beta1PodSecurityPolicySpec
-> Maybe [PolicyV1beta1AllowedFlexVolume]
policyV1beta1PodSecurityPolicySpecAllowedFlexVolumes :: !(Maybe [PolicyV1beta1AllowedFlexVolume]) -- ^ "allowedFlexVolumes" - allowedFlexVolumes is a whitelist of allowed Flexvolumes.  Empty or nil indicates that all Flexvolumes may be used.  This parameter is effective only when the usage of the Flexvolumes is allowed in the \&quot;volumes\&quot; field.
  , PolicyV1beta1PodSecurityPolicySpec
-> Maybe [PolicyV1beta1AllowedHostPath]
policyV1beta1PodSecurityPolicySpecAllowedHostPaths :: !(Maybe [PolicyV1beta1AllowedHostPath]) -- ^ "allowedHostPaths" - allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used.
  , PolicyV1beta1PodSecurityPolicySpec -> Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedProcMountTypes :: !(Maybe [Text]) -- ^ "allowedProcMountTypes" - AllowedProcMountTypes is a whitelist of allowed ProcMountTypes. Empty or nil indicates that only the DefaultProcMountType may be used. This requires the ProcMountType feature flag to be enabled.
  , PolicyV1beta1PodSecurityPolicySpec -> Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedUnsafeSysctls :: !(Maybe [Text]) -- ^ "allowedUnsafeSysctls" - allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \&quot;*\&quot; in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection.  Examples: e.g. \&quot;foo/*\&quot; allows \&quot;foo/bar\&quot;, \&quot;foo/baz\&quot;, etc. e.g. \&quot;foo.*\&quot; allows \&quot;foo.bar\&quot;, \&quot;foo.baz\&quot;, etc.
  , PolicyV1beta1PodSecurityPolicySpec -> Maybe [Text]
policyV1beta1PodSecurityPolicySpecDefaultAddCapabilities :: !(Maybe [Text]) -- ^ "defaultAddCapabilities" - defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability.  You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.
  , PolicyV1beta1PodSecurityPolicySpec -> Maybe Bool
policyV1beta1PodSecurityPolicySpecDefaultAllowPrivilegeEscalation :: !(Maybe Bool) -- ^ "defaultAllowPrivilegeEscalation" - defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.
  , PolicyV1beta1PodSecurityPolicySpec -> Maybe [Text]
policyV1beta1PodSecurityPolicySpecForbiddenSysctls :: !(Maybe [Text]) -- ^ "forbiddenSysctls" - forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \&quot;*\&quot; in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.  Examples: e.g. \&quot;foo/*\&quot; forbids \&quot;foo/bar\&quot;, \&quot;foo/baz\&quot;, etc. e.g. \&quot;foo.*\&quot; forbids \&quot;foo.bar\&quot;, \&quot;foo.baz\&quot;, etc.
  , PolicyV1beta1PodSecurityPolicySpec
-> PolicyV1beta1FSGroupStrategyOptions
policyV1beta1PodSecurityPolicySpecFsGroup :: !(PolicyV1beta1FSGroupStrategyOptions) -- ^ /Required/ "fsGroup"
  , PolicyV1beta1PodSecurityPolicySpec -> Maybe Bool
policyV1beta1PodSecurityPolicySpecHostIpc :: !(Maybe Bool) -- ^ "hostIPC" - hostIPC determines if the policy allows the use of HostIPC in the pod spec.
  , PolicyV1beta1PodSecurityPolicySpec -> Maybe Bool
policyV1beta1PodSecurityPolicySpecHostNetwork :: !(Maybe Bool) -- ^ "hostNetwork" - hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.
  , PolicyV1beta1PodSecurityPolicySpec -> Maybe Bool
policyV1beta1PodSecurityPolicySpecHostPid :: !(Maybe Bool) -- ^ "hostPID" - hostPID determines if the policy allows the use of HostPID in the pod spec.
  , PolicyV1beta1PodSecurityPolicySpec
-> Maybe [PolicyV1beta1HostPortRange]
policyV1beta1PodSecurityPolicySpecHostPorts :: !(Maybe [PolicyV1beta1HostPortRange]) -- ^ "hostPorts" - hostPorts determines which host port ranges are allowed to be exposed.
  , PolicyV1beta1PodSecurityPolicySpec -> Maybe Bool
policyV1beta1PodSecurityPolicySpecPrivileged :: !(Maybe Bool) -- ^ "privileged" - privileged determines if a pod can request to be run as privileged.
  , PolicyV1beta1PodSecurityPolicySpec -> Maybe Bool
policyV1beta1PodSecurityPolicySpecReadOnlyRootFilesystem :: !(Maybe Bool) -- ^ "readOnlyRootFilesystem" - readOnlyRootFilesystem when set to true will force containers to run with a read only root file system.  If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.
  , PolicyV1beta1PodSecurityPolicySpec -> Maybe [Text]
policyV1beta1PodSecurityPolicySpecRequiredDropCapabilities :: !(Maybe [Text]) -- ^ "requiredDropCapabilities" - requiredDropCapabilities are the capabilities that will be dropped from the container.  These are required to be dropped and cannot be added.
  , PolicyV1beta1PodSecurityPolicySpec
-> Maybe PolicyV1beta1RunAsGroupStrategyOptions
policyV1beta1PodSecurityPolicySpecRunAsGroup :: !(Maybe PolicyV1beta1RunAsGroupStrategyOptions) -- ^ "runAsGroup"
  , PolicyV1beta1PodSecurityPolicySpec
-> PolicyV1beta1RunAsUserStrategyOptions
policyV1beta1PodSecurityPolicySpecRunAsUser :: !(PolicyV1beta1RunAsUserStrategyOptions) -- ^ /Required/ "runAsUser"
  , PolicyV1beta1PodSecurityPolicySpec
-> Maybe PolicyV1beta1RuntimeClassStrategyOptions
policyV1beta1PodSecurityPolicySpecRuntimeClass :: !(Maybe PolicyV1beta1RuntimeClassStrategyOptions) -- ^ "runtimeClass"
  , PolicyV1beta1PodSecurityPolicySpec
-> PolicyV1beta1SELinuxStrategyOptions
policyV1beta1PodSecurityPolicySpecSeLinux :: !(PolicyV1beta1SELinuxStrategyOptions) -- ^ /Required/ "seLinux"
  , PolicyV1beta1PodSecurityPolicySpec
-> PolicyV1beta1SupplementalGroupsStrategyOptions
policyV1beta1PodSecurityPolicySpecSupplementalGroups :: !(PolicyV1beta1SupplementalGroupsStrategyOptions) -- ^ /Required/ "supplementalGroups"
  , PolicyV1beta1PodSecurityPolicySpec -> Maybe [Text]
policyV1beta1PodSecurityPolicySpecVolumes :: !(Maybe [Text]) -- ^ "volumes" - volumes is a white list of allowed volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use &#39;*&#39;.
  } deriving (Int -> PolicyV1beta1PodSecurityPolicySpec -> ShowS
[PolicyV1beta1PodSecurityPolicySpec] -> ShowS
PolicyV1beta1PodSecurityPolicySpec -> String
(Int -> PolicyV1beta1PodSecurityPolicySpec -> ShowS)
-> (PolicyV1beta1PodSecurityPolicySpec -> String)
-> ([PolicyV1beta1PodSecurityPolicySpec] -> ShowS)
-> Show PolicyV1beta1PodSecurityPolicySpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PolicyV1beta1PodSecurityPolicySpec] -> ShowS
$cshowList :: [PolicyV1beta1PodSecurityPolicySpec] -> ShowS
show :: PolicyV1beta1PodSecurityPolicySpec -> String
$cshow :: PolicyV1beta1PodSecurityPolicySpec -> String
showsPrec :: Int -> PolicyV1beta1PodSecurityPolicySpec -> ShowS
$cshowsPrec :: Int -> PolicyV1beta1PodSecurityPolicySpec -> ShowS
P.Show, PolicyV1beta1PodSecurityPolicySpec
-> PolicyV1beta1PodSecurityPolicySpec -> Bool
(PolicyV1beta1PodSecurityPolicySpec
 -> PolicyV1beta1PodSecurityPolicySpec -> Bool)
-> (PolicyV1beta1PodSecurityPolicySpec
    -> PolicyV1beta1PodSecurityPolicySpec -> Bool)
-> Eq PolicyV1beta1PodSecurityPolicySpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PolicyV1beta1PodSecurityPolicySpec
-> PolicyV1beta1PodSecurityPolicySpec -> Bool
$c/= :: PolicyV1beta1PodSecurityPolicySpec
-> PolicyV1beta1PodSecurityPolicySpec -> Bool
== :: PolicyV1beta1PodSecurityPolicySpec
-> PolicyV1beta1PodSecurityPolicySpec -> Bool
$c== :: PolicyV1beta1PodSecurityPolicySpec
-> PolicyV1beta1PodSecurityPolicySpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON PolicyV1beta1PodSecurityPolicySpec
instance A.FromJSON PolicyV1beta1PodSecurityPolicySpec where
  parseJSON :: Value -> Parser PolicyV1beta1PodSecurityPolicySpec
parseJSON = String
-> (Object -> Parser PolicyV1beta1PodSecurityPolicySpec)
-> Value
-> Parser PolicyV1beta1PodSecurityPolicySpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"PolicyV1beta1PodSecurityPolicySpec" ((Object -> Parser PolicyV1beta1PodSecurityPolicySpec)
 -> Value -> Parser PolicyV1beta1PodSecurityPolicySpec)
-> (Object -> Parser PolicyV1beta1PodSecurityPolicySpec)
-> Value
-> Parser PolicyV1beta1PodSecurityPolicySpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Bool
-> Maybe [PolicyV1beta1AllowedCSIDriver]
-> Maybe [Text]
-> Maybe [PolicyV1beta1AllowedFlexVolume]
-> Maybe [PolicyV1beta1AllowedHostPath]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe Bool
-> Maybe [Text]
-> PolicyV1beta1FSGroupStrategyOptions
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe [PolicyV1beta1HostPortRange]
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe PolicyV1beta1RunAsGroupStrategyOptions
-> PolicyV1beta1RunAsUserStrategyOptions
-> Maybe PolicyV1beta1RuntimeClassStrategyOptions
-> PolicyV1beta1SELinuxStrategyOptions
-> PolicyV1beta1SupplementalGroupsStrategyOptions
-> Maybe [Text]
-> PolicyV1beta1PodSecurityPolicySpec
PolicyV1beta1PodSecurityPolicySpec
      (Maybe Bool
 -> Maybe [PolicyV1beta1AllowedCSIDriver]
 -> Maybe [Text]
 -> Maybe [PolicyV1beta1AllowedFlexVolume]
 -> Maybe [PolicyV1beta1AllowedHostPath]
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe Bool
 -> Maybe [Text]
 -> PolicyV1beta1FSGroupStrategyOptions
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe [PolicyV1beta1HostPortRange]
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe [Text]
 -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
 -> PolicyV1beta1RunAsUserStrategyOptions
 -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
 -> PolicyV1beta1SELinuxStrategyOptions
 -> PolicyV1beta1SupplementalGroupsStrategyOptions
 -> Maybe [Text]
 -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [PolicyV1beta1AllowedCSIDriver]
      -> Maybe [Text]
      -> Maybe [PolicyV1beta1AllowedFlexVolume]
      -> Maybe [PolicyV1beta1AllowedHostPath]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe [Text]
      -> PolicyV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [PolicyV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowPrivilegeEscalation")
      Parser
  (Maybe [PolicyV1beta1AllowedCSIDriver]
   -> Maybe [Text]
   -> Maybe [PolicyV1beta1AllowedFlexVolume]
   -> Maybe [PolicyV1beta1AllowedHostPath]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe [Text]
   -> PolicyV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [PolicyV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [PolicyV1beta1AllowedCSIDriver])
-> Parser
     (Maybe [Text]
      -> Maybe [PolicyV1beta1AllowedFlexVolume]
      -> Maybe [PolicyV1beta1AllowedHostPath]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe [Text]
      -> PolicyV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [PolicyV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [PolicyV1beta1AllowedCSIDriver])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowedCSIDrivers")
      Parser
  (Maybe [Text]
   -> Maybe [PolicyV1beta1AllowedFlexVolume]
   -> Maybe [PolicyV1beta1AllowedHostPath]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe [Text]
   -> PolicyV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [PolicyV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [PolicyV1beta1AllowedFlexVolume]
      -> Maybe [PolicyV1beta1AllowedHostPath]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe [Text]
      -> PolicyV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [PolicyV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowedCapabilities")
      Parser
  (Maybe [PolicyV1beta1AllowedFlexVolume]
   -> Maybe [PolicyV1beta1AllowedHostPath]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe [Text]
   -> PolicyV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [PolicyV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [PolicyV1beta1AllowedFlexVolume])
-> Parser
     (Maybe [PolicyV1beta1AllowedHostPath]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe [Text]
      -> PolicyV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [PolicyV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [PolicyV1beta1AllowedFlexVolume])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowedFlexVolumes")
      Parser
  (Maybe [PolicyV1beta1AllowedHostPath]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe [Text]
   -> PolicyV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [PolicyV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [PolicyV1beta1AllowedHostPath])
-> Parser
     (Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe [Text]
      -> PolicyV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [PolicyV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [PolicyV1beta1AllowedHostPath])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowedHostPaths")
      Parser
  (Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe [Text]
   -> PolicyV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [PolicyV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe [Text]
      -> PolicyV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [PolicyV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowedProcMountTypes")
      Parser
  (Maybe [Text]
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe [Text]
   -> PolicyV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [PolicyV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe Bool
      -> Maybe [Text]
      -> PolicyV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [PolicyV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowedUnsafeSysctls")
      Parser
  (Maybe [Text]
   -> Maybe Bool
   -> Maybe [Text]
   -> PolicyV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [PolicyV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Bool
      -> Maybe [Text]
      -> PolicyV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [PolicyV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"defaultAddCapabilities")
      Parser
  (Maybe Bool
   -> Maybe [Text]
   -> PolicyV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [PolicyV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [Text]
      -> PolicyV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [PolicyV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"defaultAllowPrivilegeEscalation")
      Parser
  (Maybe [Text]
   -> PolicyV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [PolicyV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [Text])
-> Parser
     (PolicyV1beta1FSGroupStrategyOptions
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [PolicyV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"forbiddenSysctls")
      Parser
  (PolicyV1beta1FSGroupStrategyOptions
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [PolicyV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser PolicyV1beta1FSGroupStrategyOptions
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [PolicyV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser PolicyV1beta1FSGroupStrategyOptions
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"fsGroup")
      Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [PolicyV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe [PolicyV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostIPC")
      Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe [PolicyV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe [PolicyV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostNetwork")
      Parser
  (Maybe Bool
   -> Maybe [PolicyV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [PolicyV1beta1HostPortRange]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostPID")
      Parser
  (Maybe [PolicyV1beta1HostPortRange]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [PolicyV1beta1HostPortRange])
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [PolicyV1beta1HostPortRange])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostPorts")
      Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"privileged")
      Parser
  (Maybe Bool
   -> Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [Text]
      -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnlyRootFilesystem")
      Parser
  (Maybe [Text]
   -> Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe PolicyV1beta1RunAsGroupStrategyOptions
      -> PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"requiredDropCapabilities")
      Parser
  (Maybe PolicyV1beta1RunAsGroupStrategyOptions
   -> PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe PolicyV1beta1RunAsGroupStrategyOptions)
-> Parser
     (PolicyV1beta1RunAsUserStrategyOptions
      -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe PolicyV1beta1RunAsGroupStrategyOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"runAsGroup")
      Parser
  (PolicyV1beta1RunAsUserStrategyOptions
   -> Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser PolicyV1beta1RunAsUserStrategyOptions
-> Parser
     (Maybe PolicyV1beta1RuntimeClassStrategyOptions
      -> PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser PolicyV1beta1RunAsUserStrategyOptions
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"runAsUser")
      Parser
  (Maybe PolicyV1beta1RuntimeClassStrategyOptions
   -> PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe PolicyV1beta1RuntimeClassStrategyOptions)
-> Parser
     (PolicyV1beta1SELinuxStrategyOptions
      -> PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text]
      -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe PolicyV1beta1RuntimeClassStrategyOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"runtimeClass")
      Parser
  (PolicyV1beta1SELinuxStrategyOptions
   -> PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text]
   -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser PolicyV1beta1SELinuxStrategyOptions
-> Parser
     (PolicyV1beta1SupplementalGroupsStrategyOptions
      -> Maybe [Text] -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser PolicyV1beta1SELinuxStrategyOptions
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"seLinux")
      Parser
  (PolicyV1beta1SupplementalGroupsStrategyOptions
   -> Maybe [Text] -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser PolicyV1beta1SupplementalGroupsStrategyOptions
-> Parser (Maybe [Text] -> PolicyV1beta1PodSecurityPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser PolicyV1beta1SupplementalGroupsStrategyOptions
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"supplementalGroups")
      Parser (Maybe [Text] -> PolicyV1beta1PodSecurityPolicySpec)
-> Parser (Maybe [Text])
-> Parser PolicyV1beta1PodSecurityPolicySpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumes")

-- | ToJSON PolicyV1beta1PodSecurityPolicySpec
instance A.ToJSON PolicyV1beta1PodSecurityPolicySpec where
  toJSON :: PolicyV1beta1PodSecurityPolicySpec -> Value
toJSON PolicyV1beta1PodSecurityPolicySpec {Maybe Bool
Maybe [Text]
Maybe [PolicyV1beta1HostPortRange]
Maybe [PolicyV1beta1AllowedHostPath]
Maybe [PolicyV1beta1AllowedFlexVolume]
Maybe [PolicyV1beta1AllowedCSIDriver]
Maybe PolicyV1beta1RuntimeClassStrategyOptions
Maybe PolicyV1beta1RunAsGroupStrategyOptions
PolicyV1beta1SupplementalGroupsStrategyOptions
PolicyV1beta1SELinuxStrategyOptions
PolicyV1beta1RunAsUserStrategyOptions
PolicyV1beta1FSGroupStrategyOptions
policyV1beta1PodSecurityPolicySpecVolumes :: Maybe [Text]
policyV1beta1PodSecurityPolicySpecSupplementalGroups :: PolicyV1beta1SupplementalGroupsStrategyOptions
policyV1beta1PodSecurityPolicySpecSeLinux :: PolicyV1beta1SELinuxStrategyOptions
policyV1beta1PodSecurityPolicySpecRuntimeClass :: Maybe PolicyV1beta1RuntimeClassStrategyOptions
policyV1beta1PodSecurityPolicySpecRunAsUser :: PolicyV1beta1RunAsUserStrategyOptions
policyV1beta1PodSecurityPolicySpecRunAsGroup :: Maybe PolicyV1beta1RunAsGroupStrategyOptions
policyV1beta1PodSecurityPolicySpecRequiredDropCapabilities :: Maybe [Text]
policyV1beta1PodSecurityPolicySpecReadOnlyRootFilesystem :: Maybe Bool
policyV1beta1PodSecurityPolicySpecPrivileged :: Maybe Bool
policyV1beta1PodSecurityPolicySpecHostPorts :: Maybe [PolicyV1beta1HostPortRange]
policyV1beta1PodSecurityPolicySpecHostPid :: Maybe Bool
policyV1beta1PodSecurityPolicySpecHostNetwork :: Maybe Bool
policyV1beta1PodSecurityPolicySpecHostIpc :: Maybe Bool
policyV1beta1PodSecurityPolicySpecFsGroup :: PolicyV1beta1FSGroupStrategyOptions
policyV1beta1PodSecurityPolicySpecForbiddenSysctls :: Maybe [Text]
policyV1beta1PodSecurityPolicySpecDefaultAllowPrivilegeEscalation :: Maybe Bool
policyV1beta1PodSecurityPolicySpecDefaultAddCapabilities :: Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedUnsafeSysctls :: Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedProcMountTypes :: Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedHostPaths :: Maybe [PolicyV1beta1AllowedHostPath]
policyV1beta1PodSecurityPolicySpecAllowedFlexVolumes :: Maybe [PolicyV1beta1AllowedFlexVolume]
policyV1beta1PodSecurityPolicySpecAllowedCapabilities :: Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedCsiDrivers :: Maybe [PolicyV1beta1AllowedCSIDriver]
policyV1beta1PodSecurityPolicySpecAllowPrivilegeEscalation :: Maybe Bool
policyV1beta1PodSecurityPolicySpecVolumes :: PolicyV1beta1PodSecurityPolicySpec -> Maybe [Text]
policyV1beta1PodSecurityPolicySpecSupplementalGroups :: PolicyV1beta1PodSecurityPolicySpec
-> PolicyV1beta1SupplementalGroupsStrategyOptions
policyV1beta1PodSecurityPolicySpecSeLinux :: PolicyV1beta1PodSecurityPolicySpec
-> PolicyV1beta1SELinuxStrategyOptions
policyV1beta1PodSecurityPolicySpecRuntimeClass :: PolicyV1beta1PodSecurityPolicySpec
-> Maybe PolicyV1beta1RuntimeClassStrategyOptions
policyV1beta1PodSecurityPolicySpecRunAsUser :: PolicyV1beta1PodSecurityPolicySpec
-> PolicyV1beta1RunAsUserStrategyOptions
policyV1beta1PodSecurityPolicySpecRunAsGroup :: PolicyV1beta1PodSecurityPolicySpec
-> Maybe PolicyV1beta1RunAsGroupStrategyOptions
policyV1beta1PodSecurityPolicySpecRequiredDropCapabilities :: PolicyV1beta1PodSecurityPolicySpec -> Maybe [Text]
policyV1beta1PodSecurityPolicySpecReadOnlyRootFilesystem :: PolicyV1beta1PodSecurityPolicySpec -> Maybe Bool
policyV1beta1PodSecurityPolicySpecPrivileged :: PolicyV1beta1PodSecurityPolicySpec -> Maybe Bool
policyV1beta1PodSecurityPolicySpecHostPorts :: PolicyV1beta1PodSecurityPolicySpec
-> Maybe [PolicyV1beta1HostPortRange]
policyV1beta1PodSecurityPolicySpecHostPid :: PolicyV1beta1PodSecurityPolicySpec -> Maybe Bool
policyV1beta1PodSecurityPolicySpecHostNetwork :: PolicyV1beta1PodSecurityPolicySpec -> Maybe Bool
policyV1beta1PodSecurityPolicySpecHostIpc :: PolicyV1beta1PodSecurityPolicySpec -> Maybe Bool
policyV1beta1PodSecurityPolicySpecFsGroup :: PolicyV1beta1PodSecurityPolicySpec
-> PolicyV1beta1FSGroupStrategyOptions
policyV1beta1PodSecurityPolicySpecForbiddenSysctls :: PolicyV1beta1PodSecurityPolicySpec -> Maybe [Text]
policyV1beta1PodSecurityPolicySpecDefaultAllowPrivilegeEscalation :: PolicyV1beta1PodSecurityPolicySpec -> Maybe Bool
policyV1beta1PodSecurityPolicySpecDefaultAddCapabilities :: PolicyV1beta1PodSecurityPolicySpec -> Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedUnsafeSysctls :: PolicyV1beta1PodSecurityPolicySpec -> Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedProcMountTypes :: PolicyV1beta1PodSecurityPolicySpec -> Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedHostPaths :: PolicyV1beta1PodSecurityPolicySpec
-> Maybe [PolicyV1beta1AllowedHostPath]
policyV1beta1PodSecurityPolicySpecAllowedFlexVolumes :: PolicyV1beta1PodSecurityPolicySpec
-> Maybe [PolicyV1beta1AllowedFlexVolume]
policyV1beta1PodSecurityPolicySpecAllowedCapabilities :: PolicyV1beta1PodSecurityPolicySpec -> Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedCsiDrivers :: PolicyV1beta1PodSecurityPolicySpec
-> Maybe [PolicyV1beta1AllowedCSIDriver]
policyV1beta1PodSecurityPolicySpecAllowPrivilegeEscalation :: PolicyV1beta1PodSecurityPolicySpec -> Maybe Bool
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"allowPrivilegeEscalation" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
policyV1beta1PodSecurityPolicySpecAllowPrivilegeEscalation
      , Text
"allowedCSIDrivers" Text -> Maybe [PolicyV1beta1AllowedCSIDriver] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [PolicyV1beta1AllowedCSIDriver]
policyV1beta1PodSecurityPolicySpecAllowedCsiDrivers
      , Text
"allowedCapabilities" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedCapabilities
      , Text
"allowedFlexVolumes" Text -> Maybe [PolicyV1beta1AllowedFlexVolume] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [PolicyV1beta1AllowedFlexVolume]
policyV1beta1PodSecurityPolicySpecAllowedFlexVolumes
      , Text
"allowedHostPaths" Text -> Maybe [PolicyV1beta1AllowedHostPath] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [PolicyV1beta1AllowedHostPath]
policyV1beta1PodSecurityPolicySpecAllowedHostPaths
      , Text
"allowedProcMountTypes" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedProcMountTypes
      , Text
"allowedUnsafeSysctls" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedUnsafeSysctls
      , Text
"defaultAddCapabilities" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
policyV1beta1PodSecurityPolicySpecDefaultAddCapabilities
      , Text
"defaultAllowPrivilegeEscalation" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
policyV1beta1PodSecurityPolicySpecDefaultAllowPrivilegeEscalation
      , Text
"forbiddenSysctls" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
policyV1beta1PodSecurityPolicySpecForbiddenSysctls
      , Text
"fsGroup" Text -> PolicyV1beta1FSGroupStrategyOptions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= PolicyV1beta1FSGroupStrategyOptions
policyV1beta1PodSecurityPolicySpecFsGroup
      , Text
"hostIPC" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
policyV1beta1PodSecurityPolicySpecHostIpc
      , Text
"hostNetwork" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
policyV1beta1PodSecurityPolicySpecHostNetwork
      , Text
"hostPID" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
policyV1beta1PodSecurityPolicySpecHostPid
      , Text
"hostPorts" Text -> Maybe [PolicyV1beta1HostPortRange] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [PolicyV1beta1HostPortRange]
policyV1beta1PodSecurityPolicySpecHostPorts
      , Text
"privileged" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
policyV1beta1PodSecurityPolicySpecPrivileged
      , Text
"readOnlyRootFilesystem" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
policyV1beta1PodSecurityPolicySpecReadOnlyRootFilesystem
      , Text
"requiredDropCapabilities" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
policyV1beta1PodSecurityPolicySpecRequiredDropCapabilities
      , Text
"runAsGroup" Text
-> Maybe PolicyV1beta1RunAsGroupStrategyOptions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe PolicyV1beta1RunAsGroupStrategyOptions
policyV1beta1PodSecurityPolicySpecRunAsGroup
      , Text
"runAsUser" Text -> PolicyV1beta1RunAsUserStrategyOptions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= PolicyV1beta1RunAsUserStrategyOptions
policyV1beta1PodSecurityPolicySpecRunAsUser
      , Text
"runtimeClass" Text
-> Maybe PolicyV1beta1RuntimeClassStrategyOptions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe PolicyV1beta1RuntimeClassStrategyOptions
policyV1beta1PodSecurityPolicySpecRuntimeClass
      , Text
"seLinux" Text -> PolicyV1beta1SELinuxStrategyOptions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= PolicyV1beta1SELinuxStrategyOptions
policyV1beta1PodSecurityPolicySpecSeLinux
      , Text
"supplementalGroups" Text
-> PolicyV1beta1SupplementalGroupsStrategyOptions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= PolicyV1beta1SupplementalGroupsStrategyOptions
policyV1beta1PodSecurityPolicySpecSupplementalGroups
      , Text
"volumes" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
policyV1beta1PodSecurityPolicySpecVolumes
      ]


-- | Construct a value of type 'PolicyV1beta1PodSecurityPolicySpec' (by applying it's required fields, if any)
mkPolicyV1beta1PodSecurityPolicySpec
  :: PolicyV1beta1FSGroupStrategyOptions -- ^ 'policyV1beta1PodSecurityPolicySpecFsGroup' 
  -> PolicyV1beta1RunAsUserStrategyOptions -- ^ 'policyV1beta1PodSecurityPolicySpecRunAsUser' 
  -> PolicyV1beta1SELinuxStrategyOptions -- ^ 'policyV1beta1PodSecurityPolicySpecSeLinux' 
  -> PolicyV1beta1SupplementalGroupsStrategyOptions -- ^ 'policyV1beta1PodSecurityPolicySpecSupplementalGroups' 
  -> PolicyV1beta1PodSecurityPolicySpec
mkPolicyV1beta1PodSecurityPolicySpec :: PolicyV1beta1FSGroupStrategyOptions
-> PolicyV1beta1RunAsUserStrategyOptions
-> PolicyV1beta1SELinuxStrategyOptions
-> PolicyV1beta1SupplementalGroupsStrategyOptions
-> PolicyV1beta1PodSecurityPolicySpec
mkPolicyV1beta1PodSecurityPolicySpec PolicyV1beta1FSGroupStrategyOptions
policyV1beta1PodSecurityPolicySpecFsGroup PolicyV1beta1RunAsUserStrategyOptions
policyV1beta1PodSecurityPolicySpecRunAsUser PolicyV1beta1SELinuxStrategyOptions
policyV1beta1PodSecurityPolicySpecSeLinux PolicyV1beta1SupplementalGroupsStrategyOptions
policyV1beta1PodSecurityPolicySpecSupplementalGroups =
  PolicyV1beta1PodSecurityPolicySpec :: Maybe Bool
-> Maybe [PolicyV1beta1AllowedCSIDriver]
-> Maybe [Text]
-> Maybe [PolicyV1beta1AllowedFlexVolume]
-> Maybe [PolicyV1beta1AllowedHostPath]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe Bool
-> Maybe [Text]
-> PolicyV1beta1FSGroupStrategyOptions
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe [PolicyV1beta1HostPortRange]
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe PolicyV1beta1RunAsGroupStrategyOptions
-> PolicyV1beta1RunAsUserStrategyOptions
-> Maybe PolicyV1beta1RuntimeClassStrategyOptions
-> PolicyV1beta1SELinuxStrategyOptions
-> PolicyV1beta1SupplementalGroupsStrategyOptions
-> Maybe [Text]
-> PolicyV1beta1PodSecurityPolicySpec
PolicyV1beta1PodSecurityPolicySpec
  { policyV1beta1PodSecurityPolicySpecAllowPrivilegeEscalation :: Maybe Bool
policyV1beta1PodSecurityPolicySpecAllowPrivilegeEscalation = Maybe Bool
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpecAllowedCsiDrivers :: Maybe [PolicyV1beta1AllowedCSIDriver]
policyV1beta1PodSecurityPolicySpecAllowedCsiDrivers = Maybe [PolicyV1beta1AllowedCSIDriver]
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpecAllowedCapabilities :: Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedCapabilities = Maybe [Text]
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpecAllowedFlexVolumes :: Maybe [PolicyV1beta1AllowedFlexVolume]
policyV1beta1PodSecurityPolicySpecAllowedFlexVolumes = Maybe [PolicyV1beta1AllowedFlexVolume]
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpecAllowedHostPaths :: Maybe [PolicyV1beta1AllowedHostPath]
policyV1beta1PodSecurityPolicySpecAllowedHostPaths = Maybe [PolicyV1beta1AllowedHostPath]
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpecAllowedProcMountTypes :: Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedProcMountTypes = Maybe [Text]
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpecAllowedUnsafeSysctls :: Maybe [Text]
policyV1beta1PodSecurityPolicySpecAllowedUnsafeSysctls = Maybe [Text]
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpecDefaultAddCapabilities :: Maybe [Text]
policyV1beta1PodSecurityPolicySpecDefaultAddCapabilities = Maybe [Text]
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpecDefaultAllowPrivilegeEscalation :: Maybe Bool
policyV1beta1PodSecurityPolicySpecDefaultAllowPrivilegeEscalation = Maybe Bool
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpecForbiddenSysctls :: Maybe [Text]
policyV1beta1PodSecurityPolicySpecForbiddenSysctls = Maybe [Text]
forall a. Maybe a
Nothing
  , PolicyV1beta1FSGroupStrategyOptions
policyV1beta1PodSecurityPolicySpecFsGroup :: PolicyV1beta1FSGroupStrategyOptions
policyV1beta1PodSecurityPolicySpecFsGroup :: PolicyV1beta1FSGroupStrategyOptions
policyV1beta1PodSecurityPolicySpecFsGroup
  , policyV1beta1PodSecurityPolicySpecHostIpc :: Maybe Bool
policyV1beta1PodSecurityPolicySpecHostIpc = Maybe Bool
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpecHostNetwork :: Maybe Bool
policyV1beta1PodSecurityPolicySpecHostNetwork = Maybe Bool
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpecHostPid :: Maybe Bool
policyV1beta1PodSecurityPolicySpecHostPid = Maybe Bool
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpecHostPorts :: Maybe [PolicyV1beta1HostPortRange]
policyV1beta1PodSecurityPolicySpecHostPorts = Maybe [PolicyV1beta1HostPortRange]
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpecPrivileged :: Maybe Bool
policyV1beta1PodSecurityPolicySpecPrivileged = Maybe Bool
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpecReadOnlyRootFilesystem :: Maybe Bool
policyV1beta1PodSecurityPolicySpecReadOnlyRootFilesystem = Maybe Bool
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpecRequiredDropCapabilities :: Maybe [Text]
policyV1beta1PodSecurityPolicySpecRequiredDropCapabilities = Maybe [Text]
forall a. Maybe a
Nothing
  , policyV1beta1PodSecurityPolicySpecRunAsGroup :: Maybe PolicyV1beta1RunAsGroupStrategyOptions
policyV1beta1PodSecurityPolicySpecRunAsGroup = Maybe PolicyV1beta1RunAsGroupStrategyOptions
forall a. Maybe a
Nothing
  , PolicyV1beta1RunAsUserStrategyOptions
policyV1beta1PodSecurityPolicySpecRunAsUser :: PolicyV1beta1RunAsUserStrategyOptions
policyV1beta1PodSecurityPolicySpecRunAsUser :: PolicyV1beta1RunAsUserStrategyOptions
policyV1beta1PodSecurityPolicySpecRunAsUser
  , policyV1beta1PodSecurityPolicySpecRuntimeClass :: Maybe PolicyV1beta1RuntimeClassStrategyOptions
policyV1beta1PodSecurityPolicySpecRuntimeClass = Maybe PolicyV1beta1RuntimeClassStrategyOptions
forall a. Maybe a
Nothing
  , PolicyV1beta1SELinuxStrategyOptions
policyV1beta1PodSecurityPolicySpecSeLinux :: PolicyV1beta1SELinuxStrategyOptions
policyV1beta1PodSecurityPolicySpecSeLinux :: PolicyV1beta1SELinuxStrategyOptions
policyV1beta1PodSecurityPolicySpecSeLinux
  , PolicyV1beta1SupplementalGroupsStrategyOptions
policyV1beta1PodSecurityPolicySpecSupplementalGroups :: PolicyV1beta1SupplementalGroupsStrategyOptions
policyV1beta1PodSecurityPolicySpecSupplementalGroups :: PolicyV1beta1SupplementalGroupsStrategyOptions
policyV1beta1PodSecurityPolicySpecSupplementalGroups
  , policyV1beta1PodSecurityPolicySpecVolumes :: Maybe [Text]
policyV1beta1PodSecurityPolicySpecVolumes = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** PolicyV1beta1RunAsGroupStrategyOptions
-- | PolicyV1beta1RunAsGroupStrategyOptions
-- RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy.
data PolicyV1beta1RunAsGroupStrategyOptions = PolicyV1beta1RunAsGroupStrategyOptions
  { PolicyV1beta1RunAsGroupStrategyOptions
-> Maybe [PolicyV1beta1IDRange]
policyV1beta1RunAsGroupStrategyOptionsRanges :: !(Maybe [PolicyV1beta1IDRange]) -- ^ "ranges" - ranges are the allowed ranges of gids that may be used. If you would like to force a single gid then supply a single range with the same start and end. Required for MustRunAs.
  , PolicyV1beta1RunAsGroupStrategyOptions -> Text
policyV1beta1RunAsGroupStrategyOptionsRule :: !(Text) -- ^ /Required/ "rule" - rule is the strategy that will dictate the allowable RunAsGroup values that may be set.
  } deriving (Int -> PolicyV1beta1RunAsGroupStrategyOptions -> ShowS
[PolicyV1beta1RunAsGroupStrategyOptions] -> ShowS
PolicyV1beta1RunAsGroupStrategyOptions -> String
(Int -> PolicyV1beta1RunAsGroupStrategyOptions -> ShowS)
-> (PolicyV1beta1RunAsGroupStrategyOptions -> String)
-> ([PolicyV1beta1RunAsGroupStrategyOptions] -> ShowS)
-> Show PolicyV1beta1RunAsGroupStrategyOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PolicyV1beta1RunAsGroupStrategyOptions] -> ShowS
$cshowList :: [PolicyV1beta1RunAsGroupStrategyOptions] -> ShowS
show :: PolicyV1beta1RunAsGroupStrategyOptions -> String
$cshow :: PolicyV1beta1RunAsGroupStrategyOptions -> String
showsPrec :: Int -> PolicyV1beta1RunAsGroupStrategyOptions -> ShowS
$cshowsPrec :: Int -> PolicyV1beta1RunAsGroupStrategyOptions -> ShowS
P.Show, PolicyV1beta1RunAsGroupStrategyOptions
-> PolicyV1beta1RunAsGroupStrategyOptions -> Bool
(PolicyV1beta1RunAsGroupStrategyOptions
 -> PolicyV1beta1RunAsGroupStrategyOptions -> Bool)
-> (PolicyV1beta1RunAsGroupStrategyOptions
    -> PolicyV1beta1RunAsGroupStrategyOptions -> Bool)
-> Eq PolicyV1beta1RunAsGroupStrategyOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PolicyV1beta1RunAsGroupStrategyOptions
-> PolicyV1beta1RunAsGroupStrategyOptions -> Bool
$c/= :: PolicyV1beta1RunAsGroupStrategyOptions
-> PolicyV1beta1RunAsGroupStrategyOptions -> Bool
== :: PolicyV1beta1RunAsGroupStrategyOptions
-> PolicyV1beta1RunAsGroupStrategyOptions -> Bool
$c== :: PolicyV1beta1RunAsGroupStrategyOptions
-> PolicyV1beta1RunAsGroupStrategyOptions -> Bool
P.Eq, P.Typeable)

-- | FromJSON PolicyV1beta1RunAsGroupStrategyOptions
instance A.FromJSON PolicyV1beta1RunAsGroupStrategyOptions where
  parseJSON :: Value -> Parser PolicyV1beta1RunAsGroupStrategyOptions
parseJSON = String
-> (Object -> Parser PolicyV1beta1RunAsGroupStrategyOptions)
-> Value
-> Parser PolicyV1beta1RunAsGroupStrategyOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"PolicyV1beta1RunAsGroupStrategyOptions" ((Object -> Parser PolicyV1beta1RunAsGroupStrategyOptions)
 -> Value -> Parser PolicyV1beta1RunAsGroupStrategyOptions)
-> (Object -> Parser PolicyV1beta1RunAsGroupStrategyOptions)
-> Value
-> Parser PolicyV1beta1RunAsGroupStrategyOptions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [PolicyV1beta1IDRange]
-> Text -> PolicyV1beta1RunAsGroupStrategyOptions
PolicyV1beta1RunAsGroupStrategyOptions
      (Maybe [PolicyV1beta1IDRange]
 -> Text -> PolicyV1beta1RunAsGroupStrategyOptions)
-> Parser (Maybe [PolicyV1beta1IDRange])
-> Parser (Text -> PolicyV1beta1RunAsGroupStrategyOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [PolicyV1beta1IDRange])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ranges")
      Parser (Text -> PolicyV1beta1RunAsGroupStrategyOptions)
-> Parser Text -> Parser PolicyV1beta1RunAsGroupStrategyOptions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"rule")

-- | ToJSON PolicyV1beta1RunAsGroupStrategyOptions
instance A.ToJSON PolicyV1beta1RunAsGroupStrategyOptions where
  toJSON :: PolicyV1beta1RunAsGroupStrategyOptions -> Value
toJSON PolicyV1beta1RunAsGroupStrategyOptions {Maybe [PolicyV1beta1IDRange]
Text
policyV1beta1RunAsGroupStrategyOptionsRule :: Text
policyV1beta1RunAsGroupStrategyOptionsRanges :: Maybe [PolicyV1beta1IDRange]
policyV1beta1RunAsGroupStrategyOptionsRule :: PolicyV1beta1RunAsGroupStrategyOptions -> Text
policyV1beta1RunAsGroupStrategyOptionsRanges :: PolicyV1beta1RunAsGroupStrategyOptions
-> Maybe [PolicyV1beta1IDRange]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"ranges" Text -> Maybe [PolicyV1beta1IDRange] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [PolicyV1beta1IDRange]
policyV1beta1RunAsGroupStrategyOptionsRanges
      , Text
"rule" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
policyV1beta1RunAsGroupStrategyOptionsRule
      ]


-- | Construct a value of type 'PolicyV1beta1RunAsGroupStrategyOptions' (by applying it's required fields, if any)
mkPolicyV1beta1RunAsGroupStrategyOptions
  :: Text -- ^ 'policyV1beta1RunAsGroupStrategyOptionsRule': rule is the strategy that will dictate the allowable RunAsGroup values that may be set.
  -> PolicyV1beta1RunAsGroupStrategyOptions
mkPolicyV1beta1RunAsGroupStrategyOptions :: Text -> PolicyV1beta1RunAsGroupStrategyOptions
mkPolicyV1beta1RunAsGroupStrategyOptions Text
policyV1beta1RunAsGroupStrategyOptionsRule =
  PolicyV1beta1RunAsGroupStrategyOptions :: Maybe [PolicyV1beta1IDRange]
-> Text -> PolicyV1beta1RunAsGroupStrategyOptions
PolicyV1beta1RunAsGroupStrategyOptions
  { policyV1beta1RunAsGroupStrategyOptionsRanges :: Maybe [PolicyV1beta1IDRange]
policyV1beta1RunAsGroupStrategyOptionsRanges = Maybe [PolicyV1beta1IDRange]
forall a. Maybe a
Nothing
  , Text
policyV1beta1RunAsGroupStrategyOptionsRule :: Text
policyV1beta1RunAsGroupStrategyOptionsRule :: Text
policyV1beta1RunAsGroupStrategyOptionsRule
  }

-- ** PolicyV1beta1RunAsUserStrategyOptions
-- | PolicyV1beta1RunAsUserStrategyOptions
-- RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.
data PolicyV1beta1RunAsUserStrategyOptions = PolicyV1beta1RunAsUserStrategyOptions
  { PolicyV1beta1RunAsUserStrategyOptions
-> Maybe [PolicyV1beta1IDRange]
policyV1beta1RunAsUserStrategyOptionsRanges :: !(Maybe [PolicyV1beta1IDRange]) -- ^ "ranges" - ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.
  , PolicyV1beta1RunAsUserStrategyOptions -> Text
policyV1beta1RunAsUserStrategyOptionsRule :: !(Text) -- ^ /Required/ "rule" - rule is the strategy that will dictate the allowable RunAsUser values that may be set.
  } deriving (Int -> PolicyV1beta1RunAsUserStrategyOptions -> ShowS
[PolicyV1beta1RunAsUserStrategyOptions] -> ShowS
PolicyV1beta1RunAsUserStrategyOptions -> String
(Int -> PolicyV1beta1RunAsUserStrategyOptions -> ShowS)
-> (PolicyV1beta1RunAsUserStrategyOptions -> String)
-> ([PolicyV1beta1RunAsUserStrategyOptions] -> ShowS)
-> Show PolicyV1beta1RunAsUserStrategyOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PolicyV1beta1RunAsUserStrategyOptions] -> ShowS
$cshowList :: [PolicyV1beta1RunAsUserStrategyOptions] -> ShowS
show :: PolicyV1beta1RunAsUserStrategyOptions -> String
$cshow :: PolicyV1beta1RunAsUserStrategyOptions -> String
showsPrec :: Int -> PolicyV1beta1RunAsUserStrategyOptions -> ShowS
$cshowsPrec :: Int -> PolicyV1beta1RunAsUserStrategyOptions -> ShowS
P.Show, PolicyV1beta1RunAsUserStrategyOptions
-> PolicyV1beta1RunAsUserStrategyOptions -> Bool
(PolicyV1beta1RunAsUserStrategyOptions
 -> PolicyV1beta1RunAsUserStrategyOptions -> Bool)
-> (PolicyV1beta1RunAsUserStrategyOptions
    -> PolicyV1beta1RunAsUserStrategyOptions -> Bool)
-> Eq PolicyV1beta1RunAsUserStrategyOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PolicyV1beta1RunAsUserStrategyOptions
-> PolicyV1beta1RunAsUserStrategyOptions -> Bool
$c/= :: PolicyV1beta1RunAsUserStrategyOptions
-> PolicyV1beta1RunAsUserStrategyOptions -> Bool
== :: PolicyV1beta1RunAsUserStrategyOptions
-> PolicyV1beta1RunAsUserStrategyOptions -> Bool
$c== :: PolicyV1beta1RunAsUserStrategyOptions
-> PolicyV1beta1RunAsUserStrategyOptions -> Bool
P.Eq, P.Typeable)

-- | FromJSON PolicyV1beta1RunAsUserStrategyOptions
instance A.FromJSON PolicyV1beta1RunAsUserStrategyOptions where
  parseJSON :: Value -> Parser PolicyV1beta1RunAsUserStrategyOptions
parseJSON = String
-> (Object -> Parser PolicyV1beta1RunAsUserStrategyOptions)
-> Value
-> Parser PolicyV1beta1RunAsUserStrategyOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"PolicyV1beta1RunAsUserStrategyOptions" ((Object -> Parser PolicyV1beta1RunAsUserStrategyOptions)
 -> Value -> Parser PolicyV1beta1RunAsUserStrategyOptions)
-> (Object -> Parser PolicyV1beta1RunAsUserStrategyOptions)
-> Value
-> Parser PolicyV1beta1RunAsUserStrategyOptions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [PolicyV1beta1IDRange]
-> Text -> PolicyV1beta1RunAsUserStrategyOptions
PolicyV1beta1RunAsUserStrategyOptions
      (Maybe [PolicyV1beta1IDRange]
 -> Text -> PolicyV1beta1RunAsUserStrategyOptions)
-> Parser (Maybe [PolicyV1beta1IDRange])
-> Parser (Text -> PolicyV1beta1RunAsUserStrategyOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [PolicyV1beta1IDRange])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ranges")
      Parser (Text -> PolicyV1beta1RunAsUserStrategyOptions)
-> Parser Text -> Parser PolicyV1beta1RunAsUserStrategyOptions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"rule")

-- | ToJSON PolicyV1beta1RunAsUserStrategyOptions
instance A.ToJSON PolicyV1beta1RunAsUserStrategyOptions where
  toJSON :: PolicyV1beta1RunAsUserStrategyOptions -> Value
toJSON PolicyV1beta1RunAsUserStrategyOptions {Maybe [PolicyV1beta1IDRange]
Text
policyV1beta1RunAsUserStrategyOptionsRule :: Text
policyV1beta1RunAsUserStrategyOptionsRanges :: Maybe [PolicyV1beta1IDRange]
policyV1beta1RunAsUserStrategyOptionsRule :: PolicyV1beta1RunAsUserStrategyOptions -> Text
policyV1beta1RunAsUserStrategyOptionsRanges :: PolicyV1beta1RunAsUserStrategyOptions
-> Maybe [PolicyV1beta1IDRange]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"ranges" Text -> Maybe [PolicyV1beta1IDRange] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [PolicyV1beta1IDRange]
policyV1beta1RunAsUserStrategyOptionsRanges
      , Text
"rule" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
policyV1beta1RunAsUserStrategyOptionsRule
      ]


-- | Construct a value of type 'PolicyV1beta1RunAsUserStrategyOptions' (by applying it's required fields, if any)
mkPolicyV1beta1RunAsUserStrategyOptions
  :: Text -- ^ 'policyV1beta1RunAsUserStrategyOptionsRule': rule is the strategy that will dictate the allowable RunAsUser values that may be set.
  -> PolicyV1beta1RunAsUserStrategyOptions
mkPolicyV1beta1RunAsUserStrategyOptions :: Text -> PolicyV1beta1RunAsUserStrategyOptions
mkPolicyV1beta1RunAsUserStrategyOptions Text
policyV1beta1RunAsUserStrategyOptionsRule =
  PolicyV1beta1RunAsUserStrategyOptions :: Maybe [PolicyV1beta1IDRange]
-> Text -> PolicyV1beta1RunAsUserStrategyOptions
PolicyV1beta1RunAsUserStrategyOptions
  { policyV1beta1RunAsUserStrategyOptionsRanges :: Maybe [PolicyV1beta1IDRange]
policyV1beta1RunAsUserStrategyOptionsRanges = Maybe [PolicyV1beta1IDRange]
forall a. Maybe a
Nothing
  , Text
policyV1beta1RunAsUserStrategyOptionsRule :: Text
policyV1beta1RunAsUserStrategyOptionsRule :: Text
policyV1beta1RunAsUserStrategyOptionsRule
  }

-- ** PolicyV1beta1RuntimeClassStrategyOptions
-- | PolicyV1beta1RuntimeClassStrategyOptions
-- RuntimeClassStrategyOptions define the strategy that will dictate the allowable RuntimeClasses for a pod.
data PolicyV1beta1RuntimeClassStrategyOptions = PolicyV1beta1RuntimeClassStrategyOptions
  { PolicyV1beta1RuntimeClassStrategyOptions -> [Text]
policyV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames :: !([Text]) -- ^ /Required/ "allowedRuntimeClassNames" - allowedRuntimeClassNames is a whitelist of RuntimeClass names that may be specified on a pod. A value of \&quot;*\&quot; means that any RuntimeClass name is allowed, and must be the only item in the list. An empty list requires the RuntimeClassName field to be unset.
  , PolicyV1beta1RuntimeClassStrategyOptions -> Maybe Text
policyV1beta1RuntimeClassStrategyOptionsDefaultRuntimeClassName :: !(Maybe Text) -- ^ "defaultRuntimeClassName" - defaultRuntimeClassName is the default RuntimeClassName to set on the pod. The default MUST be allowed by the allowedRuntimeClassNames list. A value of nil does not mutate the Pod.
  } deriving (Int -> PolicyV1beta1RuntimeClassStrategyOptions -> ShowS
[PolicyV1beta1RuntimeClassStrategyOptions] -> ShowS
PolicyV1beta1RuntimeClassStrategyOptions -> String
(Int -> PolicyV1beta1RuntimeClassStrategyOptions -> ShowS)
-> (PolicyV1beta1RuntimeClassStrategyOptions -> String)
-> ([PolicyV1beta1RuntimeClassStrategyOptions] -> ShowS)
-> Show PolicyV1beta1RuntimeClassStrategyOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PolicyV1beta1RuntimeClassStrategyOptions] -> ShowS
$cshowList :: [PolicyV1beta1RuntimeClassStrategyOptions] -> ShowS
show :: PolicyV1beta1RuntimeClassStrategyOptions -> String
$cshow :: PolicyV1beta1RuntimeClassStrategyOptions -> String
showsPrec :: Int -> PolicyV1beta1RuntimeClassStrategyOptions -> ShowS
$cshowsPrec :: Int -> PolicyV1beta1RuntimeClassStrategyOptions -> ShowS
P.Show, PolicyV1beta1RuntimeClassStrategyOptions
-> PolicyV1beta1RuntimeClassStrategyOptions -> Bool
(PolicyV1beta1RuntimeClassStrategyOptions
 -> PolicyV1beta1RuntimeClassStrategyOptions -> Bool)
-> (PolicyV1beta1RuntimeClassStrategyOptions
    -> PolicyV1beta1RuntimeClassStrategyOptions -> Bool)
-> Eq PolicyV1beta1RuntimeClassStrategyOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PolicyV1beta1RuntimeClassStrategyOptions
-> PolicyV1beta1RuntimeClassStrategyOptions -> Bool
$c/= :: PolicyV1beta1RuntimeClassStrategyOptions
-> PolicyV1beta1RuntimeClassStrategyOptions -> Bool
== :: PolicyV1beta1RuntimeClassStrategyOptions
-> PolicyV1beta1RuntimeClassStrategyOptions -> Bool
$c== :: PolicyV1beta1RuntimeClassStrategyOptions
-> PolicyV1beta1RuntimeClassStrategyOptions -> Bool
P.Eq, P.Typeable)

-- | FromJSON PolicyV1beta1RuntimeClassStrategyOptions
instance A.FromJSON PolicyV1beta1RuntimeClassStrategyOptions where
  parseJSON :: Value -> Parser PolicyV1beta1RuntimeClassStrategyOptions
parseJSON = String
-> (Object -> Parser PolicyV1beta1RuntimeClassStrategyOptions)
-> Value
-> Parser PolicyV1beta1RuntimeClassStrategyOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"PolicyV1beta1RuntimeClassStrategyOptions" ((Object -> Parser PolicyV1beta1RuntimeClassStrategyOptions)
 -> Value -> Parser PolicyV1beta1RuntimeClassStrategyOptions)
-> (Object -> Parser PolicyV1beta1RuntimeClassStrategyOptions)
-> Value
-> Parser PolicyV1beta1RuntimeClassStrategyOptions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    [Text] -> Maybe Text -> PolicyV1beta1RuntimeClassStrategyOptions
PolicyV1beta1RuntimeClassStrategyOptions
      ([Text] -> Maybe Text -> PolicyV1beta1RuntimeClassStrategyOptions)
-> Parser [Text]
-> Parser (Maybe Text -> PolicyV1beta1RuntimeClassStrategyOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"allowedRuntimeClassNames")
      Parser (Maybe Text -> PolicyV1beta1RuntimeClassStrategyOptions)
-> Parser (Maybe Text)
-> Parser PolicyV1beta1RuntimeClassStrategyOptions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"defaultRuntimeClassName")

-- | ToJSON PolicyV1beta1RuntimeClassStrategyOptions
instance A.ToJSON PolicyV1beta1RuntimeClassStrategyOptions where
  toJSON :: PolicyV1beta1RuntimeClassStrategyOptions -> Value
toJSON PolicyV1beta1RuntimeClassStrategyOptions {[Text]
Maybe Text
policyV1beta1RuntimeClassStrategyOptionsDefaultRuntimeClassName :: Maybe Text
policyV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames :: [Text]
policyV1beta1RuntimeClassStrategyOptionsDefaultRuntimeClassName :: PolicyV1beta1RuntimeClassStrategyOptions -> Maybe Text
policyV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames :: PolicyV1beta1RuntimeClassStrategyOptions -> [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"allowedRuntimeClassNames" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
policyV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames
      , Text
"defaultRuntimeClassName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
policyV1beta1RuntimeClassStrategyOptionsDefaultRuntimeClassName
      ]


-- | Construct a value of type 'PolicyV1beta1RuntimeClassStrategyOptions' (by applying it's required fields, if any)
mkPolicyV1beta1RuntimeClassStrategyOptions
  :: [Text] -- ^ 'policyV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames': allowedRuntimeClassNames is a whitelist of RuntimeClass names that may be specified on a pod. A value of \"*\" means that any RuntimeClass name is allowed, and must be the only item in the list. An empty list requires the RuntimeClassName field to be unset.
  -> PolicyV1beta1RuntimeClassStrategyOptions
mkPolicyV1beta1RuntimeClassStrategyOptions :: [Text] -> PolicyV1beta1RuntimeClassStrategyOptions
mkPolicyV1beta1RuntimeClassStrategyOptions [Text]
policyV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames =
  PolicyV1beta1RuntimeClassStrategyOptions :: [Text] -> Maybe Text -> PolicyV1beta1RuntimeClassStrategyOptions
PolicyV1beta1RuntimeClassStrategyOptions
  { [Text]
policyV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames :: [Text]
policyV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames :: [Text]
policyV1beta1RuntimeClassStrategyOptionsAllowedRuntimeClassNames
  , policyV1beta1RuntimeClassStrategyOptionsDefaultRuntimeClassName :: Maybe Text
policyV1beta1RuntimeClassStrategyOptionsDefaultRuntimeClassName = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** PolicyV1beta1SELinuxStrategyOptions
-- | PolicyV1beta1SELinuxStrategyOptions
-- SELinuxStrategyOptions defines the strategy type and any options used to create the strategy.
data PolicyV1beta1SELinuxStrategyOptions = PolicyV1beta1SELinuxStrategyOptions
  { PolicyV1beta1SELinuxStrategyOptions -> Text
policyV1beta1SELinuxStrategyOptionsRule :: !(Text) -- ^ /Required/ "rule" - rule is the strategy that will dictate the allowable labels that may be set.
  , PolicyV1beta1SELinuxStrategyOptions -> Maybe V1SELinuxOptions
policyV1beta1SELinuxStrategyOptionsSeLinuxOptions :: !(Maybe V1SELinuxOptions) -- ^ "seLinuxOptions"
  } deriving (Int -> PolicyV1beta1SELinuxStrategyOptions -> ShowS
[PolicyV1beta1SELinuxStrategyOptions] -> ShowS
PolicyV1beta1SELinuxStrategyOptions -> String
(Int -> PolicyV1beta1SELinuxStrategyOptions -> ShowS)
-> (PolicyV1beta1SELinuxStrategyOptions -> String)
-> ([PolicyV1beta1SELinuxStrategyOptions] -> ShowS)
-> Show PolicyV1beta1SELinuxStrategyOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PolicyV1beta1SELinuxStrategyOptions] -> ShowS
$cshowList :: [PolicyV1beta1SELinuxStrategyOptions] -> ShowS
show :: PolicyV1beta1SELinuxStrategyOptions -> String
$cshow :: PolicyV1beta1SELinuxStrategyOptions -> String
showsPrec :: Int -> PolicyV1beta1SELinuxStrategyOptions -> ShowS
$cshowsPrec :: Int -> PolicyV1beta1SELinuxStrategyOptions -> ShowS
P.Show, PolicyV1beta1SELinuxStrategyOptions
-> PolicyV1beta1SELinuxStrategyOptions -> Bool
(PolicyV1beta1SELinuxStrategyOptions
 -> PolicyV1beta1SELinuxStrategyOptions -> Bool)
-> (PolicyV1beta1SELinuxStrategyOptions
    -> PolicyV1beta1SELinuxStrategyOptions -> Bool)
-> Eq PolicyV1beta1SELinuxStrategyOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PolicyV1beta1SELinuxStrategyOptions
-> PolicyV1beta1SELinuxStrategyOptions -> Bool
$c/= :: PolicyV1beta1SELinuxStrategyOptions
-> PolicyV1beta1SELinuxStrategyOptions -> Bool
== :: PolicyV1beta1SELinuxStrategyOptions
-> PolicyV1beta1SELinuxStrategyOptions -> Bool
$c== :: PolicyV1beta1SELinuxStrategyOptions
-> PolicyV1beta1SELinuxStrategyOptions -> Bool
P.Eq, P.Typeable)

-- | FromJSON PolicyV1beta1SELinuxStrategyOptions
instance A.FromJSON PolicyV1beta1SELinuxStrategyOptions where
  parseJSON :: Value -> Parser PolicyV1beta1SELinuxStrategyOptions
parseJSON = String
-> (Object -> Parser PolicyV1beta1SELinuxStrategyOptions)
-> Value
-> Parser PolicyV1beta1SELinuxStrategyOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"PolicyV1beta1SELinuxStrategyOptions" ((Object -> Parser PolicyV1beta1SELinuxStrategyOptions)
 -> Value -> Parser PolicyV1beta1SELinuxStrategyOptions)
-> (Object -> Parser PolicyV1beta1SELinuxStrategyOptions)
-> Value
-> Parser PolicyV1beta1SELinuxStrategyOptions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Maybe V1SELinuxOptions -> PolicyV1beta1SELinuxStrategyOptions
PolicyV1beta1SELinuxStrategyOptions
      (Text
 -> Maybe V1SELinuxOptions -> PolicyV1beta1SELinuxStrategyOptions)
-> Parser Text
-> Parser
     (Maybe V1SELinuxOptions -> PolicyV1beta1SELinuxStrategyOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"rule")
      Parser
  (Maybe V1SELinuxOptions -> PolicyV1beta1SELinuxStrategyOptions)
-> Parser (Maybe V1SELinuxOptions)
-> Parser PolicyV1beta1SELinuxStrategyOptions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SELinuxOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"seLinuxOptions")

-- | ToJSON PolicyV1beta1SELinuxStrategyOptions
instance A.ToJSON PolicyV1beta1SELinuxStrategyOptions where
  toJSON :: PolicyV1beta1SELinuxStrategyOptions -> Value
toJSON PolicyV1beta1SELinuxStrategyOptions {Maybe V1SELinuxOptions
Text
policyV1beta1SELinuxStrategyOptionsSeLinuxOptions :: Maybe V1SELinuxOptions
policyV1beta1SELinuxStrategyOptionsRule :: Text
policyV1beta1SELinuxStrategyOptionsSeLinuxOptions :: PolicyV1beta1SELinuxStrategyOptions -> Maybe V1SELinuxOptions
policyV1beta1SELinuxStrategyOptionsRule :: PolicyV1beta1SELinuxStrategyOptions -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"rule" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
policyV1beta1SELinuxStrategyOptionsRule
      , Text
"seLinuxOptions" Text -> Maybe V1SELinuxOptions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SELinuxOptions
policyV1beta1SELinuxStrategyOptionsSeLinuxOptions
      ]


-- | Construct a value of type 'PolicyV1beta1SELinuxStrategyOptions' (by applying it's required fields, if any)
mkPolicyV1beta1SELinuxStrategyOptions
  :: Text -- ^ 'policyV1beta1SELinuxStrategyOptionsRule': rule is the strategy that will dictate the allowable labels that may be set.
  -> PolicyV1beta1SELinuxStrategyOptions
mkPolicyV1beta1SELinuxStrategyOptions :: Text -> PolicyV1beta1SELinuxStrategyOptions
mkPolicyV1beta1SELinuxStrategyOptions Text
policyV1beta1SELinuxStrategyOptionsRule =
  PolicyV1beta1SELinuxStrategyOptions :: Text
-> Maybe V1SELinuxOptions -> PolicyV1beta1SELinuxStrategyOptions
PolicyV1beta1SELinuxStrategyOptions
  { Text
policyV1beta1SELinuxStrategyOptionsRule :: Text
policyV1beta1SELinuxStrategyOptionsRule :: Text
policyV1beta1SELinuxStrategyOptionsRule
  , policyV1beta1SELinuxStrategyOptionsSeLinuxOptions :: Maybe V1SELinuxOptions
policyV1beta1SELinuxStrategyOptionsSeLinuxOptions = Maybe V1SELinuxOptions
forall a. Maybe a
Nothing
  }

-- ** PolicyV1beta1SupplementalGroupsStrategyOptions
-- | PolicyV1beta1SupplementalGroupsStrategyOptions
-- SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.
data PolicyV1beta1SupplementalGroupsStrategyOptions = PolicyV1beta1SupplementalGroupsStrategyOptions
  { PolicyV1beta1SupplementalGroupsStrategyOptions
-> Maybe [PolicyV1beta1IDRange]
policyV1beta1SupplementalGroupsStrategyOptionsRanges :: !(Maybe [PolicyV1beta1IDRange]) -- ^ "ranges" - ranges are the allowed ranges of supplemental groups.  If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.
  , PolicyV1beta1SupplementalGroupsStrategyOptions -> Maybe Text
policyV1beta1SupplementalGroupsStrategyOptionsRule :: !(Maybe Text) -- ^ "rule" - rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.
  } deriving (Int -> PolicyV1beta1SupplementalGroupsStrategyOptions -> ShowS
[PolicyV1beta1SupplementalGroupsStrategyOptions] -> ShowS
PolicyV1beta1SupplementalGroupsStrategyOptions -> String
(Int -> PolicyV1beta1SupplementalGroupsStrategyOptions -> ShowS)
-> (PolicyV1beta1SupplementalGroupsStrategyOptions -> String)
-> ([PolicyV1beta1SupplementalGroupsStrategyOptions] -> ShowS)
-> Show PolicyV1beta1SupplementalGroupsStrategyOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PolicyV1beta1SupplementalGroupsStrategyOptions] -> ShowS
$cshowList :: [PolicyV1beta1SupplementalGroupsStrategyOptions] -> ShowS
show :: PolicyV1beta1SupplementalGroupsStrategyOptions -> String
$cshow :: PolicyV1beta1SupplementalGroupsStrategyOptions -> String
showsPrec :: Int -> PolicyV1beta1SupplementalGroupsStrategyOptions -> ShowS
$cshowsPrec :: Int -> PolicyV1beta1SupplementalGroupsStrategyOptions -> ShowS
P.Show, PolicyV1beta1SupplementalGroupsStrategyOptions
-> PolicyV1beta1SupplementalGroupsStrategyOptions -> Bool
(PolicyV1beta1SupplementalGroupsStrategyOptions
 -> PolicyV1beta1SupplementalGroupsStrategyOptions -> Bool)
-> (PolicyV1beta1SupplementalGroupsStrategyOptions
    -> PolicyV1beta1SupplementalGroupsStrategyOptions -> Bool)
-> Eq PolicyV1beta1SupplementalGroupsStrategyOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PolicyV1beta1SupplementalGroupsStrategyOptions
-> PolicyV1beta1SupplementalGroupsStrategyOptions -> Bool
$c/= :: PolicyV1beta1SupplementalGroupsStrategyOptions
-> PolicyV1beta1SupplementalGroupsStrategyOptions -> Bool
== :: PolicyV1beta1SupplementalGroupsStrategyOptions
-> PolicyV1beta1SupplementalGroupsStrategyOptions -> Bool
$c== :: PolicyV1beta1SupplementalGroupsStrategyOptions
-> PolicyV1beta1SupplementalGroupsStrategyOptions -> Bool
P.Eq, P.Typeable)

-- | FromJSON PolicyV1beta1SupplementalGroupsStrategyOptions
instance A.FromJSON PolicyV1beta1SupplementalGroupsStrategyOptions where
  parseJSON :: Value -> Parser PolicyV1beta1SupplementalGroupsStrategyOptions
parseJSON = String
-> (Object
    -> Parser PolicyV1beta1SupplementalGroupsStrategyOptions)
-> Value
-> Parser PolicyV1beta1SupplementalGroupsStrategyOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"PolicyV1beta1SupplementalGroupsStrategyOptions" ((Object -> Parser PolicyV1beta1SupplementalGroupsStrategyOptions)
 -> Value -> Parser PolicyV1beta1SupplementalGroupsStrategyOptions)
-> (Object
    -> Parser PolicyV1beta1SupplementalGroupsStrategyOptions)
-> Value
-> Parser PolicyV1beta1SupplementalGroupsStrategyOptions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [PolicyV1beta1IDRange]
-> Maybe Text -> PolicyV1beta1SupplementalGroupsStrategyOptions
PolicyV1beta1SupplementalGroupsStrategyOptions
      (Maybe [PolicyV1beta1IDRange]
 -> Maybe Text -> PolicyV1beta1SupplementalGroupsStrategyOptions)
-> Parser (Maybe [PolicyV1beta1IDRange])
-> Parser
     (Maybe Text -> PolicyV1beta1SupplementalGroupsStrategyOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [PolicyV1beta1IDRange])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ranges")
      Parser
  (Maybe Text -> PolicyV1beta1SupplementalGroupsStrategyOptions)
-> Parser (Maybe Text)
-> Parser PolicyV1beta1SupplementalGroupsStrategyOptions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rule")

-- | ToJSON PolicyV1beta1SupplementalGroupsStrategyOptions
instance A.ToJSON PolicyV1beta1SupplementalGroupsStrategyOptions where
  toJSON :: PolicyV1beta1SupplementalGroupsStrategyOptions -> Value
toJSON PolicyV1beta1SupplementalGroupsStrategyOptions {Maybe [PolicyV1beta1IDRange]
Maybe Text
policyV1beta1SupplementalGroupsStrategyOptionsRule :: Maybe Text
policyV1beta1SupplementalGroupsStrategyOptionsRanges :: Maybe [PolicyV1beta1IDRange]
policyV1beta1SupplementalGroupsStrategyOptionsRule :: PolicyV1beta1SupplementalGroupsStrategyOptions -> Maybe Text
policyV1beta1SupplementalGroupsStrategyOptionsRanges :: PolicyV1beta1SupplementalGroupsStrategyOptions
-> Maybe [PolicyV1beta1IDRange]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"ranges" Text -> Maybe [PolicyV1beta1IDRange] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [PolicyV1beta1IDRange]
policyV1beta1SupplementalGroupsStrategyOptionsRanges
      , Text
"rule" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
policyV1beta1SupplementalGroupsStrategyOptionsRule
      ]


-- | Construct a value of type 'PolicyV1beta1SupplementalGroupsStrategyOptions' (by applying it's required fields, if any)
mkPolicyV1beta1SupplementalGroupsStrategyOptions
  :: PolicyV1beta1SupplementalGroupsStrategyOptions
mkPolicyV1beta1SupplementalGroupsStrategyOptions :: PolicyV1beta1SupplementalGroupsStrategyOptions
mkPolicyV1beta1SupplementalGroupsStrategyOptions =
  PolicyV1beta1SupplementalGroupsStrategyOptions :: Maybe [PolicyV1beta1IDRange]
-> Maybe Text -> PolicyV1beta1SupplementalGroupsStrategyOptions
PolicyV1beta1SupplementalGroupsStrategyOptions
  { policyV1beta1SupplementalGroupsStrategyOptionsRanges :: Maybe [PolicyV1beta1IDRange]
policyV1beta1SupplementalGroupsStrategyOptionsRanges = Maybe [PolicyV1beta1IDRange]
forall a. Maybe a
Nothing
  , policyV1beta1SupplementalGroupsStrategyOptionsRule :: Maybe Text
policyV1beta1SupplementalGroupsStrategyOptionsRule = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1APIGroup
-- | V1APIGroup
-- APIGroup contains the name, the supported versions, and the preferred version of a group.
data V1APIGroup = V1APIGroup
  { V1APIGroup -> Maybe Text
v1APIGroupApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1APIGroup -> Maybe Text
v1APIGroupKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1APIGroup -> Text
v1APIGroupName :: !(Text) -- ^ /Required/ "name" - name is the name of the group.
  , V1APIGroup -> Maybe V1GroupVersionForDiscovery
v1APIGroupPreferredVersion :: !(Maybe V1GroupVersionForDiscovery) -- ^ "preferredVersion"
  , V1APIGroup -> Maybe [V1ServerAddressByClientCIDR]
v1APIGroupServerAddressByClientCidRs :: !(Maybe [V1ServerAddressByClientCIDR]) -- ^ "serverAddressByClientCIDRs" - a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
  , V1APIGroup -> [V1GroupVersionForDiscovery]
v1APIGroupVersions :: !([V1GroupVersionForDiscovery]) -- ^ /Required/ "versions" - versions are the versions supported in this group.
  } deriving (Int -> V1APIGroup -> ShowS
[V1APIGroup] -> ShowS
V1APIGroup -> String
(Int -> V1APIGroup -> ShowS)
-> (V1APIGroup -> String)
-> ([V1APIGroup] -> ShowS)
-> Show V1APIGroup
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1APIGroup] -> ShowS
$cshowList :: [V1APIGroup] -> ShowS
show :: V1APIGroup -> String
$cshow :: V1APIGroup -> String
showsPrec :: Int -> V1APIGroup -> ShowS
$cshowsPrec :: Int -> V1APIGroup -> ShowS
P.Show, V1APIGroup -> V1APIGroup -> Bool
(V1APIGroup -> V1APIGroup -> Bool)
-> (V1APIGroup -> V1APIGroup -> Bool) -> Eq V1APIGroup
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1APIGroup -> V1APIGroup -> Bool
$c/= :: V1APIGroup -> V1APIGroup -> Bool
== :: V1APIGroup -> V1APIGroup -> Bool
$c== :: V1APIGroup -> V1APIGroup -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1APIGroup
instance A.FromJSON V1APIGroup where
  parseJSON :: Value -> Parser V1APIGroup
parseJSON = String
-> (Object -> Parser V1APIGroup) -> Value -> Parser V1APIGroup
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1APIGroup" ((Object -> Parser V1APIGroup) -> Value -> Parser V1APIGroup)
-> (Object -> Parser V1APIGroup) -> Value -> Parser V1APIGroup
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Text
-> Maybe V1GroupVersionForDiscovery
-> Maybe [V1ServerAddressByClientCIDR]
-> [V1GroupVersionForDiscovery]
-> V1APIGroup
V1APIGroup
      (Maybe Text
 -> Maybe Text
 -> Text
 -> Maybe V1GroupVersionForDiscovery
 -> Maybe [V1ServerAddressByClientCIDR]
 -> [V1GroupVersionForDiscovery]
 -> V1APIGroup)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text
      -> Maybe V1GroupVersionForDiscovery
      -> Maybe [V1ServerAddressByClientCIDR]
      -> [V1GroupVersionForDiscovery]
      -> V1APIGroup)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Text
   -> Maybe V1GroupVersionForDiscovery
   -> Maybe [V1ServerAddressByClientCIDR]
   -> [V1GroupVersionForDiscovery]
   -> V1APIGroup)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe V1GroupVersionForDiscovery
      -> Maybe [V1ServerAddressByClientCIDR]
      -> [V1GroupVersionForDiscovery]
      -> V1APIGroup)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Text
   -> Maybe V1GroupVersionForDiscovery
   -> Maybe [V1ServerAddressByClientCIDR]
   -> [V1GroupVersionForDiscovery]
   -> V1APIGroup)
-> Parser Text
-> Parser
     (Maybe V1GroupVersionForDiscovery
      -> Maybe [V1ServerAddressByClientCIDR]
      -> [V1GroupVersionForDiscovery]
      -> V1APIGroup)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Maybe V1GroupVersionForDiscovery
   -> Maybe [V1ServerAddressByClientCIDR]
   -> [V1GroupVersionForDiscovery]
   -> V1APIGroup)
-> Parser (Maybe V1GroupVersionForDiscovery)
-> Parser
     (Maybe [V1ServerAddressByClientCIDR]
      -> [V1GroupVersionForDiscovery] -> V1APIGroup)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1GroupVersionForDiscovery)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"preferredVersion")
      Parser
  (Maybe [V1ServerAddressByClientCIDR]
   -> [V1GroupVersionForDiscovery] -> V1APIGroup)
-> Parser (Maybe [V1ServerAddressByClientCIDR])
-> Parser ([V1GroupVersionForDiscovery] -> V1APIGroup)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1ServerAddressByClientCIDR])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"serverAddressByClientCIDRs")
      Parser ([V1GroupVersionForDiscovery] -> V1APIGroup)
-> Parser [V1GroupVersionForDiscovery] -> Parser V1APIGroup
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1GroupVersionForDiscovery]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"versions")

-- | ToJSON V1APIGroup
instance A.ToJSON V1APIGroup where
  toJSON :: V1APIGroup -> Value
toJSON V1APIGroup {[V1GroupVersionForDiscovery]
Maybe [V1ServerAddressByClientCIDR]
Maybe Text
Maybe V1GroupVersionForDiscovery
Text
v1APIGroupVersions :: [V1GroupVersionForDiscovery]
v1APIGroupServerAddressByClientCidRs :: Maybe [V1ServerAddressByClientCIDR]
v1APIGroupPreferredVersion :: Maybe V1GroupVersionForDiscovery
v1APIGroupName :: Text
v1APIGroupKind :: Maybe Text
v1APIGroupApiVersion :: Maybe Text
v1APIGroupVersions :: V1APIGroup -> [V1GroupVersionForDiscovery]
v1APIGroupServerAddressByClientCidRs :: V1APIGroup -> Maybe [V1ServerAddressByClientCIDR]
v1APIGroupPreferredVersion :: V1APIGroup -> Maybe V1GroupVersionForDiscovery
v1APIGroupName :: V1APIGroup -> Text
v1APIGroupKind :: V1APIGroup -> Maybe Text
v1APIGroupApiVersion :: V1APIGroup -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIGroupApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIGroupKind
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1APIGroupName
      , Text
"preferredVersion" Text -> Maybe V1GroupVersionForDiscovery -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1GroupVersionForDiscovery
v1APIGroupPreferredVersion
      , Text
"serverAddressByClientCIDRs" Text -> Maybe [V1ServerAddressByClientCIDR] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ServerAddressByClientCIDR]
v1APIGroupServerAddressByClientCidRs
      , Text
"versions" Text -> [V1GroupVersionForDiscovery] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1GroupVersionForDiscovery]
v1APIGroupVersions
      ]


-- | Construct a value of type 'V1APIGroup' (by applying it's required fields, if any)
mkV1APIGroup
  :: Text -- ^ 'v1APIGroupName': name is the name of the group.
  -> [V1GroupVersionForDiscovery] -- ^ 'v1APIGroupVersions': versions are the versions supported in this group.
  -> V1APIGroup
mkV1APIGroup :: Text -> [V1GroupVersionForDiscovery] -> V1APIGroup
mkV1APIGroup Text
v1APIGroupName [V1GroupVersionForDiscovery]
v1APIGroupVersions =
  V1APIGroup :: Maybe Text
-> Maybe Text
-> Text
-> Maybe V1GroupVersionForDiscovery
-> Maybe [V1ServerAddressByClientCIDR]
-> [V1GroupVersionForDiscovery]
-> V1APIGroup
V1APIGroup
  { v1APIGroupApiVersion :: Maybe Text
v1APIGroupApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1APIGroupKind :: Maybe Text
v1APIGroupKind = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1APIGroupName :: Text
v1APIGroupName :: Text
v1APIGroupName
  , v1APIGroupPreferredVersion :: Maybe V1GroupVersionForDiscovery
v1APIGroupPreferredVersion = Maybe V1GroupVersionForDiscovery
forall a. Maybe a
Nothing
  , v1APIGroupServerAddressByClientCidRs :: Maybe [V1ServerAddressByClientCIDR]
v1APIGroupServerAddressByClientCidRs = Maybe [V1ServerAddressByClientCIDR]
forall a. Maybe a
Nothing
  , [V1GroupVersionForDiscovery]
v1APIGroupVersions :: [V1GroupVersionForDiscovery]
v1APIGroupVersions :: [V1GroupVersionForDiscovery]
v1APIGroupVersions
  }

-- ** V1APIGroupList
-- | V1APIGroupList
-- APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.
data V1APIGroupList = V1APIGroupList
  { V1APIGroupList -> Maybe Text
v1APIGroupListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1APIGroupList -> [V1APIGroup]
v1APIGroupListGroups :: !([V1APIGroup]) -- ^ /Required/ "groups" - groups is a list of APIGroup.
  , V1APIGroupList -> Maybe Text
v1APIGroupListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  } deriving (Int -> V1APIGroupList -> ShowS
[V1APIGroupList] -> ShowS
V1APIGroupList -> String
(Int -> V1APIGroupList -> ShowS)
-> (V1APIGroupList -> String)
-> ([V1APIGroupList] -> ShowS)
-> Show V1APIGroupList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1APIGroupList] -> ShowS
$cshowList :: [V1APIGroupList] -> ShowS
show :: V1APIGroupList -> String
$cshow :: V1APIGroupList -> String
showsPrec :: Int -> V1APIGroupList -> ShowS
$cshowsPrec :: Int -> V1APIGroupList -> ShowS
P.Show, V1APIGroupList -> V1APIGroupList -> Bool
(V1APIGroupList -> V1APIGroupList -> Bool)
-> (V1APIGroupList -> V1APIGroupList -> Bool) -> Eq V1APIGroupList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1APIGroupList -> V1APIGroupList -> Bool
$c/= :: V1APIGroupList -> V1APIGroupList -> Bool
== :: V1APIGroupList -> V1APIGroupList -> Bool
$c== :: V1APIGroupList -> V1APIGroupList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1APIGroupList
instance A.FromJSON V1APIGroupList where
  parseJSON :: Value -> Parser V1APIGroupList
parseJSON = String
-> (Object -> Parser V1APIGroupList)
-> Value
-> Parser V1APIGroupList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1APIGroupList" ((Object -> Parser V1APIGroupList)
 -> Value -> Parser V1APIGroupList)
-> (Object -> Parser V1APIGroupList)
-> Value
-> Parser V1APIGroupList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> [V1APIGroup] -> Maybe Text -> V1APIGroupList
V1APIGroupList
      (Maybe Text -> [V1APIGroup] -> Maybe Text -> V1APIGroupList)
-> Parser (Maybe Text)
-> Parser ([V1APIGroup] -> Maybe Text -> V1APIGroupList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser ([V1APIGroup] -> Maybe Text -> V1APIGroupList)
-> Parser [V1APIGroup] -> Parser (Maybe Text -> V1APIGroupList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1APIGroup]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"groups")
      Parser (Maybe Text -> V1APIGroupList)
-> Parser (Maybe Text) -> Parser V1APIGroupList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")

-- | ToJSON V1APIGroupList
instance A.ToJSON V1APIGroupList where
  toJSON :: V1APIGroupList -> Value
toJSON V1APIGroupList {[V1APIGroup]
Maybe Text
v1APIGroupListKind :: Maybe Text
v1APIGroupListGroups :: [V1APIGroup]
v1APIGroupListApiVersion :: Maybe Text
v1APIGroupListKind :: V1APIGroupList -> Maybe Text
v1APIGroupListGroups :: V1APIGroupList -> [V1APIGroup]
v1APIGroupListApiVersion :: V1APIGroupList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIGroupListApiVersion
      , Text
"groups" Text -> [V1APIGroup] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1APIGroup]
v1APIGroupListGroups
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIGroupListKind
      ]


-- | Construct a value of type 'V1APIGroupList' (by applying it's required fields, if any)
mkV1APIGroupList
  :: [V1APIGroup] -- ^ 'v1APIGroupListGroups': groups is a list of APIGroup.
  -> V1APIGroupList
mkV1APIGroupList :: [V1APIGroup] -> V1APIGroupList
mkV1APIGroupList [V1APIGroup]
v1APIGroupListGroups =
  V1APIGroupList :: Maybe Text -> [V1APIGroup] -> Maybe Text -> V1APIGroupList
V1APIGroupList
  { v1APIGroupListApiVersion :: Maybe Text
v1APIGroupListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1APIGroup]
v1APIGroupListGroups :: [V1APIGroup]
v1APIGroupListGroups :: [V1APIGroup]
v1APIGroupListGroups
  , v1APIGroupListKind :: Maybe Text
v1APIGroupListKind = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1APIResource
-- | V1APIResource
-- APIResource specifies the name of a resource and whether it is namespaced.
data V1APIResource = V1APIResource
  { V1APIResource -> Maybe [Text]
v1APIResourceCategories :: !(Maybe [Text]) -- ^ "categories" - categories is a list of the grouped resources this resource belongs to (e.g. &#39;all&#39;)
  , V1APIResource -> Maybe Text
v1APIResourceGroup :: !(Maybe Text) -- ^ "group" - group is the preferred group of the resource.  Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\&quot;.
  , V1APIResource -> Text
v1APIResourceKind :: !(Text) -- ^ /Required/ "kind" - kind is the kind for the resource (e.g. &#39;Foo&#39; is the kind for a resource &#39;foo&#39;)
  , V1APIResource -> Text
v1APIResourceName :: !(Text) -- ^ /Required/ "name" - name is the plural name of the resource.
  , V1APIResource -> Bool
v1APIResourceNamespaced :: !(Bool) -- ^ /Required/ "namespaced" - namespaced indicates if a resource is namespaced or not.
  , V1APIResource -> Maybe [Text]
v1APIResourceShortNames :: !(Maybe [Text]) -- ^ "shortNames" - shortNames is a list of suggested short names of the resource.
  , V1APIResource -> Text
v1APIResourceSingularName :: !(Text) -- ^ /Required/ "singularName" - singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.
  , V1APIResource -> Maybe Text
v1APIResourceStorageVersionHash :: !(Maybe Text) -- ^ "storageVersionHash" - The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.
  , V1APIResource -> [Text]
v1APIResourceVerbs :: !([Text]) -- ^ /Required/ "verbs" - verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)
  , V1APIResource -> Maybe Text
v1APIResourceVersion :: !(Maybe Text) -- ^ "version" - version is the preferred version of the resource.  Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource&#39;s group)\&quot;.
  } deriving (Int -> V1APIResource -> ShowS
[V1APIResource] -> ShowS
V1APIResource -> String
(Int -> V1APIResource -> ShowS)
-> (V1APIResource -> String)
-> ([V1APIResource] -> ShowS)
-> Show V1APIResource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1APIResource] -> ShowS
$cshowList :: [V1APIResource] -> ShowS
show :: V1APIResource -> String
$cshow :: V1APIResource -> String
showsPrec :: Int -> V1APIResource -> ShowS
$cshowsPrec :: Int -> V1APIResource -> ShowS
P.Show, V1APIResource -> V1APIResource -> Bool
(V1APIResource -> V1APIResource -> Bool)
-> (V1APIResource -> V1APIResource -> Bool) -> Eq V1APIResource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1APIResource -> V1APIResource -> Bool
$c/= :: V1APIResource -> V1APIResource -> Bool
== :: V1APIResource -> V1APIResource -> Bool
$c== :: V1APIResource -> V1APIResource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1APIResource
instance A.FromJSON V1APIResource where
  parseJSON :: Value -> Parser V1APIResource
parseJSON = String
-> (Object -> Parser V1APIResource)
-> Value
-> Parser V1APIResource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1APIResource" ((Object -> Parser V1APIResource) -> Value -> Parser V1APIResource)
-> (Object -> Parser V1APIResource)
-> Value
-> Parser V1APIResource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Maybe Text
-> Text
-> Text
-> Bool
-> Maybe [Text]
-> Text
-> Maybe Text
-> [Text]
-> Maybe Text
-> V1APIResource
V1APIResource
      (Maybe [Text]
 -> Maybe Text
 -> Text
 -> Text
 -> Bool
 -> Maybe [Text]
 -> Text
 -> Maybe Text
 -> [Text]
 -> Maybe Text
 -> V1APIResource)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Text
      -> Text
      -> Text
      -> Bool
      -> Maybe [Text]
      -> Text
      -> Maybe Text
      -> [Text]
      -> Maybe Text
      -> V1APIResource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"categories")
      Parser
  (Maybe Text
   -> Text
   -> Text
   -> Bool
   -> Maybe [Text]
   -> Text
   -> Maybe Text
   -> [Text]
   -> Maybe Text
   -> V1APIResource)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Text
      -> Bool
      -> Maybe [Text]
      -> Text
      -> Maybe Text
      -> [Text]
      -> Maybe Text
      -> V1APIResource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"group")
      Parser
  (Text
   -> Text
   -> Bool
   -> Maybe [Text]
   -> Text
   -> Maybe Text
   -> [Text]
   -> Maybe Text
   -> V1APIResource)
-> Parser Text
-> Parser
     (Text
      -> Bool
      -> Maybe [Text]
      -> Text
      -> Maybe Text
      -> [Text]
      -> Maybe Text
      -> V1APIResource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kind")
      Parser
  (Text
   -> Bool
   -> Maybe [Text]
   -> Text
   -> Maybe Text
   -> [Text]
   -> Maybe Text
   -> V1APIResource)
-> Parser Text
-> Parser
     (Bool
      -> Maybe [Text]
      -> Text
      -> Maybe Text
      -> [Text]
      -> Maybe Text
      -> V1APIResource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Bool
   -> Maybe [Text]
   -> Text
   -> Maybe Text
   -> [Text]
   -> Maybe Text
   -> V1APIResource)
-> Parser Bool
-> Parser
     (Maybe [Text]
      -> Text -> Maybe Text -> [Text] -> Maybe Text -> V1APIResource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"namespaced")
      Parser
  (Maybe [Text]
   -> Text -> Maybe Text -> [Text] -> Maybe Text -> V1APIResource)
-> Parser (Maybe [Text])
-> Parser
     (Text -> Maybe Text -> [Text] -> Maybe Text -> V1APIResource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"shortNames")
      Parser
  (Text -> Maybe Text -> [Text] -> Maybe Text -> V1APIResource)
-> Parser Text
-> Parser (Maybe Text -> [Text] -> Maybe Text -> V1APIResource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"singularName")
      Parser (Maybe Text -> [Text] -> Maybe Text -> V1APIResource)
-> Parser (Maybe Text)
-> Parser ([Text] -> Maybe Text -> V1APIResource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"storageVersionHash")
      Parser ([Text] -> Maybe Text -> V1APIResource)
-> Parser [Text] -> Parser (Maybe Text -> V1APIResource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"verbs")
      Parser (Maybe Text -> V1APIResource)
-> Parser (Maybe Text) -> Parser V1APIResource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"version")

-- | ToJSON V1APIResource
instance A.ToJSON V1APIResource where
  toJSON :: V1APIResource -> Value
toJSON V1APIResource {Bool
[Text]
Maybe [Text]
Maybe Text
Text
v1APIResourceVersion :: Maybe Text
v1APIResourceVerbs :: [Text]
v1APIResourceStorageVersionHash :: Maybe Text
v1APIResourceSingularName :: Text
v1APIResourceShortNames :: Maybe [Text]
v1APIResourceNamespaced :: Bool
v1APIResourceName :: Text
v1APIResourceKind :: Text
v1APIResourceGroup :: Maybe Text
v1APIResourceCategories :: Maybe [Text]
v1APIResourceVersion :: V1APIResource -> Maybe Text
v1APIResourceVerbs :: V1APIResource -> [Text]
v1APIResourceStorageVersionHash :: V1APIResource -> Maybe Text
v1APIResourceSingularName :: V1APIResource -> Text
v1APIResourceShortNames :: V1APIResource -> Maybe [Text]
v1APIResourceNamespaced :: V1APIResource -> Bool
v1APIResourceName :: V1APIResource -> Text
v1APIResourceKind :: V1APIResource -> Text
v1APIResourceGroup :: V1APIResource -> Maybe Text
v1APIResourceCategories :: V1APIResource -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"categories" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1APIResourceCategories
      , Text
"group" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIResourceGroup
      , Text
"kind" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1APIResourceKind
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1APIResourceName
      , Text
"namespaced" Text -> Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Bool
v1APIResourceNamespaced
      , Text
"shortNames" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1APIResourceShortNames
      , Text
"singularName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1APIResourceSingularName
      , Text
"storageVersionHash" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIResourceStorageVersionHash
      , Text
"verbs" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1APIResourceVerbs
      , Text
"version" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIResourceVersion
      ]


-- | Construct a value of type 'V1APIResource' (by applying it's required fields, if any)
mkV1APIResource
  :: Text -- ^ 'v1APIResourceKind': kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')
  -> Text -- ^ 'v1APIResourceName': name is the plural name of the resource.
  -> Bool -- ^ 'v1APIResourceNamespaced': namespaced indicates if a resource is namespaced or not.
  -> Text -- ^ 'v1APIResourceSingularName': singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.
  -> [Text] -- ^ 'v1APIResourceVerbs': verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)
  -> V1APIResource
mkV1APIResource :: Text -> Text -> Bool -> Text -> [Text] -> V1APIResource
mkV1APIResource Text
v1APIResourceKind Text
v1APIResourceName Bool
v1APIResourceNamespaced Text
v1APIResourceSingularName [Text]
v1APIResourceVerbs =
  V1APIResource :: Maybe [Text]
-> Maybe Text
-> Text
-> Text
-> Bool
-> Maybe [Text]
-> Text
-> Maybe Text
-> [Text]
-> Maybe Text
-> V1APIResource
V1APIResource
  { v1APIResourceCategories :: Maybe [Text]
v1APIResourceCategories = Maybe [Text]
forall a. Maybe a
Nothing
  , v1APIResourceGroup :: Maybe Text
v1APIResourceGroup = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1APIResourceKind :: Text
v1APIResourceKind :: Text
v1APIResourceKind
  , Text
v1APIResourceName :: Text
v1APIResourceName :: Text
v1APIResourceName
  , Bool
v1APIResourceNamespaced :: Bool
v1APIResourceNamespaced :: Bool
v1APIResourceNamespaced
  , v1APIResourceShortNames :: Maybe [Text]
v1APIResourceShortNames = Maybe [Text]
forall a. Maybe a
Nothing
  , Text
v1APIResourceSingularName :: Text
v1APIResourceSingularName :: Text
v1APIResourceSingularName
  , v1APIResourceStorageVersionHash :: Maybe Text
v1APIResourceStorageVersionHash = Maybe Text
forall a. Maybe a
Nothing
  , [Text]
v1APIResourceVerbs :: [Text]
v1APIResourceVerbs :: [Text]
v1APIResourceVerbs
  , v1APIResourceVersion :: Maybe Text
v1APIResourceVersion = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1APIResourceList
-- | V1APIResourceList
-- APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.
data V1APIResourceList = V1APIResourceList
  { V1APIResourceList -> Maybe Text
v1APIResourceListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1APIResourceList -> Text
v1APIResourceListGroupVersion :: !(Text) -- ^ /Required/ "groupVersion" - groupVersion is the group and version this APIResourceList is for.
  , V1APIResourceList -> Maybe Text
v1APIResourceListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1APIResourceList -> [V1APIResource]
v1APIResourceListResources :: !([V1APIResource]) -- ^ /Required/ "resources" - resources contains the name of the resources and if they are namespaced.
  } deriving (Int -> V1APIResourceList -> ShowS
[V1APIResourceList] -> ShowS
V1APIResourceList -> String
(Int -> V1APIResourceList -> ShowS)
-> (V1APIResourceList -> String)
-> ([V1APIResourceList] -> ShowS)
-> Show V1APIResourceList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1APIResourceList] -> ShowS
$cshowList :: [V1APIResourceList] -> ShowS
show :: V1APIResourceList -> String
$cshow :: V1APIResourceList -> String
showsPrec :: Int -> V1APIResourceList -> ShowS
$cshowsPrec :: Int -> V1APIResourceList -> ShowS
P.Show, V1APIResourceList -> V1APIResourceList -> Bool
(V1APIResourceList -> V1APIResourceList -> Bool)
-> (V1APIResourceList -> V1APIResourceList -> Bool)
-> Eq V1APIResourceList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1APIResourceList -> V1APIResourceList -> Bool
$c/= :: V1APIResourceList -> V1APIResourceList -> Bool
== :: V1APIResourceList -> V1APIResourceList -> Bool
$c== :: V1APIResourceList -> V1APIResourceList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1APIResourceList
instance A.FromJSON V1APIResourceList where
  parseJSON :: Value -> Parser V1APIResourceList
parseJSON = String
-> (Object -> Parser V1APIResourceList)
-> Value
-> Parser V1APIResourceList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1APIResourceList" ((Object -> Parser V1APIResourceList)
 -> Value -> Parser V1APIResourceList)
-> (Object -> Parser V1APIResourceList)
-> Value
-> Parser V1APIResourceList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Text -> Maybe Text -> [V1APIResource] -> V1APIResourceList
V1APIResourceList
      (Maybe Text
 -> Text -> Maybe Text -> [V1APIResource] -> V1APIResourceList)
-> Parser (Maybe Text)
-> Parser
     (Text -> Maybe Text -> [V1APIResource] -> V1APIResourceList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser (Text -> Maybe Text -> [V1APIResource] -> V1APIResourceList)
-> Parser Text
-> Parser (Maybe Text -> [V1APIResource] -> V1APIResourceList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"groupVersion")
      Parser (Maybe Text -> [V1APIResource] -> V1APIResourceList)
-> Parser (Maybe Text)
-> Parser ([V1APIResource] -> V1APIResourceList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser ([V1APIResource] -> V1APIResourceList)
-> Parser [V1APIResource] -> Parser V1APIResourceList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1APIResource]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"resources")

-- | ToJSON V1APIResourceList
instance A.ToJSON V1APIResourceList where
  toJSON :: V1APIResourceList -> Value
toJSON V1APIResourceList {[V1APIResource]
Maybe Text
Text
v1APIResourceListResources :: [V1APIResource]
v1APIResourceListKind :: Maybe Text
v1APIResourceListGroupVersion :: Text
v1APIResourceListApiVersion :: Maybe Text
v1APIResourceListResources :: V1APIResourceList -> [V1APIResource]
v1APIResourceListKind :: V1APIResourceList -> Maybe Text
v1APIResourceListGroupVersion :: V1APIResourceList -> Text
v1APIResourceListApiVersion :: V1APIResourceList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIResourceListApiVersion
      , Text
"groupVersion" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1APIResourceListGroupVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIResourceListKind
      , Text
"resources" Text -> [V1APIResource] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1APIResource]
v1APIResourceListResources
      ]


-- | Construct a value of type 'V1APIResourceList' (by applying it's required fields, if any)
mkV1APIResourceList
  :: Text -- ^ 'v1APIResourceListGroupVersion': groupVersion is the group and version this APIResourceList is for.
  -> [V1APIResource] -- ^ 'v1APIResourceListResources': resources contains the name of the resources and if they are namespaced.
  -> V1APIResourceList
mkV1APIResourceList :: Text -> [V1APIResource] -> V1APIResourceList
mkV1APIResourceList Text
v1APIResourceListGroupVersion [V1APIResource]
v1APIResourceListResources =
  V1APIResourceList :: Maybe Text
-> Text -> Maybe Text -> [V1APIResource] -> V1APIResourceList
V1APIResourceList
  { v1APIResourceListApiVersion :: Maybe Text
v1APIResourceListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1APIResourceListGroupVersion :: Text
v1APIResourceListGroupVersion :: Text
v1APIResourceListGroupVersion
  , v1APIResourceListKind :: Maybe Text
v1APIResourceListKind = Maybe Text
forall a. Maybe a
Nothing
  , [V1APIResource]
v1APIResourceListResources :: [V1APIResource]
v1APIResourceListResources :: [V1APIResource]
v1APIResourceListResources
  }

-- ** V1APIService
-- | V1APIService
-- APIService represents a server for a particular GroupVersion. Name must be \"version.group\".
data V1APIService = V1APIService
  { V1APIService -> Maybe Text
v1APIServiceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1APIService -> Maybe Text
v1APIServiceKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1APIService -> Maybe V1ObjectMeta
v1APIServiceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1APIService -> Maybe V1APIServiceSpec
v1APIServiceSpec :: !(Maybe V1APIServiceSpec) -- ^ "spec"
  , V1APIService -> Maybe V1APIServiceStatus
v1APIServiceStatus :: !(Maybe V1APIServiceStatus) -- ^ "status"
  } deriving (Int -> V1APIService -> ShowS
[V1APIService] -> ShowS
V1APIService -> String
(Int -> V1APIService -> ShowS)
-> (V1APIService -> String)
-> ([V1APIService] -> ShowS)
-> Show V1APIService
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1APIService] -> ShowS
$cshowList :: [V1APIService] -> ShowS
show :: V1APIService -> String
$cshow :: V1APIService -> String
showsPrec :: Int -> V1APIService -> ShowS
$cshowsPrec :: Int -> V1APIService -> ShowS
P.Show, V1APIService -> V1APIService -> Bool
(V1APIService -> V1APIService -> Bool)
-> (V1APIService -> V1APIService -> Bool) -> Eq V1APIService
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1APIService -> V1APIService -> Bool
$c/= :: V1APIService -> V1APIService -> Bool
== :: V1APIService -> V1APIService -> Bool
$c== :: V1APIService -> V1APIService -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1APIService
instance A.FromJSON V1APIService where
  parseJSON :: Value -> Parser V1APIService
parseJSON = String
-> (Object -> Parser V1APIService) -> Value -> Parser V1APIService
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1APIService" ((Object -> Parser V1APIService) -> Value -> Parser V1APIService)
-> (Object -> Parser V1APIService) -> Value -> Parser V1APIService
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1APIServiceSpec
-> Maybe V1APIServiceStatus
-> V1APIService
V1APIService
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1APIServiceSpec
 -> Maybe V1APIServiceStatus
 -> V1APIService)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1APIServiceSpec
      -> Maybe V1APIServiceStatus
      -> V1APIService)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1APIServiceSpec
   -> Maybe V1APIServiceStatus
   -> V1APIService)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1APIServiceSpec
      -> Maybe V1APIServiceStatus
      -> V1APIService)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1APIServiceSpec
   -> Maybe V1APIServiceStatus
   -> V1APIService)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1APIServiceSpec
      -> Maybe V1APIServiceStatus -> V1APIService)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1APIServiceSpec
   -> Maybe V1APIServiceStatus -> V1APIService)
-> Parser (Maybe V1APIServiceSpec)
-> Parser (Maybe V1APIServiceStatus -> V1APIService)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1APIServiceSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1APIServiceStatus -> V1APIService)
-> Parser (Maybe V1APIServiceStatus) -> Parser V1APIService
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1APIServiceStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1APIService
instance A.ToJSON V1APIService where
  toJSON :: V1APIService -> Value
toJSON V1APIService {Maybe Text
Maybe V1ObjectMeta
Maybe V1APIServiceStatus
Maybe V1APIServiceSpec
v1APIServiceStatus :: Maybe V1APIServiceStatus
v1APIServiceSpec :: Maybe V1APIServiceSpec
v1APIServiceMetadata :: Maybe V1ObjectMeta
v1APIServiceKind :: Maybe Text
v1APIServiceApiVersion :: Maybe Text
v1APIServiceStatus :: V1APIService -> Maybe V1APIServiceStatus
v1APIServiceSpec :: V1APIService -> Maybe V1APIServiceSpec
v1APIServiceMetadata :: V1APIService -> Maybe V1ObjectMeta
v1APIServiceKind :: V1APIService -> Maybe Text
v1APIServiceApiVersion :: V1APIService -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIServiceApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIServiceKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1APIServiceMetadata
      , Text
"spec" Text -> Maybe V1APIServiceSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1APIServiceSpec
v1APIServiceSpec
      , Text
"status" Text -> Maybe V1APIServiceStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1APIServiceStatus
v1APIServiceStatus
      ]


-- | Construct a value of type 'V1APIService' (by applying it's required fields, if any)
mkV1APIService
  :: V1APIService
mkV1APIService :: V1APIService
mkV1APIService =
  V1APIService :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1APIServiceSpec
-> Maybe V1APIServiceStatus
-> V1APIService
V1APIService
  { v1APIServiceApiVersion :: Maybe Text
v1APIServiceApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1APIServiceKind :: Maybe Text
v1APIServiceKind = Maybe Text
forall a. Maybe a
Nothing
  , v1APIServiceMetadata :: Maybe V1ObjectMeta
v1APIServiceMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1APIServiceSpec :: Maybe V1APIServiceSpec
v1APIServiceSpec = Maybe V1APIServiceSpec
forall a. Maybe a
Nothing
  , v1APIServiceStatus :: Maybe V1APIServiceStatus
v1APIServiceStatus = Maybe V1APIServiceStatus
forall a. Maybe a
Nothing
  }

-- ** V1APIServiceCondition
-- | V1APIServiceCondition
-- APIServiceCondition describes the state of an APIService at a particular point
data V1APIServiceCondition = V1APIServiceCondition
  { V1APIServiceCondition -> Maybe DateTime
v1APIServiceConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.
  , V1APIServiceCondition -> Maybe Text
v1APIServiceConditionMessage :: !(Maybe Text) -- ^ "message" - Human-readable message indicating details about last transition.
  , V1APIServiceCondition -> Maybe Text
v1APIServiceConditionReason :: !(Maybe Text) -- ^ "reason" - Unique, one-word, CamelCase reason for the condition&#39;s last transition.
  , V1APIServiceCondition -> Text
v1APIServiceConditionStatus :: !(Text) -- ^ /Required/ "status" - Status is the status of the condition. Can be True, False, Unknown.
  , V1APIServiceCondition -> Text
v1APIServiceConditionType :: !(Text) -- ^ /Required/ "type" - Type is the type of the condition.
  } deriving (Int -> V1APIServiceCondition -> ShowS
[V1APIServiceCondition] -> ShowS
V1APIServiceCondition -> String
(Int -> V1APIServiceCondition -> ShowS)
-> (V1APIServiceCondition -> String)
-> ([V1APIServiceCondition] -> ShowS)
-> Show V1APIServiceCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1APIServiceCondition] -> ShowS
$cshowList :: [V1APIServiceCondition] -> ShowS
show :: V1APIServiceCondition -> String
$cshow :: V1APIServiceCondition -> String
showsPrec :: Int -> V1APIServiceCondition -> ShowS
$cshowsPrec :: Int -> V1APIServiceCondition -> ShowS
P.Show, V1APIServiceCondition -> V1APIServiceCondition -> Bool
(V1APIServiceCondition -> V1APIServiceCondition -> Bool)
-> (V1APIServiceCondition -> V1APIServiceCondition -> Bool)
-> Eq V1APIServiceCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1APIServiceCondition -> V1APIServiceCondition -> Bool
$c/= :: V1APIServiceCondition -> V1APIServiceCondition -> Bool
== :: V1APIServiceCondition -> V1APIServiceCondition -> Bool
$c== :: V1APIServiceCondition -> V1APIServiceCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1APIServiceCondition
instance A.FromJSON V1APIServiceCondition where
  parseJSON :: Value -> Parser V1APIServiceCondition
parseJSON = String
-> (Object -> Parser V1APIServiceCondition)
-> Value
-> Parser V1APIServiceCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1APIServiceCondition" ((Object -> Parser V1APIServiceCondition)
 -> Value -> Parser V1APIServiceCondition)
-> (Object -> Parser V1APIServiceCondition)
-> Value
-> Parser V1APIServiceCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1APIServiceCondition
V1APIServiceCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1APIServiceCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text -> Maybe Text -> Text -> Text -> V1APIServiceCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text -> Maybe Text -> Text -> Text -> V1APIServiceCondition)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Text -> Text -> V1APIServiceCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1APIServiceCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1APIServiceCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1APIServiceCondition)
-> Parser Text -> Parser (Text -> V1APIServiceCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1APIServiceCondition)
-> Parser Text -> Parser V1APIServiceCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1APIServiceCondition
instance A.ToJSON V1APIServiceCondition where
  toJSON :: V1APIServiceCondition -> Value
toJSON V1APIServiceCondition {Maybe Text
Maybe DateTime
Text
v1APIServiceConditionType :: Text
v1APIServiceConditionStatus :: Text
v1APIServiceConditionReason :: Maybe Text
v1APIServiceConditionMessage :: Maybe Text
v1APIServiceConditionLastTransitionTime :: Maybe DateTime
v1APIServiceConditionType :: V1APIServiceCondition -> Text
v1APIServiceConditionStatus :: V1APIServiceCondition -> Text
v1APIServiceConditionReason :: V1APIServiceCondition -> Maybe Text
v1APIServiceConditionMessage :: V1APIServiceCondition -> Maybe Text
v1APIServiceConditionLastTransitionTime :: V1APIServiceCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1APIServiceConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIServiceConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIServiceConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1APIServiceConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1APIServiceConditionType
      ]


-- | Construct a value of type 'V1APIServiceCondition' (by applying it's required fields, if any)
mkV1APIServiceCondition
  :: Text -- ^ 'v1APIServiceConditionStatus': Status is the status of the condition. Can be True, False, Unknown.
  -> Text -- ^ 'v1APIServiceConditionType': Type is the type of the condition.
  -> V1APIServiceCondition
mkV1APIServiceCondition :: Text -> Text -> V1APIServiceCondition
mkV1APIServiceCondition Text
v1APIServiceConditionStatus Text
v1APIServiceConditionType =
  V1APIServiceCondition :: Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1APIServiceCondition
V1APIServiceCondition
  { v1APIServiceConditionLastTransitionTime :: Maybe DateTime
v1APIServiceConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1APIServiceConditionMessage :: Maybe Text
v1APIServiceConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1APIServiceConditionReason :: Maybe Text
v1APIServiceConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1APIServiceConditionStatus :: Text
v1APIServiceConditionStatus :: Text
v1APIServiceConditionStatus
  , Text
v1APIServiceConditionType :: Text
v1APIServiceConditionType :: Text
v1APIServiceConditionType
  }

-- ** V1APIServiceList
-- | V1APIServiceList
-- APIServiceList is a list of APIService objects.
data V1APIServiceList = V1APIServiceList
  { V1APIServiceList -> Maybe Text
v1APIServiceListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1APIServiceList -> [V1APIService]
v1APIServiceListItems :: !([V1APIService]) -- ^ /Required/ "items"
  , V1APIServiceList -> Maybe Text
v1APIServiceListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1APIServiceList -> Maybe V1ListMeta
v1APIServiceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1APIServiceList -> ShowS
[V1APIServiceList] -> ShowS
V1APIServiceList -> String
(Int -> V1APIServiceList -> ShowS)
-> (V1APIServiceList -> String)
-> ([V1APIServiceList] -> ShowS)
-> Show V1APIServiceList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1APIServiceList] -> ShowS
$cshowList :: [V1APIServiceList] -> ShowS
show :: V1APIServiceList -> String
$cshow :: V1APIServiceList -> String
showsPrec :: Int -> V1APIServiceList -> ShowS
$cshowsPrec :: Int -> V1APIServiceList -> ShowS
P.Show, V1APIServiceList -> V1APIServiceList -> Bool
(V1APIServiceList -> V1APIServiceList -> Bool)
-> (V1APIServiceList -> V1APIServiceList -> Bool)
-> Eq V1APIServiceList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1APIServiceList -> V1APIServiceList -> Bool
$c/= :: V1APIServiceList -> V1APIServiceList -> Bool
== :: V1APIServiceList -> V1APIServiceList -> Bool
$c== :: V1APIServiceList -> V1APIServiceList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1APIServiceList
instance A.FromJSON V1APIServiceList where
  parseJSON :: Value -> Parser V1APIServiceList
parseJSON = String
-> (Object -> Parser V1APIServiceList)
-> Value
-> Parser V1APIServiceList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1APIServiceList" ((Object -> Parser V1APIServiceList)
 -> Value -> Parser V1APIServiceList)
-> (Object -> Parser V1APIServiceList)
-> Value
-> Parser V1APIServiceList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1APIService]
-> Maybe Text
-> Maybe V1ListMeta
-> V1APIServiceList
V1APIServiceList
      (Maybe Text
 -> [V1APIService]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1APIServiceList)
-> Parser (Maybe Text)
-> Parser
     ([V1APIService]
      -> Maybe Text -> Maybe V1ListMeta -> V1APIServiceList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1APIService]
   -> Maybe Text -> Maybe V1ListMeta -> V1APIServiceList)
-> Parser [V1APIService]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1APIServiceList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1APIService]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1APIServiceList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1APIServiceList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1APIServiceList)
-> Parser (Maybe V1ListMeta) -> Parser V1APIServiceList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1APIServiceList
instance A.ToJSON V1APIServiceList where
  toJSON :: V1APIServiceList -> Value
toJSON V1APIServiceList {[V1APIService]
Maybe Text
Maybe V1ListMeta
v1APIServiceListMetadata :: Maybe V1ListMeta
v1APIServiceListKind :: Maybe Text
v1APIServiceListItems :: [V1APIService]
v1APIServiceListApiVersion :: Maybe Text
v1APIServiceListMetadata :: V1APIServiceList -> Maybe V1ListMeta
v1APIServiceListKind :: V1APIServiceList -> Maybe Text
v1APIServiceListItems :: V1APIServiceList -> [V1APIService]
v1APIServiceListApiVersion :: V1APIServiceList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIServiceListApiVersion
      , Text
"items" Text -> [V1APIService] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1APIService]
v1APIServiceListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIServiceListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1APIServiceListMetadata
      ]


-- | Construct a value of type 'V1APIServiceList' (by applying it's required fields, if any)
mkV1APIServiceList
  :: [V1APIService] -- ^ 'v1APIServiceListItems' 
  -> V1APIServiceList
mkV1APIServiceList :: [V1APIService] -> V1APIServiceList
mkV1APIServiceList [V1APIService]
v1APIServiceListItems =
  V1APIServiceList :: Maybe Text
-> [V1APIService]
-> Maybe Text
-> Maybe V1ListMeta
-> V1APIServiceList
V1APIServiceList
  { v1APIServiceListApiVersion :: Maybe Text
v1APIServiceListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1APIService]
v1APIServiceListItems :: [V1APIService]
v1APIServiceListItems :: [V1APIService]
v1APIServiceListItems
  , v1APIServiceListKind :: Maybe Text
v1APIServiceListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1APIServiceListMetadata :: Maybe V1ListMeta
v1APIServiceListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1APIServiceSpec
-- | V1APIServiceSpec
-- APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.
data V1APIServiceSpec = V1APIServiceSpec
  { V1APIServiceSpec -> Maybe ByteArray
v1APIServiceSpecCaBundle :: !(Maybe ByteArray) -- ^ "caBundle" - CABundle is a PEM encoded CA bundle which will be used to validate an API server&#39;s serving certificate. If unspecified, system trust roots on the apiserver are used.
  , V1APIServiceSpec -> Maybe Text
v1APIServiceSpecGroup :: !(Maybe Text) -- ^ "group" - Group is the API group name this server hosts
  , V1APIServiceSpec -> Int
v1APIServiceSpecGroupPriorityMinimum :: !(Int) -- ^ /Required/ "groupPriorityMinimum" - GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object.  (v1.bar before v1.foo) We&#39;d recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s
  , V1APIServiceSpec -> Maybe Bool
v1APIServiceSpecInsecureSkipTlsVerify :: !(Maybe Bool) -- ^ "insecureSkipTLSVerify" - InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged.  You should use the CABundle instead.
  , V1APIServiceSpec -> ApiregistrationV1ServiceReference
v1APIServiceSpecService :: !(ApiregistrationV1ServiceReference) -- ^ /Required/ "service"
  , V1APIServiceSpec -> Maybe Text
v1APIServiceSpecVersion :: !(Maybe Text) -- ^ "version" - Version is the API version this server hosts.  For example, \&quot;v1\&quot;
  , V1APIServiceSpec -> Int
v1APIServiceSpecVersionPriority :: !(Int) -- ^ /Required/ "versionPriority" - VersionPriority controls the ordering of this API version inside of its group.  Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it&#39;s inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \&quot;kube-like\&quot;, it will sort above non \&quot;kube-like\&quot; version strings, which are ordered lexicographically. \&quot;Kube-like\&quot; versions start with a \&quot;v\&quot;, then are followed by a number (the major version), then optionally the string \&quot;alpha\&quot; or \&quot;beta\&quot; and another number (the minor version). These are sorted first by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
  } deriving (Int -> V1APIServiceSpec -> ShowS
[V1APIServiceSpec] -> ShowS
V1APIServiceSpec -> String
(Int -> V1APIServiceSpec -> ShowS)
-> (V1APIServiceSpec -> String)
-> ([V1APIServiceSpec] -> ShowS)
-> Show V1APIServiceSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1APIServiceSpec] -> ShowS
$cshowList :: [V1APIServiceSpec] -> ShowS
show :: V1APIServiceSpec -> String
$cshow :: V1APIServiceSpec -> String
showsPrec :: Int -> V1APIServiceSpec -> ShowS
$cshowsPrec :: Int -> V1APIServiceSpec -> ShowS
P.Show, V1APIServiceSpec -> V1APIServiceSpec -> Bool
(V1APIServiceSpec -> V1APIServiceSpec -> Bool)
-> (V1APIServiceSpec -> V1APIServiceSpec -> Bool)
-> Eq V1APIServiceSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1APIServiceSpec -> V1APIServiceSpec -> Bool
$c/= :: V1APIServiceSpec -> V1APIServiceSpec -> Bool
== :: V1APIServiceSpec -> V1APIServiceSpec -> Bool
$c== :: V1APIServiceSpec -> V1APIServiceSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1APIServiceSpec
instance A.FromJSON V1APIServiceSpec where
  parseJSON :: Value -> Parser V1APIServiceSpec
parseJSON = String
-> (Object -> Parser V1APIServiceSpec)
-> Value
-> Parser V1APIServiceSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1APIServiceSpec" ((Object -> Parser V1APIServiceSpec)
 -> Value -> Parser V1APIServiceSpec)
-> (Object -> Parser V1APIServiceSpec)
-> Value
-> Parser V1APIServiceSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe ByteArray
-> Maybe Text
-> Int
-> Maybe Bool
-> ApiregistrationV1ServiceReference
-> Maybe Text
-> Int
-> V1APIServiceSpec
V1APIServiceSpec
      (Maybe ByteArray
 -> Maybe Text
 -> Int
 -> Maybe Bool
 -> ApiregistrationV1ServiceReference
 -> Maybe Text
 -> Int
 -> V1APIServiceSpec)
-> Parser (Maybe ByteArray)
-> Parser
     (Maybe Text
      -> Int
      -> Maybe Bool
      -> ApiregistrationV1ServiceReference
      -> Maybe Text
      -> Int
      -> V1APIServiceSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe ByteArray)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"caBundle")
      Parser
  (Maybe Text
   -> Int
   -> Maybe Bool
   -> ApiregistrationV1ServiceReference
   -> Maybe Text
   -> Int
   -> V1APIServiceSpec)
-> Parser (Maybe Text)
-> Parser
     (Int
      -> Maybe Bool
      -> ApiregistrationV1ServiceReference
      -> Maybe Text
      -> Int
      -> V1APIServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"group")
      Parser
  (Int
   -> Maybe Bool
   -> ApiregistrationV1ServiceReference
   -> Maybe Text
   -> Int
   -> V1APIServiceSpec)
-> Parser Int
-> Parser
     (Maybe Bool
      -> ApiregistrationV1ServiceReference
      -> Maybe Text
      -> Int
      -> V1APIServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"groupPriorityMinimum")
      Parser
  (Maybe Bool
   -> ApiregistrationV1ServiceReference
   -> Maybe Text
   -> Int
   -> V1APIServiceSpec)
-> Parser (Maybe Bool)
-> Parser
     (ApiregistrationV1ServiceReference
      -> Maybe Text -> Int -> V1APIServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"insecureSkipTLSVerify")
      Parser
  (ApiregistrationV1ServiceReference
   -> Maybe Text -> Int -> V1APIServiceSpec)
-> Parser ApiregistrationV1ServiceReference
-> Parser (Maybe Text -> Int -> V1APIServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser ApiregistrationV1ServiceReference
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"service")
      Parser (Maybe Text -> Int -> V1APIServiceSpec)
-> Parser (Maybe Text) -> Parser (Int -> V1APIServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"version")
      Parser (Int -> V1APIServiceSpec)
-> Parser Int -> Parser V1APIServiceSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"versionPriority")

-- | ToJSON V1APIServiceSpec
instance A.ToJSON V1APIServiceSpec where
  toJSON :: V1APIServiceSpec -> Value
toJSON V1APIServiceSpec {Int
Maybe Bool
Maybe Text
Maybe ByteArray
ApiregistrationV1ServiceReference
v1APIServiceSpecVersionPriority :: Int
v1APIServiceSpecVersion :: Maybe Text
v1APIServiceSpecService :: ApiregistrationV1ServiceReference
v1APIServiceSpecInsecureSkipTlsVerify :: Maybe Bool
v1APIServiceSpecGroupPriorityMinimum :: Int
v1APIServiceSpecGroup :: Maybe Text
v1APIServiceSpecCaBundle :: Maybe ByteArray
v1APIServiceSpecVersionPriority :: V1APIServiceSpec -> Int
v1APIServiceSpecVersion :: V1APIServiceSpec -> Maybe Text
v1APIServiceSpecService :: V1APIServiceSpec -> ApiregistrationV1ServiceReference
v1APIServiceSpecInsecureSkipTlsVerify :: V1APIServiceSpec -> Maybe Bool
v1APIServiceSpecGroupPriorityMinimum :: V1APIServiceSpec -> Int
v1APIServiceSpecGroup :: V1APIServiceSpec -> Maybe Text
v1APIServiceSpecCaBundle :: V1APIServiceSpec -> Maybe ByteArray
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"caBundle" Text -> Maybe ByteArray -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ByteArray
v1APIServiceSpecCaBundle
      , Text
"group" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIServiceSpecGroup
      , Text
"groupPriorityMinimum" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1APIServiceSpecGroupPriorityMinimum
      , Text
"insecureSkipTLSVerify" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1APIServiceSpecInsecureSkipTlsVerify
      , Text
"service" Text -> ApiregistrationV1ServiceReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= ApiregistrationV1ServiceReference
v1APIServiceSpecService
      , Text
"version" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIServiceSpecVersion
      , Text
"versionPriority" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1APIServiceSpecVersionPriority
      ]


-- | Construct a value of type 'V1APIServiceSpec' (by applying it's required fields, if any)
mkV1APIServiceSpec
  :: Int -- ^ 'v1APIServiceSpecGroupPriorityMinimum': GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object.  (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s
  -> ApiregistrationV1ServiceReference -- ^ 'v1APIServiceSpecService' 
  -> Int -- ^ 'v1APIServiceSpecVersionPriority': VersionPriority controls the ordering of this API version inside of its group.  Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
  -> V1APIServiceSpec
mkV1APIServiceSpec :: Int -> ApiregistrationV1ServiceReference -> Int -> V1APIServiceSpec
mkV1APIServiceSpec Int
v1APIServiceSpecGroupPriorityMinimum ApiregistrationV1ServiceReference
v1APIServiceSpecService Int
v1APIServiceSpecVersionPriority =
  V1APIServiceSpec :: Maybe ByteArray
-> Maybe Text
-> Int
-> Maybe Bool
-> ApiregistrationV1ServiceReference
-> Maybe Text
-> Int
-> V1APIServiceSpec
V1APIServiceSpec
  { v1APIServiceSpecCaBundle :: Maybe ByteArray
v1APIServiceSpecCaBundle = Maybe ByteArray
forall a. Maybe a
Nothing
  , v1APIServiceSpecGroup :: Maybe Text
v1APIServiceSpecGroup = Maybe Text
forall a. Maybe a
Nothing
  , Int
v1APIServiceSpecGroupPriorityMinimum :: Int
v1APIServiceSpecGroupPriorityMinimum :: Int
v1APIServiceSpecGroupPriorityMinimum
  , v1APIServiceSpecInsecureSkipTlsVerify :: Maybe Bool
v1APIServiceSpecInsecureSkipTlsVerify = Maybe Bool
forall a. Maybe a
Nothing
  , ApiregistrationV1ServiceReference
v1APIServiceSpecService :: ApiregistrationV1ServiceReference
v1APIServiceSpecService :: ApiregistrationV1ServiceReference
v1APIServiceSpecService
  , v1APIServiceSpecVersion :: Maybe Text
v1APIServiceSpecVersion = Maybe Text
forall a. Maybe a
Nothing
  , Int
v1APIServiceSpecVersionPriority :: Int
v1APIServiceSpecVersionPriority :: Int
v1APIServiceSpecVersionPriority
  }

-- ** V1APIServiceStatus
-- | V1APIServiceStatus
-- APIServiceStatus contains derived information about an API server
data V1APIServiceStatus = V1APIServiceStatus
  { V1APIServiceStatus -> Maybe [V1APIServiceCondition]
v1APIServiceStatusConditions :: !(Maybe [V1APIServiceCondition]) -- ^ "conditions" - Current service state of apiService.
  } deriving (Int -> V1APIServiceStatus -> ShowS
[V1APIServiceStatus] -> ShowS
V1APIServiceStatus -> String
(Int -> V1APIServiceStatus -> ShowS)
-> (V1APIServiceStatus -> String)
-> ([V1APIServiceStatus] -> ShowS)
-> Show V1APIServiceStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1APIServiceStatus] -> ShowS
$cshowList :: [V1APIServiceStatus] -> ShowS
show :: V1APIServiceStatus -> String
$cshow :: V1APIServiceStatus -> String
showsPrec :: Int -> V1APIServiceStatus -> ShowS
$cshowsPrec :: Int -> V1APIServiceStatus -> ShowS
P.Show, V1APIServiceStatus -> V1APIServiceStatus -> Bool
(V1APIServiceStatus -> V1APIServiceStatus -> Bool)
-> (V1APIServiceStatus -> V1APIServiceStatus -> Bool)
-> Eq V1APIServiceStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1APIServiceStatus -> V1APIServiceStatus -> Bool
$c/= :: V1APIServiceStatus -> V1APIServiceStatus -> Bool
== :: V1APIServiceStatus -> V1APIServiceStatus -> Bool
$c== :: V1APIServiceStatus -> V1APIServiceStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1APIServiceStatus
instance A.FromJSON V1APIServiceStatus where
  parseJSON :: Value -> Parser V1APIServiceStatus
parseJSON = String
-> (Object -> Parser V1APIServiceStatus)
-> Value
-> Parser V1APIServiceStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1APIServiceStatus" ((Object -> Parser V1APIServiceStatus)
 -> Value -> Parser V1APIServiceStatus)
-> (Object -> Parser V1APIServiceStatus)
-> Value
-> Parser V1APIServiceStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1APIServiceCondition] -> V1APIServiceStatus
V1APIServiceStatus
      (Maybe [V1APIServiceCondition] -> V1APIServiceStatus)
-> Parser (Maybe [V1APIServiceCondition])
-> Parser V1APIServiceStatus
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1APIServiceCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")

-- | ToJSON V1APIServiceStatus
instance A.ToJSON V1APIServiceStatus where
  toJSON :: V1APIServiceStatus -> Value
toJSON V1APIServiceStatus {Maybe [V1APIServiceCondition]
v1APIServiceStatusConditions :: Maybe [V1APIServiceCondition]
v1APIServiceStatusConditions :: V1APIServiceStatus -> Maybe [V1APIServiceCondition]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"conditions" Text -> Maybe [V1APIServiceCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1APIServiceCondition]
v1APIServiceStatusConditions
      ]


-- | Construct a value of type 'V1APIServiceStatus' (by applying it's required fields, if any)
mkV1APIServiceStatus
  :: V1APIServiceStatus
mkV1APIServiceStatus :: V1APIServiceStatus
mkV1APIServiceStatus =
  V1APIServiceStatus :: Maybe [V1APIServiceCondition] -> V1APIServiceStatus
V1APIServiceStatus
  { v1APIServiceStatusConditions :: Maybe [V1APIServiceCondition]
v1APIServiceStatusConditions = Maybe [V1APIServiceCondition]
forall a. Maybe a
Nothing
  }

-- ** V1APIVersions
-- | V1APIVersions
-- APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.
data V1APIVersions = V1APIVersions
  { V1APIVersions -> Maybe Text
v1APIVersionsApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1APIVersions -> Maybe Text
v1APIVersionsKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1APIVersions -> [V1ServerAddressByClientCIDR]
v1APIVersionsServerAddressByClientCidRs :: !([V1ServerAddressByClientCIDR]) -- ^ /Required/ "serverAddressByClientCIDRs" - a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
  , V1APIVersions -> [Text]
v1APIVersionsVersions :: !([Text]) -- ^ /Required/ "versions" - versions are the api versions that are available.
  } deriving (Int -> V1APIVersions -> ShowS
[V1APIVersions] -> ShowS
V1APIVersions -> String
(Int -> V1APIVersions -> ShowS)
-> (V1APIVersions -> String)
-> ([V1APIVersions] -> ShowS)
-> Show V1APIVersions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1APIVersions] -> ShowS
$cshowList :: [V1APIVersions] -> ShowS
show :: V1APIVersions -> String
$cshow :: V1APIVersions -> String
showsPrec :: Int -> V1APIVersions -> ShowS
$cshowsPrec :: Int -> V1APIVersions -> ShowS
P.Show, V1APIVersions -> V1APIVersions -> Bool
(V1APIVersions -> V1APIVersions -> Bool)
-> (V1APIVersions -> V1APIVersions -> Bool) -> Eq V1APIVersions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1APIVersions -> V1APIVersions -> Bool
$c/= :: V1APIVersions -> V1APIVersions -> Bool
== :: V1APIVersions -> V1APIVersions -> Bool
$c== :: V1APIVersions -> V1APIVersions -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1APIVersions
instance A.FromJSON V1APIVersions where
  parseJSON :: Value -> Parser V1APIVersions
parseJSON = String
-> (Object -> Parser V1APIVersions)
-> Value
-> Parser V1APIVersions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1APIVersions" ((Object -> Parser V1APIVersions) -> Value -> Parser V1APIVersions)
-> (Object -> Parser V1APIVersions)
-> Value
-> Parser V1APIVersions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> [V1ServerAddressByClientCIDR]
-> [Text]
-> V1APIVersions
V1APIVersions
      (Maybe Text
 -> Maybe Text
 -> [V1ServerAddressByClientCIDR]
 -> [Text]
 -> V1APIVersions)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> [V1ServerAddressByClientCIDR] -> [Text] -> V1APIVersions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> [V1ServerAddressByClientCIDR] -> [Text] -> V1APIVersions)
-> Parser (Maybe Text)
-> Parser
     ([V1ServerAddressByClientCIDR] -> [Text] -> V1APIVersions)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser ([V1ServerAddressByClientCIDR] -> [Text] -> V1APIVersions)
-> Parser [V1ServerAddressByClientCIDR]
-> Parser ([Text] -> V1APIVersions)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1ServerAddressByClientCIDR]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"serverAddressByClientCIDRs")
      Parser ([Text] -> V1APIVersions)
-> Parser [Text] -> Parser V1APIVersions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"versions")

-- | ToJSON V1APIVersions
instance A.ToJSON V1APIVersions where
  toJSON :: V1APIVersions -> Value
toJSON V1APIVersions {[Text]
[V1ServerAddressByClientCIDR]
Maybe Text
v1APIVersionsVersions :: [Text]
v1APIVersionsServerAddressByClientCidRs :: [V1ServerAddressByClientCIDR]
v1APIVersionsKind :: Maybe Text
v1APIVersionsApiVersion :: Maybe Text
v1APIVersionsVersions :: V1APIVersions -> [Text]
v1APIVersionsServerAddressByClientCidRs :: V1APIVersions -> [V1ServerAddressByClientCIDR]
v1APIVersionsKind :: V1APIVersions -> Maybe Text
v1APIVersionsApiVersion :: V1APIVersions -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIVersionsApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1APIVersionsKind
      , Text
"serverAddressByClientCIDRs" Text -> [V1ServerAddressByClientCIDR] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1ServerAddressByClientCIDR]
v1APIVersionsServerAddressByClientCidRs
      , Text
"versions" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1APIVersionsVersions
      ]


-- | Construct a value of type 'V1APIVersions' (by applying it's required fields, if any)
mkV1APIVersions
  :: [V1ServerAddressByClientCIDR] -- ^ 'v1APIVersionsServerAddressByClientCidRs': a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
  -> [Text] -- ^ 'v1APIVersionsVersions': versions are the api versions that are available.
  -> V1APIVersions
mkV1APIVersions :: [V1ServerAddressByClientCIDR] -> [Text] -> V1APIVersions
mkV1APIVersions [V1ServerAddressByClientCIDR]
v1APIVersionsServerAddressByClientCidRs [Text]
v1APIVersionsVersions =
  V1APIVersions :: Maybe Text
-> Maybe Text
-> [V1ServerAddressByClientCIDR]
-> [Text]
-> V1APIVersions
V1APIVersions
  { v1APIVersionsApiVersion :: Maybe Text
v1APIVersionsApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1APIVersionsKind :: Maybe Text
v1APIVersionsKind = Maybe Text
forall a. Maybe a
Nothing
  , [V1ServerAddressByClientCIDR]
v1APIVersionsServerAddressByClientCidRs :: [V1ServerAddressByClientCIDR]
v1APIVersionsServerAddressByClientCidRs :: [V1ServerAddressByClientCIDR]
v1APIVersionsServerAddressByClientCidRs
  , [Text]
v1APIVersionsVersions :: [Text]
v1APIVersionsVersions :: [Text]
v1APIVersionsVersions
  }

-- ** V1AWSElasticBlockStoreVolumeSource
-- | V1AWSElasticBlockStoreVolumeSource
-- Represents a Persistent Disk resource in AWS.  An AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.
data V1AWSElasticBlockStoreVolumeSource = V1AWSElasticBlockStoreVolumeSource
  { V1AWSElasticBlockStoreVolumeSource -> Maybe Text
v1AWSElasticBlockStoreVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. Implicitly inferred to be \&quot;ext4\&quot; if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  , V1AWSElasticBlockStoreVolumeSource -> Maybe Int
v1AWSElasticBlockStoreVolumeSourcePartition :: !(Maybe Int) -- ^ "partition" - The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \&quot;1\&quot;. Similarly, the volume partition for /dev/sda is \&quot;0\&quot; (or you can leave the property empty).
  , V1AWSElasticBlockStoreVolumeSource -> Maybe Bool
v1AWSElasticBlockStoreVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Specify \&quot;true\&quot; to force and set the ReadOnly property in VolumeMounts to \&quot;true\&quot;. If omitted, the default is \&quot;false\&quot;. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  , V1AWSElasticBlockStoreVolumeSource -> Text
v1AWSElasticBlockStoreVolumeSourceVolumeId :: !(Text) -- ^ /Required/ "volumeID" - Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  } deriving (Int -> V1AWSElasticBlockStoreVolumeSource -> ShowS
[V1AWSElasticBlockStoreVolumeSource] -> ShowS
V1AWSElasticBlockStoreVolumeSource -> String
(Int -> V1AWSElasticBlockStoreVolumeSource -> ShowS)
-> (V1AWSElasticBlockStoreVolumeSource -> String)
-> ([V1AWSElasticBlockStoreVolumeSource] -> ShowS)
-> Show V1AWSElasticBlockStoreVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1AWSElasticBlockStoreVolumeSource] -> ShowS
$cshowList :: [V1AWSElasticBlockStoreVolumeSource] -> ShowS
show :: V1AWSElasticBlockStoreVolumeSource -> String
$cshow :: V1AWSElasticBlockStoreVolumeSource -> String
showsPrec :: Int -> V1AWSElasticBlockStoreVolumeSource -> ShowS
$cshowsPrec :: Int -> V1AWSElasticBlockStoreVolumeSource -> ShowS
P.Show, V1AWSElasticBlockStoreVolumeSource
-> V1AWSElasticBlockStoreVolumeSource -> Bool
(V1AWSElasticBlockStoreVolumeSource
 -> V1AWSElasticBlockStoreVolumeSource -> Bool)
-> (V1AWSElasticBlockStoreVolumeSource
    -> V1AWSElasticBlockStoreVolumeSource -> Bool)
-> Eq V1AWSElasticBlockStoreVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1AWSElasticBlockStoreVolumeSource
-> V1AWSElasticBlockStoreVolumeSource -> Bool
$c/= :: V1AWSElasticBlockStoreVolumeSource
-> V1AWSElasticBlockStoreVolumeSource -> Bool
== :: V1AWSElasticBlockStoreVolumeSource
-> V1AWSElasticBlockStoreVolumeSource -> Bool
$c== :: V1AWSElasticBlockStoreVolumeSource
-> V1AWSElasticBlockStoreVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1AWSElasticBlockStoreVolumeSource
instance A.FromJSON V1AWSElasticBlockStoreVolumeSource where
  parseJSON :: Value -> Parser V1AWSElasticBlockStoreVolumeSource
parseJSON = String
-> (Object -> Parser V1AWSElasticBlockStoreVolumeSource)
-> Value
-> Parser V1AWSElasticBlockStoreVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1AWSElasticBlockStoreVolumeSource" ((Object -> Parser V1AWSElasticBlockStoreVolumeSource)
 -> Value -> Parser V1AWSElasticBlockStoreVolumeSource)
-> (Object -> Parser V1AWSElasticBlockStoreVolumeSource)
-> Value
-> Parser V1AWSElasticBlockStoreVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Int
-> Maybe Bool
-> Text
-> V1AWSElasticBlockStoreVolumeSource
V1AWSElasticBlockStoreVolumeSource
      (Maybe Text
 -> Maybe Int
 -> Maybe Bool
 -> Text
 -> V1AWSElasticBlockStoreVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Bool -> Text -> V1AWSElasticBlockStoreVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Maybe Int
   -> Maybe Bool -> Text -> V1AWSElasticBlockStoreVolumeSource)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool -> Text -> V1AWSElasticBlockStoreVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"partition")
      Parser (Maybe Bool -> Text -> V1AWSElasticBlockStoreVolumeSource)
-> Parser (Maybe Bool)
-> Parser (Text -> V1AWSElasticBlockStoreVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser (Text -> V1AWSElasticBlockStoreVolumeSource)
-> Parser Text -> Parser V1AWSElasticBlockStoreVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"volumeID")

-- | ToJSON V1AWSElasticBlockStoreVolumeSource
instance A.ToJSON V1AWSElasticBlockStoreVolumeSource where
  toJSON :: V1AWSElasticBlockStoreVolumeSource -> Value
toJSON V1AWSElasticBlockStoreVolumeSource {Maybe Bool
Maybe Int
Maybe Text
Text
v1AWSElasticBlockStoreVolumeSourceVolumeId :: Text
v1AWSElasticBlockStoreVolumeSourceReadOnly :: Maybe Bool
v1AWSElasticBlockStoreVolumeSourcePartition :: Maybe Int
v1AWSElasticBlockStoreVolumeSourceFsType :: Maybe Text
v1AWSElasticBlockStoreVolumeSourceVolumeId :: V1AWSElasticBlockStoreVolumeSource -> Text
v1AWSElasticBlockStoreVolumeSourceReadOnly :: V1AWSElasticBlockStoreVolumeSource -> Maybe Bool
v1AWSElasticBlockStoreVolumeSourcePartition :: V1AWSElasticBlockStoreVolumeSource -> Maybe Int
v1AWSElasticBlockStoreVolumeSourceFsType :: V1AWSElasticBlockStoreVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1AWSElasticBlockStoreVolumeSourceFsType
      , Text
"partition" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1AWSElasticBlockStoreVolumeSourcePartition
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1AWSElasticBlockStoreVolumeSourceReadOnly
      , Text
"volumeID" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1AWSElasticBlockStoreVolumeSourceVolumeId
      ]


-- | Construct a value of type 'V1AWSElasticBlockStoreVolumeSource' (by applying it's required fields, if any)
mkV1AWSElasticBlockStoreVolumeSource
  :: Text -- ^ 'v1AWSElasticBlockStoreVolumeSourceVolumeId': Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
  -> V1AWSElasticBlockStoreVolumeSource
mkV1AWSElasticBlockStoreVolumeSource :: Text -> V1AWSElasticBlockStoreVolumeSource
mkV1AWSElasticBlockStoreVolumeSource Text
v1AWSElasticBlockStoreVolumeSourceVolumeId =
  V1AWSElasticBlockStoreVolumeSource :: Maybe Text
-> Maybe Int
-> Maybe Bool
-> Text
-> V1AWSElasticBlockStoreVolumeSource
V1AWSElasticBlockStoreVolumeSource
  { v1AWSElasticBlockStoreVolumeSourceFsType :: Maybe Text
v1AWSElasticBlockStoreVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , v1AWSElasticBlockStoreVolumeSourcePartition :: Maybe Int
v1AWSElasticBlockStoreVolumeSourcePartition = Maybe Int
forall a. Maybe a
Nothing
  , v1AWSElasticBlockStoreVolumeSourceReadOnly :: Maybe Bool
v1AWSElasticBlockStoreVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , Text
v1AWSElasticBlockStoreVolumeSourceVolumeId :: Text
v1AWSElasticBlockStoreVolumeSourceVolumeId :: Text
v1AWSElasticBlockStoreVolumeSourceVolumeId
  }

-- ** V1Affinity
-- | V1Affinity
-- Affinity is a group of affinity scheduling rules.
data V1Affinity = V1Affinity
  { V1Affinity -> Maybe V1NodeAffinity
v1AffinityNodeAffinity :: !(Maybe V1NodeAffinity) -- ^ "nodeAffinity"
  , V1Affinity -> Maybe V1PodAffinity
v1AffinityPodAffinity :: !(Maybe V1PodAffinity) -- ^ "podAffinity"
  , V1Affinity -> Maybe V1PodAntiAffinity
v1AffinityPodAntiAffinity :: !(Maybe V1PodAntiAffinity) -- ^ "podAntiAffinity"
  } deriving (Int -> V1Affinity -> ShowS
[V1Affinity] -> ShowS
V1Affinity -> String
(Int -> V1Affinity -> ShowS)
-> (V1Affinity -> String)
-> ([V1Affinity] -> ShowS)
-> Show V1Affinity
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Affinity] -> ShowS
$cshowList :: [V1Affinity] -> ShowS
show :: V1Affinity -> String
$cshow :: V1Affinity -> String
showsPrec :: Int -> V1Affinity -> ShowS
$cshowsPrec :: Int -> V1Affinity -> ShowS
P.Show, V1Affinity -> V1Affinity -> Bool
(V1Affinity -> V1Affinity -> Bool)
-> (V1Affinity -> V1Affinity -> Bool) -> Eq V1Affinity
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Affinity -> V1Affinity -> Bool
$c/= :: V1Affinity -> V1Affinity -> Bool
== :: V1Affinity -> V1Affinity -> Bool
$c== :: V1Affinity -> V1Affinity -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Affinity
instance A.FromJSON V1Affinity where
  parseJSON :: Value -> Parser V1Affinity
parseJSON = String
-> (Object -> Parser V1Affinity) -> Value -> Parser V1Affinity
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Affinity" ((Object -> Parser V1Affinity) -> Value -> Parser V1Affinity)
-> (Object -> Parser V1Affinity) -> Value -> Parser V1Affinity
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1NodeAffinity
-> Maybe V1PodAffinity -> Maybe V1PodAntiAffinity -> V1Affinity
V1Affinity
      (Maybe V1NodeAffinity
 -> Maybe V1PodAffinity -> Maybe V1PodAntiAffinity -> V1Affinity)
-> Parser (Maybe V1NodeAffinity)
-> Parser
     (Maybe V1PodAffinity -> Maybe V1PodAntiAffinity -> V1Affinity)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1NodeAffinity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nodeAffinity")
      Parser
  (Maybe V1PodAffinity -> Maybe V1PodAntiAffinity -> V1Affinity)
-> Parser (Maybe V1PodAffinity)
-> Parser (Maybe V1PodAntiAffinity -> V1Affinity)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PodAffinity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"podAffinity")
      Parser (Maybe V1PodAntiAffinity -> V1Affinity)
-> Parser (Maybe V1PodAntiAffinity) -> Parser V1Affinity
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PodAntiAffinity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"podAntiAffinity")

-- | ToJSON V1Affinity
instance A.ToJSON V1Affinity where
  toJSON :: V1Affinity -> Value
toJSON V1Affinity {Maybe V1PodAntiAffinity
Maybe V1PodAffinity
Maybe V1NodeAffinity
v1AffinityPodAntiAffinity :: Maybe V1PodAntiAffinity
v1AffinityPodAffinity :: Maybe V1PodAffinity
v1AffinityNodeAffinity :: Maybe V1NodeAffinity
v1AffinityPodAntiAffinity :: V1Affinity -> Maybe V1PodAntiAffinity
v1AffinityPodAffinity :: V1Affinity -> Maybe V1PodAffinity
v1AffinityNodeAffinity :: V1Affinity -> Maybe V1NodeAffinity
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"nodeAffinity" Text -> Maybe V1NodeAffinity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NodeAffinity
v1AffinityNodeAffinity
      , Text
"podAffinity" Text -> Maybe V1PodAffinity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PodAffinity
v1AffinityPodAffinity
      , Text
"podAntiAffinity" Text -> Maybe V1PodAntiAffinity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PodAntiAffinity
v1AffinityPodAntiAffinity
      ]


-- | Construct a value of type 'V1Affinity' (by applying it's required fields, if any)
mkV1Affinity
  :: V1Affinity
mkV1Affinity :: V1Affinity
mkV1Affinity =
  V1Affinity :: Maybe V1NodeAffinity
-> Maybe V1PodAffinity -> Maybe V1PodAntiAffinity -> V1Affinity
V1Affinity
  { v1AffinityNodeAffinity :: Maybe V1NodeAffinity
v1AffinityNodeAffinity = Maybe V1NodeAffinity
forall a. Maybe a
Nothing
  , v1AffinityPodAffinity :: Maybe V1PodAffinity
v1AffinityPodAffinity = Maybe V1PodAffinity
forall a. Maybe a
Nothing
  , v1AffinityPodAntiAffinity :: Maybe V1PodAntiAffinity
v1AffinityPodAntiAffinity = Maybe V1PodAntiAffinity
forall a. Maybe a
Nothing
  }

-- ** V1AggregationRule
-- | V1AggregationRule
-- AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole
data V1AggregationRule = V1AggregationRule
  { V1AggregationRule -> Maybe [V1LabelSelector]
v1AggregationRuleClusterRoleSelectors :: !(Maybe [V1LabelSelector]) -- ^ "clusterRoleSelectors" - ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole&#39;s permissions will be added
  } deriving (Int -> V1AggregationRule -> ShowS
[V1AggregationRule] -> ShowS
V1AggregationRule -> String
(Int -> V1AggregationRule -> ShowS)
-> (V1AggregationRule -> String)
-> ([V1AggregationRule] -> ShowS)
-> Show V1AggregationRule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1AggregationRule] -> ShowS
$cshowList :: [V1AggregationRule] -> ShowS
show :: V1AggregationRule -> String
$cshow :: V1AggregationRule -> String
showsPrec :: Int -> V1AggregationRule -> ShowS
$cshowsPrec :: Int -> V1AggregationRule -> ShowS
P.Show, V1AggregationRule -> V1AggregationRule -> Bool
(V1AggregationRule -> V1AggregationRule -> Bool)
-> (V1AggregationRule -> V1AggregationRule -> Bool)
-> Eq V1AggregationRule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1AggregationRule -> V1AggregationRule -> Bool
$c/= :: V1AggregationRule -> V1AggregationRule -> Bool
== :: V1AggregationRule -> V1AggregationRule -> Bool
$c== :: V1AggregationRule -> V1AggregationRule -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1AggregationRule
instance A.FromJSON V1AggregationRule where
  parseJSON :: Value -> Parser V1AggregationRule
parseJSON = String
-> (Object -> Parser V1AggregationRule)
-> Value
-> Parser V1AggregationRule
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1AggregationRule" ((Object -> Parser V1AggregationRule)
 -> Value -> Parser V1AggregationRule)
-> (Object -> Parser V1AggregationRule)
-> Value
-> Parser V1AggregationRule
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1LabelSelector] -> V1AggregationRule
V1AggregationRule
      (Maybe [V1LabelSelector] -> V1AggregationRule)
-> Parser (Maybe [V1LabelSelector]) -> Parser V1AggregationRule
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1LabelSelector])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"clusterRoleSelectors")

-- | ToJSON V1AggregationRule
instance A.ToJSON V1AggregationRule where
  toJSON :: V1AggregationRule -> Value
toJSON V1AggregationRule {Maybe [V1LabelSelector]
v1AggregationRuleClusterRoleSelectors :: Maybe [V1LabelSelector]
v1AggregationRuleClusterRoleSelectors :: V1AggregationRule -> Maybe [V1LabelSelector]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"clusterRoleSelectors" Text -> Maybe [V1LabelSelector] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1LabelSelector]
v1AggregationRuleClusterRoleSelectors
      ]


-- | Construct a value of type 'V1AggregationRule' (by applying it's required fields, if any)
mkV1AggregationRule
  :: V1AggregationRule
mkV1AggregationRule :: V1AggregationRule
mkV1AggregationRule =
  V1AggregationRule :: Maybe [V1LabelSelector] -> V1AggregationRule
V1AggregationRule
  { v1AggregationRuleClusterRoleSelectors :: Maybe [V1LabelSelector]
v1AggregationRuleClusterRoleSelectors = Maybe [V1LabelSelector]
forall a. Maybe a
Nothing
  }

-- ** V1AttachedVolume
-- | V1AttachedVolume
-- AttachedVolume describes a volume attached to a node
data V1AttachedVolume = V1AttachedVolume
  { V1AttachedVolume -> Text
v1AttachedVolumeDevicePath :: !(Text) -- ^ /Required/ "devicePath" - DevicePath represents the device path where the volume should be available
  , V1AttachedVolume -> Text
v1AttachedVolumeName :: !(Text) -- ^ /Required/ "name" - Name of the attached volume
  } deriving (Int -> V1AttachedVolume -> ShowS
[V1AttachedVolume] -> ShowS
V1AttachedVolume -> String
(Int -> V1AttachedVolume -> ShowS)
-> (V1AttachedVolume -> String)
-> ([V1AttachedVolume] -> ShowS)
-> Show V1AttachedVolume
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1AttachedVolume] -> ShowS
$cshowList :: [V1AttachedVolume] -> ShowS
show :: V1AttachedVolume -> String
$cshow :: V1AttachedVolume -> String
showsPrec :: Int -> V1AttachedVolume -> ShowS
$cshowsPrec :: Int -> V1AttachedVolume -> ShowS
P.Show, V1AttachedVolume -> V1AttachedVolume -> Bool
(V1AttachedVolume -> V1AttachedVolume -> Bool)
-> (V1AttachedVolume -> V1AttachedVolume -> Bool)
-> Eq V1AttachedVolume
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1AttachedVolume -> V1AttachedVolume -> Bool
$c/= :: V1AttachedVolume -> V1AttachedVolume -> Bool
== :: V1AttachedVolume -> V1AttachedVolume -> Bool
$c== :: V1AttachedVolume -> V1AttachedVolume -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1AttachedVolume
instance A.FromJSON V1AttachedVolume where
  parseJSON :: Value -> Parser V1AttachedVolume
parseJSON = String
-> (Object -> Parser V1AttachedVolume)
-> Value
-> Parser V1AttachedVolume
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1AttachedVolume" ((Object -> Parser V1AttachedVolume)
 -> Value -> Parser V1AttachedVolume)
-> (Object -> Parser V1AttachedVolume)
-> Value
-> Parser V1AttachedVolume
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> V1AttachedVolume
V1AttachedVolume
      (Text -> Text -> V1AttachedVolume)
-> Parser Text -> Parser (Text -> V1AttachedVolume)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"devicePath")
      Parser (Text -> V1AttachedVolume)
-> Parser Text -> Parser V1AttachedVolume
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")

-- | ToJSON V1AttachedVolume
instance A.ToJSON V1AttachedVolume where
  toJSON :: V1AttachedVolume -> Value
toJSON V1AttachedVolume {Text
v1AttachedVolumeName :: Text
v1AttachedVolumeDevicePath :: Text
v1AttachedVolumeName :: V1AttachedVolume -> Text
v1AttachedVolumeDevicePath :: V1AttachedVolume -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"devicePath" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1AttachedVolumeDevicePath
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1AttachedVolumeName
      ]


-- | Construct a value of type 'V1AttachedVolume' (by applying it's required fields, if any)
mkV1AttachedVolume
  :: Text -- ^ 'v1AttachedVolumeDevicePath': DevicePath represents the device path where the volume should be available
  -> Text -- ^ 'v1AttachedVolumeName': Name of the attached volume
  -> V1AttachedVolume
mkV1AttachedVolume :: Text -> Text -> V1AttachedVolume
mkV1AttachedVolume Text
v1AttachedVolumeDevicePath Text
v1AttachedVolumeName =
  V1AttachedVolume :: Text -> Text -> V1AttachedVolume
V1AttachedVolume
  { Text
v1AttachedVolumeDevicePath :: Text
v1AttachedVolumeDevicePath :: Text
v1AttachedVolumeDevicePath
  , Text
v1AttachedVolumeName :: Text
v1AttachedVolumeName :: Text
v1AttachedVolumeName
  }

-- ** V1AzureDiskVolumeSource
-- | V1AzureDiskVolumeSource
-- AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
data V1AzureDiskVolumeSource = V1AzureDiskVolumeSource
  { V1AzureDiskVolumeSource -> Maybe Text
v1AzureDiskVolumeSourceCachingMode :: !(Maybe Text) -- ^ "cachingMode" - Host Caching mode: None, Read Only, Read Write.
  , V1AzureDiskVolumeSource -> Text
v1AzureDiskVolumeSourceDiskName :: !(Text) -- ^ /Required/ "diskName" - The Name of the data disk in the blob storage
  , V1AzureDiskVolumeSource -> Text
v1AzureDiskVolumeSourceDiskUri :: !(Text) -- ^ /Required/ "diskURI" - The URI the data disk in the blob storage
  , V1AzureDiskVolumeSource -> Maybe Text
v1AzureDiskVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. Implicitly inferred to be \&quot;ext4\&quot; if unspecified.
  , V1AzureDiskVolumeSource -> Maybe Text
v1AzureDiskVolumeSourceKind :: !(Maybe Text) -- ^ "kind" - Expected values Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared
  , V1AzureDiskVolumeSource -> Maybe Bool
v1AzureDiskVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
  } deriving (Int -> V1AzureDiskVolumeSource -> ShowS
[V1AzureDiskVolumeSource] -> ShowS
V1AzureDiskVolumeSource -> String
(Int -> V1AzureDiskVolumeSource -> ShowS)
-> (V1AzureDiskVolumeSource -> String)
-> ([V1AzureDiskVolumeSource] -> ShowS)
-> Show V1AzureDiskVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1AzureDiskVolumeSource] -> ShowS
$cshowList :: [V1AzureDiskVolumeSource] -> ShowS
show :: V1AzureDiskVolumeSource -> String
$cshow :: V1AzureDiskVolumeSource -> String
showsPrec :: Int -> V1AzureDiskVolumeSource -> ShowS
$cshowsPrec :: Int -> V1AzureDiskVolumeSource -> ShowS
P.Show, V1AzureDiskVolumeSource -> V1AzureDiskVolumeSource -> Bool
(V1AzureDiskVolumeSource -> V1AzureDiskVolumeSource -> Bool)
-> (V1AzureDiskVolumeSource -> V1AzureDiskVolumeSource -> Bool)
-> Eq V1AzureDiskVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1AzureDiskVolumeSource -> V1AzureDiskVolumeSource -> Bool
$c/= :: V1AzureDiskVolumeSource -> V1AzureDiskVolumeSource -> Bool
== :: V1AzureDiskVolumeSource -> V1AzureDiskVolumeSource -> Bool
$c== :: V1AzureDiskVolumeSource -> V1AzureDiskVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1AzureDiskVolumeSource
instance A.FromJSON V1AzureDiskVolumeSource where
  parseJSON :: Value -> Parser V1AzureDiskVolumeSource
parseJSON = String
-> (Object -> Parser V1AzureDiskVolumeSource)
-> Value
-> Parser V1AzureDiskVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1AzureDiskVolumeSource" ((Object -> Parser V1AzureDiskVolumeSource)
 -> Value -> Parser V1AzureDiskVolumeSource)
-> (Object -> Parser V1AzureDiskVolumeSource)
-> Value
-> Parser V1AzureDiskVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Text
-> Text
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> V1AzureDiskVolumeSource
V1AzureDiskVolumeSource
      (Maybe Text
 -> Text
 -> Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> V1AzureDiskVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> V1AzureDiskVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"cachingMode")
      Parser
  (Text
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> V1AzureDiskVolumeSource)
-> Parser Text
-> Parser
     (Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> V1AzureDiskVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"diskName")
      Parser
  (Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> V1AzureDiskVolumeSource)
-> Parser Text
-> Parser
     (Maybe Text -> Maybe Text -> Maybe Bool -> V1AzureDiskVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"diskURI")
      Parser
  (Maybe Text -> Maybe Text -> Maybe Bool -> V1AzureDiskVolumeSource)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Bool -> V1AzureDiskVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser (Maybe Text -> Maybe Bool -> V1AzureDiskVolumeSource)
-> Parser (Maybe Text)
-> Parser (Maybe Bool -> V1AzureDiskVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe Bool -> V1AzureDiskVolumeSource)
-> Parser (Maybe Bool) -> Parser V1AzureDiskVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")

-- | ToJSON V1AzureDiskVolumeSource
instance A.ToJSON V1AzureDiskVolumeSource where
  toJSON :: V1AzureDiskVolumeSource -> Value
toJSON V1AzureDiskVolumeSource {Maybe Bool
Maybe Text
Text
v1AzureDiskVolumeSourceReadOnly :: Maybe Bool
v1AzureDiskVolumeSourceKind :: Maybe Text
v1AzureDiskVolumeSourceFsType :: Maybe Text
v1AzureDiskVolumeSourceDiskUri :: Text
v1AzureDiskVolumeSourceDiskName :: Text
v1AzureDiskVolumeSourceCachingMode :: Maybe Text
v1AzureDiskVolumeSourceReadOnly :: V1AzureDiskVolumeSource -> Maybe Bool
v1AzureDiskVolumeSourceKind :: V1AzureDiskVolumeSource -> Maybe Text
v1AzureDiskVolumeSourceFsType :: V1AzureDiskVolumeSource -> Maybe Text
v1AzureDiskVolumeSourceDiskUri :: V1AzureDiskVolumeSource -> Text
v1AzureDiskVolumeSourceDiskName :: V1AzureDiskVolumeSource -> Text
v1AzureDiskVolumeSourceCachingMode :: V1AzureDiskVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"cachingMode" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1AzureDiskVolumeSourceCachingMode
      , Text
"diskName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1AzureDiskVolumeSourceDiskName
      , Text
"diskURI" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1AzureDiskVolumeSourceDiskUri
      , Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1AzureDiskVolumeSourceFsType
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1AzureDiskVolumeSourceKind
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1AzureDiskVolumeSourceReadOnly
      ]


-- | Construct a value of type 'V1AzureDiskVolumeSource' (by applying it's required fields, if any)
mkV1AzureDiskVolumeSource
  :: Text -- ^ 'v1AzureDiskVolumeSourceDiskName': The Name of the data disk in the blob storage
  -> Text -- ^ 'v1AzureDiskVolumeSourceDiskUri': The URI the data disk in the blob storage
  -> V1AzureDiskVolumeSource
mkV1AzureDiskVolumeSource :: Text -> Text -> V1AzureDiskVolumeSource
mkV1AzureDiskVolumeSource Text
v1AzureDiskVolumeSourceDiskName Text
v1AzureDiskVolumeSourceDiskUri =
  V1AzureDiskVolumeSource :: Maybe Text
-> Text
-> Text
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> V1AzureDiskVolumeSource
V1AzureDiskVolumeSource
  { v1AzureDiskVolumeSourceCachingMode :: Maybe Text
v1AzureDiskVolumeSourceCachingMode = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1AzureDiskVolumeSourceDiskName :: Text
v1AzureDiskVolumeSourceDiskName :: Text
v1AzureDiskVolumeSourceDiskName
  , Text
v1AzureDiskVolumeSourceDiskUri :: Text
v1AzureDiskVolumeSourceDiskUri :: Text
v1AzureDiskVolumeSourceDiskUri
  , v1AzureDiskVolumeSourceFsType :: Maybe Text
v1AzureDiskVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , v1AzureDiskVolumeSourceKind :: Maybe Text
v1AzureDiskVolumeSourceKind = Maybe Text
forall a. Maybe a
Nothing
  , v1AzureDiskVolumeSourceReadOnly :: Maybe Bool
v1AzureDiskVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1AzureFilePersistentVolumeSource
-- | V1AzureFilePersistentVolumeSource
-- AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
data V1AzureFilePersistentVolumeSource = V1AzureFilePersistentVolumeSource
  { V1AzureFilePersistentVolumeSource -> Maybe Bool
v1AzureFilePersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
  , V1AzureFilePersistentVolumeSource -> Text
v1AzureFilePersistentVolumeSourceSecretName :: !(Text) -- ^ /Required/ "secretName" - the name of secret that contains Azure Storage Account Name and Key
  , V1AzureFilePersistentVolumeSource -> Maybe Text
v1AzureFilePersistentVolumeSourceSecretNamespace :: !(Maybe Text) -- ^ "secretNamespace" - the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod
  , V1AzureFilePersistentVolumeSource -> Text
v1AzureFilePersistentVolumeSourceShareName :: !(Text) -- ^ /Required/ "shareName" - Share Name
  } deriving (Int -> V1AzureFilePersistentVolumeSource -> ShowS
[V1AzureFilePersistentVolumeSource] -> ShowS
V1AzureFilePersistentVolumeSource -> String
(Int -> V1AzureFilePersistentVolumeSource -> ShowS)
-> (V1AzureFilePersistentVolumeSource -> String)
-> ([V1AzureFilePersistentVolumeSource] -> ShowS)
-> Show V1AzureFilePersistentVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1AzureFilePersistentVolumeSource] -> ShowS
$cshowList :: [V1AzureFilePersistentVolumeSource] -> ShowS
show :: V1AzureFilePersistentVolumeSource -> String
$cshow :: V1AzureFilePersistentVolumeSource -> String
showsPrec :: Int -> V1AzureFilePersistentVolumeSource -> ShowS
$cshowsPrec :: Int -> V1AzureFilePersistentVolumeSource -> ShowS
P.Show, V1AzureFilePersistentVolumeSource
-> V1AzureFilePersistentVolumeSource -> Bool
(V1AzureFilePersistentVolumeSource
 -> V1AzureFilePersistentVolumeSource -> Bool)
-> (V1AzureFilePersistentVolumeSource
    -> V1AzureFilePersistentVolumeSource -> Bool)
-> Eq V1AzureFilePersistentVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1AzureFilePersistentVolumeSource
-> V1AzureFilePersistentVolumeSource -> Bool
$c/= :: V1AzureFilePersistentVolumeSource
-> V1AzureFilePersistentVolumeSource -> Bool
== :: V1AzureFilePersistentVolumeSource
-> V1AzureFilePersistentVolumeSource -> Bool
$c== :: V1AzureFilePersistentVolumeSource
-> V1AzureFilePersistentVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1AzureFilePersistentVolumeSource
instance A.FromJSON V1AzureFilePersistentVolumeSource where
  parseJSON :: Value -> Parser V1AzureFilePersistentVolumeSource
parseJSON = String
-> (Object -> Parser V1AzureFilePersistentVolumeSource)
-> Value
-> Parser V1AzureFilePersistentVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1AzureFilePersistentVolumeSource" ((Object -> Parser V1AzureFilePersistentVolumeSource)
 -> Value -> Parser V1AzureFilePersistentVolumeSource)
-> (Object -> Parser V1AzureFilePersistentVolumeSource)
-> Value
-> Parser V1AzureFilePersistentVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Bool
-> Text -> Maybe Text -> Text -> V1AzureFilePersistentVolumeSource
V1AzureFilePersistentVolumeSource
      (Maybe Bool
 -> Text -> Maybe Text -> Text -> V1AzureFilePersistentVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Text -> Maybe Text -> Text -> V1AzureFilePersistentVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser
  (Text -> Maybe Text -> Text -> V1AzureFilePersistentVolumeSource)
-> Parser Text
-> Parser (Maybe Text -> Text -> V1AzureFilePersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"secretName")
      Parser (Maybe Text -> Text -> V1AzureFilePersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser (Text -> V1AzureFilePersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretNamespace")
      Parser (Text -> V1AzureFilePersistentVolumeSource)
-> Parser Text -> Parser V1AzureFilePersistentVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"shareName")

-- | ToJSON V1AzureFilePersistentVolumeSource
instance A.ToJSON V1AzureFilePersistentVolumeSource where
  toJSON :: V1AzureFilePersistentVolumeSource -> Value
toJSON V1AzureFilePersistentVolumeSource {Maybe Bool
Maybe Text
Text
v1AzureFilePersistentVolumeSourceShareName :: Text
v1AzureFilePersistentVolumeSourceSecretNamespace :: Maybe Text
v1AzureFilePersistentVolumeSourceSecretName :: Text
v1AzureFilePersistentVolumeSourceReadOnly :: Maybe Bool
v1AzureFilePersistentVolumeSourceShareName :: V1AzureFilePersistentVolumeSource -> Text
v1AzureFilePersistentVolumeSourceSecretNamespace :: V1AzureFilePersistentVolumeSource -> Maybe Text
v1AzureFilePersistentVolumeSourceSecretName :: V1AzureFilePersistentVolumeSource -> Text
v1AzureFilePersistentVolumeSourceReadOnly :: V1AzureFilePersistentVolumeSource -> Maybe Bool
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1AzureFilePersistentVolumeSourceReadOnly
      , Text
"secretName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1AzureFilePersistentVolumeSourceSecretName
      , Text
"secretNamespace" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1AzureFilePersistentVolumeSourceSecretNamespace
      , Text
"shareName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1AzureFilePersistentVolumeSourceShareName
      ]


-- | Construct a value of type 'V1AzureFilePersistentVolumeSource' (by applying it's required fields, if any)
mkV1AzureFilePersistentVolumeSource
  :: Text -- ^ 'v1AzureFilePersistentVolumeSourceSecretName': the name of secret that contains Azure Storage Account Name and Key
  -> Text -- ^ 'v1AzureFilePersistentVolumeSourceShareName': Share Name
  -> V1AzureFilePersistentVolumeSource
mkV1AzureFilePersistentVolumeSource :: Text -> Text -> V1AzureFilePersistentVolumeSource
mkV1AzureFilePersistentVolumeSource Text
v1AzureFilePersistentVolumeSourceSecretName Text
v1AzureFilePersistentVolumeSourceShareName =
  V1AzureFilePersistentVolumeSource :: Maybe Bool
-> Text -> Maybe Text -> Text -> V1AzureFilePersistentVolumeSource
V1AzureFilePersistentVolumeSource
  { v1AzureFilePersistentVolumeSourceReadOnly :: Maybe Bool
v1AzureFilePersistentVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , Text
v1AzureFilePersistentVolumeSourceSecretName :: Text
v1AzureFilePersistentVolumeSourceSecretName :: Text
v1AzureFilePersistentVolumeSourceSecretName
  , v1AzureFilePersistentVolumeSourceSecretNamespace :: Maybe Text
v1AzureFilePersistentVolumeSourceSecretNamespace = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1AzureFilePersistentVolumeSourceShareName :: Text
v1AzureFilePersistentVolumeSourceShareName :: Text
v1AzureFilePersistentVolumeSourceShareName
  }

-- ** V1AzureFileVolumeSource
-- | V1AzureFileVolumeSource
-- AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
data V1AzureFileVolumeSource = V1AzureFileVolumeSource
  { V1AzureFileVolumeSource -> Maybe Bool
v1AzureFileVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
  , V1AzureFileVolumeSource -> Text
v1AzureFileVolumeSourceSecretName :: !(Text) -- ^ /Required/ "secretName" - the name of secret that contains Azure Storage Account Name and Key
  , V1AzureFileVolumeSource -> Text
v1AzureFileVolumeSourceShareName :: !(Text) -- ^ /Required/ "shareName" - Share Name
  } deriving (Int -> V1AzureFileVolumeSource -> ShowS
[V1AzureFileVolumeSource] -> ShowS
V1AzureFileVolumeSource -> String
(Int -> V1AzureFileVolumeSource -> ShowS)
-> (V1AzureFileVolumeSource -> String)
-> ([V1AzureFileVolumeSource] -> ShowS)
-> Show V1AzureFileVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1AzureFileVolumeSource] -> ShowS
$cshowList :: [V1AzureFileVolumeSource] -> ShowS
show :: V1AzureFileVolumeSource -> String
$cshow :: V1AzureFileVolumeSource -> String
showsPrec :: Int -> V1AzureFileVolumeSource -> ShowS
$cshowsPrec :: Int -> V1AzureFileVolumeSource -> ShowS
P.Show, V1AzureFileVolumeSource -> V1AzureFileVolumeSource -> Bool
(V1AzureFileVolumeSource -> V1AzureFileVolumeSource -> Bool)
-> (V1AzureFileVolumeSource -> V1AzureFileVolumeSource -> Bool)
-> Eq V1AzureFileVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1AzureFileVolumeSource -> V1AzureFileVolumeSource -> Bool
$c/= :: V1AzureFileVolumeSource -> V1AzureFileVolumeSource -> Bool
== :: V1AzureFileVolumeSource -> V1AzureFileVolumeSource -> Bool
$c== :: V1AzureFileVolumeSource -> V1AzureFileVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1AzureFileVolumeSource
instance A.FromJSON V1AzureFileVolumeSource where
  parseJSON :: Value -> Parser V1AzureFileVolumeSource
parseJSON = String
-> (Object -> Parser V1AzureFileVolumeSource)
-> Value
-> Parser V1AzureFileVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1AzureFileVolumeSource" ((Object -> Parser V1AzureFileVolumeSource)
 -> Value -> Parser V1AzureFileVolumeSource)
-> (Object -> Parser V1AzureFileVolumeSource)
-> Value
-> Parser V1AzureFileVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Bool -> Text -> Text -> V1AzureFileVolumeSource
V1AzureFileVolumeSource
      (Maybe Bool -> Text -> Text -> V1AzureFileVolumeSource)
-> Parser (Maybe Bool)
-> Parser (Text -> Text -> V1AzureFileVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser (Text -> Text -> V1AzureFileVolumeSource)
-> Parser Text -> Parser (Text -> V1AzureFileVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"secretName")
      Parser (Text -> V1AzureFileVolumeSource)
-> Parser Text -> Parser V1AzureFileVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"shareName")

-- | ToJSON V1AzureFileVolumeSource
instance A.ToJSON V1AzureFileVolumeSource where
  toJSON :: V1AzureFileVolumeSource -> Value
toJSON V1AzureFileVolumeSource {Maybe Bool
Text
v1AzureFileVolumeSourceShareName :: Text
v1AzureFileVolumeSourceSecretName :: Text
v1AzureFileVolumeSourceReadOnly :: Maybe Bool
v1AzureFileVolumeSourceShareName :: V1AzureFileVolumeSource -> Text
v1AzureFileVolumeSourceSecretName :: V1AzureFileVolumeSource -> Text
v1AzureFileVolumeSourceReadOnly :: V1AzureFileVolumeSource -> Maybe Bool
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1AzureFileVolumeSourceReadOnly
      , Text
"secretName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1AzureFileVolumeSourceSecretName
      , Text
"shareName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1AzureFileVolumeSourceShareName
      ]


-- | Construct a value of type 'V1AzureFileVolumeSource' (by applying it's required fields, if any)
mkV1AzureFileVolumeSource
  :: Text -- ^ 'v1AzureFileVolumeSourceSecretName': the name of secret that contains Azure Storage Account Name and Key
  -> Text -- ^ 'v1AzureFileVolumeSourceShareName': Share Name
  -> V1AzureFileVolumeSource
mkV1AzureFileVolumeSource :: Text -> Text -> V1AzureFileVolumeSource
mkV1AzureFileVolumeSource Text
v1AzureFileVolumeSourceSecretName Text
v1AzureFileVolumeSourceShareName =
  V1AzureFileVolumeSource :: Maybe Bool -> Text -> Text -> V1AzureFileVolumeSource
V1AzureFileVolumeSource
  { v1AzureFileVolumeSourceReadOnly :: Maybe Bool
v1AzureFileVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , Text
v1AzureFileVolumeSourceSecretName :: Text
v1AzureFileVolumeSourceSecretName :: Text
v1AzureFileVolumeSourceSecretName
  , Text
v1AzureFileVolumeSourceShareName :: Text
v1AzureFileVolumeSourceShareName :: Text
v1AzureFileVolumeSourceShareName
  }

-- ** V1Binding
-- | V1Binding
-- Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead.
data V1Binding = V1Binding
  { V1Binding -> Maybe Text
v1BindingApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1Binding -> Maybe Text
v1BindingKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1Binding -> Maybe V1ObjectMeta
v1BindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1Binding -> V1ObjectReference
v1BindingTarget :: !(V1ObjectReference) -- ^ /Required/ "target"
  } deriving (Int -> V1Binding -> ShowS
[V1Binding] -> ShowS
V1Binding -> String
(Int -> V1Binding -> ShowS)
-> (V1Binding -> String)
-> ([V1Binding] -> ShowS)
-> Show V1Binding
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Binding] -> ShowS
$cshowList :: [V1Binding] -> ShowS
show :: V1Binding -> String
$cshow :: V1Binding -> String
showsPrec :: Int -> V1Binding -> ShowS
$cshowsPrec :: Int -> V1Binding -> ShowS
P.Show, V1Binding -> V1Binding -> Bool
(V1Binding -> V1Binding -> Bool)
-> (V1Binding -> V1Binding -> Bool) -> Eq V1Binding
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Binding -> V1Binding -> Bool
$c/= :: V1Binding -> V1Binding -> Bool
== :: V1Binding -> V1Binding -> Bool
$c== :: V1Binding -> V1Binding -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Binding
instance A.FromJSON V1Binding where
  parseJSON :: Value -> Parser V1Binding
parseJSON = String -> (Object -> Parser V1Binding) -> Value -> Parser V1Binding
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Binding" ((Object -> Parser V1Binding) -> Value -> Parser V1Binding)
-> (Object -> Parser V1Binding) -> Value -> Parser V1Binding
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1ObjectReference
-> V1Binding
V1Binding
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1ObjectReference
 -> V1Binding)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta -> V1ObjectReference -> V1Binding)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta -> V1ObjectReference -> V1Binding)
-> Parser (Maybe Text)
-> Parser (Maybe V1ObjectMeta -> V1ObjectReference -> V1Binding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ObjectMeta -> V1ObjectReference -> V1Binding)
-> Parser (Maybe V1ObjectMeta)
-> Parser (V1ObjectReference -> V1Binding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (V1ObjectReference -> V1Binding)
-> Parser V1ObjectReference -> Parser V1Binding
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1ObjectReference
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"target")

-- | ToJSON V1Binding
instance A.ToJSON V1Binding where
  toJSON :: V1Binding -> Value
toJSON V1Binding {Maybe Text
Maybe V1ObjectMeta
V1ObjectReference
v1BindingTarget :: V1ObjectReference
v1BindingMetadata :: Maybe V1ObjectMeta
v1BindingKind :: Maybe Text
v1BindingApiVersion :: Maybe Text
v1BindingTarget :: V1Binding -> V1ObjectReference
v1BindingMetadata :: V1Binding -> Maybe V1ObjectMeta
v1BindingKind :: V1Binding -> Maybe Text
v1BindingApiVersion :: V1Binding -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1BindingApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1BindingKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1BindingMetadata
      , Text
"target" Text -> V1ObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1ObjectReference
v1BindingTarget
      ]


-- | Construct a value of type 'V1Binding' (by applying it's required fields, if any)
mkV1Binding
  :: V1ObjectReference -- ^ 'v1BindingTarget' 
  -> V1Binding
mkV1Binding :: V1ObjectReference -> V1Binding
mkV1Binding V1ObjectReference
v1BindingTarget =
  V1Binding :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1ObjectReference
-> V1Binding
V1Binding
  { v1BindingApiVersion :: Maybe Text
v1BindingApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1BindingKind :: Maybe Text
v1BindingKind = Maybe Text
forall a. Maybe a
Nothing
  , v1BindingMetadata :: Maybe V1ObjectMeta
v1BindingMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1ObjectReference
v1BindingTarget :: V1ObjectReference
v1BindingTarget :: V1ObjectReference
v1BindingTarget
  }

-- ** V1BoundObjectReference
-- | V1BoundObjectReference
-- BoundObjectReference is a reference to an object that a token is bound to.
data V1BoundObjectReference = V1BoundObjectReference
  { V1BoundObjectReference -> Maybe Text
v1BoundObjectReferenceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - API version of the referent.
  , V1BoundObjectReference -> Maybe Text
v1BoundObjectReferenceKind :: !(Maybe Text) -- ^ "kind" - Kind of the referent. Valid kinds are &#39;Pod&#39; and &#39;Secret&#39;.
  , V1BoundObjectReference -> Maybe Text
v1BoundObjectReferenceName :: !(Maybe Text) -- ^ "name" - Name of the referent.
  , V1BoundObjectReference -> Maybe Text
v1BoundObjectReferenceUid :: !(Maybe Text) -- ^ "uid" - UID of the referent.
  } deriving (Int -> V1BoundObjectReference -> ShowS
[V1BoundObjectReference] -> ShowS
V1BoundObjectReference -> String
(Int -> V1BoundObjectReference -> ShowS)
-> (V1BoundObjectReference -> String)
-> ([V1BoundObjectReference] -> ShowS)
-> Show V1BoundObjectReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1BoundObjectReference] -> ShowS
$cshowList :: [V1BoundObjectReference] -> ShowS
show :: V1BoundObjectReference -> String
$cshow :: V1BoundObjectReference -> String
showsPrec :: Int -> V1BoundObjectReference -> ShowS
$cshowsPrec :: Int -> V1BoundObjectReference -> ShowS
P.Show, V1BoundObjectReference -> V1BoundObjectReference -> Bool
(V1BoundObjectReference -> V1BoundObjectReference -> Bool)
-> (V1BoundObjectReference -> V1BoundObjectReference -> Bool)
-> Eq V1BoundObjectReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1BoundObjectReference -> V1BoundObjectReference -> Bool
$c/= :: V1BoundObjectReference -> V1BoundObjectReference -> Bool
== :: V1BoundObjectReference -> V1BoundObjectReference -> Bool
$c== :: V1BoundObjectReference -> V1BoundObjectReference -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1BoundObjectReference
instance A.FromJSON V1BoundObjectReference where
  parseJSON :: Value -> Parser V1BoundObjectReference
parseJSON = String
-> (Object -> Parser V1BoundObjectReference)
-> Value
-> Parser V1BoundObjectReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1BoundObjectReference" ((Object -> Parser V1BoundObjectReference)
 -> Value -> Parser V1BoundObjectReference)
-> (Object -> Parser V1BoundObjectReference)
-> Value
-> Parser V1BoundObjectReference
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text -> Maybe Text -> Maybe Text -> V1BoundObjectReference
V1BoundObjectReference
      (Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> V1BoundObjectReference)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Text -> Maybe Text -> V1BoundObjectReference)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text -> Maybe Text -> Maybe Text -> V1BoundObjectReference)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> V1BoundObjectReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe Text -> Maybe Text -> V1BoundObjectReference)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1BoundObjectReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser (Maybe Text -> V1BoundObjectReference)
-> Parser (Maybe Text) -> Parser V1BoundObjectReference
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"uid")

-- | ToJSON V1BoundObjectReference
instance A.ToJSON V1BoundObjectReference where
  toJSON :: V1BoundObjectReference -> Value
toJSON V1BoundObjectReference {Maybe Text
v1BoundObjectReferenceUid :: Maybe Text
v1BoundObjectReferenceName :: Maybe Text
v1BoundObjectReferenceKind :: Maybe Text
v1BoundObjectReferenceApiVersion :: Maybe Text
v1BoundObjectReferenceUid :: V1BoundObjectReference -> Maybe Text
v1BoundObjectReferenceName :: V1BoundObjectReference -> Maybe Text
v1BoundObjectReferenceKind :: V1BoundObjectReference -> Maybe Text
v1BoundObjectReferenceApiVersion :: V1BoundObjectReference -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1BoundObjectReferenceApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1BoundObjectReferenceKind
      , Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1BoundObjectReferenceName
      , Text
"uid" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1BoundObjectReferenceUid
      ]


-- | Construct a value of type 'V1BoundObjectReference' (by applying it's required fields, if any)
mkV1BoundObjectReference
  :: V1BoundObjectReference
mkV1BoundObjectReference :: V1BoundObjectReference
mkV1BoundObjectReference =
  V1BoundObjectReference :: Maybe Text
-> Maybe Text -> Maybe Text -> Maybe Text -> V1BoundObjectReference
V1BoundObjectReference
  { v1BoundObjectReferenceApiVersion :: Maybe Text
v1BoundObjectReferenceApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1BoundObjectReferenceKind :: Maybe Text
v1BoundObjectReferenceKind = Maybe Text
forall a. Maybe a
Nothing
  , v1BoundObjectReferenceName :: Maybe Text
v1BoundObjectReferenceName = Maybe Text
forall a. Maybe a
Nothing
  , v1BoundObjectReferenceUid :: Maybe Text
v1BoundObjectReferenceUid = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1CSIPersistentVolumeSource
-- | V1CSIPersistentVolumeSource
-- Represents storage that is managed by an external CSI volume driver (Beta feature)
data V1CSIPersistentVolumeSource = V1CSIPersistentVolumeSource
  { V1CSIPersistentVolumeSource -> Maybe V1SecretReference
v1CSIPersistentVolumeSourceControllerExpandSecretRef :: !(Maybe V1SecretReference) -- ^ "controllerExpandSecretRef"
  , V1CSIPersistentVolumeSource -> Maybe V1SecretReference
v1CSIPersistentVolumeSourceControllerPublishSecretRef :: !(Maybe V1SecretReference) -- ^ "controllerPublishSecretRef"
  , V1CSIPersistentVolumeSource -> Text
v1CSIPersistentVolumeSourceDriver :: !(Text) -- ^ /Required/ "driver" - Driver is the name of the driver to use for this volume. Required.
  , V1CSIPersistentVolumeSource -> Maybe Text
v1CSIPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;.
  , V1CSIPersistentVolumeSource -> Maybe V1SecretReference
v1CSIPersistentVolumeSourceNodePublishSecretRef :: !(Maybe V1SecretReference) -- ^ "nodePublishSecretRef"
  , V1CSIPersistentVolumeSource -> Maybe V1SecretReference
v1CSIPersistentVolumeSourceNodeStageSecretRef :: !(Maybe V1SecretReference) -- ^ "nodeStageSecretRef"
  , V1CSIPersistentVolumeSource -> Maybe Bool
v1CSIPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).
  , V1CSIPersistentVolumeSource -> Maybe (Map String Text)
v1CSIPersistentVolumeSourceVolumeAttributes :: !(Maybe (Map.Map String Text)) -- ^ "volumeAttributes" - Attributes of the volume to publish.
  , V1CSIPersistentVolumeSource -> Text
v1CSIPersistentVolumeSourceVolumeHandle :: !(Text) -- ^ /Required/ "volumeHandle" - VolumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.
  } deriving (Int -> V1CSIPersistentVolumeSource -> ShowS
[V1CSIPersistentVolumeSource] -> ShowS
V1CSIPersistentVolumeSource -> String
(Int -> V1CSIPersistentVolumeSource -> ShowS)
-> (V1CSIPersistentVolumeSource -> String)
-> ([V1CSIPersistentVolumeSource] -> ShowS)
-> Show V1CSIPersistentVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CSIPersistentVolumeSource] -> ShowS
$cshowList :: [V1CSIPersistentVolumeSource] -> ShowS
show :: V1CSIPersistentVolumeSource -> String
$cshow :: V1CSIPersistentVolumeSource -> String
showsPrec :: Int -> V1CSIPersistentVolumeSource -> ShowS
$cshowsPrec :: Int -> V1CSIPersistentVolumeSource -> ShowS
P.Show, V1CSIPersistentVolumeSource -> V1CSIPersistentVolumeSource -> Bool
(V1CSIPersistentVolumeSource
 -> V1CSIPersistentVolumeSource -> Bool)
-> (V1CSIPersistentVolumeSource
    -> V1CSIPersistentVolumeSource -> Bool)
-> Eq V1CSIPersistentVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CSIPersistentVolumeSource -> V1CSIPersistentVolumeSource -> Bool
$c/= :: V1CSIPersistentVolumeSource -> V1CSIPersistentVolumeSource -> Bool
== :: V1CSIPersistentVolumeSource -> V1CSIPersistentVolumeSource -> Bool
$c== :: V1CSIPersistentVolumeSource -> V1CSIPersistentVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CSIPersistentVolumeSource
instance A.FromJSON V1CSIPersistentVolumeSource where
  parseJSON :: Value -> Parser V1CSIPersistentVolumeSource
parseJSON = String
-> (Object -> Parser V1CSIPersistentVolumeSource)
-> Value
-> Parser V1CSIPersistentVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CSIPersistentVolumeSource" ((Object -> Parser V1CSIPersistentVolumeSource)
 -> Value -> Parser V1CSIPersistentVolumeSource)
-> (Object -> Parser V1CSIPersistentVolumeSource)
-> Value
-> Parser V1CSIPersistentVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1SecretReference
-> Maybe V1SecretReference
-> Text
-> Maybe Text
-> Maybe V1SecretReference
-> Maybe V1SecretReference
-> Maybe Bool
-> Maybe (Map String Text)
-> Text
-> V1CSIPersistentVolumeSource
V1CSIPersistentVolumeSource
      (Maybe V1SecretReference
 -> Maybe V1SecretReference
 -> Text
 -> Maybe Text
 -> Maybe V1SecretReference
 -> Maybe V1SecretReference
 -> Maybe Bool
 -> Maybe (Map String Text)
 -> Text
 -> V1CSIPersistentVolumeSource)
-> Parser (Maybe V1SecretReference)
-> Parser
     (Maybe V1SecretReference
      -> Text
      -> Maybe Text
      -> Maybe V1SecretReference
      -> Maybe V1SecretReference
      -> Maybe Bool
      -> Maybe (Map String Text)
      -> Text
      -> V1CSIPersistentVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1SecretReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"controllerExpandSecretRef")
      Parser
  (Maybe V1SecretReference
   -> Text
   -> Maybe Text
   -> Maybe V1SecretReference
   -> Maybe V1SecretReference
   -> Maybe Bool
   -> Maybe (Map String Text)
   -> Text
   -> V1CSIPersistentVolumeSource)
-> Parser (Maybe V1SecretReference)
-> Parser
     (Text
      -> Maybe Text
      -> Maybe V1SecretReference
      -> Maybe V1SecretReference
      -> Maybe Bool
      -> Maybe (Map String Text)
      -> Text
      -> V1CSIPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SecretReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"controllerPublishSecretRef")
      Parser
  (Text
   -> Maybe Text
   -> Maybe V1SecretReference
   -> Maybe V1SecretReference
   -> Maybe Bool
   -> Maybe (Map String Text)
   -> Text
   -> V1CSIPersistentVolumeSource)
-> Parser Text
-> Parser
     (Maybe Text
      -> Maybe V1SecretReference
      -> Maybe V1SecretReference
      -> Maybe Bool
      -> Maybe (Map String Text)
      -> Text
      -> V1CSIPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"driver")
      Parser
  (Maybe Text
   -> Maybe V1SecretReference
   -> Maybe V1SecretReference
   -> Maybe Bool
   -> Maybe (Map String Text)
   -> Text
   -> V1CSIPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1SecretReference
      -> Maybe V1SecretReference
      -> Maybe Bool
      -> Maybe (Map String Text)
      -> Text
      -> V1CSIPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Maybe V1SecretReference
   -> Maybe V1SecretReference
   -> Maybe Bool
   -> Maybe (Map String Text)
   -> Text
   -> V1CSIPersistentVolumeSource)
-> Parser (Maybe V1SecretReference)
-> Parser
     (Maybe V1SecretReference
      -> Maybe Bool
      -> Maybe (Map String Text)
      -> Text
      -> V1CSIPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SecretReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nodePublishSecretRef")
      Parser
  (Maybe V1SecretReference
   -> Maybe Bool
   -> Maybe (Map String Text)
   -> Text
   -> V1CSIPersistentVolumeSource)
-> Parser (Maybe V1SecretReference)
-> Parser
     (Maybe Bool
      -> Maybe (Map String Text) -> Text -> V1CSIPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SecretReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nodeStageSecretRef")
      Parser
  (Maybe Bool
   -> Maybe (Map String Text) -> Text -> V1CSIPersistentVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe (Map String Text) -> Text -> V1CSIPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser
  (Maybe (Map String Text) -> Text -> V1CSIPersistentVolumeSource)
-> Parser (Maybe (Map String Text))
-> Parser (Text -> V1CSIPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeAttributes")
      Parser (Text -> V1CSIPersistentVolumeSource)
-> Parser Text -> Parser V1CSIPersistentVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"volumeHandle")

-- | ToJSON V1CSIPersistentVolumeSource
instance A.ToJSON V1CSIPersistentVolumeSource where
  toJSON :: V1CSIPersistentVolumeSource -> Value
toJSON V1CSIPersistentVolumeSource {Maybe Bool
Maybe Text
Maybe (Map String Text)
Maybe V1SecretReference
Text
v1CSIPersistentVolumeSourceVolumeHandle :: Text
v1CSIPersistentVolumeSourceVolumeAttributes :: Maybe (Map String Text)
v1CSIPersistentVolumeSourceReadOnly :: Maybe Bool
v1CSIPersistentVolumeSourceNodeStageSecretRef :: Maybe V1SecretReference
v1CSIPersistentVolumeSourceNodePublishSecretRef :: Maybe V1SecretReference
v1CSIPersistentVolumeSourceFsType :: Maybe Text
v1CSIPersistentVolumeSourceDriver :: Text
v1CSIPersistentVolumeSourceControllerPublishSecretRef :: Maybe V1SecretReference
v1CSIPersistentVolumeSourceControllerExpandSecretRef :: Maybe V1SecretReference
v1CSIPersistentVolumeSourceVolumeHandle :: V1CSIPersistentVolumeSource -> Text
v1CSIPersistentVolumeSourceVolumeAttributes :: V1CSIPersistentVolumeSource -> Maybe (Map String Text)
v1CSIPersistentVolumeSourceReadOnly :: V1CSIPersistentVolumeSource -> Maybe Bool
v1CSIPersistentVolumeSourceNodeStageSecretRef :: V1CSIPersistentVolumeSource -> Maybe V1SecretReference
v1CSIPersistentVolumeSourceNodePublishSecretRef :: V1CSIPersistentVolumeSource -> Maybe V1SecretReference
v1CSIPersistentVolumeSourceFsType :: V1CSIPersistentVolumeSource -> Maybe Text
v1CSIPersistentVolumeSourceDriver :: V1CSIPersistentVolumeSource -> Text
v1CSIPersistentVolumeSourceControllerPublishSecretRef :: V1CSIPersistentVolumeSource -> Maybe V1SecretReference
v1CSIPersistentVolumeSourceControllerExpandSecretRef :: V1CSIPersistentVolumeSource -> Maybe V1SecretReference
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"controllerExpandSecretRef" Text -> Maybe V1SecretReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SecretReference
v1CSIPersistentVolumeSourceControllerExpandSecretRef
      , Text
"controllerPublishSecretRef" Text -> Maybe V1SecretReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SecretReference
v1CSIPersistentVolumeSourceControllerPublishSecretRef
      , Text
"driver" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CSIPersistentVolumeSourceDriver
      , Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CSIPersistentVolumeSourceFsType
      , Text
"nodePublishSecretRef" Text -> Maybe V1SecretReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SecretReference
v1CSIPersistentVolumeSourceNodePublishSecretRef
      , Text
"nodeStageSecretRef" Text -> Maybe V1SecretReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SecretReference
v1CSIPersistentVolumeSourceNodeStageSecretRef
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1CSIPersistentVolumeSourceReadOnly
      , Text
"volumeAttributes" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1CSIPersistentVolumeSourceVolumeAttributes
      , Text
"volumeHandle" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CSIPersistentVolumeSourceVolumeHandle
      ]


-- | Construct a value of type 'V1CSIPersistentVolumeSource' (by applying it's required fields, if any)
mkV1CSIPersistentVolumeSource
  :: Text -- ^ 'v1CSIPersistentVolumeSourceDriver': Driver is the name of the driver to use for this volume. Required.
  -> Text -- ^ 'v1CSIPersistentVolumeSourceVolumeHandle': VolumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.
  -> V1CSIPersistentVolumeSource
mkV1CSIPersistentVolumeSource :: Text -> Text -> V1CSIPersistentVolumeSource
mkV1CSIPersistentVolumeSource Text
v1CSIPersistentVolumeSourceDriver Text
v1CSIPersistentVolumeSourceVolumeHandle =
  V1CSIPersistentVolumeSource :: Maybe V1SecretReference
-> Maybe V1SecretReference
-> Text
-> Maybe Text
-> Maybe V1SecretReference
-> Maybe V1SecretReference
-> Maybe Bool
-> Maybe (Map String Text)
-> Text
-> V1CSIPersistentVolumeSource
V1CSIPersistentVolumeSource
  { v1CSIPersistentVolumeSourceControllerExpandSecretRef :: Maybe V1SecretReference
v1CSIPersistentVolumeSourceControllerExpandSecretRef = Maybe V1SecretReference
forall a. Maybe a
Nothing
  , v1CSIPersistentVolumeSourceControllerPublishSecretRef :: Maybe V1SecretReference
v1CSIPersistentVolumeSourceControllerPublishSecretRef = Maybe V1SecretReference
forall a. Maybe a
Nothing
  , Text
v1CSIPersistentVolumeSourceDriver :: Text
v1CSIPersistentVolumeSourceDriver :: Text
v1CSIPersistentVolumeSourceDriver
  , v1CSIPersistentVolumeSourceFsType :: Maybe Text
v1CSIPersistentVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , v1CSIPersistentVolumeSourceNodePublishSecretRef :: Maybe V1SecretReference
v1CSIPersistentVolumeSourceNodePublishSecretRef = Maybe V1SecretReference
forall a. Maybe a
Nothing
  , v1CSIPersistentVolumeSourceNodeStageSecretRef :: Maybe V1SecretReference
v1CSIPersistentVolumeSourceNodeStageSecretRef = Maybe V1SecretReference
forall a. Maybe a
Nothing
  , v1CSIPersistentVolumeSourceReadOnly :: Maybe Bool
v1CSIPersistentVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , v1CSIPersistentVolumeSourceVolumeAttributes :: Maybe (Map String Text)
v1CSIPersistentVolumeSourceVolumeAttributes = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , Text
v1CSIPersistentVolumeSourceVolumeHandle :: Text
v1CSIPersistentVolumeSourceVolumeHandle :: Text
v1CSIPersistentVolumeSourceVolumeHandle
  }

-- ** V1CSIVolumeSource
-- | V1CSIVolumeSource
-- Represents a source location of a volume to mount, managed by an external CSI driver
data V1CSIVolumeSource = V1CSIVolumeSource
  { V1CSIVolumeSource -> Text
v1CSIVolumeSourceDriver :: !(Text) -- ^ /Required/ "driver" - Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.
  , V1CSIVolumeSource -> Maybe Text
v1CSIVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type to mount. Ex. \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.
  , V1CSIVolumeSource -> Maybe V1LocalObjectReference
v1CSIVolumeSourceNodePublishSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "nodePublishSecretRef"
  , V1CSIVolumeSource -> Maybe Bool
v1CSIVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Specifies a read-only configuration for the volume. Defaults to false (read/write).
  , V1CSIVolumeSource -> Maybe (Map String Text)
v1CSIVolumeSourceVolumeAttributes :: !(Maybe (Map.Map String Text)) -- ^ "volumeAttributes" - VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver&#39;s documentation for supported values.
  } deriving (Int -> V1CSIVolumeSource -> ShowS
[V1CSIVolumeSource] -> ShowS
V1CSIVolumeSource -> String
(Int -> V1CSIVolumeSource -> ShowS)
-> (V1CSIVolumeSource -> String)
-> ([V1CSIVolumeSource] -> ShowS)
-> Show V1CSIVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CSIVolumeSource] -> ShowS
$cshowList :: [V1CSIVolumeSource] -> ShowS
show :: V1CSIVolumeSource -> String
$cshow :: V1CSIVolumeSource -> String
showsPrec :: Int -> V1CSIVolumeSource -> ShowS
$cshowsPrec :: Int -> V1CSIVolumeSource -> ShowS
P.Show, V1CSIVolumeSource -> V1CSIVolumeSource -> Bool
(V1CSIVolumeSource -> V1CSIVolumeSource -> Bool)
-> (V1CSIVolumeSource -> V1CSIVolumeSource -> Bool)
-> Eq V1CSIVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CSIVolumeSource -> V1CSIVolumeSource -> Bool
$c/= :: V1CSIVolumeSource -> V1CSIVolumeSource -> Bool
== :: V1CSIVolumeSource -> V1CSIVolumeSource -> Bool
$c== :: V1CSIVolumeSource -> V1CSIVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CSIVolumeSource
instance A.FromJSON V1CSIVolumeSource where
  parseJSON :: Value -> Parser V1CSIVolumeSource
parseJSON = String
-> (Object -> Parser V1CSIVolumeSource)
-> Value
-> Parser V1CSIVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CSIVolumeSource" ((Object -> Parser V1CSIVolumeSource)
 -> Value -> Parser V1CSIVolumeSource)
-> (Object -> Parser V1CSIVolumeSource)
-> Value
-> Parser V1CSIVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Maybe Text
-> Maybe V1LocalObjectReference
-> Maybe Bool
-> Maybe (Map String Text)
-> V1CSIVolumeSource
V1CSIVolumeSource
      (Text
 -> Maybe Text
 -> Maybe V1LocalObjectReference
 -> Maybe Bool
 -> Maybe (Map String Text)
 -> V1CSIVolumeSource)
-> Parser Text
-> Parser
     (Maybe Text
      -> Maybe V1LocalObjectReference
      -> Maybe Bool
      -> Maybe (Map String Text)
      -> V1CSIVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"driver")
      Parser
  (Maybe Text
   -> Maybe V1LocalObjectReference
   -> Maybe Bool
   -> Maybe (Map String Text)
   -> V1CSIVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1LocalObjectReference
      -> Maybe Bool -> Maybe (Map String Text) -> V1CSIVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Maybe V1LocalObjectReference
   -> Maybe Bool -> Maybe (Map String Text) -> V1CSIVolumeSource)
-> Parser (Maybe V1LocalObjectReference)
-> Parser
     (Maybe Bool -> Maybe (Map String Text) -> V1CSIVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LocalObjectReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nodePublishSecretRef")
      Parser (Maybe Bool -> Maybe (Map String Text) -> V1CSIVolumeSource)
-> Parser (Maybe Bool)
-> Parser (Maybe (Map String Text) -> V1CSIVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser (Maybe (Map String Text) -> V1CSIVolumeSource)
-> Parser (Maybe (Map String Text)) -> Parser V1CSIVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeAttributes")

-- | ToJSON V1CSIVolumeSource
instance A.ToJSON V1CSIVolumeSource where
  toJSON :: V1CSIVolumeSource -> Value
toJSON V1CSIVolumeSource {Maybe Bool
Maybe Text
Maybe (Map String Text)
Maybe V1LocalObjectReference
Text
v1CSIVolumeSourceVolumeAttributes :: Maybe (Map String Text)
v1CSIVolumeSourceReadOnly :: Maybe Bool
v1CSIVolumeSourceNodePublishSecretRef :: Maybe V1LocalObjectReference
v1CSIVolumeSourceFsType :: Maybe Text
v1CSIVolumeSourceDriver :: Text
v1CSIVolumeSourceVolumeAttributes :: V1CSIVolumeSource -> Maybe (Map String Text)
v1CSIVolumeSourceReadOnly :: V1CSIVolumeSource -> Maybe Bool
v1CSIVolumeSourceNodePublishSecretRef :: V1CSIVolumeSource -> Maybe V1LocalObjectReference
v1CSIVolumeSourceFsType :: V1CSIVolumeSource -> Maybe Text
v1CSIVolumeSourceDriver :: V1CSIVolumeSource -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"driver" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CSIVolumeSourceDriver
      , Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CSIVolumeSourceFsType
      , Text
"nodePublishSecretRef" Text -> Maybe V1LocalObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LocalObjectReference
v1CSIVolumeSourceNodePublishSecretRef
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1CSIVolumeSourceReadOnly
      , Text
"volumeAttributes" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1CSIVolumeSourceVolumeAttributes
      ]


-- | Construct a value of type 'V1CSIVolumeSource' (by applying it's required fields, if any)
mkV1CSIVolumeSource
  :: Text -- ^ 'v1CSIVolumeSourceDriver': Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.
  -> V1CSIVolumeSource
mkV1CSIVolumeSource :: Text -> V1CSIVolumeSource
mkV1CSIVolumeSource Text
v1CSIVolumeSourceDriver =
  V1CSIVolumeSource :: Text
-> Maybe Text
-> Maybe V1LocalObjectReference
-> Maybe Bool
-> Maybe (Map String Text)
-> V1CSIVolumeSource
V1CSIVolumeSource
  { Text
v1CSIVolumeSourceDriver :: Text
v1CSIVolumeSourceDriver :: Text
v1CSIVolumeSourceDriver
  , v1CSIVolumeSourceFsType :: Maybe Text
v1CSIVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , v1CSIVolumeSourceNodePublishSecretRef :: Maybe V1LocalObjectReference
v1CSIVolumeSourceNodePublishSecretRef = Maybe V1LocalObjectReference
forall a. Maybe a
Nothing
  , v1CSIVolumeSourceReadOnly :: Maybe Bool
v1CSIVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , v1CSIVolumeSourceVolumeAttributes :: Maybe (Map String Text)
v1CSIVolumeSourceVolumeAttributes = Maybe (Map String Text)
forall a. Maybe a
Nothing
  }

-- ** V1Capabilities
-- | V1Capabilities
-- Adds and removes POSIX capabilities from running containers.
data V1Capabilities = V1Capabilities
  { V1Capabilities -> Maybe [Text]
v1CapabilitiesAdd :: !(Maybe [Text]) -- ^ "add" - Added capabilities
  , V1Capabilities -> Maybe [Text]
v1CapabilitiesDrop :: !(Maybe [Text]) -- ^ "drop" - Removed capabilities
  } deriving (Int -> V1Capabilities -> ShowS
[V1Capabilities] -> ShowS
V1Capabilities -> String
(Int -> V1Capabilities -> ShowS)
-> (V1Capabilities -> String)
-> ([V1Capabilities] -> ShowS)
-> Show V1Capabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Capabilities] -> ShowS
$cshowList :: [V1Capabilities] -> ShowS
show :: V1Capabilities -> String
$cshow :: V1Capabilities -> String
showsPrec :: Int -> V1Capabilities -> ShowS
$cshowsPrec :: Int -> V1Capabilities -> ShowS
P.Show, V1Capabilities -> V1Capabilities -> Bool
(V1Capabilities -> V1Capabilities -> Bool)
-> (V1Capabilities -> V1Capabilities -> Bool) -> Eq V1Capabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Capabilities -> V1Capabilities -> Bool
$c/= :: V1Capabilities -> V1Capabilities -> Bool
== :: V1Capabilities -> V1Capabilities -> Bool
$c== :: V1Capabilities -> V1Capabilities -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Capabilities
instance A.FromJSON V1Capabilities where
  parseJSON :: Value -> Parser V1Capabilities
parseJSON = String
-> (Object -> Parser V1Capabilities)
-> Value
-> Parser V1Capabilities
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Capabilities" ((Object -> Parser V1Capabilities)
 -> Value -> Parser V1Capabilities)
-> (Object -> Parser V1Capabilities)
-> Value
-> Parser V1Capabilities
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text] -> Maybe [Text] -> V1Capabilities
V1Capabilities
      (Maybe [Text] -> Maybe [Text] -> V1Capabilities)
-> Parser (Maybe [Text]) -> Parser (Maybe [Text] -> V1Capabilities)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"add")
      Parser (Maybe [Text] -> V1Capabilities)
-> Parser (Maybe [Text]) -> Parser V1Capabilities
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"drop")

-- | ToJSON V1Capabilities
instance A.ToJSON V1Capabilities where
  toJSON :: V1Capabilities -> Value
toJSON V1Capabilities {Maybe [Text]
v1CapabilitiesDrop :: Maybe [Text]
v1CapabilitiesAdd :: Maybe [Text]
v1CapabilitiesDrop :: V1Capabilities -> Maybe [Text]
v1CapabilitiesAdd :: V1Capabilities -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"add" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1CapabilitiesAdd
      , Text
"drop" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1CapabilitiesDrop
      ]


-- | Construct a value of type 'V1Capabilities' (by applying it's required fields, if any)
mkV1Capabilities
  :: V1Capabilities
mkV1Capabilities :: V1Capabilities
mkV1Capabilities =
  V1Capabilities :: Maybe [Text] -> Maybe [Text] -> V1Capabilities
V1Capabilities
  { v1CapabilitiesAdd :: Maybe [Text]
v1CapabilitiesAdd = Maybe [Text]
forall a. Maybe a
Nothing
  , v1CapabilitiesDrop :: Maybe [Text]
v1CapabilitiesDrop = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1CephFSPersistentVolumeSource
-- | V1CephFSPersistentVolumeSource
-- Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.
data V1CephFSPersistentVolumeSource = V1CephFSPersistentVolumeSource
  { V1CephFSPersistentVolumeSource -> [Text]
v1CephFSPersistentVolumeSourceMonitors :: !([Text]) -- ^ /Required/ "monitors" - Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  , V1CephFSPersistentVolumeSource -> Maybe Text
v1CephFSPersistentVolumeSourcePath :: !(Maybe Text) -- ^ "path" - Optional: Used as the mounted root, rather than the full Ceph tree, default is /
  , V1CephFSPersistentVolumeSource -> Maybe Bool
v1CephFSPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  , V1CephFSPersistentVolumeSource -> Maybe Text
v1CephFSPersistentVolumeSourceSecretFile :: !(Maybe Text) -- ^ "secretFile" - Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  , V1CephFSPersistentVolumeSource -> Maybe V1SecretReference
v1CephFSPersistentVolumeSourceSecretRef :: !(Maybe V1SecretReference) -- ^ "secretRef"
  , V1CephFSPersistentVolumeSource -> Maybe Text
v1CephFSPersistentVolumeSourceUser :: !(Maybe Text) -- ^ "user" - Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  } deriving (Int -> V1CephFSPersistentVolumeSource -> ShowS
[V1CephFSPersistentVolumeSource] -> ShowS
V1CephFSPersistentVolumeSource -> String
(Int -> V1CephFSPersistentVolumeSource -> ShowS)
-> (V1CephFSPersistentVolumeSource -> String)
-> ([V1CephFSPersistentVolumeSource] -> ShowS)
-> Show V1CephFSPersistentVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CephFSPersistentVolumeSource] -> ShowS
$cshowList :: [V1CephFSPersistentVolumeSource] -> ShowS
show :: V1CephFSPersistentVolumeSource -> String
$cshow :: V1CephFSPersistentVolumeSource -> String
showsPrec :: Int -> V1CephFSPersistentVolumeSource -> ShowS
$cshowsPrec :: Int -> V1CephFSPersistentVolumeSource -> ShowS
P.Show, V1CephFSPersistentVolumeSource
-> V1CephFSPersistentVolumeSource -> Bool
(V1CephFSPersistentVolumeSource
 -> V1CephFSPersistentVolumeSource -> Bool)
-> (V1CephFSPersistentVolumeSource
    -> V1CephFSPersistentVolumeSource -> Bool)
-> Eq V1CephFSPersistentVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CephFSPersistentVolumeSource
-> V1CephFSPersistentVolumeSource -> Bool
$c/= :: V1CephFSPersistentVolumeSource
-> V1CephFSPersistentVolumeSource -> Bool
== :: V1CephFSPersistentVolumeSource
-> V1CephFSPersistentVolumeSource -> Bool
$c== :: V1CephFSPersistentVolumeSource
-> V1CephFSPersistentVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CephFSPersistentVolumeSource
instance A.FromJSON V1CephFSPersistentVolumeSource where
  parseJSON :: Value -> Parser V1CephFSPersistentVolumeSource
parseJSON = String
-> (Object -> Parser V1CephFSPersistentVolumeSource)
-> Value
-> Parser V1CephFSPersistentVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CephFSPersistentVolumeSource" ((Object -> Parser V1CephFSPersistentVolumeSource)
 -> Value -> Parser V1CephFSPersistentVolumeSource)
-> (Object -> Parser V1CephFSPersistentVolumeSource)
-> Value
-> Parser V1CephFSPersistentVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    [Text]
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe V1SecretReference
-> Maybe Text
-> V1CephFSPersistentVolumeSource
V1CephFSPersistentVolumeSource
      ([Text]
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe V1SecretReference
 -> Maybe Text
 -> V1CephFSPersistentVolumeSource)
-> Parser [Text]
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe V1SecretReference
      -> Maybe Text
      -> V1CephFSPersistentVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"monitors")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe V1SecretReference
   -> Maybe Text
   -> V1CephFSPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe V1SecretReference
      -> Maybe Text
      -> V1CephFSPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"path")
      Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe V1SecretReference
   -> Maybe Text
   -> V1CephFSPersistentVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe V1SecretReference
      -> Maybe Text
      -> V1CephFSPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser
  (Maybe Text
   -> Maybe V1SecretReference
   -> Maybe Text
   -> V1CephFSPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1SecretReference
      -> Maybe Text -> V1CephFSPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretFile")
      Parser
  (Maybe V1SecretReference
   -> Maybe Text -> V1CephFSPersistentVolumeSource)
-> Parser (Maybe V1SecretReference)
-> Parser (Maybe Text -> V1CephFSPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SecretReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretRef")
      Parser (Maybe Text -> V1CephFSPersistentVolumeSource)
-> Parser (Maybe Text) -> Parser V1CephFSPersistentVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"user")

-- | ToJSON V1CephFSPersistentVolumeSource
instance A.ToJSON V1CephFSPersistentVolumeSource where
  toJSON :: V1CephFSPersistentVolumeSource -> Value
toJSON V1CephFSPersistentVolumeSource {[Text]
Maybe Bool
Maybe Text
Maybe V1SecretReference
v1CephFSPersistentVolumeSourceUser :: Maybe Text
v1CephFSPersistentVolumeSourceSecretRef :: Maybe V1SecretReference
v1CephFSPersistentVolumeSourceSecretFile :: Maybe Text
v1CephFSPersistentVolumeSourceReadOnly :: Maybe Bool
v1CephFSPersistentVolumeSourcePath :: Maybe Text
v1CephFSPersistentVolumeSourceMonitors :: [Text]
v1CephFSPersistentVolumeSourceUser :: V1CephFSPersistentVolumeSource -> Maybe Text
v1CephFSPersistentVolumeSourceSecretRef :: V1CephFSPersistentVolumeSource -> Maybe V1SecretReference
v1CephFSPersistentVolumeSourceSecretFile :: V1CephFSPersistentVolumeSource -> Maybe Text
v1CephFSPersistentVolumeSourceReadOnly :: V1CephFSPersistentVolumeSource -> Maybe Bool
v1CephFSPersistentVolumeSourcePath :: V1CephFSPersistentVolumeSource -> Maybe Text
v1CephFSPersistentVolumeSourceMonitors :: V1CephFSPersistentVolumeSource -> [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"monitors" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1CephFSPersistentVolumeSourceMonitors
      , Text
"path" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CephFSPersistentVolumeSourcePath
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1CephFSPersistentVolumeSourceReadOnly
      , Text
"secretFile" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CephFSPersistentVolumeSourceSecretFile
      , Text
"secretRef" Text -> Maybe V1SecretReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SecretReference
v1CephFSPersistentVolumeSourceSecretRef
      , Text
"user" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CephFSPersistentVolumeSourceUser
      ]


-- | Construct a value of type 'V1CephFSPersistentVolumeSource' (by applying it's required fields, if any)
mkV1CephFSPersistentVolumeSource
  :: [Text] -- ^ 'v1CephFSPersistentVolumeSourceMonitors': Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  -> V1CephFSPersistentVolumeSource
mkV1CephFSPersistentVolumeSource :: [Text] -> V1CephFSPersistentVolumeSource
mkV1CephFSPersistentVolumeSource [Text]
v1CephFSPersistentVolumeSourceMonitors =
  V1CephFSPersistentVolumeSource :: [Text]
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe V1SecretReference
-> Maybe Text
-> V1CephFSPersistentVolumeSource
V1CephFSPersistentVolumeSource
  { [Text]
v1CephFSPersistentVolumeSourceMonitors :: [Text]
v1CephFSPersistentVolumeSourceMonitors :: [Text]
v1CephFSPersistentVolumeSourceMonitors
  , v1CephFSPersistentVolumeSourcePath :: Maybe Text
v1CephFSPersistentVolumeSourcePath = Maybe Text
forall a. Maybe a
Nothing
  , v1CephFSPersistentVolumeSourceReadOnly :: Maybe Bool
v1CephFSPersistentVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , v1CephFSPersistentVolumeSourceSecretFile :: Maybe Text
v1CephFSPersistentVolumeSourceSecretFile = Maybe Text
forall a. Maybe a
Nothing
  , v1CephFSPersistentVolumeSourceSecretRef :: Maybe V1SecretReference
v1CephFSPersistentVolumeSourceSecretRef = Maybe V1SecretReference
forall a. Maybe a
Nothing
  , v1CephFSPersistentVolumeSourceUser :: Maybe Text
v1CephFSPersistentVolumeSourceUser = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1CephFSVolumeSource
-- | V1CephFSVolumeSource
-- Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.
data V1CephFSVolumeSource = V1CephFSVolumeSource
  { V1CephFSVolumeSource -> [Text]
v1CephFSVolumeSourceMonitors :: !([Text]) -- ^ /Required/ "monitors" - Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  , V1CephFSVolumeSource -> Maybe Text
v1CephFSVolumeSourcePath :: !(Maybe Text) -- ^ "path" - Optional: Used as the mounted root, rather than the full Ceph tree, default is /
  , V1CephFSVolumeSource -> Maybe Bool
v1CephFSVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  , V1CephFSVolumeSource -> Maybe Text
v1CephFSVolumeSourceSecretFile :: !(Maybe Text) -- ^ "secretFile" - Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  , V1CephFSVolumeSource -> Maybe V1LocalObjectReference
v1CephFSVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"
  , V1CephFSVolumeSource -> Maybe Text
v1CephFSVolumeSourceUser :: !(Maybe Text) -- ^ "user" - Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  } deriving (Int -> V1CephFSVolumeSource -> ShowS
[V1CephFSVolumeSource] -> ShowS
V1CephFSVolumeSource -> String
(Int -> V1CephFSVolumeSource -> ShowS)
-> (V1CephFSVolumeSource -> String)
-> ([V1CephFSVolumeSource] -> ShowS)
-> Show V1CephFSVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CephFSVolumeSource] -> ShowS
$cshowList :: [V1CephFSVolumeSource] -> ShowS
show :: V1CephFSVolumeSource -> String
$cshow :: V1CephFSVolumeSource -> String
showsPrec :: Int -> V1CephFSVolumeSource -> ShowS
$cshowsPrec :: Int -> V1CephFSVolumeSource -> ShowS
P.Show, V1CephFSVolumeSource -> V1CephFSVolumeSource -> Bool
(V1CephFSVolumeSource -> V1CephFSVolumeSource -> Bool)
-> (V1CephFSVolumeSource -> V1CephFSVolumeSource -> Bool)
-> Eq V1CephFSVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CephFSVolumeSource -> V1CephFSVolumeSource -> Bool
$c/= :: V1CephFSVolumeSource -> V1CephFSVolumeSource -> Bool
== :: V1CephFSVolumeSource -> V1CephFSVolumeSource -> Bool
$c== :: V1CephFSVolumeSource -> V1CephFSVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CephFSVolumeSource
instance A.FromJSON V1CephFSVolumeSource where
  parseJSON :: Value -> Parser V1CephFSVolumeSource
parseJSON = String
-> (Object -> Parser V1CephFSVolumeSource)
-> Value
-> Parser V1CephFSVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CephFSVolumeSource" ((Object -> Parser V1CephFSVolumeSource)
 -> Value -> Parser V1CephFSVolumeSource)
-> (Object -> Parser V1CephFSVolumeSource)
-> Value
-> Parser V1CephFSVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    [Text]
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe V1LocalObjectReference
-> Maybe Text
-> V1CephFSVolumeSource
V1CephFSVolumeSource
      ([Text]
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe V1LocalObjectReference
 -> Maybe Text
 -> V1CephFSVolumeSource)
-> Parser [Text]
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe V1LocalObjectReference
      -> Maybe Text
      -> V1CephFSVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"monitors")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe V1LocalObjectReference
   -> Maybe Text
   -> V1CephFSVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe V1LocalObjectReference
      -> Maybe Text
      -> V1CephFSVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"path")
      Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe V1LocalObjectReference
   -> Maybe Text
   -> V1CephFSVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe V1LocalObjectReference
      -> Maybe Text
      -> V1CephFSVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser
  (Maybe Text
   -> Maybe V1LocalObjectReference
   -> Maybe Text
   -> V1CephFSVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1LocalObjectReference
      -> Maybe Text -> V1CephFSVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretFile")
      Parser
  (Maybe V1LocalObjectReference
   -> Maybe Text -> V1CephFSVolumeSource)
-> Parser (Maybe V1LocalObjectReference)
-> Parser (Maybe Text -> V1CephFSVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LocalObjectReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretRef")
      Parser (Maybe Text -> V1CephFSVolumeSource)
-> Parser (Maybe Text) -> Parser V1CephFSVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"user")

-- | ToJSON V1CephFSVolumeSource
instance A.ToJSON V1CephFSVolumeSource where
  toJSON :: V1CephFSVolumeSource -> Value
toJSON V1CephFSVolumeSource {[Text]
Maybe Bool
Maybe Text
Maybe V1LocalObjectReference
v1CephFSVolumeSourceUser :: Maybe Text
v1CephFSVolumeSourceSecretRef :: Maybe V1LocalObjectReference
v1CephFSVolumeSourceSecretFile :: Maybe Text
v1CephFSVolumeSourceReadOnly :: Maybe Bool
v1CephFSVolumeSourcePath :: Maybe Text
v1CephFSVolumeSourceMonitors :: [Text]
v1CephFSVolumeSourceUser :: V1CephFSVolumeSource -> Maybe Text
v1CephFSVolumeSourceSecretRef :: V1CephFSVolumeSource -> Maybe V1LocalObjectReference
v1CephFSVolumeSourceSecretFile :: V1CephFSVolumeSource -> Maybe Text
v1CephFSVolumeSourceReadOnly :: V1CephFSVolumeSource -> Maybe Bool
v1CephFSVolumeSourcePath :: V1CephFSVolumeSource -> Maybe Text
v1CephFSVolumeSourceMonitors :: V1CephFSVolumeSource -> [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"monitors" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1CephFSVolumeSourceMonitors
      , Text
"path" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CephFSVolumeSourcePath
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1CephFSVolumeSourceReadOnly
      , Text
"secretFile" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CephFSVolumeSourceSecretFile
      , Text
"secretRef" Text -> Maybe V1LocalObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LocalObjectReference
v1CephFSVolumeSourceSecretRef
      , Text
"user" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CephFSVolumeSourceUser
      ]


-- | Construct a value of type 'V1CephFSVolumeSource' (by applying it's required fields, if any)
mkV1CephFSVolumeSource
  :: [Text] -- ^ 'v1CephFSVolumeSourceMonitors': Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
  -> V1CephFSVolumeSource
mkV1CephFSVolumeSource :: [Text] -> V1CephFSVolumeSource
mkV1CephFSVolumeSource [Text]
v1CephFSVolumeSourceMonitors =
  V1CephFSVolumeSource :: [Text]
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe V1LocalObjectReference
-> Maybe Text
-> V1CephFSVolumeSource
V1CephFSVolumeSource
  { [Text]
v1CephFSVolumeSourceMonitors :: [Text]
v1CephFSVolumeSourceMonitors :: [Text]
v1CephFSVolumeSourceMonitors
  , v1CephFSVolumeSourcePath :: Maybe Text
v1CephFSVolumeSourcePath = Maybe Text
forall a. Maybe a
Nothing
  , v1CephFSVolumeSourceReadOnly :: Maybe Bool
v1CephFSVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , v1CephFSVolumeSourceSecretFile :: Maybe Text
v1CephFSVolumeSourceSecretFile = Maybe Text
forall a. Maybe a
Nothing
  , v1CephFSVolumeSourceSecretRef :: Maybe V1LocalObjectReference
v1CephFSVolumeSourceSecretRef = Maybe V1LocalObjectReference
forall a. Maybe a
Nothing
  , v1CephFSVolumeSourceUser :: Maybe Text
v1CephFSVolumeSourceUser = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1CinderPersistentVolumeSource
-- | V1CinderPersistentVolumeSource
-- Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.
data V1CinderPersistentVolumeSource = V1CinderPersistentVolumeSource
  { V1CinderPersistentVolumeSource -> Maybe Text
v1CinderPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. Implicitly inferred to be \&quot;ext4\&quot; if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  , V1CinderPersistentVolumeSource -> Maybe Bool
v1CinderPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  , V1CinderPersistentVolumeSource -> Maybe V1SecretReference
v1CinderPersistentVolumeSourceSecretRef :: !(Maybe V1SecretReference) -- ^ "secretRef"
  , V1CinderPersistentVolumeSource -> Text
v1CinderPersistentVolumeSourceVolumeId :: !(Text) -- ^ /Required/ "volumeID" - volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  } deriving (Int -> V1CinderPersistentVolumeSource -> ShowS
[V1CinderPersistentVolumeSource] -> ShowS
V1CinderPersistentVolumeSource -> String
(Int -> V1CinderPersistentVolumeSource -> ShowS)
-> (V1CinderPersistentVolumeSource -> String)
-> ([V1CinderPersistentVolumeSource] -> ShowS)
-> Show V1CinderPersistentVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CinderPersistentVolumeSource] -> ShowS
$cshowList :: [V1CinderPersistentVolumeSource] -> ShowS
show :: V1CinderPersistentVolumeSource -> String
$cshow :: V1CinderPersistentVolumeSource -> String
showsPrec :: Int -> V1CinderPersistentVolumeSource -> ShowS
$cshowsPrec :: Int -> V1CinderPersistentVolumeSource -> ShowS
P.Show, V1CinderPersistentVolumeSource
-> V1CinderPersistentVolumeSource -> Bool
(V1CinderPersistentVolumeSource
 -> V1CinderPersistentVolumeSource -> Bool)
-> (V1CinderPersistentVolumeSource
    -> V1CinderPersistentVolumeSource -> Bool)
-> Eq V1CinderPersistentVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CinderPersistentVolumeSource
-> V1CinderPersistentVolumeSource -> Bool
$c/= :: V1CinderPersistentVolumeSource
-> V1CinderPersistentVolumeSource -> Bool
== :: V1CinderPersistentVolumeSource
-> V1CinderPersistentVolumeSource -> Bool
$c== :: V1CinderPersistentVolumeSource
-> V1CinderPersistentVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CinderPersistentVolumeSource
instance A.FromJSON V1CinderPersistentVolumeSource where
  parseJSON :: Value -> Parser V1CinderPersistentVolumeSource
parseJSON = String
-> (Object -> Parser V1CinderPersistentVolumeSource)
-> Value
-> Parser V1CinderPersistentVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CinderPersistentVolumeSource" ((Object -> Parser V1CinderPersistentVolumeSource)
 -> Value -> Parser V1CinderPersistentVolumeSource)
-> (Object -> Parser V1CinderPersistentVolumeSource)
-> Value
-> Parser V1CinderPersistentVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Bool
-> Maybe V1SecretReference
-> Text
-> V1CinderPersistentVolumeSource
V1CinderPersistentVolumeSource
      (Maybe Text
 -> Maybe Bool
 -> Maybe V1SecretReference
 -> Text
 -> V1CinderPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe V1SecretReference
      -> Text
      -> V1CinderPersistentVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Maybe Bool
   -> Maybe V1SecretReference
   -> Text
   -> V1CinderPersistentVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe V1SecretReference -> Text -> V1CinderPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser
  (Maybe V1SecretReference -> Text -> V1CinderPersistentVolumeSource)
-> Parser (Maybe V1SecretReference)
-> Parser (Text -> V1CinderPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SecretReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretRef")
      Parser (Text -> V1CinderPersistentVolumeSource)
-> Parser Text -> Parser V1CinderPersistentVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"volumeID")

-- | ToJSON V1CinderPersistentVolumeSource
instance A.ToJSON V1CinderPersistentVolumeSource where
  toJSON :: V1CinderPersistentVolumeSource -> Value
toJSON V1CinderPersistentVolumeSource {Maybe Bool
Maybe Text
Maybe V1SecretReference
Text
v1CinderPersistentVolumeSourceVolumeId :: Text
v1CinderPersistentVolumeSourceSecretRef :: Maybe V1SecretReference
v1CinderPersistentVolumeSourceReadOnly :: Maybe Bool
v1CinderPersistentVolumeSourceFsType :: Maybe Text
v1CinderPersistentVolumeSourceVolumeId :: V1CinderPersistentVolumeSource -> Text
v1CinderPersistentVolumeSourceSecretRef :: V1CinderPersistentVolumeSource -> Maybe V1SecretReference
v1CinderPersistentVolumeSourceReadOnly :: V1CinderPersistentVolumeSource -> Maybe Bool
v1CinderPersistentVolumeSourceFsType :: V1CinderPersistentVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CinderPersistentVolumeSourceFsType
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1CinderPersistentVolumeSourceReadOnly
      , Text
"secretRef" Text -> Maybe V1SecretReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SecretReference
v1CinderPersistentVolumeSourceSecretRef
      , Text
"volumeID" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CinderPersistentVolumeSourceVolumeId
      ]


-- | Construct a value of type 'V1CinderPersistentVolumeSource' (by applying it's required fields, if any)
mkV1CinderPersistentVolumeSource
  :: Text -- ^ 'v1CinderPersistentVolumeSourceVolumeId': volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  -> V1CinderPersistentVolumeSource
mkV1CinderPersistentVolumeSource :: Text -> V1CinderPersistentVolumeSource
mkV1CinderPersistentVolumeSource Text
v1CinderPersistentVolumeSourceVolumeId =
  V1CinderPersistentVolumeSource :: Maybe Text
-> Maybe Bool
-> Maybe V1SecretReference
-> Text
-> V1CinderPersistentVolumeSource
V1CinderPersistentVolumeSource
  { v1CinderPersistentVolumeSourceFsType :: Maybe Text
v1CinderPersistentVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , v1CinderPersistentVolumeSourceReadOnly :: Maybe Bool
v1CinderPersistentVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , v1CinderPersistentVolumeSourceSecretRef :: Maybe V1SecretReference
v1CinderPersistentVolumeSourceSecretRef = Maybe V1SecretReference
forall a. Maybe a
Nothing
  , Text
v1CinderPersistentVolumeSourceVolumeId :: Text
v1CinderPersistentVolumeSourceVolumeId :: Text
v1CinderPersistentVolumeSourceVolumeId
  }

-- ** V1CinderVolumeSource
-- | V1CinderVolumeSource
-- Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.
data V1CinderVolumeSource = V1CinderVolumeSource
  { V1CinderVolumeSource -> Maybe Text
v1CinderVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. Implicitly inferred to be \&quot;ext4\&quot; if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  , V1CinderVolumeSource -> Maybe Bool
v1CinderVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  , V1CinderVolumeSource -> Maybe V1LocalObjectReference
v1CinderVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"
  , V1CinderVolumeSource -> Text
v1CinderVolumeSourceVolumeId :: !(Text) -- ^ /Required/ "volumeID" - volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  } deriving (Int -> V1CinderVolumeSource -> ShowS
[V1CinderVolumeSource] -> ShowS
V1CinderVolumeSource -> String
(Int -> V1CinderVolumeSource -> ShowS)
-> (V1CinderVolumeSource -> String)
-> ([V1CinderVolumeSource] -> ShowS)
-> Show V1CinderVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CinderVolumeSource] -> ShowS
$cshowList :: [V1CinderVolumeSource] -> ShowS
show :: V1CinderVolumeSource -> String
$cshow :: V1CinderVolumeSource -> String
showsPrec :: Int -> V1CinderVolumeSource -> ShowS
$cshowsPrec :: Int -> V1CinderVolumeSource -> ShowS
P.Show, V1CinderVolumeSource -> V1CinderVolumeSource -> Bool
(V1CinderVolumeSource -> V1CinderVolumeSource -> Bool)
-> (V1CinderVolumeSource -> V1CinderVolumeSource -> Bool)
-> Eq V1CinderVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CinderVolumeSource -> V1CinderVolumeSource -> Bool
$c/= :: V1CinderVolumeSource -> V1CinderVolumeSource -> Bool
== :: V1CinderVolumeSource -> V1CinderVolumeSource -> Bool
$c== :: V1CinderVolumeSource -> V1CinderVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CinderVolumeSource
instance A.FromJSON V1CinderVolumeSource where
  parseJSON :: Value -> Parser V1CinderVolumeSource
parseJSON = String
-> (Object -> Parser V1CinderVolumeSource)
-> Value
-> Parser V1CinderVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CinderVolumeSource" ((Object -> Parser V1CinderVolumeSource)
 -> Value -> Parser V1CinderVolumeSource)
-> (Object -> Parser V1CinderVolumeSource)
-> Value
-> Parser V1CinderVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Bool
-> Maybe V1LocalObjectReference
-> Text
-> V1CinderVolumeSource
V1CinderVolumeSource
      (Maybe Text
 -> Maybe Bool
 -> Maybe V1LocalObjectReference
 -> Text
 -> V1CinderVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe V1LocalObjectReference -> Text -> V1CinderVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Maybe Bool
   -> Maybe V1LocalObjectReference -> Text -> V1CinderVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe V1LocalObjectReference -> Text -> V1CinderVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser
  (Maybe V1LocalObjectReference -> Text -> V1CinderVolumeSource)
-> Parser (Maybe V1LocalObjectReference)
-> Parser (Text -> V1CinderVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LocalObjectReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretRef")
      Parser (Text -> V1CinderVolumeSource)
-> Parser Text -> Parser V1CinderVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"volumeID")

-- | ToJSON V1CinderVolumeSource
instance A.ToJSON V1CinderVolumeSource where
  toJSON :: V1CinderVolumeSource -> Value
toJSON V1CinderVolumeSource {Maybe Bool
Maybe Text
Maybe V1LocalObjectReference
Text
v1CinderVolumeSourceVolumeId :: Text
v1CinderVolumeSourceSecretRef :: Maybe V1LocalObjectReference
v1CinderVolumeSourceReadOnly :: Maybe Bool
v1CinderVolumeSourceFsType :: Maybe Text
v1CinderVolumeSourceVolumeId :: V1CinderVolumeSource -> Text
v1CinderVolumeSourceSecretRef :: V1CinderVolumeSource -> Maybe V1LocalObjectReference
v1CinderVolumeSourceReadOnly :: V1CinderVolumeSource -> Maybe Bool
v1CinderVolumeSourceFsType :: V1CinderVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CinderVolumeSourceFsType
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1CinderVolumeSourceReadOnly
      , Text
"secretRef" Text -> Maybe V1LocalObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LocalObjectReference
v1CinderVolumeSourceSecretRef
      , Text
"volumeID" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CinderVolumeSourceVolumeId
      ]


-- | Construct a value of type 'V1CinderVolumeSource' (by applying it's required fields, if any)
mkV1CinderVolumeSource
  :: Text -- ^ 'v1CinderVolumeSourceVolumeId': volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
  -> V1CinderVolumeSource
mkV1CinderVolumeSource :: Text -> V1CinderVolumeSource
mkV1CinderVolumeSource Text
v1CinderVolumeSourceVolumeId =
  V1CinderVolumeSource :: Maybe Text
-> Maybe Bool
-> Maybe V1LocalObjectReference
-> Text
-> V1CinderVolumeSource
V1CinderVolumeSource
  { v1CinderVolumeSourceFsType :: Maybe Text
v1CinderVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , v1CinderVolumeSourceReadOnly :: Maybe Bool
v1CinderVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , v1CinderVolumeSourceSecretRef :: Maybe V1LocalObjectReference
v1CinderVolumeSourceSecretRef = Maybe V1LocalObjectReference
forall a. Maybe a
Nothing
  , Text
v1CinderVolumeSourceVolumeId :: Text
v1CinderVolumeSourceVolumeId :: Text
v1CinderVolumeSourceVolumeId
  }

-- ** V1ClientIPConfig
-- | V1ClientIPConfig
-- ClientIPConfig represents the configurations of Client IP based session affinity.
data V1ClientIPConfig = V1ClientIPConfig
  { V1ClientIPConfig -> Maybe Int
v1ClientIPConfigTimeoutSeconds :: !(Maybe Int) -- ^ "timeoutSeconds" - timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be &gt;0 &amp;&amp; &lt;&#x3D;86400(for 1 day) if ServiceAffinity &#x3D;&#x3D; \&quot;ClientIP\&quot;. Default value is 10800(for 3 hours).
  } deriving (Int -> V1ClientIPConfig -> ShowS
[V1ClientIPConfig] -> ShowS
V1ClientIPConfig -> String
(Int -> V1ClientIPConfig -> ShowS)
-> (V1ClientIPConfig -> String)
-> ([V1ClientIPConfig] -> ShowS)
-> Show V1ClientIPConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ClientIPConfig] -> ShowS
$cshowList :: [V1ClientIPConfig] -> ShowS
show :: V1ClientIPConfig -> String
$cshow :: V1ClientIPConfig -> String
showsPrec :: Int -> V1ClientIPConfig -> ShowS
$cshowsPrec :: Int -> V1ClientIPConfig -> ShowS
P.Show, V1ClientIPConfig -> V1ClientIPConfig -> Bool
(V1ClientIPConfig -> V1ClientIPConfig -> Bool)
-> (V1ClientIPConfig -> V1ClientIPConfig -> Bool)
-> Eq V1ClientIPConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ClientIPConfig -> V1ClientIPConfig -> Bool
$c/= :: V1ClientIPConfig -> V1ClientIPConfig -> Bool
== :: V1ClientIPConfig -> V1ClientIPConfig -> Bool
$c== :: V1ClientIPConfig -> V1ClientIPConfig -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ClientIPConfig
instance A.FromJSON V1ClientIPConfig where
  parseJSON :: Value -> Parser V1ClientIPConfig
parseJSON = String
-> (Object -> Parser V1ClientIPConfig)
-> Value
-> Parser V1ClientIPConfig
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ClientIPConfig" ((Object -> Parser V1ClientIPConfig)
 -> Value -> Parser V1ClientIPConfig)
-> (Object -> Parser V1ClientIPConfig)
-> Value
-> Parser V1ClientIPConfig
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int -> V1ClientIPConfig
V1ClientIPConfig
      (Maybe Int -> V1ClientIPConfig)
-> Parser (Maybe Int) -> Parser V1ClientIPConfig
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"timeoutSeconds")

-- | ToJSON V1ClientIPConfig
instance A.ToJSON V1ClientIPConfig where
  toJSON :: V1ClientIPConfig -> Value
toJSON V1ClientIPConfig {Maybe Int
v1ClientIPConfigTimeoutSeconds :: Maybe Int
v1ClientIPConfigTimeoutSeconds :: V1ClientIPConfig -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"timeoutSeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ClientIPConfigTimeoutSeconds
      ]


-- | Construct a value of type 'V1ClientIPConfig' (by applying it's required fields, if any)
mkV1ClientIPConfig
  :: V1ClientIPConfig
mkV1ClientIPConfig :: V1ClientIPConfig
mkV1ClientIPConfig =
  V1ClientIPConfig :: Maybe Int -> V1ClientIPConfig
V1ClientIPConfig
  { v1ClientIPConfigTimeoutSeconds :: Maybe Int
v1ClientIPConfigTimeoutSeconds = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1ClusterRole
-- | V1ClusterRole
-- ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.
data V1ClusterRole = V1ClusterRole
  { V1ClusterRole -> Maybe V1AggregationRule
v1ClusterRoleAggregationRule :: !(Maybe V1AggregationRule) -- ^ "aggregationRule"
  , V1ClusterRole -> Maybe Text
v1ClusterRoleApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ClusterRole -> Maybe Text
v1ClusterRoleKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ClusterRole -> Maybe V1ObjectMeta
v1ClusterRoleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1ClusterRole -> Maybe [V1PolicyRule]
v1ClusterRoleRules :: !(Maybe [V1PolicyRule]) -- ^ "rules" - Rules holds all the PolicyRules for this ClusterRole
  } deriving (Int -> V1ClusterRole -> ShowS
[V1ClusterRole] -> ShowS
V1ClusterRole -> String
(Int -> V1ClusterRole -> ShowS)
-> (V1ClusterRole -> String)
-> ([V1ClusterRole] -> ShowS)
-> Show V1ClusterRole
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ClusterRole] -> ShowS
$cshowList :: [V1ClusterRole] -> ShowS
show :: V1ClusterRole -> String
$cshow :: V1ClusterRole -> String
showsPrec :: Int -> V1ClusterRole -> ShowS
$cshowsPrec :: Int -> V1ClusterRole -> ShowS
P.Show, V1ClusterRole -> V1ClusterRole -> Bool
(V1ClusterRole -> V1ClusterRole -> Bool)
-> (V1ClusterRole -> V1ClusterRole -> Bool) -> Eq V1ClusterRole
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ClusterRole -> V1ClusterRole -> Bool
$c/= :: V1ClusterRole -> V1ClusterRole -> Bool
== :: V1ClusterRole -> V1ClusterRole -> Bool
$c== :: V1ClusterRole -> V1ClusterRole -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ClusterRole
instance A.FromJSON V1ClusterRole where
  parseJSON :: Value -> Parser V1ClusterRole
parseJSON = String
-> (Object -> Parser V1ClusterRole)
-> Value
-> Parser V1ClusterRole
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ClusterRole" ((Object -> Parser V1ClusterRole) -> Value -> Parser V1ClusterRole)
-> (Object -> Parser V1ClusterRole)
-> Value
-> Parser V1ClusterRole
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1AggregationRule
-> Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1PolicyRule]
-> V1ClusterRole
V1ClusterRole
      (Maybe V1AggregationRule
 -> Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe [V1PolicyRule]
 -> V1ClusterRole)
-> Parser (Maybe V1AggregationRule)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [V1PolicyRule]
      -> V1ClusterRole)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1AggregationRule)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"aggregationRule")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [V1PolicyRule]
   -> V1ClusterRole)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta -> Maybe [V1PolicyRule] -> V1ClusterRole)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta -> Maybe [V1PolicyRule] -> V1ClusterRole)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta -> Maybe [V1PolicyRule] -> V1ClusterRole)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta -> Maybe [V1PolicyRule] -> V1ClusterRole)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe [V1PolicyRule] -> V1ClusterRole)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe [V1PolicyRule] -> V1ClusterRole)
-> Parser (Maybe [V1PolicyRule]) -> Parser V1ClusterRole
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1PolicyRule])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rules")

-- | ToJSON V1ClusterRole
instance A.ToJSON V1ClusterRole where
  toJSON :: V1ClusterRole -> Value
toJSON V1ClusterRole {Maybe [V1PolicyRule]
Maybe Text
Maybe V1ObjectMeta
Maybe V1AggregationRule
v1ClusterRoleRules :: Maybe [V1PolicyRule]
v1ClusterRoleMetadata :: Maybe V1ObjectMeta
v1ClusterRoleKind :: Maybe Text
v1ClusterRoleApiVersion :: Maybe Text
v1ClusterRoleAggregationRule :: Maybe V1AggregationRule
v1ClusterRoleRules :: V1ClusterRole -> Maybe [V1PolicyRule]
v1ClusterRoleMetadata :: V1ClusterRole -> Maybe V1ObjectMeta
v1ClusterRoleKind :: V1ClusterRole -> Maybe Text
v1ClusterRoleApiVersion :: V1ClusterRole -> Maybe Text
v1ClusterRoleAggregationRule :: V1ClusterRole -> Maybe V1AggregationRule
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"aggregationRule" Text -> Maybe V1AggregationRule -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1AggregationRule
v1ClusterRoleAggregationRule
      , Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ClusterRoleApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ClusterRoleKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1ClusterRoleMetadata
      , Text
"rules" Text -> Maybe [V1PolicyRule] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1PolicyRule]
v1ClusterRoleRules
      ]


-- | Construct a value of type 'V1ClusterRole' (by applying it's required fields, if any)
mkV1ClusterRole
  :: V1ClusterRole
mkV1ClusterRole :: V1ClusterRole
mkV1ClusterRole =
  V1ClusterRole :: Maybe V1AggregationRule
-> Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1PolicyRule]
-> V1ClusterRole
V1ClusterRole
  { v1ClusterRoleAggregationRule :: Maybe V1AggregationRule
v1ClusterRoleAggregationRule = Maybe V1AggregationRule
forall a. Maybe a
Nothing
  , v1ClusterRoleApiVersion :: Maybe Text
v1ClusterRoleApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ClusterRoleKind :: Maybe Text
v1ClusterRoleKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ClusterRoleMetadata :: Maybe V1ObjectMeta
v1ClusterRoleMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1ClusterRoleRules :: Maybe [V1PolicyRule]
v1ClusterRoleRules = Maybe [V1PolicyRule]
forall a. Maybe a
Nothing
  }

-- ** V1ClusterRoleBinding
-- | V1ClusterRoleBinding
-- ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace, and adds who information via Subject.
data V1ClusterRoleBinding = V1ClusterRoleBinding
  { V1ClusterRoleBinding -> Maybe Text
v1ClusterRoleBindingApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ClusterRoleBinding -> Maybe Text
v1ClusterRoleBindingKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ClusterRoleBinding -> Maybe V1ObjectMeta
v1ClusterRoleBindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1ClusterRoleBinding -> V1RoleRef
v1ClusterRoleBindingRoleRef :: !(V1RoleRef) -- ^ /Required/ "roleRef"
  , V1ClusterRoleBinding -> Maybe [V1Subject]
v1ClusterRoleBindingSubjects :: !(Maybe [V1Subject]) -- ^ "subjects" - Subjects holds references to the objects the role applies to.
  } deriving (Int -> V1ClusterRoleBinding -> ShowS
[V1ClusterRoleBinding] -> ShowS
V1ClusterRoleBinding -> String
(Int -> V1ClusterRoleBinding -> ShowS)
-> (V1ClusterRoleBinding -> String)
-> ([V1ClusterRoleBinding] -> ShowS)
-> Show V1ClusterRoleBinding
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ClusterRoleBinding] -> ShowS
$cshowList :: [V1ClusterRoleBinding] -> ShowS
show :: V1ClusterRoleBinding -> String
$cshow :: V1ClusterRoleBinding -> String
showsPrec :: Int -> V1ClusterRoleBinding -> ShowS
$cshowsPrec :: Int -> V1ClusterRoleBinding -> ShowS
P.Show, V1ClusterRoleBinding -> V1ClusterRoleBinding -> Bool
(V1ClusterRoleBinding -> V1ClusterRoleBinding -> Bool)
-> (V1ClusterRoleBinding -> V1ClusterRoleBinding -> Bool)
-> Eq V1ClusterRoleBinding
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ClusterRoleBinding -> V1ClusterRoleBinding -> Bool
$c/= :: V1ClusterRoleBinding -> V1ClusterRoleBinding -> Bool
== :: V1ClusterRoleBinding -> V1ClusterRoleBinding -> Bool
$c== :: V1ClusterRoleBinding -> V1ClusterRoleBinding -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ClusterRoleBinding
instance A.FromJSON V1ClusterRoleBinding where
  parseJSON :: Value -> Parser V1ClusterRoleBinding
parseJSON = String
-> (Object -> Parser V1ClusterRoleBinding)
-> Value
-> Parser V1ClusterRoleBinding
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ClusterRoleBinding" ((Object -> Parser V1ClusterRoleBinding)
 -> Value -> Parser V1ClusterRoleBinding)
-> (Object -> Parser V1ClusterRoleBinding)
-> Value
-> Parser V1ClusterRoleBinding
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1RoleRef
-> Maybe [V1Subject]
-> V1ClusterRoleBinding
V1ClusterRoleBinding
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1RoleRef
 -> Maybe [V1Subject]
 -> V1ClusterRoleBinding)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1RoleRef
      -> Maybe [V1Subject]
      -> V1ClusterRoleBinding)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1RoleRef
   -> Maybe [V1Subject]
   -> V1ClusterRoleBinding)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1RoleRef -> Maybe [V1Subject] -> V1ClusterRoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1RoleRef -> Maybe [V1Subject] -> V1ClusterRoleBinding)
-> Parser (Maybe V1ObjectMeta)
-> Parser (V1RoleRef -> Maybe [V1Subject] -> V1ClusterRoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (V1RoleRef -> Maybe [V1Subject] -> V1ClusterRoleBinding)
-> Parser V1RoleRef
-> Parser (Maybe [V1Subject] -> V1ClusterRoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1RoleRef
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"roleRef")
      Parser (Maybe [V1Subject] -> V1ClusterRoleBinding)
-> Parser (Maybe [V1Subject]) -> Parser V1ClusterRoleBinding
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1Subject])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"subjects")

-- | ToJSON V1ClusterRoleBinding
instance A.ToJSON V1ClusterRoleBinding where
  toJSON :: V1ClusterRoleBinding -> Value
toJSON V1ClusterRoleBinding {Maybe [V1Subject]
Maybe Text
Maybe V1ObjectMeta
V1RoleRef
v1ClusterRoleBindingSubjects :: Maybe [V1Subject]
v1ClusterRoleBindingRoleRef :: V1RoleRef
v1ClusterRoleBindingMetadata :: Maybe V1ObjectMeta
v1ClusterRoleBindingKind :: Maybe Text
v1ClusterRoleBindingApiVersion :: Maybe Text
v1ClusterRoleBindingSubjects :: V1ClusterRoleBinding -> Maybe [V1Subject]
v1ClusterRoleBindingRoleRef :: V1ClusterRoleBinding -> V1RoleRef
v1ClusterRoleBindingMetadata :: V1ClusterRoleBinding -> Maybe V1ObjectMeta
v1ClusterRoleBindingKind :: V1ClusterRoleBinding -> Maybe Text
v1ClusterRoleBindingApiVersion :: V1ClusterRoleBinding -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ClusterRoleBindingApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ClusterRoleBindingKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1ClusterRoleBindingMetadata
      , Text
"roleRef" Text -> V1RoleRef -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1RoleRef
v1ClusterRoleBindingRoleRef
      , Text
"subjects" Text -> Maybe [V1Subject] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1Subject]
v1ClusterRoleBindingSubjects
      ]


-- | Construct a value of type 'V1ClusterRoleBinding' (by applying it's required fields, if any)
mkV1ClusterRoleBinding
  :: V1RoleRef -- ^ 'v1ClusterRoleBindingRoleRef' 
  -> V1ClusterRoleBinding
mkV1ClusterRoleBinding :: V1RoleRef -> V1ClusterRoleBinding
mkV1ClusterRoleBinding V1RoleRef
v1ClusterRoleBindingRoleRef =
  V1ClusterRoleBinding :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1RoleRef
-> Maybe [V1Subject]
-> V1ClusterRoleBinding
V1ClusterRoleBinding
  { v1ClusterRoleBindingApiVersion :: Maybe Text
v1ClusterRoleBindingApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ClusterRoleBindingKind :: Maybe Text
v1ClusterRoleBindingKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ClusterRoleBindingMetadata :: Maybe V1ObjectMeta
v1ClusterRoleBindingMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1RoleRef
v1ClusterRoleBindingRoleRef :: V1RoleRef
v1ClusterRoleBindingRoleRef :: V1RoleRef
v1ClusterRoleBindingRoleRef
  , v1ClusterRoleBindingSubjects :: Maybe [V1Subject]
v1ClusterRoleBindingSubjects = Maybe [V1Subject]
forall a. Maybe a
Nothing
  }

-- ** V1ClusterRoleBindingList
-- | V1ClusterRoleBindingList
-- ClusterRoleBindingList is a collection of ClusterRoleBindings
data V1ClusterRoleBindingList = V1ClusterRoleBindingList
  { V1ClusterRoleBindingList -> Maybe Text
v1ClusterRoleBindingListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ClusterRoleBindingList -> [V1ClusterRoleBinding]
v1ClusterRoleBindingListItems :: !([V1ClusterRoleBinding]) -- ^ /Required/ "items" - Items is a list of ClusterRoleBindings
  , V1ClusterRoleBindingList -> Maybe Text
v1ClusterRoleBindingListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ClusterRoleBindingList -> Maybe V1ListMeta
v1ClusterRoleBindingListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1ClusterRoleBindingList -> ShowS
[V1ClusterRoleBindingList] -> ShowS
V1ClusterRoleBindingList -> String
(Int -> V1ClusterRoleBindingList -> ShowS)
-> (V1ClusterRoleBindingList -> String)
-> ([V1ClusterRoleBindingList] -> ShowS)
-> Show V1ClusterRoleBindingList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ClusterRoleBindingList] -> ShowS
$cshowList :: [V1ClusterRoleBindingList] -> ShowS
show :: V1ClusterRoleBindingList -> String
$cshow :: V1ClusterRoleBindingList -> String
showsPrec :: Int -> V1ClusterRoleBindingList -> ShowS
$cshowsPrec :: Int -> V1ClusterRoleBindingList -> ShowS
P.Show, V1ClusterRoleBindingList -> V1ClusterRoleBindingList -> Bool
(V1ClusterRoleBindingList -> V1ClusterRoleBindingList -> Bool)
-> (V1ClusterRoleBindingList -> V1ClusterRoleBindingList -> Bool)
-> Eq V1ClusterRoleBindingList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ClusterRoleBindingList -> V1ClusterRoleBindingList -> Bool
$c/= :: V1ClusterRoleBindingList -> V1ClusterRoleBindingList -> Bool
== :: V1ClusterRoleBindingList -> V1ClusterRoleBindingList -> Bool
$c== :: V1ClusterRoleBindingList -> V1ClusterRoleBindingList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ClusterRoleBindingList
instance A.FromJSON V1ClusterRoleBindingList where
  parseJSON :: Value -> Parser V1ClusterRoleBindingList
parseJSON = String
-> (Object -> Parser V1ClusterRoleBindingList)
-> Value
-> Parser V1ClusterRoleBindingList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ClusterRoleBindingList" ((Object -> Parser V1ClusterRoleBindingList)
 -> Value -> Parser V1ClusterRoleBindingList)
-> (Object -> Parser V1ClusterRoleBindingList)
-> Value
-> Parser V1ClusterRoleBindingList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1ClusterRoleBinding]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ClusterRoleBindingList
V1ClusterRoleBindingList
      (Maybe Text
 -> [V1ClusterRoleBinding]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1ClusterRoleBindingList)
-> Parser (Maybe Text)
-> Parser
     ([V1ClusterRoleBinding]
      -> Maybe Text -> Maybe V1ListMeta -> V1ClusterRoleBindingList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1ClusterRoleBinding]
   -> Maybe Text -> Maybe V1ListMeta -> V1ClusterRoleBindingList)
-> Parser [V1ClusterRoleBinding]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1ClusterRoleBindingList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1ClusterRoleBinding]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1ClusterRoleBindingList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1ClusterRoleBindingList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1ClusterRoleBindingList)
-> Parser (Maybe V1ListMeta) -> Parser V1ClusterRoleBindingList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1ClusterRoleBindingList
instance A.ToJSON V1ClusterRoleBindingList where
  toJSON :: V1ClusterRoleBindingList -> Value
toJSON V1ClusterRoleBindingList {[V1ClusterRoleBinding]
Maybe Text
Maybe V1ListMeta
v1ClusterRoleBindingListMetadata :: Maybe V1ListMeta
v1ClusterRoleBindingListKind :: Maybe Text
v1ClusterRoleBindingListItems :: [V1ClusterRoleBinding]
v1ClusterRoleBindingListApiVersion :: Maybe Text
v1ClusterRoleBindingListMetadata :: V1ClusterRoleBindingList -> Maybe V1ListMeta
v1ClusterRoleBindingListKind :: V1ClusterRoleBindingList -> Maybe Text
v1ClusterRoleBindingListItems :: V1ClusterRoleBindingList -> [V1ClusterRoleBinding]
v1ClusterRoleBindingListApiVersion :: V1ClusterRoleBindingList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ClusterRoleBindingListApiVersion
      , Text
"items" Text -> [V1ClusterRoleBinding] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1ClusterRoleBinding]
v1ClusterRoleBindingListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ClusterRoleBindingListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1ClusterRoleBindingListMetadata
      ]


-- | Construct a value of type 'V1ClusterRoleBindingList' (by applying it's required fields, if any)
mkV1ClusterRoleBindingList
  :: [V1ClusterRoleBinding] -- ^ 'v1ClusterRoleBindingListItems': Items is a list of ClusterRoleBindings
  -> V1ClusterRoleBindingList
mkV1ClusterRoleBindingList :: [V1ClusterRoleBinding] -> V1ClusterRoleBindingList
mkV1ClusterRoleBindingList [V1ClusterRoleBinding]
v1ClusterRoleBindingListItems =
  V1ClusterRoleBindingList :: Maybe Text
-> [V1ClusterRoleBinding]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ClusterRoleBindingList
V1ClusterRoleBindingList
  { v1ClusterRoleBindingListApiVersion :: Maybe Text
v1ClusterRoleBindingListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1ClusterRoleBinding]
v1ClusterRoleBindingListItems :: [V1ClusterRoleBinding]
v1ClusterRoleBindingListItems :: [V1ClusterRoleBinding]
v1ClusterRoleBindingListItems
  , v1ClusterRoleBindingListKind :: Maybe Text
v1ClusterRoleBindingListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ClusterRoleBindingListMetadata :: Maybe V1ListMeta
v1ClusterRoleBindingListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1ClusterRoleList
-- | V1ClusterRoleList
-- ClusterRoleList is a collection of ClusterRoles
data V1ClusterRoleList = V1ClusterRoleList
  { V1ClusterRoleList -> Maybe Text
v1ClusterRoleListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ClusterRoleList -> [V1ClusterRole]
v1ClusterRoleListItems :: !([V1ClusterRole]) -- ^ /Required/ "items" - Items is a list of ClusterRoles
  , V1ClusterRoleList -> Maybe Text
v1ClusterRoleListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ClusterRoleList -> Maybe V1ListMeta
v1ClusterRoleListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1ClusterRoleList -> ShowS
[V1ClusterRoleList] -> ShowS
V1ClusterRoleList -> String
(Int -> V1ClusterRoleList -> ShowS)
-> (V1ClusterRoleList -> String)
-> ([V1ClusterRoleList] -> ShowS)
-> Show V1ClusterRoleList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ClusterRoleList] -> ShowS
$cshowList :: [V1ClusterRoleList] -> ShowS
show :: V1ClusterRoleList -> String
$cshow :: V1ClusterRoleList -> String
showsPrec :: Int -> V1ClusterRoleList -> ShowS
$cshowsPrec :: Int -> V1ClusterRoleList -> ShowS
P.Show, V1ClusterRoleList -> V1ClusterRoleList -> Bool
(V1ClusterRoleList -> V1ClusterRoleList -> Bool)
-> (V1ClusterRoleList -> V1ClusterRoleList -> Bool)
-> Eq V1ClusterRoleList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ClusterRoleList -> V1ClusterRoleList -> Bool
$c/= :: V1ClusterRoleList -> V1ClusterRoleList -> Bool
== :: V1ClusterRoleList -> V1ClusterRoleList -> Bool
$c== :: V1ClusterRoleList -> V1ClusterRoleList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ClusterRoleList
instance A.FromJSON V1ClusterRoleList where
  parseJSON :: Value -> Parser V1ClusterRoleList
parseJSON = String
-> (Object -> Parser V1ClusterRoleList)
-> Value
-> Parser V1ClusterRoleList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ClusterRoleList" ((Object -> Parser V1ClusterRoleList)
 -> Value -> Parser V1ClusterRoleList)
-> (Object -> Parser V1ClusterRoleList)
-> Value
-> Parser V1ClusterRoleList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1ClusterRole]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ClusterRoleList
V1ClusterRoleList
      (Maybe Text
 -> [V1ClusterRole]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1ClusterRoleList)
-> Parser (Maybe Text)
-> Parser
     ([V1ClusterRole]
      -> Maybe Text -> Maybe V1ListMeta -> V1ClusterRoleList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1ClusterRole]
   -> Maybe Text -> Maybe V1ListMeta -> V1ClusterRoleList)
-> Parser [V1ClusterRole]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1ClusterRoleList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1ClusterRole]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1ClusterRoleList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1ClusterRoleList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1ClusterRoleList)
-> Parser (Maybe V1ListMeta) -> Parser V1ClusterRoleList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1ClusterRoleList
instance A.ToJSON V1ClusterRoleList where
  toJSON :: V1ClusterRoleList -> Value
toJSON V1ClusterRoleList {[V1ClusterRole]
Maybe Text
Maybe V1ListMeta
v1ClusterRoleListMetadata :: Maybe V1ListMeta
v1ClusterRoleListKind :: Maybe Text
v1ClusterRoleListItems :: [V1ClusterRole]
v1ClusterRoleListApiVersion :: Maybe Text
v1ClusterRoleListMetadata :: V1ClusterRoleList -> Maybe V1ListMeta
v1ClusterRoleListKind :: V1ClusterRoleList -> Maybe Text
v1ClusterRoleListItems :: V1ClusterRoleList -> [V1ClusterRole]
v1ClusterRoleListApiVersion :: V1ClusterRoleList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ClusterRoleListApiVersion
      , Text
"items" Text -> [V1ClusterRole] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1ClusterRole]
v1ClusterRoleListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ClusterRoleListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1ClusterRoleListMetadata
      ]


-- | Construct a value of type 'V1ClusterRoleList' (by applying it's required fields, if any)
mkV1ClusterRoleList
  :: [V1ClusterRole] -- ^ 'v1ClusterRoleListItems': Items is a list of ClusterRoles
  -> V1ClusterRoleList
mkV1ClusterRoleList :: [V1ClusterRole] -> V1ClusterRoleList
mkV1ClusterRoleList [V1ClusterRole]
v1ClusterRoleListItems =
  V1ClusterRoleList :: Maybe Text
-> [V1ClusterRole]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ClusterRoleList
V1ClusterRoleList
  { v1ClusterRoleListApiVersion :: Maybe Text
v1ClusterRoleListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1ClusterRole]
v1ClusterRoleListItems :: [V1ClusterRole]
v1ClusterRoleListItems :: [V1ClusterRole]
v1ClusterRoleListItems
  , v1ClusterRoleListKind :: Maybe Text
v1ClusterRoleListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ClusterRoleListMetadata :: Maybe V1ListMeta
v1ClusterRoleListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1ComponentCondition
-- | V1ComponentCondition
-- Information about the condition of a component.
data V1ComponentCondition = V1ComponentCondition
  { V1ComponentCondition -> Maybe Text
v1ComponentConditionError :: !(Maybe Text) -- ^ "error" - Condition error code for a component. For example, a health check error code.
  , V1ComponentCondition -> Maybe Text
v1ComponentConditionMessage :: !(Maybe Text) -- ^ "message" - Message about the condition for a component. For example, information about a health check.
  , V1ComponentCondition -> Text
v1ComponentConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition for a component. Valid values for \&quot;Healthy\&quot;: \&quot;True\&quot;, \&quot;False\&quot;, or \&quot;Unknown\&quot;.
  , V1ComponentCondition -> Text
v1ComponentConditionType :: !(Text) -- ^ /Required/ "type" - Type of condition for a component. Valid value: \&quot;Healthy\&quot;
  } deriving (Int -> V1ComponentCondition -> ShowS
[V1ComponentCondition] -> ShowS
V1ComponentCondition -> String
(Int -> V1ComponentCondition -> ShowS)
-> (V1ComponentCondition -> String)
-> ([V1ComponentCondition] -> ShowS)
-> Show V1ComponentCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ComponentCondition] -> ShowS
$cshowList :: [V1ComponentCondition] -> ShowS
show :: V1ComponentCondition -> String
$cshow :: V1ComponentCondition -> String
showsPrec :: Int -> V1ComponentCondition -> ShowS
$cshowsPrec :: Int -> V1ComponentCondition -> ShowS
P.Show, V1ComponentCondition -> V1ComponentCondition -> Bool
(V1ComponentCondition -> V1ComponentCondition -> Bool)
-> (V1ComponentCondition -> V1ComponentCondition -> Bool)
-> Eq V1ComponentCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ComponentCondition -> V1ComponentCondition -> Bool
$c/= :: V1ComponentCondition -> V1ComponentCondition -> Bool
== :: V1ComponentCondition -> V1ComponentCondition -> Bool
$c== :: V1ComponentCondition -> V1ComponentCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ComponentCondition
instance A.FromJSON V1ComponentCondition where
  parseJSON :: Value -> Parser V1ComponentCondition
parseJSON = String
-> (Object -> Parser V1ComponentCondition)
-> Value
-> Parser V1ComponentCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ComponentCondition" ((Object -> Parser V1ComponentCondition)
 -> Value -> Parser V1ComponentCondition)
-> (Object -> Parser V1ComponentCondition)
-> Value
-> Parser V1ComponentCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Text -> Text -> Text -> V1ComponentCondition
V1ComponentCondition
      (Maybe Text -> Maybe Text -> Text -> Text -> V1ComponentCondition)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Text -> Text -> V1ComponentCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"error")
      Parser (Maybe Text -> Text -> Text -> V1ComponentCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1ComponentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Text -> Text -> V1ComponentCondition)
-> Parser Text -> Parser (Text -> V1ComponentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1ComponentCondition)
-> Parser Text -> Parser V1ComponentCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1ComponentCondition
instance A.ToJSON V1ComponentCondition where
  toJSON :: V1ComponentCondition -> Value
toJSON V1ComponentCondition {Maybe Text
Text
v1ComponentConditionType :: Text
v1ComponentConditionStatus :: Text
v1ComponentConditionMessage :: Maybe Text
v1ComponentConditionError :: Maybe Text
v1ComponentConditionType :: V1ComponentCondition -> Text
v1ComponentConditionStatus :: V1ComponentCondition -> Text
v1ComponentConditionMessage :: V1ComponentCondition -> Maybe Text
v1ComponentConditionError :: V1ComponentCondition -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"error" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ComponentConditionError
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ComponentConditionMessage
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ComponentConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ComponentConditionType
      ]


-- | Construct a value of type 'V1ComponentCondition' (by applying it's required fields, if any)
mkV1ComponentCondition
  :: Text -- ^ 'v1ComponentConditionStatus': Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".
  -> Text -- ^ 'v1ComponentConditionType': Type of condition for a component. Valid value: \"Healthy\"
  -> V1ComponentCondition
mkV1ComponentCondition :: Text -> Text -> V1ComponentCondition
mkV1ComponentCondition Text
v1ComponentConditionStatus Text
v1ComponentConditionType =
  V1ComponentCondition :: Maybe Text -> Maybe Text -> Text -> Text -> V1ComponentCondition
V1ComponentCondition
  { v1ComponentConditionError :: Maybe Text
v1ComponentConditionError = Maybe Text
forall a. Maybe a
Nothing
  , v1ComponentConditionMessage :: Maybe Text
v1ComponentConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1ComponentConditionStatus :: Text
v1ComponentConditionStatus :: Text
v1ComponentConditionStatus
  , Text
v1ComponentConditionType :: Text
v1ComponentConditionType :: Text
v1ComponentConditionType
  }

-- ** V1ComponentStatus
-- | V1ComponentStatus
-- ComponentStatus (and ComponentStatusList) holds the cluster validation info.
data V1ComponentStatus = V1ComponentStatus
  { V1ComponentStatus -> Maybe Text
v1ComponentStatusApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ComponentStatus -> Maybe [V1ComponentCondition]
v1ComponentStatusConditions :: !(Maybe [V1ComponentCondition]) -- ^ "conditions" - List of component conditions observed
  , V1ComponentStatus -> Maybe Text
v1ComponentStatusKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ComponentStatus -> Maybe V1ObjectMeta
v1ComponentStatusMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  } deriving (Int -> V1ComponentStatus -> ShowS
[V1ComponentStatus] -> ShowS
V1ComponentStatus -> String
(Int -> V1ComponentStatus -> ShowS)
-> (V1ComponentStatus -> String)
-> ([V1ComponentStatus] -> ShowS)
-> Show V1ComponentStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ComponentStatus] -> ShowS
$cshowList :: [V1ComponentStatus] -> ShowS
show :: V1ComponentStatus -> String
$cshow :: V1ComponentStatus -> String
showsPrec :: Int -> V1ComponentStatus -> ShowS
$cshowsPrec :: Int -> V1ComponentStatus -> ShowS
P.Show, V1ComponentStatus -> V1ComponentStatus -> Bool
(V1ComponentStatus -> V1ComponentStatus -> Bool)
-> (V1ComponentStatus -> V1ComponentStatus -> Bool)
-> Eq V1ComponentStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ComponentStatus -> V1ComponentStatus -> Bool
$c/= :: V1ComponentStatus -> V1ComponentStatus -> Bool
== :: V1ComponentStatus -> V1ComponentStatus -> Bool
$c== :: V1ComponentStatus -> V1ComponentStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ComponentStatus
instance A.FromJSON V1ComponentStatus where
  parseJSON :: Value -> Parser V1ComponentStatus
parseJSON = String
-> (Object -> Parser V1ComponentStatus)
-> Value
-> Parser V1ComponentStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ComponentStatus" ((Object -> Parser V1ComponentStatus)
 -> Value -> Parser V1ComponentStatus)
-> (Object -> Parser V1ComponentStatus)
-> Value
-> Parser V1ComponentStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe [V1ComponentCondition]
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1ComponentStatus
V1ComponentStatus
      (Maybe Text
 -> Maybe [V1ComponentCondition]
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1ComponentStatus)
-> Parser (Maybe Text)
-> Parser
     (Maybe [V1ComponentCondition]
      -> Maybe Text -> Maybe V1ObjectMeta -> V1ComponentStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe [V1ComponentCondition]
   -> Maybe Text -> Maybe V1ObjectMeta -> V1ComponentStatus)
-> Parser (Maybe [V1ComponentCondition])
-> Parser (Maybe Text -> Maybe V1ObjectMeta -> V1ComponentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1ComponentCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser (Maybe Text -> Maybe V1ObjectMeta -> V1ComponentStatus)
-> Parser (Maybe Text)
-> Parser (Maybe V1ObjectMeta -> V1ComponentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ObjectMeta -> V1ComponentStatus)
-> Parser (Maybe V1ObjectMeta) -> Parser V1ComponentStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1ComponentStatus
instance A.ToJSON V1ComponentStatus where
  toJSON :: V1ComponentStatus -> Value
toJSON V1ComponentStatus {Maybe [V1ComponentCondition]
Maybe Text
Maybe V1ObjectMeta
v1ComponentStatusMetadata :: Maybe V1ObjectMeta
v1ComponentStatusKind :: Maybe Text
v1ComponentStatusConditions :: Maybe [V1ComponentCondition]
v1ComponentStatusApiVersion :: Maybe Text
v1ComponentStatusMetadata :: V1ComponentStatus -> Maybe V1ObjectMeta
v1ComponentStatusKind :: V1ComponentStatus -> Maybe Text
v1ComponentStatusConditions :: V1ComponentStatus -> Maybe [V1ComponentCondition]
v1ComponentStatusApiVersion :: V1ComponentStatus -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ComponentStatusApiVersion
      , Text
"conditions" Text -> Maybe [V1ComponentCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ComponentCondition]
v1ComponentStatusConditions
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ComponentStatusKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1ComponentStatusMetadata
      ]


-- | Construct a value of type 'V1ComponentStatus' (by applying it's required fields, if any)
mkV1ComponentStatus
  :: V1ComponentStatus
mkV1ComponentStatus :: V1ComponentStatus
mkV1ComponentStatus =
  V1ComponentStatus :: Maybe Text
-> Maybe [V1ComponentCondition]
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1ComponentStatus
V1ComponentStatus
  { v1ComponentStatusApiVersion :: Maybe Text
v1ComponentStatusApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ComponentStatusConditions :: Maybe [V1ComponentCondition]
v1ComponentStatusConditions = Maybe [V1ComponentCondition]
forall a. Maybe a
Nothing
  , v1ComponentStatusKind :: Maybe Text
v1ComponentStatusKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ComponentStatusMetadata :: Maybe V1ObjectMeta
v1ComponentStatusMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  }

-- ** V1ComponentStatusList
-- | V1ComponentStatusList
-- Status of all the conditions for the component as a list of ComponentStatus objects.
data V1ComponentStatusList = V1ComponentStatusList
  { V1ComponentStatusList -> Maybe Text
v1ComponentStatusListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ComponentStatusList -> [V1ComponentStatus]
v1ComponentStatusListItems :: !([V1ComponentStatus]) -- ^ /Required/ "items" - List of ComponentStatus objects.
  , V1ComponentStatusList -> Maybe Text
v1ComponentStatusListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ComponentStatusList -> Maybe V1ListMeta
v1ComponentStatusListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1ComponentStatusList -> ShowS
[V1ComponentStatusList] -> ShowS
V1ComponentStatusList -> String
(Int -> V1ComponentStatusList -> ShowS)
-> (V1ComponentStatusList -> String)
-> ([V1ComponentStatusList] -> ShowS)
-> Show V1ComponentStatusList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ComponentStatusList] -> ShowS
$cshowList :: [V1ComponentStatusList] -> ShowS
show :: V1ComponentStatusList -> String
$cshow :: V1ComponentStatusList -> String
showsPrec :: Int -> V1ComponentStatusList -> ShowS
$cshowsPrec :: Int -> V1ComponentStatusList -> ShowS
P.Show, V1ComponentStatusList -> V1ComponentStatusList -> Bool
(V1ComponentStatusList -> V1ComponentStatusList -> Bool)
-> (V1ComponentStatusList -> V1ComponentStatusList -> Bool)
-> Eq V1ComponentStatusList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ComponentStatusList -> V1ComponentStatusList -> Bool
$c/= :: V1ComponentStatusList -> V1ComponentStatusList -> Bool
== :: V1ComponentStatusList -> V1ComponentStatusList -> Bool
$c== :: V1ComponentStatusList -> V1ComponentStatusList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ComponentStatusList
instance A.FromJSON V1ComponentStatusList where
  parseJSON :: Value -> Parser V1ComponentStatusList
parseJSON = String
-> (Object -> Parser V1ComponentStatusList)
-> Value
-> Parser V1ComponentStatusList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ComponentStatusList" ((Object -> Parser V1ComponentStatusList)
 -> Value -> Parser V1ComponentStatusList)
-> (Object -> Parser V1ComponentStatusList)
-> Value
-> Parser V1ComponentStatusList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1ComponentStatus]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ComponentStatusList
V1ComponentStatusList
      (Maybe Text
 -> [V1ComponentStatus]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1ComponentStatusList)
-> Parser (Maybe Text)
-> Parser
     ([V1ComponentStatus]
      -> Maybe Text -> Maybe V1ListMeta -> V1ComponentStatusList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1ComponentStatus]
   -> Maybe Text -> Maybe V1ListMeta -> V1ComponentStatusList)
-> Parser [V1ComponentStatus]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1ComponentStatusList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1ComponentStatus]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1ComponentStatusList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1ComponentStatusList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1ComponentStatusList)
-> Parser (Maybe V1ListMeta) -> Parser V1ComponentStatusList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1ComponentStatusList
instance A.ToJSON V1ComponentStatusList where
  toJSON :: V1ComponentStatusList -> Value
toJSON V1ComponentStatusList {[V1ComponentStatus]
Maybe Text
Maybe V1ListMeta
v1ComponentStatusListMetadata :: Maybe V1ListMeta
v1ComponentStatusListKind :: Maybe Text
v1ComponentStatusListItems :: [V1ComponentStatus]
v1ComponentStatusListApiVersion :: Maybe Text
v1ComponentStatusListMetadata :: V1ComponentStatusList -> Maybe V1ListMeta
v1ComponentStatusListKind :: V1ComponentStatusList -> Maybe Text
v1ComponentStatusListItems :: V1ComponentStatusList -> [V1ComponentStatus]
v1ComponentStatusListApiVersion :: V1ComponentStatusList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ComponentStatusListApiVersion
      , Text
"items" Text -> [V1ComponentStatus] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1ComponentStatus]
v1ComponentStatusListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ComponentStatusListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1ComponentStatusListMetadata
      ]


-- | Construct a value of type 'V1ComponentStatusList' (by applying it's required fields, if any)
mkV1ComponentStatusList
  :: [V1ComponentStatus] -- ^ 'v1ComponentStatusListItems': List of ComponentStatus objects.
  -> V1ComponentStatusList
mkV1ComponentStatusList :: [V1ComponentStatus] -> V1ComponentStatusList
mkV1ComponentStatusList [V1ComponentStatus]
v1ComponentStatusListItems =
  V1ComponentStatusList :: Maybe Text
-> [V1ComponentStatus]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ComponentStatusList
V1ComponentStatusList
  { v1ComponentStatusListApiVersion :: Maybe Text
v1ComponentStatusListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1ComponentStatus]
v1ComponentStatusListItems :: [V1ComponentStatus]
v1ComponentStatusListItems :: [V1ComponentStatus]
v1ComponentStatusListItems
  , v1ComponentStatusListKind :: Maybe Text
v1ComponentStatusListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ComponentStatusListMetadata :: Maybe V1ListMeta
v1ComponentStatusListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1ConfigMap
-- | V1ConfigMap
-- ConfigMap holds configuration data for pods to consume.
data V1ConfigMap = V1ConfigMap
  { V1ConfigMap -> Maybe Text
v1ConfigMapApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ConfigMap -> Maybe (Map String ByteArray)
v1ConfigMapBinaryData :: !(Maybe (Map.Map String ByteArray)) -- ^ "binaryData" - BinaryData contains the binary data. Each key must consist of alphanumeric characters, &#39;-&#39;, &#39;_&#39; or &#39;.&#39;. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.
  , V1ConfigMap -> Maybe (Map String Text)
v1ConfigMapData :: !(Maybe (Map.Map String Text)) -- ^ "data" - Data contains the configuration data. Each key must consist of alphanumeric characters, &#39;-&#39;, &#39;_&#39; or &#39;.&#39;. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.
  , V1ConfigMap -> Maybe Text
v1ConfigMapKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ConfigMap -> Maybe V1ObjectMeta
v1ConfigMapMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  } deriving (Int -> V1ConfigMap -> ShowS
[V1ConfigMap] -> ShowS
V1ConfigMap -> String
(Int -> V1ConfigMap -> ShowS)
-> (V1ConfigMap -> String)
-> ([V1ConfigMap] -> ShowS)
-> Show V1ConfigMap
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ConfigMap] -> ShowS
$cshowList :: [V1ConfigMap] -> ShowS
show :: V1ConfigMap -> String
$cshow :: V1ConfigMap -> String
showsPrec :: Int -> V1ConfigMap -> ShowS
$cshowsPrec :: Int -> V1ConfigMap -> ShowS
P.Show, V1ConfigMap -> V1ConfigMap -> Bool
(V1ConfigMap -> V1ConfigMap -> Bool)
-> (V1ConfigMap -> V1ConfigMap -> Bool) -> Eq V1ConfigMap
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ConfigMap -> V1ConfigMap -> Bool
$c/= :: V1ConfigMap -> V1ConfigMap -> Bool
== :: V1ConfigMap -> V1ConfigMap -> Bool
$c== :: V1ConfigMap -> V1ConfigMap -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ConfigMap
instance A.FromJSON V1ConfigMap where
  parseJSON :: Value -> Parser V1ConfigMap
parseJSON = String
-> (Object -> Parser V1ConfigMap) -> Value -> Parser V1ConfigMap
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ConfigMap" ((Object -> Parser V1ConfigMap) -> Value -> Parser V1ConfigMap)
-> (Object -> Parser V1ConfigMap) -> Value -> Parser V1ConfigMap
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe (Map String ByteArray)
-> Maybe (Map String Text)
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1ConfigMap
V1ConfigMap
      (Maybe Text
 -> Maybe (Map String ByteArray)
 -> Maybe (Map String Text)
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1ConfigMap)
-> Parser (Maybe Text)
-> Parser
     (Maybe (Map String ByteArray)
      -> Maybe (Map String Text)
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> V1ConfigMap)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe (Map String ByteArray)
   -> Maybe (Map String Text)
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> V1ConfigMap)
-> Parser (Maybe (Map String ByteArray))
-> Parser
     (Maybe (Map String Text)
      -> Maybe Text -> Maybe V1ObjectMeta -> V1ConfigMap)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String ByteArray))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"binaryData")
      Parser
  (Maybe (Map String Text)
   -> Maybe Text -> Maybe V1ObjectMeta -> V1ConfigMap)
-> Parser (Maybe (Map String Text))
-> Parser (Maybe Text -> Maybe V1ObjectMeta -> V1ConfigMap)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"data")
      Parser (Maybe Text -> Maybe V1ObjectMeta -> V1ConfigMap)
-> Parser (Maybe Text)
-> Parser (Maybe V1ObjectMeta -> V1ConfigMap)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ObjectMeta -> V1ConfigMap)
-> Parser (Maybe V1ObjectMeta) -> Parser V1ConfigMap
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1ConfigMap
instance A.ToJSON V1ConfigMap where
  toJSON :: V1ConfigMap -> Value
toJSON V1ConfigMap {Maybe Text
Maybe (Map String Text)
Maybe (Map String ByteArray)
Maybe V1ObjectMeta
v1ConfigMapMetadata :: Maybe V1ObjectMeta
v1ConfigMapKind :: Maybe Text
v1ConfigMapData :: Maybe (Map String Text)
v1ConfigMapBinaryData :: Maybe (Map String ByteArray)
v1ConfigMapApiVersion :: Maybe Text
v1ConfigMapMetadata :: V1ConfigMap -> Maybe V1ObjectMeta
v1ConfigMapKind :: V1ConfigMap -> Maybe Text
v1ConfigMapData :: V1ConfigMap -> Maybe (Map String Text)
v1ConfigMapBinaryData :: V1ConfigMap -> Maybe (Map String ByteArray)
v1ConfigMapApiVersion :: V1ConfigMap -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ConfigMapApiVersion
      , Text
"binaryData" Text -> Maybe (Map String ByteArray) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String ByteArray)
v1ConfigMapBinaryData
      , Text
"data" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1ConfigMapData
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ConfigMapKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1ConfigMapMetadata
      ]


-- | Construct a value of type 'V1ConfigMap' (by applying it's required fields, if any)
mkV1ConfigMap
  :: V1ConfigMap
mkV1ConfigMap :: V1ConfigMap
mkV1ConfigMap =
  V1ConfigMap :: Maybe Text
-> Maybe (Map String ByteArray)
-> Maybe (Map String Text)
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1ConfigMap
V1ConfigMap
  { v1ConfigMapApiVersion :: Maybe Text
v1ConfigMapApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ConfigMapBinaryData :: Maybe (Map String ByteArray)
v1ConfigMapBinaryData = Maybe (Map String ByteArray)
forall a. Maybe a
Nothing
  , v1ConfigMapData :: Maybe (Map String Text)
v1ConfigMapData = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , v1ConfigMapKind :: Maybe Text
v1ConfigMapKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ConfigMapMetadata :: Maybe V1ObjectMeta
v1ConfigMapMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  }

-- ** V1ConfigMapEnvSource
-- | V1ConfigMapEnvSource
-- ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.  The contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.
data V1ConfigMapEnvSource = V1ConfigMapEnvSource
  { V1ConfigMapEnvSource -> Maybe Text
v1ConfigMapEnvSourceName :: !(Maybe Text) -- ^ "name" - Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  , V1ConfigMapEnvSource -> Maybe Bool
v1ConfigMapEnvSourceOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the ConfigMap must be defined
  } deriving (Int -> V1ConfigMapEnvSource -> ShowS
[V1ConfigMapEnvSource] -> ShowS
V1ConfigMapEnvSource -> String
(Int -> V1ConfigMapEnvSource -> ShowS)
-> (V1ConfigMapEnvSource -> String)
-> ([V1ConfigMapEnvSource] -> ShowS)
-> Show V1ConfigMapEnvSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ConfigMapEnvSource] -> ShowS
$cshowList :: [V1ConfigMapEnvSource] -> ShowS
show :: V1ConfigMapEnvSource -> String
$cshow :: V1ConfigMapEnvSource -> String
showsPrec :: Int -> V1ConfigMapEnvSource -> ShowS
$cshowsPrec :: Int -> V1ConfigMapEnvSource -> ShowS
P.Show, V1ConfigMapEnvSource -> V1ConfigMapEnvSource -> Bool
(V1ConfigMapEnvSource -> V1ConfigMapEnvSource -> Bool)
-> (V1ConfigMapEnvSource -> V1ConfigMapEnvSource -> Bool)
-> Eq V1ConfigMapEnvSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ConfigMapEnvSource -> V1ConfigMapEnvSource -> Bool
$c/= :: V1ConfigMapEnvSource -> V1ConfigMapEnvSource -> Bool
== :: V1ConfigMapEnvSource -> V1ConfigMapEnvSource -> Bool
$c== :: V1ConfigMapEnvSource -> V1ConfigMapEnvSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ConfigMapEnvSource
instance A.FromJSON V1ConfigMapEnvSource where
  parseJSON :: Value -> Parser V1ConfigMapEnvSource
parseJSON = String
-> (Object -> Parser V1ConfigMapEnvSource)
-> Value
-> Parser V1ConfigMapEnvSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ConfigMapEnvSource" ((Object -> Parser V1ConfigMapEnvSource)
 -> Value -> Parser V1ConfigMapEnvSource)
-> (Object -> Parser V1ConfigMapEnvSource)
-> Value
-> Parser V1ConfigMapEnvSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Bool -> V1ConfigMapEnvSource
V1ConfigMapEnvSource
      (Maybe Text -> Maybe Bool -> V1ConfigMapEnvSource)
-> Parser (Maybe Text)
-> Parser (Maybe Bool -> V1ConfigMapEnvSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser (Maybe Bool -> V1ConfigMapEnvSource)
-> Parser (Maybe Bool) -> Parser V1ConfigMapEnvSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"optional")

-- | ToJSON V1ConfigMapEnvSource
instance A.ToJSON V1ConfigMapEnvSource where
  toJSON :: V1ConfigMapEnvSource -> Value
toJSON V1ConfigMapEnvSource {Maybe Bool
Maybe Text
v1ConfigMapEnvSourceOptional :: Maybe Bool
v1ConfigMapEnvSourceName :: Maybe Text
v1ConfigMapEnvSourceOptional :: V1ConfigMapEnvSource -> Maybe Bool
v1ConfigMapEnvSourceName :: V1ConfigMapEnvSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ConfigMapEnvSourceName
      , Text
"optional" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ConfigMapEnvSourceOptional
      ]


-- | Construct a value of type 'V1ConfigMapEnvSource' (by applying it's required fields, if any)
mkV1ConfigMapEnvSource
  :: V1ConfigMapEnvSource
mkV1ConfigMapEnvSource :: V1ConfigMapEnvSource
mkV1ConfigMapEnvSource =
  V1ConfigMapEnvSource :: Maybe Text -> Maybe Bool -> V1ConfigMapEnvSource
V1ConfigMapEnvSource
  { v1ConfigMapEnvSourceName :: Maybe Text
v1ConfigMapEnvSourceName = Maybe Text
forall a. Maybe a
Nothing
  , v1ConfigMapEnvSourceOptional :: Maybe Bool
v1ConfigMapEnvSourceOptional = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1ConfigMapKeySelector
-- | V1ConfigMapKeySelector
-- Selects a key from a ConfigMap.
data V1ConfigMapKeySelector = V1ConfigMapKeySelector
  { V1ConfigMapKeySelector -> Text
v1ConfigMapKeySelectorKey :: !(Text) -- ^ /Required/ "key" - The key to select.
  , V1ConfigMapKeySelector -> Maybe Text
v1ConfigMapKeySelectorName :: !(Maybe Text) -- ^ "name" - Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  , V1ConfigMapKeySelector -> Maybe Bool
v1ConfigMapKeySelectorOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the ConfigMap or its key must be defined
  } deriving (Int -> V1ConfigMapKeySelector -> ShowS
[V1ConfigMapKeySelector] -> ShowS
V1ConfigMapKeySelector -> String
(Int -> V1ConfigMapKeySelector -> ShowS)
-> (V1ConfigMapKeySelector -> String)
-> ([V1ConfigMapKeySelector] -> ShowS)
-> Show V1ConfigMapKeySelector
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ConfigMapKeySelector] -> ShowS
$cshowList :: [V1ConfigMapKeySelector] -> ShowS
show :: V1ConfigMapKeySelector -> String
$cshow :: V1ConfigMapKeySelector -> String
showsPrec :: Int -> V1ConfigMapKeySelector -> ShowS
$cshowsPrec :: Int -> V1ConfigMapKeySelector -> ShowS
P.Show, V1ConfigMapKeySelector -> V1ConfigMapKeySelector -> Bool
(V1ConfigMapKeySelector -> V1ConfigMapKeySelector -> Bool)
-> (V1ConfigMapKeySelector -> V1ConfigMapKeySelector -> Bool)
-> Eq V1ConfigMapKeySelector
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ConfigMapKeySelector -> V1ConfigMapKeySelector -> Bool
$c/= :: V1ConfigMapKeySelector -> V1ConfigMapKeySelector -> Bool
== :: V1ConfigMapKeySelector -> V1ConfigMapKeySelector -> Bool
$c== :: V1ConfigMapKeySelector -> V1ConfigMapKeySelector -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ConfigMapKeySelector
instance A.FromJSON V1ConfigMapKeySelector where
  parseJSON :: Value -> Parser V1ConfigMapKeySelector
parseJSON = String
-> (Object -> Parser V1ConfigMapKeySelector)
-> Value
-> Parser V1ConfigMapKeySelector
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ConfigMapKeySelector" ((Object -> Parser V1ConfigMapKeySelector)
 -> Value -> Parser V1ConfigMapKeySelector)
-> (Object -> Parser V1ConfigMapKeySelector)
-> Value
-> Parser V1ConfigMapKeySelector
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Maybe Text -> Maybe Bool -> V1ConfigMapKeySelector
V1ConfigMapKeySelector
      (Text -> Maybe Text -> Maybe Bool -> V1ConfigMapKeySelector)
-> Parser Text
-> Parser (Maybe Text -> Maybe Bool -> V1ConfigMapKeySelector)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"key")
      Parser (Maybe Text -> Maybe Bool -> V1ConfigMapKeySelector)
-> Parser (Maybe Text)
-> Parser (Maybe Bool -> V1ConfigMapKeySelector)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser (Maybe Bool -> V1ConfigMapKeySelector)
-> Parser (Maybe Bool) -> Parser V1ConfigMapKeySelector
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"optional")

-- | ToJSON V1ConfigMapKeySelector
instance A.ToJSON V1ConfigMapKeySelector where
  toJSON :: V1ConfigMapKeySelector -> Value
toJSON V1ConfigMapKeySelector {Maybe Bool
Maybe Text
Text
v1ConfigMapKeySelectorOptional :: Maybe Bool
v1ConfigMapKeySelectorName :: Maybe Text
v1ConfigMapKeySelectorKey :: Text
v1ConfigMapKeySelectorOptional :: V1ConfigMapKeySelector -> Maybe Bool
v1ConfigMapKeySelectorName :: V1ConfigMapKeySelector -> Maybe Text
v1ConfigMapKeySelectorKey :: V1ConfigMapKeySelector -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"key" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ConfigMapKeySelectorKey
      , Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ConfigMapKeySelectorName
      , Text
"optional" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ConfigMapKeySelectorOptional
      ]


-- | Construct a value of type 'V1ConfigMapKeySelector' (by applying it's required fields, if any)
mkV1ConfigMapKeySelector
  :: Text -- ^ 'v1ConfigMapKeySelectorKey': The key to select.
  -> V1ConfigMapKeySelector
mkV1ConfigMapKeySelector :: Text -> V1ConfigMapKeySelector
mkV1ConfigMapKeySelector Text
v1ConfigMapKeySelectorKey =
  V1ConfigMapKeySelector :: Text -> Maybe Text -> Maybe Bool -> V1ConfigMapKeySelector
V1ConfigMapKeySelector
  { Text
v1ConfigMapKeySelectorKey :: Text
v1ConfigMapKeySelectorKey :: Text
v1ConfigMapKeySelectorKey
  , v1ConfigMapKeySelectorName :: Maybe Text
v1ConfigMapKeySelectorName = Maybe Text
forall a. Maybe a
Nothing
  , v1ConfigMapKeySelectorOptional :: Maybe Bool
v1ConfigMapKeySelectorOptional = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1ConfigMapList
-- | V1ConfigMapList
-- ConfigMapList is a resource containing a list of ConfigMap objects.
data V1ConfigMapList = V1ConfigMapList
  { V1ConfigMapList -> Maybe Text
v1ConfigMapListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ConfigMapList -> [V1ConfigMap]
v1ConfigMapListItems :: !([V1ConfigMap]) -- ^ /Required/ "items" - Items is the list of ConfigMaps.
  , V1ConfigMapList -> Maybe Text
v1ConfigMapListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ConfigMapList -> Maybe V1ListMeta
v1ConfigMapListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1ConfigMapList -> ShowS
[V1ConfigMapList] -> ShowS
V1ConfigMapList -> String
(Int -> V1ConfigMapList -> ShowS)
-> (V1ConfigMapList -> String)
-> ([V1ConfigMapList] -> ShowS)
-> Show V1ConfigMapList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ConfigMapList] -> ShowS
$cshowList :: [V1ConfigMapList] -> ShowS
show :: V1ConfigMapList -> String
$cshow :: V1ConfigMapList -> String
showsPrec :: Int -> V1ConfigMapList -> ShowS
$cshowsPrec :: Int -> V1ConfigMapList -> ShowS
P.Show, V1ConfigMapList -> V1ConfigMapList -> Bool
(V1ConfigMapList -> V1ConfigMapList -> Bool)
-> (V1ConfigMapList -> V1ConfigMapList -> Bool)
-> Eq V1ConfigMapList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ConfigMapList -> V1ConfigMapList -> Bool
$c/= :: V1ConfigMapList -> V1ConfigMapList -> Bool
== :: V1ConfigMapList -> V1ConfigMapList -> Bool
$c== :: V1ConfigMapList -> V1ConfigMapList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ConfigMapList
instance A.FromJSON V1ConfigMapList where
  parseJSON :: Value -> Parser V1ConfigMapList
parseJSON = String
-> (Object -> Parser V1ConfigMapList)
-> Value
-> Parser V1ConfigMapList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ConfigMapList" ((Object -> Parser V1ConfigMapList)
 -> Value -> Parser V1ConfigMapList)
-> (Object -> Parser V1ConfigMapList)
-> Value
-> Parser V1ConfigMapList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1ConfigMap]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ConfigMapList
V1ConfigMapList
      (Maybe Text
 -> [V1ConfigMap]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1ConfigMapList)
-> Parser (Maybe Text)
-> Parser
     ([V1ConfigMap]
      -> Maybe Text -> Maybe V1ListMeta -> V1ConfigMapList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1ConfigMap]
   -> Maybe Text -> Maybe V1ListMeta -> V1ConfigMapList)
-> Parser [V1ConfigMap]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1ConfigMapList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1ConfigMap]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1ConfigMapList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1ConfigMapList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1ConfigMapList)
-> Parser (Maybe V1ListMeta) -> Parser V1ConfigMapList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1ConfigMapList
instance A.ToJSON V1ConfigMapList where
  toJSON :: V1ConfigMapList -> Value
toJSON V1ConfigMapList {[V1ConfigMap]
Maybe Text
Maybe V1ListMeta
v1ConfigMapListMetadata :: Maybe V1ListMeta
v1ConfigMapListKind :: Maybe Text
v1ConfigMapListItems :: [V1ConfigMap]
v1ConfigMapListApiVersion :: Maybe Text
v1ConfigMapListMetadata :: V1ConfigMapList -> Maybe V1ListMeta
v1ConfigMapListKind :: V1ConfigMapList -> Maybe Text
v1ConfigMapListItems :: V1ConfigMapList -> [V1ConfigMap]
v1ConfigMapListApiVersion :: V1ConfigMapList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ConfigMapListApiVersion
      , Text
"items" Text -> [V1ConfigMap] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1ConfigMap]
v1ConfigMapListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ConfigMapListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1ConfigMapListMetadata
      ]


-- | Construct a value of type 'V1ConfigMapList' (by applying it's required fields, if any)
mkV1ConfigMapList
  :: [V1ConfigMap] -- ^ 'v1ConfigMapListItems': Items is the list of ConfigMaps.
  -> V1ConfigMapList
mkV1ConfigMapList :: [V1ConfigMap] -> V1ConfigMapList
mkV1ConfigMapList [V1ConfigMap]
v1ConfigMapListItems =
  V1ConfigMapList :: Maybe Text
-> [V1ConfigMap]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ConfigMapList
V1ConfigMapList
  { v1ConfigMapListApiVersion :: Maybe Text
v1ConfigMapListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1ConfigMap]
v1ConfigMapListItems :: [V1ConfigMap]
v1ConfigMapListItems :: [V1ConfigMap]
v1ConfigMapListItems
  , v1ConfigMapListKind :: Maybe Text
v1ConfigMapListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ConfigMapListMetadata :: Maybe V1ListMeta
v1ConfigMapListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1ConfigMapNodeConfigSource
-- | V1ConfigMapNodeConfigSource
-- ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node.
data V1ConfigMapNodeConfigSource = V1ConfigMapNodeConfigSource
  { V1ConfigMapNodeConfigSource -> Text
v1ConfigMapNodeConfigSourceKubeletConfigKey :: !(Text) -- ^ /Required/ "kubeletConfigKey" - KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.
  , V1ConfigMapNodeConfigSource -> Text
v1ConfigMapNodeConfigSourceName :: !(Text) -- ^ /Required/ "name" - Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.
  , V1ConfigMapNodeConfigSource -> Text
v1ConfigMapNodeConfigSourceNamespace :: !(Text) -- ^ /Required/ "namespace" - Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.
  , V1ConfigMapNodeConfigSource -> Maybe Text
v1ConfigMapNodeConfigSourceResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.
  , V1ConfigMapNodeConfigSource -> Maybe Text
v1ConfigMapNodeConfigSourceUid :: !(Maybe Text) -- ^ "uid" - UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.
  } deriving (Int -> V1ConfigMapNodeConfigSource -> ShowS
[V1ConfigMapNodeConfigSource] -> ShowS
V1ConfigMapNodeConfigSource -> String
(Int -> V1ConfigMapNodeConfigSource -> ShowS)
-> (V1ConfigMapNodeConfigSource -> String)
-> ([V1ConfigMapNodeConfigSource] -> ShowS)
-> Show V1ConfigMapNodeConfigSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ConfigMapNodeConfigSource] -> ShowS
$cshowList :: [V1ConfigMapNodeConfigSource] -> ShowS
show :: V1ConfigMapNodeConfigSource -> String
$cshow :: V1ConfigMapNodeConfigSource -> String
showsPrec :: Int -> V1ConfigMapNodeConfigSource -> ShowS
$cshowsPrec :: Int -> V1ConfigMapNodeConfigSource -> ShowS
P.Show, V1ConfigMapNodeConfigSource -> V1ConfigMapNodeConfigSource -> Bool
(V1ConfigMapNodeConfigSource
 -> V1ConfigMapNodeConfigSource -> Bool)
-> (V1ConfigMapNodeConfigSource
    -> V1ConfigMapNodeConfigSource -> Bool)
-> Eq V1ConfigMapNodeConfigSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ConfigMapNodeConfigSource -> V1ConfigMapNodeConfigSource -> Bool
$c/= :: V1ConfigMapNodeConfigSource -> V1ConfigMapNodeConfigSource -> Bool
== :: V1ConfigMapNodeConfigSource -> V1ConfigMapNodeConfigSource -> Bool
$c== :: V1ConfigMapNodeConfigSource -> V1ConfigMapNodeConfigSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ConfigMapNodeConfigSource
instance A.FromJSON V1ConfigMapNodeConfigSource where
  parseJSON :: Value -> Parser V1ConfigMapNodeConfigSource
parseJSON = String
-> (Object -> Parser V1ConfigMapNodeConfigSource)
-> Value
-> Parser V1ConfigMapNodeConfigSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ConfigMapNodeConfigSource" ((Object -> Parser V1ConfigMapNodeConfigSource)
 -> Value -> Parser V1ConfigMapNodeConfigSource)
-> (Object -> Parser V1ConfigMapNodeConfigSource)
-> Value
-> Parser V1ConfigMapNodeConfigSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Text
-> Text
-> Maybe Text
-> Maybe Text
-> V1ConfigMapNodeConfigSource
V1ConfigMapNodeConfigSource
      (Text
 -> Text
 -> Text
 -> Maybe Text
 -> Maybe Text
 -> V1ConfigMapNodeConfigSource)
-> Parser Text
-> Parser
     (Text
      -> Text -> Maybe Text -> Maybe Text -> V1ConfigMapNodeConfigSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kubeletConfigKey")
      Parser
  (Text
   -> Text -> Maybe Text -> Maybe Text -> V1ConfigMapNodeConfigSource)
-> Parser Text
-> Parser
     (Text -> Maybe Text -> Maybe Text -> V1ConfigMapNodeConfigSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Text -> Maybe Text -> Maybe Text -> V1ConfigMapNodeConfigSource)
-> Parser Text
-> Parser (Maybe Text -> Maybe Text -> V1ConfigMapNodeConfigSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"namespace")
      Parser (Maybe Text -> Maybe Text -> V1ConfigMapNodeConfigSource)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1ConfigMapNodeConfigSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resourceVersion")
      Parser (Maybe Text -> V1ConfigMapNodeConfigSource)
-> Parser (Maybe Text) -> Parser V1ConfigMapNodeConfigSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"uid")

-- | ToJSON V1ConfigMapNodeConfigSource
instance A.ToJSON V1ConfigMapNodeConfigSource where
  toJSON :: V1ConfigMapNodeConfigSource -> Value
toJSON V1ConfigMapNodeConfigSource {Maybe Text
Text
v1ConfigMapNodeConfigSourceUid :: Maybe Text
v1ConfigMapNodeConfigSourceResourceVersion :: Maybe Text
v1ConfigMapNodeConfigSourceNamespace :: Text
v1ConfigMapNodeConfigSourceName :: Text
v1ConfigMapNodeConfigSourceKubeletConfigKey :: Text
v1ConfigMapNodeConfigSourceUid :: V1ConfigMapNodeConfigSource -> Maybe Text
v1ConfigMapNodeConfigSourceResourceVersion :: V1ConfigMapNodeConfigSource -> Maybe Text
v1ConfigMapNodeConfigSourceNamespace :: V1ConfigMapNodeConfigSource -> Text
v1ConfigMapNodeConfigSourceName :: V1ConfigMapNodeConfigSource -> Text
v1ConfigMapNodeConfigSourceKubeletConfigKey :: V1ConfigMapNodeConfigSource -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"kubeletConfigKey" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ConfigMapNodeConfigSourceKubeletConfigKey
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ConfigMapNodeConfigSourceName
      , Text
"namespace" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ConfigMapNodeConfigSourceNamespace
      , Text
"resourceVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ConfigMapNodeConfigSourceResourceVersion
      , Text
"uid" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ConfigMapNodeConfigSourceUid
      ]


-- | Construct a value of type 'V1ConfigMapNodeConfigSource' (by applying it's required fields, if any)
mkV1ConfigMapNodeConfigSource
  :: Text -- ^ 'v1ConfigMapNodeConfigSourceKubeletConfigKey': KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.
  -> Text -- ^ 'v1ConfigMapNodeConfigSourceName': Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.
  -> Text -- ^ 'v1ConfigMapNodeConfigSourceNamespace': Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.
  -> V1ConfigMapNodeConfigSource
mkV1ConfigMapNodeConfigSource :: Text -> Text -> Text -> V1ConfigMapNodeConfigSource
mkV1ConfigMapNodeConfigSource Text
v1ConfigMapNodeConfigSourceKubeletConfigKey Text
v1ConfigMapNodeConfigSourceName Text
v1ConfigMapNodeConfigSourceNamespace =
  V1ConfigMapNodeConfigSource :: Text
-> Text
-> Text
-> Maybe Text
-> Maybe Text
-> V1ConfigMapNodeConfigSource
V1ConfigMapNodeConfigSource
  { Text
v1ConfigMapNodeConfigSourceKubeletConfigKey :: Text
v1ConfigMapNodeConfigSourceKubeletConfigKey :: Text
v1ConfigMapNodeConfigSourceKubeletConfigKey
  , Text
v1ConfigMapNodeConfigSourceName :: Text
v1ConfigMapNodeConfigSourceName :: Text
v1ConfigMapNodeConfigSourceName
  , Text
v1ConfigMapNodeConfigSourceNamespace :: Text
v1ConfigMapNodeConfigSourceNamespace :: Text
v1ConfigMapNodeConfigSourceNamespace
  , v1ConfigMapNodeConfigSourceResourceVersion :: Maybe Text
v1ConfigMapNodeConfigSourceResourceVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ConfigMapNodeConfigSourceUid :: Maybe Text
v1ConfigMapNodeConfigSourceUid = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1ConfigMapProjection
-- | V1ConfigMapProjection
-- Adapts a ConfigMap into a projected volume.  The contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.
data V1ConfigMapProjection = V1ConfigMapProjection
  { V1ConfigMapProjection -> Maybe [V1KeyToPath]
v1ConfigMapProjectionItems :: !(Maybe [V1KeyToPath]) -- ^ "items" - If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the &#39;..&#39; path or start with &#39;..&#39;.
  , V1ConfigMapProjection -> Maybe Text
v1ConfigMapProjectionName :: !(Maybe Text) -- ^ "name" - Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  , V1ConfigMapProjection -> Maybe Bool
v1ConfigMapProjectionOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the ConfigMap or its keys must be defined
  } deriving (Int -> V1ConfigMapProjection -> ShowS
[V1ConfigMapProjection] -> ShowS
V1ConfigMapProjection -> String
(Int -> V1ConfigMapProjection -> ShowS)
-> (V1ConfigMapProjection -> String)
-> ([V1ConfigMapProjection] -> ShowS)
-> Show V1ConfigMapProjection
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ConfigMapProjection] -> ShowS
$cshowList :: [V1ConfigMapProjection] -> ShowS
show :: V1ConfigMapProjection -> String
$cshow :: V1ConfigMapProjection -> String
showsPrec :: Int -> V1ConfigMapProjection -> ShowS
$cshowsPrec :: Int -> V1ConfigMapProjection -> ShowS
P.Show, V1ConfigMapProjection -> V1ConfigMapProjection -> Bool
(V1ConfigMapProjection -> V1ConfigMapProjection -> Bool)
-> (V1ConfigMapProjection -> V1ConfigMapProjection -> Bool)
-> Eq V1ConfigMapProjection
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ConfigMapProjection -> V1ConfigMapProjection -> Bool
$c/= :: V1ConfigMapProjection -> V1ConfigMapProjection -> Bool
== :: V1ConfigMapProjection -> V1ConfigMapProjection -> Bool
$c== :: V1ConfigMapProjection -> V1ConfigMapProjection -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ConfigMapProjection
instance A.FromJSON V1ConfigMapProjection where
  parseJSON :: Value -> Parser V1ConfigMapProjection
parseJSON = String
-> (Object -> Parser V1ConfigMapProjection)
-> Value
-> Parser V1ConfigMapProjection
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ConfigMapProjection" ((Object -> Parser V1ConfigMapProjection)
 -> Value -> Parser V1ConfigMapProjection)
-> (Object -> Parser V1ConfigMapProjection)
-> Value
-> Parser V1ConfigMapProjection
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1KeyToPath]
-> Maybe Text -> Maybe Bool -> V1ConfigMapProjection
V1ConfigMapProjection
      (Maybe [V1KeyToPath]
 -> Maybe Text -> Maybe Bool -> V1ConfigMapProjection)
-> Parser (Maybe [V1KeyToPath])
-> Parser (Maybe Text -> Maybe Bool -> V1ConfigMapProjection)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1KeyToPath])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"items")
      Parser (Maybe Text -> Maybe Bool -> V1ConfigMapProjection)
-> Parser (Maybe Text)
-> Parser (Maybe Bool -> V1ConfigMapProjection)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser (Maybe Bool -> V1ConfigMapProjection)
-> Parser (Maybe Bool) -> Parser V1ConfigMapProjection
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"optional")

-- | ToJSON V1ConfigMapProjection
instance A.ToJSON V1ConfigMapProjection where
  toJSON :: V1ConfigMapProjection -> Value
toJSON V1ConfigMapProjection {Maybe Bool
Maybe [V1KeyToPath]
Maybe Text
v1ConfigMapProjectionOptional :: Maybe Bool
v1ConfigMapProjectionName :: Maybe Text
v1ConfigMapProjectionItems :: Maybe [V1KeyToPath]
v1ConfigMapProjectionOptional :: V1ConfigMapProjection -> Maybe Bool
v1ConfigMapProjectionName :: V1ConfigMapProjection -> Maybe Text
v1ConfigMapProjectionItems :: V1ConfigMapProjection -> Maybe [V1KeyToPath]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"items" Text -> Maybe [V1KeyToPath] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1KeyToPath]
v1ConfigMapProjectionItems
      , Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ConfigMapProjectionName
      , Text
"optional" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ConfigMapProjectionOptional
      ]


-- | Construct a value of type 'V1ConfigMapProjection' (by applying it's required fields, if any)
mkV1ConfigMapProjection
  :: V1ConfigMapProjection
mkV1ConfigMapProjection :: V1ConfigMapProjection
mkV1ConfigMapProjection =
  V1ConfigMapProjection :: Maybe [V1KeyToPath]
-> Maybe Text -> Maybe Bool -> V1ConfigMapProjection
V1ConfigMapProjection
  { v1ConfigMapProjectionItems :: Maybe [V1KeyToPath]
v1ConfigMapProjectionItems = Maybe [V1KeyToPath]
forall a. Maybe a
Nothing
  , v1ConfigMapProjectionName :: Maybe Text
v1ConfigMapProjectionName = Maybe Text
forall a. Maybe a
Nothing
  , v1ConfigMapProjectionOptional :: Maybe Bool
v1ConfigMapProjectionOptional = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1ConfigMapVolumeSource
-- | V1ConfigMapVolumeSource
-- Adapts a ConfigMap into a volume.  The contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.
data V1ConfigMapVolumeSource = V1ConfigMapVolumeSource
  { V1ConfigMapVolumeSource -> Maybe Int
v1ConfigMapVolumeSourceDefaultMode :: !(Maybe Int) -- ^ "defaultMode" - Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  , V1ConfigMapVolumeSource -> Maybe [V1KeyToPath]
v1ConfigMapVolumeSourceItems :: !(Maybe [V1KeyToPath]) -- ^ "items" - If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the &#39;..&#39; path or start with &#39;..&#39;.
  , V1ConfigMapVolumeSource -> Maybe Text
v1ConfigMapVolumeSourceName :: !(Maybe Text) -- ^ "name" - Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  , V1ConfigMapVolumeSource -> Maybe Bool
v1ConfigMapVolumeSourceOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the ConfigMap or its keys must be defined
  } deriving (Int -> V1ConfigMapVolumeSource -> ShowS
[V1ConfigMapVolumeSource] -> ShowS
V1ConfigMapVolumeSource -> String
(Int -> V1ConfigMapVolumeSource -> ShowS)
-> (V1ConfigMapVolumeSource -> String)
-> ([V1ConfigMapVolumeSource] -> ShowS)
-> Show V1ConfigMapVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ConfigMapVolumeSource] -> ShowS
$cshowList :: [V1ConfigMapVolumeSource] -> ShowS
show :: V1ConfigMapVolumeSource -> String
$cshow :: V1ConfigMapVolumeSource -> String
showsPrec :: Int -> V1ConfigMapVolumeSource -> ShowS
$cshowsPrec :: Int -> V1ConfigMapVolumeSource -> ShowS
P.Show, V1ConfigMapVolumeSource -> V1ConfigMapVolumeSource -> Bool
(V1ConfigMapVolumeSource -> V1ConfigMapVolumeSource -> Bool)
-> (V1ConfigMapVolumeSource -> V1ConfigMapVolumeSource -> Bool)
-> Eq V1ConfigMapVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ConfigMapVolumeSource -> V1ConfigMapVolumeSource -> Bool
$c/= :: V1ConfigMapVolumeSource -> V1ConfigMapVolumeSource -> Bool
== :: V1ConfigMapVolumeSource -> V1ConfigMapVolumeSource -> Bool
$c== :: V1ConfigMapVolumeSource -> V1ConfigMapVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ConfigMapVolumeSource
instance A.FromJSON V1ConfigMapVolumeSource where
  parseJSON :: Value -> Parser V1ConfigMapVolumeSource
parseJSON = String
-> (Object -> Parser V1ConfigMapVolumeSource)
-> Value
-> Parser V1ConfigMapVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ConfigMapVolumeSource" ((Object -> Parser V1ConfigMapVolumeSource)
 -> Value -> Parser V1ConfigMapVolumeSource)
-> (Object -> Parser V1ConfigMapVolumeSource)
-> Value
-> Parser V1ConfigMapVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe [V1KeyToPath]
-> Maybe Text
-> Maybe Bool
-> V1ConfigMapVolumeSource
V1ConfigMapVolumeSource
      (Maybe Int
 -> Maybe [V1KeyToPath]
 -> Maybe Text
 -> Maybe Bool
 -> V1ConfigMapVolumeSource)
-> Parser (Maybe Int)
-> Parser
     (Maybe [V1KeyToPath]
      -> Maybe Text -> Maybe Bool -> V1ConfigMapVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"defaultMode")
      Parser
  (Maybe [V1KeyToPath]
   -> Maybe Text -> Maybe Bool -> V1ConfigMapVolumeSource)
-> Parser (Maybe [V1KeyToPath])
-> Parser (Maybe Text -> Maybe Bool -> V1ConfigMapVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1KeyToPath])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"items")
      Parser (Maybe Text -> Maybe Bool -> V1ConfigMapVolumeSource)
-> Parser (Maybe Text)
-> Parser (Maybe Bool -> V1ConfigMapVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser (Maybe Bool -> V1ConfigMapVolumeSource)
-> Parser (Maybe Bool) -> Parser V1ConfigMapVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"optional")

-- | ToJSON V1ConfigMapVolumeSource
instance A.ToJSON V1ConfigMapVolumeSource where
  toJSON :: V1ConfigMapVolumeSource -> Value
toJSON V1ConfigMapVolumeSource {Maybe Bool
Maybe Int
Maybe [V1KeyToPath]
Maybe Text
v1ConfigMapVolumeSourceOptional :: Maybe Bool
v1ConfigMapVolumeSourceName :: Maybe Text
v1ConfigMapVolumeSourceItems :: Maybe [V1KeyToPath]
v1ConfigMapVolumeSourceDefaultMode :: Maybe Int
v1ConfigMapVolumeSourceOptional :: V1ConfigMapVolumeSource -> Maybe Bool
v1ConfigMapVolumeSourceName :: V1ConfigMapVolumeSource -> Maybe Text
v1ConfigMapVolumeSourceItems :: V1ConfigMapVolumeSource -> Maybe [V1KeyToPath]
v1ConfigMapVolumeSourceDefaultMode :: V1ConfigMapVolumeSource -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"defaultMode" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ConfigMapVolumeSourceDefaultMode
      , Text
"items" Text -> Maybe [V1KeyToPath] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1KeyToPath]
v1ConfigMapVolumeSourceItems
      , Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ConfigMapVolumeSourceName
      , Text
"optional" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ConfigMapVolumeSourceOptional
      ]


-- | Construct a value of type 'V1ConfigMapVolumeSource' (by applying it's required fields, if any)
mkV1ConfigMapVolumeSource
  :: V1ConfigMapVolumeSource
mkV1ConfigMapVolumeSource :: V1ConfigMapVolumeSource
mkV1ConfigMapVolumeSource =
  V1ConfigMapVolumeSource :: Maybe Int
-> Maybe [V1KeyToPath]
-> Maybe Text
-> Maybe Bool
-> V1ConfigMapVolumeSource
V1ConfigMapVolumeSource
  { v1ConfigMapVolumeSourceDefaultMode :: Maybe Int
v1ConfigMapVolumeSourceDefaultMode = Maybe Int
forall a. Maybe a
Nothing
  , v1ConfigMapVolumeSourceItems :: Maybe [V1KeyToPath]
v1ConfigMapVolumeSourceItems = Maybe [V1KeyToPath]
forall a. Maybe a
Nothing
  , v1ConfigMapVolumeSourceName :: Maybe Text
v1ConfigMapVolumeSourceName = Maybe Text
forall a. Maybe a
Nothing
  , v1ConfigMapVolumeSourceOptional :: Maybe Bool
v1ConfigMapVolumeSourceOptional = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1Container
-- | V1Container
-- A single application container that you want to run within a pod.
data V1Container = V1Container
  { V1Container -> Maybe [Text]
v1ContainerArgs :: !(Maybe [Text]) -- ^ "args" - Arguments to the entrypoint. The docker image&#39;s CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container&#39;s environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
  , V1Container -> Maybe [Text]
v1ContainerCommand :: !(Maybe [Text]) -- ^ "command" - Entrypoint array. Not executed within a shell. The docker image&#39;s ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container&#39;s environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
  , V1Container -> Maybe [V1EnvVar]
v1ContainerEnv :: !(Maybe [V1EnvVar]) -- ^ "env" - List of environment variables to set in the container. Cannot be updated.
  , V1Container -> Maybe [V1EnvFromSource]
v1ContainerEnvFrom :: !(Maybe [V1EnvFromSource]) -- ^ "envFrom" - List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.
  , V1Container -> Maybe Text
v1ContainerImage :: !(Maybe Text) -- ^ "image" - Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.
  , V1Container -> Maybe Text
v1ContainerImagePullPolicy :: !(Maybe Text) -- ^ "imagePullPolicy" - Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
  , V1Container -> Maybe V1Lifecycle
v1ContainerLifecycle :: !(Maybe V1Lifecycle) -- ^ "lifecycle"
  , V1Container -> Maybe V1Probe
v1ContainerLivenessProbe :: !(Maybe V1Probe) -- ^ "livenessProbe"
  , V1Container -> Text
v1ContainerName :: !(Text) -- ^ /Required/ "name" - Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.
  , V1Container -> Maybe [V1ContainerPort]
v1ContainerPorts :: !(Maybe [V1ContainerPort]) -- ^ "ports" - List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \&quot;0.0.0.0\&quot; address inside a container will be accessible from the network. Cannot be updated.
  , V1Container -> Maybe V1Probe
v1ContainerReadinessProbe :: !(Maybe V1Probe) -- ^ "readinessProbe"
  , V1Container -> Maybe V1ResourceRequirements
v1ContainerResources :: !(Maybe V1ResourceRequirements) -- ^ "resources"
  , V1Container -> Maybe V1SecurityContext
v1ContainerSecurityContext :: !(Maybe V1SecurityContext) -- ^ "securityContext"
  , V1Container -> Maybe V1Probe
v1ContainerStartupProbe :: !(Maybe V1Probe) -- ^ "startupProbe"
  , V1Container -> Maybe Bool
v1ContainerStdin :: !(Maybe Bool) -- ^ "stdin" - Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.
  , V1Container -> Maybe Bool
v1ContainerStdinOnce :: !(Maybe Bool) -- ^ "stdinOnce" - Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false
  , V1Container -> Maybe Text
v1ContainerTerminationMessagePath :: !(Maybe Text) -- ^ "terminationMessagePath" - Optional: Path at which the file to which the container&#39;s termination message will be written is mounted into the container&#39;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.
  , V1Container -> Maybe Text
v1ContainerTerminationMessagePolicy :: !(Maybe Text) -- ^ "terminationMessagePolicy" - Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
  , V1Container -> Maybe Bool
v1ContainerTty :: !(Maybe Bool) -- ^ "tty" - Whether this container should allocate a TTY for itself, also requires &#39;stdin&#39; to be true. Default is false.
  , V1Container -> Maybe [V1VolumeDevice]
v1ContainerVolumeDevices :: !(Maybe [V1VolumeDevice]) -- ^ "volumeDevices" - volumeDevices is the list of block devices to be used by the container. This is a beta feature.
  , V1Container -> Maybe [V1VolumeMount]
v1ContainerVolumeMounts :: !(Maybe [V1VolumeMount]) -- ^ "volumeMounts" - Pod volumes to mount into the container&#39;s filesystem. Cannot be updated.
  , V1Container -> Maybe Text
v1ContainerWorkingDir :: !(Maybe Text) -- ^ "workingDir" - Container&#39;s working directory. If not specified, the container runtime&#39;s default will be used, which might be configured in the container image. Cannot be updated.
  } deriving (Int -> V1Container -> ShowS
[V1Container] -> ShowS
V1Container -> String
(Int -> V1Container -> ShowS)
-> (V1Container -> String)
-> ([V1Container] -> ShowS)
-> Show V1Container
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Container] -> ShowS
$cshowList :: [V1Container] -> ShowS
show :: V1Container -> String
$cshow :: V1Container -> String
showsPrec :: Int -> V1Container -> ShowS
$cshowsPrec :: Int -> V1Container -> ShowS
P.Show, V1Container -> V1Container -> Bool
(V1Container -> V1Container -> Bool)
-> (V1Container -> V1Container -> Bool) -> Eq V1Container
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Container -> V1Container -> Bool
$c/= :: V1Container -> V1Container -> Bool
== :: V1Container -> V1Container -> Bool
$c== :: V1Container -> V1Container -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Container
instance A.FromJSON V1Container where
  parseJSON :: Value -> Parser V1Container
parseJSON = String
-> (Object -> Parser V1Container) -> Value -> Parser V1Container
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Container" ((Object -> Parser V1Container) -> Value -> Parser V1Container)
-> (Object -> Parser V1Container) -> Value -> Parser V1Container
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Maybe [Text]
-> Maybe [V1EnvVar]
-> Maybe [V1EnvFromSource]
-> Maybe Text
-> Maybe Text
-> Maybe V1Lifecycle
-> Maybe V1Probe
-> Text
-> Maybe [V1ContainerPort]
-> Maybe V1Probe
-> Maybe V1ResourceRequirements
-> Maybe V1SecurityContext
-> Maybe V1Probe
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe [V1VolumeDevice]
-> Maybe [V1VolumeMount]
-> Maybe Text
-> V1Container
V1Container
      (Maybe [Text]
 -> Maybe [Text]
 -> Maybe [V1EnvVar]
 -> Maybe [V1EnvFromSource]
 -> Maybe Text
 -> Maybe Text
 -> Maybe V1Lifecycle
 -> Maybe V1Probe
 -> Text
 -> Maybe [V1ContainerPort]
 -> Maybe V1Probe
 -> Maybe V1ResourceRequirements
 -> Maybe V1SecurityContext
 -> Maybe V1Probe
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe [V1VolumeDevice]
 -> Maybe [V1VolumeMount]
 -> Maybe Text
 -> V1Container)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe [V1EnvVar]
      -> Maybe [V1EnvFromSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1Lifecycle
      -> Maybe V1Probe
      -> Text
      -> Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"args")
      Parser
  (Maybe [Text]
   -> Maybe [V1EnvVar]
   -> Maybe [V1EnvFromSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1Lifecycle
   -> Maybe V1Probe
   -> Text
   -> Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [V1EnvVar]
      -> Maybe [V1EnvFromSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1Lifecycle
      -> Maybe V1Probe
      -> Text
      -> Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"command")
      Parser
  (Maybe [V1EnvVar]
   -> Maybe [V1EnvFromSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1Lifecycle
   -> Maybe V1Probe
   -> Text
   -> Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe [V1EnvVar])
-> Parser
     (Maybe [V1EnvFromSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1Lifecycle
      -> Maybe V1Probe
      -> Text
      -> Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1EnvVar])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"env")
      Parser
  (Maybe [V1EnvFromSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1Lifecycle
   -> Maybe V1Probe
   -> Text
   -> Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe [V1EnvFromSource])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe V1Lifecycle
      -> Maybe V1Probe
      -> Text
      -> Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1EnvFromSource])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"envFrom")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe V1Lifecycle
   -> Maybe V1Probe
   -> Text
   -> Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1Lifecycle
      -> Maybe V1Probe
      -> Text
      -> Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"image")
      Parser
  (Maybe Text
   -> Maybe V1Lifecycle
   -> Maybe V1Probe
   -> Text
   -> Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1Lifecycle
      -> Maybe V1Probe
      -> Text
      -> Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"imagePullPolicy")
      Parser
  (Maybe V1Lifecycle
   -> Maybe V1Probe
   -> Text
   -> Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe V1Lifecycle)
-> Parser
     (Maybe V1Probe
      -> Text
      -> Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1Lifecycle)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lifecycle")
      Parser
  (Maybe V1Probe
   -> Text
   -> Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe V1Probe)
-> Parser
     (Text
      -> Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1Probe)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"livenessProbe")
      Parser
  (Text
   -> Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser Text
-> Parser
     (Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe [V1ContainerPort])
-> Parser
     (Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1ContainerPort])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ports")
      Parser
  (Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe V1Probe)
-> Parser
     (Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1Probe)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readinessProbe")
      Parser
  (Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe V1ResourceRequirements)
-> Parser
     (Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ResourceRequirements)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resources")
      Parser
  (Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe V1SecurityContext)
-> Parser
     (Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SecurityContext)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"securityContext")
      Parser
  (Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe V1Probe)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1Probe)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"startupProbe")
      Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"stdin")
      Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"stdinOnce")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"terminationMessagePath")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"terminationMessagePolicy")
      Parser
  (Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1Container)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount] -> Maybe Text -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"tty")
      Parser
  (Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount] -> Maybe Text -> V1Container)
-> Parser (Maybe [V1VolumeDevice])
-> Parser (Maybe [V1VolumeMount] -> Maybe Text -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1VolumeDevice])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeDevices")
      Parser (Maybe [V1VolumeMount] -> Maybe Text -> V1Container)
-> Parser (Maybe [V1VolumeMount])
-> Parser (Maybe Text -> V1Container)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1VolumeMount])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeMounts")
      Parser (Maybe Text -> V1Container)
-> Parser (Maybe Text) -> Parser V1Container
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"workingDir")

-- | ToJSON V1Container
instance A.ToJSON V1Container where
  toJSON :: V1Container -> Value
toJSON V1Container {Maybe Bool
Maybe [Text]
Maybe [V1VolumeMount]
Maybe [V1VolumeDevice]
Maybe [V1EnvVar]
Maybe [V1EnvFromSource]
Maybe [V1ContainerPort]
Maybe Text
Maybe V1SecurityContext
Maybe V1ResourceRequirements
Maybe V1Probe
Maybe V1Lifecycle
Text
v1ContainerWorkingDir :: Maybe Text
v1ContainerVolumeMounts :: Maybe [V1VolumeMount]
v1ContainerVolumeDevices :: Maybe [V1VolumeDevice]
v1ContainerTty :: Maybe Bool
v1ContainerTerminationMessagePolicy :: Maybe Text
v1ContainerTerminationMessagePath :: Maybe Text
v1ContainerStdinOnce :: Maybe Bool
v1ContainerStdin :: Maybe Bool
v1ContainerStartupProbe :: Maybe V1Probe
v1ContainerSecurityContext :: Maybe V1SecurityContext
v1ContainerResources :: Maybe V1ResourceRequirements
v1ContainerReadinessProbe :: Maybe V1Probe
v1ContainerPorts :: Maybe [V1ContainerPort]
v1ContainerName :: Text
v1ContainerLivenessProbe :: Maybe V1Probe
v1ContainerLifecycle :: Maybe V1Lifecycle
v1ContainerImagePullPolicy :: Maybe Text
v1ContainerImage :: Maybe Text
v1ContainerEnvFrom :: Maybe [V1EnvFromSource]
v1ContainerEnv :: Maybe [V1EnvVar]
v1ContainerCommand :: Maybe [Text]
v1ContainerArgs :: Maybe [Text]
v1ContainerWorkingDir :: V1Container -> Maybe Text
v1ContainerVolumeMounts :: V1Container -> Maybe [V1VolumeMount]
v1ContainerVolumeDevices :: V1Container -> Maybe [V1VolumeDevice]
v1ContainerTty :: V1Container -> Maybe Bool
v1ContainerTerminationMessagePolicy :: V1Container -> Maybe Text
v1ContainerTerminationMessagePath :: V1Container -> Maybe Text
v1ContainerStdinOnce :: V1Container -> Maybe Bool
v1ContainerStdin :: V1Container -> Maybe Bool
v1ContainerStartupProbe :: V1Container -> Maybe V1Probe
v1ContainerSecurityContext :: V1Container -> Maybe V1SecurityContext
v1ContainerResources :: V1Container -> Maybe V1ResourceRequirements
v1ContainerReadinessProbe :: V1Container -> Maybe V1Probe
v1ContainerPorts :: V1Container -> Maybe [V1ContainerPort]
v1ContainerName :: V1Container -> Text
v1ContainerLivenessProbe :: V1Container -> Maybe V1Probe
v1ContainerLifecycle :: V1Container -> Maybe V1Lifecycle
v1ContainerImagePullPolicy :: V1Container -> Maybe Text
v1ContainerImage :: V1Container -> Maybe Text
v1ContainerEnvFrom :: V1Container -> Maybe [V1EnvFromSource]
v1ContainerEnv :: V1Container -> Maybe [V1EnvVar]
v1ContainerCommand :: V1Container -> Maybe [Text]
v1ContainerArgs :: V1Container -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"args" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1ContainerArgs
      , Text
"command" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1ContainerCommand
      , Text
"env" Text -> Maybe [V1EnvVar] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1EnvVar]
v1ContainerEnv
      , Text
"envFrom" Text -> Maybe [V1EnvFromSource] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1EnvFromSource]
v1ContainerEnvFrom
      , Text
"image" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ContainerImage
      , Text
"imagePullPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ContainerImagePullPolicy
      , Text
"lifecycle" Text -> Maybe V1Lifecycle -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1Lifecycle
v1ContainerLifecycle
      , Text
"livenessProbe" Text -> Maybe V1Probe -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1Probe
v1ContainerLivenessProbe
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ContainerName
      , Text
"ports" Text -> Maybe [V1ContainerPort] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ContainerPort]
v1ContainerPorts
      , Text
"readinessProbe" Text -> Maybe V1Probe -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1Probe
v1ContainerReadinessProbe
      , Text
"resources" Text -> Maybe V1ResourceRequirements -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ResourceRequirements
v1ContainerResources
      , Text
"securityContext" Text -> Maybe V1SecurityContext -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SecurityContext
v1ContainerSecurityContext
      , Text
"startupProbe" Text -> Maybe V1Probe -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1Probe
v1ContainerStartupProbe
      , Text
"stdin" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ContainerStdin
      , Text
"stdinOnce" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ContainerStdinOnce
      , Text
"terminationMessagePath" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ContainerTerminationMessagePath
      , Text
"terminationMessagePolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ContainerTerminationMessagePolicy
      , Text
"tty" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ContainerTty
      , Text
"volumeDevices" Text -> Maybe [V1VolumeDevice] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1VolumeDevice]
v1ContainerVolumeDevices
      , Text
"volumeMounts" Text -> Maybe [V1VolumeMount] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1VolumeMount]
v1ContainerVolumeMounts
      , Text
"workingDir" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ContainerWorkingDir
      ]


-- | Construct a value of type 'V1Container' (by applying it's required fields, if any)
mkV1Container
  :: Text -- ^ 'v1ContainerName': Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.
  -> V1Container
mkV1Container :: Text -> V1Container
mkV1Container Text
v1ContainerName =
  V1Container :: Maybe [Text]
-> Maybe [Text]
-> Maybe [V1EnvVar]
-> Maybe [V1EnvFromSource]
-> Maybe Text
-> Maybe Text
-> Maybe V1Lifecycle
-> Maybe V1Probe
-> Text
-> Maybe [V1ContainerPort]
-> Maybe V1Probe
-> Maybe V1ResourceRequirements
-> Maybe V1SecurityContext
-> Maybe V1Probe
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe [V1VolumeDevice]
-> Maybe [V1VolumeMount]
-> Maybe Text
-> V1Container
V1Container
  { v1ContainerArgs :: Maybe [Text]
v1ContainerArgs = Maybe [Text]
forall a. Maybe a
Nothing
  , v1ContainerCommand :: Maybe [Text]
v1ContainerCommand = Maybe [Text]
forall a. Maybe a
Nothing
  , v1ContainerEnv :: Maybe [V1EnvVar]
v1ContainerEnv = Maybe [V1EnvVar]
forall a. Maybe a
Nothing
  , v1ContainerEnvFrom :: Maybe [V1EnvFromSource]
v1ContainerEnvFrom = Maybe [V1EnvFromSource]
forall a. Maybe a
Nothing
  , v1ContainerImage :: Maybe Text
v1ContainerImage = Maybe Text
forall a. Maybe a
Nothing
  , v1ContainerImagePullPolicy :: Maybe Text
v1ContainerImagePullPolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1ContainerLifecycle :: Maybe V1Lifecycle
v1ContainerLifecycle = Maybe V1Lifecycle
forall a. Maybe a
Nothing
  , v1ContainerLivenessProbe :: Maybe V1Probe
v1ContainerLivenessProbe = Maybe V1Probe
forall a. Maybe a
Nothing
  , Text
v1ContainerName :: Text
v1ContainerName :: Text
v1ContainerName
  , v1ContainerPorts :: Maybe [V1ContainerPort]
v1ContainerPorts = Maybe [V1ContainerPort]
forall a. Maybe a
Nothing
  , v1ContainerReadinessProbe :: Maybe V1Probe
v1ContainerReadinessProbe = Maybe V1Probe
forall a. Maybe a
Nothing
  , v1ContainerResources :: Maybe V1ResourceRequirements
v1ContainerResources = Maybe V1ResourceRequirements
forall a. Maybe a
Nothing
  , v1ContainerSecurityContext :: Maybe V1SecurityContext
v1ContainerSecurityContext = Maybe V1SecurityContext
forall a. Maybe a
Nothing
  , v1ContainerStartupProbe :: Maybe V1Probe
v1ContainerStartupProbe = Maybe V1Probe
forall a. Maybe a
Nothing
  , v1ContainerStdin :: Maybe Bool
v1ContainerStdin = Maybe Bool
forall a. Maybe a
Nothing
  , v1ContainerStdinOnce :: Maybe Bool
v1ContainerStdinOnce = Maybe Bool
forall a. Maybe a
Nothing
  , v1ContainerTerminationMessagePath :: Maybe Text
v1ContainerTerminationMessagePath = Maybe Text
forall a. Maybe a
Nothing
  , v1ContainerTerminationMessagePolicy :: Maybe Text
v1ContainerTerminationMessagePolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1ContainerTty :: Maybe Bool
v1ContainerTty = Maybe Bool
forall a. Maybe a
Nothing
  , v1ContainerVolumeDevices :: Maybe [V1VolumeDevice]
v1ContainerVolumeDevices = Maybe [V1VolumeDevice]
forall a. Maybe a
Nothing
  , v1ContainerVolumeMounts :: Maybe [V1VolumeMount]
v1ContainerVolumeMounts = Maybe [V1VolumeMount]
forall a. Maybe a
Nothing
  , v1ContainerWorkingDir :: Maybe Text
v1ContainerWorkingDir = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1ContainerImage
-- | V1ContainerImage
-- Describe a container image
data V1ContainerImage = V1ContainerImage
  { V1ContainerImage -> [Text]
v1ContainerImageNames :: !([Text]) -- ^ /Required/ "names" - Names by which this image is known. e.g. [\&quot;k8s.gcr.io/hyperkube:v1.0.7\&quot;, \&quot;dockerhub.io/google_containers/hyperkube:v1.0.7\&quot;]
  , V1ContainerImage -> Maybe Integer
v1ContainerImageSizeBytes :: !(Maybe Integer) -- ^ "sizeBytes" - The size of the image in bytes.
  } deriving (Int -> V1ContainerImage -> ShowS
[V1ContainerImage] -> ShowS
V1ContainerImage -> String
(Int -> V1ContainerImage -> ShowS)
-> (V1ContainerImage -> String)
-> ([V1ContainerImage] -> ShowS)
-> Show V1ContainerImage
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ContainerImage] -> ShowS
$cshowList :: [V1ContainerImage] -> ShowS
show :: V1ContainerImage -> String
$cshow :: V1ContainerImage -> String
showsPrec :: Int -> V1ContainerImage -> ShowS
$cshowsPrec :: Int -> V1ContainerImage -> ShowS
P.Show, V1ContainerImage -> V1ContainerImage -> Bool
(V1ContainerImage -> V1ContainerImage -> Bool)
-> (V1ContainerImage -> V1ContainerImage -> Bool)
-> Eq V1ContainerImage
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ContainerImage -> V1ContainerImage -> Bool
$c/= :: V1ContainerImage -> V1ContainerImage -> Bool
== :: V1ContainerImage -> V1ContainerImage -> Bool
$c== :: V1ContainerImage -> V1ContainerImage -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ContainerImage
instance A.FromJSON V1ContainerImage where
  parseJSON :: Value -> Parser V1ContainerImage
parseJSON = String
-> (Object -> Parser V1ContainerImage)
-> Value
-> Parser V1ContainerImage
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ContainerImage" ((Object -> Parser V1ContainerImage)
 -> Value -> Parser V1ContainerImage)
-> (Object -> Parser V1ContainerImage)
-> Value
-> Parser V1ContainerImage
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    [Text] -> Maybe Integer -> V1ContainerImage
V1ContainerImage
      ([Text] -> Maybe Integer -> V1ContainerImage)
-> Parser [Text] -> Parser (Maybe Integer -> V1ContainerImage)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"names")
      Parser (Maybe Integer -> V1ContainerImage)
-> Parser (Maybe Integer) -> Parser V1ContainerImage
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"sizeBytes")

-- | ToJSON V1ContainerImage
instance A.ToJSON V1ContainerImage where
  toJSON :: V1ContainerImage -> Value
toJSON V1ContainerImage {[Text]
Maybe Integer
v1ContainerImageSizeBytes :: Maybe Integer
v1ContainerImageNames :: [Text]
v1ContainerImageSizeBytes :: V1ContainerImage -> Maybe Integer
v1ContainerImageNames :: V1ContainerImage -> [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"names" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1ContainerImageNames
      , Text
"sizeBytes" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1ContainerImageSizeBytes
      ]


-- | Construct a value of type 'V1ContainerImage' (by applying it's required fields, if any)
mkV1ContainerImage
  :: [Text] -- ^ 'v1ContainerImageNames': Names by which this image is known. e.g. [\"k8s.gcr.io/hyperkube:v1.0.7\", \"dockerhub.io/google_containers/hyperkube:v1.0.7\"]
  -> V1ContainerImage
mkV1ContainerImage :: [Text] -> V1ContainerImage
mkV1ContainerImage [Text]
v1ContainerImageNames =
  V1ContainerImage :: [Text] -> Maybe Integer -> V1ContainerImage
V1ContainerImage
  { [Text]
v1ContainerImageNames :: [Text]
v1ContainerImageNames :: [Text]
v1ContainerImageNames
  , v1ContainerImageSizeBytes :: Maybe Integer
v1ContainerImageSizeBytes = Maybe Integer
forall a. Maybe a
Nothing
  }

-- ** V1ContainerPort
-- | V1ContainerPort
-- ContainerPort represents a network port in a single container.
data V1ContainerPort = V1ContainerPort
  { V1ContainerPort -> Int
v1ContainerPortContainerPort :: !(Int) -- ^ /Required/ "containerPort" - Number of port to expose on the pod&#39;s IP address. This must be a valid port number, 0 &lt; x &lt; 65536.
  , V1ContainerPort -> Maybe Text
v1ContainerPortHostIp :: !(Maybe Text) -- ^ "hostIP" - What host IP to bind the external port to.
  , V1ContainerPort -> Maybe Int
v1ContainerPortHostPort :: !(Maybe Int) -- ^ "hostPort" - Number of port to expose on the host. If specified, this must be a valid port number, 0 &lt; x &lt; 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.
  , V1ContainerPort -> Maybe Text
v1ContainerPortName :: !(Maybe Text) -- ^ "name" - If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.
  , V1ContainerPort -> Maybe Text
v1ContainerPortProtocol :: !(Maybe Text) -- ^ "protocol" - Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \&quot;TCP\&quot;.
  } deriving (Int -> V1ContainerPort -> ShowS
[V1ContainerPort] -> ShowS
V1ContainerPort -> String
(Int -> V1ContainerPort -> ShowS)
-> (V1ContainerPort -> String)
-> ([V1ContainerPort] -> ShowS)
-> Show V1ContainerPort
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ContainerPort] -> ShowS
$cshowList :: [V1ContainerPort] -> ShowS
show :: V1ContainerPort -> String
$cshow :: V1ContainerPort -> String
showsPrec :: Int -> V1ContainerPort -> ShowS
$cshowsPrec :: Int -> V1ContainerPort -> ShowS
P.Show, V1ContainerPort -> V1ContainerPort -> Bool
(V1ContainerPort -> V1ContainerPort -> Bool)
-> (V1ContainerPort -> V1ContainerPort -> Bool)
-> Eq V1ContainerPort
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ContainerPort -> V1ContainerPort -> Bool
$c/= :: V1ContainerPort -> V1ContainerPort -> Bool
== :: V1ContainerPort -> V1ContainerPort -> Bool
$c== :: V1ContainerPort -> V1ContainerPort -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ContainerPort
instance A.FromJSON V1ContainerPort where
  parseJSON :: Value -> Parser V1ContainerPort
parseJSON = String
-> (Object -> Parser V1ContainerPort)
-> Value
-> Parser V1ContainerPort
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ContainerPort" ((Object -> Parser V1ContainerPort)
 -> Value -> Parser V1ContainerPort)
-> (Object -> Parser V1ContainerPort)
-> Value
-> Parser V1ContainerPort
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Int
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> V1ContainerPort
V1ContainerPort
      (Int
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> V1ContainerPort)
-> Parser Int
-> Parser
     (Maybe Text
      -> Maybe Int -> Maybe Text -> Maybe Text -> V1ContainerPort)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"containerPort")
      Parser
  (Maybe Text
   -> Maybe Int -> Maybe Text -> Maybe Text -> V1ContainerPort)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int -> Maybe Text -> Maybe Text -> V1ContainerPort)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostIP")
      Parser (Maybe Int -> Maybe Text -> Maybe Text -> V1ContainerPort)
-> Parser (Maybe Int)
-> Parser (Maybe Text -> Maybe Text -> V1ContainerPort)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostPort")
      Parser (Maybe Text -> Maybe Text -> V1ContainerPort)
-> Parser (Maybe Text) -> Parser (Maybe Text -> V1ContainerPort)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser (Maybe Text -> V1ContainerPort)
-> Parser (Maybe Text) -> Parser V1ContainerPort
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"protocol")

-- | ToJSON V1ContainerPort
instance A.ToJSON V1ContainerPort where
  toJSON :: V1ContainerPort -> Value
toJSON V1ContainerPort {Int
Maybe Int
Maybe Text
v1ContainerPortProtocol :: Maybe Text
v1ContainerPortName :: Maybe Text
v1ContainerPortHostPort :: Maybe Int
v1ContainerPortHostIp :: Maybe Text
v1ContainerPortContainerPort :: Int
v1ContainerPortProtocol :: V1ContainerPort -> Maybe Text
v1ContainerPortName :: V1ContainerPort -> Maybe Text
v1ContainerPortHostPort :: V1ContainerPort -> Maybe Int
v1ContainerPortHostIp :: V1ContainerPort -> Maybe Text
v1ContainerPortContainerPort :: V1ContainerPort -> Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"containerPort" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1ContainerPortContainerPort
      , Text
"hostIP" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ContainerPortHostIp
      , Text
"hostPort" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ContainerPortHostPort
      , Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ContainerPortName
      , Text
"protocol" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ContainerPortProtocol
      ]


-- | Construct a value of type 'V1ContainerPort' (by applying it's required fields, if any)
mkV1ContainerPort
  :: Int -- ^ 'v1ContainerPortContainerPort': Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.
  -> V1ContainerPort
mkV1ContainerPort :: Int -> V1ContainerPort
mkV1ContainerPort Int
v1ContainerPortContainerPort =
  V1ContainerPort :: Int
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> V1ContainerPort
V1ContainerPort
  { Int
v1ContainerPortContainerPort :: Int
v1ContainerPortContainerPort :: Int
v1ContainerPortContainerPort
  , v1ContainerPortHostIp :: Maybe Text
v1ContainerPortHostIp = Maybe Text
forall a. Maybe a
Nothing
  , v1ContainerPortHostPort :: Maybe Int
v1ContainerPortHostPort = Maybe Int
forall a. Maybe a
Nothing
  , v1ContainerPortName :: Maybe Text
v1ContainerPortName = Maybe Text
forall a. Maybe a
Nothing
  , v1ContainerPortProtocol :: Maybe Text
v1ContainerPortProtocol = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1ContainerState
-- | V1ContainerState
-- ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.
data V1ContainerState = V1ContainerState
  { V1ContainerState -> Maybe V1ContainerStateRunning
v1ContainerStateRunning :: !(Maybe V1ContainerStateRunning) -- ^ "running"
  , V1ContainerState -> Maybe V1ContainerStateTerminated
v1ContainerStateTerminated :: !(Maybe V1ContainerStateTerminated) -- ^ "terminated"
  , V1ContainerState -> Maybe V1ContainerStateWaiting
v1ContainerStateWaiting :: !(Maybe V1ContainerStateWaiting) -- ^ "waiting"
  } deriving (Int -> V1ContainerState -> ShowS
[V1ContainerState] -> ShowS
V1ContainerState -> String
(Int -> V1ContainerState -> ShowS)
-> (V1ContainerState -> String)
-> ([V1ContainerState] -> ShowS)
-> Show V1ContainerState
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ContainerState] -> ShowS
$cshowList :: [V1ContainerState] -> ShowS
show :: V1ContainerState -> String
$cshow :: V1ContainerState -> String
showsPrec :: Int -> V1ContainerState -> ShowS
$cshowsPrec :: Int -> V1ContainerState -> ShowS
P.Show, V1ContainerState -> V1ContainerState -> Bool
(V1ContainerState -> V1ContainerState -> Bool)
-> (V1ContainerState -> V1ContainerState -> Bool)
-> Eq V1ContainerState
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ContainerState -> V1ContainerState -> Bool
$c/= :: V1ContainerState -> V1ContainerState -> Bool
== :: V1ContainerState -> V1ContainerState -> Bool
$c== :: V1ContainerState -> V1ContainerState -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ContainerState
instance A.FromJSON V1ContainerState where
  parseJSON :: Value -> Parser V1ContainerState
parseJSON = String
-> (Object -> Parser V1ContainerState)
-> Value
-> Parser V1ContainerState
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ContainerState" ((Object -> Parser V1ContainerState)
 -> Value -> Parser V1ContainerState)
-> (Object -> Parser V1ContainerState)
-> Value
-> Parser V1ContainerState
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1ContainerStateRunning
-> Maybe V1ContainerStateTerminated
-> Maybe V1ContainerStateWaiting
-> V1ContainerState
V1ContainerState
      (Maybe V1ContainerStateRunning
 -> Maybe V1ContainerStateTerminated
 -> Maybe V1ContainerStateWaiting
 -> V1ContainerState)
-> Parser (Maybe V1ContainerStateRunning)
-> Parser
     (Maybe V1ContainerStateTerminated
      -> Maybe V1ContainerStateWaiting -> V1ContainerState)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1ContainerStateRunning)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"running")
      Parser
  (Maybe V1ContainerStateTerminated
   -> Maybe V1ContainerStateWaiting -> V1ContainerState)
-> Parser (Maybe V1ContainerStateTerminated)
-> Parser (Maybe V1ContainerStateWaiting -> V1ContainerState)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ContainerStateTerminated)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"terminated")
      Parser (Maybe V1ContainerStateWaiting -> V1ContainerState)
-> Parser (Maybe V1ContainerStateWaiting)
-> Parser V1ContainerState
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ContainerStateWaiting)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"waiting")

-- | ToJSON V1ContainerState
instance A.ToJSON V1ContainerState where
  toJSON :: V1ContainerState -> Value
toJSON V1ContainerState {Maybe V1ContainerStateWaiting
Maybe V1ContainerStateTerminated
Maybe V1ContainerStateRunning
v1ContainerStateWaiting :: Maybe V1ContainerStateWaiting
v1ContainerStateTerminated :: Maybe V1ContainerStateTerminated
v1ContainerStateRunning :: Maybe V1ContainerStateRunning
v1ContainerStateWaiting :: V1ContainerState -> Maybe V1ContainerStateWaiting
v1ContainerStateTerminated :: V1ContainerState -> Maybe V1ContainerStateTerminated
v1ContainerStateRunning :: V1ContainerState -> Maybe V1ContainerStateRunning
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"running" Text -> Maybe V1ContainerStateRunning -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ContainerStateRunning
v1ContainerStateRunning
      , Text
"terminated" Text -> Maybe V1ContainerStateTerminated -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ContainerStateTerminated
v1ContainerStateTerminated
      , Text
"waiting" Text -> Maybe V1ContainerStateWaiting -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ContainerStateWaiting
v1ContainerStateWaiting
      ]


-- | Construct a value of type 'V1ContainerState' (by applying it's required fields, if any)
mkV1ContainerState
  :: V1ContainerState
mkV1ContainerState :: V1ContainerState
mkV1ContainerState =
  V1ContainerState :: Maybe V1ContainerStateRunning
-> Maybe V1ContainerStateTerminated
-> Maybe V1ContainerStateWaiting
-> V1ContainerState
V1ContainerState
  { v1ContainerStateRunning :: Maybe V1ContainerStateRunning
v1ContainerStateRunning = Maybe V1ContainerStateRunning
forall a. Maybe a
Nothing
  , v1ContainerStateTerminated :: Maybe V1ContainerStateTerminated
v1ContainerStateTerminated = Maybe V1ContainerStateTerminated
forall a. Maybe a
Nothing
  , v1ContainerStateWaiting :: Maybe V1ContainerStateWaiting
v1ContainerStateWaiting = Maybe V1ContainerStateWaiting
forall a. Maybe a
Nothing
  }

-- ** V1ContainerStateRunning
-- | V1ContainerStateRunning
-- ContainerStateRunning is a running state of a container.
data V1ContainerStateRunning = V1ContainerStateRunning
  { V1ContainerStateRunning -> Maybe DateTime
v1ContainerStateRunningStartedAt :: !(Maybe DateTime) -- ^ "startedAt" - Time at which the container was last (re-)started
  } deriving (Int -> V1ContainerStateRunning -> ShowS
[V1ContainerStateRunning] -> ShowS
V1ContainerStateRunning -> String
(Int -> V1ContainerStateRunning -> ShowS)
-> (V1ContainerStateRunning -> String)
-> ([V1ContainerStateRunning] -> ShowS)
-> Show V1ContainerStateRunning
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ContainerStateRunning] -> ShowS
$cshowList :: [V1ContainerStateRunning] -> ShowS
show :: V1ContainerStateRunning -> String
$cshow :: V1ContainerStateRunning -> String
showsPrec :: Int -> V1ContainerStateRunning -> ShowS
$cshowsPrec :: Int -> V1ContainerStateRunning -> ShowS
P.Show, V1ContainerStateRunning -> V1ContainerStateRunning -> Bool
(V1ContainerStateRunning -> V1ContainerStateRunning -> Bool)
-> (V1ContainerStateRunning -> V1ContainerStateRunning -> Bool)
-> Eq V1ContainerStateRunning
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ContainerStateRunning -> V1ContainerStateRunning -> Bool
$c/= :: V1ContainerStateRunning -> V1ContainerStateRunning -> Bool
== :: V1ContainerStateRunning -> V1ContainerStateRunning -> Bool
$c== :: V1ContainerStateRunning -> V1ContainerStateRunning -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ContainerStateRunning
instance A.FromJSON V1ContainerStateRunning where
  parseJSON :: Value -> Parser V1ContainerStateRunning
parseJSON = String
-> (Object -> Parser V1ContainerStateRunning)
-> Value
-> Parser V1ContainerStateRunning
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ContainerStateRunning" ((Object -> Parser V1ContainerStateRunning)
 -> Value -> Parser V1ContainerStateRunning)
-> (Object -> Parser V1ContainerStateRunning)
-> Value
-> Parser V1ContainerStateRunning
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime -> V1ContainerStateRunning
V1ContainerStateRunning
      (Maybe DateTime -> V1ContainerStateRunning)
-> Parser (Maybe DateTime) -> Parser V1ContainerStateRunning
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"startedAt")

-- | ToJSON V1ContainerStateRunning
instance A.ToJSON V1ContainerStateRunning where
  toJSON :: V1ContainerStateRunning -> Value
toJSON V1ContainerStateRunning {Maybe DateTime
v1ContainerStateRunningStartedAt :: Maybe DateTime
v1ContainerStateRunningStartedAt :: V1ContainerStateRunning -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"startedAt" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1ContainerStateRunningStartedAt
      ]


-- | Construct a value of type 'V1ContainerStateRunning' (by applying it's required fields, if any)
mkV1ContainerStateRunning
  :: V1ContainerStateRunning
mkV1ContainerStateRunning :: V1ContainerStateRunning
mkV1ContainerStateRunning =
  V1ContainerStateRunning :: Maybe DateTime -> V1ContainerStateRunning
V1ContainerStateRunning
  { v1ContainerStateRunningStartedAt :: Maybe DateTime
v1ContainerStateRunningStartedAt = Maybe DateTime
forall a. Maybe a
Nothing
  }

-- ** V1ContainerStateTerminated
-- | V1ContainerStateTerminated
-- ContainerStateTerminated is a terminated state of a container.
data V1ContainerStateTerminated = V1ContainerStateTerminated
  { V1ContainerStateTerminated -> Maybe Text
v1ContainerStateTerminatedContainerId :: !(Maybe Text) -- ^ "containerID" - Container&#39;s ID in the format &#39;docker://&lt;container_id&gt;&#39;
  , V1ContainerStateTerminated -> Int
v1ContainerStateTerminatedExitCode :: !(Int) -- ^ /Required/ "exitCode" - Exit status from the last termination of the container
  , V1ContainerStateTerminated -> Maybe DateTime
v1ContainerStateTerminatedFinishedAt :: !(Maybe DateTime) -- ^ "finishedAt" - Time at which the container last terminated
  , V1ContainerStateTerminated -> Maybe Text
v1ContainerStateTerminatedMessage :: !(Maybe Text) -- ^ "message" - Message regarding the last termination of the container
  , V1ContainerStateTerminated -> Maybe Text
v1ContainerStateTerminatedReason :: !(Maybe Text) -- ^ "reason" - (brief) reason from the last termination of the container
  , V1ContainerStateTerminated -> Maybe Int
v1ContainerStateTerminatedSignal :: !(Maybe Int) -- ^ "signal" - Signal from the last termination of the container
  , V1ContainerStateTerminated -> Maybe DateTime
v1ContainerStateTerminatedStartedAt :: !(Maybe DateTime) -- ^ "startedAt" - Time at which previous execution of the container started
  } deriving (Int -> V1ContainerStateTerminated -> ShowS
[V1ContainerStateTerminated] -> ShowS
V1ContainerStateTerminated -> String
(Int -> V1ContainerStateTerminated -> ShowS)
-> (V1ContainerStateTerminated -> String)
-> ([V1ContainerStateTerminated] -> ShowS)
-> Show V1ContainerStateTerminated
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ContainerStateTerminated] -> ShowS
$cshowList :: [V1ContainerStateTerminated] -> ShowS
show :: V1ContainerStateTerminated -> String
$cshow :: V1ContainerStateTerminated -> String
showsPrec :: Int -> V1ContainerStateTerminated -> ShowS
$cshowsPrec :: Int -> V1ContainerStateTerminated -> ShowS
P.Show, V1ContainerStateTerminated -> V1ContainerStateTerminated -> Bool
(V1ContainerStateTerminated -> V1ContainerStateTerminated -> Bool)
-> (V1ContainerStateTerminated
    -> V1ContainerStateTerminated -> Bool)
-> Eq V1ContainerStateTerminated
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ContainerStateTerminated -> V1ContainerStateTerminated -> Bool
$c/= :: V1ContainerStateTerminated -> V1ContainerStateTerminated -> Bool
== :: V1ContainerStateTerminated -> V1ContainerStateTerminated -> Bool
$c== :: V1ContainerStateTerminated -> V1ContainerStateTerminated -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ContainerStateTerminated
instance A.FromJSON V1ContainerStateTerminated where
  parseJSON :: Value -> Parser V1ContainerStateTerminated
parseJSON = String
-> (Object -> Parser V1ContainerStateTerminated)
-> Value
-> Parser V1ContainerStateTerminated
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ContainerStateTerminated" ((Object -> Parser V1ContainerStateTerminated)
 -> Value -> Parser V1ContainerStateTerminated)
-> (Object -> Parser V1ContainerStateTerminated)
-> Value
-> Parser V1ContainerStateTerminated
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Int
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe DateTime
-> V1ContainerStateTerminated
V1ContainerStateTerminated
      (Maybe Text
 -> Int
 -> Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Maybe Int
 -> Maybe DateTime
 -> V1ContainerStateTerminated)
-> Parser (Maybe Text)
-> Parser
     (Int
      -> Maybe DateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe DateTime
      -> V1ContainerStateTerminated)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"containerID")
      Parser
  (Int
   -> Maybe DateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe DateTime
   -> V1ContainerStateTerminated)
-> Parser Int
-> Parser
     (Maybe DateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe DateTime
      -> V1ContainerStateTerminated)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"exitCode")
      Parser
  (Maybe DateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe DateTime
   -> V1ContainerStateTerminated)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe DateTime
      -> V1ContainerStateTerminated)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"finishedAt")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe DateTime
   -> V1ContainerStateTerminated)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Int -> Maybe DateTime -> V1ContainerStateTerminated)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser
  (Maybe Text
   -> Maybe Int -> Maybe DateTime -> V1ContainerStateTerminated)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int -> Maybe DateTime -> V1ContainerStateTerminated)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Maybe Int -> Maybe DateTime -> V1ContainerStateTerminated)
-> Parser (Maybe Int)
-> Parser (Maybe DateTime -> V1ContainerStateTerminated)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"signal")
      Parser (Maybe DateTime -> V1ContainerStateTerminated)
-> Parser (Maybe DateTime) -> Parser V1ContainerStateTerminated
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"startedAt")

-- | ToJSON V1ContainerStateTerminated
instance A.ToJSON V1ContainerStateTerminated where
  toJSON :: V1ContainerStateTerminated -> Value
toJSON V1ContainerStateTerminated {Int
Maybe Int
Maybe Text
Maybe DateTime
v1ContainerStateTerminatedStartedAt :: Maybe DateTime
v1ContainerStateTerminatedSignal :: Maybe Int
v1ContainerStateTerminatedReason :: Maybe Text
v1ContainerStateTerminatedMessage :: Maybe Text
v1ContainerStateTerminatedFinishedAt :: Maybe DateTime
v1ContainerStateTerminatedExitCode :: Int
v1ContainerStateTerminatedContainerId :: Maybe Text
v1ContainerStateTerminatedStartedAt :: V1ContainerStateTerminated -> Maybe DateTime
v1ContainerStateTerminatedSignal :: V1ContainerStateTerminated -> Maybe Int
v1ContainerStateTerminatedReason :: V1ContainerStateTerminated -> Maybe Text
v1ContainerStateTerminatedMessage :: V1ContainerStateTerminated -> Maybe Text
v1ContainerStateTerminatedFinishedAt :: V1ContainerStateTerminated -> Maybe DateTime
v1ContainerStateTerminatedExitCode :: V1ContainerStateTerminated -> Int
v1ContainerStateTerminatedContainerId :: V1ContainerStateTerminated -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"containerID" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ContainerStateTerminatedContainerId
      , Text
"exitCode" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1ContainerStateTerminatedExitCode
      , Text
"finishedAt" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1ContainerStateTerminatedFinishedAt
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ContainerStateTerminatedMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ContainerStateTerminatedReason
      , Text
"signal" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ContainerStateTerminatedSignal
      , Text
"startedAt" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1ContainerStateTerminatedStartedAt
      ]


-- | Construct a value of type 'V1ContainerStateTerminated' (by applying it's required fields, if any)
mkV1ContainerStateTerminated
  :: Int -- ^ 'v1ContainerStateTerminatedExitCode': Exit status from the last termination of the container
  -> V1ContainerStateTerminated
mkV1ContainerStateTerminated :: Int -> V1ContainerStateTerminated
mkV1ContainerStateTerminated Int
v1ContainerStateTerminatedExitCode =
  V1ContainerStateTerminated :: Maybe Text
-> Int
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe DateTime
-> V1ContainerStateTerminated
V1ContainerStateTerminated
  { v1ContainerStateTerminatedContainerId :: Maybe Text
v1ContainerStateTerminatedContainerId = Maybe Text
forall a. Maybe a
Nothing
  , Int
v1ContainerStateTerminatedExitCode :: Int
v1ContainerStateTerminatedExitCode :: Int
v1ContainerStateTerminatedExitCode
  , v1ContainerStateTerminatedFinishedAt :: Maybe DateTime
v1ContainerStateTerminatedFinishedAt = Maybe DateTime
forall a. Maybe a
Nothing
  , v1ContainerStateTerminatedMessage :: Maybe Text
v1ContainerStateTerminatedMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1ContainerStateTerminatedReason :: Maybe Text
v1ContainerStateTerminatedReason = Maybe Text
forall a. Maybe a
Nothing
  , v1ContainerStateTerminatedSignal :: Maybe Int
v1ContainerStateTerminatedSignal = Maybe Int
forall a. Maybe a
Nothing
  , v1ContainerStateTerminatedStartedAt :: Maybe DateTime
v1ContainerStateTerminatedStartedAt = Maybe DateTime
forall a. Maybe a
Nothing
  }

-- ** V1ContainerStateWaiting
-- | V1ContainerStateWaiting
-- ContainerStateWaiting is a waiting state of a container.
data V1ContainerStateWaiting = V1ContainerStateWaiting
  { V1ContainerStateWaiting -> Maybe Text
v1ContainerStateWaitingMessage :: !(Maybe Text) -- ^ "message" - Message regarding why the container is not yet running.
  , V1ContainerStateWaiting -> Maybe Text
v1ContainerStateWaitingReason :: !(Maybe Text) -- ^ "reason" - (brief) reason the container is not yet running.
  } deriving (Int -> V1ContainerStateWaiting -> ShowS
[V1ContainerStateWaiting] -> ShowS
V1ContainerStateWaiting -> String
(Int -> V1ContainerStateWaiting -> ShowS)
-> (V1ContainerStateWaiting -> String)
-> ([V1ContainerStateWaiting] -> ShowS)
-> Show V1ContainerStateWaiting
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ContainerStateWaiting] -> ShowS
$cshowList :: [V1ContainerStateWaiting] -> ShowS
show :: V1ContainerStateWaiting -> String
$cshow :: V1ContainerStateWaiting -> String
showsPrec :: Int -> V1ContainerStateWaiting -> ShowS
$cshowsPrec :: Int -> V1ContainerStateWaiting -> ShowS
P.Show, V1ContainerStateWaiting -> V1ContainerStateWaiting -> Bool
(V1ContainerStateWaiting -> V1ContainerStateWaiting -> Bool)
-> (V1ContainerStateWaiting -> V1ContainerStateWaiting -> Bool)
-> Eq V1ContainerStateWaiting
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ContainerStateWaiting -> V1ContainerStateWaiting -> Bool
$c/= :: V1ContainerStateWaiting -> V1ContainerStateWaiting -> Bool
== :: V1ContainerStateWaiting -> V1ContainerStateWaiting -> Bool
$c== :: V1ContainerStateWaiting -> V1ContainerStateWaiting -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ContainerStateWaiting
instance A.FromJSON V1ContainerStateWaiting where
  parseJSON :: Value -> Parser V1ContainerStateWaiting
parseJSON = String
-> (Object -> Parser V1ContainerStateWaiting)
-> Value
-> Parser V1ContainerStateWaiting
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ContainerStateWaiting" ((Object -> Parser V1ContainerStateWaiting)
 -> Value -> Parser V1ContainerStateWaiting)
-> (Object -> Parser V1ContainerStateWaiting)
-> Value
-> Parser V1ContainerStateWaiting
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Text -> V1ContainerStateWaiting
V1ContainerStateWaiting
      (Maybe Text -> Maybe Text -> V1ContainerStateWaiting)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1ContainerStateWaiting)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> V1ContainerStateWaiting)
-> Parser (Maybe Text) -> Parser V1ContainerStateWaiting
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")

-- | ToJSON V1ContainerStateWaiting
instance A.ToJSON V1ContainerStateWaiting where
  toJSON :: V1ContainerStateWaiting -> Value
toJSON V1ContainerStateWaiting {Maybe Text
v1ContainerStateWaitingReason :: Maybe Text
v1ContainerStateWaitingMessage :: Maybe Text
v1ContainerStateWaitingReason :: V1ContainerStateWaiting -> Maybe Text
v1ContainerStateWaitingMessage :: V1ContainerStateWaiting -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ContainerStateWaitingMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ContainerStateWaitingReason
      ]


-- | Construct a value of type 'V1ContainerStateWaiting' (by applying it's required fields, if any)
mkV1ContainerStateWaiting
  :: V1ContainerStateWaiting
mkV1ContainerStateWaiting :: V1ContainerStateWaiting
mkV1ContainerStateWaiting =
  V1ContainerStateWaiting :: Maybe Text -> Maybe Text -> V1ContainerStateWaiting
V1ContainerStateWaiting
  { v1ContainerStateWaitingMessage :: Maybe Text
v1ContainerStateWaitingMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1ContainerStateWaitingReason :: Maybe Text
v1ContainerStateWaitingReason = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1ContainerStatus
-- | V1ContainerStatus
-- ContainerStatus contains details for the current status of this container.
data V1ContainerStatus = V1ContainerStatus
  { V1ContainerStatus -> Maybe Text
v1ContainerStatusContainerId :: !(Maybe Text) -- ^ "containerID" - Container&#39;s ID in the format &#39;docker://&lt;container_id&gt;&#39;.
  , V1ContainerStatus -> Text
v1ContainerStatusImage :: !(Text) -- ^ /Required/ "image" - The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images
  , V1ContainerStatus -> Text
v1ContainerStatusImageId :: !(Text) -- ^ /Required/ "imageID" - ImageID of the container&#39;s image.
  , V1ContainerStatus -> Maybe V1ContainerState
v1ContainerStatusLastState :: !(Maybe V1ContainerState) -- ^ "lastState"
  , V1ContainerStatus -> Text
v1ContainerStatusName :: !(Text) -- ^ /Required/ "name" - This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.
  , V1ContainerStatus -> Bool
v1ContainerStatusReady :: !(Bool) -- ^ /Required/ "ready" - Specifies whether the container has passed its readiness probe.
  , V1ContainerStatus -> Int
v1ContainerStatusRestartCount :: !(Int) -- ^ /Required/ "restartCount" - The number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed. Note that this is calculated from dead containers. But those containers are subject to garbage collection. This value will get capped at 5 by GC.
  , V1ContainerStatus -> Maybe Bool
v1ContainerStatusStarted :: !(Maybe Bool) -- ^ "started" - Specifies whether the container has passed its startup probe. Initialized as false, becomes true after startupProbe is considered successful. Resets to false when the container is restarted, or if kubelet loses state temporarily. Is always true when no startupProbe is defined.
  , V1ContainerStatus -> Maybe V1ContainerState
v1ContainerStatusState :: !(Maybe V1ContainerState) -- ^ "state"
  } deriving (Int -> V1ContainerStatus -> ShowS
[V1ContainerStatus] -> ShowS
V1ContainerStatus -> String
(Int -> V1ContainerStatus -> ShowS)
-> (V1ContainerStatus -> String)
-> ([V1ContainerStatus] -> ShowS)
-> Show V1ContainerStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ContainerStatus] -> ShowS
$cshowList :: [V1ContainerStatus] -> ShowS
show :: V1ContainerStatus -> String
$cshow :: V1ContainerStatus -> String
showsPrec :: Int -> V1ContainerStatus -> ShowS
$cshowsPrec :: Int -> V1ContainerStatus -> ShowS
P.Show, V1ContainerStatus -> V1ContainerStatus -> Bool
(V1ContainerStatus -> V1ContainerStatus -> Bool)
-> (V1ContainerStatus -> V1ContainerStatus -> Bool)
-> Eq V1ContainerStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ContainerStatus -> V1ContainerStatus -> Bool
$c/= :: V1ContainerStatus -> V1ContainerStatus -> Bool
== :: V1ContainerStatus -> V1ContainerStatus -> Bool
$c== :: V1ContainerStatus -> V1ContainerStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ContainerStatus
instance A.FromJSON V1ContainerStatus where
  parseJSON :: Value -> Parser V1ContainerStatus
parseJSON = String
-> (Object -> Parser V1ContainerStatus)
-> Value
-> Parser V1ContainerStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ContainerStatus" ((Object -> Parser V1ContainerStatus)
 -> Value -> Parser V1ContainerStatus)
-> (Object -> Parser V1ContainerStatus)
-> Value
-> Parser V1ContainerStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Text
-> Text
-> Maybe V1ContainerState
-> Text
-> Bool
-> Int
-> Maybe Bool
-> Maybe V1ContainerState
-> V1ContainerStatus
V1ContainerStatus
      (Maybe Text
 -> Text
 -> Text
 -> Maybe V1ContainerState
 -> Text
 -> Bool
 -> Int
 -> Maybe Bool
 -> Maybe V1ContainerState
 -> V1ContainerStatus)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Text
      -> Maybe V1ContainerState
      -> Text
      -> Bool
      -> Int
      -> Maybe Bool
      -> Maybe V1ContainerState
      -> V1ContainerStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"containerID")
      Parser
  (Text
   -> Text
   -> Maybe V1ContainerState
   -> Text
   -> Bool
   -> Int
   -> Maybe Bool
   -> Maybe V1ContainerState
   -> V1ContainerStatus)
-> Parser Text
-> Parser
     (Text
      -> Maybe V1ContainerState
      -> Text
      -> Bool
      -> Int
      -> Maybe Bool
      -> Maybe V1ContainerState
      -> V1ContainerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"image")
      Parser
  (Text
   -> Maybe V1ContainerState
   -> Text
   -> Bool
   -> Int
   -> Maybe Bool
   -> Maybe V1ContainerState
   -> V1ContainerStatus)
-> Parser Text
-> Parser
     (Maybe V1ContainerState
      -> Text
      -> Bool
      -> Int
      -> Maybe Bool
      -> Maybe V1ContainerState
      -> V1ContainerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"imageID")
      Parser
  (Maybe V1ContainerState
   -> Text
   -> Bool
   -> Int
   -> Maybe Bool
   -> Maybe V1ContainerState
   -> V1ContainerStatus)
-> Parser (Maybe V1ContainerState)
-> Parser
     (Text
      -> Bool
      -> Int
      -> Maybe Bool
      -> Maybe V1ContainerState
      -> V1ContainerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ContainerState)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastState")
      Parser
  (Text
   -> Bool
   -> Int
   -> Maybe Bool
   -> Maybe V1ContainerState
   -> V1ContainerStatus)
-> Parser Text
-> Parser
     (Bool
      -> Int
      -> Maybe Bool
      -> Maybe V1ContainerState
      -> V1ContainerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Bool
   -> Int
   -> Maybe Bool
   -> Maybe V1ContainerState
   -> V1ContainerStatus)
-> Parser Bool
-> Parser
     (Int -> Maybe Bool -> Maybe V1ContainerState -> V1ContainerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"ready")
      Parser
  (Int -> Maybe Bool -> Maybe V1ContainerState -> V1ContainerStatus)
-> Parser Int
-> Parser
     (Maybe Bool -> Maybe V1ContainerState -> V1ContainerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"restartCount")
      Parser (Maybe Bool -> Maybe V1ContainerState -> V1ContainerStatus)
-> Parser (Maybe Bool)
-> Parser (Maybe V1ContainerState -> V1ContainerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"started")
      Parser (Maybe V1ContainerState -> V1ContainerStatus)
-> Parser (Maybe V1ContainerState) -> Parser V1ContainerStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ContainerState)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"state")

-- | ToJSON V1ContainerStatus
instance A.ToJSON V1ContainerStatus where
  toJSON :: V1ContainerStatus -> Value
toJSON V1ContainerStatus {Bool
Int
Maybe Bool
Maybe Text
Maybe V1ContainerState
Text
v1ContainerStatusState :: Maybe V1ContainerState
v1ContainerStatusStarted :: Maybe Bool
v1ContainerStatusRestartCount :: Int
v1ContainerStatusReady :: Bool
v1ContainerStatusName :: Text
v1ContainerStatusLastState :: Maybe V1ContainerState
v1ContainerStatusImageId :: Text
v1ContainerStatusImage :: Text
v1ContainerStatusContainerId :: Maybe Text
v1ContainerStatusState :: V1ContainerStatus -> Maybe V1ContainerState
v1ContainerStatusStarted :: V1ContainerStatus -> Maybe Bool
v1ContainerStatusRestartCount :: V1ContainerStatus -> Int
v1ContainerStatusReady :: V1ContainerStatus -> Bool
v1ContainerStatusName :: V1ContainerStatus -> Text
v1ContainerStatusLastState :: V1ContainerStatus -> Maybe V1ContainerState
v1ContainerStatusImageId :: V1ContainerStatus -> Text
v1ContainerStatusImage :: V1ContainerStatus -> Text
v1ContainerStatusContainerId :: V1ContainerStatus -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"containerID" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ContainerStatusContainerId
      , Text
"image" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ContainerStatusImage
      , Text
"imageID" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ContainerStatusImageId
      , Text
"lastState" Text -> Maybe V1ContainerState -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ContainerState
v1ContainerStatusLastState
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ContainerStatusName
      , Text
"ready" Text -> Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Bool
v1ContainerStatusReady
      , Text
"restartCount" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1ContainerStatusRestartCount
      , Text
"started" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ContainerStatusStarted
      , Text
"state" Text -> Maybe V1ContainerState -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ContainerState
v1ContainerStatusState
      ]


-- | Construct a value of type 'V1ContainerStatus' (by applying it's required fields, if any)
mkV1ContainerStatus
  :: Text -- ^ 'v1ContainerStatusImage': The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images
  -> Text -- ^ 'v1ContainerStatusImageId': ImageID of the container's image.
  -> Text -- ^ 'v1ContainerStatusName': This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.
  -> Bool -- ^ 'v1ContainerStatusReady': Specifies whether the container has passed its readiness probe.
  -> Int -- ^ 'v1ContainerStatusRestartCount': The number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed. Note that this is calculated from dead containers. But those containers are subject to garbage collection. This value will get capped at 5 by GC.
  -> V1ContainerStatus
mkV1ContainerStatus :: Text -> Text -> Text -> Bool -> Int -> V1ContainerStatus
mkV1ContainerStatus Text
v1ContainerStatusImage Text
v1ContainerStatusImageId Text
v1ContainerStatusName Bool
v1ContainerStatusReady Int
v1ContainerStatusRestartCount =
  V1ContainerStatus :: Maybe Text
-> Text
-> Text
-> Maybe V1ContainerState
-> Text
-> Bool
-> Int
-> Maybe Bool
-> Maybe V1ContainerState
-> V1ContainerStatus
V1ContainerStatus
  { v1ContainerStatusContainerId :: Maybe Text
v1ContainerStatusContainerId = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1ContainerStatusImage :: Text
v1ContainerStatusImage :: Text
v1ContainerStatusImage
  , Text
v1ContainerStatusImageId :: Text
v1ContainerStatusImageId :: Text
v1ContainerStatusImageId
  , v1ContainerStatusLastState :: Maybe V1ContainerState
v1ContainerStatusLastState = Maybe V1ContainerState
forall a. Maybe a
Nothing
  , Text
v1ContainerStatusName :: Text
v1ContainerStatusName :: Text
v1ContainerStatusName
  , Bool
v1ContainerStatusReady :: Bool
v1ContainerStatusReady :: Bool
v1ContainerStatusReady
  , Int
v1ContainerStatusRestartCount :: Int
v1ContainerStatusRestartCount :: Int
v1ContainerStatusRestartCount
  , v1ContainerStatusStarted :: Maybe Bool
v1ContainerStatusStarted = Maybe Bool
forall a. Maybe a
Nothing
  , v1ContainerStatusState :: Maybe V1ContainerState
v1ContainerStatusState = Maybe V1ContainerState
forall a. Maybe a
Nothing
  }

-- ** V1ControllerRevision
-- | V1ControllerRevision
-- ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.
data V1ControllerRevision = V1ControllerRevision
  { V1ControllerRevision -> Maybe Text
v1ControllerRevisionApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ControllerRevision -> Maybe Value
v1ControllerRevisionData :: !(Maybe A.Value) -- ^ "data" - Data is the serialized representation of the state.
  , V1ControllerRevision -> Maybe Text
v1ControllerRevisionKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ControllerRevision -> Maybe V1ObjectMeta
v1ControllerRevisionMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1ControllerRevision -> Integer
v1ControllerRevisionRevision :: !(Integer) -- ^ /Required/ "revision" - Revision indicates the revision of the state represented by Data.
  } deriving (Int -> V1ControllerRevision -> ShowS
[V1ControllerRevision] -> ShowS
V1ControllerRevision -> String
(Int -> V1ControllerRevision -> ShowS)
-> (V1ControllerRevision -> String)
-> ([V1ControllerRevision] -> ShowS)
-> Show V1ControllerRevision
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ControllerRevision] -> ShowS
$cshowList :: [V1ControllerRevision] -> ShowS
show :: V1ControllerRevision -> String
$cshow :: V1ControllerRevision -> String
showsPrec :: Int -> V1ControllerRevision -> ShowS
$cshowsPrec :: Int -> V1ControllerRevision -> ShowS
P.Show, V1ControllerRevision -> V1ControllerRevision -> Bool
(V1ControllerRevision -> V1ControllerRevision -> Bool)
-> (V1ControllerRevision -> V1ControllerRevision -> Bool)
-> Eq V1ControllerRevision
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ControllerRevision -> V1ControllerRevision -> Bool
$c/= :: V1ControllerRevision -> V1ControllerRevision -> Bool
== :: V1ControllerRevision -> V1ControllerRevision -> Bool
$c== :: V1ControllerRevision -> V1ControllerRevision -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ControllerRevision
instance A.FromJSON V1ControllerRevision where
  parseJSON :: Value -> Parser V1ControllerRevision
parseJSON = String
-> (Object -> Parser V1ControllerRevision)
-> Value
-> Parser V1ControllerRevision
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ControllerRevision" ((Object -> Parser V1ControllerRevision)
 -> Value -> Parser V1ControllerRevision)
-> (Object -> Parser V1ControllerRevision)
-> Value
-> Parser V1ControllerRevision
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Value
-> Maybe Text
-> Maybe V1ObjectMeta
-> Integer
-> V1ControllerRevision
V1ControllerRevision
      (Maybe Text
 -> Maybe Value
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Integer
 -> V1ControllerRevision)
-> Parser (Maybe Text)
-> Parser
     (Maybe Value
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Integer
      -> V1ControllerRevision)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Value
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Integer
   -> V1ControllerRevision)
-> Parser (Maybe Value)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta -> Integer -> V1ControllerRevision)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"data")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta -> Integer -> V1ControllerRevision)
-> Parser (Maybe Text)
-> Parser (Maybe V1ObjectMeta -> Integer -> V1ControllerRevision)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ObjectMeta -> Integer -> V1ControllerRevision)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Integer -> V1ControllerRevision)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Integer -> V1ControllerRevision)
-> Parser Integer -> Parser V1ControllerRevision
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Integer
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"revision")

-- | ToJSON V1ControllerRevision
instance A.ToJSON V1ControllerRevision where
  toJSON :: V1ControllerRevision -> Value
toJSON V1ControllerRevision {Integer
Maybe Text
Maybe Value
Maybe V1ObjectMeta
v1ControllerRevisionRevision :: Integer
v1ControllerRevisionMetadata :: Maybe V1ObjectMeta
v1ControllerRevisionKind :: Maybe Text
v1ControllerRevisionData :: Maybe Value
v1ControllerRevisionApiVersion :: Maybe Text
v1ControllerRevisionRevision :: V1ControllerRevision -> Integer
v1ControllerRevisionMetadata :: V1ControllerRevision -> Maybe V1ObjectMeta
v1ControllerRevisionKind :: V1ControllerRevision -> Maybe Text
v1ControllerRevisionData :: V1ControllerRevision -> Maybe Value
v1ControllerRevisionApiVersion :: V1ControllerRevision -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ControllerRevisionApiVersion
      , Text
"data" Text -> Maybe Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Value
v1ControllerRevisionData
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ControllerRevisionKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1ControllerRevisionMetadata
      , Text
"revision" Text -> Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Integer
v1ControllerRevisionRevision
      ]


-- | Construct a value of type 'V1ControllerRevision' (by applying it's required fields, if any)
mkV1ControllerRevision
  :: Integer -- ^ 'v1ControllerRevisionRevision': Revision indicates the revision of the state represented by Data.
  -> V1ControllerRevision
mkV1ControllerRevision :: Integer -> V1ControllerRevision
mkV1ControllerRevision Integer
v1ControllerRevisionRevision =
  V1ControllerRevision :: Maybe Text
-> Maybe Value
-> Maybe Text
-> Maybe V1ObjectMeta
-> Integer
-> V1ControllerRevision
V1ControllerRevision
  { v1ControllerRevisionApiVersion :: Maybe Text
v1ControllerRevisionApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ControllerRevisionData :: Maybe Value
v1ControllerRevisionData = Maybe Value
forall a. Maybe a
Nothing
  , v1ControllerRevisionKind :: Maybe Text
v1ControllerRevisionKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ControllerRevisionMetadata :: Maybe V1ObjectMeta
v1ControllerRevisionMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , Integer
v1ControllerRevisionRevision :: Integer
v1ControllerRevisionRevision :: Integer
v1ControllerRevisionRevision
  }

-- ** V1ControllerRevisionList
-- | V1ControllerRevisionList
-- ControllerRevisionList is a resource containing a list of ControllerRevision objects.
data V1ControllerRevisionList = V1ControllerRevisionList
  { V1ControllerRevisionList -> Maybe Text
v1ControllerRevisionListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ControllerRevisionList -> [V1ControllerRevision]
v1ControllerRevisionListItems :: !([V1ControllerRevision]) -- ^ /Required/ "items" - Items is the list of ControllerRevisions
  , V1ControllerRevisionList -> Maybe Text
v1ControllerRevisionListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ControllerRevisionList -> Maybe V1ListMeta
v1ControllerRevisionListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1ControllerRevisionList -> ShowS
[V1ControllerRevisionList] -> ShowS
V1ControllerRevisionList -> String
(Int -> V1ControllerRevisionList -> ShowS)
-> (V1ControllerRevisionList -> String)
-> ([V1ControllerRevisionList] -> ShowS)
-> Show V1ControllerRevisionList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ControllerRevisionList] -> ShowS
$cshowList :: [V1ControllerRevisionList] -> ShowS
show :: V1ControllerRevisionList -> String
$cshow :: V1ControllerRevisionList -> String
showsPrec :: Int -> V1ControllerRevisionList -> ShowS
$cshowsPrec :: Int -> V1ControllerRevisionList -> ShowS
P.Show, V1ControllerRevisionList -> V1ControllerRevisionList -> Bool
(V1ControllerRevisionList -> V1ControllerRevisionList -> Bool)
-> (V1ControllerRevisionList -> V1ControllerRevisionList -> Bool)
-> Eq V1ControllerRevisionList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ControllerRevisionList -> V1ControllerRevisionList -> Bool
$c/= :: V1ControllerRevisionList -> V1ControllerRevisionList -> Bool
== :: V1ControllerRevisionList -> V1ControllerRevisionList -> Bool
$c== :: V1ControllerRevisionList -> V1ControllerRevisionList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ControllerRevisionList
instance A.FromJSON V1ControllerRevisionList where
  parseJSON :: Value -> Parser V1ControllerRevisionList
parseJSON = String
-> (Object -> Parser V1ControllerRevisionList)
-> Value
-> Parser V1ControllerRevisionList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ControllerRevisionList" ((Object -> Parser V1ControllerRevisionList)
 -> Value -> Parser V1ControllerRevisionList)
-> (Object -> Parser V1ControllerRevisionList)
-> Value
-> Parser V1ControllerRevisionList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1ControllerRevision]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ControllerRevisionList
V1ControllerRevisionList
      (Maybe Text
 -> [V1ControllerRevision]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1ControllerRevisionList)
-> Parser (Maybe Text)
-> Parser
     ([V1ControllerRevision]
      -> Maybe Text -> Maybe V1ListMeta -> V1ControllerRevisionList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1ControllerRevision]
   -> Maybe Text -> Maybe V1ListMeta -> V1ControllerRevisionList)
-> Parser [V1ControllerRevision]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1ControllerRevisionList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1ControllerRevision]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1ControllerRevisionList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1ControllerRevisionList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1ControllerRevisionList)
-> Parser (Maybe V1ListMeta) -> Parser V1ControllerRevisionList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1ControllerRevisionList
instance A.ToJSON V1ControllerRevisionList where
  toJSON :: V1ControllerRevisionList -> Value
toJSON V1ControllerRevisionList {[V1ControllerRevision]
Maybe Text
Maybe V1ListMeta
v1ControllerRevisionListMetadata :: Maybe V1ListMeta
v1ControllerRevisionListKind :: Maybe Text
v1ControllerRevisionListItems :: [V1ControllerRevision]
v1ControllerRevisionListApiVersion :: Maybe Text
v1ControllerRevisionListMetadata :: V1ControllerRevisionList -> Maybe V1ListMeta
v1ControllerRevisionListKind :: V1ControllerRevisionList -> Maybe Text
v1ControllerRevisionListItems :: V1ControllerRevisionList -> [V1ControllerRevision]
v1ControllerRevisionListApiVersion :: V1ControllerRevisionList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ControllerRevisionListApiVersion
      , Text
"items" Text -> [V1ControllerRevision] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1ControllerRevision]
v1ControllerRevisionListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ControllerRevisionListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1ControllerRevisionListMetadata
      ]


-- | Construct a value of type 'V1ControllerRevisionList' (by applying it's required fields, if any)
mkV1ControllerRevisionList
  :: [V1ControllerRevision] -- ^ 'v1ControllerRevisionListItems': Items is the list of ControllerRevisions
  -> V1ControllerRevisionList
mkV1ControllerRevisionList :: [V1ControllerRevision] -> V1ControllerRevisionList
mkV1ControllerRevisionList [V1ControllerRevision]
v1ControllerRevisionListItems =
  V1ControllerRevisionList :: Maybe Text
-> [V1ControllerRevision]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ControllerRevisionList
V1ControllerRevisionList
  { v1ControllerRevisionListApiVersion :: Maybe Text
v1ControllerRevisionListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1ControllerRevision]
v1ControllerRevisionListItems :: [V1ControllerRevision]
v1ControllerRevisionListItems :: [V1ControllerRevision]
v1ControllerRevisionListItems
  , v1ControllerRevisionListKind :: Maybe Text
v1ControllerRevisionListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ControllerRevisionListMetadata :: Maybe V1ListMeta
v1ControllerRevisionListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1CrossVersionObjectReference
-- | V1CrossVersionObjectReference
-- CrossVersionObjectReference contains enough information to let you identify the referred resource.
data V1CrossVersionObjectReference = V1CrossVersionObjectReference
  { V1CrossVersionObjectReference -> Maybe Text
v1CrossVersionObjectReferenceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - API version of the referent
  , V1CrossVersionObjectReference -> Text
v1CrossVersionObjectReferenceKind :: !(Text) -- ^ /Required/ "kind" - Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\&quot;
  , V1CrossVersionObjectReference -> Text
v1CrossVersionObjectReferenceName :: !(Text) -- ^ /Required/ "name" - Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names
  } deriving (Int -> V1CrossVersionObjectReference -> ShowS
[V1CrossVersionObjectReference] -> ShowS
V1CrossVersionObjectReference -> String
(Int -> V1CrossVersionObjectReference -> ShowS)
-> (V1CrossVersionObjectReference -> String)
-> ([V1CrossVersionObjectReference] -> ShowS)
-> Show V1CrossVersionObjectReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CrossVersionObjectReference] -> ShowS
$cshowList :: [V1CrossVersionObjectReference] -> ShowS
show :: V1CrossVersionObjectReference -> String
$cshow :: V1CrossVersionObjectReference -> String
showsPrec :: Int -> V1CrossVersionObjectReference -> ShowS
$cshowsPrec :: Int -> V1CrossVersionObjectReference -> ShowS
P.Show, V1CrossVersionObjectReference
-> V1CrossVersionObjectReference -> Bool
(V1CrossVersionObjectReference
 -> V1CrossVersionObjectReference -> Bool)
-> (V1CrossVersionObjectReference
    -> V1CrossVersionObjectReference -> Bool)
-> Eq V1CrossVersionObjectReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CrossVersionObjectReference
-> V1CrossVersionObjectReference -> Bool
$c/= :: V1CrossVersionObjectReference
-> V1CrossVersionObjectReference -> Bool
== :: V1CrossVersionObjectReference
-> V1CrossVersionObjectReference -> Bool
$c== :: V1CrossVersionObjectReference
-> V1CrossVersionObjectReference -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CrossVersionObjectReference
instance A.FromJSON V1CrossVersionObjectReference where
  parseJSON :: Value -> Parser V1CrossVersionObjectReference
parseJSON = String
-> (Object -> Parser V1CrossVersionObjectReference)
-> Value
-> Parser V1CrossVersionObjectReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CrossVersionObjectReference" ((Object -> Parser V1CrossVersionObjectReference)
 -> Value -> Parser V1CrossVersionObjectReference)
-> (Object -> Parser V1CrossVersionObjectReference)
-> Value
-> Parser V1CrossVersionObjectReference
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Text -> Text -> V1CrossVersionObjectReference
V1CrossVersionObjectReference
      (Maybe Text -> Text -> Text -> V1CrossVersionObjectReference)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1CrossVersionObjectReference)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser (Text -> Text -> V1CrossVersionObjectReference)
-> Parser Text -> Parser (Text -> V1CrossVersionObjectReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kind")
      Parser (Text -> V1CrossVersionObjectReference)
-> Parser Text -> Parser V1CrossVersionObjectReference
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")

-- | ToJSON V1CrossVersionObjectReference
instance A.ToJSON V1CrossVersionObjectReference where
  toJSON :: V1CrossVersionObjectReference -> Value
toJSON V1CrossVersionObjectReference {Maybe Text
Text
v1CrossVersionObjectReferenceName :: Text
v1CrossVersionObjectReferenceKind :: Text
v1CrossVersionObjectReferenceApiVersion :: Maybe Text
v1CrossVersionObjectReferenceName :: V1CrossVersionObjectReference -> Text
v1CrossVersionObjectReferenceKind :: V1CrossVersionObjectReference -> Text
v1CrossVersionObjectReferenceApiVersion :: V1CrossVersionObjectReference -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CrossVersionObjectReferenceApiVersion
      , Text
"kind" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CrossVersionObjectReferenceKind
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CrossVersionObjectReferenceName
      ]


-- | Construct a value of type 'V1CrossVersionObjectReference' (by applying it's required fields, if any)
mkV1CrossVersionObjectReference
  :: Text -- ^ 'v1CrossVersionObjectReferenceKind': Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\"
  -> Text -- ^ 'v1CrossVersionObjectReferenceName': Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names
  -> V1CrossVersionObjectReference
mkV1CrossVersionObjectReference :: Text -> Text -> V1CrossVersionObjectReference
mkV1CrossVersionObjectReference Text
v1CrossVersionObjectReferenceKind Text
v1CrossVersionObjectReferenceName =
  V1CrossVersionObjectReference :: Maybe Text -> Text -> Text -> V1CrossVersionObjectReference
V1CrossVersionObjectReference
  { v1CrossVersionObjectReferenceApiVersion :: Maybe Text
v1CrossVersionObjectReferenceApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1CrossVersionObjectReferenceKind :: Text
v1CrossVersionObjectReferenceKind :: Text
v1CrossVersionObjectReferenceKind
  , Text
v1CrossVersionObjectReferenceName :: Text
v1CrossVersionObjectReferenceName :: Text
v1CrossVersionObjectReferenceName
  }

-- ** V1CustomResourceColumnDefinition
-- | V1CustomResourceColumnDefinition
-- CustomResourceColumnDefinition specifies a column for server side printing.
data V1CustomResourceColumnDefinition = V1CustomResourceColumnDefinition
  { V1CustomResourceColumnDefinition -> Maybe Text
v1CustomResourceColumnDefinitionDescription :: !(Maybe Text) -- ^ "description" - description is a human readable description of this column.
  , V1CustomResourceColumnDefinition -> Maybe Text
v1CustomResourceColumnDefinitionFormat :: !(Maybe Text) -- ^ "format" - format is an optional OpenAPI type definition for this column. The &#39;name&#39; format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.
  , V1CustomResourceColumnDefinition -> Text
v1CustomResourceColumnDefinitionJsonPath :: !(Text) -- ^ /Required/ "jsonPath" - jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.
  , V1CustomResourceColumnDefinition -> Text
v1CustomResourceColumnDefinitionName :: !(Text) -- ^ /Required/ "name" - name is a human readable name for the column.
  , V1CustomResourceColumnDefinition -> Maybe Int
v1CustomResourceColumnDefinitionPriority :: !(Maybe Int) -- ^ "priority" - priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.
  , V1CustomResourceColumnDefinition -> Text
v1CustomResourceColumnDefinitionType :: !(Text) -- ^ /Required/ "type" - type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.
  } deriving (Int -> V1CustomResourceColumnDefinition -> ShowS
[V1CustomResourceColumnDefinition] -> ShowS
V1CustomResourceColumnDefinition -> String
(Int -> V1CustomResourceColumnDefinition -> ShowS)
-> (V1CustomResourceColumnDefinition -> String)
-> ([V1CustomResourceColumnDefinition] -> ShowS)
-> Show V1CustomResourceColumnDefinition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CustomResourceColumnDefinition] -> ShowS
$cshowList :: [V1CustomResourceColumnDefinition] -> ShowS
show :: V1CustomResourceColumnDefinition -> String
$cshow :: V1CustomResourceColumnDefinition -> String
showsPrec :: Int -> V1CustomResourceColumnDefinition -> ShowS
$cshowsPrec :: Int -> V1CustomResourceColumnDefinition -> ShowS
P.Show, V1CustomResourceColumnDefinition
-> V1CustomResourceColumnDefinition -> Bool
(V1CustomResourceColumnDefinition
 -> V1CustomResourceColumnDefinition -> Bool)
-> (V1CustomResourceColumnDefinition
    -> V1CustomResourceColumnDefinition -> Bool)
-> Eq V1CustomResourceColumnDefinition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CustomResourceColumnDefinition
-> V1CustomResourceColumnDefinition -> Bool
$c/= :: V1CustomResourceColumnDefinition
-> V1CustomResourceColumnDefinition -> Bool
== :: V1CustomResourceColumnDefinition
-> V1CustomResourceColumnDefinition -> Bool
$c== :: V1CustomResourceColumnDefinition
-> V1CustomResourceColumnDefinition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CustomResourceColumnDefinition
instance A.FromJSON V1CustomResourceColumnDefinition where
  parseJSON :: Value -> Parser V1CustomResourceColumnDefinition
parseJSON = String
-> (Object -> Parser V1CustomResourceColumnDefinition)
-> Value
-> Parser V1CustomResourceColumnDefinition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CustomResourceColumnDefinition" ((Object -> Parser V1CustomResourceColumnDefinition)
 -> Value -> Parser V1CustomResourceColumnDefinition)
-> (Object -> Parser V1CustomResourceColumnDefinition)
-> Value
-> Parser V1CustomResourceColumnDefinition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Text
-> Text
-> Maybe Int
-> Text
-> V1CustomResourceColumnDefinition
V1CustomResourceColumnDefinition
      (Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> Maybe Int
 -> Text
 -> V1CustomResourceColumnDefinition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text
      -> Text
      -> Maybe Int
      -> Text
      -> V1CustomResourceColumnDefinition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"description")
      Parser
  (Maybe Text
   -> Text
   -> Text
   -> Maybe Int
   -> Text
   -> V1CustomResourceColumnDefinition)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Text -> Maybe Int -> Text -> V1CustomResourceColumnDefinition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"format")
      Parser
  (Text
   -> Text -> Maybe Int -> Text -> V1CustomResourceColumnDefinition)
-> Parser Text
-> Parser
     (Text -> Maybe Int -> Text -> V1CustomResourceColumnDefinition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"jsonPath")
      Parser
  (Text -> Maybe Int -> Text -> V1CustomResourceColumnDefinition)
-> Parser Text
-> Parser (Maybe Int -> Text -> V1CustomResourceColumnDefinition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser (Maybe Int -> Text -> V1CustomResourceColumnDefinition)
-> Parser (Maybe Int)
-> Parser (Text -> V1CustomResourceColumnDefinition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"priority")
      Parser (Text -> V1CustomResourceColumnDefinition)
-> Parser Text -> Parser V1CustomResourceColumnDefinition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1CustomResourceColumnDefinition
instance A.ToJSON V1CustomResourceColumnDefinition where
  toJSON :: V1CustomResourceColumnDefinition -> Value
toJSON V1CustomResourceColumnDefinition {Maybe Int
Maybe Text
Text
v1CustomResourceColumnDefinitionType :: Text
v1CustomResourceColumnDefinitionPriority :: Maybe Int
v1CustomResourceColumnDefinitionName :: Text
v1CustomResourceColumnDefinitionJsonPath :: Text
v1CustomResourceColumnDefinitionFormat :: Maybe Text
v1CustomResourceColumnDefinitionDescription :: Maybe Text
v1CustomResourceColumnDefinitionType :: V1CustomResourceColumnDefinition -> Text
v1CustomResourceColumnDefinitionPriority :: V1CustomResourceColumnDefinition -> Maybe Int
v1CustomResourceColumnDefinitionName :: V1CustomResourceColumnDefinition -> Text
v1CustomResourceColumnDefinitionJsonPath :: V1CustomResourceColumnDefinition -> Text
v1CustomResourceColumnDefinitionFormat :: V1CustomResourceColumnDefinition -> Maybe Text
v1CustomResourceColumnDefinitionDescription :: V1CustomResourceColumnDefinition -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"description" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CustomResourceColumnDefinitionDescription
      , Text
"format" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CustomResourceColumnDefinitionFormat
      , Text
"jsonPath" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CustomResourceColumnDefinitionJsonPath
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CustomResourceColumnDefinitionName
      , Text
"priority" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1CustomResourceColumnDefinitionPriority
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CustomResourceColumnDefinitionType
      ]


-- | Construct a value of type 'V1CustomResourceColumnDefinition' (by applying it's required fields, if any)
mkV1CustomResourceColumnDefinition
  :: Text -- ^ 'v1CustomResourceColumnDefinitionJsonPath': jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.
  -> Text -- ^ 'v1CustomResourceColumnDefinitionName': name is a human readable name for the column.
  -> Text -- ^ 'v1CustomResourceColumnDefinitionType': type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.
  -> V1CustomResourceColumnDefinition
mkV1CustomResourceColumnDefinition :: Text -> Text -> Text -> V1CustomResourceColumnDefinition
mkV1CustomResourceColumnDefinition Text
v1CustomResourceColumnDefinitionJsonPath Text
v1CustomResourceColumnDefinitionName Text
v1CustomResourceColumnDefinitionType =
  V1CustomResourceColumnDefinition :: Maybe Text
-> Maybe Text
-> Text
-> Text
-> Maybe Int
-> Text
-> V1CustomResourceColumnDefinition
V1CustomResourceColumnDefinition
  { v1CustomResourceColumnDefinitionDescription :: Maybe Text
v1CustomResourceColumnDefinitionDescription = Maybe Text
forall a. Maybe a
Nothing
  , v1CustomResourceColumnDefinitionFormat :: Maybe Text
v1CustomResourceColumnDefinitionFormat = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1CustomResourceColumnDefinitionJsonPath :: Text
v1CustomResourceColumnDefinitionJsonPath :: Text
v1CustomResourceColumnDefinitionJsonPath
  , Text
v1CustomResourceColumnDefinitionName :: Text
v1CustomResourceColumnDefinitionName :: Text
v1CustomResourceColumnDefinitionName
  , v1CustomResourceColumnDefinitionPriority :: Maybe Int
v1CustomResourceColumnDefinitionPriority = Maybe Int
forall a. Maybe a
Nothing
  , Text
v1CustomResourceColumnDefinitionType :: Text
v1CustomResourceColumnDefinitionType :: Text
v1CustomResourceColumnDefinitionType
  }

-- ** V1CustomResourceConversion
-- | V1CustomResourceConversion
-- CustomResourceConversion describes how to convert different versions of a CR.
data V1CustomResourceConversion = V1CustomResourceConversion
  { V1CustomResourceConversion -> Text
v1CustomResourceConversionStrategy :: !(Text) -- ^ /Required/ "strategy" - strategy specifies how custom resources are converted between versions. Allowed values are: - &#x60;None&#x60;: The converter only change the apiVersion and would not touch any other field in the custom resource. - &#x60;Webhook&#x60;: API Server will call to an external webhook to do the conversion. Additional information   is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set.
  , V1CustomResourceConversion -> Maybe V1WebhookConversion
v1CustomResourceConversionWebhook :: !(Maybe V1WebhookConversion) -- ^ "webhook"
  } deriving (Int -> V1CustomResourceConversion -> ShowS
[V1CustomResourceConversion] -> ShowS
V1CustomResourceConversion -> String
(Int -> V1CustomResourceConversion -> ShowS)
-> (V1CustomResourceConversion -> String)
-> ([V1CustomResourceConversion] -> ShowS)
-> Show V1CustomResourceConversion
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CustomResourceConversion] -> ShowS
$cshowList :: [V1CustomResourceConversion] -> ShowS
show :: V1CustomResourceConversion -> String
$cshow :: V1CustomResourceConversion -> String
showsPrec :: Int -> V1CustomResourceConversion -> ShowS
$cshowsPrec :: Int -> V1CustomResourceConversion -> ShowS
P.Show, V1CustomResourceConversion -> V1CustomResourceConversion -> Bool
(V1CustomResourceConversion -> V1CustomResourceConversion -> Bool)
-> (V1CustomResourceConversion
    -> V1CustomResourceConversion -> Bool)
-> Eq V1CustomResourceConversion
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CustomResourceConversion -> V1CustomResourceConversion -> Bool
$c/= :: V1CustomResourceConversion -> V1CustomResourceConversion -> Bool
== :: V1CustomResourceConversion -> V1CustomResourceConversion -> Bool
$c== :: V1CustomResourceConversion -> V1CustomResourceConversion -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CustomResourceConversion
instance A.FromJSON V1CustomResourceConversion where
  parseJSON :: Value -> Parser V1CustomResourceConversion
parseJSON = String
-> (Object -> Parser V1CustomResourceConversion)
-> Value
-> Parser V1CustomResourceConversion
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CustomResourceConversion" ((Object -> Parser V1CustomResourceConversion)
 -> Value -> Parser V1CustomResourceConversion)
-> (Object -> Parser V1CustomResourceConversion)
-> Value
-> Parser V1CustomResourceConversion
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Maybe V1WebhookConversion -> V1CustomResourceConversion
V1CustomResourceConversion
      (Text -> Maybe V1WebhookConversion -> V1CustomResourceConversion)
-> Parser Text
-> Parser (Maybe V1WebhookConversion -> V1CustomResourceConversion)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"strategy")
      Parser (Maybe V1WebhookConversion -> V1CustomResourceConversion)
-> Parser (Maybe V1WebhookConversion)
-> Parser V1CustomResourceConversion
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1WebhookConversion)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"webhook")

-- | ToJSON V1CustomResourceConversion
instance A.ToJSON V1CustomResourceConversion where
  toJSON :: V1CustomResourceConversion -> Value
toJSON V1CustomResourceConversion {Maybe V1WebhookConversion
Text
v1CustomResourceConversionWebhook :: Maybe V1WebhookConversion
v1CustomResourceConversionStrategy :: Text
v1CustomResourceConversionWebhook :: V1CustomResourceConversion -> Maybe V1WebhookConversion
v1CustomResourceConversionStrategy :: V1CustomResourceConversion -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"strategy" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CustomResourceConversionStrategy
      , Text
"webhook" Text -> Maybe V1WebhookConversion -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1WebhookConversion
v1CustomResourceConversionWebhook
      ]


-- | Construct a value of type 'V1CustomResourceConversion' (by applying it's required fields, if any)
mkV1CustomResourceConversion
  :: Text -- ^ 'v1CustomResourceConversionStrategy': strategy specifies how custom resources are converted between versions. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information   is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set.
  -> V1CustomResourceConversion
mkV1CustomResourceConversion :: Text -> V1CustomResourceConversion
mkV1CustomResourceConversion Text
v1CustomResourceConversionStrategy =
  V1CustomResourceConversion :: Text -> Maybe V1WebhookConversion -> V1CustomResourceConversion
V1CustomResourceConversion
  { Text
v1CustomResourceConversionStrategy :: Text
v1CustomResourceConversionStrategy :: Text
v1CustomResourceConversionStrategy
  , v1CustomResourceConversionWebhook :: Maybe V1WebhookConversion
v1CustomResourceConversionWebhook = Maybe V1WebhookConversion
forall a. Maybe a
Nothing
  }

-- ** V1CustomResourceDefinition
-- | V1CustomResourceDefinition
-- CustomResourceDefinition represents a resource that should be exposed on the API server.  Its name MUST be in the format <.spec.name>.<.spec.group>.
data V1CustomResourceDefinition = V1CustomResourceDefinition
  { V1CustomResourceDefinition -> Maybe Text
v1CustomResourceDefinitionApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1CustomResourceDefinition -> Maybe Text
v1CustomResourceDefinitionKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1CustomResourceDefinition -> Maybe V1ObjectMeta
v1CustomResourceDefinitionMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1CustomResourceDefinition -> V1CustomResourceDefinitionSpec
v1CustomResourceDefinitionSpec :: !(V1CustomResourceDefinitionSpec) -- ^ /Required/ "spec"
  , V1CustomResourceDefinition
-> Maybe V1CustomResourceDefinitionStatus
v1CustomResourceDefinitionStatus :: !(Maybe V1CustomResourceDefinitionStatus) -- ^ "status"
  } deriving (Int -> V1CustomResourceDefinition -> ShowS
[V1CustomResourceDefinition] -> ShowS
V1CustomResourceDefinition -> String
(Int -> V1CustomResourceDefinition -> ShowS)
-> (V1CustomResourceDefinition -> String)
-> ([V1CustomResourceDefinition] -> ShowS)
-> Show V1CustomResourceDefinition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CustomResourceDefinition] -> ShowS
$cshowList :: [V1CustomResourceDefinition] -> ShowS
show :: V1CustomResourceDefinition -> String
$cshow :: V1CustomResourceDefinition -> String
showsPrec :: Int -> V1CustomResourceDefinition -> ShowS
$cshowsPrec :: Int -> V1CustomResourceDefinition -> ShowS
P.Show, V1CustomResourceDefinition -> V1CustomResourceDefinition -> Bool
(V1CustomResourceDefinition -> V1CustomResourceDefinition -> Bool)
-> (V1CustomResourceDefinition
    -> V1CustomResourceDefinition -> Bool)
-> Eq V1CustomResourceDefinition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CustomResourceDefinition -> V1CustomResourceDefinition -> Bool
$c/= :: V1CustomResourceDefinition -> V1CustomResourceDefinition -> Bool
== :: V1CustomResourceDefinition -> V1CustomResourceDefinition -> Bool
$c== :: V1CustomResourceDefinition -> V1CustomResourceDefinition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CustomResourceDefinition
instance A.FromJSON V1CustomResourceDefinition where
  parseJSON :: Value -> Parser V1CustomResourceDefinition
parseJSON = String
-> (Object -> Parser V1CustomResourceDefinition)
-> Value
-> Parser V1CustomResourceDefinition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CustomResourceDefinition" ((Object -> Parser V1CustomResourceDefinition)
 -> Value -> Parser V1CustomResourceDefinition)
-> (Object -> Parser V1CustomResourceDefinition)
-> Value
-> Parser V1CustomResourceDefinition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1CustomResourceDefinitionSpec
-> Maybe V1CustomResourceDefinitionStatus
-> V1CustomResourceDefinition
V1CustomResourceDefinition
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1CustomResourceDefinitionSpec
 -> Maybe V1CustomResourceDefinitionStatus
 -> V1CustomResourceDefinition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1CustomResourceDefinitionSpec
      -> Maybe V1CustomResourceDefinitionStatus
      -> V1CustomResourceDefinition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1CustomResourceDefinitionSpec
   -> Maybe V1CustomResourceDefinitionStatus
   -> V1CustomResourceDefinition)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1CustomResourceDefinitionSpec
      -> Maybe V1CustomResourceDefinitionStatus
      -> V1CustomResourceDefinition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1CustomResourceDefinitionSpec
   -> Maybe V1CustomResourceDefinitionStatus
   -> V1CustomResourceDefinition)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1CustomResourceDefinitionSpec
      -> Maybe V1CustomResourceDefinitionStatus
      -> V1CustomResourceDefinition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1CustomResourceDefinitionSpec
   -> Maybe V1CustomResourceDefinitionStatus
   -> V1CustomResourceDefinition)
-> Parser V1CustomResourceDefinitionSpec
-> Parser
     (Maybe V1CustomResourceDefinitionStatus
      -> V1CustomResourceDefinition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1CustomResourceDefinitionSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")
      Parser
  (Maybe V1CustomResourceDefinitionStatus
   -> V1CustomResourceDefinition)
-> Parser (Maybe V1CustomResourceDefinitionStatus)
-> Parser V1CustomResourceDefinition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1CustomResourceDefinitionStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1CustomResourceDefinition
instance A.ToJSON V1CustomResourceDefinition where
  toJSON :: V1CustomResourceDefinition -> Value
toJSON V1CustomResourceDefinition {Maybe Text
Maybe V1ObjectMeta
Maybe V1CustomResourceDefinitionStatus
V1CustomResourceDefinitionSpec
v1CustomResourceDefinitionStatus :: Maybe V1CustomResourceDefinitionStatus
v1CustomResourceDefinitionSpec :: V1CustomResourceDefinitionSpec
v1CustomResourceDefinitionMetadata :: Maybe V1ObjectMeta
v1CustomResourceDefinitionKind :: Maybe Text
v1CustomResourceDefinitionApiVersion :: Maybe Text
v1CustomResourceDefinitionStatus :: V1CustomResourceDefinition
-> Maybe V1CustomResourceDefinitionStatus
v1CustomResourceDefinitionSpec :: V1CustomResourceDefinition -> V1CustomResourceDefinitionSpec
v1CustomResourceDefinitionMetadata :: V1CustomResourceDefinition -> Maybe V1ObjectMeta
v1CustomResourceDefinitionKind :: V1CustomResourceDefinition -> Maybe Text
v1CustomResourceDefinitionApiVersion :: V1CustomResourceDefinition -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CustomResourceDefinitionApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CustomResourceDefinitionKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1CustomResourceDefinitionMetadata
      , Text
"spec" Text -> V1CustomResourceDefinitionSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1CustomResourceDefinitionSpec
v1CustomResourceDefinitionSpec
      , Text
"status" Text -> Maybe V1CustomResourceDefinitionStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1CustomResourceDefinitionStatus
v1CustomResourceDefinitionStatus
      ]


-- | Construct a value of type 'V1CustomResourceDefinition' (by applying it's required fields, if any)
mkV1CustomResourceDefinition
  :: V1CustomResourceDefinitionSpec -- ^ 'v1CustomResourceDefinitionSpec' 
  -> V1CustomResourceDefinition
mkV1CustomResourceDefinition :: V1CustomResourceDefinitionSpec -> V1CustomResourceDefinition
mkV1CustomResourceDefinition V1CustomResourceDefinitionSpec
v1CustomResourceDefinitionSpec =
  V1CustomResourceDefinition :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1CustomResourceDefinitionSpec
-> Maybe V1CustomResourceDefinitionStatus
-> V1CustomResourceDefinition
V1CustomResourceDefinition
  { v1CustomResourceDefinitionApiVersion :: Maybe Text
v1CustomResourceDefinitionApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1CustomResourceDefinitionKind :: Maybe Text
v1CustomResourceDefinitionKind = Maybe Text
forall a. Maybe a
Nothing
  , v1CustomResourceDefinitionMetadata :: Maybe V1ObjectMeta
v1CustomResourceDefinitionMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1CustomResourceDefinitionSpec
v1CustomResourceDefinitionSpec :: V1CustomResourceDefinitionSpec
v1CustomResourceDefinitionSpec :: V1CustomResourceDefinitionSpec
v1CustomResourceDefinitionSpec
  , v1CustomResourceDefinitionStatus :: Maybe V1CustomResourceDefinitionStatus
v1CustomResourceDefinitionStatus = Maybe V1CustomResourceDefinitionStatus
forall a. Maybe a
Nothing
  }

-- ** V1CustomResourceDefinitionCondition
-- | V1CustomResourceDefinitionCondition
-- CustomResourceDefinitionCondition contains details for the current condition of this pod.
data V1CustomResourceDefinitionCondition = V1CustomResourceDefinitionCondition
  { V1CustomResourceDefinitionCondition -> Maybe DateTime
v1CustomResourceDefinitionConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - lastTransitionTime last time the condition transitioned from one status to another.
  , V1CustomResourceDefinitionCondition -> Maybe Text
v1CustomResourceDefinitionConditionMessage :: !(Maybe Text) -- ^ "message" - message is a human-readable message indicating details about last transition.
  , V1CustomResourceDefinitionCondition -> Maybe Text
v1CustomResourceDefinitionConditionReason :: !(Maybe Text) -- ^ "reason" - reason is a unique, one-word, CamelCase reason for the condition&#39;s last transition.
  , V1CustomResourceDefinitionCondition -> Text
v1CustomResourceDefinitionConditionStatus :: !(Text) -- ^ /Required/ "status" - status is the status of the condition. Can be True, False, Unknown.
  , V1CustomResourceDefinitionCondition -> Text
v1CustomResourceDefinitionConditionType :: !(Text) -- ^ /Required/ "type" - type is the type of the condition. Types include Established, NamesAccepted and Terminating.
  } deriving (Int -> V1CustomResourceDefinitionCondition -> ShowS
[V1CustomResourceDefinitionCondition] -> ShowS
V1CustomResourceDefinitionCondition -> String
(Int -> V1CustomResourceDefinitionCondition -> ShowS)
-> (V1CustomResourceDefinitionCondition -> String)
-> ([V1CustomResourceDefinitionCondition] -> ShowS)
-> Show V1CustomResourceDefinitionCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CustomResourceDefinitionCondition] -> ShowS
$cshowList :: [V1CustomResourceDefinitionCondition] -> ShowS
show :: V1CustomResourceDefinitionCondition -> String
$cshow :: V1CustomResourceDefinitionCondition -> String
showsPrec :: Int -> V1CustomResourceDefinitionCondition -> ShowS
$cshowsPrec :: Int -> V1CustomResourceDefinitionCondition -> ShowS
P.Show, V1CustomResourceDefinitionCondition
-> V1CustomResourceDefinitionCondition -> Bool
(V1CustomResourceDefinitionCondition
 -> V1CustomResourceDefinitionCondition -> Bool)
-> (V1CustomResourceDefinitionCondition
    -> V1CustomResourceDefinitionCondition -> Bool)
-> Eq V1CustomResourceDefinitionCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CustomResourceDefinitionCondition
-> V1CustomResourceDefinitionCondition -> Bool
$c/= :: V1CustomResourceDefinitionCondition
-> V1CustomResourceDefinitionCondition -> Bool
== :: V1CustomResourceDefinitionCondition
-> V1CustomResourceDefinitionCondition -> Bool
$c== :: V1CustomResourceDefinitionCondition
-> V1CustomResourceDefinitionCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CustomResourceDefinitionCondition
instance A.FromJSON V1CustomResourceDefinitionCondition where
  parseJSON :: Value -> Parser V1CustomResourceDefinitionCondition
parseJSON = String
-> (Object -> Parser V1CustomResourceDefinitionCondition)
-> Value
-> Parser V1CustomResourceDefinitionCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CustomResourceDefinitionCondition" ((Object -> Parser V1CustomResourceDefinitionCondition)
 -> Value -> Parser V1CustomResourceDefinitionCondition)
-> (Object -> Parser V1CustomResourceDefinitionCondition)
-> Value
-> Parser V1CustomResourceDefinitionCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1CustomResourceDefinitionCondition
V1CustomResourceDefinitionCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1CustomResourceDefinitionCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Text
      -> Text
      -> V1CustomResourceDefinitionCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Text
   -> Text
   -> V1CustomResourceDefinitionCondition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Text -> Text -> V1CustomResourceDefinitionCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser
  (Maybe Text -> Text -> Text -> V1CustomResourceDefinitionCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1CustomResourceDefinitionCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1CustomResourceDefinitionCondition)
-> Parser Text
-> Parser (Text -> V1CustomResourceDefinitionCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1CustomResourceDefinitionCondition)
-> Parser Text -> Parser V1CustomResourceDefinitionCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1CustomResourceDefinitionCondition
instance A.ToJSON V1CustomResourceDefinitionCondition where
  toJSON :: V1CustomResourceDefinitionCondition -> Value
toJSON V1CustomResourceDefinitionCondition {Maybe Text
Maybe DateTime
Text
v1CustomResourceDefinitionConditionType :: Text
v1CustomResourceDefinitionConditionStatus :: Text
v1CustomResourceDefinitionConditionReason :: Maybe Text
v1CustomResourceDefinitionConditionMessage :: Maybe Text
v1CustomResourceDefinitionConditionLastTransitionTime :: Maybe DateTime
v1CustomResourceDefinitionConditionType :: V1CustomResourceDefinitionCondition -> Text
v1CustomResourceDefinitionConditionStatus :: V1CustomResourceDefinitionCondition -> Text
v1CustomResourceDefinitionConditionReason :: V1CustomResourceDefinitionCondition -> Maybe Text
v1CustomResourceDefinitionConditionMessage :: V1CustomResourceDefinitionCondition -> Maybe Text
v1CustomResourceDefinitionConditionLastTransitionTime :: V1CustomResourceDefinitionCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1CustomResourceDefinitionConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CustomResourceDefinitionConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CustomResourceDefinitionConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CustomResourceDefinitionConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CustomResourceDefinitionConditionType
      ]


-- | Construct a value of type 'V1CustomResourceDefinitionCondition' (by applying it's required fields, if any)
mkV1CustomResourceDefinitionCondition
  :: Text -- ^ 'v1CustomResourceDefinitionConditionStatus': status is the status of the condition. Can be True, False, Unknown.
  -> Text -- ^ 'v1CustomResourceDefinitionConditionType': type is the type of the condition. Types include Established, NamesAccepted and Terminating.
  -> V1CustomResourceDefinitionCondition
mkV1CustomResourceDefinitionCondition :: Text -> Text -> V1CustomResourceDefinitionCondition
mkV1CustomResourceDefinitionCondition Text
v1CustomResourceDefinitionConditionStatus Text
v1CustomResourceDefinitionConditionType =
  V1CustomResourceDefinitionCondition :: Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1CustomResourceDefinitionCondition
V1CustomResourceDefinitionCondition
  { v1CustomResourceDefinitionConditionLastTransitionTime :: Maybe DateTime
v1CustomResourceDefinitionConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1CustomResourceDefinitionConditionMessage :: Maybe Text
v1CustomResourceDefinitionConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1CustomResourceDefinitionConditionReason :: Maybe Text
v1CustomResourceDefinitionConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1CustomResourceDefinitionConditionStatus :: Text
v1CustomResourceDefinitionConditionStatus :: Text
v1CustomResourceDefinitionConditionStatus
  , Text
v1CustomResourceDefinitionConditionType :: Text
v1CustomResourceDefinitionConditionType :: Text
v1CustomResourceDefinitionConditionType
  }

-- ** V1CustomResourceDefinitionList
-- | V1CustomResourceDefinitionList
-- CustomResourceDefinitionList is a list of CustomResourceDefinition objects.
data V1CustomResourceDefinitionList = V1CustomResourceDefinitionList
  { V1CustomResourceDefinitionList -> Maybe Text
v1CustomResourceDefinitionListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1CustomResourceDefinitionList -> [V1CustomResourceDefinition]
v1CustomResourceDefinitionListItems :: !([V1CustomResourceDefinition]) -- ^ /Required/ "items" - items list individual CustomResourceDefinition objects
  , V1CustomResourceDefinitionList -> Maybe Text
v1CustomResourceDefinitionListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1CustomResourceDefinitionList -> Maybe V1ListMeta
v1CustomResourceDefinitionListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1CustomResourceDefinitionList -> ShowS
[V1CustomResourceDefinitionList] -> ShowS
V1CustomResourceDefinitionList -> String
(Int -> V1CustomResourceDefinitionList -> ShowS)
-> (V1CustomResourceDefinitionList -> String)
-> ([V1CustomResourceDefinitionList] -> ShowS)
-> Show V1CustomResourceDefinitionList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CustomResourceDefinitionList] -> ShowS
$cshowList :: [V1CustomResourceDefinitionList] -> ShowS
show :: V1CustomResourceDefinitionList -> String
$cshow :: V1CustomResourceDefinitionList -> String
showsPrec :: Int -> V1CustomResourceDefinitionList -> ShowS
$cshowsPrec :: Int -> V1CustomResourceDefinitionList -> ShowS
P.Show, V1CustomResourceDefinitionList
-> V1CustomResourceDefinitionList -> Bool
(V1CustomResourceDefinitionList
 -> V1CustomResourceDefinitionList -> Bool)
-> (V1CustomResourceDefinitionList
    -> V1CustomResourceDefinitionList -> Bool)
-> Eq V1CustomResourceDefinitionList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CustomResourceDefinitionList
-> V1CustomResourceDefinitionList -> Bool
$c/= :: V1CustomResourceDefinitionList
-> V1CustomResourceDefinitionList -> Bool
== :: V1CustomResourceDefinitionList
-> V1CustomResourceDefinitionList -> Bool
$c== :: V1CustomResourceDefinitionList
-> V1CustomResourceDefinitionList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CustomResourceDefinitionList
instance A.FromJSON V1CustomResourceDefinitionList where
  parseJSON :: Value -> Parser V1CustomResourceDefinitionList
parseJSON = String
-> (Object -> Parser V1CustomResourceDefinitionList)
-> Value
-> Parser V1CustomResourceDefinitionList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CustomResourceDefinitionList" ((Object -> Parser V1CustomResourceDefinitionList)
 -> Value -> Parser V1CustomResourceDefinitionList)
-> (Object -> Parser V1CustomResourceDefinitionList)
-> Value
-> Parser V1CustomResourceDefinitionList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1CustomResourceDefinition]
-> Maybe Text
-> Maybe V1ListMeta
-> V1CustomResourceDefinitionList
V1CustomResourceDefinitionList
      (Maybe Text
 -> [V1CustomResourceDefinition]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1CustomResourceDefinitionList)
-> Parser (Maybe Text)
-> Parser
     ([V1CustomResourceDefinition]
      -> Maybe Text
      -> Maybe V1ListMeta
      -> V1CustomResourceDefinitionList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1CustomResourceDefinition]
   -> Maybe Text
   -> Maybe V1ListMeta
   -> V1CustomResourceDefinitionList)
-> Parser [V1CustomResourceDefinition]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1CustomResourceDefinitionList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1CustomResourceDefinition]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> V1CustomResourceDefinitionList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1CustomResourceDefinitionList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1CustomResourceDefinitionList)
-> Parser (Maybe V1ListMeta)
-> Parser V1CustomResourceDefinitionList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1CustomResourceDefinitionList
instance A.ToJSON V1CustomResourceDefinitionList where
  toJSON :: V1CustomResourceDefinitionList -> Value
toJSON V1CustomResourceDefinitionList {[V1CustomResourceDefinition]
Maybe Text
Maybe V1ListMeta
v1CustomResourceDefinitionListMetadata :: Maybe V1ListMeta
v1CustomResourceDefinitionListKind :: Maybe Text
v1CustomResourceDefinitionListItems :: [V1CustomResourceDefinition]
v1CustomResourceDefinitionListApiVersion :: Maybe Text
v1CustomResourceDefinitionListMetadata :: V1CustomResourceDefinitionList -> Maybe V1ListMeta
v1CustomResourceDefinitionListKind :: V1CustomResourceDefinitionList -> Maybe Text
v1CustomResourceDefinitionListItems :: V1CustomResourceDefinitionList -> [V1CustomResourceDefinition]
v1CustomResourceDefinitionListApiVersion :: V1CustomResourceDefinitionList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CustomResourceDefinitionListApiVersion
      , Text
"items" Text -> [V1CustomResourceDefinition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1CustomResourceDefinition]
v1CustomResourceDefinitionListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CustomResourceDefinitionListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1CustomResourceDefinitionListMetadata
      ]


-- | Construct a value of type 'V1CustomResourceDefinitionList' (by applying it's required fields, if any)
mkV1CustomResourceDefinitionList
  :: [V1CustomResourceDefinition] -- ^ 'v1CustomResourceDefinitionListItems': items list individual CustomResourceDefinition objects
  -> V1CustomResourceDefinitionList
mkV1CustomResourceDefinitionList :: [V1CustomResourceDefinition] -> V1CustomResourceDefinitionList
mkV1CustomResourceDefinitionList [V1CustomResourceDefinition]
v1CustomResourceDefinitionListItems =
  V1CustomResourceDefinitionList :: Maybe Text
-> [V1CustomResourceDefinition]
-> Maybe Text
-> Maybe V1ListMeta
-> V1CustomResourceDefinitionList
V1CustomResourceDefinitionList
  { v1CustomResourceDefinitionListApiVersion :: Maybe Text
v1CustomResourceDefinitionListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1CustomResourceDefinition]
v1CustomResourceDefinitionListItems :: [V1CustomResourceDefinition]
v1CustomResourceDefinitionListItems :: [V1CustomResourceDefinition]
v1CustomResourceDefinitionListItems
  , v1CustomResourceDefinitionListKind :: Maybe Text
v1CustomResourceDefinitionListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1CustomResourceDefinitionListMetadata :: Maybe V1ListMeta
v1CustomResourceDefinitionListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1CustomResourceDefinitionNames
-- | V1CustomResourceDefinitionNames
-- CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition
data V1CustomResourceDefinitionNames = V1CustomResourceDefinitionNames
  { V1CustomResourceDefinitionNames -> Maybe [Text]
v1CustomResourceDefinitionNamesCategories :: !(Maybe [Text]) -- ^ "categories" - categories is a list of grouped resources this custom resource belongs to (e.g. &#39;all&#39;). This is published in API discovery documents, and used by clients to support invocations like &#x60;kubectl get all&#x60;.
  , V1CustomResourceDefinitionNames -> Text
v1CustomResourceDefinitionNamesKind :: !(Text) -- ^ /Required/ "kind" - kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the &#x60;kind&#x60; attribute in API calls.
  , V1CustomResourceDefinitionNames -> Maybe Text
v1CustomResourceDefinitionNamesListKind :: !(Maybe Text) -- ^ "listKind" - listKind is the serialized kind of the list for this resource. Defaults to \&quot;&#x60;kind&#x60;List\&quot;.
  , V1CustomResourceDefinitionNames -> Text
v1CustomResourceDefinitionNamesPlural :: !(Text) -- ^ /Required/ "plural" - plural is the plural name of the resource to serve. The custom resources are served under &#x60;/apis/&lt;group&gt;/&lt;version&gt;/.../&lt;plural&gt;&#x60;. Must match the name of the CustomResourceDefinition (in the form &#x60;&lt;names.plural&gt;.&lt;group&gt;&#x60;). Must be all lowercase.
  , V1CustomResourceDefinitionNames -> Maybe [Text]
v1CustomResourceDefinitionNamesShortNames :: !(Maybe [Text]) -- ^ "shortNames" - shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like &#x60;kubectl get &lt;shortname&gt;&#x60;. It must be all lowercase.
  , V1CustomResourceDefinitionNames -> Maybe Text
v1CustomResourceDefinitionNamesSingular :: !(Maybe Text) -- ^ "singular" - singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased &#x60;kind&#x60;.
  } deriving (Int -> V1CustomResourceDefinitionNames -> ShowS
[V1CustomResourceDefinitionNames] -> ShowS
V1CustomResourceDefinitionNames -> String
(Int -> V1CustomResourceDefinitionNames -> ShowS)
-> (V1CustomResourceDefinitionNames -> String)
-> ([V1CustomResourceDefinitionNames] -> ShowS)
-> Show V1CustomResourceDefinitionNames
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CustomResourceDefinitionNames] -> ShowS
$cshowList :: [V1CustomResourceDefinitionNames] -> ShowS
show :: V1CustomResourceDefinitionNames -> String
$cshow :: V1CustomResourceDefinitionNames -> String
showsPrec :: Int -> V1CustomResourceDefinitionNames -> ShowS
$cshowsPrec :: Int -> V1CustomResourceDefinitionNames -> ShowS
P.Show, V1CustomResourceDefinitionNames
-> V1CustomResourceDefinitionNames -> Bool
(V1CustomResourceDefinitionNames
 -> V1CustomResourceDefinitionNames -> Bool)
-> (V1CustomResourceDefinitionNames
    -> V1CustomResourceDefinitionNames -> Bool)
-> Eq V1CustomResourceDefinitionNames
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CustomResourceDefinitionNames
-> V1CustomResourceDefinitionNames -> Bool
$c/= :: V1CustomResourceDefinitionNames
-> V1CustomResourceDefinitionNames -> Bool
== :: V1CustomResourceDefinitionNames
-> V1CustomResourceDefinitionNames -> Bool
$c== :: V1CustomResourceDefinitionNames
-> V1CustomResourceDefinitionNames -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CustomResourceDefinitionNames
instance A.FromJSON V1CustomResourceDefinitionNames where
  parseJSON :: Value -> Parser V1CustomResourceDefinitionNames
parseJSON = String
-> (Object -> Parser V1CustomResourceDefinitionNames)
-> Value
-> Parser V1CustomResourceDefinitionNames
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CustomResourceDefinitionNames" ((Object -> Parser V1CustomResourceDefinitionNames)
 -> Value -> Parser V1CustomResourceDefinitionNames)
-> (Object -> Parser V1CustomResourceDefinitionNames)
-> Value
-> Parser V1CustomResourceDefinitionNames
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Text
-> Maybe Text
-> Text
-> Maybe [Text]
-> Maybe Text
-> V1CustomResourceDefinitionNames
V1CustomResourceDefinitionNames
      (Maybe [Text]
 -> Text
 -> Maybe Text
 -> Text
 -> Maybe [Text]
 -> Maybe Text
 -> V1CustomResourceDefinitionNames)
-> Parser (Maybe [Text])
-> Parser
     (Text
      -> Maybe Text
      -> Text
      -> Maybe [Text]
      -> Maybe Text
      -> V1CustomResourceDefinitionNames)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"categories")
      Parser
  (Text
   -> Maybe Text
   -> Text
   -> Maybe [Text]
   -> Maybe Text
   -> V1CustomResourceDefinitionNames)
-> Parser Text
-> Parser
     (Maybe Text
      -> Text
      -> Maybe [Text]
      -> Maybe Text
      -> V1CustomResourceDefinitionNames)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kind")
      Parser
  (Maybe Text
   -> Text
   -> Maybe [Text]
   -> Maybe Text
   -> V1CustomResourceDefinitionNames)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe [Text] -> Maybe Text -> V1CustomResourceDefinitionNames)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"listKind")
      Parser
  (Text
   -> Maybe [Text] -> Maybe Text -> V1CustomResourceDefinitionNames)
-> Parser Text
-> Parser
     (Maybe [Text] -> Maybe Text -> V1CustomResourceDefinitionNames)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"plural")
      Parser
  (Maybe [Text] -> Maybe Text -> V1CustomResourceDefinitionNames)
-> Parser (Maybe [Text])
-> Parser (Maybe Text -> V1CustomResourceDefinitionNames)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"shortNames")
      Parser (Maybe Text -> V1CustomResourceDefinitionNames)
-> Parser (Maybe Text) -> Parser V1CustomResourceDefinitionNames
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"singular")

-- | ToJSON V1CustomResourceDefinitionNames
instance A.ToJSON V1CustomResourceDefinitionNames where
  toJSON :: V1CustomResourceDefinitionNames -> Value
toJSON V1CustomResourceDefinitionNames {Maybe [Text]
Maybe Text
Text
v1CustomResourceDefinitionNamesSingular :: Maybe Text
v1CustomResourceDefinitionNamesShortNames :: Maybe [Text]
v1CustomResourceDefinitionNamesPlural :: Text
v1CustomResourceDefinitionNamesListKind :: Maybe Text
v1CustomResourceDefinitionNamesKind :: Text
v1CustomResourceDefinitionNamesCategories :: Maybe [Text]
v1CustomResourceDefinitionNamesSingular :: V1CustomResourceDefinitionNames -> Maybe Text
v1CustomResourceDefinitionNamesShortNames :: V1CustomResourceDefinitionNames -> Maybe [Text]
v1CustomResourceDefinitionNamesPlural :: V1CustomResourceDefinitionNames -> Text
v1CustomResourceDefinitionNamesListKind :: V1CustomResourceDefinitionNames -> Maybe Text
v1CustomResourceDefinitionNamesKind :: V1CustomResourceDefinitionNames -> Text
v1CustomResourceDefinitionNamesCategories :: V1CustomResourceDefinitionNames -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"categories" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1CustomResourceDefinitionNamesCategories
      , Text
"kind" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CustomResourceDefinitionNamesKind
      , Text
"listKind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CustomResourceDefinitionNamesListKind
      , Text
"plural" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CustomResourceDefinitionNamesPlural
      , Text
"shortNames" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1CustomResourceDefinitionNamesShortNames
      , Text
"singular" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CustomResourceDefinitionNamesSingular
      ]


-- | Construct a value of type 'V1CustomResourceDefinitionNames' (by applying it's required fields, if any)
mkV1CustomResourceDefinitionNames
  :: Text -- ^ 'v1CustomResourceDefinitionNamesKind': kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.
  -> Text -- ^ 'v1CustomResourceDefinitionNamesPlural': plural is the plural name of the resource to serve. The custom resources are served under `/apis/<group>/<version>/.../<plural>`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`). Must be all lowercase.
  -> V1CustomResourceDefinitionNames
mkV1CustomResourceDefinitionNames :: Text -> Text -> V1CustomResourceDefinitionNames
mkV1CustomResourceDefinitionNames Text
v1CustomResourceDefinitionNamesKind Text
v1CustomResourceDefinitionNamesPlural =
  V1CustomResourceDefinitionNames :: Maybe [Text]
-> Text
-> Maybe Text
-> Text
-> Maybe [Text]
-> Maybe Text
-> V1CustomResourceDefinitionNames
V1CustomResourceDefinitionNames
  { v1CustomResourceDefinitionNamesCategories :: Maybe [Text]
v1CustomResourceDefinitionNamesCategories = Maybe [Text]
forall a. Maybe a
Nothing
  , Text
v1CustomResourceDefinitionNamesKind :: Text
v1CustomResourceDefinitionNamesKind :: Text
v1CustomResourceDefinitionNamesKind
  , v1CustomResourceDefinitionNamesListKind :: Maybe Text
v1CustomResourceDefinitionNamesListKind = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1CustomResourceDefinitionNamesPlural :: Text
v1CustomResourceDefinitionNamesPlural :: Text
v1CustomResourceDefinitionNamesPlural
  , v1CustomResourceDefinitionNamesShortNames :: Maybe [Text]
v1CustomResourceDefinitionNamesShortNames = Maybe [Text]
forall a. Maybe a
Nothing
  , v1CustomResourceDefinitionNamesSingular :: Maybe Text
v1CustomResourceDefinitionNamesSingular = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1CustomResourceDefinitionSpec
-- | V1CustomResourceDefinitionSpec
-- CustomResourceDefinitionSpec describes how a user wants their resource to appear
data V1CustomResourceDefinitionSpec = V1CustomResourceDefinitionSpec
  { V1CustomResourceDefinitionSpec -> Maybe V1CustomResourceConversion
v1CustomResourceDefinitionSpecConversion :: !(Maybe V1CustomResourceConversion) -- ^ "conversion"
  , V1CustomResourceDefinitionSpec -> Text
v1CustomResourceDefinitionSpecGroup :: !(Text) -- ^ /Required/ "group" - group is the API group of the defined custom resource. The custom resources are served under &#x60;/apis/&lt;group&gt;/...&#x60;. Must match the name of the CustomResourceDefinition (in the form &#x60;&lt;names.plural&gt;.&lt;group&gt;&#x60;).
  , V1CustomResourceDefinitionSpec -> V1CustomResourceDefinitionNames
v1CustomResourceDefinitionSpecNames :: !(V1CustomResourceDefinitionNames) -- ^ /Required/ "names"
  , V1CustomResourceDefinitionSpec -> Maybe Bool
v1CustomResourceDefinitionSpecPreserveUnknownFields :: !(Maybe Bool) -- ^ "preserveUnknownFields" - preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. This field is deprecated in favor of setting &#x60;x-preserve-unknown-fields&#x60; to true in &#x60;spec.versions[*].schema.openAPIV3Schema&#x60;. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields for details.
  , V1CustomResourceDefinitionSpec -> Text
v1CustomResourceDefinitionSpecScope :: !(Text) -- ^ /Required/ "scope" - scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are &#x60;Cluster&#x60; and &#x60;Namespaced&#x60;. Default is &#x60;Namespaced&#x60;.
  , V1CustomResourceDefinitionSpec
-> [V1CustomResourceDefinitionVersion]
v1CustomResourceDefinitionSpecVersions :: !([V1CustomResourceDefinitionVersion]) -- ^ /Required/ "versions" - versions is the list of all API versions of the defined custom resource. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \&quot;kube-like\&quot;, it will sort above non \&quot;kube-like\&quot; version strings, which are ordered lexicographically. \&quot;Kube-like\&quot; versions start with a \&quot;v\&quot;, then are followed by a number (the major version), then optionally the string \&quot;alpha\&quot; or \&quot;beta\&quot; and another number (the minor version). These are sorted first by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
  } deriving (Int -> V1CustomResourceDefinitionSpec -> ShowS
[V1CustomResourceDefinitionSpec] -> ShowS
V1CustomResourceDefinitionSpec -> String
(Int -> V1CustomResourceDefinitionSpec -> ShowS)
-> (V1CustomResourceDefinitionSpec -> String)
-> ([V1CustomResourceDefinitionSpec] -> ShowS)
-> Show V1CustomResourceDefinitionSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CustomResourceDefinitionSpec] -> ShowS
$cshowList :: [V1CustomResourceDefinitionSpec] -> ShowS
show :: V1CustomResourceDefinitionSpec -> String
$cshow :: V1CustomResourceDefinitionSpec -> String
showsPrec :: Int -> V1CustomResourceDefinitionSpec -> ShowS
$cshowsPrec :: Int -> V1CustomResourceDefinitionSpec -> ShowS
P.Show, V1CustomResourceDefinitionSpec
-> V1CustomResourceDefinitionSpec -> Bool
(V1CustomResourceDefinitionSpec
 -> V1CustomResourceDefinitionSpec -> Bool)
-> (V1CustomResourceDefinitionSpec
    -> V1CustomResourceDefinitionSpec -> Bool)
-> Eq V1CustomResourceDefinitionSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CustomResourceDefinitionSpec
-> V1CustomResourceDefinitionSpec -> Bool
$c/= :: V1CustomResourceDefinitionSpec
-> V1CustomResourceDefinitionSpec -> Bool
== :: V1CustomResourceDefinitionSpec
-> V1CustomResourceDefinitionSpec -> Bool
$c== :: V1CustomResourceDefinitionSpec
-> V1CustomResourceDefinitionSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CustomResourceDefinitionSpec
instance A.FromJSON V1CustomResourceDefinitionSpec where
  parseJSON :: Value -> Parser V1CustomResourceDefinitionSpec
parseJSON = String
-> (Object -> Parser V1CustomResourceDefinitionSpec)
-> Value
-> Parser V1CustomResourceDefinitionSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CustomResourceDefinitionSpec" ((Object -> Parser V1CustomResourceDefinitionSpec)
 -> Value -> Parser V1CustomResourceDefinitionSpec)
-> (Object -> Parser V1CustomResourceDefinitionSpec)
-> Value
-> Parser V1CustomResourceDefinitionSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1CustomResourceConversion
-> Text
-> V1CustomResourceDefinitionNames
-> Maybe Bool
-> Text
-> [V1CustomResourceDefinitionVersion]
-> V1CustomResourceDefinitionSpec
V1CustomResourceDefinitionSpec
      (Maybe V1CustomResourceConversion
 -> Text
 -> V1CustomResourceDefinitionNames
 -> Maybe Bool
 -> Text
 -> [V1CustomResourceDefinitionVersion]
 -> V1CustomResourceDefinitionSpec)
-> Parser (Maybe V1CustomResourceConversion)
-> Parser
     (Text
      -> V1CustomResourceDefinitionNames
      -> Maybe Bool
      -> Text
      -> [V1CustomResourceDefinitionVersion]
      -> V1CustomResourceDefinitionSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1CustomResourceConversion)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conversion")
      Parser
  (Text
   -> V1CustomResourceDefinitionNames
   -> Maybe Bool
   -> Text
   -> [V1CustomResourceDefinitionVersion]
   -> V1CustomResourceDefinitionSpec)
-> Parser Text
-> Parser
     (V1CustomResourceDefinitionNames
      -> Maybe Bool
      -> Text
      -> [V1CustomResourceDefinitionVersion]
      -> V1CustomResourceDefinitionSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"group")
      Parser
  (V1CustomResourceDefinitionNames
   -> Maybe Bool
   -> Text
   -> [V1CustomResourceDefinitionVersion]
   -> V1CustomResourceDefinitionSpec)
-> Parser V1CustomResourceDefinitionNames
-> Parser
     (Maybe Bool
      -> Text
      -> [V1CustomResourceDefinitionVersion]
      -> V1CustomResourceDefinitionSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1CustomResourceDefinitionNames
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"names")
      Parser
  (Maybe Bool
   -> Text
   -> [V1CustomResourceDefinitionVersion]
   -> V1CustomResourceDefinitionSpec)
-> Parser (Maybe Bool)
-> Parser
     (Text
      -> [V1CustomResourceDefinitionVersion]
      -> V1CustomResourceDefinitionSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"preserveUnknownFields")
      Parser
  (Text
   -> [V1CustomResourceDefinitionVersion]
   -> V1CustomResourceDefinitionSpec)
-> Parser Text
-> Parser
     ([V1CustomResourceDefinitionVersion]
      -> V1CustomResourceDefinitionSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"scope")
      Parser
  ([V1CustomResourceDefinitionVersion]
   -> V1CustomResourceDefinitionSpec)
-> Parser [V1CustomResourceDefinitionVersion]
-> Parser V1CustomResourceDefinitionSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1CustomResourceDefinitionVersion]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"versions")

-- | ToJSON V1CustomResourceDefinitionSpec
instance A.ToJSON V1CustomResourceDefinitionSpec where
  toJSON :: V1CustomResourceDefinitionSpec -> Value
toJSON V1CustomResourceDefinitionSpec {[V1CustomResourceDefinitionVersion]
Maybe Bool
Maybe V1CustomResourceConversion
Text
V1CustomResourceDefinitionNames
v1CustomResourceDefinitionSpecVersions :: [V1CustomResourceDefinitionVersion]
v1CustomResourceDefinitionSpecScope :: Text
v1CustomResourceDefinitionSpecPreserveUnknownFields :: Maybe Bool
v1CustomResourceDefinitionSpecNames :: V1CustomResourceDefinitionNames
v1CustomResourceDefinitionSpecGroup :: Text
v1CustomResourceDefinitionSpecConversion :: Maybe V1CustomResourceConversion
v1CustomResourceDefinitionSpecVersions :: V1CustomResourceDefinitionSpec
-> [V1CustomResourceDefinitionVersion]
v1CustomResourceDefinitionSpecScope :: V1CustomResourceDefinitionSpec -> Text
v1CustomResourceDefinitionSpecPreserveUnknownFields :: V1CustomResourceDefinitionSpec -> Maybe Bool
v1CustomResourceDefinitionSpecNames :: V1CustomResourceDefinitionSpec -> V1CustomResourceDefinitionNames
v1CustomResourceDefinitionSpecGroup :: V1CustomResourceDefinitionSpec -> Text
v1CustomResourceDefinitionSpecConversion :: V1CustomResourceDefinitionSpec -> Maybe V1CustomResourceConversion
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"conversion" Text -> Maybe V1CustomResourceConversion -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1CustomResourceConversion
v1CustomResourceDefinitionSpecConversion
      , Text
"group" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CustomResourceDefinitionSpecGroup
      , Text
"names" Text -> V1CustomResourceDefinitionNames -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1CustomResourceDefinitionNames
v1CustomResourceDefinitionSpecNames
      , Text
"preserveUnknownFields" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1CustomResourceDefinitionSpecPreserveUnknownFields
      , Text
"scope" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CustomResourceDefinitionSpecScope
      , Text
"versions" Text -> [V1CustomResourceDefinitionVersion] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1CustomResourceDefinitionVersion]
v1CustomResourceDefinitionSpecVersions
      ]


-- | Construct a value of type 'V1CustomResourceDefinitionSpec' (by applying it's required fields, if any)
mkV1CustomResourceDefinitionSpec
  :: Text -- ^ 'v1CustomResourceDefinitionSpecGroup': group is the API group of the defined custom resource. The custom resources are served under `/apis/<group>/...`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`).
  -> V1CustomResourceDefinitionNames -- ^ 'v1CustomResourceDefinitionSpecNames' 
  -> Text -- ^ 'v1CustomResourceDefinitionSpecScope': scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`. Default is `Namespaced`.
  -> [V1CustomResourceDefinitionVersion] -- ^ 'v1CustomResourceDefinitionSpecVersions': versions is the list of all API versions of the defined custom resource. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
  -> V1CustomResourceDefinitionSpec
mkV1CustomResourceDefinitionSpec :: Text
-> V1CustomResourceDefinitionNames
-> Text
-> [V1CustomResourceDefinitionVersion]
-> V1CustomResourceDefinitionSpec
mkV1CustomResourceDefinitionSpec Text
v1CustomResourceDefinitionSpecGroup V1CustomResourceDefinitionNames
v1CustomResourceDefinitionSpecNames Text
v1CustomResourceDefinitionSpecScope [V1CustomResourceDefinitionVersion]
v1CustomResourceDefinitionSpecVersions =
  V1CustomResourceDefinitionSpec :: Maybe V1CustomResourceConversion
-> Text
-> V1CustomResourceDefinitionNames
-> Maybe Bool
-> Text
-> [V1CustomResourceDefinitionVersion]
-> V1CustomResourceDefinitionSpec
V1CustomResourceDefinitionSpec
  { v1CustomResourceDefinitionSpecConversion :: Maybe V1CustomResourceConversion
v1CustomResourceDefinitionSpecConversion = Maybe V1CustomResourceConversion
forall a. Maybe a
Nothing
  , Text
v1CustomResourceDefinitionSpecGroup :: Text
v1CustomResourceDefinitionSpecGroup :: Text
v1CustomResourceDefinitionSpecGroup
  , V1CustomResourceDefinitionNames
v1CustomResourceDefinitionSpecNames :: V1CustomResourceDefinitionNames
v1CustomResourceDefinitionSpecNames :: V1CustomResourceDefinitionNames
v1CustomResourceDefinitionSpecNames
  , v1CustomResourceDefinitionSpecPreserveUnknownFields :: Maybe Bool
v1CustomResourceDefinitionSpecPreserveUnknownFields = Maybe Bool
forall a. Maybe a
Nothing
  , Text
v1CustomResourceDefinitionSpecScope :: Text
v1CustomResourceDefinitionSpecScope :: Text
v1CustomResourceDefinitionSpecScope
  , [V1CustomResourceDefinitionVersion]
v1CustomResourceDefinitionSpecVersions :: [V1CustomResourceDefinitionVersion]
v1CustomResourceDefinitionSpecVersions :: [V1CustomResourceDefinitionVersion]
v1CustomResourceDefinitionSpecVersions
  }

-- ** V1CustomResourceDefinitionStatus
-- | V1CustomResourceDefinitionStatus
-- CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition
data V1CustomResourceDefinitionStatus = V1CustomResourceDefinitionStatus
  { V1CustomResourceDefinitionStatus -> V1CustomResourceDefinitionNames
v1CustomResourceDefinitionStatusAcceptedNames :: !(V1CustomResourceDefinitionNames) -- ^ /Required/ "acceptedNames"
  , V1CustomResourceDefinitionStatus
-> Maybe [V1CustomResourceDefinitionCondition]
v1CustomResourceDefinitionStatusConditions :: !(Maybe [V1CustomResourceDefinitionCondition]) -- ^ "conditions" - conditions indicate state for particular aspects of a CustomResourceDefinition
  , V1CustomResourceDefinitionStatus -> [Text]
v1CustomResourceDefinitionStatusStoredVersions :: !([Text]) -- ^ /Required/ "storedVersions" - storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from &#x60;spec.versions&#x60; while they exist in this list.
  } deriving (Int -> V1CustomResourceDefinitionStatus -> ShowS
[V1CustomResourceDefinitionStatus] -> ShowS
V1CustomResourceDefinitionStatus -> String
(Int -> V1CustomResourceDefinitionStatus -> ShowS)
-> (V1CustomResourceDefinitionStatus -> String)
-> ([V1CustomResourceDefinitionStatus] -> ShowS)
-> Show V1CustomResourceDefinitionStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CustomResourceDefinitionStatus] -> ShowS
$cshowList :: [V1CustomResourceDefinitionStatus] -> ShowS
show :: V1CustomResourceDefinitionStatus -> String
$cshow :: V1CustomResourceDefinitionStatus -> String
showsPrec :: Int -> V1CustomResourceDefinitionStatus -> ShowS
$cshowsPrec :: Int -> V1CustomResourceDefinitionStatus -> ShowS
P.Show, V1CustomResourceDefinitionStatus
-> V1CustomResourceDefinitionStatus -> Bool
(V1CustomResourceDefinitionStatus
 -> V1CustomResourceDefinitionStatus -> Bool)
-> (V1CustomResourceDefinitionStatus
    -> V1CustomResourceDefinitionStatus -> Bool)
-> Eq V1CustomResourceDefinitionStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CustomResourceDefinitionStatus
-> V1CustomResourceDefinitionStatus -> Bool
$c/= :: V1CustomResourceDefinitionStatus
-> V1CustomResourceDefinitionStatus -> Bool
== :: V1CustomResourceDefinitionStatus
-> V1CustomResourceDefinitionStatus -> Bool
$c== :: V1CustomResourceDefinitionStatus
-> V1CustomResourceDefinitionStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CustomResourceDefinitionStatus
instance A.FromJSON V1CustomResourceDefinitionStatus where
  parseJSON :: Value -> Parser V1CustomResourceDefinitionStatus
parseJSON = String
-> (Object -> Parser V1CustomResourceDefinitionStatus)
-> Value
-> Parser V1CustomResourceDefinitionStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CustomResourceDefinitionStatus" ((Object -> Parser V1CustomResourceDefinitionStatus)
 -> Value -> Parser V1CustomResourceDefinitionStatus)
-> (Object -> Parser V1CustomResourceDefinitionStatus)
-> Value
-> Parser V1CustomResourceDefinitionStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    V1CustomResourceDefinitionNames
-> Maybe [V1CustomResourceDefinitionCondition]
-> [Text]
-> V1CustomResourceDefinitionStatus
V1CustomResourceDefinitionStatus
      (V1CustomResourceDefinitionNames
 -> Maybe [V1CustomResourceDefinitionCondition]
 -> [Text]
 -> V1CustomResourceDefinitionStatus)
-> Parser V1CustomResourceDefinitionNames
-> Parser
     (Maybe [V1CustomResourceDefinitionCondition]
      -> [Text] -> V1CustomResourceDefinitionStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser V1CustomResourceDefinitionNames
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"acceptedNames")
      Parser
  (Maybe [V1CustomResourceDefinitionCondition]
   -> [Text] -> V1CustomResourceDefinitionStatus)
-> Parser (Maybe [V1CustomResourceDefinitionCondition])
-> Parser ([Text] -> V1CustomResourceDefinitionStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe [V1CustomResourceDefinitionCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser ([Text] -> V1CustomResourceDefinitionStatus)
-> Parser [Text] -> Parser V1CustomResourceDefinitionStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"storedVersions")

-- | ToJSON V1CustomResourceDefinitionStatus
instance A.ToJSON V1CustomResourceDefinitionStatus where
  toJSON :: V1CustomResourceDefinitionStatus -> Value
toJSON V1CustomResourceDefinitionStatus {[Text]
Maybe [V1CustomResourceDefinitionCondition]
V1CustomResourceDefinitionNames
v1CustomResourceDefinitionStatusStoredVersions :: [Text]
v1CustomResourceDefinitionStatusConditions :: Maybe [V1CustomResourceDefinitionCondition]
v1CustomResourceDefinitionStatusAcceptedNames :: V1CustomResourceDefinitionNames
v1CustomResourceDefinitionStatusStoredVersions :: V1CustomResourceDefinitionStatus -> [Text]
v1CustomResourceDefinitionStatusConditions :: V1CustomResourceDefinitionStatus
-> Maybe [V1CustomResourceDefinitionCondition]
v1CustomResourceDefinitionStatusAcceptedNames :: V1CustomResourceDefinitionStatus -> V1CustomResourceDefinitionNames
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"acceptedNames" Text -> V1CustomResourceDefinitionNames -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1CustomResourceDefinitionNames
v1CustomResourceDefinitionStatusAcceptedNames
      , Text
"conditions" Text
-> Maybe [V1CustomResourceDefinitionCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1CustomResourceDefinitionCondition]
v1CustomResourceDefinitionStatusConditions
      , Text
"storedVersions" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1CustomResourceDefinitionStatusStoredVersions
      ]


-- | Construct a value of type 'V1CustomResourceDefinitionStatus' (by applying it's required fields, if any)
mkV1CustomResourceDefinitionStatus
  :: V1CustomResourceDefinitionNames -- ^ 'v1CustomResourceDefinitionStatusAcceptedNames' 
  -> [Text] -- ^ 'v1CustomResourceDefinitionStatusStoredVersions': storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.
  -> V1CustomResourceDefinitionStatus
mkV1CustomResourceDefinitionStatus :: V1CustomResourceDefinitionNames
-> [Text] -> V1CustomResourceDefinitionStatus
mkV1CustomResourceDefinitionStatus V1CustomResourceDefinitionNames
v1CustomResourceDefinitionStatusAcceptedNames [Text]
v1CustomResourceDefinitionStatusStoredVersions =
  V1CustomResourceDefinitionStatus :: V1CustomResourceDefinitionNames
-> Maybe [V1CustomResourceDefinitionCondition]
-> [Text]
-> V1CustomResourceDefinitionStatus
V1CustomResourceDefinitionStatus
  { V1CustomResourceDefinitionNames
v1CustomResourceDefinitionStatusAcceptedNames :: V1CustomResourceDefinitionNames
v1CustomResourceDefinitionStatusAcceptedNames :: V1CustomResourceDefinitionNames
v1CustomResourceDefinitionStatusAcceptedNames
  , v1CustomResourceDefinitionStatusConditions :: Maybe [V1CustomResourceDefinitionCondition]
v1CustomResourceDefinitionStatusConditions = Maybe [V1CustomResourceDefinitionCondition]
forall a. Maybe a
Nothing
  , [Text]
v1CustomResourceDefinitionStatusStoredVersions :: [Text]
v1CustomResourceDefinitionStatusStoredVersions :: [Text]
v1CustomResourceDefinitionStatusStoredVersions
  }

-- ** V1CustomResourceDefinitionVersion
-- | V1CustomResourceDefinitionVersion
-- CustomResourceDefinitionVersion describes a version for CRD.
data V1CustomResourceDefinitionVersion = V1CustomResourceDefinitionVersion
  { V1CustomResourceDefinitionVersion
-> Maybe [V1CustomResourceColumnDefinition]
v1CustomResourceDefinitionVersionAdditionalPrinterColumns :: !(Maybe [V1CustomResourceColumnDefinition]) -- ^ "additionalPrinterColumns" - additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If no columns are specified, a single column displaying the age of the custom resource is used.
  , V1CustomResourceDefinitionVersion -> Text
v1CustomResourceDefinitionVersionName :: !(Text) -- ^ /Required/ "name" - name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at &#x60;/apis/&lt;group&gt;/&lt;version&gt;/...&#x60; if &#x60;served&#x60; is true.
  , V1CustomResourceDefinitionVersion
-> Maybe V1CustomResourceValidation
v1CustomResourceDefinitionVersionSchema :: !(Maybe V1CustomResourceValidation) -- ^ "schema"
  , V1CustomResourceDefinitionVersion -> Bool
v1CustomResourceDefinitionVersionServed :: !(Bool) -- ^ /Required/ "served" - served is a flag enabling/disabling this version from being served via REST APIs
  , V1CustomResourceDefinitionVersion -> Bool
v1CustomResourceDefinitionVersionStorage :: !(Bool) -- ^ /Required/ "storage" - storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage&#x3D;true.
  , V1CustomResourceDefinitionVersion
-> Maybe V1CustomResourceSubresources
v1CustomResourceDefinitionVersionSubresources :: !(Maybe V1CustomResourceSubresources) -- ^ "subresources"
  } deriving (Int -> V1CustomResourceDefinitionVersion -> ShowS
[V1CustomResourceDefinitionVersion] -> ShowS
V1CustomResourceDefinitionVersion -> String
(Int -> V1CustomResourceDefinitionVersion -> ShowS)
-> (V1CustomResourceDefinitionVersion -> String)
-> ([V1CustomResourceDefinitionVersion] -> ShowS)
-> Show V1CustomResourceDefinitionVersion
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CustomResourceDefinitionVersion] -> ShowS
$cshowList :: [V1CustomResourceDefinitionVersion] -> ShowS
show :: V1CustomResourceDefinitionVersion -> String
$cshow :: V1CustomResourceDefinitionVersion -> String
showsPrec :: Int -> V1CustomResourceDefinitionVersion -> ShowS
$cshowsPrec :: Int -> V1CustomResourceDefinitionVersion -> ShowS
P.Show, V1CustomResourceDefinitionVersion
-> V1CustomResourceDefinitionVersion -> Bool
(V1CustomResourceDefinitionVersion
 -> V1CustomResourceDefinitionVersion -> Bool)
-> (V1CustomResourceDefinitionVersion
    -> V1CustomResourceDefinitionVersion -> Bool)
-> Eq V1CustomResourceDefinitionVersion
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CustomResourceDefinitionVersion
-> V1CustomResourceDefinitionVersion -> Bool
$c/= :: V1CustomResourceDefinitionVersion
-> V1CustomResourceDefinitionVersion -> Bool
== :: V1CustomResourceDefinitionVersion
-> V1CustomResourceDefinitionVersion -> Bool
$c== :: V1CustomResourceDefinitionVersion
-> V1CustomResourceDefinitionVersion -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CustomResourceDefinitionVersion
instance A.FromJSON V1CustomResourceDefinitionVersion where
  parseJSON :: Value -> Parser V1CustomResourceDefinitionVersion
parseJSON = String
-> (Object -> Parser V1CustomResourceDefinitionVersion)
-> Value
-> Parser V1CustomResourceDefinitionVersion
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CustomResourceDefinitionVersion" ((Object -> Parser V1CustomResourceDefinitionVersion)
 -> Value -> Parser V1CustomResourceDefinitionVersion)
-> (Object -> Parser V1CustomResourceDefinitionVersion)
-> Value
-> Parser V1CustomResourceDefinitionVersion
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1CustomResourceColumnDefinition]
-> Text
-> Maybe V1CustomResourceValidation
-> Bool
-> Bool
-> Maybe V1CustomResourceSubresources
-> V1CustomResourceDefinitionVersion
V1CustomResourceDefinitionVersion
      (Maybe [V1CustomResourceColumnDefinition]
 -> Text
 -> Maybe V1CustomResourceValidation
 -> Bool
 -> Bool
 -> Maybe V1CustomResourceSubresources
 -> V1CustomResourceDefinitionVersion)
-> Parser (Maybe [V1CustomResourceColumnDefinition])
-> Parser
     (Text
      -> Maybe V1CustomResourceValidation
      -> Bool
      -> Bool
      -> Maybe V1CustomResourceSubresources
      -> V1CustomResourceDefinitionVersion)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1CustomResourceColumnDefinition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"additionalPrinterColumns")
      Parser
  (Text
   -> Maybe V1CustomResourceValidation
   -> Bool
   -> Bool
   -> Maybe V1CustomResourceSubresources
   -> V1CustomResourceDefinitionVersion)
-> Parser Text
-> Parser
     (Maybe V1CustomResourceValidation
      -> Bool
      -> Bool
      -> Maybe V1CustomResourceSubresources
      -> V1CustomResourceDefinitionVersion)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Maybe V1CustomResourceValidation
   -> Bool
   -> Bool
   -> Maybe V1CustomResourceSubresources
   -> V1CustomResourceDefinitionVersion)
-> Parser (Maybe V1CustomResourceValidation)
-> Parser
     (Bool
      -> Bool
      -> Maybe V1CustomResourceSubresources
      -> V1CustomResourceDefinitionVersion)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1CustomResourceValidation)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"schema")
      Parser
  (Bool
   -> Bool
   -> Maybe V1CustomResourceSubresources
   -> V1CustomResourceDefinitionVersion)
-> Parser Bool
-> Parser
     (Bool
      -> Maybe V1CustomResourceSubresources
      -> V1CustomResourceDefinitionVersion)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"served")
      Parser
  (Bool
   -> Maybe V1CustomResourceSubresources
   -> V1CustomResourceDefinitionVersion)
-> Parser Bool
-> Parser
     (Maybe V1CustomResourceSubresources
      -> V1CustomResourceDefinitionVersion)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"storage")
      Parser
  (Maybe V1CustomResourceSubresources
   -> V1CustomResourceDefinitionVersion)
-> Parser (Maybe V1CustomResourceSubresources)
-> Parser V1CustomResourceDefinitionVersion
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1CustomResourceSubresources)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"subresources")

-- | ToJSON V1CustomResourceDefinitionVersion
instance A.ToJSON V1CustomResourceDefinitionVersion where
  toJSON :: V1CustomResourceDefinitionVersion -> Value
toJSON V1CustomResourceDefinitionVersion {Bool
Maybe [V1CustomResourceColumnDefinition]
Maybe V1CustomResourceValidation
Maybe V1CustomResourceSubresources
Text
v1CustomResourceDefinitionVersionSubresources :: Maybe V1CustomResourceSubresources
v1CustomResourceDefinitionVersionStorage :: Bool
v1CustomResourceDefinitionVersionServed :: Bool
v1CustomResourceDefinitionVersionSchema :: Maybe V1CustomResourceValidation
v1CustomResourceDefinitionVersionName :: Text
v1CustomResourceDefinitionVersionAdditionalPrinterColumns :: Maybe [V1CustomResourceColumnDefinition]
v1CustomResourceDefinitionVersionSubresources :: V1CustomResourceDefinitionVersion
-> Maybe V1CustomResourceSubresources
v1CustomResourceDefinitionVersionStorage :: V1CustomResourceDefinitionVersion -> Bool
v1CustomResourceDefinitionVersionServed :: V1CustomResourceDefinitionVersion -> Bool
v1CustomResourceDefinitionVersionSchema :: V1CustomResourceDefinitionVersion
-> Maybe V1CustomResourceValidation
v1CustomResourceDefinitionVersionName :: V1CustomResourceDefinitionVersion -> Text
v1CustomResourceDefinitionVersionAdditionalPrinterColumns :: V1CustomResourceDefinitionVersion
-> Maybe [V1CustomResourceColumnDefinition]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"additionalPrinterColumns" Text -> Maybe [V1CustomResourceColumnDefinition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1CustomResourceColumnDefinition]
v1CustomResourceDefinitionVersionAdditionalPrinterColumns
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CustomResourceDefinitionVersionName
      , Text
"schema" Text -> Maybe V1CustomResourceValidation -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1CustomResourceValidation
v1CustomResourceDefinitionVersionSchema
      , Text
"served" Text -> Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Bool
v1CustomResourceDefinitionVersionServed
      , Text
"storage" Text -> Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Bool
v1CustomResourceDefinitionVersionStorage
      , Text
"subresources" Text -> Maybe V1CustomResourceSubresources -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1CustomResourceSubresources
v1CustomResourceDefinitionVersionSubresources
      ]


-- | Construct a value of type 'V1CustomResourceDefinitionVersion' (by applying it's required fields, if any)
mkV1CustomResourceDefinitionVersion
  :: Text -- ^ 'v1CustomResourceDefinitionVersionName': name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/<group>/<version>/...` if `served` is true.
  -> Bool -- ^ 'v1CustomResourceDefinitionVersionServed': served is a flag enabling/disabling this version from being served via REST APIs
  -> Bool -- ^ 'v1CustomResourceDefinitionVersionStorage': storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.
  -> V1CustomResourceDefinitionVersion
mkV1CustomResourceDefinitionVersion :: Text -> Bool -> Bool -> V1CustomResourceDefinitionVersion
mkV1CustomResourceDefinitionVersion Text
v1CustomResourceDefinitionVersionName Bool
v1CustomResourceDefinitionVersionServed Bool
v1CustomResourceDefinitionVersionStorage =
  V1CustomResourceDefinitionVersion :: Maybe [V1CustomResourceColumnDefinition]
-> Text
-> Maybe V1CustomResourceValidation
-> Bool
-> Bool
-> Maybe V1CustomResourceSubresources
-> V1CustomResourceDefinitionVersion
V1CustomResourceDefinitionVersion
  { v1CustomResourceDefinitionVersionAdditionalPrinterColumns :: Maybe [V1CustomResourceColumnDefinition]
v1CustomResourceDefinitionVersionAdditionalPrinterColumns = Maybe [V1CustomResourceColumnDefinition]
forall a. Maybe a
Nothing
  , Text
v1CustomResourceDefinitionVersionName :: Text
v1CustomResourceDefinitionVersionName :: Text
v1CustomResourceDefinitionVersionName
  , v1CustomResourceDefinitionVersionSchema :: Maybe V1CustomResourceValidation
v1CustomResourceDefinitionVersionSchema = Maybe V1CustomResourceValidation
forall a. Maybe a
Nothing
  , Bool
v1CustomResourceDefinitionVersionServed :: Bool
v1CustomResourceDefinitionVersionServed :: Bool
v1CustomResourceDefinitionVersionServed
  , Bool
v1CustomResourceDefinitionVersionStorage :: Bool
v1CustomResourceDefinitionVersionStorage :: Bool
v1CustomResourceDefinitionVersionStorage
  , v1CustomResourceDefinitionVersionSubresources :: Maybe V1CustomResourceSubresources
v1CustomResourceDefinitionVersionSubresources = Maybe V1CustomResourceSubresources
forall a. Maybe a
Nothing
  }

-- ** V1CustomResourceSubresourceScale
-- | V1CustomResourceSubresourceScale
-- CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.
data V1CustomResourceSubresourceScale = V1CustomResourceSubresourceScale
  { V1CustomResourceSubresourceScale -> Maybe Text
v1CustomResourceSubresourceScaleLabelSelectorPath :: !(Maybe Text) -- ^ "labelSelectorPath" - labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale &#x60;status.selector&#x60;. Only JSON paths without the array notation are allowed. Must be a JSON Path under &#x60;.status&#x60; or &#x60;.spec&#x60;. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the &#x60;status.selector&#x60; value in the &#x60;/scale&#x60; subresource will default to the empty string.
  , V1CustomResourceSubresourceScale -> Text
v1CustomResourceSubresourceScaleSpecReplicasPath :: !(Text) -- ^ /Required/ "specReplicasPath" - specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale &#x60;spec.replicas&#x60;. Only JSON paths without the array notation are allowed. Must be a JSON Path under &#x60;.spec&#x60;. If there is no value under the given path in the custom resource, the &#x60;/scale&#x60; subresource will return an error on GET.
  , V1CustomResourceSubresourceScale -> Text
v1CustomResourceSubresourceScaleStatusReplicasPath :: !(Text) -- ^ /Required/ "statusReplicasPath" - statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale &#x60;status.replicas&#x60;. Only JSON paths without the array notation are allowed. Must be a JSON Path under &#x60;.status&#x60;. If there is no value under the given path in the custom resource, the &#x60;status.replicas&#x60; value in the &#x60;/scale&#x60; subresource will default to 0.
  } deriving (Int -> V1CustomResourceSubresourceScale -> ShowS
[V1CustomResourceSubresourceScale] -> ShowS
V1CustomResourceSubresourceScale -> String
(Int -> V1CustomResourceSubresourceScale -> ShowS)
-> (V1CustomResourceSubresourceScale -> String)
-> ([V1CustomResourceSubresourceScale] -> ShowS)
-> Show V1CustomResourceSubresourceScale
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CustomResourceSubresourceScale] -> ShowS
$cshowList :: [V1CustomResourceSubresourceScale] -> ShowS
show :: V1CustomResourceSubresourceScale -> String
$cshow :: V1CustomResourceSubresourceScale -> String
showsPrec :: Int -> V1CustomResourceSubresourceScale -> ShowS
$cshowsPrec :: Int -> V1CustomResourceSubresourceScale -> ShowS
P.Show, V1CustomResourceSubresourceScale
-> V1CustomResourceSubresourceScale -> Bool
(V1CustomResourceSubresourceScale
 -> V1CustomResourceSubresourceScale -> Bool)
-> (V1CustomResourceSubresourceScale
    -> V1CustomResourceSubresourceScale -> Bool)
-> Eq V1CustomResourceSubresourceScale
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CustomResourceSubresourceScale
-> V1CustomResourceSubresourceScale -> Bool
$c/= :: V1CustomResourceSubresourceScale
-> V1CustomResourceSubresourceScale -> Bool
== :: V1CustomResourceSubresourceScale
-> V1CustomResourceSubresourceScale -> Bool
$c== :: V1CustomResourceSubresourceScale
-> V1CustomResourceSubresourceScale -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CustomResourceSubresourceScale
instance A.FromJSON V1CustomResourceSubresourceScale where
  parseJSON :: Value -> Parser V1CustomResourceSubresourceScale
parseJSON = String
-> (Object -> Parser V1CustomResourceSubresourceScale)
-> Value
-> Parser V1CustomResourceSubresourceScale
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CustomResourceSubresourceScale" ((Object -> Parser V1CustomResourceSubresourceScale)
 -> Value -> Parser V1CustomResourceSubresourceScale)
-> (Object -> Parser V1CustomResourceSubresourceScale)
-> Value
-> Parser V1CustomResourceSubresourceScale
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Text -> Text -> V1CustomResourceSubresourceScale
V1CustomResourceSubresourceScale
      (Maybe Text -> Text -> Text -> V1CustomResourceSubresourceScale)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1CustomResourceSubresourceScale)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"labelSelectorPath")
      Parser (Text -> Text -> V1CustomResourceSubresourceScale)
-> Parser Text -> Parser (Text -> V1CustomResourceSubresourceScale)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"specReplicasPath")
      Parser (Text -> V1CustomResourceSubresourceScale)
-> Parser Text -> Parser V1CustomResourceSubresourceScale
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"statusReplicasPath")

-- | ToJSON V1CustomResourceSubresourceScale
instance A.ToJSON V1CustomResourceSubresourceScale where
  toJSON :: V1CustomResourceSubresourceScale -> Value
toJSON V1CustomResourceSubresourceScale {Maybe Text
Text
v1CustomResourceSubresourceScaleStatusReplicasPath :: Text
v1CustomResourceSubresourceScaleSpecReplicasPath :: Text
v1CustomResourceSubresourceScaleLabelSelectorPath :: Maybe Text
v1CustomResourceSubresourceScaleStatusReplicasPath :: V1CustomResourceSubresourceScale -> Text
v1CustomResourceSubresourceScaleSpecReplicasPath :: V1CustomResourceSubresourceScale -> Text
v1CustomResourceSubresourceScaleLabelSelectorPath :: V1CustomResourceSubresourceScale -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"labelSelectorPath" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1CustomResourceSubresourceScaleLabelSelectorPath
      , Text
"specReplicasPath" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CustomResourceSubresourceScaleSpecReplicasPath
      , Text
"statusReplicasPath" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1CustomResourceSubresourceScaleStatusReplicasPath
      ]


-- | Construct a value of type 'V1CustomResourceSubresourceScale' (by applying it's required fields, if any)
mkV1CustomResourceSubresourceScale
  :: Text -- ^ 'v1CustomResourceSubresourceScaleSpecReplicasPath': specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.
  -> Text -- ^ 'v1CustomResourceSubresourceScaleStatusReplicasPath': statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.
  -> V1CustomResourceSubresourceScale
mkV1CustomResourceSubresourceScale :: Text -> Text -> V1CustomResourceSubresourceScale
mkV1CustomResourceSubresourceScale Text
v1CustomResourceSubresourceScaleSpecReplicasPath Text
v1CustomResourceSubresourceScaleStatusReplicasPath =
  V1CustomResourceSubresourceScale :: Maybe Text -> Text -> Text -> V1CustomResourceSubresourceScale
V1CustomResourceSubresourceScale
  { v1CustomResourceSubresourceScaleLabelSelectorPath :: Maybe Text
v1CustomResourceSubresourceScaleLabelSelectorPath = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1CustomResourceSubresourceScaleSpecReplicasPath :: Text
v1CustomResourceSubresourceScaleSpecReplicasPath :: Text
v1CustomResourceSubresourceScaleSpecReplicasPath
  , Text
v1CustomResourceSubresourceScaleStatusReplicasPath :: Text
v1CustomResourceSubresourceScaleStatusReplicasPath :: Text
v1CustomResourceSubresourceScaleStatusReplicasPath
  }

-- ** V1CustomResourceSubresources
-- | V1CustomResourceSubresources
-- CustomResourceSubresources defines the status and scale subresources for CustomResources.
data V1CustomResourceSubresources = V1CustomResourceSubresources
  { V1CustomResourceSubresources
-> Maybe V1CustomResourceSubresourceScale
v1CustomResourceSubresourcesScale :: !(Maybe V1CustomResourceSubresourceScale) -- ^ "scale"
  , V1CustomResourceSubresources -> Maybe Value
v1CustomResourceSubresourcesStatus :: !(Maybe A.Value) -- ^ "status" - status indicates the custom resource should serve a &#x60;/status&#x60; subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the &#x60;status&#x60; stanza of the object. 2. requests to the custom resource &#x60;/status&#x60; subresource ignore changes to anything other than the &#x60;status&#x60; stanza of the object.
  } deriving (Int -> V1CustomResourceSubresources -> ShowS
[V1CustomResourceSubresources] -> ShowS
V1CustomResourceSubresources -> String
(Int -> V1CustomResourceSubresources -> ShowS)
-> (V1CustomResourceSubresources -> String)
-> ([V1CustomResourceSubresources] -> ShowS)
-> Show V1CustomResourceSubresources
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CustomResourceSubresources] -> ShowS
$cshowList :: [V1CustomResourceSubresources] -> ShowS
show :: V1CustomResourceSubresources -> String
$cshow :: V1CustomResourceSubresources -> String
showsPrec :: Int -> V1CustomResourceSubresources -> ShowS
$cshowsPrec :: Int -> V1CustomResourceSubresources -> ShowS
P.Show, V1CustomResourceSubresources
-> V1CustomResourceSubresources -> Bool
(V1CustomResourceSubresources
 -> V1CustomResourceSubresources -> Bool)
-> (V1CustomResourceSubresources
    -> V1CustomResourceSubresources -> Bool)
-> Eq V1CustomResourceSubresources
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CustomResourceSubresources
-> V1CustomResourceSubresources -> Bool
$c/= :: V1CustomResourceSubresources
-> V1CustomResourceSubresources -> Bool
== :: V1CustomResourceSubresources
-> V1CustomResourceSubresources -> Bool
$c== :: V1CustomResourceSubresources
-> V1CustomResourceSubresources -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CustomResourceSubresources
instance A.FromJSON V1CustomResourceSubresources where
  parseJSON :: Value -> Parser V1CustomResourceSubresources
parseJSON = String
-> (Object -> Parser V1CustomResourceSubresources)
-> Value
-> Parser V1CustomResourceSubresources
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CustomResourceSubresources" ((Object -> Parser V1CustomResourceSubresources)
 -> Value -> Parser V1CustomResourceSubresources)
-> (Object -> Parser V1CustomResourceSubresources)
-> Value
-> Parser V1CustomResourceSubresources
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1CustomResourceSubresourceScale
-> Maybe Value -> V1CustomResourceSubresources
V1CustomResourceSubresources
      (Maybe V1CustomResourceSubresourceScale
 -> Maybe Value -> V1CustomResourceSubresources)
-> Parser (Maybe V1CustomResourceSubresourceScale)
-> Parser (Maybe Value -> V1CustomResourceSubresources)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1CustomResourceSubresourceScale)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"scale")
      Parser (Maybe Value -> V1CustomResourceSubresources)
-> Parser (Maybe Value) -> Parser V1CustomResourceSubresources
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1CustomResourceSubresources
instance A.ToJSON V1CustomResourceSubresources where
  toJSON :: V1CustomResourceSubresources -> Value
toJSON V1CustomResourceSubresources {Maybe Value
Maybe V1CustomResourceSubresourceScale
v1CustomResourceSubresourcesStatus :: Maybe Value
v1CustomResourceSubresourcesScale :: Maybe V1CustomResourceSubresourceScale
v1CustomResourceSubresourcesStatus :: V1CustomResourceSubresources -> Maybe Value
v1CustomResourceSubresourcesScale :: V1CustomResourceSubresources
-> Maybe V1CustomResourceSubresourceScale
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"scale" Text -> Maybe V1CustomResourceSubresourceScale -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1CustomResourceSubresourceScale
v1CustomResourceSubresourcesScale
      , Text
"status" Text -> Maybe Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Value
v1CustomResourceSubresourcesStatus
      ]


-- | Construct a value of type 'V1CustomResourceSubresources' (by applying it's required fields, if any)
mkV1CustomResourceSubresources
  :: V1CustomResourceSubresources
mkV1CustomResourceSubresources :: V1CustomResourceSubresources
mkV1CustomResourceSubresources =
  V1CustomResourceSubresources :: Maybe V1CustomResourceSubresourceScale
-> Maybe Value -> V1CustomResourceSubresources
V1CustomResourceSubresources
  { v1CustomResourceSubresourcesScale :: Maybe V1CustomResourceSubresourceScale
v1CustomResourceSubresourcesScale = Maybe V1CustomResourceSubresourceScale
forall a. Maybe a
Nothing
  , v1CustomResourceSubresourcesStatus :: Maybe Value
v1CustomResourceSubresourcesStatus = Maybe Value
forall a. Maybe a
Nothing
  }

-- ** V1CustomResourceValidation
-- | V1CustomResourceValidation
-- CustomResourceValidation is a list of validation methods for CustomResources.
data V1CustomResourceValidation = V1CustomResourceValidation
  { V1CustomResourceValidation -> Maybe V1JSONSchemaProps
v1CustomResourceValidationOpenApiv3Schema :: !(Maybe V1JSONSchemaProps) -- ^ "openAPIV3Schema"
  } deriving (Int -> V1CustomResourceValidation -> ShowS
[V1CustomResourceValidation] -> ShowS
V1CustomResourceValidation -> String
(Int -> V1CustomResourceValidation -> ShowS)
-> (V1CustomResourceValidation -> String)
-> ([V1CustomResourceValidation] -> ShowS)
-> Show V1CustomResourceValidation
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1CustomResourceValidation] -> ShowS
$cshowList :: [V1CustomResourceValidation] -> ShowS
show :: V1CustomResourceValidation -> String
$cshow :: V1CustomResourceValidation -> String
showsPrec :: Int -> V1CustomResourceValidation -> ShowS
$cshowsPrec :: Int -> V1CustomResourceValidation -> ShowS
P.Show, V1CustomResourceValidation -> V1CustomResourceValidation -> Bool
(V1CustomResourceValidation -> V1CustomResourceValidation -> Bool)
-> (V1CustomResourceValidation
    -> V1CustomResourceValidation -> Bool)
-> Eq V1CustomResourceValidation
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1CustomResourceValidation -> V1CustomResourceValidation -> Bool
$c/= :: V1CustomResourceValidation -> V1CustomResourceValidation -> Bool
== :: V1CustomResourceValidation -> V1CustomResourceValidation -> Bool
$c== :: V1CustomResourceValidation -> V1CustomResourceValidation -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1CustomResourceValidation
instance A.FromJSON V1CustomResourceValidation where
  parseJSON :: Value -> Parser V1CustomResourceValidation
parseJSON = String
-> (Object -> Parser V1CustomResourceValidation)
-> Value
-> Parser V1CustomResourceValidation
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1CustomResourceValidation" ((Object -> Parser V1CustomResourceValidation)
 -> Value -> Parser V1CustomResourceValidation)
-> (Object -> Parser V1CustomResourceValidation)
-> Value
-> Parser V1CustomResourceValidation
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1JSONSchemaProps -> V1CustomResourceValidation
V1CustomResourceValidation
      (Maybe V1JSONSchemaProps -> V1CustomResourceValidation)
-> Parser (Maybe V1JSONSchemaProps)
-> Parser V1CustomResourceValidation
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1JSONSchemaProps)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"openAPIV3Schema")

-- | ToJSON V1CustomResourceValidation
instance A.ToJSON V1CustomResourceValidation where
  toJSON :: V1CustomResourceValidation -> Value
toJSON V1CustomResourceValidation {Maybe V1JSONSchemaProps
v1CustomResourceValidationOpenApiv3Schema :: Maybe V1JSONSchemaProps
v1CustomResourceValidationOpenApiv3Schema :: V1CustomResourceValidation -> Maybe V1JSONSchemaProps
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"openAPIV3Schema" Text -> Maybe V1JSONSchemaProps -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1JSONSchemaProps
v1CustomResourceValidationOpenApiv3Schema
      ]


-- | Construct a value of type 'V1CustomResourceValidation' (by applying it's required fields, if any)
mkV1CustomResourceValidation
  :: V1CustomResourceValidation
mkV1CustomResourceValidation :: V1CustomResourceValidation
mkV1CustomResourceValidation =
  V1CustomResourceValidation :: Maybe V1JSONSchemaProps -> V1CustomResourceValidation
V1CustomResourceValidation
  { v1CustomResourceValidationOpenApiv3Schema :: Maybe V1JSONSchemaProps
v1CustomResourceValidationOpenApiv3Schema = Maybe V1JSONSchemaProps
forall a. Maybe a
Nothing
  }

-- ** V1DaemonEndpoint
-- | V1DaemonEndpoint
-- DaemonEndpoint contains information about a single Daemon endpoint.
data V1DaemonEndpoint = V1DaemonEndpoint
  { V1DaemonEndpoint -> Int
v1DaemonEndpointPort :: !(Int) -- ^ /Required/ "Port" - Port number of the given endpoint.
  } deriving (Int -> V1DaemonEndpoint -> ShowS
[V1DaemonEndpoint] -> ShowS
V1DaemonEndpoint -> String
(Int -> V1DaemonEndpoint -> ShowS)
-> (V1DaemonEndpoint -> String)
-> ([V1DaemonEndpoint] -> ShowS)
-> Show V1DaemonEndpoint
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1DaemonEndpoint] -> ShowS
$cshowList :: [V1DaemonEndpoint] -> ShowS
show :: V1DaemonEndpoint -> String
$cshow :: V1DaemonEndpoint -> String
showsPrec :: Int -> V1DaemonEndpoint -> ShowS
$cshowsPrec :: Int -> V1DaemonEndpoint -> ShowS
P.Show, V1DaemonEndpoint -> V1DaemonEndpoint -> Bool
(V1DaemonEndpoint -> V1DaemonEndpoint -> Bool)
-> (V1DaemonEndpoint -> V1DaemonEndpoint -> Bool)
-> Eq V1DaemonEndpoint
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1DaemonEndpoint -> V1DaemonEndpoint -> Bool
$c/= :: V1DaemonEndpoint -> V1DaemonEndpoint -> Bool
== :: V1DaemonEndpoint -> V1DaemonEndpoint -> Bool
$c== :: V1DaemonEndpoint -> V1DaemonEndpoint -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1DaemonEndpoint
instance A.FromJSON V1DaemonEndpoint where
  parseJSON :: Value -> Parser V1DaemonEndpoint
parseJSON = String
-> (Object -> Parser V1DaemonEndpoint)
-> Value
-> Parser V1DaemonEndpoint
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1DaemonEndpoint" ((Object -> Parser V1DaemonEndpoint)
 -> Value -> Parser V1DaemonEndpoint)
-> (Object -> Parser V1DaemonEndpoint)
-> Value
-> Parser V1DaemonEndpoint
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Int -> V1DaemonEndpoint
V1DaemonEndpoint
      (Int -> V1DaemonEndpoint) -> Parser Int -> Parser V1DaemonEndpoint
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"Port")

-- | ToJSON V1DaemonEndpoint
instance A.ToJSON V1DaemonEndpoint where
  toJSON :: V1DaemonEndpoint -> Value
toJSON V1DaemonEndpoint {Int
v1DaemonEndpointPort :: Int
v1DaemonEndpointPort :: V1DaemonEndpoint -> Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"Port" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1DaemonEndpointPort
      ]


-- | Construct a value of type 'V1DaemonEndpoint' (by applying it's required fields, if any)
mkV1DaemonEndpoint
  :: Int -- ^ 'v1DaemonEndpointPort': Port number of the given endpoint.
  -> V1DaemonEndpoint
mkV1DaemonEndpoint :: Int -> V1DaemonEndpoint
mkV1DaemonEndpoint Int
v1DaemonEndpointPort =
  V1DaemonEndpoint :: Int -> V1DaemonEndpoint
V1DaemonEndpoint
  { Int
v1DaemonEndpointPort :: Int
v1DaemonEndpointPort :: Int
v1DaemonEndpointPort
  }

-- ** V1DaemonSet
-- | V1DaemonSet
-- DaemonSet represents the configuration of a daemon set.
data V1DaemonSet = V1DaemonSet
  { V1DaemonSet -> Maybe Text
v1DaemonSetApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1DaemonSet -> Maybe Text
v1DaemonSetKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1DaemonSet -> Maybe V1ObjectMeta
v1DaemonSetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1DaemonSet -> Maybe V1DaemonSetSpec
v1DaemonSetSpec :: !(Maybe V1DaemonSetSpec) -- ^ "spec"
  , V1DaemonSet -> Maybe V1DaemonSetStatus
v1DaemonSetStatus :: !(Maybe V1DaemonSetStatus) -- ^ "status"
  } deriving (Int -> V1DaemonSet -> ShowS
[V1DaemonSet] -> ShowS
V1DaemonSet -> String
(Int -> V1DaemonSet -> ShowS)
-> (V1DaemonSet -> String)
-> ([V1DaemonSet] -> ShowS)
-> Show V1DaemonSet
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1DaemonSet] -> ShowS
$cshowList :: [V1DaemonSet] -> ShowS
show :: V1DaemonSet -> String
$cshow :: V1DaemonSet -> String
showsPrec :: Int -> V1DaemonSet -> ShowS
$cshowsPrec :: Int -> V1DaemonSet -> ShowS
P.Show, V1DaemonSet -> V1DaemonSet -> Bool
(V1DaemonSet -> V1DaemonSet -> Bool)
-> (V1DaemonSet -> V1DaemonSet -> Bool) -> Eq V1DaemonSet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1DaemonSet -> V1DaemonSet -> Bool
$c/= :: V1DaemonSet -> V1DaemonSet -> Bool
== :: V1DaemonSet -> V1DaemonSet -> Bool
$c== :: V1DaemonSet -> V1DaemonSet -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1DaemonSet
instance A.FromJSON V1DaemonSet where
  parseJSON :: Value -> Parser V1DaemonSet
parseJSON = String
-> (Object -> Parser V1DaemonSet) -> Value -> Parser V1DaemonSet
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1DaemonSet" ((Object -> Parser V1DaemonSet) -> Value -> Parser V1DaemonSet)
-> (Object -> Parser V1DaemonSet) -> Value -> Parser V1DaemonSet
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1DaemonSetSpec
-> Maybe V1DaemonSetStatus
-> V1DaemonSet
V1DaemonSet
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1DaemonSetSpec
 -> Maybe V1DaemonSetStatus
 -> V1DaemonSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1DaemonSetSpec
      -> Maybe V1DaemonSetStatus
      -> V1DaemonSet)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1DaemonSetSpec
   -> Maybe V1DaemonSetStatus
   -> V1DaemonSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1DaemonSetSpec -> Maybe V1DaemonSetStatus -> V1DaemonSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1DaemonSetSpec -> Maybe V1DaemonSetStatus -> V1DaemonSet)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1DaemonSetSpec -> Maybe V1DaemonSetStatus -> V1DaemonSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1DaemonSetSpec -> Maybe V1DaemonSetStatus -> V1DaemonSet)
-> Parser (Maybe V1DaemonSetSpec)
-> Parser (Maybe V1DaemonSetStatus -> V1DaemonSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1DaemonSetSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1DaemonSetStatus -> V1DaemonSet)
-> Parser (Maybe V1DaemonSetStatus) -> Parser V1DaemonSet
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1DaemonSetStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1DaemonSet
instance A.ToJSON V1DaemonSet where
  toJSON :: V1DaemonSet -> Value
toJSON V1DaemonSet {Maybe Text
Maybe V1ObjectMeta
Maybe V1DaemonSetStatus
Maybe V1DaemonSetSpec
v1DaemonSetStatus :: Maybe V1DaemonSetStatus
v1DaemonSetSpec :: Maybe V1DaemonSetSpec
v1DaemonSetMetadata :: Maybe V1ObjectMeta
v1DaemonSetKind :: Maybe Text
v1DaemonSetApiVersion :: Maybe Text
v1DaemonSetStatus :: V1DaemonSet -> Maybe V1DaemonSetStatus
v1DaemonSetSpec :: V1DaemonSet -> Maybe V1DaemonSetSpec
v1DaemonSetMetadata :: V1DaemonSet -> Maybe V1ObjectMeta
v1DaemonSetKind :: V1DaemonSet -> Maybe Text
v1DaemonSetApiVersion :: V1DaemonSet -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DaemonSetApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DaemonSetKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1DaemonSetMetadata
      , Text
"spec" Text -> Maybe V1DaemonSetSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1DaemonSetSpec
v1DaemonSetSpec
      , Text
"status" Text -> Maybe V1DaemonSetStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1DaemonSetStatus
v1DaemonSetStatus
      ]


-- | Construct a value of type 'V1DaemonSet' (by applying it's required fields, if any)
mkV1DaemonSet
  :: V1DaemonSet
mkV1DaemonSet :: V1DaemonSet
mkV1DaemonSet =
  V1DaemonSet :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1DaemonSetSpec
-> Maybe V1DaemonSetStatus
-> V1DaemonSet
V1DaemonSet
  { v1DaemonSetApiVersion :: Maybe Text
v1DaemonSetApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1DaemonSetKind :: Maybe Text
v1DaemonSetKind = Maybe Text
forall a. Maybe a
Nothing
  , v1DaemonSetMetadata :: Maybe V1ObjectMeta
v1DaemonSetMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1DaemonSetSpec :: Maybe V1DaemonSetSpec
v1DaemonSetSpec = Maybe V1DaemonSetSpec
forall a. Maybe a
Nothing
  , v1DaemonSetStatus :: Maybe V1DaemonSetStatus
v1DaemonSetStatus = Maybe V1DaemonSetStatus
forall a. Maybe a
Nothing
  }

-- ** V1DaemonSetCondition
-- | V1DaemonSetCondition
-- DaemonSetCondition describes the state of a DaemonSet at a certain point.
data V1DaemonSetCondition = V1DaemonSetCondition
  { V1DaemonSetCondition -> Maybe DateTime
v1DaemonSetConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.
  , V1DaemonSetCondition -> Maybe Text
v1DaemonSetConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.
  , V1DaemonSetCondition -> Maybe Text
v1DaemonSetConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition&#39;s last transition.
  , V1DaemonSetCondition -> Text
v1DaemonSetConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , V1DaemonSetCondition -> Text
v1DaemonSetConditionType :: !(Text) -- ^ /Required/ "type" - Type of DaemonSet condition.
  } deriving (Int -> V1DaemonSetCondition -> ShowS
[V1DaemonSetCondition] -> ShowS
V1DaemonSetCondition -> String
(Int -> V1DaemonSetCondition -> ShowS)
-> (V1DaemonSetCondition -> String)
-> ([V1DaemonSetCondition] -> ShowS)
-> Show V1DaemonSetCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1DaemonSetCondition] -> ShowS
$cshowList :: [V1DaemonSetCondition] -> ShowS
show :: V1DaemonSetCondition -> String
$cshow :: V1DaemonSetCondition -> String
showsPrec :: Int -> V1DaemonSetCondition -> ShowS
$cshowsPrec :: Int -> V1DaemonSetCondition -> ShowS
P.Show, V1DaemonSetCondition -> V1DaemonSetCondition -> Bool
(V1DaemonSetCondition -> V1DaemonSetCondition -> Bool)
-> (V1DaemonSetCondition -> V1DaemonSetCondition -> Bool)
-> Eq V1DaemonSetCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1DaemonSetCondition -> V1DaemonSetCondition -> Bool
$c/= :: V1DaemonSetCondition -> V1DaemonSetCondition -> Bool
== :: V1DaemonSetCondition -> V1DaemonSetCondition -> Bool
$c== :: V1DaemonSetCondition -> V1DaemonSetCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1DaemonSetCondition
instance A.FromJSON V1DaemonSetCondition where
  parseJSON :: Value -> Parser V1DaemonSetCondition
parseJSON = String
-> (Object -> Parser V1DaemonSetCondition)
-> Value
-> Parser V1DaemonSetCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1DaemonSetCondition" ((Object -> Parser V1DaemonSetCondition)
 -> Value -> Parser V1DaemonSetCondition)
-> (Object -> Parser V1DaemonSetCondition)
-> Value
-> Parser V1DaemonSetCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text -> Maybe Text -> Text -> Text -> V1DaemonSetCondition
V1DaemonSetCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1DaemonSetCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text -> Maybe Text -> Text -> Text -> V1DaemonSetCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text -> Maybe Text -> Text -> Text -> V1DaemonSetCondition)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Text -> Text -> V1DaemonSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1DaemonSetCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1DaemonSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1DaemonSetCondition)
-> Parser Text -> Parser (Text -> V1DaemonSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1DaemonSetCondition)
-> Parser Text -> Parser V1DaemonSetCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1DaemonSetCondition
instance A.ToJSON V1DaemonSetCondition where
  toJSON :: V1DaemonSetCondition -> Value
toJSON V1DaemonSetCondition {Maybe Text
Maybe DateTime
Text
v1DaemonSetConditionType :: Text
v1DaemonSetConditionStatus :: Text
v1DaemonSetConditionReason :: Maybe Text
v1DaemonSetConditionMessage :: Maybe Text
v1DaemonSetConditionLastTransitionTime :: Maybe DateTime
v1DaemonSetConditionType :: V1DaemonSetCondition -> Text
v1DaemonSetConditionStatus :: V1DaemonSetCondition -> Text
v1DaemonSetConditionReason :: V1DaemonSetCondition -> Maybe Text
v1DaemonSetConditionMessage :: V1DaemonSetCondition -> Maybe Text
v1DaemonSetConditionLastTransitionTime :: V1DaemonSetCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1DaemonSetConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DaemonSetConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DaemonSetConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1DaemonSetConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1DaemonSetConditionType
      ]


-- | Construct a value of type 'V1DaemonSetCondition' (by applying it's required fields, if any)
mkV1DaemonSetCondition
  :: Text -- ^ 'v1DaemonSetConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'v1DaemonSetConditionType': Type of DaemonSet condition.
  -> V1DaemonSetCondition
mkV1DaemonSetCondition :: Text -> Text -> V1DaemonSetCondition
mkV1DaemonSetCondition Text
v1DaemonSetConditionStatus Text
v1DaemonSetConditionType =
  V1DaemonSetCondition :: Maybe DateTime
-> Maybe Text -> Maybe Text -> Text -> Text -> V1DaemonSetCondition
V1DaemonSetCondition
  { v1DaemonSetConditionLastTransitionTime :: Maybe DateTime
v1DaemonSetConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1DaemonSetConditionMessage :: Maybe Text
v1DaemonSetConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1DaemonSetConditionReason :: Maybe Text
v1DaemonSetConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1DaemonSetConditionStatus :: Text
v1DaemonSetConditionStatus :: Text
v1DaemonSetConditionStatus
  , Text
v1DaemonSetConditionType :: Text
v1DaemonSetConditionType :: Text
v1DaemonSetConditionType
  }

-- ** V1DaemonSetList
-- | V1DaemonSetList
-- DaemonSetList is a collection of daemon sets.
data V1DaemonSetList = V1DaemonSetList
  { V1DaemonSetList -> Maybe Text
v1DaemonSetListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1DaemonSetList -> [V1DaemonSet]
v1DaemonSetListItems :: !([V1DaemonSet]) -- ^ /Required/ "items" - A list of daemon sets.
  , V1DaemonSetList -> Maybe Text
v1DaemonSetListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1DaemonSetList -> Maybe V1ListMeta
v1DaemonSetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1DaemonSetList -> ShowS
[V1DaemonSetList] -> ShowS
V1DaemonSetList -> String
(Int -> V1DaemonSetList -> ShowS)
-> (V1DaemonSetList -> String)
-> ([V1DaemonSetList] -> ShowS)
-> Show V1DaemonSetList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1DaemonSetList] -> ShowS
$cshowList :: [V1DaemonSetList] -> ShowS
show :: V1DaemonSetList -> String
$cshow :: V1DaemonSetList -> String
showsPrec :: Int -> V1DaemonSetList -> ShowS
$cshowsPrec :: Int -> V1DaemonSetList -> ShowS
P.Show, V1DaemonSetList -> V1DaemonSetList -> Bool
(V1DaemonSetList -> V1DaemonSetList -> Bool)
-> (V1DaemonSetList -> V1DaemonSetList -> Bool)
-> Eq V1DaemonSetList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1DaemonSetList -> V1DaemonSetList -> Bool
$c/= :: V1DaemonSetList -> V1DaemonSetList -> Bool
== :: V1DaemonSetList -> V1DaemonSetList -> Bool
$c== :: V1DaemonSetList -> V1DaemonSetList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1DaemonSetList
instance A.FromJSON V1DaemonSetList where
  parseJSON :: Value -> Parser V1DaemonSetList
parseJSON = String
-> (Object -> Parser V1DaemonSetList)
-> Value
-> Parser V1DaemonSetList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1DaemonSetList" ((Object -> Parser V1DaemonSetList)
 -> Value -> Parser V1DaemonSetList)
-> (Object -> Parser V1DaemonSetList)
-> Value
-> Parser V1DaemonSetList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1DaemonSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1DaemonSetList
V1DaemonSetList
      (Maybe Text
 -> [V1DaemonSet]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1DaemonSetList)
-> Parser (Maybe Text)
-> Parser
     ([V1DaemonSet]
      -> Maybe Text -> Maybe V1ListMeta -> V1DaemonSetList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1DaemonSet]
   -> Maybe Text -> Maybe V1ListMeta -> V1DaemonSetList)
-> Parser [V1DaemonSet]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1DaemonSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1DaemonSet]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1DaemonSetList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1DaemonSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1DaemonSetList)
-> Parser (Maybe V1ListMeta) -> Parser V1DaemonSetList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1DaemonSetList
instance A.ToJSON V1DaemonSetList where
  toJSON :: V1DaemonSetList -> Value
toJSON V1DaemonSetList {[V1DaemonSet]
Maybe Text
Maybe V1ListMeta
v1DaemonSetListMetadata :: Maybe V1ListMeta
v1DaemonSetListKind :: Maybe Text
v1DaemonSetListItems :: [V1DaemonSet]
v1DaemonSetListApiVersion :: Maybe Text
v1DaemonSetListMetadata :: V1DaemonSetList -> Maybe V1ListMeta
v1DaemonSetListKind :: V1DaemonSetList -> Maybe Text
v1DaemonSetListItems :: V1DaemonSetList -> [V1DaemonSet]
v1DaemonSetListApiVersion :: V1DaemonSetList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DaemonSetListApiVersion
      , Text
"items" Text -> [V1DaemonSet] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1DaemonSet]
v1DaemonSetListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DaemonSetListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1DaemonSetListMetadata
      ]


-- | Construct a value of type 'V1DaemonSetList' (by applying it's required fields, if any)
mkV1DaemonSetList
  :: [V1DaemonSet] -- ^ 'v1DaemonSetListItems': A list of daemon sets.
  -> V1DaemonSetList
mkV1DaemonSetList :: [V1DaemonSet] -> V1DaemonSetList
mkV1DaemonSetList [V1DaemonSet]
v1DaemonSetListItems =
  V1DaemonSetList :: Maybe Text
-> [V1DaemonSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1DaemonSetList
V1DaemonSetList
  { v1DaemonSetListApiVersion :: Maybe Text
v1DaemonSetListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1DaemonSet]
v1DaemonSetListItems :: [V1DaemonSet]
v1DaemonSetListItems :: [V1DaemonSet]
v1DaemonSetListItems
  , v1DaemonSetListKind :: Maybe Text
v1DaemonSetListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1DaemonSetListMetadata :: Maybe V1ListMeta
v1DaemonSetListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1DaemonSetSpec
-- | V1DaemonSetSpec
-- DaemonSetSpec is the specification of a daemon set.
data V1DaemonSetSpec = V1DaemonSetSpec
  { V1DaemonSetSpec -> Maybe Int
v1DaemonSetSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
  , V1DaemonSetSpec -> Maybe Int
v1DaemonSetSpecRevisionHistoryLimit :: !(Maybe Int) -- ^ "revisionHistoryLimit" - The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.
  , V1DaemonSetSpec -> V1LabelSelector
v1DaemonSetSpecSelector :: !(V1LabelSelector) -- ^ /Required/ "selector"
  , V1DaemonSetSpec -> V1PodTemplateSpec
v1DaemonSetSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"
  , V1DaemonSetSpec -> Maybe V1DaemonSetUpdateStrategy
v1DaemonSetSpecUpdateStrategy :: !(Maybe V1DaemonSetUpdateStrategy) -- ^ "updateStrategy"
  } deriving (Int -> V1DaemonSetSpec -> ShowS
[V1DaemonSetSpec] -> ShowS
V1DaemonSetSpec -> String
(Int -> V1DaemonSetSpec -> ShowS)
-> (V1DaemonSetSpec -> String)
-> ([V1DaemonSetSpec] -> ShowS)
-> Show V1DaemonSetSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1DaemonSetSpec] -> ShowS
$cshowList :: [V1DaemonSetSpec] -> ShowS
show :: V1DaemonSetSpec -> String
$cshow :: V1DaemonSetSpec -> String
showsPrec :: Int -> V1DaemonSetSpec -> ShowS
$cshowsPrec :: Int -> V1DaemonSetSpec -> ShowS
P.Show, V1DaemonSetSpec -> V1DaemonSetSpec -> Bool
(V1DaemonSetSpec -> V1DaemonSetSpec -> Bool)
-> (V1DaemonSetSpec -> V1DaemonSetSpec -> Bool)
-> Eq V1DaemonSetSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1DaemonSetSpec -> V1DaemonSetSpec -> Bool
$c/= :: V1DaemonSetSpec -> V1DaemonSetSpec -> Bool
== :: V1DaemonSetSpec -> V1DaemonSetSpec -> Bool
$c== :: V1DaemonSetSpec -> V1DaemonSetSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1DaemonSetSpec
instance A.FromJSON V1DaemonSetSpec where
  parseJSON :: Value -> Parser V1DaemonSetSpec
parseJSON = String
-> (Object -> Parser V1DaemonSetSpec)
-> Value
-> Parser V1DaemonSetSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1DaemonSetSpec" ((Object -> Parser V1DaemonSetSpec)
 -> Value -> Parser V1DaemonSetSpec)
-> (Object -> Parser V1DaemonSetSpec)
-> Value
-> Parser V1DaemonSetSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Int
-> V1LabelSelector
-> V1PodTemplateSpec
-> Maybe V1DaemonSetUpdateStrategy
-> V1DaemonSetSpec
V1DaemonSetSpec
      (Maybe Int
 -> Maybe Int
 -> V1LabelSelector
 -> V1PodTemplateSpec
 -> Maybe V1DaemonSetUpdateStrategy
 -> V1DaemonSetSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> V1LabelSelector
      -> V1PodTemplateSpec
      -> Maybe V1DaemonSetUpdateStrategy
      -> V1DaemonSetSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minReadySeconds")
      Parser
  (Maybe Int
   -> V1LabelSelector
   -> V1PodTemplateSpec
   -> Maybe V1DaemonSetUpdateStrategy
   -> V1DaemonSetSpec)
-> Parser (Maybe Int)
-> Parser
     (V1LabelSelector
      -> V1PodTemplateSpec
      -> Maybe V1DaemonSetUpdateStrategy
      -> V1DaemonSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"revisionHistoryLimit")
      Parser
  (V1LabelSelector
   -> V1PodTemplateSpec
   -> Maybe V1DaemonSetUpdateStrategy
   -> V1DaemonSetSpec)
-> Parser V1LabelSelector
-> Parser
     (V1PodTemplateSpec
      -> Maybe V1DaemonSetUpdateStrategy -> V1DaemonSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1LabelSelector
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"selector")
      Parser
  (V1PodTemplateSpec
   -> Maybe V1DaemonSetUpdateStrategy -> V1DaemonSetSpec)
-> Parser V1PodTemplateSpec
-> Parser (Maybe V1DaemonSetUpdateStrategy -> V1DaemonSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1PodTemplateSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"template")
      Parser (Maybe V1DaemonSetUpdateStrategy -> V1DaemonSetSpec)
-> Parser (Maybe V1DaemonSetUpdateStrategy)
-> Parser V1DaemonSetSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1DaemonSetUpdateStrategy)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updateStrategy")

-- | ToJSON V1DaemonSetSpec
instance A.ToJSON V1DaemonSetSpec where
  toJSON :: V1DaemonSetSpec -> Value
toJSON V1DaemonSetSpec {Maybe Int
Maybe V1DaemonSetUpdateStrategy
V1PodTemplateSpec
V1LabelSelector
v1DaemonSetSpecUpdateStrategy :: Maybe V1DaemonSetUpdateStrategy
v1DaemonSetSpecTemplate :: V1PodTemplateSpec
v1DaemonSetSpecSelector :: V1LabelSelector
v1DaemonSetSpecRevisionHistoryLimit :: Maybe Int
v1DaemonSetSpecMinReadySeconds :: Maybe Int
v1DaemonSetSpecUpdateStrategy :: V1DaemonSetSpec -> Maybe V1DaemonSetUpdateStrategy
v1DaemonSetSpecTemplate :: V1DaemonSetSpec -> V1PodTemplateSpec
v1DaemonSetSpecSelector :: V1DaemonSetSpec -> V1LabelSelector
v1DaemonSetSpecRevisionHistoryLimit :: V1DaemonSetSpec -> Maybe Int
v1DaemonSetSpecMinReadySeconds :: V1DaemonSetSpec -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"minReadySeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DaemonSetSpecMinReadySeconds
      , Text
"revisionHistoryLimit" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DaemonSetSpecRevisionHistoryLimit
      , Text
"selector" Text -> V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1LabelSelector
v1DaemonSetSpecSelector
      , Text
"template" Text -> V1PodTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1PodTemplateSpec
v1DaemonSetSpecTemplate
      , Text
"updateStrategy" Text -> Maybe V1DaemonSetUpdateStrategy -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1DaemonSetUpdateStrategy
v1DaemonSetSpecUpdateStrategy
      ]


-- | Construct a value of type 'V1DaemonSetSpec' (by applying it's required fields, if any)
mkV1DaemonSetSpec
  :: V1LabelSelector -- ^ 'v1DaemonSetSpecSelector' 
  -> V1PodTemplateSpec -- ^ 'v1DaemonSetSpecTemplate' 
  -> V1DaemonSetSpec
mkV1DaemonSetSpec :: V1LabelSelector -> V1PodTemplateSpec -> V1DaemonSetSpec
mkV1DaemonSetSpec V1LabelSelector
v1DaemonSetSpecSelector V1PodTemplateSpec
v1DaemonSetSpecTemplate =
  V1DaemonSetSpec :: Maybe Int
-> Maybe Int
-> V1LabelSelector
-> V1PodTemplateSpec
-> Maybe V1DaemonSetUpdateStrategy
-> V1DaemonSetSpec
V1DaemonSetSpec
  { v1DaemonSetSpecMinReadySeconds :: Maybe Int
v1DaemonSetSpecMinReadySeconds = Maybe Int
forall a. Maybe a
Nothing
  , v1DaemonSetSpecRevisionHistoryLimit :: Maybe Int
v1DaemonSetSpecRevisionHistoryLimit = Maybe Int
forall a. Maybe a
Nothing
  , V1LabelSelector
v1DaemonSetSpecSelector :: V1LabelSelector
v1DaemonSetSpecSelector :: V1LabelSelector
v1DaemonSetSpecSelector
  , V1PodTemplateSpec
v1DaemonSetSpecTemplate :: V1PodTemplateSpec
v1DaemonSetSpecTemplate :: V1PodTemplateSpec
v1DaemonSetSpecTemplate
  , v1DaemonSetSpecUpdateStrategy :: Maybe V1DaemonSetUpdateStrategy
v1DaemonSetSpecUpdateStrategy = Maybe V1DaemonSetUpdateStrategy
forall a. Maybe a
Nothing
  }

-- ** V1DaemonSetStatus
-- | V1DaemonSetStatus
-- DaemonSetStatus represents the current status of a daemon set.
data V1DaemonSetStatus = V1DaemonSetStatus
  { V1DaemonSetStatus -> Maybe Int
v1DaemonSetStatusCollisionCount :: !(Maybe Int) -- ^ "collisionCount" - Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.
  , V1DaemonSetStatus -> Maybe [V1DaemonSetCondition]
v1DaemonSetStatusConditions :: !(Maybe [V1DaemonSetCondition]) -- ^ "conditions" - Represents the latest available observations of a DaemonSet&#39;s current state.
  , V1DaemonSetStatus -> Int
v1DaemonSetStatusCurrentNumberScheduled :: !(Int) -- ^ /Required/ "currentNumberScheduled" - The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  , V1DaemonSetStatus -> Int
v1DaemonSetStatusDesiredNumberScheduled :: !(Int) -- ^ /Required/ "desiredNumberScheduled" - The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  , V1DaemonSetStatus -> Maybe Int
v1DaemonSetStatusNumberAvailable :: !(Maybe Int) -- ^ "numberAvailable" - The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)
  , V1DaemonSetStatus -> Int
v1DaemonSetStatusNumberMisscheduled :: !(Int) -- ^ /Required/ "numberMisscheduled" - The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  , V1DaemonSetStatus -> Int
v1DaemonSetStatusNumberReady :: !(Int) -- ^ /Required/ "numberReady" - The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.
  , V1DaemonSetStatus -> Maybe Int
v1DaemonSetStatusNumberUnavailable :: !(Maybe Int) -- ^ "numberUnavailable" - The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)
  , V1DaemonSetStatus -> Maybe Integer
v1DaemonSetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - The most recent generation observed by the daemon set controller.
  , V1DaemonSetStatus -> Maybe Int
v1DaemonSetStatusUpdatedNumberScheduled :: !(Maybe Int) -- ^ "updatedNumberScheduled" - The total number of nodes that are running updated daemon pod
  } deriving (Int -> V1DaemonSetStatus -> ShowS
[V1DaemonSetStatus] -> ShowS
V1DaemonSetStatus -> String
(Int -> V1DaemonSetStatus -> ShowS)
-> (V1DaemonSetStatus -> String)
-> ([V1DaemonSetStatus] -> ShowS)
-> Show V1DaemonSetStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1DaemonSetStatus] -> ShowS
$cshowList :: [V1DaemonSetStatus] -> ShowS
show :: V1DaemonSetStatus -> String
$cshow :: V1DaemonSetStatus -> String
showsPrec :: Int -> V1DaemonSetStatus -> ShowS
$cshowsPrec :: Int -> V1DaemonSetStatus -> ShowS
P.Show, V1DaemonSetStatus -> V1DaemonSetStatus -> Bool
(V1DaemonSetStatus -> V1DaemonSetStatus -> Bool)
-> (V1DaemonSetStatus -> V1DaemonSetStatus -> Bool)
-> Eq V1DaemonSetStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1DaemonSetStatus -> V1DaemonSetStatus -> Bool
$c/= :: V1DaemonSetStatus -> V1DaemonSetStatus -> Bool
== :: V1DaemonSetStatus -> V1DaemonSetStatus -> Bool
$c== :: V1DaemonSetStatus -> V1DaemonSetStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1DaemonSetStatus
instance A.FromJSON V1DaemonSetStatus where
  parseJSON :: Value -> Parser V1DaemonSetStatus
parseJSON = String
-> (Object -> Parser V1DaemonSetStatus)
-> Value
-> Parser V1DaemonSetStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1DaemonSetStatus" ((Object -> Parser V1DaemonSetStatus)
 -> Value -> Parser V1DaemonSetStatus)
-> (Object -> Parser V1DaemonSetStatus)
-> Value
-> Parser V1DaemonSetStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe [V1DaemonSetCondition]
-> Int
-> Int
-> Maybe Int
-> Int
-> Int
-> Maybe Int
-> Maybe Integer
-> Maybe Int
-> V1DaemonSetStatus
V1DaemonSetStatus
      (Maybe Int
 -> Maybe [V1DaemonSetCondition]
 -> Int
 -> Int
 -> Maybe Int
 -> Int
 -> Int
 -> Maybe Int
 -> Maybe Integer
 -> Maybe Int
 -> V1DaemonSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe [V1DaemonSetCondition]
      -> Int
      -> Int
      -> Maybe Int
      -> Int
      -> Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1DaemonSetStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"collisionCount")
      Parser
  (Maybe [V1DaemonSetCondition]
   -> Int
   -> Int
   -> Maybe Int
   -> Int
   -> Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1DaemonSetStatus)
-> Parser (Maybe [V1DaemonSetCondition])
-> Parser
     (Int
      -> Int
      -> Maybe Int
      -> Int
      -> Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1DaemonSetCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Int
   -> Int
   -> Maybe Int
   -> Int
   -> Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1DaemonSetStatus)
-> Parser Int
-> Parser
     (Int
      -> Maybe Int
      -> Int
      -> Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"currentNumberScheduled")
      Parser
  (Int
   -> Maybe Int
   -> Int
   -> Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1DaemonSetStatus)
-> Parser Int
-> Parser
     (Maybe Int
      -> Int
      -> Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"desiredNumberScheduled")
      Parser
  (Maybe Int
   -> Int
   -> Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1DaemonSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Int
      -> Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"numberAvailable")
      Parser
  (Int
   -> Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1DaemonSetStatus)
-> Parser Int
-> Parser
     (Int
      -> Maybe Int -> Maybe Integer -> Maybe Int -> V1DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"numberMisscheduled")
      Parser
  (Int
   -> Maybe Int -> Maybe Integer -> Maybe Int -> V1DaemonSetStatus)
-> Parser Int
-> Parser
     (Maybe Int -> Maybe Integer -> Maybe Int -> V1DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"numberReady")
      Parser
  (Maybe Int -> Maybe Integer -> Maybe Int -> V1DaemonSetStatus)
-> Parser (Maybe Int)
-> Parser (Maybe Integer -> Maybe Int -> V1DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"numberUnavailable")
      Parser (Maybe Integer -> Maybe Int -> V1DaemonSetStatus)
-> Parser (Maybe Integer)
-> Parser (Maybe Int -> V1DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")
      Parser (Maybe Int -> V1DaemonSetStatus)
-> Parser (Maybe Int) -> Parser V1DaemonSetStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updatedNumberScheduled")

-- | ToJSON V1DaemonSetStatus
instance A.ToJSON V1DaemonSetStatus where
  toJSON :: V1DaemonSetStatus -> Value
toJSON V1DaemonSetStatus {Int
Maybe Int
Maybe Integer
Maybe [V1DaemonSetCondition]
v1DaemonSetStatusUpdatedNumberScheduled :: Maybe Int
v1DaemonSetStatusObservedGeneration :: Maybe Integer
v1DaemonSetStatusNumberUnavailable :: Maybe Int
v1DaemonSetStatusNumberReady :: Int
v1DaemonSetStatusNumberMisscheduled :: Int
v1DaemonSetStatusNumberAvailable :: Maybe Int
v1DaemonSetStatusDesiredNumberScheduled :: Int
v1DaemonSetStatusCurrentNumberScheduled :: Int
v1DaemonSetStatusConditions :: Maybe [V1DaemonSetCondition]
v1DaemonSetStatusCollisionCount :: Maybe Int
v1DaemonSetStatusUpdatedNumberScheduled :: V1DaemonSetStatus -> Maybe Int
v1DaemonSetStatusObservedGeneration :: V1DaemonSetStatus -> Maybe Integer
v1DaemonSetStatusNumberUnavailable :: V1DaemonSetStatus -> Maybe Int
v1DaemonSetStatusNumberReady :: V1DaemonSetStatus -> Int
v1DaemonSetStatusNumberMisscheduled :: V1DaemonSetStatus -> Int
v1DaemonSetStatusNumberAvailable :: V1DaemonSetStatus -> Maybe Int
v1DaemonSetStatusDesiredNumberScheduled :: V1DaemonSetStatus -> Int
v1DaemonSetStatusCurrentNumberScheduled :: V1DaemonSetStatus -> Int
v1DaemonSetStatusConditions :: V1DaemonSetStatus -> Maybe [V1DaemonSetCondition]
v1DaemonSetStatusCollisionCount :: V1DaemonSetStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"collisionCount" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DaemonSetStatusCollisionCount
      , Text
"conditions" Text -> Maybe [V1DaemonSetCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1DaemonSetCondition]
v1DaemonSetStatusConditions
      , Text
"currentNumberScheduled" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1DaemonSetStatusCurrentNumberScheduled
      , Text
"desiredNumberScheduled" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1DaemonSetStatusDesiredNumberScheduled
      , Text
"numberAvailable" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DaemonSetStatusNumberAvailable
      , Text
"numberMisscheduled" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1DaemonSetStatusNumberMisscheduled
      , Text
"numberReady" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1DaemonSetStatusNumberReady
      , Text
"numberUnavailable" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DaemonSetStatusNumberUnavailable
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1DaemonSetStatusObservedGeneration
      , Text
"updatedNumberScheduled" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DaemonSetStatusUpdatedNumberScheduled
      ]


-- | Construct a value of type 'V1DaemonSetStatus' (by applying it's required fields, if any)
mkV1DaemonSetStatus
  :: Int -- ^ 'v1DaemonSetStatusCurrentNumberScheduled': The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  -> Int -- ^ 'v1DaemonSetStatusDesiredNumberScheduled': The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  -> Int -- ^ 'v1DaemonSetStatusNumberMisscheduled': The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  -> Int -- ^ 'v1DaemonSetStatusNumberReady': The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.
  -> V1DaemonSetStatus
mkV1DaemonSetStatus :: Int -> Int -> Int -> Int -> V1DaemonSetStatus
mkV1DaemonSetStatus Int
v1DaemonSetStatusCurrentNumberScheduled Int
v1DaemonSetStatusDesiredNumberScheduled Int
v1DaemonSetStatusNumberMisscheduled Int
v1DaemonSetStatusNumberReady =
  V1DaemonSetStatus :: Maybe Int
-> Maybe [V1DaemonSetCondition]
-> Int
-> Int
-> Maybe Int
-> Int
-> Int
-> Maybe Int
-> Maybe Integer
-> Maybe Int
-> V1DaemonSetStatus
V1DaemonSetStatus
  { v1DaemonSetStatusCollisionCount :: Maybe Int
v1DaemonSetStatusCollisionCount = Maybe Int
forall a. Maybe a
Nothing
  , v1DaemonSetStatusConditions :: Maybe [V1DaemonSetCondition]
v1DaemonSetStatusConditions = Maybe [V1DaemonSetCondition]
forall a. Maybe a
Nothing
  , Int
v1DaemonSetStatusCurrentNumberScheduled :: Int
v1DaemonSetStatusCurrentNumberScheduled :: Int
v1DaemonSetStatusCurrentNumberScheduled
  , Int
v1DaemonSetStatusDesiredNumberScheduled :: Int
v1DaemonSetStatusDesiredNumberScheduled :: Int
v1DaemonSetStatusDesiredNumberScheduled
  , v1DaemonSetStatusNumberAvailable :: Maybe Int
v1DaemonSetStatusNumberAvailable = Maybe Int
forall a. Maybe a
Nothing
  , Int
v1DaemonSetStatusNumberMisscheduled :: Int
v1DaemonSetStatusNumberMisscheduled :: Int
v1DaemonSetStatusNumberMisscheduled
  , Int
v1DaemonSetStatusNumberReady :: Int
v1DaemonSetStatusNumberReady :: Int
v1DaemonSetStatusNumberReady
  , v1DaemonSetStatusNumberUnavailable :: Maybe Int
v1DaemonSetStatusNumberUnavailable = Maybe Int
forall a. Maybe a
Nothing
  , v1DaemonSetStatusObservedGeneration :: Maybe Integer
v1DaemonSetStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  , v1DaemonSetStatusUpdatedNumberScheduled :: Maybe Int
v1DaemonSetStatusUpdatedNumberScheduled = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1DaemonSetUpdateStrategy
-- | V1DaemonSetUpdateStrategy
-- DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.
data V1DaemonSetUpdateStrategy = V1DaemonSetUpdateStrategy
  { V1DaemonSetUpdateStrategy -> Maybe V1RollingUpdateDaemonSet
v1DaemonSetUpdateStrategyRollingUpdate :: !(Maybe V1RollingUpdateDaemonSet) -- ^ "rollingUpdate"
  , V1DaemonSetUpdateStrategy -> Maybe Text
v1DaemonSetUpdateStrategyType :: !(Maybe Text) -- ^ "type" - Type of daemon set update. Can be \&quot;RollingUpdate\&quot; or \&quot;OnDelete\&quot;. Default is RollingUpdate.
  } deriving (Int -> V1DaemonSetUpdateStrategy -> ShowS
[V1DaemonSetUpdateStrategy] -> ShowS
V1DaemonSetUpdateStrategy -> String
(Int -> V1DaemonSetUpdateStrategy -> ShowS)
-> (V1DaemonSetUpdateStrategy -> String)
-> ([V1DaemonSetUpdateStrategy] -> ShowS)
-> Show V1DaemonSetUpdateStrategy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1DaemonSetUpdateStrategy] -> ShowS
$cshowList :: [V1DaemonSetUpdateStrategy] -> ShowS
show :: V1DaemonSetUpdateStrategy -> String
$cshow :: V1DaemonSetUpdateStrategy -> String
showsPrec :: Int -> V1DaemonSetUpdateStrategy -> ShowS
$cshowsPrec :: Int -> V1DaemonSetUpdateStrategy -> ShowS
P.Show, V1DaemonSetUpdateStrategy -> V1DaemonSetUpdateStrategy -> Bool
(V1DaemonSetUpdateStrategy -> V1DaemonSetUpdateStrategy -> Bool)
-> (V1DaemonSetUpdateStrategy -> V1DaemonSetUpdateStrategy -> Bool)
-> Eq V1DaemonSetUpdateStrategy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1DaemonSetUpdateStrategy -> V1DaemonSetUpdateStrategy -> Bool
$c/= :: V1DaemonSetUpdateStrategy -> V1DaemonSetUpdateStrategy -> Bool
== :: V1DaemonSetUpdateStrategy -> V1DaemonSetUpdateStrategy -> Bool
$c== :: V1DaemonSetUpdateStrategy -> V1DaemonSetUpdateStrategy -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1DaemonSetUpdateStrategy
instance A.FromJSON V1DaemonSetUpdateStrategy where
  parseJSON :: Value -> Parser V1DaemonSetUpdateStrategy
parseJSON = String
-> (Object -> Parser V1DaemonSetUpdateStrategy)
-> Value
-> Parser V1DaemonSetUpdateStrategy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1DaemonSetUpdateStrategy" ((Object -> Parser V1DaemonSetUpdateStrategy)
 -> Value -> Parser V1DaemonSetUpdateStrategy)
-> (Object -> Parser V1DaemonSetUpdateStrategy)
-> Value
-> Parser V1DaemonSetUpdateStrategy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1RollingUpdateDaemonSet
-> Maybe Text -> V1DaemonSetUpdateStrategy
V1DaemonSetUpdateStrategy
      (Maybe V1RollingUpdateDaemonSet
 -> Maybe Text -> V1DaemonSetUpdateStrategy)
-> Parser (Maybe V1RollingUpdateDaemonSet)
-> Parser (Maybe Text -> V1DaemonSetUpdateStrategy)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1RollingUpdateDaemonSet)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rollingUpdate")
      Parser (Maybe Text -> V1DaemonSetUpdateStrategy)
-> Parser (Maybe Text) -> Parser V1DaemonSetUpdateStrategy
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")

-- | ToJSON V1DaemonSetUpdateStrategy
instance A.ToJSON V1DaemonSetUpdateStrategy where
  toJSON :: V1DaemonSetUpdateStrategy -> Value
toJSON V1DaemonSetUpdateStrategy {Maybe Text
Maybe V1RollingUpdateDaemonSet
v1DaemonSetUpdateStrategyType :: Maybe Text
v1DaemonSetUpdateStrategyRollingUpdate :: Maybe V1RollingUpdateDaemonSet
v1DaemonSetUpdateStrategyType :: V1DaemonSetUpdateStrategy -> Maybe Text
v1DaemonSetUpdateStrategyRollingUpdate :: V1DaemonSetUpdateStrategy -> Maybe V1RollingUpdateDaemonSet
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"rollingUpdate" Text -> Maybe V1RollingUpdateDaemonSet -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1RollingUpdateDaemonSet
v1DaemonSetUpdateStrategyRollingUpdate
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DaemonSetUpdateStrategyType
      ]


-- | Construct a value of type 'V1DaemonSetUpdateStrategy' (by applying it's required fields, if any)
mkV1DaemonSetUpdateStrategy
  :: V1DaemonSetUpdateStrategy
mkV1DaemonSetUpdateStrategy :: V1DaemonSetUpdateStrategy
mkV1DaemonSetUpdateStrategy =
  V1DaemonSetUpdateStrategy :: Maybe V1RollingUpdateDaemonSet
-> Maybe Text -> V1DaemonSetUpdateStrategy
V1DaemonSetUpdateStrategy
  { v1DaemonSetUpdateStrategyRollingUpdate :: Maybe V1RollingUpdateDaemonSet
v1DaemonSetUpdateStrategyRollingUpdate = Maybe V1RollingUpdateDaemonSet
forall a. Maybe a
Nothing
  , v1DaemonSetUpdateStrategyType :: Maybe Text
v1DaemonSetUpdateStrategyType = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1DeleteOptions
-- | V1DeleteOptions
-- DeleteOptions may be provided when deleting an API object.
data V1DeleteOptions = V1DeleteOptions
  { V1DeleteOptions -> Maybe Text
v1DeleteOptionsApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1DeleteOptions -> Maybe [Text]
v1DeleteOptionsDryRun :: !(Maybe [Text]) -- ^ "dryRun" - When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
  , V1DeleteOptions -> Maybe Integer
v1DeleteOptionsGracePeriodSeconds :: !(Maybe Integer) -- ^ "gracePeriodSeconds" - The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.
  , V1DeleteOptions -> Maybe Text
v1DeleteOptionsKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1DeleteOptions -> Maybe Bool
v1DeleteOptionsOrphanDependents :: !(Maybe Bool) -- ^ "orphanDependents" - Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \&quot;orphan\&quot; finalizer will be added to/removed from the object&#39;s finalizers list. Either this field or PropagationPolicy may be set, but not both.
  , V1DeleteOptions -> Maybe V1Preconditions
v1DeleteOptionsPreconditions :: !(Maybe V1Preconditions) -- ^ "preconditions"
  , V1DeleteOptions -> Maybe Text
v1DeleteOptionsPropagationPolicy :: !(Maybe Text) -- ^ "propagationPolicy" - Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: &#39;Orphan&#39; - orphan the dependents; &#39;Background&#39; - allow the garbage collector to delete the dependents in the background; &#39;Foreground&#39; - a cascading policy that deletes all dependents in the foreground.
  } deriving (Int -> V1DeleteOptions -> ShowS
[V1DeleteOptions] -> ShowS
V1DeleteOptions -> String
(Int -> V1DeleteOptions -> ShowS)
-> (V1DeleteOptions -> String)
-> ([V1DeleteOptions] -> ShowS)
-> Show V1DeleteOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1DeleteOptions] -> ShowS
$cshowList :: [V1DeleteOptions] -> ShowS
show :: V1DeleteOptions -> String
$cshow :: V1DeleteOptions -> String
showsPrec :: Int -> V1DeleteOptions -> ShowS
$cshowsPrec :: Int -> V1DeleteOptions -> ShowS
P.Show, V1DeleteOptions -> V1DeleteOptions -> Bool
(V1DeleteOptions -> V1DeleteOptions -> Bool)
-> (V1DeleteOptions -> V1DeleteOptions -> Bool)
-> Eq V1DeleteOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1DeleteOptions -> V1DeleteOptions -> Bool
$c/= :: V1DeleteOptions -> V1DeleteOptions -> Bool
== :: V1DeleteOptions -> V1DeleteOptions -> Bool
$c== :: V1DeleteOptions -> V1DeleteOptions -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1DeleteOptions
instance A.FromJSON V1DeleteOptions where
  parseJSON :: Value -> Parser V1DeleteOptions
parseJSON = String
-> (Object -> Parser V1DeleteOptions)
-> Value
-> Parser V1DeleteOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1DeleteOptions" ((Object -> Parser V1DeleteOptions)
 -> Value -> Parser V1DeleteOptions)
-> (Object -> Parser V1DeleteOptions)
-> Value
-> Parser V1DeleteOptions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe [Text]
-> Maybe Integer
-> Maybe Text
-> Maybe Bool
-> Maybe V1Preconditions
-> Maybe Text
-> V1DeleteOptions
V1DeleteOptions
      (Maybe Text
 -> Maybe [Text]
 -> Maybe Integer
 -> Maybe Text
 -> Maybe Bool
 -> Maybe V1Preconditions
 -> Maybe Text
 -> V1DeleteOptions)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Text]
      -> Maybe Integer
      -> Maybe Text
      -> Maybe Bool
      -> Maybe V1Preconditions
      -> Maybe Text
      -> V1DeleteOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe [Text]
   -> Maybe Integer
   -> Maybe Text
   -> Maybe Bool
   -> Maybe V1Preconditions
   -> Maybe Text
   -> V1DeleteOptions)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Integer
      -> Maybe Text
      -> Maybe Bool
      -> Maybe V1Preconditions
      -> Maybe Text
      -> V1DeleteOptions)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"dryRun")
      Parser
  (Maybe Integer
   -> Maybe Text
   -> Maybe Bool
   -> Maybe V1Preconditions
   -> Maybe Text
   -> V1DeleteOptions)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe V1Preconditions
      -> Maybe Text
      -> V1DeleteOptions)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"gracePeriodSeconds")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe V1Preconditions
   -> Maybe Text
   -> V1DeleteOptions)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe V1Preconditions -> Maybe Text -> V1DeleteOptions)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe Bool
   -> Maybe V1Preconditions -> Maybe Text -> V1DeleteOptions)
-> Parser (Maybe Bool)
-> Parser (Maybe V1Preconditions -> Maybe Text -> V1DeleteOptions)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"orphanDependents")
      Parser (Maybe V1Preconditions -> Maybe Text -> V1DeleteOptions)
-> Parser (Maybe V1Preconditions)
-> Parser (Maybe Text -> V1DeleteOptions)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1Preconditions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"preconditions")
      Parser (Maybe Text -> V1DeleteOptions)
-> Parser (Maybe Text) -> Parser V1DeleteOptions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"propagationPolicy")

-- | ToJSON V1DeleteOptions
instance A.ToJSON V1DeleteOptions where
  toJSON :: V1DeleteOptions -> Value
toJSON V1DeleteOptions {Maybe Bool
Maybe Integer
Maybe [Text]
Maybe Text
Maybe V1Preconditions
v1DeleteOptionsPropagationPolicy :: Maybe Text
v1DeleteOptionsPreconditions :: Maybe V1Preconditions
v1DeleteOptionsOrphanDependents :: Maybe Bool
v1DeleteOptionsKind :: Maybe Text
v1DeleteOptionsGracePeriodSeconds :: Maybe Integer
v1DeleteOptionsDryRun :: Maybe [Text]
v1DeleteOptionsApiVersion :: Maybe Text
v1DeleteOptionsPropagationPolicy :: V1DeleteOptions -> Maybe Text
v1DeleteOptionsPreconditions :: V1DeleteOptions -> Maybe V1Preconditions
v1DeleteOptionsOrphanDependents :: V1DeleteOptions -> Maybe Bool
v1DeleteOptionsKind :: V1DeleteOptions -> Maybe Text
v1DeleteOptionsGracePeriodSeconds :: V1DeleteOptions -> Maybe Integer
v1DeleteOptionsDryRun :: V1DeleteOptions -> Maybe [Text]
v1DeleteOptionsApiVersion :: V1DeleteOptions -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DeleteOptionsApiVersion
      , Text
"dryRun" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1DeleteOptionsDryRun
      , Text
"gracePeriodSeconds" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1DeleteOptionsGracePeriodSeconds
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DeleteOptionsKind
      , Text
"orphanDependents" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1DeleteOptionsOrphanDependents
      , Text
"preconditions" Text -> Maybe V1Preconditions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1Preconditions
v1DeleteOptionsPreconditions
      , Text
"propagationPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DeleteOptionsPropagationPolicy
      ]


-- | Construct a value of type 'V1DeleteOptions' (by applying it's required fields, if any)
mkV1DeleteOptions
  :: V1DeleteOptions
mkV1DeleteOptions :: V1DeleteOptions
mkV1DeleteOptions =
  V1DeleteOptions :: Maybe Text
-> Maybe [Text]
-> Maybe Integer
-> Maybe Text
-> Maybe Bool
-> Maybe V1Preconditions
-> Maybe Text
-> V1DeleteOptions
V1DeleteOptions
  { v1DeleteOptionsApiVersion :: Maybe Text
v1DeleteOptionsApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1DeleteOptionsDryRun :: Maybe [Text]
v1DeleteOptionsDryRun = Maybe [Text]
forall a. Maybe a
Nothing
  , v1DeleteOptionsGracePeriodSeconds :: Maybe Integer
v1DeleteOptionsGracePeriodSeconds = Maybe Integer
forall a. Maybe a
Nothing
  , v1DeleteOptionsKind :: Maybe Text
v1DeleteOptionsKind = Maybe Text
forall a. Maybe a
Nothing
  , v1DeleteOptionsOrphanDependents :: Maybe Bool
v1DeleteOptionsOrphanDependents = Maybe Bool
forall a. Maybe a
Nothing
  , v1DeleteOptionsPreconditions :: Maybe V1Preconditions
v1DeleteOptionsPreconditions = Maybe V1Preconditions
forall a. Maybe a
Nothing
  , v1DeleteOptionsPropagationPolicy :: Maybe Text
v1DeleteOptionsPropagationPolicy = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1Deployment
-- | V1Deployment
-- Deployment enables declarative updates for Pods and ReplicaSets.
data V1Deployment = V1Deployment
  { V1Deployment -> Maybe Text
v1DeploymentApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1Deployment -> Maybe Text
v1DeploymentKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1Deployment -> Maybe V1ObjectMeta
v1DeploymentMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1Deployment -> Maybe V1DeploymentSpec
v1DeploymentSpec :: !(Maybe V1DeploymentSpec) -- ^ "spec"
  , V1Deployment -> Maybe V1DeploymentStatus
v1DeploymentStatus :: !(Maybe V1DeploymentStatus) -- ^ "status"
  } deriving (Int -> V1Deployment -> ShowS
[V1Deployment] -> ShowS
V1Deployment -> String
(Int -> V1Deployment -> ShowS)
-> (V1Deployment -> String)
-> ([V1Deployment] -> ShowS)
-> Show V1Deployment
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Deployment] -> ShowS
$cshowList :: [V1Deployment] -> ShowS
show :: V1Deployment -> String
$cshow :: V1Deployment -> String
showsPrec :: Int -> V1Deployment -> ShowS
$cshowsPrec :: Int -> V1Deployment -> ShowS
P.Show, V1Deployment -> V1Deployment -> Bool
(V1Deployment -> V1Deployment -> Bool)
-> (V1Deployment -> V1Deployment -> Bool) -> Eq V1Deployment
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Deployment -> V1Deployment -> Bool
$c/= :: V1Deployment -> V1Deployment -> Bool
== :: V1Deployment -> V1Deployment -> Bool
$c== :: V1Deployment -> V1Deployment -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Deployment
instance A.FromJSON V1Deployment where
  parseJSON :: Value -> Parser V1Deployment
parseJSON = String
-> (Object -> Parser V1Deployment) -> Value -> Parser V1Deployment
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Deployment" ((Object -> Parser V1Deployment) -> Value -> Parser V1Deployment)
-> (Object -> Parser V1Deployment) -> Value -> Parser V1Deployment
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1DeploymentSpec
-> Maybe V1DeploymentStatus
-> V1Deployment
V1Deployment
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1DeploymentSpec
 -> Maybe V1DeploymentStatus
 -> V1Deployment)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1DeploymentSpec
      -> Maybe V1DeploymentStatus
      -> V1Deployment)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1DeploymentSpec
   -> Maybe V1DeploymentStatus
   -> V1Deployment)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1DeploymentSpec
      -> Maybe V1DeploymentStatus
      -> V1Deployment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1DeploymentSpec
   -> Maybe V1DeploymentStatus
   -> V1Deployment)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1DeploymentSpec
      -> Maybe V1DeploymentStatus -> V1Deployment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1DeploymentSpec
   -> Maybe V1DeploymentStatus -> V1Deployment)
-> Parser (Maybe V1DeploymentSpec)
-> Parser (Maybe V1DeploymentStatus -> V1Deployment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1DeploymentSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1DeploymentStatus -> V1Deployment)
-> Parser (Maybe V1DeploymentStatus) -> Parser V1Deployment
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1DeploymentStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1Deployment
instance A.ToJSON V1Deployment where
  toJSON :: V1Deployment -> Value
toJSON V1Deployment {Maybe Text
Maybe V1ObjectMeta
Maybe V1DeploymentStatus
Maybe V1DeploymentSpec
v1DeploymentStatus :: Maybe V1DeploymentStatus
v1DeploymentSpec :: Maybe V1DeploymentSpec
v1DeploymentMetadata :: Maybe V1ObjectMeta
v1DeploymentKind :: Maybe Text
v1DeploymentApiVersion :: Maybe Text
v1DeploymentStatus :: V1Deployment -> Maybe V1DeploymentStatus
v1DeploymentSpec :: V1Deployment -> Maybe V1DeploymentSpec
v1DeploymentMetadata :: V1Deployment -> Maybe V1ObjectMeta
v1DeploymentKind :: V1Deployment -> Maybe Text
v1DeploymentApiVersion :: V1Deployment -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DeploymentApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DeploymentKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1DeploymentMetadata
      , Text
"spec" Text -> Maybe V1DeploymentSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1DeploymentSpec
v1DeploymentSpec
      , Text
"status" Text -> Maybe V1DeploymentStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1DeploymentStatus
v1DeploymentStatus
      ]


-- | Construct a value of type 'V1Deployment' (by applying it's required fields, if any)
mkV1Deployment
  :: V1Deployment
mkV1Deployment :: V1Deployment
mkV1Deployment =
  V1Deployment :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1DeploymentSpec
-> Maybe V1DeploymentStatus
-> V1Deployment
V1Deployment
  { v1DeploymentApiVersion :: Maybe Text
v1DeploymentApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1DeploymentKind :: Maybe Text
v1DeploymentKind = Maybe Text
forall a. Maybe a
Nothing
  , v1DeploymentMetadata :: Maybe V1ObjectMeta
v1DeploymentMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1DeploymentSpec :: Maybe V1DeploymentSpec
v1DeploymentSpec = Maybe V1DeploymentSpec
forall a. Maybe a
Nothing
  , v1DeploymentStatus :: Maybe V1DeploymentStatus
v1DeploymentStatus = Maybe V1DeploymentStatus
forall a. Maybe a
Nothing
  }

-- ** V1DeploymentCondition
-- | V1DeploymentCondition
-- DeploymentCondition describes the state of a deployment at a certain point.
data V1DeploymentCondition = V1DeploymentCondition
  { V1DeploymentCondition -> Maybe DateTime
v1DeploymentConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.
  , V1DeploymentCondition -> Maybe DateTime
v1DeploymentConditionLastUpdateTime :: !(Maybe DateTime) -- ^ "lastUpdateTime" - The last time this condition was updated.
  , V1DeploymentCondition -> Maybe Text
v1DeploymentConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.
  , V1DeploymentCondition -> Maybe Text
v1DeploymentConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition&#39;s last transition.
  , V1DeploymentCondition -> Text
v1DeploymentConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , V1DeploymentCondition -> Text
v1DeploymentConditionType :: !(Text) -- ^ /Required/ "type" - Type of deployment condition.
  } deriving (Int -> V1DeploymentCondition -> ShowS
[V1DeploymentCondition] -> ShowS
V1DeploymentCondition -> String
(Int -> V1DeploymentCondition -> ShowS)
-> (V1DeploymentCondition -> String)
-> ([V1DeploymentCondition] -> ShowS)
-> Show V1DeploymentCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1DeploymentCondition] -> ShowS
$cshowList :: [V1DeploymentCondition] -> ShowS
show :: V1DeploymentCondition -> String
$cshow :: V1DeploymentCondition -> String
showsPrec :: Int -> V1DeploymentCondition -> ShowS
$cshowsPrec :: Int -> V1DeploymentCondition -> ShowS
P.Show, V1DeploymentCondition -> V1DeploymentCondition -> Bool
(V1DeploymentCondition -> V1DeploymentCondition -> Bool)
-> (V1DeploymentCondition -> V1DeploymentCondition -> Bool)
-> Eq V1DeploymentCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1DeploymentCondition -> V1DeploymentCondition -> Bool
$c/= :: V1DeploymentCondition -> V1DeploymentCondition -> Bool
== :: V1DeploymentCondition -> V1DeploymentCondition -> Bool
$c== :: V1DeploymentCondition -> V1DeploymentCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1DeploymentCondition
instance A.FromJSON V1DeploymentCondition where
  parseJSON :: Value -> Parser V1DeploymentCondition
parseJSON = String
-> (Object -> Parser V1DeploymentCondition)
-> Value
-> Parser V1DeploymentCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1DeploymentCondition" ((Object -> Parser V1DeploymentCondition)
 -> Value -> Parser V1DeploymentCondition)
-> (Object -> Parser V1DeploymentCondition)
-> Value
-> Parser V1DeploymentCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1DeploymentCondition
V1DeploymentCondition
      (Maybe DateTime
 -> Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1DeploymentCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe DateTime
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Text
      -> V1DeploymentCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe DateTime
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Text
   -> V1DeploymentCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text -> Maybe Text -> Text -> Text -> V1DeploymentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastUpdateTime")
      Parser
  (Maybe Text -> Maybe Text -> Text -> Text -> V1DeploymentCondition)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Text -> Text -> V1DeploymentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1DeploymentCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1DeploymentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1DeploymentCondition)
-> Parser Text -> Parser (Text -> V1DeploymentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1DeploymentCondition)
-> Parser Text -> Parser V1DeploymentCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1DeploymentCondition
instance A.ToJSON V1DeploymentCondition where
  toJSON :: V1DeploymentCondition -> Value
toJSON V1DeploymentCondition {Maybe Text
Maybe DateTime
Text
v1DeploymentConditionType :: Text
v1DeploymentConditionStatus :: Text
v1DeploymentConditionReason :: Maybe Text
v1DeploymentConditionMessage :: Maybe Text
v1DeploymentConditionLastUpdateTime :: Maybe DateTime
v1DeploymentConditionLastTransitionTime :: Maybe DateTime
v1DeploymentConditionType :: V1DeploymentCondition -> Text
v1DeploymentConditionStatus :: V1DeploymentCondition -> Text
v1DeploymentConditionReason :: V1DeploymentCondition -> Maybe Text
v1DeploymentConditionMessage :: V1DeploymentCondition -> Maybe Text
v1DeploymentConditionLastUpdateTime :: V1DeploymentCondition -> Maybe DateTime
v1DeploymentConditionLastTransitionTime :: V1DeploymentCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1DeploymentConditionLastTransitionTime
      , Text
"lastUpdateTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1DeploymentConditionLastUpdateTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DeploymentConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DeploymentConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1DeploymentConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1DeploymentConditionType
      ]


-- | Construct a value of type 'V1DeploymentCondition' (by applying it's required fields, if any)
mkV1DeploymentCondition
  :: Text -- ^ 'v1DeploymentConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'v1DeploymentConditionType': Type of deployment condition.
  -> V1DeploymentCondition
mkV1DeploymentCondition :: Text -> Text -> V1DeploymentCondition
mkV1DeploymentCondition Text
v1DeploymentConditionStatus Text
v1DeploymentConditionType =
  V1DeploymentCondition :: Maybe DateTime
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1DeploymentCondition
V1DeploymentCondition
  { v1DeploymentConditionLastTransitionTime :: Maybe DateTime
v1DeploymentConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1DeploymentConditionLastUpdateTime :: Maybe DateTime
v1DeploymentConditionLastUpdateTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1DeploymentConditionMessage :: Maybe Text
v1DeploymentConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1DeploymentConditionReason :: Maybe Text
v1DeploymentConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1DeploymentConditionStatus :: Text
v1DeploymentConditionStatus :: Text
v1DeploymentConditionStatus
  , Text
v1DeploymentConditionType :: Text
v1DeploymentConditionType :: Text
v1DeploymentConditionType
  }

-- ** V1DeploymentList
-- | V1DeploymentList
-- DeploymentList is a list of Deployments.
data V1DeploymentList = V1DeploymentList
  { V1DeploymentList -> Maybe Text
v1DeploymentListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1DeploymentList -> [V1Deployment]
v1DeploymentListItems :: !([V1Deployment]) -- ^ /Required/ "items" - Items is the list of Deployments.
  , V1DeploymentList -> Maybe Text
v1DeploymentListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1DeploymentList -> Maybe V1ListMeta
v1DeploymentListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1DeploymentList -> ShowS
[V1DeploymentList] -> ShowS
V1DeploymentList -> String
(Int -> V1DeploymentList -> ShowS)
-> (V1DeploymentList -> String)
-> ([V1DeploymentList] -> ShowS)
-> Show V1DeploymentList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1DeploymentList] -> ShowS
$cshowList :: [V1DeploymentList] -> ShowS
show :: V1DeploymentList -> String
$cshow :: V1DeploymentList -> String
showsPrec :: Int -> V1DeploymentList -> ShowS
$cshowsPrec :: Int -> V1DeploymentList -> ShowS
P.Show, V1DeploymentList -> V1DeploymentList -> Bool
(V1DeploymentList -> V1DeploymentList -> Bool)
-> (V1DeploymentList -> V1DeploymentList -> Bool)
-> Eq V1DeploymentList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1DeploymentList -> V1DeploymentList -> Bool
$c/= :: V1DeploymentList -> V1DeploymentList -> Bool
== :: V1DeploymentList -> V1DeploymentList -> Bool
$c== :: V1DeploymentList -> V1DeploymentList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1DeploymentList
instance A.FromJSON V1DeploymentList where
  parseJSON :: Value -> Parser V1DeploymentList
parseJSON = String
-> (Object -> Parser V1DeploymentList)
-> Value
-> Parser V1DeploymentList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1DeploymentList" ((Object -> Parser V1DeploymentList)
 -> Value -> Parser V1DeploymentList)
-> (Object -> Parser V1DeploymentList)
-> Value
-> Parser V1DeploymentList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1Deployment]
-> Maybe Text
-> Maybe V1ListMeta
-> V1DeploymentList
V1DeploymentList
      (Maybe Text
 -> [V1Deployment]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1DeploymentList)
-> Parser (Maybe Text)
-> Parser
     ([V1Deployment]
      -> Maybe Text -> Maybe V1ListMeta -> V1DeploymentList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1Deployment]
   -> Maybe Text -> Maybe V1ListMeta -> V1DeploymentList)
-> Parser [V1Deployment]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1DeploymentList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1Deployment]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1DeploymentList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1DeploymentList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1DeploymentList)
-> Parser (Maybe V1ListMeta) -> Parser V1DeploymentList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1DeploymentList
instance A.ToJSON V1DeploymentList where
  toJSON :: V1DeploymentList -> Value
toJSON V1DeploymentList {[V1Deployment]
Maybe Text
Maybe V1ListMeta
v1DeploymentListMetadata :: Maybe V1ListMeta
v1DeploymentListKind :: Maybe Text
v1DeploymentListItems :: [V1Deployment]
v1DeploymentListApiVersion :: Maybe Text
v1DeploymentListMetadata :: V1DeploymentList -> Maybe V1ListMeta
v1DeploymentListKind :: V1DeploymentList -> Maybe Text
v1DeploymentListItems :: V1DeploymentList -> [V1Deployment]
v1DeploymentListApiVersion :: V1DeploymentList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DeploymentListApiVersion
      , Text
"items" Text -> [V1Deployment] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1Deployment]
v1DeploymentListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DeploymentListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1DeploymentListMetadata
      ]


-- | Construct a value of type 'V1DeploymentList' (by applying it's required fields, if any)
mkV1DeploymentList
  :: [V1Deployment] -- ^ 'v1DeploymentListItems': Items is the list of Deployments.
  -> V1DeploymentList
mkV1DeploymentList :: [V1Deployment] -> V1DeploymentList
mkV1DeploymentList [V1Deployment]
v1DeploymentListItems =
  V1DeploymentList :: Maybe Text
-> [V1Deployment]
-> Maybe Text
-> Maybe V1ListMeta
-> V1DeploymentList
V1DeploymentList
  { v1DeploymentListApiVersion :: Maybe Text
v1DeploymentListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1Deployment]
v1DeploymentListItems :: [V1Deployment]
v1DeploymentListItems :: [V1Deployment]
v1DeploymentListItems
  , v1DeploymentListKind :: Maybe Text
v1DeploymentListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1DeploymentListMetadata :: Maybe V1ListMeta
v1DeploymentListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1DeploymentSpec
-- | V1DeploymentSpec
-- DeploymentSpec is the specification of the desired behavior of the Deployment.
data V1DeploymentSpec = V1DeploymentSpec
  { V1DeploymentSpec -> Maybe Int
v1DeploymentSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)
  , V1DeploymentSpec -> Maybe Bool
v1DeploymentSpecPaused :: !(Maybe Bool) -- ^ "paused" - Indicates that the deployment is paused.
  , V1DeploymentSpec -> Maybe Int
v1DeploymentSpecProgressDeadlineSeconds :: !(Maybe Int) -- ^ "progressDeadlineSeconds" - The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.
  , V1DeploymentSpec -> Maybe Int
v1DeploymentSpecReplicas :: !(Maybe Int) -- ^ "replicas" - Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.
  , V1DeploymentSpec -> Maybe Int
v1DeploymentSpecRevisionHistoryLimit :: !(Maybe Int) -- ^ "revisionHistoryLimit" - The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.
  , V1DeploymentSpec -> V1LabelSelector
v1DeploymentSpecSelector :: !(V1LabelSelector) -- ^ /Required/ "selector"
  , V1DeploymentSpec -> Maybe V1DeploymentStrategy
v1DeploymentSpecStrategy :: !(Maybe V1DeploymentStrategy) -- ^ "strategy"
  , V1DeploymentSpec -> V1PodTemplateSpec
v1DeploymentSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"
  } deriving (Int -> V1DeploymentSpec -> ShowS
[V1DeploymentSpec] -> ShowS
V1DeploymentSpec -> String
(Int -> V1DeploymentSpec -> ShowS)
-> (V1DeploymentSpec -> String)
-> ([V1DeploymentSpec] -> ShowS)
-> Show V1DeploymentSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1DeploymentSpec] -> ShowS
$cshowList :: [V1DeploymentSpec] -> ShowS
show :: V1DeploymentSpec -> String
$cshow :: V1DeploymentSpec -> String
showsPrec :: Int -> V1DeploymentSpec -> ShowS
$cshowsPrec :: Int -> V1DeploymentSpec -> ShowS
P.Show, V1DeploymentSpec -> V1DeploymentSpec -> Bool
(V1DeploymentSpec -> V1DeploymentSpec -> Bool)
-> (V1DeploymentSpec -> V1DeploymentSpec -> Bool)
-> Eq V1DeploymentSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1DeploymentSpec -> V1DeploymentSpec -> Bool
$c/= :: V1DeploymentSpec -> V1DeploymentSpec -> Bool
== :: V1DeploymentSpec -> V1DeploymentSpec -> Bool
$c== :: V1DeploymentSpec -> V1DeploymentSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1DeploymentSpec
instance A.FromJSON V1DeploymentSpec where
  parseJSON :: Value -> Parser V1DeploymentSpec
parseJSON = String
-> (Object -> Parser V1DeploymentSpec)
-> Value
-> Parser V1DeploymentSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1DeploymentSpec" ((Object -> Parser V1DeploymentSpec)
 -> Value -> Parser V1DeploymentSpec)
-> (Object -> Parser V1DeploymentSpec)
-> Value
-> Parser V1DeploymentSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Bool
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> V1LabelSelector
-> Maybe V1DeploymentStrategy
-> V1PodTemplateSpec
-> V1DeploymentSpec
V1DeploymentSpec
      (Maybe Int
 -> Maybe Bool
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> V1LabelSelector
 -> Maybe V1DeploymentStrategy
 -> V1PodTemplateSpec
 -> V1DeploymentSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> V1LabelSelector
      -> Maybe V1DeploymentStrategy
      -> V1PodTemplateSpec
      -> V1DeploymentSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minReadySeconds")
      Parser
  (Maybe Bool
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> V1LabelSelector
   -> Maybe V1DeploymentStrategy
   -> V1PodTemplateSpec
   -> V1DeploymentSpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> V1LabelSelector
      -> Maybe V1DeploymentStrategy
      -> V1PodTemplateSpec
      -> V1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"paused")
      Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> V1LabelSelector
   -> Maybe V1DeploymentStrategy
   -> V1PodTemplateSpec
   -> V1DeploymentSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> V1LabelSelector
      -> Maybe V1DeploymentStrategy
      -> V1PodTemplateSpec
      -> V1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"progressDeadlineSeconds")
      Parser
  (Maybe Int
   -> Maybe Int
   -> V1LabelSelector
   -> Maybe V1DeploymentStrategy
   -> V1PodTemplateSpec
   -> V1DeploymentSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> V1LabelSelector
      -> Maybe V1DeploymentStrategy
      -> V1PodTemplateSpec
      -> V1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")
      Parser
  (Maybe Int
   -> V1LabelSelector
   -> Maybe V1DeploymentStrategy
   -> V1PodTemplateSpec
   -> V1DeploymentSpec)
-> Parser (Maybe Int)
-> Parser
     (V1LabelSelector
      -> Maybe V1DeploymentStrategy
      -> V1PodTemplateSpec
      -> V1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"revisionHistoryLimit")
      Parser
  (V1LabelSelector
   -> Maybe V1DeploymentStrategy
   -> V1PodTemplateSpec
   -> V1DeploymentSpec)
-> Parser V1LabelSelector
-> Parser
     (Maybe V1DeploymentStrategy
      -> V1PodTemplateSpec -> V1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1LabelSelector
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"selector")
      Parser
  (Maybe V1DeploymentStrategy
   -> V1PodTemplateSpec -> V1DeploymentSpec)
-> Parser (Maybe V1DeploymentStrategy)
-> Parser (V1PodTemplateSpec -> V1DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1DeploymentStrategy)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"strategy")
      Parser (V1PodTemplateSpec -> V1DeploymentSpec)
-> Parser V1PodTemplateSpec -> Parser V1DeploymentSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1PodTemplateSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"template")

-- | ToJSON V1DeploymentSpec
instance A.ToJSON V1DeploymentSpec where
  toJSON :: V1DeploymentSpec -> Value
toJSON V1DeploymentSpec {Maybe Bool
Maybe Int
Maybe V1DeploymentStrategy
V1PodTemplateSpec
V1LabelSelector
v1DeploymentSpecTemplate :: V1PodTemplateSpec
v1DeploymentSpecStrategy :: Maybe V1DeploymentStrategy
v1DeploymentSpecSelector :: V1LabelSelector
v1DeploymentSpecRevisionHistoryLimit :: Maybe Int
v1DeploymentSpecReplicas :: Maybe Int
v1DeploymentSpecProgressDeadlineSeconds :: Maybe Int
v1DeploymentSpecPaused :: Maybe Bool
v1DeploymentSpecMinReadySeconds :: Maybe Int
v1DeploymentSpecTemplate :: V1DeploymentSpec -> V1PodTemplateSpec
v1DeploymentSpecStrategy :: V1DeploymentSpec -> Maybe V1DeploymentStrategy
v1DeploymentSpecSelector :: V1DeploymentSpec -> V1LabelSelector
v1DeploymentSpecRevisionHistoryLimit :: V1DeploymentSpec -> Maybe Int
v1DeploymentSpecReplicas :: V1DeploymentSpec -> Maybe Int
v1DeploymentSpecProgressDeadlineSeconds :: V1DeploymentSpec -> Maybe Int
v1DeploymentSpecPaused :: V1DeploymentSpec -> Maybe Bool
v1DeploymentSpecMinReadySeconds :: V1DeploymentSpec -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"minReadySeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DeploymentSpecMinReadySeconds
      , Text
"paused" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1DeploymentSpecPaused
      , Text
"progressDeadlineSeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DeploymentSpecProgressDeadlineSeconds
      , Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DeploymentSpecReplicas
      , Text
"revisionHistoryLimit" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DeploymentSpecRevisionHistoryLimit
      , Text
"selector" Text -> V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1LabelSelector
v1DeploymentSpecSelector
      , Text
"strategy" Text -> Maybe V1DeploymentStrategy -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1DeploymentStrategy
v1DeploymentSpecStrategy
      , Text
"template" Text -> V1PodTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1PodTemplateSpec
v1DeploymentSpecTemplate
      ]


-- | Construct a value of type 'V1DeploymentSpec' (by applying it's required fields, if any)
mkV1DeploymentSpec
  :: V1LabelSelector -- ^ 'v1DeploymentSpecSelector' 
  -> V1PodTemplateSpec -- ^ 'v1DeploymentSpecTemplate' 
  -> V1DeploymentSpec
mkV1DeploymentSpec :: V1LabelSelector -> V1PodTemplateSpec -> V1DeploymentSpec
mkV1DeploymentSpec V1LabelSelector
v1DeploymentSpecSelector V1PodTemplateSpec
v1DeploymentSpecTemplate =
  V1DeploymentSpec :: Maybe Int
-> Maybe Bool
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> V1LabelSelector
-> Maybe V1DeploymentStrategy
-> V1PodTemplateSpec
-> V1DeploymentSpec
V1DeploymentSpec
  { v1DeploymentSpecMinReadySeconds :: Maybe Int
v1DeploymentSpecMinReadySeconds = Maybe Int
forall a. Maybe a
Nothing
  , v1DeploymentSpecPaused :: Maybe Bool
v1DeploymentSpecPaused = Maybe Bool
forall a. Maybe a
Nothing
  , v1DeploymentSpecProgressDeadlineSeconds :: Maybe Int
v1DeploymentSpecProgressDeadlineSeconds = Maybe Int
forall a. Maybe a
Nothing
  , v1DeploymentSpecReplicas :: Maybe Int
v1DeploymentSpecReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1DeploymentSpecRevisionHistoryLimit :: Maybe Int
v1DeploymentSpecRevisionHistoryLimit = Maybe Int
forall a. Maybe a
Nothing
  , V1LabelSelector
v1DeploymentSpecSelector :: V1LabelSelector
v1DeploymentSpecSelector :: V1LabelSelector
v1DeploymentSpecSelector
  , v1DeploymentSpecStrategy :: Maybe V1DeploymentStrategy
v1DeploymentSpecStrategy = Maybe V1DeploymentStrategy
forall a. Maybe a
Nothing
  , V1PodTemplateSpec
v1DeploymentSpecTemplate :: V1PodTemplateSpec
v1DeploymentSpecTemplate :: V1PodTemplateSpec
v1DeploymentSpecTemplate
  }

-- ** V1DeploymentStatus
-- | V1DeploymentStatus
-- DeploymentStatus is the most recently observed status of the Deployment.
data V1DeploymentStatus = V1DeploymentStatus
  { V1DeploymentStatus -> Maybe Int
v1DeploymentStatusAvailableReplicas :: !(Maybe Int) -- ^ "availableReplicas" - Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.
  , V1DeploymentStatus -> Maybe Int
v1DeploymentStatusCollisionCount :: !(Maybe Int) -- ^ "collisionCount" - Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.
  , V1DeploymentStatus -> Maybe [V1DeploymentCondition]
v1DeploymentStatusConditions :: !(Maybe [V1DeploymentCondition]) -- ^ "conditions" - Represents the latest available observations of a deployment&#39;s current state.
  , V1DeploymentStatus -> Maybe Integer
v1DeploymentStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - The generation observed by the deployment controller.
  , V1DeploymentStatus -> Maybe Int
v1DeploymentStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - Total number of ready pods targeted by this deployment.
  , V1DeploymentStatus -> Maybe Int
v1DeploymentStatusReplicas :: !(Maybe Int) -- ^ "replicas" - Total number of non-terminated pods targeted by this deployment (their labels match the selector).
  , V1DeploymentStatus -> Maybe Int
v1DeploymentStatusUnavailableReplicas :: !(Maybe Int) -- ^ "unavailableReplicas" - Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.
  , V1DeploymentStatus -> Maybe Int
v1DeploymentStatusUpdatedReplicas :: !(Maybe Int) -- ^ "updatedReplicas" - Total number of non-terminated pods targeted by this deployment that have the desired template spec.
  } deriving (Int -> V1DeploymentStatus -> ShowS
[V1DeploymentStatus] -> ShowS
V1DeploymentStatus -> String
(Int -> V1DeploymentStatus -> ShowS)
-> (V1DeploymentStatus -> String)
-> ([V1DeploymentStatus] -> ShowS)
-> Show V1DeploymentStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1DeploymentStatus] -> ShowS
$cshowList :: [V1DeploymentStatus] -> ShowS
show :: V1DeploymentStatus -> String
$cshow :: V1DeploymentStatus -> String
showsPrec :: Int -> V1DeploymentStatus -> ShowS
$cshowsPrec :: Int -> V1DeploymentStatus -> ShowS
P.Show, V1DeploymentStatus -> V1DeploymentStatus -> Bool
(V1DeploymentStatus -> V1DeploymentStatus -> Bool)
-> (V1DeploymentStatus -> V1DeploymentStatus -> Bool)
-> Eq V1DeploymentStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1DeploymentStatus -> V1DeploymentStatus -> Bool
$c/= :: V1DeploymentStatus -> V1DeploymentStatus -> Bool
== :: V1DeploymentStatus -> V1DeploymentStatus -> Bool
$c== :: V1DeploymentStatus -> V1DeploymentStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1DeploymentStatus
instance A.FromJSON V1DeploymentStatus where
  parseJSON :: Value -> Parser V1DeploymentStatus
parseJSON = String
-> (Object -> Parser V1DeploymentStatus)
-> Value
-> Parser V1DeploymentStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1DeploymentStatus" ((Object -> Parser V1DeploymentStatus)
 -> Value -> Parser V1DeploymentStatus)
-> (Object -> Parser V1DeploymentStatus)
-> Value
-> Parser V1DeploymentStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Int
-> Maybe [V1DeploymentCondition]
-> Maybe Integer
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> V1DeploymentStatus
V1DeploymentStatus
      (Maybe Int
 -> Maybe Int
 -> Maybe [V1DeploymentCondition]
 -> Maybe Integer
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> V1DeploymentStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe [V1DeploymentCondition]
      -> Maybe Integer
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> V1DeploymentStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"availableReplicas")
      Parser
  (Maybe Int
   -> Maybe [V1DeploymentCondition]
   -> Maybe Integer
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> V1DeploymentStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe [V1DeploymentCondition]
      -> Maybe Integer
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> V1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"collisionCount")
      Parser
  (Maybe [V1DeploymentCondition]
   -> Maybe Integer
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> V1DeploymentStatus)
-> Parser (Maybe [V1DeploymentCondition])
-> Parser
     (Maybe Integer
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> V1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1DeploymentCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Maybe Integer
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> V1DeploymentStatus)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Int
      -> Maybe Int -> Maybe Int -> Maybe Int -> V1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")
      Parser
  (Maybe Int
   -> Maybe Int -> Maybe Int -> Maybe Int -> V1DeploymentStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int -> Maybe Int -> Maybe Int -> V1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readyReplicas")
      Parser (Maybe Int -> Maybe Int -> Maybe Int -> V1DeploymentStatus)
-> Parser (Maybe Int)
-> Parser (Maybe Int -> Maybe Int -> V1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")
      Parser (Maybe Int -> Maybe Int -> V1DeploymentStatus)
-> Parser (Maybe Int) -> Parser (Maybe Int -> V1DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"unavailableReplicas")
      Parser (Maybe Int -> V1DeploymentStatus)
-> Parser (Maybe Int) -> Parser V1DeploymentStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updatedReplicas")

-- | ToJSON V1DeploymentStatus
instance A.ToJSON V1DeploymentStatus where
  toJSON :: V1DeploymentStatus -> Value
toJSON V1DeploymentStatus {Maybe Int
Maybe Integer
Maybe [V1DeploymentCondition]
v1DeploymentStatusUpdatedReplicas :: Maybe Int
v1DeploymentStatusUnavailableReplicas :: Maybe Int
v1DeploymentStatusReplicas :: Maybe Int
v1DeploymentStatusReadyReplicas :: Maybe Int
v1DeploymentStatusObservedGeneration :: Maybe Integer
v1DeploymentStatusConditions :: Maybe [V1DeploymentCondition]
v1DeploymentStatusCollisionCount :: Maybe Int
v1DeploymentStatusAvailableReplicas :: Maybe Int
v1DeploymentStatusUpdatedReplicas :: V1DeploymentStatus -> Maybe Int
v1DeploymentStatusUnavailableReplicas :: V1DeploymentStatus -> Maybe Int
v1DeploymentStatusReplicas :: V1DeploymentStatus -> Maybe Int
v1DeploymentStatusReadyReplicas :: V1DeploymentStatus -> Maybe Int
v1DeploymentStatusObservedGeneration :: V1DeploymentStatus -> Maybe Integer
v1DeploymentStatusConditions :: V1DeploymentStatus -> Maybe [V1DeploymentCondition]
v1DeploymentStatusCollisionCount :: V1DeploymentStatus -> Maybe Int
v1DeploymentStatusAvailableReplicas :: V1DeploymentStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"availableReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DeploymentStatusAvailableReplicas
      , Text
"collisionCount" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DeploymentStatusCollisionCount
      , Text
"conditions" Text -> Maybe [V1DeploymentCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1DeploymentCondition]
v1DeploymentStatusConditions
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1DeploymentStatusObservedGeneration
      , Text
"readyReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DeploymentStatusReadyReplicas
      , Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DeploymentStatusReplicas
      , Text
"unavailableReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DeploymentStatusUnavailableReplicas
      , Text
"updatedReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DeploymentStatusUpdatedReplicas
      ]


-- | Construct a value of type 'V1DeploymentStatus' (by applying it's required fields, if any)
mkV1DeploymentStatus
  :: V1DeploymentStatus
mkV1DeploymentStatus :: V1DeploymentStatus
mkV1DeploymentStatus =
  V1DeploymentStatus :: Maybe Int
-> Maybe Int
-> Maybe [V1DeploymentCondition]
-> Maybe Integer
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> V1DeploymentStatus
V1DeploymentStatus
  { v1DeploymentStatusAvailableReplicas :: Maybe Int
v1DeploymentStatusAvailableReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1DeploymentStatusCollisionCount :: Maybe Int
v1DeploymentStatusCollisionCount = Maybe Int
forall a. Maybe a
Nothing
  , v1DeploymentStatusConditions :: Maybe [V1DeploymentCondition]
v1DeploymentStatusConditions = Maybe [V1DeploymentCondition]
forall a. Maybe a
Nothing
  , v1DeploymentStatusObservedGeneration :: Maybe Integer
v1DeploymentStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  , v1DeploymentStatusReadyReplicas :: Maybe Int
v1DeploymentStatusReadyReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1DeploymentStatusReplicas :: Maybe Int
v1DeploymentStatusReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1DeploymentStatusUnavailableReplicas :: Maybe Int
v1DeploymentStatusUnavailableReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1DeploymentStatusUpdatedReplicas :: Maybe Int
v1DeploymentStatusUpdatedReplicas = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1DeploymentStrategy
-- | V1DeploymentStrategy
-- DeploymentStrategy describes how to replace existing pods with new ones.
data V1DeploymentStrategy = V1DeploymentStrategy
  { V1DeploymentStrategy -> Maybe V1RollingUpdateDeployment
v1DeploymentStrategyRollingUpdate :: !(Maybe V1RollingUpdateDeployment) -- ^ "rollingUpdate"
  , V1DeploymentStrategy -> Maybe Text
v1DeploymentStrategyType :: !(Maybe Text) -- ^ "type" - Type of deployment. Can be \&quot;Recreate\&quot; or \&quot;RollingUpdate\&quot;. Default is RollingUpdate.
  } deriving (Int -> V1DeploymentStrategy -> ShowS
[V1DeploymentStrategy] -> ShowS
V1DeploymentStrategy -> String
(Int -> V1DeploymentStrategy -> ShowS)
-> (V1DeploymentStrategy -> String)
-> ([V1DeploymentStrategy] -> ShowS)
-> Show V1DeploymentStrategy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1DeploymentStrategy] -> ShowS
$cshowList :: [V1DeploymentStrategy] -> ShowS
show :: V1DeploymentStrategy -> String
$cshow :: V1DeploymentStrategy -> String
showsPrec :: Int -> V1DeploymentStrategy -> ShowS
$cshowsPrec :: Int -> V1DeploymentStrategy -> ShowS
P.Show, V1DeploymentStrategy -> V1DeploymentStrategy -> Bool
(V1DeploymentStrategy -> V1DeploymentStrategy -> Bool)
-> (V1DeploymentStrategy -> V1DeploymentStrategy -> Bool)
-> Eq V1DeploymentStrategy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1DeploymentStrategy -> V1DeploymentStrategy -> Bool
$c/= :: V1DeploymentStrategy -> V1DeploymentStrategy -> Bool
== :: V1DeploymentStrategy -> V1DeploymentStrategy -> Bool
$c== :: V1DeploymentStrategy -> V1DeploymentStrategy -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1DeploymentStrategy
instance A.FromJSON V1DeploymentStrategy where
  parseJSON :: Value -> Parser V1DeploymentStrategy
parseJSON = String
-> (Object -> Parser V1DeploymentStrategy)
-> Value
-> Parser V1DeploymentStrategy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1DeploymentStrategy" ((Object -> Parser V1DeploymentStrategy)
 -> Value -> Parser V1DeploymentStrategy)
-> (Object -> Parser V1DeploymentStrategy)
-> Value
-> Parser V1DeploymentStrategy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1RollingUpdateDeployment
-> Maybe Text -> V1DeploymentStrategy
V1DeploymentStrategy
      (Maybe V1RollingUpdateDeployment
 -> Maybe Text -> V1DeploymentStrategy)
-> Parser (Maybe V1RollingUpdateDeployment)
-> Parser (Maybe Text -> V1DeploymentStrategy)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1RollingUpdateDeployment)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rollingUpdate")
      Parser (Maybe Text -> V1DeploymentStrategy)
-> Parser (Maybe Text) -> Parser V1DeploymentStrategy
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")

-- | ToJSON V1DeploymentStrategy
instance A.ToJSON V1DeploymentStrategy where
  toJSON :: V1DeploymentStrategy -> Value
toJSON V1DeploymentStrategy {Maybe Text
Maybe V1RollingUpdateDeployment
v1DeploymentStrategyType :: Maybe Text
v1DeploymentStrategyRollingUpdate :: Maybe V1RollingUpdateDeployment
v1DeploymentStrategyType :: V1DeploymentStrategy -> Maybe Text
v1DeploymentStrategyRollingUpdate :: V1DeploymentStrategy -> Maybe V1RollingUpdateDeployment
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"rollingUpdate" Text -> Maybe V1RollingUpdateDeployment -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1RollingUpdateDeployment
v1DeploymentStrategyRollingUpdate
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1DeploymentStrategyType
      ]


-- | Construct a value of type 'V1DeploymentStrategy' (by applying it's required fields, if any)
mkV1DeploymentStrategy
  :: V1DeploymentStrategy
mkV1DeploymentStrategy :: V1DeploymentStrategy
mkV1DeploymentStrategy =
  V1DeploymentStrategy :: Maybe V1RollingUpdateDeployment
-> Maybe Text -> V1DeploymentStrategy
V1DeploymentStrategy
  { v1DeploymentStrategyRollingUpdate :: Maybe V1RollingUpdateDeployment
v1DeploymentStrategyRollingUpdate = Maybe V1RollingUpdateDeployment
forall a. Maybe a
Nothing
  , v1DeploymentStrategyType :: Maybe Text
v1DeploymentStrategyType = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1DownwardAPIProjection
-- | V1DownwardAPIProjection
-- Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.
data V1DownwardAPIProjection = V1DownwardAPIProjection
  { V1DownwardAPIProjection -> Maybe [V1DownwardAPIVolumeFile]
v1DownwardAPIProjectionItems :: !(Maybe [V1DownwardAPIVolumeFile]) -- ^ "items" - Items is a list of DownwardAPIVolume file
  } deriving (Int -> V1DownwardAPIProjection -> ShowS
[V1DownwardAPIProjection] -> ShowS
V1DownwardAPIProjection -> String
(Int -> V1DownwardAPIProjection -> ShowS)
-> (V1DownwardAPIProjection -> String)
-> ([V1DownwardAPIProjection] -> ShowS)
-> Show V1DownwardAPIProjection
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1DownwardAPIProjection] -> ShowS
$cshowList :: [V1DownwardAPIProjection] -> ShowS
show :: V1DownwardAPIProjection -> String
$cshow :: V1DownwardAPIProjection -> String
showsPrec :: Int -> V1DownwardAPIProjection -> ShowS
$cshowsPrec :: Int -> V1DownwardAPIProjection -> ShowS
P.Show, V1DownwardAPIProjection -> V1DownwardAPIProjection -> Bool
(V1DownwardAPIProjection -> V1DownwardAPIProjection -> Bool)
-> (V1DownwardAPIProjection -> V1DownwardAPIProjection -> Bool)
-> Eq V1DownwardAPIProjection
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1DownwardAPIProjection -> V1DownwardAPIProjection -> Bool
$c/= :: V1DownwardAPIProjection -> V1DownwardAPIProjection -> Bool
== :: V1DownwardAPIProjection -> V1DownwardAPIProjection -> Bool
$c== :: V1DownwardAPIProjection -> V1DownwardAPIProjection -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1DownwardAPIProjection
instance A.FromJSON V1DownwardAPIProjection where
  parseJSON :: Value -> Parser V1DownwardAPIProjection
parseJSON = String
-> (Object -> Parser V1DownwardAPIProjection)
-> Value
-> Parser V1DownwardAPIProjection
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1DownwardAPIProjection" ((Object -> Parser V1DownwardAPIProjection)
 -> Value -> Parser V1DownwardAPIProjection)
-> (Object -> Parser V1DownwardAPIProjection)
-> Value
-> Parser V1DownwardAPIProjection
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1DownwardAPIVolumeFile] -> V1DownwardAPIProjection
V1DownwardAPIProjection
      (Maybe [V1DownwardAPIVolumeFile] -> V1DownwardAPIProjection)
-> Parser (Maybe [V1DownwardAPIVolumeFile])
-> Parser V1DownwardAPIProjection
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1DownwardAPIVolumeFile])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"items")

-- | ToJSON V1DownwardAPIProjection
instance A.ToJSON V1DownwardAPIProjection where
  toJSON :: V1DownwardAPIProjection -> Value
toJSON V1DownwardAPIProjection {Maybe [V1DownwardAPIVolumeFile]
v1DownwardAPIProjectionItems :: Maybe [V1DownwardAPIVolumeFile]
v1DownwardAPIProjectionItems :: V1DownwardAPIProjection -> Maybe [V1DownwardAPIVolumeFile]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"items" Text -> Maybe [V1DownwardAPIVolumeFile] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1DownwardAPIVolumeFile]
v1DownwardAPIProjectionItems
      ]


-- | Construct a value of type 'V1DownwardAPIProjection' (by applying it's required fields, if any)
mkV1DownwardAPIProjection
  :: V1DownwardAPIProjection
mkV1DownwardAPIProjection :: V1DownwardAPIProjection
mkV1DownwardAPIProjection =
  V1DownwardAPIProjection :: Maybe [V1DownwardAPIVolumeFile] -> V1DownwardAPIProjection
V1DownwardAPIProjection
  { v1DownwardAPIProjectionItems :: Maybe [V1DownwardAPIVolumeFile]
v1DownwardAPIProjectionItems = Maybe [V1DownwardAPIVolumeFile]
forall a. Maybe a
Nothing
  }

-- ** V1DownwardAPIVolumeFile
-- | V1DownwardAPIVolumeFile
-- DownwardAPIVolumeFile represents information to create the file containing the pod field
data V1DownwardAPIVolumeFile = V1DownwardAPIVolumeFile
  { V1DownwardAPIVolumeFile -> Maybe V1ObjectFieldSelector
v1DownwardAPIVolumeFileFieldRef :: !(Maybe V1ObjectFieldSelector) -- ^ "fieldRef"
  , V1DownwardAPIVolumeFile -> Maybe Int
v1DownwardAPIVolumeFileMode :: !(Maybe Int) -- ^ "mode" - Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  , V1DownwardAPIVolumeFile -> Text
v1DownwardAPIVolumeFilePath :: !(Text) -- ^ /Required/ "path" - Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the &#39;..&#39; path. Must be utf-8 encoded. The first item of the relative path must not start with &#39;..&#39;
  , V1DownwardAPIVolumeFile -> Maybe V1ResourceFieldSelector
v1DownwardAPIVolumeFileResourceFieldRef :: !(Maybe V1ResourceFieldSelector) -- ^ "resourceFieldRef"
  } deriving (Int -> V1DownwardAPIVolumeFile -> ShowS
[V1DownwardAPIVolumeFile] -> ShowS
V1DownwardAPIVolumeFile -> String
(Int -> V1DownwardAPIVolumeFile -> ShowS)
-> (V1DownwardAPIVolumeFile -> String)
-> ([V1DownwardAPIVolumeFile] -> ShowS)
-> Show V1DownwardAPIVolumeFile
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1DownwardAPIVolumeFile] -> ShowS
$cshowList :: [V1DownwardAPIVolumeFile] -> ShowS
show :: V1DownwardAPIVolumeFile -> String
$cshow :: V1DownwardAPIVolumeFile -> String
showsPrec :: Int -> V1DownwardAPIVolumeFile -> ShowS
$cshowsPrec :: Int -> V1DownwardAPIVolumeFile -> ShowS
P.Show, V1DownwardAPIVolumeFile -> V1DownwardAPIVolumeFile -> Bool
(V1DownwardAPIVolumeFile -> V1DownwardAPIVolumeFile -> Bool)
-> (V1DownwardAPIVolumeFile -> V1DownwardAPIVolumeFile -> Bool)
-> Eq V1DownwardAPIVolumeFile
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1DownwardAPIVolumeFile -> V1DownwardAPIVolumeFile -> Bool
$c/= :: V1DownwardAPIVolumeFile -> V1DownwardAPIVolumeFile -> Bool
== :: V1DownwardAPIVolumeFile -> V1DownwardAPIVolumeFile -> Bool
$c== :: V1DownwardAPIVolumeFile -> V1DownwardAPIVolumeFile -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1DownwardAPIVolumeFile
instance A.FromJSON V1DownwardAPIVolumeFile where
  parseJSON :: Value -> Parser V1DownwardAPIVolumeFile
parseJSON = String
-> (Object -> Parser V1DownwardAPIVolumeFile)
-> Value
-> Parser V1DownwardAPIVolumeFile
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1DownwardAPIVolumeFile" ((Object -> Parser V1DownwardAPIVolumeFile)
 -> Value -> Parser V1DownwardAPIVolumeFile)
-> (Object -> Parser V1DownwardAPIVolumeFile)
-> Value
-> Parser V1DownwardAPIVolumeFile
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1ObjectFieldSelector
-> Maybe Int
-> Text
-> Maybe V1ResourceFieldSelector
-> V1DownwardAPIVolumeFile
V1DownwardAPIVolumeFile
      (Maybe V1ObjectFieldSelector
 -> Maybe Int
 -> Text
 -> Maybe V1ResourceFieldSelector
 -> V1DownwardAPIVolumeFile)
-> Parser (Maybe V1ObjectFieldSelector)
-> Parser
     (Maybe Int
      -> Text
      -> Maybe V1ResourceFieldSelector
      -> V1DownwardAPIVolumeFile)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1ObjectFieldSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fieldRef")
      Parser
  (Maybe Int
   -> Text
   -> Maybe V1ResourceFieldSelector
   -> V1DownwardAPIVolumeFile)
-> Parser (Maybe Int)
-> Parser
     (Text -> Maybe V1ResourceFieldSelector -> V1DownwardAPIVolumeFile)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"mode")
      Parser
  (Text -> Maybe V1ResourceFieldSelector -> V1DownwardAPIVolumeFile)
-> Parser Text
-> Parser
     (Maybe V1ResourceFieldSelector -> V1DownwardAPIVolumeFile)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"path")
      Parser (Maybe V1ResourceFieldSelector -> V1DownwardAPIVolumeFile)
-> Parser (Maybe V1ResourceFieldSelector)
-> Parser V1DownwardAPIVolumeFile
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ResourceFieldSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resourceFieldRef")

-- | ToJSON V1DownwardAPIVolumeFile
instance A.ToJSON V1DownwardAPIVolumeFile where
  toJSON :: V1DownwardAPIVolumeFile -> Value
toJSON V1DownwardAPIVolumeFile {Maybe Int
Maybe V1ResourceFieldSelector
Maybe V1ObjectFieldSelector
Text
v1DownwardAPIVolumeFileResourceFieldRef :: Maybe V1ResourceFieldSelector
v1DownwardAPIVolumeFilePath :: Text
v1DownwardAPIVolumeFileMode :: Maybe Int
v1DownwardAPIVolumeFileFieldRef :: Maybe V1ObjectFieldSelector
v1DownwardAPIVolumeFileResourceFieldRef :: V1DownwardAPIVolumeFile -> Maybe V1ResourceFieldSelector
v1DownwardAPIVolumeFilePath :: V1DownwardAPIVolumeFile -> Text
v1DownwardAPIVolumeFileMode :: V1DownwardAPIVolumeFile -> Maybe Int
v1DownwardAPIVolumeFileFieldRef :: V1DownwardAPIVolumeFile -> Maybe V1ObjectFieldSelector
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fieldRef" Text -> Maybe V1ObjectFieldSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectFieldSelector
v1DownwardAPIVolumeFileFieldRef
      , Text
"mode" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DownwardAPIVolumeFileMode
      , Text
"path" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1DownwardAPIVolumeFilePath
      , Text
"resourceFieldRef" Text -> Maybe V1ResourceFieldSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ResourceFieldSelector
v1DownwardAPIVolumeFileResourceFieldRef
      ]


-- | Construct a value of type 'V1DownwardAPIVolumeFile' (by applying it's required fields, if any)
mkV1DownwardAPIVolumeFile
  :: Text -- ^ 'v1DownwardAPIVolumeFilePath': Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'
  -> V1DownwardAPIVolumeFile
mkV1DownwardAPIVolumeFile :: Text -> V1DownwardAPIVolumeFile
mkV1DownwardAPIVolumeFile Text
v1DownwardAPIVolumeFilePath =
  V1DownwardAPIVolumeFile :: Maybe V1ObjectFieldSelector
-> Maybe Int
-> Text
-> Maybe V1ResourceFieldSelector
-> V1DownwardAPIVolumeFile
V1DownwardAPIVolumeFile
  { v1DownwardAPIVolumeFileFieldRef :: Maybe V1ObjectFieldSelector
v1DownwardAPIVolumeFileFieldRef = Maybe V1ObjectFieldSelector
forall a. Maybe a
Nothing
  , v1DownwardAPIVolumeFileMode :: Maybe Int
v1DownwardAPIVolumeFileMode = Maybe Int
forall a. Maybe a
Nothing
  , Text
v1DownwardAPIVolumeFilePath :: Text
v1DownwardAPIVolumeFilePath :: Text
v1DownwardAPIVolumeFilePath
  , v1DownwardAPIVolumeFileResourceFieldRef :: Maybe V1ResourceFieldSelector
v1DownwardAPIVolumeFileResourceFieldRef = Maybe V1ResourceFieldSelector
forall a. Maybe a
Nothing
  }

-- ** V1DownwardAPIVolumeSource
-- | V1DownwardAPIVolumeSource
-- DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.
data V1DownwardAPIVolumeSource = V1DownwardAPIVolumeSource
  { V1DownwardAPIVolumeSource -> Maybe Int
v1DownwardAPIVolumeSourceDefaultMode :: !(Maybe Int) -- ^ "defaultMode" - Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  , V1DownwardAPIVolumeSource -> Maybe [V1DownwardAPIVolumeFile]
v1DownwardAPIVolumeSourceItems :: !(Maybe [V1DownwardAPIVolumeFile]) -- ^ "items" - Items is a list of downward API volume file
  } deriving (Int -> V1DownwardAPIVolumeSource -> ShowS
[V1DownwardAPIVolumeSource] -> ShowS
V1DownwardAPIVolumeSource -> String
(Int -> V1DownwardAPIVolumeSource -> ShowS)
-> (V1DownwardAPIVolumeSource -> String)
-> ([V1DownwardAPIVolumeSource] -> ShowS)
-> Show V1DownwardAPIVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1DownwardAPIVolumeSource] -> ShowS
$cshowList :: [V1DownwardAPIVolumeSource] -> ShowS
show :: V1DownwardAPIVolumeSource -> String
$cshow :: V1DownwardAPIVolumeSource -> String
showsPrec :: Int -> V1DownwardAPIVolumeSource -> ShowS
$cshowsPrec :: Int -> V1DownwardAPIVolumeSource -> ShowS
P.Show, V1DownwardAPIVolumeSource -> V1DownwardAPIVolumeSource -> Bool
(V1DownwardAPIVolumeSource -> V1DownwardAPIVolumeSource -> Bool)
-> (V1DownwardAPIVolumeSource -> V1DownwardAPIVolumeSource -> Bool)
-> Eq V1DownwardAPIVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1DownwardAPIVolumeSource -> V1DownwardAPIVolumeSource -> Bool
$c/= :: V1DownwardAPIVolumeSource -> V1DownwardAPIVolumeSource -> Bool
== :: V1DownwardAPIVolumeSource -> V1DownwardAPIVolumeSource -> Bool
$c== :: V1DownwardAPIVolumeSource -> V1DownwardAPIVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1DownwardAPIVolumeSource
instance A.FromJSON V1DownwardAPIVolumeSource where
  parseJSON :: Value -> Parser V1DownwardAPIVolumeSource
parseJSON = String
-> (Object -> Parser V1DownwardAPIVolumeSource)
-> Value
-> Parser V1DownwardAPIVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1DownwardAPIVolumeSource" ((Object -> Parser V1DownwardAPIVolumeSource)
 -> Value -> Parser V1DownwardAPIVolumeSource)
-> (Object -> Parser V1DownwardAPIVolumeSource)
-> Value
-> Parser V1DownwardAPIVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe [V1DownwardAPIVolumeFile] -> V1DownwardAPIVolumeSource
V1DownwardAPIVolumeSource
      (Maybe Int
 -> Maybe [V1DownwardAPIVolumeFile] -> V1DownwardAPIVolumeSource)
-> Parser (Maybe Int)
-> Parser
     (Maybe [V1DownwardAPIVolumeFile] -> V1DownwardAPIVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"defaultMode")
      Parser
  (Maybe [V1DownwardAPIVolumeFile] -> V1DownwardAPIVolumeSource)
-> Parser (Maybe [V1DownwardAPIVolumeFile])
-> Parser V1DownwardAPIVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1DownwardAPIVolumeFile])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"items")

-- | ToJSON V1DownwardAPIVolumeSource
instance A.ToJSON V1DownwardAPIVolumeSource where
  toJSON :: V1DownwardAPIVolumeSource -> Value
toJSON V1DownwardAPIVolumeSource {Maybe Int
Maybe [V1DownwardAPIVolumeFile]
v1DownwardAPIVolumeSourceItems :: Maybe [V1DownwardAPIVolumeFile]
v1DownwardAPIVolumeSourceDefaultMode :: Maybe Int
v1DownwardAPIVolumeSourceItems :: V1DownwardAPIVolumeSource -> Maybe [V1DownwardAPIVolumeFile]
v1DownwardAPIVolumeSourceDefaultMode :: V1DownwardAPIVolumeSource -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"defaultMode" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1DownwardAPIVolumeSourceDefaultMode
      , Text
"items" Text -> Maybe [V1DownwardAPIVolumeFile] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1DownwardAPIVolumeFile]
v1DownwardAPIVolumeSourceItems
      ]


-- | Construct a value of type 'V1DownwardAPIVolumeSource' (by applying it's required fields, if any)
mkV1DownwardAPIVolumeSource
  :: V1DownwardAPIVolumeSource
mkV1DownwardAPIVolumeSource :: V1DownwardAPIVolumeSource
mkV1DownwardAPIVolumeSource =
  V1DownwardAPIVolumeSource :: Maybe Int
-> Maybe [V1DownwardAPIVolumeFile] -> V1DownwardAPIVolumeSource
V1DownwardAPIVolumeSource
  { v1DownwardAPIVolumeSourceDefaultMode :: Maybe Int
v1DownwardAPIVolumeSourceDefaultMode = Maybe Int
forall a. Maybe a
Nothing
  , v1DownwardAPIVolumeSourceItems :: Maybe [V1DownwardAPIVolumeFile]
v1DownwardAPIVolumeSourceItems = Maybe [V1DownwardAPIVolumeFile]
forall a. Maybe a
Nothing
  }

-- ** V1EmptyDirVolumeSource
-- | V1EmptyDirVolumeSource
-- Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.
data V1EmptyDirVolumeSource = V1EmptyDirVolumeSource
  { V1EmptyDirVolumeSource -> Maybe Text
v1EmptyDirVolumeSourceMedium :: !(Maybe Text) -- ^ "medium" - What type of storage medium should back this directory. The default is \&quot;\&quot; which means to use the node&#39;s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
  , V1EmptyDirVolumeSource -> Maybe Quantity
v1EmptyDirVolumeSourceSizeLimit :: !(Maybe Quantity) -- ^ "sizeLimit"
  } deriving (Int -> V1EmptyDirVolumeSource -> ShowS
[V1EmptyDirVolumeSource] -> ShowS
V1EmptyDirVolumeSource -> String
(Int -> V1EmptyDirVolumeSource -> ShowS)
-> (V1EmptyDirVolumeSource -> String)
-> ([V1EmptyDirVolumeSource] -> ShowS)
-> Show V1EmptyDirVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1EmptyDirVolumeSource] -> ShowS
$cshowList :: [V1EmptyDirVolumeSource] -> ShowS
show :: V1EmptyDirVolumeSource -> String
$cshow :: V1EmptyDirVolumeSource -> String
showsPrec :: Int -> V1EmptyDirVolumeSource -> ShowS
$cshowsPrec :: Int -> V1EmptyDirVolumeSource -> ShowS
P.Show, V1EmptyDirVolumeSource -> V1EmptyDirVolumeSource -> Bool
(V1EmptyDirVolumeSource -> V1EmptyDirVolumeSource -> Bool)
-> (V1EmptyDirVolumeSource -> V1EmptyDirVolumeSource -> Bool)
-> Eq V1EmptyDirVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1EmptyDirVolumeSource -> V1EmptyDirVolumeSource -> Bool
$c/= :: V1EmptyDirVolumeSource -> V1EmptyDirVolumeSource -> Bool
== :: V1EmptyDirVolumeSource -> V1EmptyDirVolumeSource -> Bool
$c== :: V1EmptyDirVolumeSource -> V1EmptyDirVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1EmptyDirVolumeSource
instance A.FromJSON V1EmptyDirVolumeSource where
  parseJSON :: Value -> Parser V1EmptyDirVolumeSource
parseJSON = String
-> (Object -> Parser V1EmptyDirVolumeSource)
-> Value
-> Parser V1EmptyDirVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1EmptyDirVolumeSource" ((Object -> Parser V1EmptyDirVolumeSource)
 -> Value -> Parser V1EmptyDirVolumeSource)
-> (Object -> Parser V1EmptyDirVolumeSource)
-> Value
-> Parser V1EmptyDirVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Quantity -> V1EmptyDirVolumeSource
V1EmptyDirVolumeSource
      (Maybe Text -> Maybe Quantity -> V1EmptyDirVolumeSource)
-> Parser (Maybe Text)
-> Parser (Maybe Quantity -> V1EmptyDirVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"medium")
      Parser (Maybe Quantity -> V1EmptyDirVolumeSource)
-> Parser (Maybe Quantity) -> Parser V1EmptyDirVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Quantity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"sizeLimit")

-- | ToJSON V1EmptyDirVolumeSource
instance A.ToJSON V1EmptyDirVolumeSource where
  toJSON :: V1EmptyDirVolumeSource -> Value
toJSON V1EmptyDirVolumeSource {Maybe Text
Maybe Quantity
v1EmptyDirVolumeSourceSizeLimit :: Maybe Quantity
v1EmptyDirVolumeSourceMedium :: Maybe Text
v1EmptyDirVolumeSourceSizeLimit :: V1EmptyDirVolumeSource -> Maybe Quantity
v1EmptyDirVolumeSourceMedium :: V1EmptyDirVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"medium" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EmptyDirVolumeSourceMedium
      , Text
"sizeLimit" Text -> Maybe Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Quantity
v1EmptyDirVolumeSourceSizeLimit
      ]


-- | Construct a value of type 'V1EmptyDirVolumeSource' (by applying it's required fields, if any)
mkV1EmptyDirVolumeSource
  :: V1EmptyDirVolumeSource
mkV1EmptyDirVolumeSource :: V1EmptyDirVolumeSource
mkV1EmptyDirVolumeSource =
  V1EmptyDirVolumeSource :: Maybe Text -> Maybe Quantity -> V1EmptyDirVolumeSource
V1EmptyDirVolumeSource
  { v1EmptyDirVolumeSourceMedium :: Maybe Text
v1EmptyDirVolumeSourceMedium = Maybe Text
forall a. Maybe a
Nothing
  , v1EmptyDirVolumeSourceSizeLimit :: Maybe Quantity
v1EmptyDirVolumeSourceSizeLimit = Maybe Quantity
forall a. Maybe a
Nothing
  }

-- ** V1EndpointAddress
-- | V1EndpointAddress
-- EndpointAddress is a tuple that describes single IP address.
data V1EndpointAddress = V1EndpointAddress
  { V1EndpointAddress -> Maybe Text
v1EndpointAddressHostname :: !(Maybe Text) -- ^ "hostname" - The Hostname of this endpoint
  , V1EndpointAddress -> Text
v1EndpointAddressIp :: !(Text) -- ^ /Required/ "ip" - The IP of this endpoint. May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast ((224.0.0.0/24). IPv6 is also accepted but not fully supported on all platforms. Also, certain kubernetes components, like kube-proxy, are not IPv6 ready.
  , V1EndpointAddress -> Maybe Text
v1EndpointAddressNodeName :: !(Maybe Text) -- ^ "nodeName" - Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.
  , V1EndpointAddress -> Maybe V1ObjectReference
v1EndpointAddressTargetRef :: !(Maybe V1ObjectReference) -- ^ "targetRef"
  } deriving (Int -> V1EndpointAddress -> ShowS
[V1EndpointAddress] -> ShowS
V1EndpointAddress -> String
(Int -> V1EndpointAddress -> ShowS)
-> (V1EndpointAddress -> String)
-> ([V1EndpointAddress] -> ShowS)
-> Show V1EndpointAddress
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1EndpointAddress] -> ShowS
$cshowList :: [V1EndpointAddress] -> ShowS
show :: V1EndpointAddress -> String
$cshow :: V1EndpointAddress -> String
showsPrec :: Int -> V1EndpointAddress -> ShowS
$cshowsPrec :: Int -> V1EndpointAddress -> ShowS
P.Show, V1EndpointAddress -> V1EndpointAddress -> Bool
(V1EndpointAddress -> V1EndpointAddress -> Bool)
-> (V1EndpointAddress -> V1EndpointAddress -> Bool)
-> Eq V1EndpointAddress
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1EndpointAddress -> V1EndpointAddress -> Bool
$c/= :: V1EndpointAddress -> V1EndpointAddress -> Bool
== :: V1EndpointAddress -> V1EndpointAddress -> Bool
$c== :: V1EndpointAddress -> V1EndpointAddress -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1EndpointAddress
instance A.FromJSON V1EndpointAddress where
  parseJSON :: Value -> Parser V1EndpointAddress
parseJSON = String
-> (Object -> Parser V1EndpointAddress)
-> Value
-> Parser V1EndpointAddress
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1EndpointAddress" ((Object -> Parser V1EndpointAddress)
 -> Value -> Parser V1EndpointAddress)
-> (Object -> Parser V1EndpointAddress)
-> Value
-> Parser V1EndpointAddress
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Text
-> Maybe Text
-> Maybe V1ObjectReference
-> V1EndpointAddress
V1EndpointAddress
      (Maybe Text
 -> Text
 -> Maybe Text
 -> Maybe V1ObjectReference
 -> V1EndpointAddress)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe Text -> Maybe V1ObjectReference -> V1EndpointAddress)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostname")
      Parser
  (Text
   -> Maybe Text -> Maybe V1ObjectReference -> V1EndpointAddress)
-> Parser Text
-> Parser
     (Maybe Text -> Maybe V1ObjectReference -> V1EndpointAddress)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"ip")
      Parser (Maybe Text -> Maybe V1ObjectReference -> V1EndpointAddress)
-> Parser (Maybe Text)
-> Parser (Maybe V1ObjectReference -> V1EndpointAddress)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nodeName")
      Parser (Maybe V1ObjectReference -> V1EndpointAddress)
-> Parser (Maybe V1ObjectReference) -> Parser V1EndpointAddress
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"targetRef")

-- | ToJSON V1EndpointAddress
instance A.ToJSON V1EndpointAddress where
  toJSON :: V1EndpointAddress -> Value
toJSON V1EndpointAddress {Maybe Text
Maybe V1ObjectReference
Text
v1EndpointAddressTargetRef :: Maybe V1ObjectReference
v1EndpointAddressNodeName :: Maybe Text
v1EndpointAddressIp :: Text
v1EndpointAddressHostname :: Maybe Text
v1EndpointAddressTargetRef :: V1EndpointAddress -> Maybe V1ObjectReference
v1EndpointAddressNodeName :: V1EndpointAddress -> Maybe Text
v1EndpointAddressIp :: V1EndpointAddress -> Text
v1EndpointAddressHostname :: V1EndpointAddress -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"hostname" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EndpointAddressHostname
      , Text
"ip" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1EndpointAddressIp
      , Text
"nodeName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EndpointAddressNodeName
      , Text
"targetRef" Text -> Maybe V1ObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectReference
v1EndpointAddressTargetRef
      ]


-- | Construct a value of type 'V1EndpointAddress' (by applying it's required fields, if any)
mkV1EndpointAddress
  :: Text -- ^ 'v1EndpointAddressIp': The IP of this endpoint. May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast ((224.0.0.0/24). IPv6 is also accepted but not fully supported on all platforms. Also, certain kubernetes components, like kube-proxy, are not IPv6 ready.
  -> V1EndpointAddress
mkV1EndpointAddress :: Text -> V1EndpointAddress
mkV1EndpointAddress Text
v1EndpointAddressIp =
  V1EndpointAddress :: Maybe Text
-> Text
-> Maybe Text
-> Maybe V1ObjectReference
-> V1EndpointAddress
V1EndpointAddress
  { v1EndpointAddressHostname :: Maybe Text
v1EndpointAddressHostname = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1EndpointAddressIp :: Text
v1EndpointAddressIp :: Text
v1EndpointAddressIp
  , v1EndpointAddressNodeName :: Maybe Text
v1EndpointAddressNodeName = Maybe Text
forall a. Maybe a
Nothing
  , v1EndpointAddressTargetRef :: Maybe V1ObjectReference
v1EndpointAddressTargetRef = Maybe V1ObjectReference
forall a. Maybe a
Nothing
  }

-- ** V1EndpointPort
-- | V1EndpointPort
-- EndpointPort is a tuple that describes a single port.
data V1EndpointPort = V1EndpointPort
  { V1EndpointPort -> Maybe Text
v1EndpointPortName :: !(Maybe Text) -- ^ "name" - The name of this port.  This must match the &#39;name&#39; field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined.
  , V1EndpointPort -> Int
v1EndpointPortPort :: !(Int) -- ^ /Required/ "port" - The port number of the endpoint.
  , V1EndpointPort -> Maybe Text
v1EndpointPortProtocol :: !(Maybe Text) -- ^ "protocol" - The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.
  } deriving (Int -> V1EndpointPort -> ShowS
[V1EndpointPort] -> ShowS
V1EndpointPort -> String
(Int -> V1EndpointPort -> ShowS)
-> (V1EndpointPort -> String)
-> ([V1EndpointPort] -> ShowS)
-> Show V1EndpointPort
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1EndpointPort] -> ShowS
$cshowList :: [V1EndpointPort] -> ShowS
show :: V1EndpointPort -> String
$cshow :: V1EndpointPort -> String
showsPrec :: Int -> V1EndpointPort -> ShowS
$cshowsPrec :: Int -> V1EndpointPort -> ShowS
P.Show, V1EndpointPort -> V1EndpointPort -> Bool
(V1EndpointPort -> V1EndpointPort -> Bool)
-> (V1EndpointPort -> V1EndpointPort -> Bool) -> Eq V1EndpointPort
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1EndpointPort -> V1EndpointPort -> Bool
$c/= :: V1EndpointPort -> V1EndpointPort -> Bool
== :: V1EndpointPort -> V1EndpointPort -> Bool
$c== :: V1EndpointPort -> V1EndpointPort -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1EndpointPort
instance A.FromJSON V1EndpointPort where
  parseJSON :: Value -> Parser V1EndpointPort
parseJSON = String
-> (Object -> Parser V1EndpointPort)
-> Value
-> Parser V1EndpointPort
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1EndpointPort" ((Object -> Parser V1EndpointPort)
 -> Value -> Parser V1EndpointPort)
-> (Object -> Parser V1EndpointPort)
-> Value
-> Parser V1EndpointPort
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Int -> Maybe Text -> V1EndpointPort
V1EndpointPort
      (Maybe Text -> Int -> Maybe Text -> V1EndpointPort)
-> Parser (Maybe Text)
-> Parser (Int -> Maybe Text -> V1EndpointPort)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser (Int -> Maybe Text -> V1EndpointPort)
-> Parser Int -> Parser (Maybe Text -> V1EndpointPort)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"port")
      Parser (Maybe Text -> V1EndpointPort)
-> Parser (Maybe Text) -> Parser V1EndpointPort
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"protocol")

-- | ToJSON V1EndpointPort
instance A.ToJSON V1EndpointPort where
  toJSON :: V1EndpointPort -> Value
toJSON V1EndpointPort {Int
Maybe Text
v1EndpointPortProtocol :: Maybe Text
v1EndpointPortPort :: Int
v1EndpointPortName :: Maybe Text
v1EndpointPortProtocol :: V1EndpointPort -> Maybe Text
v1EndpointPortPort :: V1EndpointPort -> Int
v1EndpointPortName :: V1EndpointPort -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EndpointPortName
      , Text
"port" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1EndpointPortPort
      , Text
"protocol" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EndpointPortProtocol
      ]


-- | Construct a value of type 'V1EndpointPort' (by applying it's required fields, if any)
mkV1EndpointPort
  :: Int -- ^ 'v1EndpointPortPort': The port number of the endpoint.
  -> V1EndpointPort
mkV1EndpointPort :: Int -> V1EndpointPort
mkV1EndpointPort Int
v1EndpointPortPort =
  V1EndpointPort :: Maybe Text -> Int -> Maybe Text -> V1EndpointPort
V1EndpointPort
  { v1EndpointPortName :: Maybe Text
v1EndpointPortName = Maybe Text
forall a. Maybe a
Nothing
  , Int
v1EndpointPortPort :: Int
v1EndpointPortPort :: Int
v1EndpointPortPort
  , v1EndpointPortProtocol :: Maybe Text
v1EndpointPortProtocol = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1EndpointSubset
-- | V1EndpointSubset
-- EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:   {     Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],     Ports:     [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]   } The resulting set of endpoints can be viewed as:     a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],     b: [ 10.10.1.1:309, 10.10.2.2:309 ]
data V1EndpointSubset = V1EndpointSubset
  { V1EndpointSubset -> Maybe [V1EndpointAddress]
v1EndpointSubsetAddresses :: !(Maybe [V1EndpointAddress]) -- ^ "addresses" - IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.
  , V1EndpointSubset -> Maybe [V1EndpointAddress]
v1EndpointSubsetNotReadyAddresses :: !(Maybe [V1EndpointAddress]) -- ^ "notReadyAddresses" - IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.
  , V1EndpointSubset -> Maybe [V1EndpointPort]
v1EndpointSubsetPorts :: !(Maybe [V1EndpointPort]) -- ^ "ports" - Port numbers available on the related IP addresses.
  } deriving (Int -> V1EndpointSubset -> ShowS
[V1EndpointSubset] -> ShowS
V1EndpointSubset -> String
(Int -> V1EndpointSubset -> ShowS)
-> (V1EndpointSubset -> String)
-> ([V1EndpointSubset] -> ShowS)
-> Show V1EndpointSubset
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1EndpointSubset] -> ShowS
$cshowList :: [V1EndpointSubset] -> ShowS
show :: V1EndpointSubset -> String
$cshow :: V1EndpointSubset -> String
showsPrec :: Int -> V1EndpointSubset -> ShowS
$cshowsPrec :: Int -> V1EndpointSubset -> ShowS
P.Show, V1EndpointSubset -> V1EndpointSubset -> Bool
(V1EndpointSubset -> V1EndpointSubset -> Bool)
-> (V1EndpointSubset -> V1EndpointSubset -> Bool)
-> Eq V1EndpointSubset
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1EndpointSubset -> V1EndpointSubset -> Bool
$c/= :: V1EndpointSubset -> V1EndpointSubset -> Bool
== :: V1EndpointSubset -> V1EndpointSubset -> Bool
$c== :: V1EndpointSubset -> V1EndpointSubset -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1EndpointSubset
instance A.FromJSON V1EndpointSubset where
  parseJSON :: Value -> Parser V1EndpointSubset
parseJSON = String
-> (Object -> Parser V1EndpointSubset)
-> Value
-> Parser V1EndpointSubset
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1EndpointSubset" ((Object -> Parser V1EndpointSubset)
 -> Value -> Parser V1EndpointSubset)
-> (Object -> Parser V1EndpointSubset)
-> Value
-> Parser V1EndpointSubset
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1EndpointAddress]
-> Maybe [V1EndpointAddress]
-> Maybe [V1EndpointPort]
-> V1EndpointSubset
V1EndpointSubset
      (Maybe [V1EndpointAddress]
 -> Maybe [V1EndpointAddress]
 -> Maybe [V1EndpointPort]
 -> V1EndpointSubset)
-> Parser (Maybe [V1EndpointAddress])
-> Parser
     (Maybe [V1EndpointAddress]
      -> Maybe [V1EndpointPort] -> V1EndpointSubset)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1EndpointAddress])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"addresses")
      Parser
  (Maybe [V1EndpointAddress]
   -> Maybe [V1EndpointPort] -> V1EndpointSubset)
-> Parser (Maybe [V1EndpointAddress])
-> Parser (Maybe [V1EndpointPort] -> V1EndpointSubset)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1EndpointAddress])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"notReadyAddresses")
      Parser (Maybe [V1EndpointPort] -> V1EndpointSubset)
-> Parser (Maybe [V1EndpointPort]) -> Parser V1EndpointSubset
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1EndpointPort])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ports")

-- | ToJSON V1EndpointSubset
instance A.ToJSON V1EndpointSubset where
  toJSON :: V1EndpointSubset -> Value
toJSON V1EndpointSubset {Maybe [V1EndpointPort]
Maybe [V1EndpointAddress]
v1EndpointSubsetPorts :: Maybe [V1EndpointPort]
v1EndpointSubsetNotReadyAddresses :: Maybe [V1EndpointAddress]
v1EndpointSubsetAddresses :: Maybe [V1EndpointAddress]
v1EndpointSubsetPorts :: V1EndpointSubset -> Maybe [V1EndpointPort]
v1EndpointSubsetNotReadyAddresses :: V1EndpointSubset -> Maybe [V1EndpointAddress]
v1EndpointSubsetAddresses :: V1EndpointSubset -> Maybe [V1EndpointAddress]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"addresses" Text -> Maybe [V1EndpointAddress] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1EndpointAddress]
v1EndpointSubsetAddresses
      , Text
"notReadyAddresses" Text -> Maybe [V1EndpointAddress] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1EndpointAddress]
v1EndpointSubsetNotReadyAddresses
      , Text
"ports" Text -> Maybe [V1EndpointPort] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1EndpointPort]
v1EndpointSubsetPorts
      ]


-- | Construct a value of type 'V1EndpointSubset' (by applying it's required fields, if any)
mkV1EndpointSubset
  :: V1EndpointSubset
mkV1EndpointSubset :: V1EndpointSubset
mkV1EndpointSubset =
  V1EndpointSubset :: Maybe [V1EndpointAddress]
-> Maybe [V1EndpointAddress]
-> Maybe [V1EndpointPort]
-> V1EndpointSubset
V1EndpointSubset
  { v1EndpointSubsetAddresses :: Maybe [V1EndpointAddress]
v1EndpointSubsetAddresses = Maybe [V1EndpointAddress]
forall a. Maybe a
Nothing
  , v1EndpointSubsetNotReadyAddresses :: Maybe [V1EndpointAddress]
v1EndpointSubsetNotReadyAddresses = Maybe [V1EndpointAddress]
forall a. Maybe a
Nothing
  , v1EndpointSubsetPorts :: Maybe [V1EndpointPort]
v1EndpointSubsetPorts = Maybe [V1EndpointPort]
forall a. Maybe a
Nothing
  }

-- ** V1Endpoints
-- | V1Endpoints
-- Endpoints is a collection of endpoints that implement the actual service. Example:   Name: \"mysvc\",   Subsets: [     {       Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],       Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]     },     {       Addresses: [{\"ip\": \"10.10.3.3\"}],       Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]     },  ]
data V1Endpoints = V1Endpoints
  { V1Endpoints -> Maybe Text
v1EndpointsApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1Endpoints -> Maybe Text
v1EndpointsKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1Endpoints -> Maybe V1ObjectMeta
v1EndpointsMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1Endpoints -> Maybe [V1EndpointSubset]
v1EndpointsSubsets :: !(Maybe [V1EndpointSubset]) -- ^ "subsets" - The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.
  } deriving (Int -> V1Endpoints -> ShowS
[V1Endpoints] -> ShowS
V1Endpoints -> String
(Int -> V1Endpoints -> ShowS)
-> (V1Endpoints -> String)
-> ([V1Endpoints] -> ShowS)
-> Show V1Endpoints
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Endpoints] -> ShowS
$cshowList :: [V1Endpoints] -> ShowS
show :: V1Endpoints -> String
$cshow :: V1Endpoints -> String
showsPrec :: Int -> V1Endpoints -> ShowS
$cshowsPrec :: Int -> V1Endpoints -> ShowS
P.Show, V1Endpoints -> V1Endpoints -> Bool
(V1Endpoints -> V1Endpoints -> Bool)
-> (V1Endpoints -> V1Endpoints -> Bool) -> Eq V1Endpoints
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Endpoints -> V1Endpoints -> Bool
$c/= :: V1Endpoints -> V1Endpoints -> Bool
== :: V1Endpoints -> V1Endpoints -> Bool
$c== :: V1Endpoints -> V1Endpoints -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Endpoints
instance A.FromJSON V1Endpoints where
  parseJSON :: Value -> Parser V1Endpoints
parseJSON = String
-> (Object -> Parser V1Endpoints) -> Value -> Parser V1Endpoints
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Endpoints" ((Object -> Parser V1Endpoints) -> Value -> Parser V1Endpoints)
-> (Object -> Parser V1Endpoints) -> Value -> Parser V1Endpoints
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1EndpointSubset]
-> V1Endpoints
V1Endpoints
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe [V1EndpointSubset]
 -> V1Endpoints)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta -> Maybe [V1EndpointSubset] -> V1Endpoints)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta -> Maybe [V1EndpointSubset] -> V1Endpoints)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta -> Maybe [V1EndpointSubset] -> V1Endpoints)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta -> Maybe [V1EndpointSubset] -> V1Endpoints)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe [V1EndpointSubset] -> V1Endpoints)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe [V1EndpointSubset] -> V1Endpoints)
-> Parser (Maybe [V1EndpointSubset]) -> Parser V1Endpoints
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1EndpointSubset])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"subsets")

-- | ToJSON V1Endpoints
instance A.ToJSON V1Endpoints where
  toJSON :: V1Endpoints -> Value
toJSON V1Endpoints {Maybe [V1EndpointSubset]
Maybe Text
Maybe V1ObjectMeta
v1EndpointsSubsets :: Maybe [V1EndpointSubset]
v1EndpointsMetadata :: Maybe V1ObjectMeta
v1EndpointsKind :: Maybe Text
v1EndpointsApiVersion :: Maybe Text
v1EndpointsSubsets :: V1Endpoints -> Maybe [V1EndpointSubset]
v1EndpointsMetadata :: V1Endpoints -> Maybe V1ObjectMeta
v1EndpointsKind :: V1Endpoints -> Maybe Text
v1EndpointsApiVersion :: V1Endpoints -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EndpointsApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EndpointsKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1EndpointsMetadata
      , Text
"subsets" Text -> Maybe [V1EndpointSubset] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1EndpointSubset]
v1EndpointsSubsets
      ]


-- | Construct a value of type 'V1Endpoints' (by applying it's required fields, if any)
mkV1Endpoints
  :: V1Endpoints
mkV1Endpoints :: V1Endpoints
mkV1Endpoints =
  V1Endpoints :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1EndpointSubset]
-> V1Endpoints
V1Endpoints
  { v1EndpointsApiVersion :: Maybe Text
v1EndpointsApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1EndpointsKind :: Maybe Text
v1EndpointsKind = Maybe Text
forall a. Maybe a
Nothing
  , v1EndpointsMetadata :: Maybe V1ObjectMeta
v1EndpointsMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1EndpointsSubsets :: Maybe [V1EndpointSubset]
v1EndpointsSubsets = Maybe [V1EndpointSubset]
forall a. Maybe a
Nothing
  }

-- ** V1EndpointsList
-- | V1EndpointsList
-- EndpointsList is a list of endpoints.
data V1EndpointsList = V1EndpointsList
  { V1EndpointsList -> Maybe Text
v1EndpointsListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1EndpointsList -> [V1Endpoints]
v1EndpointsListItems :: !([V1Endpoints]) -- ^ /Required/ "items" - List of endpoints.
  , V1EndpointsList -> Maybe Text
v1EndpointsListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1EndpointsList -> Maybe V1ListMeta
v1EndpointsListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1EndpointsList -> ShowS
[V1EndpointsList] -> ShowS
V1EndpointsList -> String
(Int -> V1EndpointsList -> ShowS)
-> (V1EndpointsList -> String)
-> ([V1EndpointsList] -> ShowS)
-> Show V1EndpointsList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1EndpointsList] -> ShowS
$cshowList :: [V1EndpointsList] -> ShowS
show :: V1EndpointsList -> String
$cshow :: V1EndpointsList -> String
showsPrec :: Int -> V1EndpointsList -> ShowS
$cshowsPrec :: Int -> V1EndpointsList -> ShowS
P.Show, V1EndpointsList -> V1EndpointsList -> Bool
(V1EndpointsList -> V1EndpointsList -> Bool)
-> (V1EndpointsList -> V1EndpointsList -> Bool)
-> Eq V1EndpointsList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1EndpointsList -> V1EndpointsList -> Bool
$c/= :: V1EndpointsList -> V1EndpointsList -> Bool
== :: V1EndpointsList -> V1EndpointsList -> Bool
$c== :: V1EndpointsList -> V1EndpointsList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1EndpointsList
instance A.FromJSON V1EndpointsList where
  parseJSON :: Value -> Parser V1EndpointsList
parseJSON = String
-> (Object -> Parser V1EndpointsList)
-> Value
-> Parser V1EndpointsList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1EndpointsList" ((Object -> Parser V1EndpointsList)
 -> Value -> Parser V1EndpointsList)
-> (Object -> Parser V1EndpointsList)
-> Value
-> Parser V1EndpointsList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1Endpoints]
-> Maybe Text
-> Maybe V1ListMeta
-> V1EndpointsList
V1EndpointsList
      (Maybe Text
 -> [V1Endpoints]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1EndpointsList)
-> Parser (Maybe Text)
-> Parser
     ([V1Endpoints]
      -> Maybe Text -> Maybe V1ListMeta -> V1EndpointsList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1Endpoints]
   -> Maybe Text -> Maybe V1ListMeta -> V1EndpointsList)
-> Parser [V1Endpoints]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1EndpointsList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1Endpoints]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1EndpointsList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1EndpointsList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1EndpointsList)
-> Parser (Maybe V1ListMeta) -> Parser V1EndpointsList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1EndpointsList
instance A.ToJSON V1EndpointsList where
  toJSON :: V1EndpointsList -> Value
toJSON V1EndpointsList {[V1Endpoints]
Maybe Text
Maybe V1ListMeta
v1EndpointsListMetadata :: Maybe V1ListMeta
v1EndpointsListKind :: Maybe Text
v1EndpointsListItems :: [V1Endpoints]
v1EndpointsListApiVersion :: Maybe Text
v1EndpointsListMetadata :: V1EndpointsList -> Maybe V1ListMeta
v1EndpointsListKind :: V1EndpointsList -> Maybe Text
v1EndpointsListItems :: V1EndpointsList -> [V1Endpoints]
v1EndpointsListApiVersion :: V1EndpointsList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EndpointsListApiVersion
      , Text
"items" Text -> [V1Endpoints] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1Endpoints]
v1EndpointsListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EndpointsListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1EndpointsListMetadata
      ]


-- | Construct a value of type 'V1EndpointsList' (by applying it's required fields, if any)
mkV1EndpointsList
  :: [V1Endpoints] -- ^ 'v1EndpointsListItems': List of endpoints.
  -> V1EndpointsList
mkV1EndpointsList :: [V1Endpoints] -> V1EndpointsList
mkV1EndpointsList [V1Endpoints]
v1EndpointsListItems =
  V1EndpointsList :: Maybe Text
-> [V1Endpoints]
-> Maybe Text
-> Maybe V1ListMeta
-> V1EndpointsList
V1EndpointsList
  { v1EndpointsListApiVersion :: Maybe Text
v1EndpointsListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1Endpoints]
v1EndpointsListItems :: [V1Endpoints]
v1EndpointsListItems :: [V1Endpoints]
v1EndpointsListItems
  , v1EndpointsListKind :: Maybe Text
v1EndpointsListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1EndpointsListMetadata :: Maybe V1ListMeta
v1EndpointsListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1EnvFromSource
-- | V1EnvFromSource
-- EnvFromSource represents the source of a set of ConfigMaps
data V1EnvFromSource = V1EnvFromSource
  { V1EnvFromSource -> Maybe V1ConfigMapEnvSource
v1EnvFromSourceConfigMapRef :: !(Maybe V1ConfigMapEnvSource) -- ^ "configMapRef"
  , V1EnvFromSource -> Maybe Text
v1EnvFromSourcePrefix :: !(Maybe Text) -- ^ "prefix" - An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.
  , V1EnvFromSource -> Maybe V1SecretEnvSource
v1EnvFromSourceSecretRef :: !(Maybe V1SecretEnvSource) -- ^ "secretRef"
  } deriving (Int -> V1EnvFromSource -> ShowS
[V1EnvFromSource] -> ShowS
V1EnvFromSource -> String
(Int -> V1EnvFromSource -> ShowS)
-> (V1EnvFromSource -> String)
-> ([V1EnvFromSource] -> ShowS)
-> Show V1EnvFromSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1EnvFromSource] -> ShowS
$cshowList :: [V1EnvFromSource] -> ShowS
show :: V1EnvFromSource -> String
$cshow :: V1EnvFromSource -> String
showsPrec :: Int -> V1EnvFromSource -> ShowS
$cshowsPrec :: Int -> V1EnvFromSource -> ShowS
P.Show, V1EnvFromSource -> V1EnvFromSource -> Bool
(V1EnvFromSource -> V1EnvFromSource -> Bool)
-> (V1EnvFromSource -> V1EnvFromSource -> Bool)
-> Eq V1EnvFromSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1EnvFromSource -> V1EnvFromSource -> Bool
$c/= :: V1EnvFromSource -> V1EnvFromSource -> Bool
== :: V1EnvFromSource -> V1EnvFromSource -> Bool
$c== :: V1EnvFromSource -> V1EnvFromSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1EnvFromSource
instance A.FromJSON V1EnvFromSource where
  parseJSON :: Value -> Parser V1EnvFromSource
parseJSON = String
-> (Object -> Parser V1EnvFromSource)
-> Value
-> Parser V1EnvFromSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1EnvFromSource" ((Object -> Parser V1EnvFromSource)
 -> Value -> Parser V1EnvFromSource)
-> (Object -> Parser V1EnvFromSource)
-> Value
-> Parser V1EnvFromSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1ConfigMapEnvSource
-> Maybe Text -> Maybe V1SecretEnvSource -> V1EnvFromSource
V1EnvFromSource
      (Maybe V1ConfigMapEnvSource
 -> Maybe Text -> Maybe V1SecretEnvSource -> V1EnvFromSource)
-> Parser (Maybe V1ConfigMapEnvSource)
-> Parser
     (Maybe Text -> Maybe V1SecretEnvSource -> V1EnvFromSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1ConfigMapEnvSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"configMapRef")
      Parser (Maybe Text -> Maybe V1SecretEnvSource -> V1EnvFromSource)
-> Parser (Maybe Text)
-> Parser (Maybe V1SecretEnvSource -> V1EnvFromSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"prefix")
      Parser (Maybe V1SecretEnvSource -> V1EnvFromSource)
-> Parser (Maybe V1SecretEnvSource) -> Parser V1EnvFromSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SecretEnvSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretRef")

-- | ToJSON V1EnvFromSource
instance A.ToJSON V1EnvFromSource where
  toJSON :: V1EnvFromSource -> Value
toJSON V1EnvFromSource {Maybe Text
Maybe V1SecretEnvSource
Maybe V1ConfigMapEnvSource
v1EnvFromSourceSecretRef :: Maybe V1SecretEnvSource
v1EnvFromSourcePrefix :: Maybe Text
v1EnvFromSourceConfigMapRef :: Maybe V1ConfigMapEnvSource
v1EnvFromSourceSecretRef :: V1EnvFromSource -> Maybe V1SecretEnvSource
v1EnvFromSourcePrefix :: V1EnvFromSource -> Maybe Text
v1EnvFromSourceConfigMapRef :: V1EnvFromSource -> Maybe V1ConfigMapEnvSource
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"configMapRef" Text -> Maybe V1ConfigMapEnvSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ConfigMapEnvSource
v1EnvFromSourceConfigMapRef
      , Text
"prefix" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EnvFromSourcePrefix
      , Text
"secretRef" Text -> Maybe V1SecretEnvSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SecretEnvSource
v1EnvFromSourceSecretRef
      ]


-- | Construct a value of type 'V1EnvFromSource' (by applying it's required fields, if any)
mkV1EnvFromSource
  :: V1EnvFromSource
mkV1EnvFromSource :: V1EnvFromSource
mkV1EnvFromSource =
  V1EnvFromSource :: Maybe V1ConfigMapEnvSource
-> Maybe Text -> Maybe V1SecretEnvSource -> V1EnvFromSource
V1EnvFromSource
  { v1EnvFromSourceConfigMapRef :: Maybe V1ConfigMapEnvSource
v1EnvFromSourceConfigMapRef = Maybe V1ConfigMapEnvSource
forall a. Maybe a
Nothing
  , v1EnvFromSourcePrefix :: Maybe Text
v1EnvFromSourcePrefix = Maybe Text
forall a. Maybe a
Nothing
  , v1EnvFromSourceSecretRef :: Maybe V1SecretEnvSource
v1EnvFromSourceSecretRef = Maybe V1SecretEnvSource
forall a. Maybe a
Nothing
  }

-- ** V1EnvVar
-- | V1EnvVar
-- EnvVar represents an environment variable present in a Container.
data V1EnvVar = V1EnvVar
  { V1EnvVar -> Text
v1EnvVarName :: !(Text) -- ^ /Required/ "name" - Name of the environment variable. Must be a C_IDENTIFIER.
  , V1EnvVar -> Maybe Text
v1EnvVarValue :: !(Maybe Text) -- ^ "value" - Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \&quot;\&quot;.
  , V1EnvVar -> Maybe V1EnvVarSource
v1EnvVarValueFrom :: !(Maybe V1EnvVarSource) -- ^ "valueFrom"
  } deriving (Int -> V1EnvVar -> ShowS
[V1EnvVar] -> ShowS
V1EnvVar -> String
(Int -> V1EnvVar -> ShowS)
-> (V1EnvVar -> String) -> ([V1EnvVar] -> ShowS) -> Show V1EnvVar
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1EnvVar] -> ShowS
$cshowList :: [V1EnvVar] -> ShowS
show :: V1EnvVar -> String
$cshow :: V1EnvVar -> String
showsPrec :: Int -> V1EnvVar -> ShowS
$cshowsPrec :: Int -> V1EnvVar -> ShowS
P.Show, V1EnvVar -> V1EnvVar -> Bool
(V1EnvVar -> V1EnvVar -> Bool)
-> (V1EnvVar -> V1EnvVar -> Bool) -> Eq V1EnvVar
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1EnvVar -> V1EnvVar -> Bool
$c/= :: V1EnvVar -> V1EnvVar -> Bool
== :: V1EnvVar -> V1EnvVar -> Bool
$c== :: V1EnvVar -> V1EnvVar -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1EnvVar
instance A.FromJSON V1EnvVar where
  parseJSON :: Value -> Parser V1EnvVar
parseJSON = String -> (Object -> Parser V1EnvVar) -> Value -> Parser V1EnvVar
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1EnvVar" ((Object -> Parser V1EnvVar) -> Value -> Parser V1EnvVar)
-> (Object -> Parser V1EnvVar) -> Value -> Parser V1EnvVar
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Maybe Text -> Maybe V1EnvVarSource -> V1EnvVar
V1EnvVar
      (Text -> Maybe Text -> Maybe V1EnvVarSource -> V1EnvVar)
-> Parser Text
-> Parser (Maybe Text -> Maybe V1EnvVarSource -> V1EnvVar)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser (Maybe Text -> Maybe V1EnvVarSource -> V1EnvVar)
-> Parser (Maybe Text) -> Parser (Maybe V1EnvVarSource -> V1EnvVar)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"value")
      Parser (Maybe V1EnvVarSource -> V1EnvVar)
-> Parser (Maybe V1EnvVarSource) -> Parser V1EnvVar
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1EnvVarSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"valueFrom")

-- | ToJSON V1EnvVar
instance A.ToJSON V1EnvVar where
  toJSON :: V1EnvVar -> Value
toJSON V1EnvVar {Maybe Text
Maybe V1EnvVarSource
Text
v1EnvVarValueFrom :: Maybe V1EnvVarSource
v1EnvVarValue :: Maybe Text
v1EnvVarName :: Text
v1EnvVarValueFrom :: V1EnvVar -> Maybe V1EnvVarSource
v1EnvVarValue :: V1EnvVar -> Maybe Text
v1EnvVarName :: V1EnvVar -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1EnvVarName
      , Text
"value" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EnvVarValue
      , Text
"valueFrom" Text -> Maybe V1EnvVarSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1EnvVarSource
v1EnvVarValueFrom
      ]


-- | Construct a value of type 'V1EnvVar' (by applying it's required fields, if any)
mkV1EnvVar
  :: Text -- ^ 'v1EnvVarName': Name of the environment variable. Must be a C_IDENTIFIER.
  -> V1EnvVar
mkV1EnvVar :: Text -> V1EnvVar
mkV1EnvVar Text
v1EnvVarName =
  V1EnvVar :: Text -> Maybe Text -> Maybe V1EnvVarSource -> V1EnvVar
V1EnvVar
  { Text
v1EnvVarName :: Text
v1EnvVarName :: Text
v1EnvVarName
  , v1EnvVarValue :: Maybe Text
v1EnvVarValue = Maybe Text
forall a. Maybe a
Nothing
  , v1EnvVarValueFrom :: Maybe V1EnvVarSource
v1EnvVarValueFrom = Maybe V1EnvVarSource
forall a. Maybe a
Nothing
  }

-- ** V1EnvVarSource
-- | V1EnvVarSource
-- EnvVarSource represents a source for the value of an EnvVar.
data V1EnvVarSource = V1EnvVarSource
  { V1EnvVarSource -> Maybe V1ConfigMapKeySelector
v1EnvVarSourceConfigMapKeyRef :: !(Maybe V1ConfigMapKeySelector) -- ^ "configMapKeyRef"
  , V1EnvVarSource -> Maybe V1ObjectFieldSelector
v1EnvVarSourceFieldRef :: !(Maybe V1ObjectFieldSelector) -- ^ "fieldRef"
  , V1EnvVarSource -> Maybe V1ResourceFieldSelector
v1EnvVarSourceResourceFieldRef :: !(Maybe V1ResourceFieldSelector) -- ^ "resourceFieldRef"
  , V1EnvVarSource -> Maybe V1SecretKeySelector
v1EnvVarSourceSecretKeyRef :: !(Maybe V1SecretKeySelector) -- ^ "secretKeyRef"
  } deriving (Int -> V1EnvVarSource -> ShowS
[V1EnvVarSource] -> ShowS
V1EnvVarSource -> String
(Int -> V1EnvVarSource -> ShowS)
-> (V1EnvVarSource -> String)
-> ([V1EnvVarSource] -> ShowS)
-> Show V1EnvVarSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1EnvVarSource] -> ShowS
$cshowList :: [V1EnvVarSource] -> ShowS
show :: V1EnvVarSource -> String
$cshow :: V1EnvVarSource -> String
showsPrec :: Int -> V1EnvVarSource -> ShowS
$cshowsPrec :: Int -> V1EnvVarSource -> ShowS
P.Show, V1EnvVarSource -> V1EnvVarSource -> Bool
(V1EnvVarSource -> V1EnvVarSource -> Bool)
-> (V1EnvVarSource -> V1EnvVarSource -> Bool) -> Eq V1EnvVarSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1EnvVarSource -> V1EnvVarSource -> Bool
$c/= :: V1EnvVarSource -> V1EnvVarSource -> Bool
== :: V1EnvVarSource -> V1EnvVarSource -> Bool
$c== :: V1EnvVarSource -> V1EnvVarSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1EnvVarSource
instance A.FromJSON V1EnvVarSource where
  parseJSON :: Value -> Parser V1EnvVarSource
parseJSON = String
-> (Object -> Parser V1EnvVarSource)
-> Value
-> Parser V1EnvVarSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1EnvVarSource" ((Object -> Parser V1EnvVarSource)
 -> Value -> Parser V1EnvVarSource)
-> (Object -> Parser V1EnvVarSource)
-> Value
-> Parser V1EnvVarSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1ConfigMapKeySelector
-> Maybe V1ObjectFieldSelector
-> Maybe V1ResourceFieldSelector
-> Maybe V1SecretKeySelector
-> V1EnvVarSource
V1EnvVarSource
      (Maybe V1ConfigMapKeySelector
 -> Maybe V1ObjectFieldSelector
 -> Maybe V1ResourceFieldSelector
 -> Maybe V1SecretKeySelector
 -> V1EnvVarSource)
-> Parser (Maybe V1ConfigMapKeySelector)
-> Parser
     (Maybe V1ObjectFieldSelector
      -> Maybe V1ResourceFieldSelector
      -> Maybe V1SecretKeySelector
      -> V1EnvVarSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1ConfigMapKeySelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"configMapKeyRef")
      Parser
  (Maybe V1ObjectFieldSelector
   -> Maybe V1ResourceFieldSelector
   -> Maybe V1SecretKeySelector
   -> V1EnvVarSource)
-> Parser (Maybe V1ObjectFieldSelector)
-> Parser
     (Maybe V1ResourceFieldSelector
      -> Maybe V1SecretKeySelector -> V1EnvVarSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectFieldSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fieldRef")
      Parser
  (Maybe V1ResourceFieldSelector
   -> Maybe V1SecretKeySelector -> V1EnvVarSource)
-> Parser (Maybe V1ResourceFieldSelector)
-> Parser (Maybe V1SecretKeySelector -> V1EnvVarSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ResourceFieldSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resourceFieldRef")
      Parser (Maybe V1SecretKeySelector -> V1EnvVarSource)
-> Parser (Maybe V1SecretKeySelector) -> Parser V1EnvVarSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SecretKeySelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretKeyRef")

-- | ToJSON V1EnvVarSource
instance A.ToJSON V1EnvVarSource where
  toJSON :: V1EnvVarSource -> Value
toJSON V1EnvVarSource {Maybe V1SecretKeySelector
Maybe V1ResourceFieldSelector
Maybe V1ObjectFieldSelector
Maybe V1ConfigMapKeySelector
v1EnvVarSourceSecretKeyRef :: Maybe V1SecretKeySelector
v1EnvVarSourceResourceFieldRef :: Maybe V1ResourceFieldSelector
v1EnvVarSourceFieldRef :: Maybe V1ObjectFieldSelector
v1EnvVarSourceConfigMapKeyRef :: Maybe V1ConfigMapKeySelector
v1EnvVarSourceSecretKeyRef :: V1EnvVarSource -> Maybe V1SecretKeySelector
v1EnvVarSourceResourceFieldRef :: V1EnvVarSource -> Maybe V1ResourceFieldSelector
v1EnvVarSourceFieldRef :: V1EnvVarSource -> Maybe V1ObjectFieldSelector
v1EnvVarSourceConfigMapKeyRef :: V1EnvVarSource -> Maybe V1ConfigMapKeySelector
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"configMapKeyRef" Text -> Maybe V1ConfigMapKeySelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ConfigMapKeySelector
v1EnvVarSourceConfigMapKeyRef
      , Text
"fieldRef" Text -> Maybe V1ObjectFieldSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectFieldSelector
v1EnvVarSourceFieldRef
      , Text
"resourceFieldRef" Text -> Maybe V1ResourceFieldSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ResourceFieldSelector
v1EnvVarSourceResourceFieldRef
      , Text
"secretKeyRef" Text -> Maybe V1SecretKeySelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SecretKeySelector
v1EnvVarSourceSecretKeyRef
      ]


-- | Construct a value of type 'V1EnvVarSource' (by applying it's required fields, if any)
mkV1EnvVarSource
  :: V1EnvVarSource
mkV1EnvVarSource :: V1EnvVarSource
mkV1EnvVarSource =
  V1EnvVarSource :: Maybe V1ConfigMapKeySelector
-> Maybe V1ObjectFieldSelector
-> Maybe V1ResourceFieldSelector
-> Maybe V1SecretKeySelector
-> V1EnvVarSource
V1EnvVarSource
  { v1EnvVarSourceConfigMapKeyRef :: Maybe V1ConfigMapKeySelector
v1EnvVarSourceConfigMapKeyRef = Maybe V1ConfigMapKeySelector
forall a. Maybe a
Nothing
  , v1EnvVarSourceFieldRef :: Maybe V1ObjectFieldSelector
v1EnvVarSourceFieldRef = Maybe V1ObjectFieldSelector
forall a. Maybe a
Nothing
  , v1EnvVarSourceResourceFieldRef :: Maybe V1ResourceFieldSelector
v1EnvVarSourceResourceFieldRef = Maybe V1ResourceFieldSelector
forall a. Maybe a
Nothing
  , v1EnvVarSourceSecretKeyRef :: Maybe V1SecretKeySelector
v1EnvVarSourceSecretKeyRef = Maybe V1SecretKeySelector
forall a. Maybe a
Nothing
  }

-- ** V1EphemeralContainer
-- | V1EphemeralContainer
-- An EphemeralContainer is a container that may be added temporarily to an existing pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a pod is removed or restarted. If an ephemeral container causes a pod to exceed its resource allocation, the pod may be evicted. Ephemeral containers may not be added by directly updating the pod spec. They must be added via the pod's ephemeralcontainers subresource, and they will appear in the pod spec once added. This is an alpha feature enabled by the EphemeralContainers feature flag.
data V1EphemeralContainer = V1EphemeralContainer
  { V1EphemeralContainer -> Maybe [Text]
v1EphemeralContainerArgs :: !(Maybe [Text]) -- ^ "args" - Arguments to the entrypoint. The docker image&#39;s CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container&#39;s environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
  , V1EphemeralContainer -> Maybe [Text]
v1EphemeralContainerCommand :: !(Maybe [Text]) -- ^ "command" - Entrypoint array. Not executed within a shell. The docker image&#39;s ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container&#39;s environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
  , V1EphemeralContainer -> Maybe [V1EnvVar]
v1EphemeralContainerEnv :: !(Maybe [V1EnvVar]) -- ^ "env" - List of environment variables to set in the container. Cannot be updated.
  , V1EphemeralContainer -> Maybe [V1EnvFromSource]
v1EphemeralContainerEnvFrom :: !(Maybe [V1EnvFromSource]) -- ^ "envFrom" - List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.
  , V1EphemeralContainer -> Maybe Text
v1EphemeralContainerImage :: !(Maybe Text) -- ^ "image" - Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
  , V1EphemeralContainer -> Maybe Text
v1EphemeralContainerImagePullPolicy :: !(Maybe Text) -- ^ "imagePullPolicy" - Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
  , V1EphemeralContainer -> Maybe V1Lifecycle
v1EphemeralContainerLifecycle :: !(Maybe V1Lifecycle) -- ^ "lifecycle"
  , V1EphemeralContainer -> Maybe V1Probe
v1EphemeralContainerLivenessProbe :: !(Maybe V1Probe) -- ^ "livenessProbe"
  , V1EphemeralContainer -> Text
v1EphemeralContainerName :: !(Text) -- ^ /Required/ "name" - Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.
  , V1EphemeralContainer -> Maybe [V1ContainerPort]
v1EphemeralContainerPorts :: !(Maybe [V1ContainerPort]) -- ^ "ports" - Ports are not allowed for ephemeral containers.
  , V1EphemeralContainer -> Maybe V1Probe
v1EphemeralContainerReadinessProbe :: !(Maybe V1Probe) -- ^ "readinessProbe"
  , V1EphemeralContainer -> Maybe V1ResourceRequirements
v1EphemeralContainerResources :: !(Maybe V1ResourceRequirements) -- ^ "resources"
  , V1EphemeralContainer -> Maybe V1SecurityContext
v1EphemeralContainerSecurityContext :: !(Maybe V1SecurityContext) -- ^ "securityContext"
  , V1EphemeralContainer -> Maybe V1Probe
v1EphemeralContainerStartupProbe :: !(Maybe V1Probe) -- ^ "startupProbe"
  , V1EphemeralContainer -> Maybe Bool
v1EphemeralContainerStdin :: !(Maybe Bool) -- ^ "stdin" - Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.
  , V1EphemeralContainer -> Maybe Bool
v1EphemeralContainerStdinOnce :: !(Maybe Bool) -- ^ "stdinOnce" - Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false
  , V1EphemeralContainer -> Maybe Text
v1EphemeralContainerTargetContainerName :: !(Maybe Text) -- ^ "targetContainerName" - If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container is run in whatever namespaces are shared for the pod. Note that the container runtime must support this feature.
  , V1EphemeralContainer -> Maybe Text
v1EphemeralContainerTerminationMessagePath :: !(Maybe Text) -- ^ "terminationMessagePath" - Optional: Path at which the file to which the container&#39;s termination message will be written is mounted into the container&#39;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.
  , V1EphemeralContainer -> Maybe Text
v1EphemeralContainerTerminationMessagePolicy :: !(Maybe Text) -- ^ "terminationMessagePolicy" - Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
  , V1EphemeralContainer -> Maybe Bool
v1EphemeralContainerTty :: !(Maybe Bool) -- ^ "tty" - Whether this container should allocate a TTY for itself, also requires &#39;stdin&#39; to be true. Default is false.
  , V1EphemeralContainer -> Maybe [V1VolumeDevice]
v1EphemeralContainerVolumeDevices :: !(Maybe [V1VolumeDevice]) -- ^ "volumeDevices" - volumeDevices is the list of block devices to be used by the container. This is a beta feature.
  , V1EphemeralContainer -> Maybe [V1VolumeMount]
v1EphemeralContainerVolumeMounts :: !(Maybe [V1VolumeMount]) -- ^ "volumeMounts" - Pod volumes to mount into the container&#39;s filesystem. Cannot be updated.
  , V1EphemeralContainer -> Maybe Text
v1EphemeralContainerWorkingDir :: !(Maybe Text) -- ^ "workingDir" - Container&#39;s working directory. If not specified, the container runtime&#39;s default will be used, which might be configured in the container image. Cannot be updated.
  } deriving (Int -> V1EphemeralContainer -> ShowS
[V1EphemeralContainer] -> ShowS
V1EphemeralContainer -> String
(Int -> V1EphemeralContainer -> ShowS)
-> (V1EphemeralContainer -> String)
-> ([V1EphemeralContainer] -> ShowS)
-> Show V1EphemeralContainer
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1EphemeralContainer] -> ShowS
$cshowList :: [V1EphemeralContainer] -> ShowS
show :: V1EphemeralContainer -> String
$cshow :: V1EphemeralContainer -> String
showsPrec :: Int -> V1EphemeralContainer -> ShowS
$cshowsPrec :: Int -> V1EphemeralContainer -> ShowS
P.Show, V1EphemeralContainer -> V1EphemeralContainer -> Bool
(V1EphemeralContainer -> V1EphemeralContainer -> Bool)
-> (V1EphemeralContainer -> V1EphemeralContainer -> Bool)
-> Eq V1EphemeralContainer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1EphemeralContainer -> V1EphemeralContainer -> Bool
$c/= :: V1EphemeralContainer -> V1EphemeralContainer -> Bool
== :: V1EphemeralContainer -> V1EphemeralContainer -> Bool
$c== :: V1EphemeralContainer -> V1EphemeralContainer -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1EphemeralContainer
instance A.FromJSON V1EphemeralContainer where
  parseJSON :: Value -> Parser V1EphemeralContainer
parseJSON = String
-> (Object -> Parser V1EphemeralContainer)
-> Value
-> Parser V1EphemeralContainer
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1EphemeralContainer" ((Object -> Parser V1EphemeralContainer)
 -> Value -> Parser V1EphemeralContainer)
-> (Object -> Parser V1EphemeralContainer)
-> Value
-> Parser V1EphemeralContainer
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Maybe [Text]
-> Maybe [V1EnvVar]
-> Maybe [V1EnvFromSource]
-> Maybe Text
-> Maybe Text
-> Maybe V1Lifecycle
-> Maybe V1Probe
-> Text
-> Maybe [V1ContainerPort]
-> Maybe V1Probe
-> Maybe V1ResourceRequirements
-> Maybe V1SecurityContext
-> Maybe V1Probe
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe [V1VolumeDevice]
-> Maybe [V1VolumeMount]
-> Maybe Text
-> V1EphemeralContainer
V1EphemeralContainer
      (Maybe [Text]
 -> Maybe [Text]
 -> Maybe [V1EnvVar]
 -> Maybe [V1EnvFromSource]
 -> Maybe Text
 -> Maybe Text
 -> Maybe V1Lifecycle
 -> Maybe V1Probe
 -> Text
 -> Maybe [V1ContainerPort]
 -> Maybe V1Probe
 -> Maybe V1ResourceRequirements
 -> Maybe V1SecurityContext
 -> Maybe V1Probe
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe [V1VolumeDevice]
 -> Maybe [V1VolumeMount]
 -> Maybe Text
 -> V1EphemeralContainer)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe [V1EnvVar]
      -> Maybe [V1EnvFromSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1Lifecycle
      -> Maybe V1Probe
      -> Text
      -> Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"args")
      Parser
  (Maybe [Text]
   -> Maybe [V1EnvVar]
   -> Maybe [V1EnvFromSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1Lifecycle
   -> Maybe V1Probe
   -> Text
   -> Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [V1EnvVar]
      -> Maybe [V1EnvFromSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1Lifecycle
      -> Maybe V1Probe
      -> Text
      -> Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"command")
      Parser
  (Maybe [V1EnvVar]
   -> Maybe [V1EnvFromSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1Lifecycle
   -> Maybe V1Probe
   -> Text
   -> Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe [V1EnvVar])
-> Parser
     (Maybe [V1EnvFromSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1Lifecycle
      -> Maybe V1Probe
      -> Text
      -> Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1EnvVar])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"env")
      Parser
  (Maybe [V1EnvFromSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1Lifecycle
   -> Maybe V1Probe
   -> Text
   -> Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe [V1EnvFromSource])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe V1Lifecycle
      -> Maybe V1Probe
      -> Text
      -> Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1EnvFromSource])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"envFrom")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe V1Lifecycle
   -> Maybe V1Probe
   -> Text
   -> Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1Lifecycle
      -> Maybe V1Probe
      -> Text
      -> Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"image")
      Parser
  (Maybe Text
   -> Maybe V1Lifecycle
   -> Maybe V1Probe
   -> Text
   -> Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1Lifecycle
      -> Maybe V1Probe
      -> Text
      -> Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"imagePullPolicy")
      Parser
  (Maybe V1Lifecycle
   -> Maybe V1Probe
   -> Text
   -> Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe V1Lifecycle)
-> Parser
     (Maybe V1Probe
      -> Text
      -> Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1Lifecycle)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lifecycle")
      Parser
  (Maybe V1Probe
   -> Text
   -> Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe V1Probe)
-> Parser
     (Text
      -> Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1Probe)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"livenessProbe")
      Parser
  (Text
   -> Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser Text
-> Parser
     (Maybe [V1ContainerPort]
      -> Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Maybe [V1ContainerPort]
   -> Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe [V1ContainerPort])
-> Parser
     (Maybe V1Probe
      -> Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1ContainerPort])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ports")
      Parser
  (Maybe V1Probe
   -> Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe V1Probe)
-> Parser
     (Maybe V1ResourceRequirements
      -> Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1Probe)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readinessProbe")
      Parser
  (Maybe V1ResourceRequirements
   -> Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe V1ResourceRequirements)
-> Parser
     (Maybe V1SecurityContext
      -> Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ResourceRequirements)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resources")
      Parser
  (Maybe V1SecurityContext
   -> Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe V1SecurityContext)
-> Parser
     (Maybe V1Probe
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SecurityContext)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"securityContext")
      Parser
  (Maybe V1Probe
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe V1Probe)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1Probe)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"startupProbe")
      Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"stdin")
      Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"stdinOnce")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"targetContainerName")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"terminationMessagePath")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount]
      -> Maybe Text
      -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"terminationMessagePolicy")
      Parser
  (Maybe Bool
   -> Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount]
   -> Maybe Text
   -> V1EphemeralContainer)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [V1VolumeDevice]
      -> Maybe [V1VolumeMount] -> Maybe Text -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"tty")
      Parser
  (Maybe [V1VolumeDevice]
   -> Maybe [V1VolumeMount] -> Maybe Text -> V1EphemeralContainer)
-> Parser (Maybe [V1VolumeDevice])
-> Parser
     (Maybe [V1VolumeMount] -> Maybe Text -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1VolumeDevice])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeDevices")
      Parser
  (Maybe [V1VolumeMount] -> Maybe Text -> V1EphemeralContainer)
-> Parser (Maybe [V1VolumeMount])
-> Parser (Maybe Text -> V1EphemeralContainer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1VolumeMount])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeMounts")
      Parser (Maybe Text -> V1EphemeralContainer)
-> Parser (Maybe Text) -> Parser V1EphemeralContainer
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"workingDir")

-- | ToJSON V1EphemeralContainer
instance A.ToJSON V1EphemeralContainer where
  toJSON :: V1EphemeralContainer -> Value
toJSON V1EphemeralContainer {Maybe Bool
Maybe [Text]
Maybe [V1VolumeMount]
Maybe [V1VolumeDevice]
Maybe [V1EnvVar]
Maybe [V1EnvFromSource]
Maybe [V1ContainerPort]
Maybe Text
Maybe V1SecurityContext
Maybe V1ResourceRequirements
Maybe V1Probe
Maybe V1Lifecycle
Text
v1EphemeralContainerWorkingDir :: Maybe Text
v1EphemeralContainerVolumeMounts :: Maybe [V1VolumeMount]
v1EphemeralContainerVolumeDevices :: Maybe [V1VolumeDevice]
v1EphemeralContainerTty :: Maybe Bool
v1EphemeralContainerTerminationMessagePolicy :: Maybe Text
v1EphemeralContainerTerminationMessagePath :: Maybe Text
v1EphemeralContainerTargetContainerName :: Maybe Text
v1EphemeralContainerStdinOnce :: Maybe Bool
v1EphemeralContainerStdin :: Maybe Bool
v1EphemeralContainerStartupProbe :: Maybe V1Probe
v1EphemeralContainerSecurityContext :: Maybe V1SecurityContext
v1EphemeralContainerResources :: Maybe V1ResourceRequirements
v1EphemeralContainerReadinessProbe :: Maybe V1Probe
v1EphemeralContainerPorts :: Maybe [V1ContainerPort]
v1EphemeralContainerName :: Text
v1EphemeralContainerLivenessProbe :: Maybe V1Probe
v1EphemeralContainerLifecycle :: Maybe V1Lifecycle
v1EphemeralContainerImagePullPolicy :: Maybe Text
v1EphemeralContainerImage :: Maybe Text
v1EphemeralContainerEnvFrom :: Maybe [V1EnvFromSource]
v1EphemeralContainerEnv :: Maybe [V1EnvVar]
v1EphemeralContainerCommand :: Maybe [Text]
v1EphemeralContainerArgs :: Maybe [Text]
v1EphemeralContainerWorkingDir :: V1EphemeralContainer -> Maybe Text
v1EphemeralContainerVolumeMounts :: V1EphemeralContainer -> Maybe [V1VolumeMount]
v1EphemeralContainerVolumeDevices :: V1EphemeralContainer -> Maybe [V1VolumeDevice]
v1EphemeralContainerTty :: V1EphemeralContainer -> Maybe Bool
v1EphemeralContainerTerminationMessagePolicy :: V1EphemeralContainer -> Maybe Text
v1EphemeralContainerTerminationMessagePath :: V1EphemeralContainer -> Maybe Text
v1EphemeralContainerTargetContainerName :: V1EphemeralContainer -> Maybe Text
v1EphemeralContainerStdinOnce :: V1EphemeralContainer -> Maybe Bool
v1EphemeralContainerStdin :: V1EphemeralContainer -> Maybe Bool
v1EphemeralContainerStartupProbe :: V1EphemeralContainer -> Maybe V1Probe
v1EphemeralContainerSecurityContext :: V1EphemeralContainer -> Maybe V1SecurityContext
v1EphemeralContainerResources :: V1EphemeralContainer -> Maybe V1ResourceRequirements
v1EphemeralContainerReadinessProbe :: V1EphemeralContainer -> Maybe V1Probe
v1EphemeralContainerPorts :: V1EphemeralContainer -> Maybe [V1ContainerPort]
v1EphemeralContainerName :: V1EphemeralContainer -> Text
v1EphemeralContainerLivenessProbe :: V1EphemeralContainer -> Maybe V1Probe
v1EphemeralContainerLifecycle :: V1EphemeralContainer -> Maybe V1Lifecycle
v1EphemeralContainerImagePullPolicy :: V1EphemeralContainer -> Maybe Text
v1EphemeralContainerImage :: V1EphemeralContainer -> Maybe Text
v1EphemeralContainerEnvFrom :: V1EphemeralContainer -> Maybe [V1EnvFromSource]
v1EphemeralContainerEnv :: V1EphemeralContainer -> Maybe [V1EnvVar]
v1EphemeralContainerCommand :: V1EphemeralContainer -> Maybe [Text]
v1EphemeralContainerArgs :: V1EphemeralContainer -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"args" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1EphemeralContainerArgs
      , Text
"command" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1EphemeralContainerCommand
      , Text
"env" Text -> Maybe [V1EnvVar] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1EnvVar]
v1EphemeralContainerEnv
      , Text
"envFrom" Text -> Maybe [V1EnvFromSource] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1EnvFromSource]
v1EphemeralContainerEnvFrom
      , Text
"image" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EphemeralContainerImage
      , Text
"imagePullPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EphemeralContainerImagePullPolicy
      , Text
"lifecycle" Text -> Maybe V1Lifecycle -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1Lifecycle
v1EphemeralContainerLifecycle
      , Text
"livenessProbe" Text -> Maybe V1Probe -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1Probe
v1EphemeralContainerLivenessProbe
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1EphemeralContainerName
      , Text
"ports" Text -> Maybe [V1ContainerPort] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ContainerPort]
v1EphemeralContainerPorts
      , Text
"readinessProbe" Text -> Maybe V1Probe -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1Probe
v1EphemeralContainerReadinessProbe
      , Text
"resources" Text -> Maybe V1ResourceRequirements -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ResourceRequirements
v1EphemeralContainerResources
      , Text
"securityContext" Text -> Maybe V1SecurityContext -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SecurityContext
v1EphemeralContainerSecurityContext
      , Text
"startupProbe" Text -> Maybe V1Probe -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1Probe
v1EphemeralContainerStartupProbe
      , Text
"stdin" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1EphemeralContainerStdin
      , Text
"stdinOnce" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1EphemeralContainerStdinOnce
      , Text
"targetContainerName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EphemeralContainerTargetContainerName
      , Text
"terminationMessagePath" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EphemeralContainerTerminationMessagePath
      , Text
"terminationMessagePolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EphemeralContainerTerminationMessagePolicy
      , Text
"tty" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1EphemeralContainerTty
      , Text
"volumeDevices" Text -> Maybe [V1VolumeDevice] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1VolumeDevice]
v1EphemeralContainerVolumeDevices
      , Text
"volumeMounts" Text -> Maybe [V1VolumeMount] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1VolumeMount]
v1EphemeralContainerVolumeMounts
      , Text
"workingDir" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EphemeralContainerWorkingDir
      ]


-- | Construct a value of type 'V1EphemeralContainer' (by applying it's required fields, if any)
mkV1EphemeralContainer
  :: Text -- ^ 'v1EphemeralContainerName': Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.
  -> V1EphemeralContainer
mkV1EphemeralContainer :: Text -> V1EphemeralContainer
mkV1EphemeralContainer Text
v1EphemeralContainerName =
  V1EphemeralContainer :: Maybe [Text]
-> Maybe [Text]
-> Maybe [V1EnvVar]
-> Maybe [V1EnvFromSource]
-> Maybe Text
-> Maybe Text
-> Maybe V1Lifecycle
-> Maybe V1Probe
-> Text
-> Maybe [V1ContainerPort]
-> Maybe V1Probe
-> Maybe V1ResourceRequirements
-> Maybe V1SecurityContext
-> Maybe V1Probe
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe [V1VolumeDevice]
-> Maybe [V1VolumeMount]
-> Maybe Text
-> V1EphemeralContainer
V1EphemeralContainer
  { v1EphemeralContainerArgs :: Maybe [Text]
v1EphemeralContainerArgs = Maybe [Text]
forall a. Maybe a
Nothing
  , v1EphemeralContainerCommand :: Maybe [Text]
v1EphemeralContainerCommand = Maybe [Text]
forall a. Maybe a
Nothing
  , v1EphemeralContainerEnv :: Maybe [V1EnvVar]
v1EphemeralContainerEnv = Maybe [V1EnvVar]
forall a. Maybe a
Nothing
  , v1EphemeralContainerEnvFrom :: Maybe [V1EnvFromSource]
v1EphemeralContainerEnvFrom = Maybe [V1EnvFromSource]
forall a. Maybe a
Nothing
  , v1EphemeralContainerImage :: Maybe Text
v1EphemeralContainerImage = Maybe Text
forall a. Maybe a
Nothing
  , v1EphemeralContainerImagePullPolicy :: Maybe Text
v1EphemeralContainerImagePullPolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1EphemeralContainerLifecycle :: Maybe V1Lifecycle
v1EphemeralContainerLifecycle = Maybe V1Lifecycle
forall a. Maybe a
Nothing
  , v1EphemeralContainerLivenessProbe :: Maybe V1Probe
v1EphemeralContainerLivenessProbe = Maybe V1Probe
forall a. Maybe a
Nothing
  , Text
v1EphemeralContainerName :: Text
v1EphemeralContainerName :: Text
v1EphemeralContainerName
  , v1EphemeralContainerPorts :: Maybe [V1ContainerPort]
v1EphemeralContainerPorts = Maybe [V1ContainerPort]
forall a. Maybe a
Nothing
  , v1EphemeralContainerReadinessProbe :: Maybe V1Probe
v1EphemeralContainerReadinessProbe = Maybe V1Probe
forall a. Maybe a
Nothing
  , v1EphemeralContainerResources :: Maybe V1ResourceRequirements
v1EphemeralContainerResources = Maybe V1ResourceRequirements
forall a. Maybe a
Nothing
  , v1EphemeralContainerSecurityContext :: Maybe V1SecurityContext
v1EphemeralContainerSecurityContext = Maybe V1SecurityContext
forall a. Maybe a
Nothing
  , v1EphemeralContainerStartupProbe :: Maybe V1Probe
v1EphemeralContainerStartupProbe = Maybe V1Probe
forall a. Maybe a
Nothing
  , v1EphemeralContainerStdin :: Maybe Bool
v1EphemeralContainerStdin = Maybe Bool
forall a. Maybe a
Nothing
  , v1EphemeralContainerStdinOnce :: Maybe Bool
v1EphemeralContainerStdinOnce = Maybe Bool
forall a. Maybe a
Nothing
  , v1EphemeralContainerTargetContainerName :: Maybe Text
v1EphemeralContainerTargetContainerName = Maybe Text
forall a. Maybe a
Nothing
  , v1EphemeralContainerTerminationMessagePath :: Maybe Text
v1EphemeralContainerTerminationMessagePath = Maybe Text
forall a. Maybe a
Nothing
  , v1EphemeralContainerTerminationMessagePolicy :: Maybe Text
v1EphemeralContainerTerminationMessagePolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1EphemeralContainerTty :: Maybe Bool
v1EphemeralContainerTty = Maybe Bool
forall a. Maybe a
Nothing
  , v1EphemeralContainerVolumeDevices :: Maybe [V1VolumeDevice]
v1EphemeralContainerVolumeDevices = Maybe [V1VolumeDevice]
forall a. Maybe a
Nothing
  , v1EphemeralContainerVolumeMounts :: Maybe [V1VolumeMount]
v1EphemeralContainerVolumeMounts = Maybe [V1VolumeMount]
forall a. Maybe a
Nothing
  , v1EphemeralContainerWorkingDir :: Maybe Text
v1EphemeralContainerWorkingDir = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1Event
-- | V1Event
-- Event is a report of an event somewhere in the cluster.
data V1Event = V1Event
  { V1Event -> Maybe Text
v1EventAction :: !(Maybe Text) -- ^ "action" - What action was taken/failed regarding to the Regarding object.
  , V1Event -> Maybe Text
v1EventApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1Event -> Maybe Int
v1EventCount :: !(Maybe Int) -- ^ "count" - The number of times this event has occurred.
  , V1Event -> Maybe DateTime
v1EventEventTime :: !(Maybe DateTime) -- ^ "eventTime" - Time when this Event was first observed.
  , V1Event -> Maybe DateTime
v1EventFirstTimestamp :: !(Maybe DateTime) -- ^ "firstTimestamp" - The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
  , V1Event -> V1ObjectReference
v1EventInvolvedObject :: !(V1ObjectReference) -- ^ /Required/ "involvedObject"
  , V1Event -> Maybe Text
v1EventKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1Event -> Maybe DateTime
v1EventLastTimestamp :: !(Maybe DateTime) -- ^ "lastTimestamp" - The time at which the most recent occurrence of this event was recorded.
  , V1Event -> Maybe Text
v1EventMessage :: !(Maybe Text) -- ^ "message" - A human-readable description of the status of this operation.
  , V1Event -> V1ObjectMeta
v1EventMetadata :: !(V1ObjectMeta) -- ^ /Required/ "metadata"
  , V1Event -> Maybe Text
v1EventReason :: !(Maybe Text) -- ^ "reason" - This should be a short, machine understandable string that gives the reason for the transition into the object&#39;s current status.
  , V1Event -> Maybe V1ObjectReference
v1EventRelated :: !(Maybe V1ObjectReference) -- ^ "related"
  , V1Event -> Maybe Text
v1EventReportingComponent :: !(Maybe Text) -- ^ "reportingComponent" - Name of the controller that emitted this Event, e.g. &#x60;kubernetes.io/kubelet&#x60;.
  , V1Event -> Maybe Text
v1EventReportingInstance :: !(Maybe Text) -- ^ "reportingInstance" - ID of the controller instance, e.g. &#x60;kubelet-xyzf&#x60;.
  , V1Event -> Maybe V1EventSeries
v1EventSeries :: !(Maybe V1EventSeries) -- ^ "series"
  , V1Event -> Maybe V1EventSource
v1EventSource :: !(Maybe V1EventSource) -- ^ "source"
  , V1Event -> Maybe Text
v1EventType :: !(Maybe Text) -- ^ "type" - Type of this event (Normal, Warning), new types could be added in the future
  } deriving (Int -> V1Event -> ShowS
[V1Event] -> ShowS
V1Event -> String
(Int -> V1Event -> ShowS)
-> (V1Event -> String) -> ([V1Event] -> ShowS) -> Show V1Event
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Event] -> ShowS
$cshowList :: [V1Event] -> ShowS
show :: V1Event -> String
$cshow :: V1Event -> String
showsPrec :: Int -> V1Event -> ShowS
$cshowsPrec :: Int -> V1Event -> ShowS
P.Show, V1Event -> V1Event -> Bool
(V1Event -> V1Event -> Bool)
-> (V1Event -> V1Event -> Bool) -> Eq V1Event
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Event -> V1Event -> Bool
$c/= :: V1Event -> V1Event -> Bool
== :: V1Event -> V1Event -> Bool
$c== :: V1Event -> V1Event -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Event
instance A.FromJSON V1Event where
  parseJSON :: Value -> Parser V1Event
parseJSON = String -> (Object -> Parser V1Event) -> Value -> Parser V1Event
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Event" ((Object -> Parser V1Event) -> Value -> Parser V1Event)
-> (Object -> Parser V1Event) -> Value -> Parser V1Event
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe DateTime
-> Maybe DateTime
-> V1ObjectReference
-> Maybe Text
-> Maybe DateTime
-> Maybe Text
-> V1ObjectMeta
-> Maybe Text
-> Maybe V1ObjectReference
-> Maybe Text
-> Maybe Text
-> Maybe V1EventSeries
-> Maybe V1EventSource
-> Maybe Text
-> V1Event
V1Event
      (Maybe Text
 -> Maybe Text
 -> Maybe Int
 -> Maybe DateTime
 -> Maybe DateTime
 -> V1ObjectReference
 -> Maybe Text
 -> Maybe DateTime
 -> Maybe Text
 -> V1ObjectMeta
 -> Maybe Text
 -> Maybe V1ObjectReference
 -> Maybe Text
 -> Maybe Text
 -> Maybe V1EventSeries
 -> Maybe V1EventSource
 -> Maybe Text
 -> V1Event)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe DateTime
      -> Maybe DateTime
      -> V1ObjectReference
      -> Maybe Text
      -> Maybe DateTime
      -> Maybe Text
      -> V1ObjectMeta
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1EventSeries
      -> Maybe V1EventSource
      -> Maybe Text
      -> V1Event)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"action")
      Parser
  (Maybe Text
   -> Maybe Int
   -> Maybe DateTime
   -> Maybe DateTime
   -> V1ObjectReference
   -> Maybe Text
   -> Maybe DateTime
   -> Maybe Text
   -> V1ObjectMeta
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1EventSeries
   -> Maybe V1EventSource
   -> Maybe Text
   -> V1Event)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe DateTime
      -> Maybe DateTime
      -> V1ObjectReference
      -> Maybe Text
      -> Maybe DateTime
      -> Maybe Text
      -> V1ObjectMeta
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1EventSeries
      -> Maybe V1EventSource
      -> Maybe Text
      -> V1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Int
   -> Maybe DateTime
   -> Maybe DateTime
   -> V1ObjectReference
   -> Maybe Text
   -> Maybe DateTime
   -> Maybe Text
   -> V1ObjectMeta
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1EventSeries
   -> Maybe V1EventSource
   -> Maybe Text
   -> V1Event)
-> Parser (Maybe Int)
-> Parser
     (Maybe DateTime
      -> Maybe DateTime
      -> V1ObjectReference
      -> Maybe Text
      -> Maybe DateTime
      -> Maybe Text
      -> V1ObjectMeta
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1EventSeries
      -> Maybe V1EventSource
      -> Maybe Text
      -> V1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"count")
      Parser
  (Maybe DateTime
   -> Maybe DateTime
   -> V1ObjectReference
   -> Maybe Text
   -> Maybe DateTime
   -> Maybe Text
   -> V1ObjectMeta
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1EventSeries
   -> Maybe V1EventSource
   -> Maybe Text
   -> V1Event)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe DateTime
      -> V1ObjectReference
      -> Maybe Text
      -> Maybe DateTime
      -> Maybe Text
      -> V1ObjectMeta
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1EventSeries
      -> Maybe V1EventSource
      -> Maybe Text
      -> V1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"eventTime")
      Parser
  (Maybe DateTime
   -> V1ObjectReference
   -> Maybe Text
   -> Maybe DateTime
   -> Maybe Text
   -> V1ObjectMeta
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1EventSeries
   -> Maybe V1EventSource
   -> Maybe Text
   -> V1Event)
-> Parser (Maybe DateTime)
-> Parser
     (V1ObjectReference
      -> Maybe Text
      -> Maybe DateTime
      -> Maybe Text
      -> V1ObjectMeta
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1EventSeries
      -> Maybe V1EventSource
      -> Maybe Text
      -> V1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"firstTimestamp")
      Parser
  (V1ObjectReference
   -> Maybe Text
   -> Maybe DateTime
   -> Maybe Text
   -> V1ObjectMeta
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1EventSeries
   -> Maybe V1EventSource
   -> Maybe Text
   -> V1Event)
-> Parser V1ObjectReference
-> Parser
     (Maybe Text
      -> Maybe DateTime
      -> Maybe Text
      -> V1ObjectMeta
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1EventSeries
      -> Maybe V1EventSource
      -> Maybe Text
      -> V1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1ObjectReference
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"involvedObject")
      Parser
  (Maybe Text
   -> Maybe DateTime
   -> Maybe Text
   -> V1ObjectMeta
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1EventSeries
   -> Maybe V1EventSource
   -> Maybe Text
   -> V1Event)
-> Parser (Maybe Text)
-> Parser
     (Maybe DateTime
      -> Maybe Text
      -> V1ObjectMeta
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1EventSeries
      -> Maybe V1EventSource
      -> Maybe Text
      -> V1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe DateTime
   -> Maybe Text
   -> V1ObjectMeta
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1EventSeries
   -> Maybe V1EventSource
   -> Maybe Text
   -> V1Event)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> V1ObjectMeta
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1EventSeries
      -> Maybe V1EventSource
      -> Maybe Text
      -> V1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTimestamp")
      Parser
  (Maybe Text
   -> V1ObjectMeta
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1EventSeries
   -> Maybe V1EventSource
   -> Maybe Text
   -> V1Event)
-> Parser (Maybe Text)
-> Parser
     (V1ObjectMeta
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1EventSeries
      -> Maybe V1EventSource
      -> Maybe Text
      -> V1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser
  (V1ObjectMeta
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1EventSeries
   -> Maybe V1EventSource
   -> Maybe Text
   -> V1Event)
-> Parser V1ObjectMeta
-> Parser
     (Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1EventSeries
      -> Maybe V1EventSource
      -> Maybe Text
      -> V1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1ObjectMeta
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"metadata")
      Parser
  (Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1EventSeries
   -> Maybe V1EventSource
   -> Maybe Text
   -> V1Event)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1EventSeries
      -> Maybe V1EventSource
      -> Maybe Text
      -> V1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser
  (Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1EventSeries
   -> Maybe V1EventSource
   -> Maybe Text
   -> V1Event)
-> Parser (Maybe V1ObjectReference)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe V1EventSeries
      -> Maybe V1EventSource
      -> Maybe Text
      -> V1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"related")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe V1EventSeries
   -> Maybe V1EventSource
   -> Maybe Text
   -> V1Event)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1EventSeries
      -> Maybe V1EventSource
      -> Maybe Text
      -> V1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reportingComponent")
      Parser
  (Maybe Text
   -> Maybe V1EventSeries
   -> Maybe V1EventSource
   -> Maybe Text
   -> V1Event)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1EventSeries
      -> Maybe V1EventSource -> Maybe Text -> V1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reportingInstance")
      Parser
  (Maybe V1EventSeries
   -> Maybe V1EventSource -> Maybe Text -> V1Event)
-> Parser (Maybe V1EventSeries)
-> Parser (Maybe V1EventSource -> Maybe Text -> V1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1EventSeries)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"series")
      Parser (Maybe V1EventSource -> Maybe Text -> V1Event)
-> Parser (Maybe V1EventSource) -> Parser (Maybe Text -> V1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1EventSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"source")
      Parser (Maybe Text -> V1Event)
-> Parser (Maybe Text) -> Parser V1Event
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")

-- | ToJSON V1Event
instance A.ToJSON V1Event where
  toJSON :: V1Event -> Value
toJSON V1Event {Maybe Int
Maybe Text
Maybe DateTime
Maybe V1ObjectReference
Maybe V1EventSource
Maybe V1EventSeries
V1ObjectReference
V1ObjectMeta
v1EventType :: Maybe Text
v1EventSource :: Maybe V1EventSource
v1EventSeries :: Maybe V1EventSeries
v1EventReportingInstance :: Maybe Text
v1EventReportingComponent :: Maybe Text
v1EventRelated :: Maybe V1ObjectReference
v1EventReason :: Maybe Text
v1EventMetadata :: V1ObjectMeta
v1EventMessage :: Maybe Text
v1EventLastTimestamp :: Maybe DateTime
v1EventKind :: Maybe Text
v1EventInvolvedObject :: V1ObjectReference
v1EventFirstTimestamp :: Maybe DateTime
v1EventEventTime :: Maybe DateTime
v1EventCount :: Maybe Int
v1EventApiVersion :: Maybe Text
v1EventAction :: Maybe Text
v1EventType :: V1Event -> Maybe Text
v1EventSource :: V1Event -> Maybe V1EventSource
v1EventSeries :: V1Event -> Maybe V1EventSeries
v1EventReportingInstance :: V1Event -> Maybe Text
v1EventReportingComponent :: V1Event -> Maybe Text
v1EventRelated :: V1Event -> Maybe V1ObjectReference
v1EventReason :: V1Event -> Maybe Text
v1EventMetadata :: V1Event -> V1ObjectMeta
v1EventMessage :: V1Event -> Maybe Text
v1EventLastTimestamp :: V1Event -> Maybe DateTime
v1EventKind :: V1Event -> Maybe Text
v1EventInvolvedObject :: V1Event -> V1ObjectReference
v1EventFirstTimestamp :: V1Event -> Maybe DateTime
v1EventEventTime :: V1Event -> Maybe DateTime
v1EventCount :: V1Event -> Maybe Int
v1EventApiVersion :: V1Event -> Maybe Text
v1EventAction :: V1Event -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"action" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EventAction
      , Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EventApiVersion
      , Text
"count" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1EventCount
      , Text
"eventTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1EventEventTime
      , Text
"firstTimestamp" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1EventFirstTimestamp
      , Text
"involvedObject" Text -> V1ObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1ObjectReference
v1EventInvolvedObject
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EventKind
      , Text
"lastTimestamp" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1EventLastTimestamp
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EventMessage
      , Text
"metadata" Text -> V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1ObjectMeta
v1EventMetadata
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EventReason
      , Text
"related" Text -> Maybe V1ObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectReference
v1EventRelated
      , Text
"reportingComponent" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EventReportingComponent
      , Text
"reportingInstance" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EventReportingInstance
      , Text
"series" Text -> Maybe V1EventSeries -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1EventSeries
v1EventSeries
      , Text
"source" Text -> Maybe V1EventSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1EventSource
v1EventSource
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EventType
      ]


-- | Construct a value of type 'V1Event' (by applying it's required fields, if any)
mkV1Event
  :: V1ObjectReference -- ^ 'v1EventInvolvedObject' 
  -> V1ObjectMeta -- ^ 'v1EventMetadata' 
  -> V1Event
mkV1Event :: V1ObjectReference -> V1ObjectMeta -> V1Event
mkV1Event V1ObjectReference
v1EventInvolvedObject V1ObjectMeta
v1EventMetadata =
  V1Event :: Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe DateTime
-> Maybe DateTime
-> V1ObjectReference
-> Maybe Text
-> Maybe DateTime
-> Maybe Text
-> V1ObjectMeta
-> Maybe Text
-> Maybe V1ObjectReference
-> Maybe Text
-> Maybe Text
-> Maybe V1EventSeries
-> Maybe V1EventSource
-> Maybe Text
-> V1Event
V1Event
  { v1EventAction :: Maybe Text
v1EventAction = Maybe Text
forall a. Maybe a
Nothing
  , v1EventApiVersion :: Maybe Text
v1EventApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1EventCount :: Maybe Int
v1EventCount = Maybe Int
forall a. Maybe a
Nothing
  , v1EventEventTime :: Maybe DateTime
v1EventEventTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1EventFirstTimestamp :: Maybe DateTime
v1EventFirstTimestamp = Maybe DateTime
forall a. Maybe a
Nothing
  , V1ObjectReference
v1EventInvolvedObject :: V1ObjectReference
v1EventInvolvedObject :: V1ObjectReference
v1EventInvolvedObject
  , v1EventKind :: Maybe Text
v1EventKind = Maybe Text
forall a. Maybe a
Nothing
  , v1EventLastTimestamp :: Maybe DateTime
v1EventLastTimestamp = Maybe DateTime
forall a. Maybe a
Nothing
  , v1EventMessage :: Maybe Text
v1EventMessage = Maybe Text
forall a. Maybe a
Nothing
  , V1ObjectMeta
v1EventMetadata :: V1ObjectMeta
v1EventMetadata :: V1ObjectMeta
v1EventMetadata
  , v1EventReason :: Maybe Text
v1EventReason = Maybe Text
forall a. Maybe a
Nothing
  , v1EventRelated :: Maybe V1ObjectReference
v1EventRelated = Maybe V1ObjectReference
forall a. Maybe a
Nothing
  , v1EventReportingComponent :: Maybe Text
v1EventReportingComponent = Maybe Text
forall a. Maybe a
Nothing
  , v1EventReportingInstance :: Maybe Text
v1EventReportingInstance = Maybe Text
forall a. Maybe a
Nothing
  , v1EventSeries :: Maybe V1EventSeries
v1EventSeries = Maybe V1EventSeries
forall a. Maybe a
Nothing
  , v1EventSource :: Maybe V1EventSource
v1EventSource = Maybe V1EventSource
forall a. Maybe a
Nothing
  , v1EventType :: Maybe Text
v1EventType = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1EventList
-- | V1EventList
-- EventList is a list of events.
data V1EventList = V1EventList
  { V1EventList -> Maybe Text
v1EventListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1EventList -> [V1Event]
v1EventListItems :: !([V1Event]) -- ^ /Required/ "items" - List of events
  , V1EventList -> Maybe Text
v1EventListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1EventList -> Maybe V1ListMeta
v1EventListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1EventList -> ShowS
[V1EventList] -> ShowS
V1EventList -> String
(Int -> V1EventList -> ShowS)
-> (V1EventList -> String)
-> ([V1EventList] -> ShowS)
-> Show V1EventList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1EventList] -> ShowS
$cshowList :: [V1EventList] -> ShowS
show :: V1EventList -> String
$cshow :: V1EventList -> String
showsPrec :: Int -> V1EventList -> ShowS
$cshowsPrec :: Int -> V1EventList -> ShowS
P.Show, V1EventList -> V1EventList -> Bool
(V1EventList -> V1EventList -> Bool)
-> (V1EventList -> V1EventList -> Bool) -> Eq V1EventList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1EventList -> V1EventList -> Bool
$c/= :: V1EventList -> V1EventList -> Bool
== :: V1EventList -> V1EventList -> Bool
$c== :: V1EventList -> V1EventList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1EventList
instance A.FromJSON V1EventList where
  parseJSON :: Value -> Parser V1EventList
parseJSON = String
-> (Object -> Parser V1EventList) -> Value -> Parser V1EventList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1EventList" ((Object -> Parser V1EventList) -> Value -> Parser V1EventList)
-> (Object -> Parser V1EventList) -> Value -> Parser V1EventList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1Event] -> Maybe Text -> Maybe V1ListMeta -> V1EventList
V1EventList
      (Maybe Text
 -> [V1Event] -> Maybe Text -> Maybe V1ListMeta -> V1EventList)
-> Parser (Maybe Text)
-> Parser
     ([V1Event] -> Maybe Text -> Maybe V1ListMeta -> V1EventList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser ([V1Event] -> Maybe Text -> Maybe V1ListMeta -> V1EventList)
-> Parser [V1Event]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1EventList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1Event]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1EventList)
-> Parser (Maybe Text) -> Parser (Maybe V1ListMeta -> V1EventList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1EventList)
-> Parser (Maybe V1ListMeta) -> Parser V1EventList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1EventList
instance A.ToJSON V1EventList where
  toJSON :: V1EventList -> Value
toJSON V1EventList {[V1Event]
Maybe Text
Maybe V1ListMeta
v1EventListMetadata :: Maybe V1ListMeta
v1EventListKind :: Maybe Text
v1EventListItems :: [V1Event]
v1EventListApiVersion :: Maybe Text
v1EventListMetadata :: V1EventList -> Maybe V1ListMeta
v1EventListKind :: V1EventList -> Maybe Text
v1EventListItems :: V1EventList -> [V1Event]
v1EventListApiVersion :: V1EventList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EventListApiVersion
      , Text
"items" Text -> [V1Event] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1Event]
v1EventListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EventListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1EventListMetadata
      ]


-- | Construct a value of type 'V1EventList' (by applying it's required fields, if any)
mkV1EventList
  :: [V1Event] -- ^ 'v1EventListItems': List of events
  -> V1EventList
mkV1EventList :: [V1Event] -> V1EventList
mkV1EventList [V1Event]
v1EventListItems =
  V1EventList :: Maybe Text
-> [V1Event] -> Maybe Text -> Maybe V1ListMeta -> V1EventList
V1EventList
  { v1EventListApiVersion :: Maybe Text
v1EventListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1Event]
v1EventListItems :: [V1Event]
v1EventListItems :: [V1Event]
v1EventListItems
  , v1EventListKind :: Maybe Text
v1EventListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1EventListMetadata :: Maybe V1ListMeta
v1EventListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1EventSeries
-- | V1EventSeries
-- EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.
data V1EventSeries = V1EventSeries
  { V1EventSeries -> Maybe Int
v1EventSeriesCount :: !(Maybe Int) -- ^ "count" - Number of occurrences in this series up to the last heartbeat time
  , V1EventSeries -> Maybe DateTime
v1EventSeriesLastObservedTime :: !(Maybe DateTime) -- ^ "lastObservedTime" - Time of the last occurrence observed
  , V1EventSeries -> Maybe Text
v1EventSeriesState :: !(Maybe Text) -- ^ "state" - State of this Series: Ongoing or Finished Deprecated. Planned removal for 1.18
  } deriving (Int -> V1EventSeries -> ShowS
[V1EventSeries] -> ShowS
V1EventSeries -> String
(Int -> V1EventSeries -> ShowS)
-> (V1EventSeries -> String)
-> ([V1EventSeries] -> ShowS)
-> Show V1EventSeries
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1EventSeries] -> ShowS
$cshowList :: [V1EventSeries] -> ShowS
show :: V1EventSeries -> String
$cshow :: V1EventSeries -> String
showsPrec :: Int -> V1EventSeries -> ShowS
$cshowsPrec :: Int -> V1EventSeries -> ShowS
P.Show, V1EventSeries -> V1EventSeries -> Bool
(V1EventSeries -> V1EventSeries -> Bool)
-> (V1EventSeries -> V1EventSeries -> Bool) -> Eq V1EventSeries
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1EventSeries -> V1EventSeries -> Bool
$c/= :: V1EventSeries -> V1EventSeries -> Bool
== :: V1EventSeries -> V1EventSeries -> Bool
$c== :: V1EventSeries -> V1EventSeries -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1EventSeries
instance A.FromJSON V1EventSeries where
  parseJSON :: Value -> Parser V1EventSeries
parseJSON = String
-> (Object -> Parser V1EventSeries)
-> Value
-> Parser V1EventSeries
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1EventSeries" ((Object -> Parser V1EventSeries) -> Value -> Parser V1EventSeries)
-> (Object -> Parser V1EventSeries)
-> Value
-> Parser V1EventSeries
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int -> Maybe DateTime -> Maybe Text -> V1EventSeries
V1EventSeries
      (Maybe Int -> Maybe DateTime -> Maybe Text -> V1EventSeries)
-> Parser (Maybe Int)
-> Parser (Maybe DateTime -> Maybe Text -> V1EventSeries)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"count")
      Parser (Maybe DateTime -> Maybe Text -> V1EventSeries)
-> Parser (Maybe DateTime) -> Parser (Maybe Text -> V1EventSeries)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastObservedTime")
      Parser (Maybe Text -> V1EventSeries)
-> Parser (Maybe Text) -> Parser V1EventSeries
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"state")

-- | ToJSON V1EventSeries
instance A.ToJSON V1EventSeries where
  toJSON :: V1EventSeries -> Value
toJSON V1EventSeries {Maybe Int
Maybe Text
Maybe DateTime
v1EventSeriesState :: Maybe Text
v1EventSeriesLastObservedTime :: Maybe DateTime
v1EventSeriesCount :: Maybe Int
v1EventSeriesState :: V1EventSeries -> Maybe Text
v1EventSeriesLastObservedTime :: V1EventSeries -> Maybe DateTime
v1EventSeriesCount :: V1EventSeries -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"count" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1EventSeriesCount
      , Text
"lastObservedTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1EventSeriesLastObservedTime
      , Text
"state" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EventSeriesState
      ]


-- | Construct a value of type 'V1EventSeries' (by applying it's required fields, if any)
mkV1EventSeries
  :: V1EventSeries
mkV1EventSeries :: V1EventSeries
mkV1EventSeries =
  V1EventSeries :: Maybe Int -> Maybe DateTime -> Maybe Text -> V1EventSeries
V1EventSeries
  { v1EventSeriesCount :: Maybe Int
v1EventSeriesCount = Maybe Int
forall a. Maybe a
Nothing
  , v1EventSeriesLastObservedTime :: Maybe DateTime
v1EventSeriesLastObservedTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1EventSeriesState :: Maybe Text
v1EventSeriesState = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1EventSource
-- | V1EventSource
-- EventSource contains information for an event.
data V1EventSource = V1EventSource
  { V1EventSource -> Maybe Text
v1EventSourceComponent :: !(Maybe Text) -- ^ "component" - Component from which the event is generated.
  , V1EventSource -> Maybe Text
v1EventSourceHost :: !(Maybe Text) -- ^ "host" - Node name on which the event is generated.
  } deriving (Int -> V1EventSource -> ShowS
[V1EventSource] -> ShowS
V1EventSource -> String
(Int -> V1EventSource -> ShowS)
-> (V1EventSource -> String)
-> ([V1EventSource] -> ShowS)
-> Show V1EventSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1EventSource] -> ShowS
$cshowList :: [V1EventSource] -> ShowS
show :: V1EventSource -> String
$cshow :: V1EventSource -> String
showsPrec :: Int -> V1EventSource -> ShowS
$cshowsPrec :: Int -> V1EventSource -> ShowS
P.Show, V1EventSource -> V1EventSource -> Bool
(V1EventSource -> V1EventSource -> Bool)
-> (V1EventSource -> V1EventSource -> Bool) -> Eq V1EventSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1EventSource -> V1EventSource -> Bool
$c/= :: V1EventSource -> V1EventSource -> Bool
== :: V1EventSource -> V1EventSource -> Bool
$c== :: V1EventSource -> V1EventSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1EventSource
instance A.FromJSON V1EventSource where
  parseJSON :: Value -> Parser V1EventSource
parseJSON = String
-> (Object -> Parser V1EventSource)
-> Value
-> Parser V1EventSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1EventSource" ((Object -> Parser V1EventSource) -> Value -> Parser V1EventSource)
-> (Object -> Parser V1EventSource)
-> Value
-> Parser V1EventSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Text -> V1EventSource
V1EventSource
      (Maybe Text -> Maybe Text -> V1EventSource)
-> Parser (Maybe Text) -> Parser (Maybe Text -> V1EventSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"component")
      Parser (Maybe Text -> V1EventSource)
-> Parser (Maybe Text) -> Parser V1EventSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"host")

-- | ToJSON V1EventSource
instance A.ToJSON V1EventSource where
  toJSON :: V1EventSource -> Value
toJSON V1EventSource {Maybe Text
v1EventSourceHost :: Maybe Text
v1EventSourceComponent :: Maybe Text
v1EventSourceHost :: V1EventSource -> Maybe Text
v1EventSourceComponent :: V1EventSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"component" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EventSourceComponent
      , Text
"host" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1EventSourceHost
      ]


-- | Construct a value of type 'V1EventSource' (by applying it's required fields, if any)
mkV1EventSource
  :: V1EventSource
mkV1EventSource :: V1EventSource
mkV1EventSource =
  V1EventSource :: Maybe Text -> Maybe Text -> V1EventSource
V1EventSource
  { v1EventSourceComponent :: Maybe Text
v1EventSourceComponent = Maybe Text
forall a. Maybe a
Nothing
  , v1EventSourceHost :: Maybe Text
v1EventSourceHost = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1ExecAction
-- | V1ExecAction
-- ExecAction describes a \"run in container\" action.
data V1ExecAction = V1ExecAction
  { V1ExecAction -> Maybe [Text]
v1ExecActionCommand :: !(Maybe [Text]) -- ^ "command" - Command is the command line to execute inside the container, the working directory for the command  is root (&#39;/&#39;) in the container&#39;s filesystem. The command is simply exec&#39;d, it is not run inside a shell, so traditional shell instructions (&#39;|&#39;, etc) won&#39;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
  } deriving (Int -> V1ExecAction -> ShowS
[V1ExecAction] -> ShowS
V1ExecAction -> String
(Int -> V1ExecAction -> ShowS)
-> (V1ExecAction -> String)
-> ([V1ExecAction] -> ShowS)
-> Show V1ExecAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ExecAction] -> ShowS
$cshowList :: [V1ExecAction] -> ShowS
show :: V1ExecAction -> String
$cshow :: V1ExecAction -> String
showsPrec :: Int -> V1ExecAction -> ShowS
$cshowsPrec :: Int -> V1ExecAction -> ShowS
P.Show, V1ExecAction -> V1ExecAction -> Bool
(V1ExecAction -> V1ExecAction -> Bool)
-> (V1ExecAction -> V1ExecAction -> Bool) -> Eq V1ExecAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ExecAction -> V1ExecAction -> Bool
$c/= :: V1ExecAction -> V1ExecAction -> Bool
== :: V1ExecAction -> V1ExecAction -> Bool
$c== :: V1ExecAction -> V1ExecAction -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ExecAction
instance A.FromJSON V1ExecAction where
  parseJSON :: Value -> Parser V1ExecAction
parseJSON = String
-> (Object -> Parser V1ExecAction) -> Value -> Parser V1ExecAction
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ExecAction" ((Object -> Parser V1ExecAction) -> Value -> Parser V1ExecAction)
-> (Object -> Parser V1ExecAction) -> Value -> Parser V1ExecAction
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text] -> V1ExecAction
V1ExecAction
      (Maybe [Text] -> V1ExecAction)
-> Parser (Maybe [Text]) -> Parser V1ExecAction
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"command")

-- | ToJSON V1ExecAction
instance A.ToJSON V1ExecAction where
  toJSON :: V1ExecAction -> Value
toJSON V1ExecAction {Maybe [Text]
v1ExecActionCommand :: Maybe [Text]
v1ExecActionCommand :: V1ExecAction -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"command" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1ExecActionCommand
      ]


-- | Construct a value of type 'V1ExecAction' (by applying it's required fields, if any)
mkV1ExecAction
  :: V1ExecAction
mkV1ExecAction :: V1ExecAction
mkV1ExecAction =
  V1ExecAction :: Maybe [Text] -> V1ExecAction
V1ExecAction
  { v1ExecActionCommand :: Maybe [Text]
v1ExecActionCommand = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1ExternalDocumentation
-- | V1ExternalDocumentation
-- ExternalDocumentation allows referencing an external resource for extended documentation.
data V1ExternalDocumentation = V1ExternalDocumentation
  { V1ExternalDocumentation -> Maybe Text
v1ExternalDocumentationDescription :: !(Maybe Text) -- ^ "description"
  , V1ExternalDocumentation -> Maybe Text
v1ExternalDocumentationUrl :: !(Maybe Text) -- ^ "url"
  } deriving (Int -> V1ExternalDocumentation -> ShowS
[V1ExternalDocumentation] -> ShowS
V1ExternalDocumentation -> String
(Int -> V1ExternalDocumentation -> ShowS)
-> (V1ExternalDocumentation -> String)
-> ([V1ExternalDocumentation] -> ShowS)
-> Show V1ExternalDocumentation
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ExternalDocumentation] -> ShowS
$cshowList :: [V1ExternalDocumentation] -> ShowS
show :: V1ExternalDocumentation -> String
$cshow :: V1ExternalDocumentation -> String
showsPrec :: Int -> V1ExternalDocumentation -> ShowS
$cshowsPrec :: Int -> V1ExternalDocumentation -> ShowS
P.Show, V1ExternalDocumentation -> V1ExternalDocumentation -> Bool
(V1ExternalDocumentation -> V1ExternalDocumentation -> Bool)
-> (V1ExternalDocumentation -> V1ExternalDocumentation -> Bool)
-> Eq V1ExternalDocumentation
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ExternalDocumentation -> V1ExternalDocumentation -> Bool
$c/= :: V1ExternalDocumentation -> V1ExternalDocumentation -> Bool
== :: V1ExternalDocumentation -> V1ExternalDocumentation -> Bool
$c== :: V1ExternalDocumentation -> V1ExternalDocumentation -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ExternalDocumentation
instance A.FromJSON V1ExternalDocumentation where
  parseJSON :: Value -> Parser V1ExternalDocumentation
parseJSON = String
-> (Object -> Parser V1ExternalDocumentation)
-> Value
-> Parser V1ExternalDocumentation
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ExternalDocumentation" ((Object -> Parser V1ExternalDocumentation)
 -> Value -> Parser V1ExternalDocumentation)
-> (Object -> Parser V1ExternalDocumentation)
-> Value
-> Parser V1ExternalDocumentation
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Text -> V1ExternalDocumentation
V1ExternalDocumentation
      (Maybe Text -> Maybe Text -> V1ExternalDocumentation)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1ExternalDocumentation)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"description")
      Parser (Maybe Text -> V1ExternalDocumentation)
-> Parser (Maybe Text) -> Parser V1ExternalDocumentation
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"url")

-- | ToJSON V1ExternalDocumentation
instance A.ToJSON V1ExternalDocumentation where
  toJSON :: V1ExternalDocumentation -> Value
toJSON V1ExternalDocumentation {Maybe Text
v1ExternalDocumentationUrl :: Maybe Text
v1ExternalDocumentationDescription :: Maybe Text
v1ExternalDocumentationUrl :: V1ExternalDocumentation -> Maybe Text
v1ExternalDocumentationDescription :: V1ExternalDocumentation -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"description" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ExternalDocumentationDescription
      , Text
"url" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ExternalDocumentationUrl
      ]


-- | Construct a value of type 'V1ExternalDocumentation' (by applying it's required fields, if any)
mkV1ExternalDocumentation
  :: V1ExternalDocumentation
mkV1ExternalDocumentation :: V1ExternalDocumentation
mkV1ExternalDocumentation =
  V1ExternalDocumentation :: Maybe Text -> Maybe Text -> V1ExternalDocumentation
V1ExternalDocumentation
  { v1ExternalDocumentationDescription :: Maybe Text
v1ExternalDocumentationDescription = Maybe Text
forall a. Maybe a
Nothing
  , v1ExternalDocumentationUrl :: Maybe Text
v1ExternalDocumentationUrl = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1FCVolumeSource
-- | V1FCVolumeSource
-- Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.
data V1FCVolumeSource = V1FCVolumeSource
  { V1FCVolumeSource -> Maybe Text
v1FCVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. Implicitly inferred to be \&quot;ext4\&quot; if unspecified.
  , V1FCVolumeSource -> Maybe Int
v1FCVolumeSourceLun :: !(Maybe Int) -- ^ "lun" - Optional: FC target lun number
  , V1FCVolumeSource -> Maybe Bool
v1FCVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
  , V1FCVolumeSource -> Maybe [Text]
v1FCVolumeSourceTargetWwNs :: !(Maybe [Text]) -- ^ "targetWWNs" - Optional: FC target worldwide names (WWNs)
  , V1FCVolumeSource -> Maybe [Text]
v1FCVolumeSourceWwids :: !(Maybe [Text]) -- ^ "wwids" - Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
  } deriving (Int -> V1FCVolumeSource -> ShowS
[V1FCVolumeSource] -> ShowS
V1FCVolumeSource -> String
(Int -> V1FCVolumeSource -> ShowS)
-> (V1FCVolumeSource -> String)
-> ([V1FCVolumeSource] -> ShowS)
-> Show V1FCVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1FCVolumeSource] -> ShowS
$cshowList :: [V1FCVolumeSource] -> ShowS
show :: V1FCVolumeSource -> String
$cshow :: V1FCVolumeSource -> String
showsPrec :: Int -> V1FCVolumeSource -> ShowS
$cshowsPrec :: Int -> V1FCVolumeSource -> ShowS
P.Show, V1FCVolumeSource -> V1FCVolumeSource -> Bool
(V1FCVolumeSource -> V1FCVolumeSource -> Bool)
-> (V1FCVolumeSource -> V1FCVolumeSource -> Bool)
-> Eq V1FCVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1FCVolumeSource -> V1FCVolumeSource -> Bool
$c/= :: V1FCVolumeSource -> V1FCVolumeSource -> Bool
== :: V1FCVolumeSource -> V1FCVolumeSource -> Bool
$c== :: V1FCVolumeSource -> V1FCVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1FCVolumeSource
instance A.FromJSON V1FCVolumeSource where
  parseJSON :: Value -> Parser V1FCVolumeSource
parseJSON = String
-> (Object -> Parser V1FCVolumeSource)
-> Value
-> Parser V1FCVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1FCVolumeSource" ((Object -> Parser V1FCVolumeSource)
 -> Value -> Parser V1FCVolumeSource)
-> (Object -> Parser V1FCVolumeSource)
-> Value
-> Parser V1FCVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Int
-> Maybe Bool
-> Maybe [Text]
-> Maybe [Text]
-> V1FCVolumeSource
V1FCVolumeSource
      (Maybe Text
 -> Maybe Int
 -> Maybe Bool
 -> Maybe [Text]
 -> Maybe [Text]
 -> V1FCVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Bool -> Maybe [Text] -> Maybe [Text] -> V1FCVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Maybe Int
   -> Maybe Bool -> Maybe [Text] -> Maybe [Text] -> V1FCVolumeSource)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool -> Maybe [Text] -> Maybe [Text] -> V1FCVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lun")
      Parser
  (Maybe Bool -> Maybe [Text] -> Maybe [Text] -> V1FCVolumeSource)
-> Parser (Maybe Bool)
-> Parser (Maybe [Text] -> Maybe [Text] -> V1FCVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser (Maybe [Text] -> Maybe [Text] -> V1FCVolumeSource)
-> Parser (Maybe [Text])
-> Parser (Maybe [Text] -> V1FCVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"targetWWNs")
      Parser (Maybe [Text] -> V1FCVolumeSource)
-> Parser (Maybe [Text]) -> Parser V1FCVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"wwids")

-- | ToJSON V1FCVolumeSource
instance A.ToJSON V1FCVolumeSource where
  toJSON :: V1FCVolumeSource -> Value
toJSON V1FCVolumeSource {Maybe Bool
Maybe Int
Maybe [Text]
Maybe Text
v1FCVolumeSourceWwids :: Maybe [Text]
v1FCVolumeSourceTargetWwNs :: Maybe [Text]
v1FCVolumeSourceReadOnly :: Maybe Bool
v1FCVolumeSourceLun :: Maybe Int
v1FCVolumeSourceFsType :: Maybe Text
v1FCVolumeSourceWwids :: V1FCVolumeSource -> Maybe [Text]
v1FCVolumeSourceTargetWwNs :: V1FCVolumeSource -> Maybe [Text]
v1FCVolumeSourceReadOnly :: V1FCVolumeSource -> Maybe Bool
v1FCVolumeSourceLun :: V1FCVolumeSource -> Maybe Int
v1FCVolumeSourceFsType :: V1FCVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1FCVolumeSourceFsType
      , Text
"lun" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1FCVolumeSourceLun
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1FCVolumeSourceReadOnly
      , Text
"targetWWNs" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1FCVolumeSourceTargetWwNs
      , Text
"wwids" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1FCVolumeSourceWwids
      ]


-- | Construct a value of type 'V1FCVolumeSource' (by applying it's required fields, if any)
mkV1FCVolumeSource
  :: V1FCVolumeSource
mkV1FCVolumeSource :: V1FCVolumeSource
mkV1FCVolumeSource =
  V1FCVolumeSource :: Maybe Text
-> Maybe Int
-> Maybe Bool
-> Maybe [Text]
-> Maybe [Text]
-> V1FCVolumeSource
V1FCVolumeSource
  { v1FCVolumeSourceFsType :: Maybe Text
v1FCVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , v1FCVolumeSourceLun :: Maybe Int
v1FCVolumeSourceLun = Maybe Int
forall a. Maybe a
Nothing
  , v1FCVolumeSourceReadOnly :: Maybe Bool
v1FCVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , v1FCVolumeSourceTargetWwNs :: Maybe [Text]
v1FCVolumeSourceTargetWwNs = Maybe [Text]
forall a. Maybe a
Nothing
  , v1FCVolumeSourceWwids :: Maybe [Text]
v1FCVolumeSourceWwids = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1FlexPersistentVolumeSource
-- | V1FlexPersistentVolumeSource
-- FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.
data V1FlexPersistentVolumeSource = V1FlexPersistentVolumeSource
  { V1FlexPersistentVolumeSource -> Text
v1FlexPersistentVolumeSourceDriver :: !(Text) -- ^ /Required/ "driver" - Driver is the name of the driver to use for this volume.
  , V1FlexPersistentVolumeSource -> Maybe Text
v1FlexPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. The default filesystem depends on FlexVolume script.
  , V1FlexPersistentVolumeSource -> Maybe (Map String Text)
v1FlexPersistentVolumeSourceOptions :: !(Maybe (Map.Map String Text)) -- ^ "options" - Optional: Extra command options if any.
  , V1FlexPersistentVolumeSource -> Maybe Bool
v1FlexPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
  , V1FlexPersistentVolumeSource -> Maybe V1SecretReference
v1FlexPersistentVolumeSourceSecretRef :: !(Maybe V1SecretReference) -- ^ "secretRef"
  } deriving (Int -> V1FlexPersistentVolumeSource -> ShowS
[V1FlexPersistentVolumeSource] -> ShowS
V1FlexPersistentVolumeSource -> String
(Int -> V1FlexPersistentVolumeSource -> ShowS)
-> (V1FlexPersistentVolumeSource -> String)
-> ([V1FlexPersistentVolumeSource] -> ShowS)
-> Show V1FlexPersistentVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1FlexPersistentVolumeSource] -> ShowS
$cshowList :: [V1FlexPersistentVolumeSource] -> ShowS
show :: V1FlexPersistentVolumeSource -> String
$cshow :: V1FlexPersistentVolumeSource -> String
showsPrec :: Int -> V1FlexPersistentVolumeSource -> ShowS
$cshowsPrec :: Int -> V1FlexPersistentVolumeSource -> ShowS
P.Show, V1FlexPersistentVolumeSource
-> V1FlexPersistentVolumeSource -> Bool
(V1FlexPersistentVolumeSource
 -> V1FlexPersistentVolumeSource -> Bool)
-> (V1FlexPersistentVolumeSource
    -> V1FlexPersistentVolumeSource -> Bool)
-> Eq V1FlexPersistentVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1FlexPersistentVolumeSource
-> V1FlexPersistentVolumeSource -> Bool
$c/= :: V1FlexPersistentVolumeSource
-> V1FlexPersistentVolumeSource -> Bool
== :: V1FlexPersistentVolumeSource
-> V1FlexPersistentVolumeSource -> Bool
$c== :: V1FlexPersistentVolumeSource
-> V1FlexPersistentVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1FlexPersistentVolumeSource
instance A.FromJSON V1FlexPersistentVolumeSource where
  parseJSON :: Value -> Parser V1FlexPersistentVolumeSource
parseJSON = String
-> (Object -> Parser V1FlexPersistentVolumeSource)
-> Value
-> Parser V1FlexPersistentVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1FlexPersistentVolumeSource" ((Object -> Parser V1FlexPersistentVolumeSource)
 -> Value -> Parser V1FlexPersistentVolumeSource)
-> (Object -> Parser V1FlexPersistentVolumeSource)
-> Value
-> Parser V1FlexPersistentVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Maybe Text
-> Maybe (Map String Text)
-> Maybe Bool
-> Maybe V1SecretReference
-> V1FlexPersistentVolumeSource
V1FlexPersistentVolumeSource
      (Text
 -> Maybe Text
 -> Maybe (Map String Text)
 -> Maybe Bool
 -> Maybe V1SecretReference
 -> V1FlexPersistentVolumeSource)
-> Parser Text
-> Parser
     (Maybe Text
      -> Maybe (Map String Text)
      -> Maybe Bool
      -> Maybe V1SecretReference
      -> V1FlexPersistentVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"driver")
      Parser
  (Maybe Text
   -> Maybe (Map String Text)
   -> Maybe Bool
   -> Maybe V1SecretReference
   -> V1FlexPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe (Map String Text)
      -> Maybe Bool
      -> Maybe V1SecretReference
      -> V1FlexPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Maybe (Map String Text)
   -> Maybe Bool
   -> Maybe V1SecretReference
   -> V1FlexPersistentVolumeSource)
-> Parser (Maybe (Map String Text))
-> Parser
     (Maybe Bool
      -> Maybe V1SecretReference -> V1FlexPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"options")
      Parser
  (Maybe Bool
   -> Maybe V1SecretReference -> V1FlexPersistentVolumeSource)
-> Parser (Maybe Bool)
-> Parser (Maybe V1SecretReference -> V1FlexPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser (Maybe V1SecretReference -> V1FlexPersistentVolumeSource)
-> Parser (Maybe V1SecretReference)
-> Parser V1FlexPersistentVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SecretReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretRef")

-- | ToJSON V1FlexPersistentVolumeSource
instance A.ToJSON V1FlexPersistentVolumeSource where
  toJSON :: V1FlexPersistentVolumeSource -> Value
toJSON V1FlexPersistentVolumeSource {Maybe Bool
Maybe Text
Maybe (Map String Text)
Maybe V1SecretReference
Text
v1FlexPersistentVolumeSourceSecretRef :: Maybe V1SecretReference
v1FlexPersistentVolumeSourceReadOnly :: Maybe Bool
v1FlexPersistentVolumeSourceOptions :: Maybe (Map String Text)
v1FlexPersistentVolumeSourceFsType :: Maybe Text
v1FlexPersistentVolumeSourceDriver :: Text
v1FlexPersistentVolumeSourceSecretRef :: V1FlexPersistentVolumeSource -> Maybe V1SecretReference
v1FlexPersistentVolumeSourceReadOnly :: V1FlexPersistentVolumeSource -> Maybe Bool
v1FlexPersistentVolumeSourceOptions :: V1FlexPersistentVolumeSource -> Maybe (Map String Text)
v1FlexPersistentVolumeSourceFsType :: V1FlexPersistentVolumeSource -> Maybe Text
v1FlexPersistentVolumeSourceDriver :: V1FlexPersistentVolumeSource -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"driver" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1FlexPersistentVolumeSourceDriver
      , Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1FlexPersistentVolumeSourceFsType
      , Text
"options" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1FlexPersistentVolumeSourceOptions
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1FlexPersistentVolumeSourceReadOnly
      , Text
"secretRef" Text -> Maybe V1SecretReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SecretReference
v1FlexPersistentVolumeSourceSecretRef
      ]


-- | Construct a value of type 'V1FlexPersistentVolumeSource' (by applying it's required fields, if any)
mkV1FlexPersistentVolumeSource
  :: Text -- ^ 'v1FlexPersistentVolumeSourceDriver': Driver is the name of the driver to use for this volume.
  -> V1FlexPersistentVolumeSource
mkV1FlexPersistentVolumeSource :: Text -> V1FlexPersistentVolumeSource
mkV1FlexPersistentVolumeSource Text
v1FlexPersistentVolumeSourceDriver =
  V1FlexPersistentVolumeSource :: Text
-> Maybe Text
-> Maybe (Map String Text)
-> Maybe Bool
-> Maybe V1SecretReference
-> V1FlexPersistentVolumeSource
V1FlexPersistentVolumeSource
  { Text
v1FlexPersistentVolumeSourceDriver :: Text
v1FlexPersistentVolumeSourceDriver :: Text
v1FlexPersistentVolumeSourceDriver
  , v1FlexPersistentVolumeSourceFsType :: Maybe Text
v1FlexPersistentVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , v1FlexPersistentVolumeSourceOptions :: Maybe (Map String Text)
v1FlexPersistentVolumeSourceOptions = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , v1FlexPersistentVolumeSourceReadOnly :: Maybe Bool
v1FlexPersistentVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , v1FlexPersistentVolumeSourceSecretRef :: Maybe V1SecretReference
v1FlexPersistentVolumeSourceSecretRef = Maybe V1SecretReference
forall a. Maybe a
Nothing
  }

-- ** V1FlexVolumeSource
-- | V1FlexVolumeSource
-- FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.
data V1FlexVolumeSource = V1FlexVolumeSource
  { V1FlexVolumeSource -> Text
v1FlexVolumeSourceDriver :: !(Text) -- ^ /Required/ "driver" - Driver is the name of the driver to use for this volume.
  , V1FlexVolumeSource -> Maybe Text
v1FlexVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. The default filesystem depends on FlexVolume script.
  , V1FlexVolumeSource -> Maybe (Map String Text)
v1FlexVolumeSourceOptions :: !(Maybe (Map.Map String Text)) -- ^ "options" - Optional: Extra command options if any.
  , V1FlexVolumeSource -> Maybe Bool
v1FlexVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
  , V1FlexVolumeSource -> Maybe V1LocalObjectReference
v1FlexVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"
  } deriving (Int -> V1FlexVolumeSource -> ShowS
[V1FlexVolumeSource] -> ShowS
V1FlexVolumeSource -> String
(Int -> V1FlexVolumeSource -> ShowS)
-> (V1FlexVolumeSource -> String)
-> ([V1FlexVolumeSource] -> ShowS)
-> Show V1FlexVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1FlexVolumeSource] -> ShowS
$cshowList :: [V1FlexVolumeSource] -> ShowS
show :: V1FlexVolumeSource -> String
$cshow :: V1FlexVolumeSource -> String
showsPrec :: Int -> V1FlexVolumeSource -> ShowS
$cshowsPrec :: Int -> V1FlexVolumeSource -> ShowS
P.Show, V1FlexVolumeSource -> V1FlexVolumeSource -> Bool
(V1FlexVolumeSource -> V1FlexVolumeSource -> Bool)
-> (V1FlexVolumeSource -> V1FlexVolumeSource -> Bool)
-> Eq V1FlexVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1FlexVolumeSource -> V1FlexVolumeSource -> Bool
$c/= :: V1FlexVolumeSource -> V1FlexVolumeSource -> Bool
== :: V1FlexVolumeSource -> V1FlexVolumeSource -> Bool
$c== :: V1FlexVolumeSource -> V1FlexVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1FlexVolumeSource
instance A.FromJSON V1FlexVolumeSource where
  parseJSON :: Value -> Parser V1FlexVolumeSource
parseJSON = String
-> (Object -> Parser V1FlexVolumeSource)
-> Value
-> Parser V1FlexVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1FlexVolumeSource" ((Object -> Parser V1FlexVolumeSource)
 -> Value -> Parser V1FlexVolumeSource)
-> (Object -> Parser V1FlexVolumeSource)
-> Value
-> Parser V1FlexVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Maybe Text
-> Maybe (Map String Text)
-> Maybe Bool
-> Maybe V1LocalObjectReference
-> V1FlexVolumeSource
V1FlexVolumeSource
      (Text
 -> Maybe Text
 -> Maybe (Map String Text)
 -> Maybe Bool
 -> Maybe V1LocalObjectReference
 -> V1FlexVolumeSource)
-> Parser Text
-> Parser
     (Maybe Text
      -> Maybe (Map String Text)
      -> Maybe Bool
      -> Maybe V1LocalObjectReference
      -> V1FlexVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"driver")
      Parser
  (Maybe Text
   -> Maybe (Map String Text)
   -> Maybe Bool
   -> Maybe V1LocalObjectReference
   -> V1FlexVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe (Map String Text)
      -> Maybe Bool
      -> Maybe V1LocalObjectReference
      -> V1FlexVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Maybe (Map String Text)
   -> Maybe Bool
   -> Maybe V1LocalObjectReference
   -> V1FlexVolumeSource)
-> Parser (Maybe (Map String Text))
-> Parser
     (Maybe Bool -> Maybe V1LocalObjectReference -> V1FlexVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"options")
      Parser
  (Maybe Bool -> Maybe V1LocalObjectReference -> V1FlexVolumeSource)
-> Parser (Maybe Bool)
-> Parser (Maybe V1LocalObjectReference -> V1FlexVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser (Maybe V1LocalObjectReference -> V1FlexVolumeSource)
-> Parser (Maybe V1LocalObjectReference)
-> Parser V1FlexVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LocalObjectReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretRef")

-- | ToJSON V1FlexVolumeSource
instance A.ToJSON V1FlexVolumeSource where
  toJSON :: V1FlexVolumeSource -> Value
toJSON V1FlexVolumeSource {Maybe Bool
Maybe Text
Maybe (Map String Text)
Maybe V1LocalObjectReference
Text
v1FlexVolumeSourceSecretRef :: Maybe V1LocalObjectReference
v1FlexVolumeSourceReadOnly :: Maybe Bool
v1FlexVolumeSourceOptions :: Maybe (Map String Text)
v1FlexVolumeSourceFsType :: Maybe Text
v1FlexVolumeSourceDriver :: Text
v1FlexVolumeSourceSecretRef :: V1FlexVolumeSource -> Maybe V1LocalObjectReference
v1FlexVolumeSourceReadOnly :: V1FlexVolumeSource -> Maybe Bool
v1FlexVolumeSourceOptions :: V1FlexVolumeSource -> Maybe (Map String Text)
v1FlexVolumeSourceFsType :: V1FlexVolumeSource -> Maybe Text
v1FlexVolumeSourceDriver :: V1FlexVolumeSource -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"driver" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1FlexVolumeSourceDriver
      , Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1FlexVolumeSourceFsType
      , Text
"options" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1FlexVolumeSourceOptions
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1FlexVolumeSourceReadOnly
      , Text
"secretRef" Text -> Maybe V1LocalObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LocalObjectReference
v1FlexVolumeSourceSecretRef
      ]


-- | Construct a value of type 'V1FlexVolumeSource' (by applying it's required fields, if any)
mkV1FlexVolumeSource
  :: Text -- ^ 'v1FlexVolumeSourceDriver': Driver is the name of the driver to use for this volume.
  -> V1FlexVolumeSource
mkV1FlexVolumeSource :: Text -> V1FlexVolumeSource
mkV1FlexVolumeSource Text
v1FlexVolumeSourceDriver =
  V1FlexVolumeSource :: Text
-> Maybe Text
-> Maybe (Map String Text)
-> Maybe Bool
-> Maybe V1LocalObjectReference
-> V1FlexVolumeSource
V1FlexVolumeSource
  { Text
v1FlexVolumeSourceDriver :: Text
v1FlexVolumeSourceDriver :: Text
v1FlexVolumeSourceDriver
  , v1FlexVolumeSourceFsType :: Maybe Text
v1FlexVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , v1FlexVolumeSourceOptions :: Maybe (Map String Text)
v1FlexVolumeSourceOptions = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , v1FlexVolumeSourceReadOnly :: Maybe Bool
v1FlexVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , v1FlexVolumeSourceSecretRef :: Maybe V1LocalObjectReference
v1FlexVolumeSourceSecretRef = Maybe V1LocalObjectReference
forall a. Maybe a
Nothing
  }

-- ** V1FlockerVolumeSource
-- | V1FlockerVolumeSource
-- Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.
data V1FlockerVolumeSource = V1FlockerVolumeSource
  { V1FlockerVolumeSource -> Maybe Text
v1FlockerVolumeSourceDatasetName :: !(Maybe Text) -- ^ "datasetName" - Name of the dataset stored as metadata -&gt; name on the dataset for Flocker should be considered as deprecated
  , V1FlockerVolumeSource -> Maybe Text
v1FlockerVolumeSourceDatasetUuid :: !(Maybe Text) -- ^ "datasetUUID" - UUID of the dataset. This is unique identifier of a Flocker dataset
  } deriving (Int -> V1FlockerVolumeSource -> ShowS
[V1FlockerVolumeSource] -> ShowS
V1FlockerVolumeSource -> String
(Int -> V1FlockerVolumeSource -> ShowS)
-> (V1FlockerVolumeSource -> String)
-> ([V1FlockerVolumeSource] -> ShowS)
-> Show V1FlockerVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1FlockerVolumeSource] -> ShowS
$cshowList :: [V1FlockerVolumeSource] -> ShowS
show :: V1FlockerVolumeSource -> String
$cshow :: V1FlockerVolumeSource -> String
showsPrec :: Int -> V1FlockerVolumeSource -> ShowS
$cshowsPrec :: Int -> V1FlockerVolumeSource -> ShowS
P.Show, V1FlockerVolumeSource -> V1FlockerVolumeSource -> Bool
(V1FlockerVolumeSource -> V1FlockerVolumeSource -> Bool)
-> (V1FlockerVolumeSource -> V1FlockerVolumeSource -> Bool)
-> Eq V1FlockerVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1FlockerVolumeSource -> V1FlockerVolumeSource -> Bool
$c/= :: V1FlockerVolumeSource -> V1FlockerVolumeSource -> Bool
== :: V1FlockerVolumeSource -> V1FlockerVolumeSource -> Bool
$c== :: V1FlockerVolumeSource -> V1FlockerVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1FlockerVolumeSource
instance A.FromJSON V1FlockerVolumeSource where
  parseJSON :: Value -> Parser V1FlockerVolumeSource
parseJSON = String
-> (Object -> Parser V1FlockerVolumeSource)
-> Value
-> Parser V1FlockerVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1FlockerVolumeSource" ((Object -> Parser V1FlockerVolumeSource)
 -> Value -> Parser V1FlockerVolumeSource)
-> (Object -> Parser V1FlockerVolumeSource)
-> Value
-> Parser V1FlockerVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Text -> V1FlockerVolumeSource
V1FlockerVolumeSource
      (Maybe Text -> Maybe Text -> V1FlockerVolumeSource)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1FlockerVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"datasetName")
      Parser (Maybe Text -> V1FlockerVolumeSource)
-> Parser (Maybe Text) -> Parser V1FlockerVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"datasetUUID")

-- | ToJSON V1FlockerVolumeSource
instance A.ToJSON V1FlockerVolumeSource where
  toJSON :: V1FlockerVolumeSource -> Value
toJSON V1FlockerVolumeSource {Maybe Text
v1FlockerVolumeSourceDatasetUuid :: Maybe Text
v1FlockerVolumeSourceDatasetName :: Maybe Text
v1FlockerVolumeSourceDatasetUuid :: V1FlockerVolumeSource -> Maybe Text
v1FlockerVolumeSourceDatasetName :: V1FlockerVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"datasetName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1FlockerVolumeSourceDatasetName
      , Text
"datasetUUID" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1FlockerVolumeSourceDatasetUuid
      ]


-- | Construct a value of type 'V1FlockerVolumeSource' (by applying it's required fields, if any)
mkV1FlockerVolumeSource
  :: V1FlockerVolumeSource
mkV1FlockerVolumeSource :: V1FlockerVolumeSource
mkV1FlockerVolumeSource =
  V1FlockerVolumeSource :: Maybe Text -> Maybe Text -> V1FlockerVolumeSource
V1FlockerVolumeSource
  { v1FlockerVolumeSourceDatasetName :: Maybe Text
v1FlockerVolumeSourceDatasetName = Maybe Text
forall a. Maybe a
Nothing
  , v1FlockerVolumeSourceDatasetUuid :: Maybe Text
v1FlockerVolumeSourceDatasetUuid = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1GCEPersistentDiskVolumeSource
-- | V1GCEPersistentDiskVolumeSource
-- Represents a Persistent Disk resource in Google Compute Engine.  A GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.
data V1GCEPersistentDiskVolumeSource = V1GCEPersistentDiskVolumeSource
  { V1GCEPersistentDiskVolumeSource -> Maybe Text
v1GCEPersistentDiskVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. Implicitly inferred to be \&quot;ext4\&quot; if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  , V1GCEPersistentDiskVolumeSource -> Maybe Int
v1GCEPersistentDiskVolumeSourcePartition :: !(Maybe Int) -- ^ "partition" - The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \&quot;1\&quot;. Similarly, the volume partition for /dev/sda is \&quot;0\&quot; (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  , V1GCEPersistentDiskVolumeSource -> Text
v1GCEPersistentDiskVolumeSourcePdName :: !(Text) -- ^ /Required/ "pdName" - Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  , V1GCEPersistentDiskVolumeSource -> Maybe Bool
v1GCEPersistentDiskVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  } deriving (Int -> V1GCEPersistentDiskVolumeSource -> ShowS
[V1GCEPersistentDiskVolumeSource] -> ShowS
V1GCEPersistentDiskVolumeSource -> String
(Int -> V1GCEPersistentDiskVolumeSource -> ShowS)
-> (V1GCEPersistentDiskVolumeSource -> String)
-> ([V1GCEPersistentDiskVolumeSource] -> ShowS)
-> Show V1GCEPersistentDiskVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1GCEPersistentDiskVolumeSource] -> ShowS
$cshowList :: [V1GCEPersistentDiskVolumeSource] -> ShowS
show :: V1GCEPersistentDiskVolumeSource -> String
$cshow :: V1GCEPersistentDiskVolumeSource -> String
showsPrec :: Int -> V1GCEPersistentDiskVolumeSource -> ShowS
$cshowsPrec :: Int -> V1GCEPersistentDiskVolumeSource -> ShowS
P.Show, V1GCEPersistentDiskVolumeSource
-> V1GCEPersistentDiskVolumeSource -> Bool
(V1GCEPersistentDiskVolumeSource
 -> V1GCEPersistentDiskVolumeSource -> Bool)
-> (V1GCEPersistentDiskVolumeSource
    -> V1GCEPersistentDiskVolumeSource -> Bool)
-> Eq V1GCEPersistentDiskVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1GCEPersistentDiskVolumeSource
-> V1GCEPersistentDiskVolumeSource -> Bool
$c/= :: V1GCEPersistentDiskVolumeSource
-> V1GCEPersistentDiskVolumeSource -> Bool
== :: V1GCEPersistentDiskVolumeSource
-> V1GCEPersistentDiskVolumeSource -> Bool
$c== :: V1GCEPersistentDiskVolumeSource
-> V1GCEPersistentDiskVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1GCEPersistentDiskVolumeSource
instance A.FromJSON V1GCEPersistentDiskVolumeSource where
  parseJSON :: Value -> Parser V1GCEPersistentDiskVolumeSource
parseJSON = String
-> (Object -> Parser V1GCEPersistentDiskVolumeSource)
-> Value
-> Parser V1GCEPersistentDiskVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1GCEPersistentDiskVolumeSource" ((Object -> Parser V1GCEPersistentDiskVolumeSource)
 -> Value -> Parser V1GCEPersistentDiskVolumeSource)
-> (Object -> Parser V1GCEPersistentDiskVolumeSource)
-> Value
-> Parser V1GCEPersistentDiskVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Int
-> Text
-> Maybe Bool
-> V1GCEPersistentDiskVolumeSource
V1GCEPersistentDiskVolumeSource
      (Maybe Text
 -> Maybe Int
 -> Text
 -> Maybe Bool
 -> V1GCEPersistentDiskVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Text -> Maybe Bool -> V1GCEPersistentDiskVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Maybe Int
   -> Text -> Maybe Bool -> V1GCEPersistentDiskVolumeSource)
-> Parser (Maybe Int)
-> Parser (Text -> Maybe Bool -> V1GCEPersistentDiskVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"partition")
      Parser (Text -> Maybe Bool -> V1GCEPersistentDiskVolumeSource)
-> Parser Text
-> Parser (Maybe Bool -> V1GCEPersistentDiskVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"pdName")
      Parser (Maybe Bool -> V1GCEPersistentDiskVolumeSource)
-> Parser (Maybe Bool) -> Parser V1GCEPersistentDiskVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")

-- | ToJSON V1GCEPersistentDiskVolumeSource
instance A.ToJSON V1GCEPersistentDiskVolumeSource where
  toJSON :: V1GCEPersistentDiskVolumeSource -> Value
toJSON V1GCEPersistentDiskVolumeSource {Maybe Bool
Maybe Int
Maybe Text
Text
v1GCEPersistentDiskVolumeSourceReadOnly :: Maybe Bool
v1GCEPersistentDiskVolumeSourcePdName :: Text
v1GCEPersistentDiskVolumeSourcePartition :: Maybe Int
v1GCEPersistentDiskVolumeSourceFsType :: Maybe Text
v1GCEPersistentDiskVolumeSourceReadOnly :: V1GCEPersistentDiskVolumeSource -> Maybe Bool
v1GCEPersistentDiskVolumeSourcePdName :: V1GCEPersistentDiskVolumeSource -> Text
v1GCEPersistentDiskVolumeSourcePartition :: V1GCEPersistentDiskVolumeSource -> Maybe Int
v1GCEPersistentDiskVolumeSourceFsType :: V1GCEPersistentDiskVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1GCEPersistentDiskVolumeSourceFsType
      , Text
"partition" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1GCEPersistentDiskVolumeSourcePartition
      , Text
"pdName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1GCEPersistentDiskVolumeSourcePdName
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1GCEPersistentDiskVolumeSourceReadOnly
      ]


-- | Construct a value of type 'V1GCEPersistentDiskVolumeSource' (by applying it's required fields, if any)
mkV1GCEPersistentDiskVolumeSource
  :: Text -- ^ 'v1GCEPersistentDiskVolumeSourcePdName': Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
  -> V1GCEPersistentDiskVolumeSource
mkV1GCEPersistentDiskVolumeSource :: Text -> V1GCEPersistentDiskVolumeSource
mkV1GCEPersistentDiskVolumeSource Text
v1GCEPersistentDiskVolumeSourcePdName =
  V1GCEPersistentDiskVolumeSource :: Maybe Text
-> Maybe Int
-> Text
-> Maybe Bool
-> V1GCEPersistentDiskVolumeSource
V1GCEPersistentDiskVolumeSource
  { v1GCEPersistentDiskVolumeSourceFsType :: Maybe Text
v1GCEPersistentDiskVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , v1GCEPersistentDiskVolumeSourcePartition :: Maybe Int
v1GCEPersistentDiskVolumeSourcePartition = Maybe Int
forall a. Maybe a
Nothing
  , Text
v1GCEPersistentDiskVolumeSourcePdName :: Text
v1GCEPersistentDiskVolumeSourcePdName :: Text
v1GCEPersistentDiskVolumeSourcePdName
  , v1GCEPersistentDiskVolumeSourceReadOnly :: Maybe Bool
v1GCEPersistentDiskVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1GitRepoVolumeSource
-- | V1GitRepoVolumeSource
-- Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.  DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.
data V1GitRepoVolumeSource = V1GitRepoVolumeSource
  { V1GitRepoVolumeSource -> Maybe Text
v1GitRepoVolumeSourceDirectory :: !(Maybe Text) -- ^ "directory" - Target directory name. Must not contain or start with &#39;..&#39;.  If &#39;.&#39; is supplied, the volume directory will be the git repository.  Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.
  , V1GitRepoVolumeSource -> Text
v1GitRepoVolumeSourceRepository :: !(Text) -- ^ /Required/ "repository" - Repository URL
  , V1GitRepoVolumeSource -> Maybe Text
v1GitRepoVolumeSourceRevision :: !(Maybe Text) -- ^ "revision" - Commit hash for the specified revision.
  } deriving (Int -> V1GitRepoVolumeSource -> ShowS
[V1GitRepoVolumeSource] -> ShowS
V1GitRepoVolumeSource -> String
(Int -> V1GitRepoVolumeSource -> ShowS)
-> (V1GitRepoVolumeSource -> String)
-> ([V1GitRepoVolumeSource] -> ShowS)
-> Show V1GitRepoVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1GitRepoVolumeSource] -> ShowS
$cshowList :: [V1GitRepoVolumeSource] -> ShowS
show :: V1GitRepoVolumeSource -> String
$cshow :: V1GitRepoVolumeSource -> String
showsPrec :: Int -> V1GitRepoVolumeSource -> ShowS
$cshowsPrec :: Int -> V1GitRepoVolumeSource -> ShowS
P.Show, V1GitRepoVolumeSource -> V1GitRepoVolumeSource -> Bool
(V1GitRepoVolumeSource -> V1GitRepoVolumeSource -> Bool)
-> (V1GitRepoVolumeSource -> V1GitRepoVolumeSource -> Bool)
-> Eq V1GitRepoVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1GitRepoVolumeSource -> V1GitRepoVolumeSource -> Bool
$c/= :: V1GitRepoVolumeSource -> V1GitRepoVolumeSource -> Bool
== :: V1GitRepoVolumeSource -> V1GitRepoVolumeSource -> Bool
$c== :: V1GitRepoVolumeSource -> V1GitRepoVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1GitRepoVolumeSource
instance A.FromJSON V1GitRepoVolumeSource where
  parseJSON :: Value -> Parser V1GitRepoVolumeSource
parseJSON = String
-> (Object -> Parser V1GitRepoVolumeSource)
-> Value
-> Parser V1GitRepoVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1GitRepoVolumeSource" ((Object -> Parser V1GitRepoVolumeSource)
 -> Value -> Parser V1GitRepoVolumeSource)
-> (Object -> Parser V1GitRepoVolumeSource)
-> Value
-> Parser V1GitRepoVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Text -> Maybe Text -> V1GitRepoVolumeSource
V1GitRepoVolumeSource
      (Maybe Text -> Text -> Maybe Text -> V1GitRepoVolumeSource)
-> Parser (Maybe Text)
-> Parser (Text -> Maybe Text -> V1GitRepoVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"directory")
      Parser (Text -> Maybe Text -> V1GitRepoVolumeSource)
-> Parser Text -> Parser (Maybe Text -> V1GitRepoVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"repository")
      Parser (Maybe Text -> V1GitRepoVolumeSource)
-> Parser (Maybe Text) -> Parser V1GitRepoVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"revision")

-- | ToJSON V1GitRepoVolumeSource
instance A.ToJSON V1GitRepoVolumeSource where
  toJSON :: V1GitRepoVolumeSource -> Value
toJSON V1GitRepoVolumeSource {Maybe Text
Text
v1GitRepoVolumeSourceRevision :: Maybe Text
v1GitRepoVolumeSourceRepository :: Text
v1GitRepoVolumeSourceDirectory :: Maybe Text
v1GitRepoVolumeSourceRevision :: V1GitRepoVolumeSource -> Maybe Text
v1GitRepoVolumeSourceRepository :: V1GitRepoVolumeSource -> Text
v1GitRepoVolumeSourceDirectory :: V1GitRepoVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"directory" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1GitRepoVolumeSourceDirectory
      , Text
"repository" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1GitRepoVolumeSourceRepository
      , Text
"revision" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1GitRepoVolumeSourceRevision
      ]


-- | Construct a value of type 'V1GitRepoVolumeSource' (by applying it's required fields, if any)
mkV1GitRepoVolumeSource
  :: Text -- ^ 'v1GitRepoVolumeSourceRepository': Repository URL
  -> V1GitRepoVolumeSource
mkV1GitRepoVolumeSource :: Text -> V1GitRepoVolumeSource
mkV1GitRepoVolumeSource Text
v1GitRepoVolumeSourceRepository =
  V1GitRepoVolumeSource :: Maybe Text -> Text -> Maybe Text -> V1GitRepoVolumeSource
V1GitRepoVolumeSource
  { v1GitRepoVolumeSourceDirectory :: Maybe Text
v1GitRepoVolumeSourceDirectory = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1GitRepoVolumeSourceRepository :: Text
v1GitRepoVolumeSourceRepository :: Text
v1GitRepoVolumeSourceRepository
  , v1GitRepoVolumeSourceRevision :: Maybe Text
v1GitRepoVolumeSourceRevision = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1GlusterfsPersistentVolumeSource
-- | V1GlusterfsPersistentVolumeSource
-- Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.
data V1GlusterfsPersistentVolumeSource = V1GlusterfsPersistentVolumeSource
  { V1GlusterfsPersistentVolumeSource -> Text
v1GlusterfsPersistentVolumeSourceEndpoints :: !(Text) -- ^ /Required/ "endpoints" - EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  , V1GlusterfsPersistentVolumeSource -> Maybe Text
v1GlusterfsPersistentVolumeSourceEndpointsNamespace :: !(Maybe Text) -- ^ "endpointsNamespace" - EndpointsNamespace is the namespace that contains Glusterfs endpoint. If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  , V1GlusterfsPersistentVolumeSource -> Text
v1GlusterfsPersistentVolumeSourcePath :: !(Text) -- ^ /Required/ "path" - Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  , V1GlusterfsPersistentVolumeSource -> Maybe Bool
v1GlusterfsPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  } deriving (Int -> V1GlusterfsPersistentVolumeSource -> ShowS
[V1GlusterfsPersistentVolumeSource] -> ShowS
V1GlusterfsPersistentVolumeSource -> String
(Int -> V1GlusterfsPersistentVolumeSource -> ShowS)
-> (V1GlusterfsPersistentVolumeSource -> String)
-> ([V1GlusterfsPersistentVolumeSource] -> ShowS)
-> Show V1GlusterfsPersistentVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1GlusterfsPersistentVolumeSource] -> ShowS
$cshowList :: [V1GlusterfsPersistentVolumeSource] -> ShowS
show :: V1GlusterfsPersistentVolumeSource -> String
$cshow :: V1GlusterfsPersistentVolumeSource -> String
showsPrec :: Int -> V1GlusterfsPersistentVolumeSource -> ShowS
$cshowsPrec :: Int -> V1GlusterfsPersistentVolumeSource -> ShowS
P.Show, V1GlusterfsPersistentVolumeSource
-> V1GlusterfsPersistentVolumeSource -> Bool
(V1GlusterfsPersistentVolumeSource
 -> V1GlusterfsPersistentVolumeSource -> Bool)
-> (V1GlusterfsPersistentVolumeSource
    -> V1GlusterfsPersistentVolumeSource -> Bool)
-> Eq V1GlusterfsPersistentVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1GlusterfsPersistentVolumeSource
-> V1GlusterfsPersistentVolumeSource -> Bool
$c/= :: V1GlusterfsPersistentVolumeSource
-> V1GlusterfsPersistentVolumeSource -> Bool
== :: V1GlusterfsPersistentVolumeSource
-> V1GlusterfsPersistentVolumeSource -> Bool
$c== :: V1GlusterfsPersistentVolumeSource
-> V1GlusterfsPersistentVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1GlusterfsPersistentVolumeSource
instance A.FromJSON V1GlusterfsPersistentVolumeSource where
  parseJSON :: Value -> Parser V1GlusterfsPersistentVolumeSource
parseJSON = String
-> (Object -> Parser V1GlusterfsPersistentVolumeSource)
-> Value
-> Parser V1GlusterfsPersistentVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1GlusterfsPersistentVolumeSource" ((Object -> Parser V1GlusterfsPersistentVolumeSource)
 -> Value -> Parser V1GlusterfsPersistentVolumeSource)
-> (Object -> Parser V1GlusterfsPersistentVolumeSource)
-> Value
-> Parser V1GlusterfsPersistentVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Maybe Text
-> Text
-> Maybe Bool
-> V1GlusterfsPersistentVolumeSource
V1GlusterfsPersistentVolumeSource
      (Text
 -> Maybe Text
 -> Text
 -> Maybe Bool
 -> V1GlusterfsPersistentVolumeSource)
-> Parser Text
-> Parser
     (Maybe Text
      -> Text -> Maybe Bool -> V1GlusterfsPersistentVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"endpoints")
      Parser
  (Maybe Text
   -> Text -> Maybe Bool -> V1GlusterfsPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser (Text -> Maybe Bool -> V1GlusterfsPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"endpointsNamespace")
      Parser (Text -> Maybe Bool -> V1GlusterfsPersistentVolumeSource)
-> Parser Text
-> Parser (Maybe Bool -> V1GlusterfsPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"path")
      Parser (Maybe Bool -> V1GlusterfsPersistentVolumeSource)
-> Parser (Maybe Bool) -> Parser V1GlusterfsPersistentVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")

-- | ToJSON V1GlusterfsPersistentVolumeSource
instance A.ToJSON V1GlusterfsPersistentVolumeSource where
  toJSON :: V1GlusterfsPersistentVolumeSource -> Value
toJSON V1GlusterfsPersistentVolumeSource {Maybe Bool
Maybe Text
Text
v1GlusterfsPersistentVolumeSourceReadOnly :: Maybe Bool
v1GlusterfsPersistentVolumeSourcePath :: Text
v1GlusterfsPersistentVolumeSourceEndpointsNamespace :: Maybe Text
v1GlusterfsPersistentVolumeSourceEndpoints :: Text
v1GlusterfsPersistentVolumeSourceReadOnly :: V1GlusterfsPersistentVolumeSource -> Maybe Bool
v1GlusterfsPersistentVolumeSourcePath :: V1GlusterfsPersistentVolumeSource -> Text
v1GlusterfsPersistentVolumeSourceEndpointsNamespace :: V1GlusterfsPersistentVolumeSource -> Maybe Text
v1GlusterfsPersistentVolumeSourceEndpoints :: V1GlusterfsPersistentVolumeSource -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"endpoints" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1GlusterfsPersistentVolumeSourceEndpoints
      , Text
"endpointsNamespace" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1GlusterfsPersistentVolumeSourceEndpointsNamespace
      , Text
"path" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1GlusterfsPersistentVolumeSourcePath
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1GlusterfsPersistentVolumeSourceReadOnly
      ]


-- | Construct a value of type 'V1GlusterfsPersistentVolumeSource' (by applying it's required fields, if any)
mkV1GlusterfsPersistentVolumeSource
  :: Text -- ^ 'v1GlusterfsPersistentVolumeSourceEndpoints': EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  -> Text -- ^ 'v1GlusterfsPersistentVolumeSourcePath': Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  -> V1GlusterfsPersistentVolumeSource
mkV1GlusterfsPersistentVolumeSource :: Text -> Text -> V1GlusterfsPersistentVolumeSource
mkV1GlusterfsPersistentVolumeSource Text
v1GlusterfsPersistentVolumeSourceEndpoints Text
v1GlusterfsPersistentVolumeSourcePath =
  V1GlusterfsPersistentVolumeSource :: Text
-> Maybe Text
-> Text
-> Maybe Bool
-> V1GlusterfsPersistentVolumeSource
V1GlusterfsPersistentVolumeSource
  { Text
v1GlusterfsPersistentVolumeSourceEndpoints :: Text
v1GlusterfsPersistentVolumeSourceEndpoints :: Text
v1GlusterfsPersistentVolumeSourceEndpoints
  , v1GlusterfsPersistentVolumeSourceEndpointsNamespace :: Maybe Text
v1GlusterfsPersistentVolumeSourceEndpointsNamespace = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1GlusterfsPersistentVolumeSourcePath :: Text
v1GlusterfsPersistentVolumeSourcePath :: Text
v1GlusterfsPersistentVolumeSourcePath
  , v1GlusterfsPersistentVolumeSourceReadOnly :: Maybe Bool
v1GlusterfsPersistentVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1GlusterfsVolumeSource
-- | V1GlusterfsVolumeSource
-- Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.
data V1GlusterfsVolumeSource = V1GlusterfsVolumeSource
  { V1GlusterfsVolumeSource -> Text
v1GlusterfsVolumeSourceEndpoints :: !(Text) -- ^ /Required/ "endpoints" - EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  , V1GlusterfsVolumeSource -> Text
v1GlusterfsVolumeSourcePath :: !(Text) -- ^ /Required/ "path" - Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  , V1GlusterfsVolumeSource -> Maybe Bool
v1GlusterfsVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  } deriving (Int -> V1GlusterfsVolumeSource -> ShowS
[V1GlusterfsVolumeSource] -> ShowS
V1GlusterfsVolumeSource -> String
(Int -> V1GlusterfsVolumeSource -> ShowS)
-> (V1GlusterfsVolumeSource -> String)
-> ([V1GlusterfsVolumeSource] -> ShowS)
-> Show V1GlusterfsVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1GlusterfsVolumeSource] -> ShowS
$cshowList :: [V1GlusterfsVolumeSource] -> ShowS
show :: V1GlusterfsVolumeSource -> String
$cshow :: V1GlusterfsVolumeSource -> String
showsPrec :: Int -> V1GlusterfsVolumeSource -> ShowS
$cshowsPrec :: Int -> V1GlusterfsVolumeSource -> ShowS
P.Show, V1GlusterfsVolumeSource -> V1GlusterfsVolumeSource -> Bool
(V1GlusterfsVolumeSource -> V1GlusterfsVolumeSource -> Bool)
-> (V1GlusterfsVolumeSource -> V1GlusterfsVolumeSource -> Bool)
-> Eq V1GlusterfsVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1GlusterfsVolumeSource -> V1GlusterfsVolumeSource -> Bool
$c/= :: V1GlusterfsVolumeSource -> V1GlusterfsVolumeSource -> Bool
== :: V1GlusterfsVolumeSource -> V1GlusterfsVolumeSource -> Bool
$c== :: V1GlusterfsVolumeSource -> V1GlusterfsVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1GlusterfsVolumeSource
instance A.FromJSON V1GlusterfsVolumeSource where
  parseJSON :: Value -> Parser V1GlusterfsVolumeSource
parseJSON = String
-> (Object -> Parser V1GlusterfsVolumeSource)
-> Value
-> Parser V1GlusterfsVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1GlusterfsVolumeSource" ((Object -> Parser V1GlusterfsVolumeSource)
 -> Value -> Parser V1GlusterfsVolumeSource)
-> (Object -> Parser V1GlusterfsVolumeSource)
-> Value
-> Parser V1GlusterfsVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> Maybe Bool -> V1GlusterfsVolumeSource
V1GlusterfsVolumeSource
      (Text -> Text -> Maybe Bool -> V1GlusterfsVolumeSource)
-> Parser Text
-> Parser (Text -> Maybe Bool -> V1GlusterfsVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"endpoints")
      Parser (Text -> Maybe Bool -> V1GlusterfsVolumeSource)
-> Parser Text -> Parser (Maybe Bool -> V1GlusterfsVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"path")
      Parser (Maybe Bool -> V1GlusterfsVolumeSource)
-> Parser (Maybe Bool) -> Parser V1GlusterfsVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")

-- | ToJSON V1GlusterfsVolumeSource
instance A.ToJSON V1GlusterfsVolumeSource where
  toJSON :: V1GlusterfsVolumeSource -> Value
toJSON V1GlusterfsVolumeSource {Maybe Bool
Text
v1GlusterfsVolumeSourceReadOnly :: Maybe Bool
v1GlusterfsVolumeSourcePath :: Text
v1GlusterfsVolumeSourceEndpoints :: Text
v1GlusterfsVolumeSourceReadOnly :: V1GlusterfsVolumeSource -> Maybe Bool
v1GlusterfsVolumeSourcePath :: V1GlusterfsVolumeSource -> Text
v1GlusterfsVolumeSourceEndpoints :: V1GlusterfsVolumeSource -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"endpoints" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1GlusterfsVolumeSourceEndpoints
      , Text
"path" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1GlusterfsVolumeSourcePath
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1GlusterfsVolumeSourceReadOnly
      ]


-- | Construct a value of type 'V1GlusterfsVolumeSource' (by applying it's required fields, if any)
mkV1GlusterfsVolumeSource
  :: Text -- ^ 'v1GlusterfsVolumeSourceEndpoints': EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  -> Text -- ^ 'v1GlusterfsVolumeSourcePath': Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
  -> V1GlusterfsVolumeSource
mkV1GlusterfsVolumeSource :: Text -> Text -> V1GlusterfsVolumeSource
mkV1GlusterfsVolumeSource Text
v1GlusterfsVolumeSourceEndpoints Text
v1GlusterfsVolumeSourcePath =
  V1GlusterfsVolumeSource :: Text -> Text -> Maybe Bool -> V1GlusterfsVolumeSource
V1GlusterfsVolumeSource
  { Text
v1GlusterfsVolumeSourceEndpoints :: Text
v1GlusterfsVolumeSourceEndpoints :: Text
v1GlusterfsVolumeSourceEndpoints
  , Text
v1GlusterfsVolumeSourcePath :: Text
v1GlusterfsVolumeSourcePath :: Text
v1GlusterfsVolumeSourcePath
  , v1GlusterfsVolumeSourceReadOnly :: Maybe Bool
v1GlusterfsVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1GroupVersionForDiscovery
-- | V1GroupVersionForDiscovery
-- GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.
data V1GroupVersionForDiscovery = V1GroupVersionForDiscovery
  { V1GroupVersionForDiscovery -> Text
v1GroupVersionForDiscoveryGroupVersion :: !(Text) -- ^ /Required/ "groupVersion" - groupVersion specifies the API group and version in the form \&quot;group/version\&quot;
  , V1GroupVersionForDiscovery -> Text
v1GroupVersionForDiscoveryVersion :: !(Text) -- ^ /Required/ "version" - version specifies the version in the form of \&quot;version\&quot;. This is to save the clients the trouble of splitting the GroupVersion.
  } deriving (Int -> V1GroupVersionForDiscovery -> ShowS
[V1GroupVersionForDiscovery] -> ShowS
V1GroupVersionForDiscovery -> String
(Int -> V1GroupVersionForDiscovery -> ShowS)
-> (V1GroupVersionForDiscovery -> String)
-> ([V1GroupVersionForDiscovery] -> ShowS)
-> Show V1GroupVersionForDiscovery
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1GroupVersionForDiscovery] -> ShowS
$cshowList :: [V1GroupVersionForDiscovery] -> ShowS
show :: V1GroupVersionForDiscovery -> String
$cshow :: V1GroupVersionForDiscovery -> String
showsPrec :: Int -> V1GroupVersionForDiscovery -> ShowS
$cshowsPrec :: Int -> V1GroupVersionForDiscovery -> ShowS
P.Show, V1GroupVersionForDiscovery -> V1GroupVersionForDiscovery -> Bool
(V1GroupVersionForDiscovery -> V1GroupVersionForDiscovery -> Bool)
-> (V1GroupVersionForDiscovery
    -> V1GroupVersionForDiscovery -> Bool)
-> Eq V1GroupVersionForDiscovery
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1GroupVersionForDiscovery -> V1GroupVersionForDiscovery -> Bool
$c/= :: V1GroupVersionForDiscovery -> V1GroupVersionForDiscovery -> Bool
== :: V1GroupVersionForDiscovery -> V1GroupVersionForDiscovery -> Bool
$c== :: V1GroupVersionForDiscovery -> V1GroupVersionForDiscovery -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1GroupVersionForDiscovery
instance A.FromJSON V1GroupVersionForDiscovery where
  parseJSON :: Value -> Parser V1GroupVersionForDiscovery
parseJSON = String
-> (Object -> Parser V1GroupVersionForDiscovery)
-> Value
-> Parser V1GroupVersionForDiscovery
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1GroupVersionForDiscovery" ((Object -> Parser V1GroupVersionForDiscovery)
 -> Value -> Parser V1GroupVersionForDiscovery)
-> (Object -> Parser V1GroupVersionForDiscovery)
-> Value
-> Parser V1GroupVersionForDiscovery
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> V1GroupVersionForDiscovery
V1GroupVersionForDiscovery
      (Text -> Text -> V1GroupVersionForDiscovery)
-> Parser Text -> Parser (Text -> V1GroupVersionForDiscovery)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"groupVersion")
      Parser (Text -> V1GroupVersionForDiscovery)
-> Parser Text -> Parser V1GroupVersionForDiscovery
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"version")

-- | ToJSON V1GroupVersionForDiscovery
instance A.ToJSON V1GroupVersionForDiscovery where
  toJSON :: V1GroupVersionForDiscovery -> Value
toJSON V1GroupVersionForDiscovery {Text
v1GroupVersionForDiscoveryVersion :: Text
v1GroupVersionForDiscoveryGroupVersion :: Text
v1GroupVersionForDiscoveryVersion :: V1GroupVersionForDiscovery -> Text
v1GroupVersionForDiscoveryGroupVersion :: V1GroupVersionForDiscovery -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"groupVersion" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1GroupVersionForDiscoveryGroupVersion
      , Text
"version" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1GroupVersionForDiscoveryVersion
      ]


-- | Construct a value of type 'V1GroupVersionForDiscovery' (by applying it's required fields, if any)
mkV1GroupVersionForDiscovery
  :: Text -- ^ 'v1GroupVersionForDiscoveryGroupVersion': groupVersion specifies the API group and version in the form \"group/version\"
  -> Text -- ^ 'v1GroupVersionForDiscoveryVersion': version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.
  -> V1GroupVersionForDiscovery
mkV1GroupVersionForDiscovery :: Text -> Text -> V1GroupVersionForDiscovery
mkV1GroupVersionForDiscovery Text
v1GroupVersionForDiscoveryGroupVersion Text
v1GroupVersionForDiscoveryVersion =
  V1GroupVersionForDiscovery :: Text -> Text -> V1GroupVersionForDiscovery
V1GroupVersionForDiscovery
  { Text
v1GroupVersionForDiscoveryGroupVersion :: Text
v1GroupVersionForDiscoveryGroupVersion :: Text
v1GroupVersionForDiscoveryGroupVersion
  , Text
v1GroupVersionForDiscoveryVersion :: Text
v1GroupVersionForDiscoveryVersion :: Text
v1GroupVersionForDiscoveryVersion
  }

-- ** V1HTTPGetAction
-- | V1HTTPGetAction
-- HTTPGetAction describes an action based on HTTP Get requests.
data V1HTTPGetAction = V1HTTPGetAction
  { V1HTTPGetAction -> Maybe Text
v1HTTPGetActionHost :: !(Maybe Text) -- ^ "host" - Host name to connect to, defaults to the pod IP. You probably want to set \&quot;Host\&quot; in httpHeaders instead.
  , V1HTTPGetAction -> Maybe [V1HTTPHeader]
v1HTTPGetActionHttpHeaders :: !(Maybe [V1HTTPHeader]) -- ^ "httpHeaders" - Custom headers to set in the request. HTTP allows repeated headers.
  , V1HTTPGetAction -> Maybe Text
v1HTTPGetActionPath :: !(Maybe Text) -- ^ "path" - Path to access on the HTTP server.
  , V1HTTPGetAction -> IntOrString
v1HTTPGetActionPort :: !(IntOrString) -- ^ /Required/ "port"
  , V1HTTPGetAction -> Maybe Text
v1HTTPGetActionScheme :: !(Maybe Text) -- ^ "scheme" - Scheme to use for connecting to the host. Defaults to HTTP.
  } deriving (Int -> V1HTTPGetAction -> ShowS
[V1HTTPGetAction] -> ShowS
V1HTTPGetAction -> String
(Int -> V1HTTPGetAction -> ShowS)
-> (V1HTTPGetAction -> String)
-> ([V1HTTPGetAction] -> ShowS)
-> Show V1HTTPGetAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1HTTPGetAction] -> ShowS
$cshowList :: [V1HTTPGetAction] -> ShowS
show :: V1HTTPGetAction -> String
$cshow :: V1HTTPGetAction -> String
showsPrec :: Int -> V1HTTPGetAction -> ShowS
$cshowsPrec :: Int -> V1HTTPGetAction -> ShowS
P.Show, V1HTTPGetAction -> V1HTTPGetAction -> Bool
(V1HTTPGetAction -> V1HTTPGetAction -> Bool)
-> (V1HTTPGetAction -> V1HTTPGetAction -> Bool)
-> Eq V1HTTPGetAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1HTTPGetAction -> V1HTTPGetAction -> Bool
$c/= :: V1HTTPGetAction -> V1HTTPGetAction -> Bool
== :: V1HTTPGetAction -> V1HTTPGetAction -> Bool
$c== :: V1HTTPGetAction -> V1HTTPGetAction -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1HTTPGetAction
instance A.FromJSON V1HTTPGetAction where
  parseJSON :: Value -> Parser V1HTTPGetAction
parseJSON = String
-> (Object -> Parser V1HTTPGetAction)
-> Value
-> Parser V1HTTPGetAction
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1HTTPGetAction" ((Object -> Parser V1HTTPGetAction)
 -> Value -> Parser V1HTTPGetAction)
-> (Object -> Parser V1HTTPGetAction)
-> Value
-> Parser V1HTTPGetAction
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe [V1HTTPHeader]
-> Maybe Text
-> IntOrString
-> Maybe Text
-> V1HTTPGetAction
V1HTTPGetAction
      (Maybe Text
 -> Maybe [V1HTTPHeader]
 -> Maybe Text
 -> IntOrString
 -> Maybe Text
 -> V1HTTPGetAction)
-> Parser (Maybe Text)
-> Parser
     (Maybe [V1HTTPHeader]
      -> Maybe Text -> IntOrString -> Maybe Text -> V1HTTPGetAction)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"host")
      Parser
  (Maybe [V1HTTPHeader]
   -> Maybe Text -> IntOrString -> Maybe Text -> V1HTTPGetAction)
-> Parser (Maybe [V1HTTPHeader])
-> Parser
     (Maybe Text -> IntOrString -> Maybe Text -> V1HTTPGetAction)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1HTTPHeader])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"httpHeaders")
      Parser (Maybe Text -> IntOrString -> Maybe Text -> V1HTTPGetAction)
-> Parser (Maybe Text)
-> Parser (IntOrString -> Maybe Text -> V1HTTPGetAction)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"path")
      Parser (IntOrString -> Maybe Text -> V1HTTPGetAction)
-> Parser IntOrString -> Parser (Maybe Text -> V1HTTPGetAction)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser IntOrString
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"port")
      Parser (Maybe Text -> V1HTTPGetAction)
-> Parser (Maybe Text) -> Parser V1HTTPGetAction
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"scheme")

-- | ToJSON V1HTTPGetAction
instance A.ToJSON V1HTTPGetAction where
  toJSON :: V1HTTPGetAction -> Value
toJSON V1HTTPGetAction {Maybe [V1HTTPHeader]
Maybe Text
IntOrString
v1HTTPGetActionScheme :: Maybe Text
v1HTTPGetActionPort :: IntOrString
v1HTTPGetActionPath :: Maybe Text
v1HTTPGetActionHttpHeaders :: Maybe [V1HTTPHeader]
v1HTTPGetActionHost :: Maybe Text
v1HTTPGetActionScheme :: V1HTTPGetAction -> Maybe Text
v1HTTPGetActionPort :: V1HTTPGetAction -> IntOrString
v1HTTPGetActionPath :: V1HTTPGetAction -> Maybe Text
v1HTTPGetActionHttpHeaders :: V1HTTPGetAction -> Maybe [V1HTTPHeader]
v1HTTPGetActionHost :: V1HTTPGetAction -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"host" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1HTTPGetActionHost
      , Text
"httpHeaders" Text -> Maybe [V1HTTPHeader] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1HTTPHeader]
v1HTTPGetActionHttpHeaders
      , Text
"path" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1HTTPGetActionPath
      , Text
"port" Text -> IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= IntOrString
v1HTTPGetActionPort
      , Text
"scheme" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1HTTPGetActionScheme
      ]


-- | Construct a value of type 'V1HTTPGetAction' (by applying it's required fields, if any)
mkV1HTTPGetAction
  :: IntOrString -- ^ 'v1HTTPGetActionPort' 
  -> V1HTTPGetAction
mkV1HTTPGetAction :: IntOrString -> V1HTTPGetAction
mkV1HTTPGetAction IntOrString
v1HTTPGetActionPort =
  V1HTTPGetAction :: Maybe Text
-> Maybe [V1HTTPHeader]
-> Maybe Text
-> IntOrString
-> Maybe Text
-> V1HTTPGetAction
V1HTTPGetAction
  { v1HTTPGetActionHost :: Maybe Text
v1HTTPGetActionHost = Maybe Text
forall a. Maybe a
Nothing
  , v1HTTPGetActionHttpHeaders :: Maybe [V1HTTPHeader]
v1HTTPGetActionHttpHeaders = Maybe [V1HTTPHeader]
forall a. Maybe a
Nothing
  , v1HTTPGetActionPath :: Maybe Text
v1HTTPGetActionPath = Maybe Text
forall a. Maybe a
Nothing
  , IntOrString
v1HTTPGetActionPort :: IntOrString
v1HTTPGetActionPort :: IntOrString
v1HTTPGetActionPort
  , v1HTTPGetActionScheme :: Maybe Text
v1HTTPGetActionScheme = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1HTTPHeader
-- | V1HTTPHeader
-- HTTPHeader describes a custom header to be used in HTTP probes
data V1HTTPHeader = V1HTTPHeader
  { V1HTTPHeader -> Text
v1HTTPHeaderName :: !(Text) -- ^ /Required/ "name" - The header field name
  , V1HTTPHeader -> Text
v1HTTPHeaderValue :: !(Text) -- ^ /Required/ "value" - The header field value
  } deriving (Int -> V1HTTPHeader -> ShowS
[V1HTTPHeader] -> ShowS
V1HTTPHeader -> String
(Int -> V1HTTPHeader -> ShowS)
-> (V1HTTPHeader -> String)
-> ([V1HTTPHeader] -> ShowS)
-> Show V1HTTPHeader
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1HTTPHeader] -> ShowS
$cshowList :: [V1HTTPHeader] -> ShowS
show :: V1HTTPHeader -> String
$cshow :: V1HTTPHeader -> String
showsPrec :: Int -> V1HTTPHeader -> ShowS
$cshowsPrec :: Int -> V1HTTPHeader -> ShowS
P.Show, V1HTTPHeader -> V1HTTPHeader -> Bool
(V1HTTPHeader -> V1HTTPHeader -> Bool)
-> (V1HTTPHeader -> V1HTTPHeader -> Bool) -> Eq V1HTTPHeader
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1HTTPHeader -> V1HTTPHeader -> Bool
$c/= :: V1HTTPHeader -> V1HTTPHeader -> Bool
== :: V1HTTPHeader -> V1HTTPHeader -> Bool
$c== :: V1HTTPHeader -> V1HTTPHeader -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1HTTPHeader
instance A.FromJSON V1HTTPHeader where
  parseJSON :: Value -> Parser V1HTTPHeader
parseJSON = String
-> (Object -> Parser V1HTTPHeader) -> Value -> Parser V1HTTPHeader
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1HTTPHeader" ((Object -> Parser V1HTTPHeader) -> Value -> Parser V1HTTPHeader)
-> (Object -> Parser V1HTTPHeader) -> Value -> Parser V1HTTPHeader
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> V1HTTPHeader
V1HTTPHeader
      (Text -> Text -> V1HTTPHeader)
-> Parser Text -> Parser (Text -> V1HTTPHeader)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser (Text -> V1HTTPHeader) -> Parser Text -> Parser V1HTTPHeader
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"value")

-- | ToJSON V1HTTPHeader
instance A.ToJSON V1HTTPHeader where
  toJSON :: V1HTTPHeader -> Value
toJSON V1HTTPHeader {Text
v1HTTPHeaderValue :: Text
v1HTTPHeaderName :: Text
v1HTTPHeaderValue :: V1HTTPHeader -> Text
v1HTTPHeaderName :: V1HTTPHeader -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1HTTPHeaderName
      , Text
"value" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1HTTPHeaderValue
      ]


-- | Construct a value of type 'V1HTTPHeader' (by applying it's required fields, if any)
mkV1HTTPHeader
  :: Text -- ^ 'v1HTTPHeaderName': The header field name
  -> Text -- ^ 'v1HTTPHeaderValue': The header field value
  -> V1HTTPHeader
mkV1HTTPHeader :: Text -> Text -> V1HTTPHeader
mkV1HTTPHeader Text
v1HTTPHeaderName Text
v1HTTPHeaderValue =
  V1HTTPHeader :: Text -> Text -> V1HTTPHeader
V1HTTPHeader
  { Text
v1HTTPHeaderName :: Text
v1HTTPHeaderName :: Text
v1HTTPHeaderName
  , Text
v1HTTPHeaderValue :: Text
v1HTTPHeaderValue :: Text
v1HTTPHeaderValue
  }

-- ** V1Handler
-- | V1Handler
-- Handler defines a specific action that should be taken
data V1Handler = V1Handler
  { V1Handler -> Maybe V1ExecAction
v1HandlerExec :: !(Maybe V1ExecAction) -- ^ "exec"
  , V1Handler -> Maybe V1HTTPGetAction
v1HandlerHttpGet :: !(Maybe V1HTTPGetAction) -- ^ "httpGet"
  , V1Handler -> Maybe V1TCPSocketAction
v1HandlerTcpSocket :: !(Maybe V1TCPSocketAction) -- ^ "tcpSocket"
  } deriving (Int -> V1Handler -> ShowS
[V1Handler] -> ShowS
V1Handler -> String
(Int -> V1Handler -> ShowS)
-> (V1Handler -> String)
-> ([V1Handler] -> ShowS)
-> Show V1Handler
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Handler] -> ShowS
$cshowList :: [V1Handler] -> ShowS
show :: V1Handler -> String
$cshow :: V1Handler -> String
showsPrec :: Int -> V1Handler -> ShowS
$cshowsPrec :: Int -> V1Handler -> ShowS
P.Show, V1Handler -> V1Handler -> Bool
(V1Handler -> V1Handler -> Bool)
-> (V1Handler -> V1Handler -> Bool) -> Eq V1Handler
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Handler -> V1Handler -> Bool
$c/= :: V1Handler -> V1Handler -> Bool
== :: V1Handler -> V1Handler -> Bool
$c== :: V1Handler -> V1Handler -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Handler
instance A.FromJSON V1Handler where
  parseJSON :: Value -> Parser V1Handler
parseJSON = String -> (Object -> Parser V1Handler) -> Value -> Parser V1Handler
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Handler" ((Object -> Parser V1Handler) -> Value -> Parser V1Handler)
-> (Object -> Parser V1Handler) -> Value -> Parser V1Handler
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1ExecAction
-> Maybe V1HTTPGetAction -> Maybe V1TCPSocketAction -> V1Handler
V1Handler
      (Maybe V1ExecAction
 -> Maybe V1HTTPGetAction -> Maybe V1TCPSocketAction -> V1Handler)
-> Parser (Maybe V1ExecAction)
-> Parser
     (Maybe V1HTTPGetAction -> Maybe V1TCPSocketAction -> V1Handler)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1ExecAction)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"exec")
      Parser
  (Maybe V1HTTPGetAction -> Maybe V1TCPSocketAction -> V1Handler)
-> Parser (Maybe V1HTTPGetAction)
-> Parser (Maybe V1TCPSocketAction -> V1Handler)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1HTTPGetAction)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"httpGet")
      Parser (Maybe V1TCPSocketAction -> V1Handler)
-> Parser (Maybe V1TCPSocketAction) -> Parser V1Handler
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1TCPSocketAction)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"tcpSocket")

-- | ToJSON V1Handler
instance A.ToJSON V1Handler where
  toJSON :: V1Handler -> Value
toJSON V1Handler {Maybe V1TCPSocketAction
Maybe V1HTTPGetAction
Maybe V1ExecAction
v1HandlerTcpSocket :: Maybe V1TCPSocketAction
v1HandlerHttpGet :: Maybe V1HTTPGetAction
v1HandlerExec :: Maybe V1ExecAction
v1HandlerTcpSocket :: V1Handler -> Maybe V1TCPSocketAction
v1HandlerHttpGet :: V1Handler -> Maybe V1HTTPGetAction
v1HandlerExec :: V1Handler -> Maybe V1ExecAction
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"exec" Text -> Maybe V1ExecAction -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ExecAction
v1HandlerExec
      , Text
"httpGet" Text -> Maybe V1HTTPGetAction -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1HTTPGetAction
v1HandlerHttpGet
      , Text
"tcpSocket" Text -> Maybe V1TCPSocketAction -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1TCPSocketAction
v1HandlerTcpSocket
      ]


-- | Construct a value of type 'V1Handler' (by applying it's required fields, if any)
mkV1Handler
  :: V1Handler
mkV1Handler :: V1Handler
mkV1Handler =
  V1Handler :: Maybe V1ExecAction
-> Maybe V1HTTPGetAction -> Maybe V1TCPSocketAction -> V1Handler
V1Handler
  { v1HandlerExec :: Maybe V1ExecAction
v1HandlerExec = Maybe V1ExecAction
forall a. Maybe a
Nothing
  , v1HandlerHttpGet :: Maybe V1HTTPGetAction
v1HandlerHttpGet = Maybe V1HTTPGetAction
forall a. Maybe a
Nothing
  , v1HandlerTcpSocket :: Maybe V1TCPSocketAction
v1HandlerTcpSocket = Maybe V1TCPSocketAction
forall a. Maybe a
Nothing
  }

-- ** V1HorizontalPodAutoscaler
-- | V1HorizontalPodAutoscaler
-- configuration of a horizontal pod autoscaler.
data V1HorizontalPodAutoscaler = V1HorizontalPodAutoscaler
  { V1HorizontalPodAutoscaler -> Maybe Text
v1HorizontalPodAutoscalerApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1HorizontalPodAutoscaler -> Maybe Text
v1HorizontalPodAutoscalerKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1HorizontalPodAutoscaler -> Maybe V1ObjectMeta
v1HorizontalPodAutoscalerMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1HorizontalPodAutoscaler -> Maybe V1HorizontalPodAutoscalerSpec
v1HorizontalPodAutoscalerSpec :: !(Maybe V1HorizontalPodAutoscalerSpec) -- ^ "spec"
  , V1HorizontalPodAutoscaler -> Maybe V1HorizontalPodAutoscalerStatus
v1HorizontalPodAutoscalerStatus :: !(Maybe V1HorizontalPodAutoscalerStatus) -- ^ "status"
  } deriving (Int -> V1HorizontalPodAutoscaler -> ShowS
[V1HorizontalPodAutoscaler] -> ShowS
V1HorizontalPodAutoscaler -> String
(Int -> V1HorizontalPodAutoscaler -> ShowS)
-> (V1HorizontalPodAutoscaler -> String)
-> ([V1HorizontalPodAutoscaler] -> ShowS)
-> Show V1HorizontalPodAutoscaler
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1HorizontalPodAutoscaler] -> ShowS
$cshowList :: [V1HorizontalPodAutoscaler] -> ShowS
show :: V1HorizontalPodAutoscaler -> String
$cshow :: V1HorizontalPodAutoscaler -> String
showsPrec :: Int -> V1HorizontalPodAutoscaler -> ShowS
$cshowsPrec :: Int -> V1HorizontalPodAutoscaler -> ShowS
P.Show, V1HorizontalPodAutoscaler -> V1HorizontalPodAutoscaler -> Bool
(V1HorizontalPodAutoscaler -> V1HorizontalPodAutoscaler -> Bool)
-> (V1HorizontalPodAutoscaler -> V1HorizontalPodAutoscaler -> Bool)
-> Eq V1HorizontalPodAutoscaler
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1HorizontalPodAutoscaler -> V1HorizontalPodAutoscaler -> Bool
$c/= :: V1HorizontalPodAutoscaler -> V1HorizontalPodAutoscaler -> Bool
== :: V1HorizontalPodAutoscaler -> V1HorizontalPodAutoscaler -> Bool
$c== :: V1HorizontalPodAutoscaler -> V1HorizontalPodAutoscaler -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1HorizontalPodAutoscaler
instance A.FromJSON V1HorizontalPodAutoscaler where
  parseJSON :: Value -> Parser V1HorizontalPodAutoscaler
parseJSON = String
-> (Object -> Parser V1HorizontalPodAutoscaler)
-> Value
-> Parser V1HorizontalPodAutoscaler
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1HorizontalPodAutoscaler" ((Object -> Parser V1HorizontalPodAutoscaler)
 -> Value -> Parser V1HorizontalPodAutoscaler)
-> (Object -> Parser V1HorizontalPodAutoscaler)
-> Value
-> Parser V1HorizontalPodAutoscaler
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1HorizontalPodAutoscalerSpec
-> Maybe V1HorizontalPodAutoscalerStatus
-> V1HorizontalPodAutoscaler
V1HorizontalPodAutoscaler
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1HorizontalPodAutoscalerSpec
 -> Maybe V1HorizontalPodAutoscalerStatus
 -> V1HorizontalPodAutoscaler)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1HorizontalPodAutoscalerSpec
      -> Maybe V1HorizontalPodAutoscalerStatus
      -> V1HorizontalPodAutoscaler)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1HorizontalPodAutoscalerSpec
   -> Maybe V1HorizontalPodAutoscalerStatus
   -> V1HorizontalPodAutoscaler)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1HorizontalPodAutoscalerSpec
      -> Maybe V1HorizontalPodAutoscalerStatus
      -> V1HorizontalPodAutoscaler)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1HorizontalPodAutoscalerSpec
   -> Maybe V1HorizontalPodAutoscalerStatus
   -> V1HorizontalPodAutoscaler)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1HorizontalPodAutoscalerSpec
      -> Maybe V1HorizontalPodAutoscalerStatus
      -> V1HorizontalPodAutoscaler)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1HorizontalPodAutoscalerSpec
   -> Maybe V1HorizontalPodAutoscalerStatus
   -> V1HorizontalPodAutoscaler)
-> Parser (Maybe V1HorizontalPodAutoscalerSpec)
-> Parser
     (Maybe V1HorizontalPodAutoscalerStatus
      -> V1HorizontalPodAutoscaler)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1HorizontalPodAutoscalerSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser
  (Maybe V1HorizontalPodAutoscalerStatus
   -> V1HorizontalPodAutoscaler)
-> Parser (Maybe V1HorizontalPodAutoscalerStatus)
-> Parser V1HorizontalPodAutoscaler
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1HorizontalPodAutoscalerStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1HorizontalPodAutoscaler
instance A.ToJSON V1HorizontalPodAutoscaler where
  toJSON :: V1HorizontalPodAutoscaler -> Value
toJSON V1HorizontalPodAutoscaler {Maybe Text
Maybe V1ObjectMeta
Maybe V1HorizontalPodAutoscalerStatus
Maybe V1HorizontalPodAutoscalerSpec
v1HorizontalPodAutoscalerStatus :: Maybe V1HorizontalPodAutoscalerStatus
v1HorizontalPodAutoscalerSpec :: Maybe V1HorizontalPodAutoscalerSpec
v1HorizontalPodAutoscalerMetadata :: Maybe V1ObjectMeta
v1HorizontalPodAutoscalerKind :: Maybe Text
v1HorizontalPodAutoscalerApiVersion :: Maybe Text
v1HorizontalPodAutoscalerStatus :: V1HorizontalPodAutoscaler -> Maybe V1HorizontalPodAutoscalerStatus
v1HorizontalPodAutoscalerSpec :: V1HorizontalPodAutoscaler -> Maybe V1HorizontalPodAutoscalerSpec
v1HorizontalPodAutoscalerMetadata :: V1HorizontalPodAutoscaler -> Maybe V1ObjectMeta
v1HorizontalPodAutoscalerKind :: V1HorizontalPodAutoscaler -> Maybe Text
v1HorizontalPodAutoscalerApiVersion :: V1HorizontalPodAutoscaler -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1HorizontalPodAutoscalerApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1HorizontalPodAutoscalerKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1HorizontalPodAutoscalerMetadata
      , Text
"spec" Text -> Maybe V1HorizontalPodAutoscalerSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1HorizontalPodAutoscalerSpec
v1HorizontalPodAutoscalerSpec
      , Text
"status" Text -> Maybe V1HorizontalPodAutoscalerStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1HorizontalPodAutoscalerStatus
v1HorizontalPodAutoscalerStatus
      ]


-- | Construct a value of type 'V1HorizontalPodAutoscaler' (by applying it's required fields, if any)
mkV1HorizontalPodAutoscaler
  :: V1HorizontalPodAutoscaler
mkV1HorizontalPodAutoscaler :: V1HorizontalPodAutoscaler
mkV1HorizontalPodAutoscaler =
  V1HorizontalPodAutoscaler :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1HorizontalPodAutoscalerSpec
-> Maybe V1HorizontalPodAutoscalerStatus
-> V1HorizontalPodAutoscaler
V1HorizontalPodAutoscaler
  { v1HorizontalPodAutoscalerApiVersion :: Maybe Text
v1HorizontalPodAutoscalerApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1HorizontalPodAutoscalerKind :: Maybe Text
v1HorizontalPodAutoscalerKind = Maybe Text
forall a. Maybe a
Nothing
  , v1HorizontalPodAutoscalerMetadata :: Maybe V1ObjectMeta
v1HorizontalPodAutoscalerMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1HorizontalPodAutoscalerSpec :: Maybe V1HorizontalPodAutoscalerSpec
v1HorizontalPodAutoscalerSpec = Maybe V1HorizontalPodAutoscalerSpec
forall a. Maybe a
Nothing
  , v1HorizontalPodAutoscalerStatus :: Maybe V1HorizontalPodAutoscalerStatus
v1HorizontalPodAutoscalerStatus = Maybe V1HorizontalPodAutoscalerStatus
forall a. Maybe a
Nothing
  }

-- ** V1HorizontalPodAutoscalerList
-- | V1HorizontalPodAutoscalerList
-- list of horizontal pod autoscaler objects.
data V1HorizontalPodAutoscalerList = V1HorizontalPodAutoscalerList
  { V1HorizontalPodAutoscalerList -> Maybe Text
v1HorizontalPodAutoscalerListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1HorizontalPodAutoscalerList -> [V1HorizontalPodAutoscaler]
v1HorizontalPodAutoscalerListItems :: !([V1HorizontalPodAutoscaler]) -- ^ /Required/ "items" - list of horizontal pod autoscaler objects.
  , V1HorizontalPodAutoscalerList -> Maybe Text
v1HorizontalPodAutoscalerListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1HorizontalPodAutoscalerList -> Maybe V1ListMeta
v1HorizontalPodAutoscalerListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1HorizontalPodAutoscalerList -> ShowS
[V1HorizontalPodAutoscalerList] -> ShowS
V1HorizontalPodAutoscalerList -> String
(Int -> V1HorizontalPodAutoscalerList -> ShowS)
-> (V1HorizontalPodAutoscalerList -> String)
-> ([V1HorizontalPodAutoscalerList] -> ShowS)
-> Show V1HorizontalPodAutoscalerList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1HorizontalPodAutoscalerList] -> ShowS
$cshowList :: [V1HorizontalPodAutoscalerList] -> ShowS
show :: V1HorizontalPodAutoscalerList -> String
$cshow :: V1HorizontalPodAutoscalerList -> String
showsPrec :: Int -> V1HorizontalPodAutoscalerList -> ShowS
$cshowsPrec :: Int -> V1HorizontalPodAutoscalerList -> ShowS
P.Show, V1HorizontalPodAutoscalerList
-> V1HorizontalPodAutoscalerList -> Bool
(V1HorizontalPodAutoscalerList
 -> V1HorizontalPodAutoscalerList -> Bool)
-> (V1HorizontalPodAutoscalerList
    -> V1HorizontalPodAutoscalerList -> Bool)
-> Eq V1HorizontalPodAutoscalerList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1HorizontalPodAutoscalerList
-> V1HorizontalPodAutoscalerList -> Bool
$c/= :: V1HorizontalPodAutoscalerList
-> V1HorizontalPodAutoscalerList -> Bool
== :: V1HorizontalPodAutoscalerList
-> V1HorizontalPodAutoscalerList -> Bool
$c== :: V1HorizontalPodAutoscalerList
-> V1HorizontalPodAutoscalerList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1HorizontalPodAutoscalerList
instance A.FromJSON V1HorizontalPodAutoscalerList where
  parseJSON :: Value -> Parser V1HorizontalPodAutoscalerList
parseJSON = String
-> (Object -> Parser V1HorizontalPodAutoscalerList)
-> Value
-> Parser V1HorizontalPodAutoscalerList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1HorizontalPodAutoscalerList" ((Object -> Parser V1HorizontalPodAutoscalerList)
 -> Value -> Parser V1HorizontalPodAutoscalerList)
-> (Object -> Parser V1HorizontalPodAutoscalerList)
-> Value
-> Parser V1HorizontalPodAutoscalerList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1HorizontalPodAutoscaler]
-> Maybe Text
-> Maybe V1ListMeta
-> V1HorizontalPodAutoscalerList
V1HorizontalPodAutoscalerList
      (Maybe Text
 -> [V1HorizontalPodAutoscaler]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1HorizontalPodAutoscalerList)
-> Parser (Maybe Text)
-> Parser
     ([V1HorizontalPodAutoscaler]
      -> Maybe Text -> Maybe V1ListMeta -> V1HorizontalPodAutoscalerList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1HorizontalPodAutoscaler]
   -> Maybe Text -> Maybe V1ListMeta -> V1HorizontalPodAutoscalerList)
-> Parser [V1HorizontalPodAutoscaler]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1HorizontalPodAutoscalerList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1HorizontalPodAutoscaler]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> V1HorizontalPodAutoscalerList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1HorizontalPodAutoscalerList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1HorizontalPodAutoscalerList)
-> Parser (Maybe V1ListMeta)
-> Parser V1HorizontalPodAutoscalerList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1HorizontalPodAutoscalerList
instance A.ToJSON V1HorizontalPodAutoscalerList where
  toJSON :: V1HorizontalPodAutoscalerList -> Value
toJSON V1HorizontalPodAutoscalerList {[V1HorizontalPodAutoscaler]
Maybe Text
Maybe V1ListMeta
v1HorizontalPodAutoscalerListMetadata :: Maybe V1ListMeta
v1HorizontalPodAutoscalerListKind :: Maybe Text
v1HorizontalPodAutoscalerListItems :: [V1HorizontalPodAutoscaler]
v1HorizontalPodAutoscalerListApiVersion :: Maybe Text
v1HorizontalPodAutoscalerListMetadata :: V1HorizontalPodAutoscalerList -> Maybe V1ListMeta
v1HorizontalPodAutoscalerListKind :: V1HorizontalPodAutoscalerList -> Maybe Text
v1HorizontalPodAutoscalerListItems :: V1HorizontalPodAutoscalerList -> [V1HorizontalPodAutoscaler]
v1HorizontalPodAutoscalerListApiVersion :: V1HorizontalPodAutoscalerList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1HorizontalPodAutoscalerListApiVersion
      , Text
"items" Text -> [V1HorizontalPodAutoscaler] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1HorizontalPodAutoscaler]
v1HorizontalPodAutoscalerListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1HorizontalPodAutoscalerListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1HorizontalPodAutoscalerListMetadata
      ]


-- | Construct a value of type 'V1HorizontalPodAutoscalerList' (by applying it's required fields, if any)
mkV1HorizontalPodAutoscalerList
  :: [V1HorizontalPodAutoscaler] -- ^ 'v1HorizontalPodAutoscalerListItems': list of horizontal pod autoscaler objects.
  -> V1HorizontalPodAutoscalerList
mkV1HorizontalPodAutoscalerList :: [V1HorizontalPodAutoscaler] -> V1HorizontalPodAutoscalerList
mkV1HorizontalPodAutoscalerList [V1HorizontalPodAutoscaler]
v1HorizontalPodAutoscalerListItems =
  V1HorizontalPodAutoscalerList :: Maybe Text
-> [V1HorizontalPodAutoscaler]
-> Maybe Text
-> Maybe V1ListMeta
-> V1HorizontalPodAutoscalerList
V1HorizontalPodAutoscalerList
  { v1HorizontalPodAutoscalerListApiVersion :: Maybe Text
v1HorizontalPodAutoscalerListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1HorizontalPodAutoscaler]
v1HorizontalPodAutoscalerListItems :: [V1HorizontalPodAutoscaler]
v1HorizontalPodAutoscalerListItems :: [V1HorizontalPodAutoscaler]
v1HorizontalPodAutoscalerListItems
  , v1HorizontalPodAutoscalerListKind :: Maybe Text
v1HorizontalPodAutoscalerListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1HorizontalPodAutoscalerListMetadata :: Maybe V1ListMeta
v1HorizontalPodAutoscalerListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1HorizontalPodAutoscalerSpec
-- | V1HorizontalPodAutoscalerSpec
-- specification of a horizontal pod autoscaler.
data V1HorizontalPodAutoscalerSpec = V1HorizontalPodAutoscalerSpec
  { V1HorizontalPodAutoscalerSpec -> Int
v1HorizontalPodAutoscalerSpecMaxReplicas :: !(Int) -- ^ /Required/ "maxReplicas" - upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.
  , V1HorizontalPodAutoscalerSpec -> Maybe Int
v1HorizontalPodAutoscalerSpecMinReplicas :: !(Maybe Int) -- ^ "minReplicas" - minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.  Scaling is active as long as at least one metric value is available.
  , V1HorizontalPodAutoscalerSpec -> V1CrossVersionObjectReference
v1HorizontalPodAutoscalerSpecScaleTargetRef :: !(V1CrossVersionObjectReference) -- ^ /Required/ "scaleTargetRef"
  , V1HorizontalPodAutoscalerSpec -> Maybe Int
v1HorizontalPodAutoscalerSpecTargetCpuUtilizationPercentage :: !(Maybe Int) -- ^ "targetCPUUtilizationPercentage" - target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.
  } deriving (Int -> V1HorizontalPodAutoscalerSpec -> ShowS
[V1HorizontalPodAutoscalerSpec] -> ShowS
V1HorizontalPodAutoscalerSpec -> String
(Int -> V1HorizontalPodAutoscalerSpec -> ShowS)
-> (V1HorizontalPodAutoscalerSpec -> String)
-> ([V1HorizontalPodAutoscalerSpec] -> ShowS)
-> Show V1HorizontalPodAutoscalerSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1HorizontalPodAutoscalerSpec] -> ShowS
$cshowList :: [V1HorizontalPodAutoscalerSpec] -> ShowS
show :: V1HorizontalPodAutoscalerSpec -> String
$cshow :: V1HorizontalPodAutoscalerSpec -> String
showsPrec :: Int -> V1HorizontalPodAutoscalerSpec -> ShowS
$cshowsPrec :: Int -> V1HorizontalPodAutoscalerSpec -> ShowS
P.Show, V1HorizontalPodAutoscalerSpec
-> V1HorizontalPodAutoscalerSpec -> Bool
(V1HorizontalPodAutoscalerSpec
 -> V1HorizontalPodAutoscalerSpec -> Bool)
-> (V1HorizontalPodAutoscalerSpec
    -> V1HorizontalPodAutoscalerSpec -> Bool)
-> Eq V1HorizontalPodAutoscalerSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1HorizontalPodAutoscalerSpec
-> V1HorizontalPodAutoscalerSpec -> Bool
$c/= :: V1HorizontalPodAutoscalerSpec
-> V1HorizontalPodAutoscalerSpec -> Bool
== :: V1HorizontalPodAutoscalerSpec
-> V1HorizontalPodAutoscalerSpec -> Bool
$c== :: V1HorizontalPodAutoscalerSpec
-> V1HorizontalPodAutoscalerSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1HorizontalPodAutoscalerSpec
instance A.FromJSON V1HorizontalPodAutoscalerSpec where
  parseJSON :: Value -> Parser V1HorizontalPodAutoscalerSpec
parseJSON = String
-> (Object -> Parser V1HorizontalPodAutoscalerSpec)
-> Value
-> Parser V1HorizontalPodAutoscalerSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1HorizontalPodAutoscalerSpec" ((Object -> Parser V1HorizontalPodAutoscalerSpec)
 -> Value -> Parser V1HorizontalPodAutoscalerSpec)
-> (Object -> Parser V1HorizontalPodAutoscalerSpec)
-> Value
-> Parser V1HorizontalPodAutoscalerSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Int
-> Maybe Int
-> V1CrossVersionObjectReference
-> Maybe Int
-> V1HorizontalPodAutoscalerSpec
V1HorizontalPodAutoscalerSpec
      (Int
 -> Maybe Int
 -> V1CrossVersionObjectReference
 -> Maybe Int
 -> V1HorizontalPodAutoscalerSpec)
-> Parser Int
-> Parser
     (Maybe Int
      -> V1CrossVersionObjectReference
      -> Maybe Int
      -> V1HorizontalPodAutoscalerSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"maxReplicas")
      Parser
  (Maybe Int
   -> V1CrossVersionObjectReference
   -> Maybe Int
   -> V1HorizontalPodAutoscalerSpec)
-> Parser (Maybe Int)
-> Parser
     (V1CrossVersionObjectReference
      -> Maybe Int -> V1HorizontalPodAutoscalerSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minReplicas")
      Parser
  (V1CrossVersionObjectReference
   -> Maybe Int -> V1HorizontalPodAutoscalerSpec)
-> Parser V1CrossVersionObjectReference
-> Parser (Maybe Int -> V1HorizontalPodAutoscalerSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1CrossVersionObjectReference
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"scaleTargetRef")
      Parser (Maybe Int -> V1HorizontalPodAutoscalerSpec)
-> Parser (Maybe Int) -> Parser V1HorizontalPodAutoscalerSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"targetCPUUtilizationPercentage")

-- | ToJSON V1HorizontalPodAutoscalerSpec
instance A.ToJSON V1HorizontalPodAutoscalerSpec where
  toJSON :: V1HorizontalPodAutoscalerSpec -> Value
toJSON V1HorizontalPodAutoscalerSpec {Int
Maybe Int
V1CrossVersionObjectReference
v1HorizontalPodAutoscalerSpecTargetCpuUtilizationPercentage :: Maybe Int
v1HorizontalPodAutoscalerSpecScaleTargetRef :: V1CrossVersionObjectReference
v1HorizontalPodAutoscalerSpecMinReplicas :: Maybe Int
v1HorizontalPodAutoscalerSpecMaxReplicas :: Int
v1HorizontalPodAutoscalerSpecTargetCpuUtilizationPercentage :: V1HorizontalPodAutoscalerSpec -> Maybe Int
v1HorizontalPodAutoscalerSpecScaleTargetRef :: V1HorizontalPodAutoscalerSpec -> V1CrossVersionObjectReference
v1HorizontalPodAutoscalerSpecMinReplicas :: V1HorizontalPodAutoscalerSpec -> Maybe Int
v1HorizontalPodAutoscalerSpecMaxReplicas :: V1HorizontalPodAutoscalerSpec -> Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"maxReplicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1HorizontalPodAutoscalerSpecMaxReplicas
      , Text
"minReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1HorizontalPodAutoscalerSpecMinReplicas
      , Text
"scaleTargetRef" Text -> V1CrossVersionObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1CrossVersionObjectReference
v1HorizontalPodAutoscalerSpecScaleTargetRef
      , Text
"targetCPUUtilizationPercentage" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1HorizontalPodAutoscalerSpecTargetCpuUtilizationPercentage
      ]


-- | Construct a value of type 'V1HorizontalPodAutoscalerSpec' (by applying it's required fields, if any)
mkV1HorizontalPodAutoscalerSpec
  :: Int -- ^ 'v1HorizontalPodAutoscalerSpecMaxReplicas': upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.
  -> V1CrossVersionObjectReference -- ^ 'v1HorizontalPodAutoscalerSpecScaleTargetRef' 
  -> V1HorizontalPodAutoscalerSpec
mkV1HorizontalPodAutoscalerSpec :: Int
-> V1CrossVersionObjectReference -> V1HorizontalPodAutoscalerSpec
mkV1HorizontalPodAutoscalerSpec Int
v1HorizontalPodAutoscalerSpecMaxReplicas V1CrossVersionObjectReference
v1HorizontalPodAutoscalerSpecScaleTargetRef =
  V1HorizontalPodAutoscalerSpec :: Int
-> Maybe Int
-> V1CrossVersionObjectReference
-> Maybe Int
-> V1HorizontalPodAutoscalerSpec
V1HorizontalPodAutoscalerSpec
  { Int
v1HorizontalPodAutoscalerSpecMaxReplicas :: Int
v1HorizontalPodAutoscalerSpecMaxReplicas :: Int
v1HorizontalPodAutoscalerSpecMaxReplicas
  , v1HorizontalPodAutoscalerSpecMinReplicas :: Maybe Int
v1HorizontalPodAutoscalerSpecMinReplicas = Maybe Int
forall a. Maybe a
Nothing
  , V1CrossVersionObjectReference
v1HorizontalPodAutoscalerSpecScaleTargetRef :: V1CrossVersionObjectReference
v1HorizontalPodAutoscalerSpecScaleTargetRef :: V1CrossVersionObjectReference
v1HorizontalPodAutoscalerSpecScaleTargetRef
  , v1HorizontalPodAutoscalerSpecTargetCpuUtilizationPercentage :: Maybe Int
v1HorizontalPodAutoscalerSpecTargetCpuUtilizationPercentage = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1HorizontalPodAutoscalerStatus
-- | V1HorizontalPodAutoscalerStatus
-- current status of a horizontal pod autoscaler
data V1HorizontalPodAutoscalerStatus = V1HorizontalPodAutoscalerStatus
  { V1HorizontalPodAutoscalerStatus -> Maybe Int
v1HorizontalPodAutoscalerStatusCurrentCpuUtilizationPercentage :: !(Maybe Int) -- ^ "currentCPUUtilizationPercentage" - current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU.
  , V1HorizontalPodAutoscalerStatus -> Int
v1HorizontalPodAutoscalerStatusCurrentReplicas :: !(Int) -- ^ /Required/ "currentReplicas" - current number of replicas of pods managed by this autoscaler.
  , V1HorizontalPodAutoscalerStatus -> Int
v1HorizontalPodAutoscalerStatusDesiredReplicas :: !(Int) -- ^ /Required/ "desiredReplicas" - desired number of replicas of pods managed by this autoscaler.
  , V1HorizontalPodAutoscalerStatus -> Maybe DateTime
v1HorizontalPodAutoscalerStatusLastScaleTime :: !(Maybe DateTime) -- ^ "lastScaleTime" - last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed.
  , V1HorizontalPodAutoscalerStatus -> Maybe Integer
v1HorizontalPodAutoscalerStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - most recent generation observed by this autoscaler.
  } deriving (Int -> V1HorizontalPodAutoscalerStatus -> ShowS
[V1HorizontalPodAutoscalerStatus] -> ShowS
V1HorizontalPodAutoscalerStatus -> String
(Int -> V1HorizontalPodAutoscalerStatus -> ShowS)
-> (V1HorizontalPodAutoscalerStatus -> String)
-> ([V1HorizontalPodAutoscalerStatus] -> ShowS)
-> Show V1HorizontalPodAutoscalerStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1HorizontalPodAutoscalerStatus] -> ShowS
$cshowList :: [V1HorizontalPodAutoscalerStatus] -> ShowS
show :: V1HorizontalPodAutoscalerStatus -> String
$cshow :: V1HorizontalPodAutoscalerStatus -> String
showsPrec :: Int -> V1HorizontalPodAutoscalerStatus -> ShowS
$cshowsPrec :: Int -> V1HorizontalPodAutoscalerStatus -> ShowS
P.Show, V1HorizontalPodAutoscalerStatus
-> V1HorizontalPodAutoscalerStatus -> Bool
(V1HorizontalPodAutoscalerStatus
 -> V1HorizontalPodAutoscalerStatus -> Bool)
-> (V1HorizontalPodAutoscalerStatus
    -> V1HorizontalPodAutoscalerStatus -> Bool)
-> Eq V1HorizontalPodAutoscalerStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1HorizontalPodAutoscalerStatus
-> V1HorizontalPodAutoscalerStatus -> Bool
$c/= :: V1HorizontalPodAutoscalerStatus
-> V1HorizontalPodAutoscalerStatus -> Bool
== :: V1HorizontalPodAutoscalerStatus
-> V1HorizontalPodAutoscalerStatus -> Bool
$c== :: V1HorizontalPodAutoscalerStatus
-> V1HorizontalPodAutoscalerStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1HorizontalPodAutoscalerStatus
instance A.FromJSON V1HorizontalPodAutoscalerStatus where
  parseJSON :: Value -> Parser V1HorizontalPodAutoscalerStatus
parseJSON = String
-> (Object -> Parser V1HorizontalPodAutoscalerStatus)
-> Value
-> Parser V1HorizontalPodAutoscalerStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1HorizontalPodAutoscalerStatus" ((Object -> Parser V1HorizontalPodAutoscalerStatus)
 -> Value -> Parser V1HorizontalPodAutoscalerStatus)
-> (Object -> Parser V1HorizontalPodAutoscalerStatus)
-> Value
-> Parser V1HorizontalPodAutoscalerStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Int
-> Int
-> Maybe DateTime
-> Maybe Integer
-> V1HorizontalPodAutoscalerStatus
V1HorizontalPodAutoscalerStatus
      (Maybe Int
 -> Int
 -> Int
 -> Maybe DateTime
 -> Maybe Integer
 -> V1HorizontalPodAutoscalerStatus)
-> Parser (Maybe Int)
-> Parser
     (Int
      -> Int
      -> Maybe DateTime
      -> Maybe Integer
      -> V1HorizontalPodAutoscalerStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"currentCPUUtilizationPercentage")
      Parser
  (Int
   -> Int
   -> Maybe DateTime
   -> Maybe Integer
   -> V1HorizontalPodAutoscalerStatus)
-> Parser Int
-> Parser
     (Int
      -> Maybe DateTime
      -> Maybe Integer
      -> V1HorizontalPodAutoscalerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"currentReplicas")
      Parser
  (Int
   -> Maybe DateTime
   -> Maybe Integer
   -> V1HorizontalPodAutoscalerStatus)
-> Parser Int
-> Parser
     (Maybe DateTime
      -> Maybe Integer -> V1HorizontalPodAutoscalerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"desiredReplicas")
      Parser
  (Maybe DateTime
   -> Maybe Integer -> V1HorizontalPodAutoscalerStatus)
-> Parser (Maybe DateTime)
-> Parser (Maybe Integer -> V1HorizontalPodAutoscalerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastScaleTime")
      Parser (Maybe Integer -> V1HorizontalPodAutoscalerStatus)
-> Parser (Maybe Integer) -> Parser V1HorizontalPodAutoscalerStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")

-- | ToJSON V1HorizontalPodAutoscalerStatus
instance A.ToJSON V1HorizontalPodAutoscalerStatus where
  toJSON :: V1HorizontalPodAutoscalerStatus -> Value
toJSON V1HorizontalPodAutoscalerStatus {Int
Maybe Int
Maybe Integer
Maybe DateTime
v1HorizontalPodAutoscalerStatusObservedGeneration :: Maybe Integer
v1HorizontalPodAutoscalerStatusLastScaleTime :: Maybe DateTime
v1HorizontalPodAutoscalerStatusDesiredReplicas :: Int
v1HorizontalPodAutoscalerStatusCurrentReplicas :: Int
v1HorizontalPodAutoscalerStatusCurrentCpuUtilizationPercentage :: Maybe Int
v1HorizontalPodAutoscalerStatusObservedGeneration :: V1HorizontalPodAutoscalerStatus -> Maybe Integer
v1HorizontalPodAutoscalerStatusLastScaleTime :: V1HorizontalPodAutoscalerStatus -> Maybe DateTime
v1HorizontalPodAutoscalerStatusDesiredReplicas :: V1HorizontalPodAutoscalerStatus -> Int
v1HorizontalPodAutoscalerStatusCurrentReplicas :: V1HorizontalPodAutoscalerStatus -> Int
v1HorizontalPodAutoscalerStatusCurrentCpuUtilizationPercentage :: V1HorizontalPodAutoscalerStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"currentCPUUtilizationPercentage" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1HorizontalPodAutoscalerStatusCurrentCpuUtilizationPercentage
      , Text
"currentReplicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1HorizontalPodAutoscalerStatusCurrentReplicas
      , Text
"desiredReplicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1HorizontalPodAutoscalerStatusDesiredReplicas
      , Text
"lastScaleTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1HorizontalPodAutoscalerStatusLastScaleTime
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1HorizontalPodAutoscalerStatusObservedGeneration
      ]


-- | Construct a value of type 'V1HorizontalPodAutoscalerStatus' (by applying it's required fields, if any)
mkV1HorizontalPodAutoscalerStatus
  :: Int -- ^ 'v1HorizontalPodAutoscalerStatusCurrentReplicas': current number of replicas of pods managed by this autoscaler.
  -> Int -- ^ 'v1HorizontalPodAutoscalerStatusDesiredReplicas': desired number of replicas of pods managed by this autoscaler.
  -> V1HorizontalPodAutoscalerStatus
mkV1HorizontalPodAutoscalerStatus :: Int -> Int -> V1HorizontalPodAutoscalerStatus
mkV1HorizontalPodAutoscalerStatus Int
v1HorizontalPodAutoscalerStatusCurrentReplicas Int
v1HorizontalPodAutoscalerStatusDesiredReplicas =
  V1HorizontalPodAutoscalerStatus :: Maybe Int
-> Int
-> Int
-> Maybe DateTime
-> Maybe Integer
-> V1HorizontalPodAutoscalerStatus
V1HorizontalPodAutoscalerStatus
  { v1HorizontalPodAutoscalerStatusCurrentCpuUtilizationPercentage :: Maybe Int
v1HorizontalPodAutoscalerStatusCurrentCpuUtilizationPercentage = Maybe Int
forall a. Maybe a
Nothing
  , Int
v1HorizontalPodAutoscalerStatusCurrentReplicas :: Int
v1HorizontalPodAutoscalerStatusCurrentReplicas :: Int
v1HorizontalPodAutoscalerStatusCurrentReplicas
  , Int
v1HorizontalPodAutoscalerStatusDesiredReplicas :: Int
v1HorizontalPodAutoscalerStatusDesiredReplicas :: Int
v1HorizontalPodAutoscalerStatusDesiredReplicas
  , v1HorizontalPodAutoscalerStatusLastScaleTime :: Maybe DateTime
v1HorizontalPodAutoscalerStatusLastScaleTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1HorizontalPodAutoscalerStatusObservedGeneration :: Maybe Integer
v1HorizontalPodAutoscalerStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  }

-- ** V1HostAlias
-- | V1HostAlias
-- HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.
data V1HostAlias = V1HostAlias
  { V1HostAlias -> Maybe [Text]
v1HostAliasHostnames :: !(Maybe [Text]) -- ^ "hostnames" - Hostnames for the above IP address.
  , V1HostAlias -> Maybe Text
v1HostAliasIp :: !(Maybe Text) -- ^ "ip" - IP address of the host file entry.
  } deriving (Int -> V1HostAlias -> ShowS
[V1HostAlias] -> ShowS
V1HostAlias -> String
(Int -> V1HostAlias -> ShowS)
-> (V1HostAlias -> String)
-> ([V1HostAlias] -> ShowS)
-> Show V1HostAlias
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1HostAlias] -> ShowS
$cshowList :: [V1HostAlias] -> ShowS
show :: V1HostAlias -> String
$cshow :: V1HostAlias -> String
showsPrec :: Int -> V1HostAlias -> ShowS
$cshowsPrec :: Int -> V1HostAlias -> ShowS
P.Show, V1HostAlias -> V1HostAlias -> Bool
(V1HostAlias -> V1HostAlias -> Bool)
-> (V1HostAlias -> V1HostAlias -> Bool) -> Eq V1HostAlias
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1HostAlias -> V1HostAlias -> Bool
$c/= :: V1HostAlias -> V1HostAlias -> Bool
== :: V1HostAlias -> V1HostAlias -> Bool
$c== :: V1HostAlias -> V1HostAlias -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1HostAlias
instance A.FromJSON V1HostAlias where
  parseJSON :: Value -> Parser V1HostAlias
parseJSON = String
-> (Object -> Parser V1HostAlias) -> Value -> Parser V1HostAlias
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1HostAlias" ((Object -> Parser V1HostAlias) -> Value -> Parser V1HostAlias)
-> (Object -> Parser V1HostAlias) -> Value -> Parser V1HostAlias
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text] -> Maybe Text -> V1HostAlias
V1HostAlias
      (Maybe [Text] -> Maybe Text -> V1HostAlias)
-> Parser (Maybe [Text]) -> Parser (Maybe Text -> V1HostAlias)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostnames")
      Parser (Maybe Text -> V1HostAlias)
-> Parser (Maybe Text) -> Parser V1HostAlias
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ip")

-- | ToJSON V1HostAlias
instance A.ToJSON V1HostAlias where
  toJSON :: V1HostAlias -> Value
toJSON V1HostAlias {Maybe [Text]
Maybe Text
v1HostAliasIp :: Maybe Text
v1HostAliasHostnames :: Maybe [Text]
v1HostAliasIp :: V1HostAlias -> Maybe Text
v1HostAliasHostnames :: V1HostAlias -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"hostnames" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1HostAliasHostnames
      , Text
"ip" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1HostAliasIp
      ]


-- | Construct a value of type 'V1HostAlias' (by applying it's required fields, if any)
mkV1HostAlias
  :: V1HostAlias
mkV1HostAlias :: V1HostAlias
mkV1HostAlias =
  V1HostAlias :: Maybe [Text] -> Maybe Text -> V1HostAlias
V1HostAlias
  { v1HostAliasHostnames :: Maybe [Text]
v1HostAliasHostnames = Maybe [Text]
forall a. Maybe a
Nothing
  , v1HostAliasIp :: Maybe Text
v1HostAliasIp = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1HostPathVolumeSource
-- | V1HostPathVolumeSource
-- Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.
data V1HostPathVolumeSource = V1HostPathVolumeSource
  { V1HostPathVolumeSource -> Text
v1HostPathVolumeSourcePath :: !(Text) -- ^ /Required/ "path" - Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  , V1HostPathVolumeSource -> Maybe Text
v1HostPathVolumeSourceType :: !(Maybe Text) -- ^ "type" - Type for HostPath Volume Defaults to \&quot;\&quot; More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  } deriving (Int -> V1HostPathVolumeSource -> ShowS
[V1HostPathVolumeSource] -> ShowS
V1HostPathVolumeSource -> String
(Int -> V1HostPathVolumeSource -> ShowS)
-> (V1HostPathVolumeSource -> String)
-> ([V1HostPathVolumeSource] -> ShowS)
-> Show V1HostPathVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1HostPathVolumeSource] -> ShowS
$cshowList :: [V1HostPathVolumeSource] -> ShowS
show :: V1HostPathVolumeSource -> String
$cshow :: V1HostPathVolumeSource -> String
showsPrec :: Int -> V1HostPathVolumeSource -> ShowS
$cshowsPrec :: Int -> V1HostPathVolumeSource -> ShowS
P.Show, V1HostPathVolumeSource -> V1HostPathVolumeSource -> Bool
(V1HostPathVolumeSource -> V1HostPathVolumeSource -> Bool)
-> (V1HostPathVolumeSource -> V1HostPathVolumeSource -> Bool)
-> Eq V1HostPathVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1HostPathVolumeSource -> V1HostPathVolumeSource -> Bool
$c/= :: V1HostPathVolumeSource -> V1HostPathVolumeSource -> Bool
== :: V1HostPathVolumeSource -> V1HostPathVolumeSource -> Bool
$c== :: V1HostPathVolumeSource -> V1HostPathVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1HostPathVolumeSource
instance A.FromJSON V1HostPathVolumeSource where
  parseJSON :: Value -> Parser V1HostPathVolumeSource
parseJSON = String
-> (Object -> Parser V1HostPathVolumeSource)
-> Value
-> Parser V1HostPathVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1HostPathVolumeSource" ((Object -> Parser V1HostPathVolumeSource)
 -> Value -> Parser V1HostPathVolumeSource)
-> (Object -> Parser V1HostPathVolumeSource)
-> Value
-> Parser V1HostPathVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Maybe Text -> V1HostPathVolumeSource
V1HostPathVolumeSource
      (Text -> Maybe Text -> V1HostPathVolumeSource)
-> Parser Text -> Parser (Maybe Text -> V1HostPathVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"path")
      Parser (Maybe Text -> V1HostPathVolumeSource)
-> Parser (Maybe Text) -> Parser V1HostPathVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")

-- | ToJSON V1HostPathVolumeSource
instance A.ToJSON V1HostPathVolumeSource where
  toJSON :: V1HostPathVolumeSource -> Value
toJSON V1HostPathVolumeSource {Maybe Text
Text
v1HostPathVolumeSourceType :: Maybe Text
v1HostPathVolumeSourcePath :: Text
v1HostPathVolumeSourceType :: V1HostPathVolumeSource -> Maybe Text
v1HostPathVolumeSourcePath :: V1HostPathVolumeSource -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"path" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1HostPathVolumeSourcePath
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1HostPathVolumeSourceType
      ]


-- | Construct a value of type 'V1HostPathVolumeSource' (by applying it's required fields, if any)
mkV1HostPathVolumeSource
  :: Text -- ^ 'v1HostPathVolumeSourcePath': Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
  -> V1HostPathVolumeSource
mkV1HostPathVolumeSource :: Text -> V1HostPathVolumeSource
mkV1HostPathVolumeSource Text
v1HostPathVolumeSourcePath =
  V1HostPathVolumeSource :: Text -> Maybe Text -> V1HostPathVolumeSource
V1HostPathVolumeSource
  { Text
v1HostPathVolumeSourcePath :: Text
v1HostPathVolumeSourcePath :: Text
v1HostPathVolumeSourcePath
  , v1HostPathVolumeSourceType :: Maybe Text
v1HostPathVolumeSourceType = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1IPBlock
-- | V1IPBlock
-- IPBlock describes a particular CIDR (Ex. \"192.168.1.1/24\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.
data V1IPBlock = V1IPBlock
  { V1IPBlock -> Text
v1IPBlockCidr :: !(Text) -- ^ /Required/ "cidr" - CIDR is a string representing the IP Block Valid examples are \&quot;192.168.1.1/24\&quot;
  , V1IPBlock -> Maybe [Text]
v1IPBlockExcept :: !(Maybe [Text]) -- ^ "except" - Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \&quot;192.168.1.1/24\&quot; Except values will be rejected if they are outside the CIDR range
  } deriving (Int -> V1IPBlock -> ShowS
[V1IPBlock] -> ShowS
V1IPBlock -> String
(Int -> V1IPBlock -> ShowS)
-> (V1IPBlock -> String)
-> ([V1IPBlock] -> ShowS)
-> Show V1IPBlock
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1IPBlock] -> ShowS
$cshowList :: [V1IPBlock] -> ShowS
show :: V1IPBlock -> String
$cshow :: V1IPBlock -> String
showsPrec :: Int -> V1IPBlock -> ShowS
$cshowsPrec :: Int -> V1IPBlock -> ShowS
P.Show, V1IPBlock -> V1IPBlock -> Bool
(V1IPBlock -> V1IPBlock -> Bool)
-> (V1IPBlock -> V1IPBlock -> Bool) -> Eq V1IPBlock
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1IPBlock -> V1IPBlock -> Bool
$c/= :: V1IPBlock -> V1IPBlock -> Bool
== :: V1IPBlock -> V1IPBlock -> Bool
$c== :: V1IPBlock -> V1IPBlock -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1IPBlock
instance A.FromJSON V1IPBlock where
  parseJSON :: Value -> Parser V1IPBlock
parseJSON = String -> (Object -> Parser V1IPBlock) -> Value -> Parser V1IPBlock
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1IPBlock" ((Object -> Parser V1IPBlock) -> Value -> Parser V1IPBlock)
-> (Object -> Parser V1IPBlock) -> Value -> Parser V1IPBlock
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Maybe [Text] -> V1IPBlock
V1IPBlock
      (Text -> Maybe [Text] -> V1IPBlock)
-> Parser Text -> Parser (Maybe [Text] -> V1IPBlock)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"cidr")
      Parser (Maybe [Text] -> V1IPBlock)
-> Parser (Maybe [Text]) -> Parser V1IPBlock
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"except")

-- | ToJSON V1IPBlock
instance A.ToJSON V1IPBlock where
  toJSON :: V1IPBlock -> Value
toJSON V1IPBlock {Maybe [Text]
Text
v1IPBlockExcept :: Maybe [Text]
v1IPBlockCidr :: Text
v1IPBlockExcept :: V1IPBlock -> Maybe [Text]
v1IPBlockCidr :: V1IPBlock -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"cidr" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1IPBlockCidr
      , Text
"except" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1IPBlockExcept
      ]


-- | Construct a value of type 'V1IPBlock' (by applying it's required fields, if any)
mkV1IPBlock
  :: Text -- ^ 'v1IPBlockCidr': CIDR is a string representing the IP Block Valid examples are \"192.168.1.1/24\"
  -> V1IPBlock
mkV1IPBlock :: Text -> V1IPBlock
mkV1IPBlock Text
v1IPBlockCidr =
  V1IPBlock :: Text -> Maybe [Text] -> V1IPBlock
V1IPBlock
  { Text
v1IPBlockCidr :: Text
v1IPBlockCidr :: Text
v1IPBlockCidr
  , v1IPBlockExcept :: Maybe [Text]
v1IPBlockExcept = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1ISCSIPersistentVolumeSource
-- | V1ISCSIPersistentVolumeSource
-- ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.
data V1ISCSIPersistentVolumeSource = V1ISCSIPersistentVolumeSource
  { V1ISCSIPersistentVolumeSource -> Maybe Bool
v1ISCSIPersistentVolumeSourceChapAuthDiscovery :: !(Maybe Bool) -- ^ "chapAuthDiscovery" - whether support iSCSI Discovery CHAP authentication
  , V1ISCSIPersistentVolumeSource -> Maybe Bool
v1ISCSIPersistentVolumeSourceChapAuthSession :: !(Maybe Bool) -- ^ "chapAuthSession" - whether support iSCSI Session CHAP authentication
  , V1ISCSIPersistentVolumeSource -> Maybe Text
v1ISCSIPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. Implicitly inferred to be \&quot;ext4\&quot; if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
  , V1ISCSIPersistentVolumeSource -> Maybe Text
v1ISCSIPersistentVolumeSourceInitiatorName :: !(Maybe Text) -- ^ "initiatorName" - Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
  , V1ISCSIPersistentVolumeSource -> Text
v1ISCSIPersistentVolumeSourceIqn :: !(Text) -- ^ /Required/ "iqn" - Target iSCSI Qualified Name.
  , V1ISCSIPersistentVolumeSource -> Maybe Text
v1ISCSIPersistentVolumeSourceIscsiInterface :: !(Maybe Text) -- ^ "iscsiInterface" - iSCSI Interface Name that uses an iSCSI transport. Defaults to &#39;default&#39; (tcp).
  , V1ISCSIPersistentVolumeSource -> Int
v1ISCSIPersistentVolumeSourceLun :: !(Int) -- ^ /Required/ "lun" - iSCSI Target Lun number.
  , V1ISCSIPersistentVolumeSource -> Maybe [Text]
v1ISCSIPersistentVolumeSourcePortals :: !(Maybe [Text]) -- ^ "portals" - iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
  , V1ISCSIPersistentVolumeSource -> Maybe Bool
v1ISCSIPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.
  , V1ISCSIPersistentVolumeSource -> Maybe V1SecretReference
v1ISCSIPersistentVolumeSourceSecretRef :: !(Maybe V1SecretReference) -- ^ "secretRef"
  , V1ISCSIPersistentVolumeSource -> Text
v1ISCSIPersistentVolumeSourceTargetPortal :: !(Text) -- ^ /Required/ "targetPortal" - iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
  } deriving (Int -> V1ISCSIPersistentVolumeSource -> ShowS
[V1ISCSIPersistentVolumeSource] -> ShowS
V1ISCSIPersistentVolumeSource -> String
(Int -> V1ISCSIPersistentVolumeSource -> ShowS)
-> (V1ISCSIPersistentVolumeSource -> String)
-> ([V1ISCSIPersistentVolumeSource] -> ShowS)
-> Show V1ISCSIPersistentVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ISCSIPersistentVolumeSource] -> ShowS
$cshowList :: [V1ISCSIPersistentVolumeSource] -> ShowS
show :: V1ISCSIPersistentVolumeSource -> String
$cshow :: V1ISCSIPersistentVolumeSource -> String
showsPrec :: Int -> V1ISCSIPersistentVolumeSource -> ShowS
$cshowsPrec :: Int -> V1ISCSIPersistentVolumeSource -> ShowS
P.Show, V1ISCSIPersistentVolumeSource
-> V1ISCSIPersistentVolumeSource -> Bool
(V1ISCSIPersistentVolumeSource
 -> V1ISCSIPersistentVolumeSource -> Bool)
-> (V1ISCSIPersistentVolumeSource
    -> V1ISCSIPersistentVolumeSource -> Bool)
-> Eq V1ISCSIPersistentVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ISCSIPersistentVolumeSource
-> V1ISCSIPersistentVolumeSource -> Bool
$c/= :: V1ISCSIPersistentVolumeSource
-> V1ISCSIPersistentVolumeSource -> Bool
== :: V1ISCSIPersistentVolumeSource
-> V1ISCSIPersistentVolumeSource -> Bool
$c== :: V1ISCSIPersistentVolumeSource
-> V1ISCSIPersistentVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ISCSIPersistentVolumeSource
instance A.FromJSON V1ISCSIPersistentVolumeSource where
  parseJSON :: Value -> Parser V1ISCSIPersistentVolumeSource
parseJSON = String
-> (Object -> Parser V1ISCSIPersistentVolumeSource)
-> Value
-> Parser V1ISCSIPersistentVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ISCSIPersistentVolumeSource" ((Object -> Parser V1ISCSIPersistentVolumeSource)
 -> Value -> Parser V1ISCSIPersistentVolumeSource)
-> (Object -> Parser V1ISCSIPersistentVolumeSource)
-> Value
-> Parser V1ISCSIPersistentVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe Text
-> Int
-> Maybe [Text]
-> Maybe Bool
-> Maybe V1SecretReference
-> Text
-> V1ISCSIPersistentVolumeSource
V1ISCSIPersistentVolumeSource
      (Maybe Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Maybe Text
 -> Int
 -> Maybe [Text]
 -> Maybe Bool
 -> Maybe V1SecretReference
 -> Text
 -> V1ISCSIPersistentVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> Int
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe V1SecretReference
      -> Text
      -> V1ISCSIPersistentVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"chapAuthDiscovery")
      Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> Int
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe V1SecretReference
   -> Text
   -> V1ISCSIPersistentVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> Int
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe V1SecretReference
      -> Text
      -> V1ISCSIPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"chapAuthSession")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> Int
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe V1SecretReference
   -> Text
   -> V1ISCSIPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text
      -> Maybe Text
      -> Int
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe V1SecretReference
      -> Text
      -> V1ISCSIPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Maybe Text
   -> Text
   -> Maybe Text
   -> Int
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe V1SecretReference
   -> Text
   -> V1ISCSIPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe Text
      -> Int
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe V1SecretReference
      -> Text
      -> V1ISCSIPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"initiatorName")
      Parser
  (Text
   -> Maybe Text
   -> Int
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe V1SecretReference
   -> Text
   -> V1ISCSIPersistentVolumeSource)
-> Parser Text
-> Parser
     (Maybe Text
      -> Int
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe V1SecretReference
      -> Text
      -> V1ISCSIPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"iqn")
      Parser
  (Maybe Text
   -> Int
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe V1SecretReference
   -> Text
   -> V1ISCSIPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Int
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe V1SecretReference
      -> Text
      -> V1ISCSIPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"iscsiInterface")
      Parser
  (Int
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe V1SecretReference
   -> Text
   -> V1ISCSIPersistentVolumeSource)
-> Parser Int
-> Parser
     (Maybe [Text]
      -> Maybe Bool
      -> Maybe V1SecretReference
      -> Text
      -> V1ISCSIPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"lun")
      Parser
  (Maybe [Text]
   -> Maybe Bool
   -> Maybe V1SecretReference
   -> Text
   -> V1ISCSIPersistentVolumeSource)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Bool
      -> Maybe V1SecretReference
      -> Text
      -> V1ISCSIPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"portals")
      Parser
  (Maybe Bool
   -> Maybe V1SecretReference
   -> Text
   -> V1ISCSIPersistentVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe V1SecretReference -> Text -> V1ISCSIPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser
  (Maybe V1SecretReference -> Text -> V1ISCSIPersistentVolumeSource)
-> Parser (Maybe V1SecretReference)
-> Parser (Text -> V1ISCSIPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SecretReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretRef")
      Parser (Text -> V1ISCSIPersistentVolumeSource)
-> Parser Text -> Parser V1ISCSIPersistentVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"targetPortal")

-- | ToJSON V1ISCSIPersistentVolumeSource
instance A.ToJSON V1ISCSIPersistentVolumeSource where
  toJSON :: V1ISCSIPersistentVolumeSource -> Value
toJSON V1ISCSIPersistentVolumeSource {Int
Maybe Bool
Maybe [Text]
Maybe Text
Maybe V1SecretReference
Text
v1ISCSIPersistentVolumeSourceTargetPortal :: Text
v1ISCSIPersistentVolumeSourceSecretRef :: Maybe V1SecretReference
v1ISCSIPersistentVolumeSourceReadOnly :: Maybe Bool
v1ISCSIPersistentVolumeSourcePortals :: Maybe [Text]
v1ISCSIPersistentVolumeSourceLun :: Int
v1ISCSIPersistentVolumeSourceIscsiInterface :: Maybe Text
v1ISCSIPersistentVolumeSourceIqn :: Text
v1ISCSIPersistentVolumeSourceInitiatorName :: Maybe Text
v1ISCSIPersistentVolumeSourceFsType :: Maybe Text
v1ISCSIPersistentVolumeSourceChapAuthSession :: Maybe Bool
v1ISCSIPersistentVolumeSourceChapAuthDiscovery :: Maybe Bool
v1ISCSIPersistentVolumeSourceTargetPortal :: V1ISCSIPersistentVolumeSource -> Text
v1ISCSIPersistentVolumeSourceSecretRef :: V1ISCSIPersistentVolumeSource -> Maybe V1SecretReference
v1ISCSIPersistentVolumeSourceReadOnly :: V1ISCSIPersistentVolumeSource -> Maybe Bool
v1ISCSIPersistentVolumeSourcePortals :: V1ISCSIPersistentVolumeSource -> Maybe [Text]
v1ISCSIPersistentVolumeSourceLun :: V1ISCSIPersistentVolumeSource -> Int
v1ISCSIPersistentVolumeSourceIscsiInterface :: V1ISCSIPersistentVolumeSource -> Maybe Text
v1ISCSIPersistentVolumeSourceIqn :: V1ISCSIPersistentVolumeSource -> Text
v1ISCSIPersistentVolumeSourceInitiatorName :: V1ISCSIPersistentVolumeSource -> Maybe Text
v1ISCSIPersistentVolumeSourceFsType :: V1ISCSIPersistentVolumeSource -> Maybe Text
v1ISCSIPersistentVolumeSourceChapAuthSession :: V1ISCSIPersistentVolumeSource -> Maybe Bool
v1ISCSIPersistentVolumeSourceChapAuthDiscovery :: V1ISCSIPersistentVolumeSource -> Maybe Bool
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"chapAuthDiscovery" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ISCSIPersistentVolumeSourceChapAuthDiscovery
      , Text
"chapAuthSession" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ISCSIPersistentVolumeSourceChapAuthSession
      , Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ISCSIPersistentVolumeSourceFsType
      , Text
"initiatorName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ISCSIPersistentVolumeSourceInitiatorName
      , Text
"iqn" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ISCSIPersistentVolumeSourceIqn
      , Text
"iscsiInterface" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ISCSIPersistentVolumeSourceIscsiInterface
      , Text
"lun" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1ISCSIPersistentVolumeSourceLun
      , Text
"portals" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1ISCSIPersistentVolumeSourcePortals
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ISCSIPersistentVolumeSourceReadOnly
      , Text
"secretRef" Text -> Maybe V1SecretReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SecretReference
v1ISCSIPersistentVolumeSourceSecretRef
      , Text
"targetPortal" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ISCSIPersistentVolumeSourceTargetPortal
      ]


-- | Construct a value of type 'V1ISCSIPersistentVolumeSource' (by applying it's required fields, if any)
mkV1ISCSIPersistentVolumeSource
  :: Text -- ^ 'v1ISCSIPersistentVolumeSourceIqn': Target iSCSI Qualified Name.
  -> Int -- ^ 'v1ISCSIPersistentVolumeSourceLun': iSCSI Target Lun number.
  -> Text -- ^ 'v1ISCSIPersistentVolumeSourceTargetPortal': iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
  -> V1ISCSIPersistentVolumeSource
mkV1ISCSIPersistentVolumeSource :: Text -> Int -> Text -> V1ISCSIPersistentVolumeSource
mkV1ISCSIPersistentVolumeSource Text
v1ISCSIPersistentVolumeSourceIqn Int
v1ISCSIPersistentVolumeSourceLun Text
v1ISCSIPersistentVolumeSourceTargetPortal =
  V1ISCSIPersistentVolumeSource :: Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe Text
-> Int
-> Maybe [Text]
-> Maybe Bool
-> Maybe V1SecretReference
-> Text
-> V1ISCSIPersistentVolumeSource
V1ISCSIPersistentVolumeSource
  { v1ISCSIPersistentVolumeSourceChapAuthDiscovery :: Maybe Bool
v1ISCSIPersistentVolumeSourceChapAuthDiscovery = Maybe Bool
forall a. Maybe a
Nothing
  , v1ISCSIPersistentVolumeSourceChapAuthSession :: Maybe Bool
v1ISCSIPersistentVolumeSourceChapAuthSession = Maybe Bool
forall a. Maybe a
Nothing
  , v1ISCSIPersistentVolumeSourceFsType :: Maybe Text
v1ISCSIPersistentVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , v1ISCSIPersistentVolumeSourceInitiatorName :: Maybe Text
v1ISCSIPersistentVolumeSourceInitiatorName = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1ISCSIPersistentVolumeSourceIqn :: Text
v1ISCSIPersistentVolumeSourceIqn :: Text
v1ISCSIPersistentVolumeSourceIqn
  , v1ISCSIPersistentVolumeSourceIscsiInterface :: Maybe Text
v1ISCSIPersistentVolumeSourceIscsiInterface = Maybe Text
forall a. Maybe a
Nothing
  , Int
v1ISCSIPersistentVolumeSourceLun :: Int
v1ISCSIPersistentVolumeSourceLun :: Int
v1ISCSIPersistentVolumeSourceLun
  , v1ISCSIPersistentVolumeSourcePortals :: Maybe [Text]
v1ISCSIPersistentVolumeSourcePortals = Maybe [Text]
forall a. Maybe a
Nothing
  , v1ISCSIPersistentVolumeSourceReadOnly :: Maybe Bool
v1ISCSIPersistentVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , v1ISCSIPersistentVolumeSourceSecretRef :: Maybe V1SecretReference
v1ISCSIPersistentVolumeSourceSecretRef = Maybe V1SecretReference
forall a. Maybe a
Nothing
  , Text
v1ISCSIPersistentVolumeSourceTargetPortal :: Text
v1ISCSIPersistentVolumeSourceTargetPortal :: Text
v1ISCSIPersistentVolumeSourceTargetPortal
  }

-- ** V1ISCSIVolumeSource
-- | V1ISCSIVolumeSource
-- Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.
data V1ISCSIVolumeSource = V1ISCSIVolumeSource
  { V1ISCSIVolumeSource -> Maybe Bool
v1ISCSIVolumeSourceChapAuthDiscovery :: !(Maybe Bool) -- ^ "chapAuthDiscovery" - whether support iSCSI Discovery CHAP authentication
  , V1ISCSIVolumeSource -> Maybe Bool
v1ISCSIVolumeSourceChapAuthSession :: !(Maybe Bool) -- ^ "chapAuthSession" - whether support iSCSI Session CHAP authentication
  , V1ISCSIVolumeSource -> Maybe Text
v1ISCSIVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. Implicitly inferred to be \&quot;ext4\&quot; if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
  , V1ISCSIVolumeSource -> Maybe Text
v1ISCSIVolumeSourceInitiatorName :: !(Maybe Text) -- ^ "initiatorName" - Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
  , V1ISCSIVolumeSource -> Text
v1ISCSIVolumeSourceIqn :: !(Text) -- ^ /Required/ "iqn" - Target iSCSI Qualified Name.
  , V1ISCSIVolumeSource -> Maybe Text
v1ISCSIVolumeSourceIscsiInterface :: !(Maybe Text) -- ^ "iscsiInterface" - iSCSI Interface Name that uses an iSCSI transport. Defaults to &#39;default&#39; (tcp).
  , V1ISCSIVolumeSource -> Int
v1ISCSIVolumeSourceLun :: !(Int) -- ^ /Required/ "lun" - iSCSI Target Lun number.
  , V1ISCSIVolumeSource -> Maybe [Text]
v1ISCSIVolumeSourcePortals :: !(Maybe [Text]) -- ^ "portals" - iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
  , V1ISCSIVolumeSource -> Maybe Bool
v1ISCSIVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.
  , V1ISCSIVolumeSource -> Maybe V1LocalObjectReference
v1ISCSIVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"
  , V1ISCSIVolumeSource -> Text
v1ISCSIVolumeSourceTargetPortal :: !(Text) -- ^ /Required/ "targetPortal" - iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
  } deriving (Int -> V1ISCSIVolumeSource -> ShowS
[V1ISCSIVolumeSource] -> ShowS
V1ISCSIVolumeSource -> String
(Int -> V1ISCSIVolumeSource -> ShowS)
-> (V1ISCSIVolumeSource -> String)
-> ([V1ISCSIVolumeSource] -> ShowS)
-> Show V1ISCSIVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ISCSIVolumeSource] -> ShowS
$cshowList :: [V1ISCSIVolumeSource] -> ShowS
show :: V1ISCSIVolumeSource -> String
$cshow :: V1ISCSIVolumeSource -> String
showsPrec :: Int -> V1ISCSIVolumeSource -> ShowS
$cshowsPrec :: Int -> V1ISCSIVolumeSource -> ShowS
P.Show, V1ISCSIVolumeSource -> V1ISCSIVolumeSource -> Bool
(V1ISCSIVolumeSource -> V1ISCSIVolumeSource -> Bool)
-> (V1ISCSIVolumeSource -> V1ISCSIVolumeSource -> Bool)
-> Eq V1ISCSIVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ISCSIVolumeSource -> V1ISCSIVolumeSource -> Bool
$c/= :: V1ISCSIVolumeSource -> V1ISCSIVolumeSource -> Bool
== :: V1ISCSIVolumeSource -> V1ISCSIVolumeSource -> Bool
$c== :: V1ISCSIVolumeSource -> V1ISCSIVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ISCSIVolumeSource
instance A.FromJSON V1ISCSIVolumeSource where
  parseJSON :: Value -> Parser V1ISCSIVolumeSource
parseJSON = String
-> (Object -> Parser V1ISCSIVolumeSource)
-> Value
-> Parser V1ISCSIVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ISCSIVolumeSource" ((Object -> Parser V1ISCSIVolumeSource)
 -> Value -> Parser V1ISCSIVolumeSource)
-> (Object -> Parser V1ISCSIVolumeSource)
-> Value
-> Parser V1ISCSIVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe Text
-> Int
-> Maybe [Text]
-> Maybe Bool
-> Maybe V1LocalObjectReference
-> Text
-> V1ISCSIVolumeSource
V1ISCSIVolumeSource
      (Maybe Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Maybe Text
 -> Int
 -> Maybe [Text]
 -> Maybe Bool
 -> Maybe V1LocalObjectReference
 -> Text
 -> V1ISCSIVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> Int
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe V1LocalObjectReference
      -> Text
      -> V1ISCSIVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"chapAuthDiscovery")
      Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> Int
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe V1LocalObjectReference
   -> Text
   -> V1ISCSIVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> Int
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe V1LocalObjectReference
      -> Text
      -> V1ISCSIVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"chapAuthSession")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> Int
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe V1LocalObjectReference
   -> Text
   -> V1ISCSIVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text
      -> Maybe Text
      -> Int
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe V1LocalObjectReference
      -> Text
      -> V1ISCSIVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Maybe Text
   -> Text
   -> Maybe Text
   -> Int
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe V1LocalObjectReference
   -> Text
   -> V1ISCSIVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe Text
      -> Int
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe V1LocalObjectReference
      -> Text
      -> V1ISCSIVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"initiatorName")
      Parser
  (Text
   -> Maybe Text
   -> Int
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe V1LocalObjectReference
   -> Text
   -> V1ISCSIVolumeSource)
-> Parser Text
-> Parser
     (Maybe Text
      -> Int
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe V1LocalObjectReference
      -> Text
      -> V1ISCSIVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"iqn")
      Parser
  (Maybe Text
   -> Int
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe V1LocalObjectReference
   -> Text
   -> V1ISCSIVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Int
      -> Maybe [Text]
      -> Maybe Bool
      -> Maybe V1LocalObjectReference
      -> Text
      -> V1ISCSIVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"iscsiInterface")
      Parser
  (Int
   -> Maybe [Text]
   -> Maybe Bool
   -> Maybe V1LocalObjectReference
   -> Text
   -> V1ISCSIVolumeSource)
-> Parser Int
-> Parser
     (Maybe [Text]
      -> Maybe Bool
      -> Maybe V1LocalObjectReference
      -> Text
      -> V1ISCSIVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"lun")
      Parser
  (Maybe [Text]
   -> Maybe Bool
   -> Maybe V1LocalObjectReference
   -> Text
   -> V1ISCSIVolumeSource)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Bool
      -> Maybe V1LocalObjectReference -> Text -> V1ISCSIVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"portals")
      Parser
  (Maybe Bool
   -> Maybe V1LocalObjectReference -> Text -> V1ISCSIVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe V1LocalObjectReference -> Text -> V1ISCSIVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser
  (Maybe V1LocalObjectReference -> Text -> V1ISCSIVolumeSource)
-> Parser (Maybe V1LocalObjectReference)
-> Parser (Text -> V1ISCSIVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LocalObjectReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretRef")
      Parser (Text -> V1ISCSIVolumeSource)
-> Parser Text -> Parser V1ISCSIVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"targetPortal")

-- | ToJSON V1ISCSIVolumeSource
instance A.ToJSON V1ISCSIVolumeSource where
  toJSON :: V1ISCSIVolumeSource -> Value
toJSON V1ISCSIVolumeSource {Int
Maybe Bool
Maybe [Text]
Maybe Text
Maybe V1LocalObjectReference
Text
v1ISCSIVolumeSourceTargetPortal :: Text
v1ISCSIVolumeSourceSecretRef :: Maybe V1LocalObjectReference
v1ISCSIVolumeSourceReadOnly :: Maybe Bool
v1ISCSIVolumeSourcePortals :: Maybe [Text]
v1ISCSIVolumeSourceLun :: Int
v1ISCSIVolumeSourceIscsiInterface :: Maybe Text
v1ISCSIVolumeSourceIqn :: Text
v1ISCSIVolumeSourceInitiatorName :: Maybe Text
v1ISCSIVolumeSourceFsType :: Maybe Text
v1ISCSIVolumeSourceChapAuthSession :: Maybe Bool
v1ISCSIVolumeSourceChapAuthDiscovery :: Maybe Bool
v1ISCSIVolumeSourceTargetPortal :: V1ISCSIVolumeSource -> Text
v1ISCSIVolumeSourceSecretRef :: V1ISCSIVolumeSource -> Maybe V1LocalObjectReference
v1ISCSIVolumeSourceReadOnly :: V1ISCSIVolumeSource -> Maybe Bool
v1ISCSIVolumeSourcePortals :: V1ISCSIVolumeSource -> Maybe [Text]
v1ISCSIVolumeSourceLun :: V1ISCSIVolumeSource -> Int
v1ISCSIVolumeSourceIscsiInterface :: V1ISCSIVolumeSource -> Maybe Text
v1ISCSIVolumeSourceIqn :: V1ISCSIVolumeSource -> Text
v1ISCSIVolumeSourceInitiatorName :: V1ISCSIVolumeSource -> Maybe Text
v1ISCSIVolumeSourceFsType :: V1ISCSIVolumeSource -> Maybe Text
v1ISCSIVolumeSourceChapAuthSession :: V1ISCSIVolumeSource -> Maybe Bool
v1ISCSIVolumeSourceChapAuthDiscovery :: V1ISCSIVolumeSource -> Maybe Bool
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"chapAuthDiscovery" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ISCSIVolumeSourceChapAuthDiscovery
      , Text
"chapAuthSession" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ISCSIVolumeSourceChapAuthSession
      , Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ISCSIVolumeSourceFsType
      , Text
"initiatorName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ISCSIVolumeSourceInitiatorName
      , Text
"iqn" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ISCSIVolumeSourceIqn
      , Text
"iscsiInterface" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ISCSIVolumeSourceIscsiInterface
      , Text
"lun" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1ISCSIVolumeSourceLun
      , Text
"portals" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1ISCSIVolumeSourcePortals
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ISCSIVolumeSourceReadOnly
      , Text
"secretRef" Text -> Maybe V1LocalObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LocalObjectReference
v1ISCSIVolumeSourceSecretRef
      , Text
"targetPortal" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ISCSIVolumeSourceTargetPortal
      ]


-- | Construct a value of type 'V1ISCSIVolumeSource' (by applying it's required fields, if any)
mkV1ISCSIVolumeSource
  :: Text -- ^ 'v1ISCSIVolumeSourceIqn': Target iSCSI Qualified Name.
  -> Int -- ^ 'v1ISCSIVolumeSourceLun': iSCSI Target Lun number.
  -> Text -- ^ 'v1ISCSIVolumeSourceTargetPortal': iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
  -> V1ISCSIVolumeSource
mkV1ISCSIVolumeSource :: Text -> Int -> Text -> V1ISCSIVolumeSource
mkV1ISCSIVolumeSource Text
v1ISCSIVolumeSourceIqn Int
v1ISCSIVolumeSourceLun Text
v1ISCSIVolumeSourceTargetPortal =
  V1ISCSIVolumeSource :: Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe Text
-> Int
-> Maybe [Text]
-> Maybe Bool
-> Maybe V1LocalObjectReference
-> Text
-> V1ISCSIVolumeSource
V1ISCSIVolumeSource
  { v1ISCSIVolumeSourceChapAuthDiscovery :: Maybe Bool
v1ISCSIVolumeSourceChapAuthDiscovery = Maybe Bool
forall a. Maybe a
Nothing
  , v1ISCSIVolumeSourceChapAuthSession :: Maybe Bool
v1ISCSIVolumeSourceChapAuthSession = Maybe Bool
forall a. Maybe a
Nothing
  , v1ISCSIVolumeSourceFsType :: Maybe Text
v1ISCSIVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , v1ISCSIVolumeSourceInitiatorName :: Maybe Text
v1ISCSIVolumeSourceInitiatorName = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1ISCSIVolumeSourceIqn :: Text
v1ISCSIVolumeSourceIqn :: Text
v1ISCSIVolumeSourceIqn
  , v1ISCSIVolumeSourceIscsiInterface :: Maybe Text
v1ISCSIVolumeSourceIscsiInterface = Maybe Text
forall a. Maybe a
Nothing
  , Int
v1ISCSIVolumeSourceLun :: Int
v1ISCSIVolumeSourceLun :: Int
v1ISCSIVolumeSourceLun
  , v1ISCSIVolumeSourcePortals :: Maybe [Text]
v1ISCSIVolumeSourcePortals = Maybe [Text]
forall a. Maybe a
Nothing
  , v1ISCSIVolumeSourceReadOnly :: Maybe Bool
v1ISCSIVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , v1ISCSIVolumeSourceSecretRef :: Maybe V1LocalObjectReference
v1ISCSIVolumeSourceSecretRef = Maybe V1LocalObjectReference
forall a. Maybe a
Nothing
  , Text
v1ISCSIVolumeSourceTargetPortal :: Text
v1ISCSIVolumeSourceTargetPortal :: Text
v1ISCSIVolumeSourceTargetPortal
  }

-- ** V1JSONSchemaProps
-- | V1JSONSchemaProps
-- JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).
data V1JSONSchemaProps = V1JSONSchemaProps
  { V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsRef :: !(Maybe Text) -- ^ "$ref"
  , V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsSchema :: !(Maybe Text) -- ^ "$schema"
  , V1JSONSchemaProps -> Maybe Value
v1JSONSchemaPropsAdditionalItems :: !(Maybe A.Value) -- ^ "additionalItems" - JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.
  , V1JSONSchemaProps -> Maybe Value
v1JSONSchemaPropsAdditionalProperties :: !(Maybe A.Value) -- ^ "additionalProperties" - JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.
  , V1JSONSchemaProps -> Maybe [V1JSONSchemaProps]
v1JSONSchemaPropsAllOf :: !(Maybe [V1JSONSchemaProps]) -- ^ "allOf"
  , V1JSONSchemaProps -> Maybe [V1JSONSchemaProps]
v1JSONSchemaPropsAnyOf :: !(Maybe [V1JSONSchemaProps]) -- ^ "anyOf"
  , V1JSONSchemaProps -> Maybe Value
v1JSONSchemaPropsDefault :: !(Maybe A.Value) -- ^ "default" - default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. Defaulting requires spec.preserveUnknownFields to be false.
  , V1JSONSchemaProps -> Maybe (Map String V1JSONSchemaProps)
v1JSONSchemaPropsDefinitions :: !(Maybe (Map.Map String V1JSONSchemaProps)) -- ^ "definitions"
  , V1JSONSchemaProps -> Maybe (Map String Value)
v1JSONSchemaPropsDependencies :: !(Maybe (Map.Map String A.Value)) -- ^ "dependencies"
  , V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsDescription :: !(Maybe Text) -- ^ "description"
  , V1JSONSchemaProps -> Maybe [Value]
v1JSONSchemaPropsEnum :: !(Maybe [A.Value]) -- ^ "enum"
  , V1JSONSchemaProps -> Maybe Value
v1JSONSchemaPropsExample :: !(Maybe A.Value) -- ^ "example" - JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.
  , V1JSONSchemaProps -> Maybe Bool
v1JSONSchemaPropsExclusiveMaximum :: !(Maybe Bool) -- ^ "exclusiveMaximum"
  , V1JSONSchemaProps -> Maybe Bool
v1JSONSchemaPropsExclusiveMinimum :: !(Maybe Bool) -- ^ "exclusiveMinimum"
  , V1JSONSchemaProps -> Maybe V1ExternalDocumentation
v1JSONSchemaPropsExternalDocs :: !(Maybe V1ExternalDocumentation) -- ^ "externalDocs"
  , V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsFormat :: !(Maybe Text) -- ^ "format"
  , V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsId :: !(Maybe Text) -- ^ "id"
  , V1JSONSchemaProps -> Maybe Value
v1JSONSchemaPropsItems :: !(Maybe A.Value) -- ^ "items" - JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes.
  , V1JSONSchemaProps -> Maybe Integer
v1JSONSchemaPropsMaxItems :: !(Maybe Integer) -- ^ "maxItems"
  , V1JSONSchemaProps -> Maybe Integer
v1JSONSchemaPropsMaxLength :: !(Maybe Integer) -- ^ "maxLength"
  , V1JSONSchemaProps -> Maybe Integer
v1JSONSchemaPropsMaxProperties :: !(Maybe Integer) -- ^ "maxProperties"
  , V1JSONSchemaProps -> Maybe Double
v1JSONSchemaPropsMaximum :: !(Maybe Double) -- ^ "maximum"
  , V1JSONSchemaProps -> Maybe Integer
v1JSONSchemaPropsMinItems :: !(Maybe Integer) -- ^ "minItems"
  , V1JSONSchemaProps -> Maybe Integer
v1JSONSchemaPropsMinLength :: !(Maybe Integer) -- ^ "minLength"
  , V1JSONSchemaProps -> Maybe Integer
v1JSONSchemaPropsMinProperties :: !(Maybe Integer) -- ^ "minProperties"
  , V1JSONSchemaProps -> Maybe Double
v1JSONSchemaPropsMinimum :: !(Maybe Double) -- ^ "minimum"
  , V1JSONSchemaProps -> Maybe Double
v1JSONSchemaPropsMultipleOf :: !(Maybe Double) -- ^ "multipleOf"
  , V1JSONSchemaProps -> Maybe V1JSONSchemaProps
v1JSONSchemaPropsNot :: !(Maybe V1JSONSchemaProps) -- ^ "not"
  , V1JSONSchemaProps -> Maybe Bool
v1JSONSchemaPropsNullable :: !(Maybe Bool) -- ^ "nullable"
  , V1JSONSchemaProps -> Maybe [V1JSONSchemaProps]
v1JSONSchemaPropsOneOf :: !(Maybe [V1JSONSchemaProps]) -- ^ "oneOf"
  , V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsPattern :: !(Maybe Text) -- ^ "pattern"
  , V1JSONSchemaProps -> Maybe (Map String V1JSONSchemaProps)
v1JSONSchemaPropsPatternProperties :: !(Maybe (Map.Map String V1JSONSchemaProps)) -- ^ "patternProperties"
  , V1JSONSchemaProps -> Maybe (Map String V1JSONSchemaProps)
v1JSONSchemaPropsProperties :: !(Maybe (Map.Map String V1JSONSchemaProps)) -- ^ "properties"
  , V1JSONSchemaProps -> Maybe [Text]
v1JSONSchemaPropsRequired :: !(Maybe [Text]) -- ^ "required"
  , V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsTitle :: !(Maybe Text) -- ^ "title"
  , V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsType :: !(Maybe Text) -- ^ "type"
  , V1JSONSchemaProps -> Maybe Bool
v1JSONSchemaPropsUniqueItems :: !(Maybe Bool) -- ^ "uniqueItems"
  , V1JSONSchemaProps -> Maybe Bool
v1JSONSchemaPropsXKubernetesEmbeddedResource :: !(Maybe Bool) -- ^ "x-kubernetes-embedded-resource" - x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).
  , V1JSONSchemaProps -> Maybe Bool
v1JSONSchemaPropsXKubernetesIntOrString :: !(Maybe Bool) -- ^ "x-kubernetes-int-or-string" - x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:  1) anyOf:    - type: integer    - type: string 2) allOf:    - anyOf:      - type: integer      - type: string    - ... zero or more
  , V1JSONSchemaProps -> Maybe [Text]
v1JSONSchemaPropsXKubernetesListMapKeys :: !(Maybe [Text]) -- ^ "x-kubernetes-list-map-keys" - x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type &#x60;map&#x60; by specifying the keys used as the index of the map.  This tag MUST only be used on lists that have the \&quot;x-kubernetes-list-type\&quot; extension set to \&quot;map\&quot;. Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).
  , V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsXKubernetesListType :: !(Maybe Text) -- ^ "x-kubernetes-list-type" - x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:  1) &#x60;atomic&#x60;: the list is treated as a single entity, like a scalar.      Atomic lists will be entirely replaced when updated. This extension      may be used on any type of list (struct, scalar, ...). 2) &#x60;set&#x60;:      Sets are lists that must not have multiple items with the same value. Each      value must be a scalar, an object with x-kubernetes-map-type &#x60;atomic&#x60; or an      array with x-kubernetes-list-type &#x60;atomic&#x60;. 3) &#x60;map&#x60;:      These lists are like maps in that their elements have a non-index key      used to identify them. Order is preserved upon merge. The map tag      must only be used on a list with elements of type object. Defaults to atomic for arrays.
  , V1JSONSchemaProps -> Maybe Bool
v1JSONSchemaPropsXKubernetesPreserveUnknownFields :: !(Maybe Bool) -- ^ "x-kubernetes-preserve-unknown-fields" - x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.
  } deriving (Int -> V1JSONSchemaProps -> ShowS
[V1JSONSchemaProps] -> ShowS
V1JSONSchemaProps -> String
(Int -> V1JSONSchemaProps -> ShowS)
-> (V1JSONSchemaProps -> String)
-> ([V1JSONSchemaProps] -> ShowS)
-> Show V1JSONSchemaProps
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1JSONSchemaProps] -> ShowS
$cshowList :: [V1JSONSchemaProps] -> ShowS
show :: V1JSONSchemaProps -> String
$cshow :: V1JSONSchemaProps -> String
showsPrec :: Int -> V1JSONSchemaProps -> ShowS
$cshowsPrec :: Int -> V1JSONSchemaProps -> ShowS
P.Show, V1JSONSchemaProps -> V1JSONSchemaProps -> Bool
(V1JSONSchemaProps -> V1JSONSchemaProps -> Bool)
-> (V1JSONSchemaProps -> V1JSONSchemaProps -> Bool)
-> Eq V1JSONSchemaProps
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1JSONSchemaProps -> V1JSONSchemaProps -> Bool
$c/= :: V1JSONSchemaProps -> V1JSONSchemaProps -> Bool
== :: V1JSONSchemaProps -> V1JSONSchemaProps -> Bool
$c== :: V1JSONSchemaProps -> V1JSONSchemaProps -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1JSONSchemaProps
instance A.FromJSON V1JSONSchemaProps where
  parseJSON :: Value -> Parser V1JSONSchemaProps
parseJSON = String
-> (Object -> Parser V1JSONSchemaProps)
-> Value
-> Parser V1JSONSchemaProps
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1JSONSchemaProps" ((Object -> Parser V1JSONSchemaProps)
 -> Value -> Parser V1JSONSchemaProps)
-> (Object -> Parser V1JSONSchemaProps)
-> Value
-> Parser V1JSONSchemaProps
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe Value
-> Maybe Value
-> Maybe [V1JSONSchemaProps]
-> Maybe [V1JSONSchemaProps]
-> Maybe Value
-> Maybe (Map String V1JSONSchemaProps)
-> Maybe (Map String Value)
-> Maybe Text
-> Maybe [Value]
-> Maybe Value
-> Maybe Bool
-> Maybe Bool
-> Maybe V1ExternalDocumentation
-> Maybe Text
-> Maybe Text
-> Maybe Value
-> Maybe Integer
-> Maybe Integer
-> Maybe Integer
-> Maybe Double
-> Maybe Integer
-> Maybe Integer
-> Maybe Integer
-> Maybe Double
-> Maybe Double
-> Maybe V1JSONSchemaProps
-> Maybe Bool
-> Maybe [V1JSONSchemaProps]
-> Maybe Text
-> Maybe (Map String V1JSONSchemaProps)
-> Maybe (Map String V1JSONSchemaProps)
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe Bool
-> V1JSONSchemaProps
V1JSONSchemaProps
      (Maybe Text
 -> Maybe Text
 -> Maybe Value
 -> Maybe Value
 -> Maybe [V1JSONSchemaProps]
 -> Maybe [V1JSONSchemaProps]
 -> Maybe Value
 -> Maybe (Map String V1JSONSchemaProps)
 -> Maybe (Map String Value)
 -> Maybe Text
 -> Maybe [Value]
 -> Maybe Value
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe V1ExternalDocumentation
 -> Maybe Text
 -> Maybe Text
 -> Maybe Value
 -> Maybe Integer
 -> Maybe Integer
 -> Maybe Integer
 -> Maybe Double
 -> Maybe Integer
 -> Maybe Integer
 -> Maybe Integer
 -> Maybe Double
 -> Maybe Double
 -> Maybe V1JSONSchemaProps
 -> Maybe Bool
 -> Maybe [V1JSONSchemaProps]
 -> Maybe Text
 -> Maybe (Map String V1JSONSchemaProps)
 -> Maybe (Map String V1JSONSchemaProps)
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe Bool
 -> V1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Value
      -> Maybe Value
      -> Maybe [V1JSONSchemaProps]
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Value
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String Value)
      -> Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"$ref")
      Parser
  (Maybe Text
   -> Maybe Value
   -> Maybe Value
   -> Maybe [V1JSONSchemaProps]
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Value
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String Value)
   -> Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser
     (Maybe Value
      -> Maybe Value
      -> Maybe [V1JSONSchemaProps]
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Value
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String Value)
      -> Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"$schema")
      Parser
  (Maybe Value
   -> Maybe Value
   -> Maybe [V1JSONSchemaProps]
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Value
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String Value)
   -> Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Value)
-> Parser
     (Maybe Value
      -> Maybe [V1JSONSchemaProps]
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Value
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String Value)
      -> Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"additionalItems")
      Parser
  (Maybe Value
   -> Maybe [V1JSONSchemaProps]
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Value
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String Value)
   -> Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Value)
-> Parser
     (Maybe [V1JSONSchemaProps]
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Value
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String Value)
      -> Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"additionalProperties")
      Parser
  (Maybe [V1JSONSchemaProps]
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Value
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String Value)
   -> Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe [V1JSONSchemaProps])
-> Parser
     (Maybe [V1JSONSchemaProps]
      -> Maybe Value
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String Value)
      -> Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1JSONSchemaProps])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allOf")
      Parser
  (Maybe [V1JSONSchemaProps]
   -> Maybe Value
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String Value)
   -> Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe [V1JSONSchemaProps])
-> Parser
     (Maybe Value
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String Value)
      -> Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1JSONSchemaProps])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"anyOf")
      Parser
  (Maybe Value
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String Value)
   -> Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Value)
-> Parser
     (Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String Value)
      -> Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"default")
      Parser
  (Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String Value)
   -> Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe (Map String V1JSONSchemaProps))
-> Parser
     (Maybe (Map String Value)
      -> Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String V1JSONSchemaProps))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"definitions")
      Parser
  (Maybe (Map String Value)
   -> Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe (Map String Value))
-> Parser
     (Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Value))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"dependencies")
      Parser
  (Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"description")
      Parser
  (Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe [Value])
-> Parser
     (Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Value])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"enum")
      Parser
  (Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Value)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe V1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"example")
      Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe V1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe V1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"exclusiveMaximum")
      Parser
  (Maybe Bool
   -> Maybe V1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Bool)
-> Parser
     (Maybe V1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"exclusiveMinimum")
      Parser
  (Maybe V1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe V1ExternalDocumentation)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ExternalDocumentation)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"externalDocs")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"format")
      Parser
  (Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser
     (Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"id")
      Parser
  (Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Value)
-> Parser
     (Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"items")
      Parser
  (Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxItems")
      Parser
  (Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxLength")
      Parser
  (Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxProperties")
      Parser
  (Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Double)
-> Parser
     (Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maximum")
      Parser
  (Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minItems")
      Parser
  (Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minLength")
      Parser
  (Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Double
      -> Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minProperties")
      Parser
  (Maybe Double
   -> Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Double)
-> Parser
     (Maybe Double
      -> Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minimum")
      Parser
  (Maybe Double
   -> Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Double)
-> Parser
     (Maybe V1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"multipleOf")
      Parser
  (Maybe V1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe V1JSONSchemaProps)
-> Parser
     (Maybe Bool
      -> Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1JSONSchemaProps)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"not")
      Parser
  (Maybe Bool
   -> Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [V1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nullable")
      Parser
  (Maybe [V1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe [V1JSONSchemaProps])
-> Parser
     (Maybe Text
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1JSONSchemaProps])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"oneOf")
      Parser
  (Maybe Text
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser
     (Maybe (Map String V1JSONSchemaProps)
      -> Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"pattern")
      Parser
  (Maybe (Map String V1JSONSchemaProps)
   -> Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe (Map String V1JSONSchemaProps))
-> Parser
     (Maybe (Map String V1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String V1JSONSchemaProps))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"patternProperties")
      Parser
  (Maybe (Map String V1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe (Map String V1JSONSchemaProps))
-> Parser
     (Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String V1JSONSchemaProps))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"properties")
      Parser
  (Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"required")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"title")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")
      Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"uniqueItems")
      Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1JSONSchemaProps)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe [Text] -> Maybe Text -> Maybe Bool -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"x-kubernetes-embedded-resource")
      Parser
  (Maybe Bool
   -> Maybe [Text] -> Maybe Text -> Maybe Bool -> V1JSONSchemaProps)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [Text] -> Maybe Text -> Maybe Bool -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"x-kubernetes-int-or-string")
      Parser
  (Maybe [Text] -> Maybe Text -> Maybe Bool -> V1JSONSchemaProps)
-> Parser (Maybe [Text])
-> Parser (Maybe Text -> Maybe Bool -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"x-kubernetes-list-map-keys")
      Parser (Maybe Text -> Maybe Bool -> V1JSONSchemaProps)
-> Parser (Maybe Text) -> Parser (Maybe Bool -> V1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"x-kubernetes-list-type")
      Parser (Maybe Bool -> V1JSONSchemaProps)
-> Parser (Maybe Bool) -> Parser V1JSONSchemaProps
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"x-kubernetes-preserve-unknown-fields")

-- | ToJSON V1JSONSchemaProps
instance A.ToJSON V1JSONSchemaProps where
  toJSON :: V1JSONSchemaProps -> Value
toJSON V1JSONSchemaProps {Maybe Bool
Maybe Double
Maybe Integer
Maybe [Text]
Maybe [Value]
Maybe [V1JSONSchemaProps]
Maybe Text
Maybe (Map String Value)
Maybe (Map String V1JSONSchemaProps)
Maybe Value
Maybe V1JSONSchemaProps
Maybe V1ExternalDocumentation
v1JSONSchemaPropsXKubernetesPreserveUnknownFields :: Maybe Bool
v1JSONSchemaPropsXKubernetesListType :: Maybe Text
v1JSONSchemaPropsXKubernetesListMapKeys :: Maybe [Text]
v1JSONSchemaPropsXKubernetesIntOrString :: Maybe Bool
v1JSONSchemaPropsXKubernetesEmbeddedResource :: Maybe Bool
v1JSONSchemaPropsUniqueItems :: Maybe Bool
v1JSONSchemaPropsType :: Maybe Text
v1JSONSchemaPropsTitle :: Maybe Text
v1JSONSchemaPropsRequired :: Maybe [Text]
v1JSONSchemaPropsProperties :: Maybe (Map String V1JSONSchemaProps)
v1JSONSchemaPropsPatternProperties :: Maybe (Map String V1JSONSchemaProps)
v1JSONSchemaPropsPattern :: Maybe Text
v1JSONSchemaPropsOneOf :: Maybe [V1JSONSchemaProps]
v1JSONSchemaPropsNullable :: Maybe Bool
v1JSONSchemaPropsNot :: Maybe V1JSONSchemaProps
v1JSONSchemaPropsMultipleOf :: Maybe Double
v1JSONSchemaPropsMinimum :: Maybe Double
v1JSONSchemaPropsMinProperties :: Maybe Integer
v1JSONSchemaPropsMinLength :: Maybe Integer
v1JSONSchemaPropsMinItems :: Maybe Integer
v1JSONSchemaPropsMaximum :: Maybe Double
v1JSONSchemaPropsMaxProperties :: Maybe Integer
v1JSONSchemaPropsMaxLength :: Maybe Integer
v1JSONSchemaPropsMaxItems :: Maybe Integer
v1JSONSchemaPropsItems :: Maybe Value
v1JSONSchemaPropsId :: Maybe Text
v1JSONSchemaPropsFormat :: Maybe Text
v1JSONSchemaPropsExternalDocs :: Maybe V1ExternalDocumentation
v1JSONSchemaPropsExclusiveMinimum :: Maybe Bool
v1JSONSchemaPropsExclusiveMaximum :: Maybe Bool
v1JSONSchemaPropsExample :: Maybe Value
v1JSONSchemaPropsEnum :: Maybe [Value]
v1JSONSchemaPropsDescription :: Maybe Text
v1JSONSchemaPropsDependencies :: Maybe (Map String Value)
v1JSONSchemaPropsDefinitions :: Maybe (Map String V1JSONSchemaProps)
v1JSONSchemaPropsDefault :: Maybe Value
v1JSONSchemaPropsAnyOf :: Maybe [V1JSONSchemaProps]
v1JSONSchemaPropsAllOf :: Maybe [V1JSONSchemaProps]
v1JSONSchemaPropsAdditionalProperties :: Maybe Value
v1JSONSchemaPropsAdditionalItems :: Maybe Value
v1JSONSchemaPropsSchema :: Maybe Text
v1JSONSchemaPropsRef :: Maybe Text
v1JSONSchemaPropsXKubernetesPreserveUnknownFields :: V1JSONSchemaProps -> Maybe Bool
v1JSONSchemaPropsXKubernetesListType :: V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsXKubernetesListMapKeys :: V1JSONSchemaProps -> Maybe [Text]
v1JSONSchemaPropsXKubernetesIntOrString :: V1JSONSchemaProps -> Maybe Bool
v1JSONSchemaPropsXKubernetesEmbeddedResource :: V1JSONSchemaProps -> Maybe Bool
v1JSONSchemaPropsUniqueItems :: V1JSONSchemaProps -> Maybe Bool
v1JSONSchemaPropsType :: V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsTitle :: V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsRequired :: V1JSONSchemaProps -> Maybe [Text]
v1JSONSchemaPropsProperties :: V1JSONSchemaProps -> Maybe (Map String V1JSONSchemaProps)
v1JSONSchemaPropsPatternProperties :: V1JSONSchemaProps -> Maybe (Map String V1JSONSchemaProps)
v1JSONSchemaPropsPattern :: V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsOneOf :: V1JSONSchemaProps -> Maybe [V1JSONSchemaProps]
v1JSONSchemaPropsNullable :: V1JSONSchemaProps -> Maybe Bool
v1JSONSchemaPropsNot :: V1JSONSchemaProps -> Maybe V1JSONSchemaProps
v1JSONSchemaPropsMultipleOf :: V1JSONSchemaProps -> Maybe Double
v1JSONSchemaPropsMinimum :: V1JSONSchemaProps -> Maybe Double
v1JSONSchemaPropsMinProperties :: V1JSONSchemaProps -> Maybe Integer
v1JSONSchemaPropsMinLength :: V1JSONSchemaProps -> Maybe Integer
v1JSONSchemaPropsMinItems :: V1JSONSchemaProps -> Maybe Integer
v1JSONSchemaPropsMaximum :: V1JSONSchemaProps -> Maybe Double
v1JSONSchemaPropsMaxProperties :: V1JSONSchemaProps -> Maybe Integer
v1JSONSchemaPropsMaxLength :: V1JSONSchemaProps -> Maybe Integer
v1JSONSchemaPropsMaxItems :: V1JSONSchemaProps -> Maybe Integer
v1JSONSchemaPropsItems :: V1JSONSchemaProps -> Maybe Value
v1JSONSchemaPropsId :: V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsFormat :: V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsExternalDocs :: V1JSONSchemaProps -> Maybe V1ExternalDocumentation
v1JSONSchemaPropsExclusiveMinimum :: V1JSONSchemaProps -> Maybe Bool
v1JSONSchemaPropsExclusiveMaximum :: V1JSONSchemaProps -> Maybe Bool
v1JSONSchemaPropsExample :: V1JSONSchemaProps -> Maybe Value
v1JSONSchemaPropsEnum :: V1JSONSchemaProps -> Maybe [Value]
v1JSONSchemaPropsDescription :: V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsDependencies :: V1JSONSchemaProps -> Maybe (Map String Value)
v1JSONSchemaPropsDefinitions :: V1JSONSchemaProps -> Maybe (Map String V1JSONSchemaProps)
v1JSONSchemaPropsDefault :: V1JSONSchemaProps -> Maybe Value
v1JSONSchemaPropsAnyOf :: V1JSONSchemaProps -> Maybe [V1JSONSchemaProps]
v1JSONSchemaPropsAllOf :: V1JSONSchemaProps -> Maybe [V1JSONSchemaProps]
v1JSONSchemaPropsAdditionalProperties :: V1JSONSchemaProps -> Maybe Value
v1JSONSchemaPropsAdditionalItems :: V1JSONSchemaProps -> Maybe Value
v1JSONSchemaPropsSchema :: V1JSONSchemaProps -> Maybe Text
v1JSONSchemaPropsRef :: V1JSONSchemaProps -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"$ref" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1JSONSchemaPropsRef
      , Text
"$schema" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1JSONSchemaPropsSchema
      , Text
"additionalItems" Text -> Maybe Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Value
v1JSONSchemaPropsAdditionalItems
      , Text
"additionalProperties" Text -> Maybe Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Value
v1JSONSchemaPropsAdditionalProperties
      , Text
"allOf" Text -> Maybe [V1JSONSchemaProps] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1JSONSchemaProps]
v1JSONSchemaPropsAllOf
      , Text
"anyOf" Text -> Maybe [V1JSONSchemaProps] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1JSONSchemaProps]
v1JSONSchemaPropsAnyOf
      , Text
"default" Text -> Maybe Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Value
v1JSONSchemaPropsDefault
      , Text
"definitions" Text -> Maybe (Map String V1JSONSchemaProps) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String V1JSONSchemaProps)
v1JSONSchemaPropsDefinitions
      , Text
"dependencies" Text -> Maybe (Map String Value) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Value)
v1JSONSchemaPropsDependencies
      , Text
"description" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1JSONSchemaPropsDescription
      , Text
"enum" Text -> Maybe [Value] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Value]
v1JSONSchemaPropsEnum
      , Text
"example" Text -> Maybe Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Value
v1JSONSchemaPropsExample
      , Text
"exclusiveMaximum" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1JSONSchemaPropsExclusiveMaximum
      , Text
"exclusiveMinimum" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1JSONSchemaPropsExclusiveMinimum
      , Text
"externalDocs" Text -> Maybe V1ExternalDocumentation -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ExternalDocumentation
v1JSONSchemaPropsExternalDocs
      , Text
"format" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1JSONSchemaPropsFormat
      , Text
"id" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1JSONSchemaPropsId
      , Text
"items" Text -> Maybe Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Value
v1JSONSchemaPropsItems
      , Text
"maxItems" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1JSONSchemaPropsMaxItems
      , Text
"maxLength" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1JSONSchemaPropsMaxLength
      , Text
"maxProperties" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1JSONSchemaPropsMaxProperties
      , Text
"maximum" Text -> Maybe Double -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Double
v1JSONSchemaPropsMaximum
      , Text
"minItems" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1JSONSchemaPropsMinItems
      , Text
"minLength" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1JSONSchemaPropsMinLength
      , Text
"minProperties" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1JSONSchemaPropsMinProperties
      , Text
"minimum" Text -> Maybe Double -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Double
v1JSONSchemaPropsMinimum
      , Text
"multipleOf" Text -> Maybe Double -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Double
v1JSONSchemaPropsMultipleOf
      , Text
"not" Text -> Maybe V1JSONSchemaProps -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1JSONSchemaProps
v1JSONSchemaPropsNot
      , Text
"nullable" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1JSONSchemaPropsNullable
      , Text
"oneOf" Text -> Maybe [V1JSONSchemaProps] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1JSONSchemaProps]
v1JSONSchemaPropsOneOf
      , Text
"pattern" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1JSONSchemaPropsPattern
      , Text
"patternProperties" Text -> Maybe (Map String V1JSONSchemaProps) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String V1JSONSchemaProps)
v1JSONSchemaPropsPatternProperties
      , Text
"properties" Text -> Maybe (Map String V1JSONSchemaProps) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String V1JSONSchemaProps)
v1JSONSchemaPropsProperties
      , Text
"required" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1JSONSchemaPropsRequired
      , Text
"title" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1JSONSchemaPropsTitle
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1JSONSchemaPropsType
      , Text
"uniqueItems" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1JSONSchemaPropsUniqueItems
      , Text
"x-kubernetes-embedded-resource" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1JSONSchemaPropsXKubernetesEmbeddedResource
      , Text
"x-kubernetes-int-or-string" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1JSONSchemaPropsXKubernetesIntOrString
      , Text
"x-kubernetes-list-map-keys" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1JSONSchemaPropsXKubernetesListMapKeys
      , Text
"x-kubernetes-list-type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1JSONSchemaPropsXKubernetesListType
      , Text
"x-kubernetes-preserve-unknown-fields" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1JSONSchemaPropsXKubernetesPreserveUnknownFields
      ]


-- | Construct a value of type 'V1JSONSchemaProps' (by applying it's required fields, if any)
mkV1JSONSchemaProps
  :: V1JSONSchemaProps
mkV1JSONSchemaProps :: V1JSONSchemaProps
mkV1JSONSchemaProps =
  V1JSONSchemaProps :: Maybe Text
-> Maybe Text
-> Maybe Value
-> Maybe Value
-> Maybe [V1JSONSchemaProps]
-> Maybe [V1JSONSchemaProps]
-> Maybe Value
-> Maybe (Map String V1JSONSchemaProps)
-> Maybe (Map String Value)
-> Maybe Text
-> Maybe [Value]
-> Maybe Value
-> Maybe Bool
-> Maybe Bool
-> Maybe V1ExternalDocumentation
-> Maybe Text
-> Maybe Text
-> Maybe Value
-> Maybe Integer
-> Maybe Integer
-> Maybe Integer
-> Maybe Double
-> Maybe Integer
-> Maybe Integer
-> Maybe Integer
-> Maybe Double
-> Maybe Double
-> Maybe V1JSONSchemaProps
-> Maybe Bool
-> Maybe [V1JSONSchemaProps]
-> Maybe Text
-> Maybe (Map String V1JSONSchemaProps)
-> Maybe (Map String V1JSONSchemaProps)
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe Bool
-> V1JSONSchemaProps
V1JSONSchemaProps
  { v1JSONSchemaPropsRef :: Maybe Text
v1JSONSchemaPropsRef = Maybe Text
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsSchema :: Maybe Text
v1JSONSchemaPropsSchema = Maybe Text
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsAdditionalItems :: Maybe Value
v1JSONSchemaPropsAdditionalItems = Maybe Value
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsAdditionalProperties :: Maybe Value
v1JSONSchemaPropsAdditionalProperties = Maybe Value
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsAllOf :: Maybe [V1JSONSchemaProps]
v1JSONSchemaPropsAllOf = Maybe [V1JSONSchemaProps]
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsAnyOf :: Maybe [V1JSONSchemaProps]
v1JSONSchemaPropsAnyOf = Maybe [V1JSONSchemaProps]
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsDefault :: Maybe Value
v1JSONSchemaPropsDefault = Maybe Value
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsDefinitions :: Maybe (Map String V1JSONSchemaProps)
v1JSONSchemaPropsDefinitions = Maybe (Map String V1JSONSchemaProps)
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsDependencies :: Maybe (Map String Value)
v1JSONSchemaPropsDependencies = Maybe (Map String Value)
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsDescription :: Maybe Text
v1JSONSchemaPropsDescription = Maybe Text
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsEnum :: Maybe [Value]
v1JSONSchemaPropsEnum = Maybe [Value]
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsExample :: Maybe Value
v1JSONSchemaPropsExample = Maybe Value
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsExclusiveMaximum :: Maybe Bool
v1JSONSchemaPropsExclusiveMaximum = Maybe Bool
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsExclusiveMinimum :: Maybe Bool
v1JSONSchemaPropsExclusiveMinimum = Maybe Bool
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsExternalDocs :: Maybe V1ExternalDocumentation
v1JSONSchemaPropsExternalDocs = Maybe V1ExternalDocumentation
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsFormat :: Maybe Text
v1JSONSchemaPropsFormat = Maybe Text
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsId :: Maybe Text
v1JSONSchemaPropsId = Maybe Text
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsItems :: Maybe Value
v1JSONSchemaPropsItems = Maybe Value
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsMaxItems :: Maybe Integer
v1JSONSchemaPropsMaxItems = Maybe Integer
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsMaxLength :: Maybe Integer
v1JSONSchemaPropsMaxLength = Maybe Integer
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsMaxProperties :: Maybe Integer
v1JSONSchemaPropsMaxProperties = Maybe Integer
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsMaximum :: Maybe Double
v1JSONSchemaPropsMaximum = Maybe Double
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsMinItems :: Maybe Integer
v1JSONSchemaPropsMinItems = Maybe Integer
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsMinLength :: Maybe Integer
v1JSONSchemaPropsMinLength = Maybe Integer
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsMinProperties :: Maybe Integer
v1JSONSchemaPropsMinProperties = Maybe Integer
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsMinimum :: Maybe Double
v1JSONSchemaPropsMinimum = Maybe Double
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsMultipleOf :: Maybe Double
v1JSONSchemaPropsMultipleOf = Maybe Double
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsNot :: Maybe V1JSONSchemaProps
v1JSONSchemaPropsNot = Maybe V1JSONSchemaProps
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsNullable :: Maybe Bool
v1JSONSchemaPropsNullable = Maybe Bool
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsOneOf :: Maybe [V1JSONSchemaProps]
v1JSONSchemaPropsOneOf = Maybe [V1JSONSchemaProps]
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsPattern :: Maybe Text
v1JSONSchemaPropsPattern = Maybe Text
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsPatternProperties :: Maybe (Map String V1JSONSchemaProps)
v1JSONSchemaPropsPatternProperties = Maybe (Map String V1JSONSchemaProps)
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsProperties :: Maybe (Map String V1JSONSchemaProps)
v1JSONSchemaPropsProperties = Maybe (Map String V1JSONSchemaProps)
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsRequired :: Maybe [Text]
v1JSONSchemaPropsRequired = Maybe [Text]
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsTitle :: Maybe Text
v1JSONSchemaPropsTitle = Maybe Text
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsType :: Maybe Text
v1JSONSchemaPropsType = Maybe Text
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsUniqueItems :: Maybe Bool
v1JSONSchemaPropsUniqueItems = Maybe Bool
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsXKubernetesEmbeddedResource :: Maybe Bool
v1JSONSchemaPropsXKubernetesEmbeddedResource = Maybe Bool
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsXKubernetesIntOrString :: Maybe Bool
v1JSONSchemaPropsXKubernetesIntOrString = Maybe Bool
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsXKubernetesListMapKeys :: Maybe [Text]
v1JSONSchemaPropsXKubernetesListMapKeys = Maybe [Text]
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsXKubernetesListType :: Maybe Text
v1JSONSchemaPropsXKubernetesListType = Maybe Text
forall a. Maybe a
Nothing
  , v1JSONSchemaPropsXKubernetesPreserveUnknownFields :: Maybe Bool
v1JSONSchemaPropsXKubernetesPreserveUnknownFields = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1Job
-- | V1Job
-- Job represents the configuration of a single job.
data V1Job = V1Job
  { V1Job -> Maybe Text
v1JobApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1Job -> Maybe Text
v1JobKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1Job -> Maybe V1ObjectMeta
v1JobMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1Job -> Maybe V1JobSpec
v1JobSpec :: !(Maybe V1JobSpec) -- ^ "spec"
  , V1Job -> Maybe V1JobStatus
v1JobStatus :: !(Maybe V1JobStatus) -- ^ "status"
  } deriving (Int -> V1Job -> ShowS
[V1Job] -> ShowS
V1Job -> String
(Int -> V1Job -> ShowS)
-> (V1Job -> String) -> ([V1Job] -> ShowS) -> Show V1Job
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Job] -> ShowS
$cshowList :: [V1Job] -> ShowS
show :: V1Job -> String
$cshow :: V1Job -> String
showsPrec :: Int -> V1Job -> ShowS
$cshowsPrec :: Int -> V1Job -> ShowS
P.Show, V1Job -> V1Job -> Bool
(V1Job -> V1Job -> Bool) -> (V1Job -> V1Job -> Bool) -> Eq V1Job
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Job -> V1Job -> Bool
$c/= :: V1Job -> V1Job -> Bool
== :: V1Job -> V1Job -> Bool
$c== :: V1Job -> V1Job -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Job
instance A.FromJSON V1Job where
  parseJSON :: Value -> Parser V1Job
parseJSON = String -> (Object -> Parser V1Job) -> Value -> Parser V1Job
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Job" ((Object -> Parser V1Job) -> Value -> Parser V1Job)
-> (Object -> Parser V1Job) -> Value -> Parser V1Job
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1JobSpec
-> Maybe V1JobStatus
-> V1Job
V1Job
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1JobSpec
 -> Maybe V1JobStatus
 -> V1Job)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1JobSpec
      -> Maybe V1JobStatus
      -> V1Job)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1JobSpec
   -> Maybe V1JobStatus
   -> V1Job)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1JobSpec -> Maybe V1JobStatus -> V1Job)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1JobSpec -> Maybe V1JobStatus -> V1Job)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe V1JobSpec -> Maybe V1JobStatus -> V1Job)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe V1JobSpec -> Maybe V1JobStatus -> V1Job)
-> Parser (Maybe V1JobSpec) -> Parser (Maybe V1JobStatus -> V1Job)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1JobSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1JobStatus -> V1Job)
-> Parser (Maybe V1JobStatus) -> Parser V1Job
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1JobStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1Job
instance A.ToJSON V1Job where
  toJSON :: V1Job -> Value
toJSON V1Job {Maybe Text
Maybe V1ObjectMeta
Maybe V1JobStatus
Maybe V1JobSpec
v1JobStatus :: Maybe V1JobStatus
v1JobSpec :: Maybe V1JobSpec
v1JobMetadata :: Maybe V1ObjectMeta
v1JobKind :: Maybe Text
v1JobApiVersion :: Maybe Text
v1JobStatus :: V1Job -> Maybe V1JobStatus
v1JobSpec :: V1Job -> Maybe V1JobSpec
v1JobMetadata :: V1Job -> Maybe V1ObjectMeta
v1JobKind :: V1Job -> Maybe Text
v1JobApiVersion :: V1Job -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1JobApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1JobKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1JobMetadata
      , Text
"spec" Text -> Maybe V1JobSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1JobSpec
v1JobSpec
      , Text
"status" Text -> Maybe V1JobStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1JobStatus
v1JobStatus
      ]


-- | Construct a value of type 'V1Job' (by applying it's required fields, if any)
mkV1Job
  :: V1Job
mkV1Job :: V1Job
mkV1Job =
  V1Job :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1JobSpec
-> Maybe V1JobStatus
-> V1Job
V1Job
  { v1JobApiVersion :: Maybe Text
v1JobApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1JobKind :: Maybe Text
v1JobKind = Maybe Text
forall a. Maybe a
Nothing
  , v1JobMetadata :: Maybe V1ObjectMeta
v1JobMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1JobSpec :: Maybe V1JobSpec
v1JobSpec = Maybe V1JobSpec
forall a. Maybe a
Nothing
  , v1JobStatus :: Maybe V1JobStatus
v1JobStatus = Maybe V1JobStatus
forall a. Maybe a
Nothing
  }

-- ** V1JobCondition
-- | V1JobCondition
-- JobCondition describes current state of a job.
data V1JobCondition = V1JobCondition
  { V1JobCondition -> Maybe DateTime
v1JobConditionLastProbeTime :: !(Maybe DateTime) -- ^ "lastProbeTime" - Last time the condition was checked.
  , V1JobCondition -> Maybe DateTime
v1JobConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transit from one status to another.
  , V1JobCondition -> Maybe Text
v1JobConditionMessage :: !(Maybe Text) -- ^ "message" - Human readable message indicating details about last transition.
  , V1JobCondition -> Maybe Text
v1JobConditionReason :: !(Maybe Text) -- ^ "reason" - (brief) reason for the condition&#39;s last transition.
  , V1JobCondition -> Text
v1JobConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , V1JobCondition -> Text
v1JobConditionType :: !(Text) -- ^ /Required/ "type" - Type of job condition, Complete or Failed.
  } deriving (Int -> V1JobCondition -> ShowS
[V1JobCondition] -> ShowS
V1JobCondition -> String
(Int -> V1JobCondition -> ShowS)
-> (V1JobCondition -> String)
-> ([V1JobCondition] -> ShowS)
-> Show V1JobCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1JobCondition] -> ShowS
$cshowList :: [V1JobCondition] -> ShowS
show :: V1JobCondition -> String
$cshow :: V1JobCondition -> String
showsPrec :: Int -> V1JobCondition -> ShowS
$cshowsPrec :: Int -> V1JobCondition -> ShowS
P.Show, V1JobCondition -> V1JobCondition -> Bool
(V1JobCondition -> V1JobCondition -> Bool)
-> (V1JobCondition -> V1JobCondition -> Bool) -> Eq V1JobCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1JobCondition -> V1JobCondition -> Bool
$c/= :: V1JobCondition -> V1JobCondition -> Bool
== :: V1JobCondition -> V1JobCondition -> Bool
$c== :: V1JobCondition -> V1JobCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1JobCondition
instance A.FromJSON V1JobCondition where
  parseJSON :: Value -> Parser V1JobCondition
parseJSON = String
-> (Object -> Parser V1JobCondition)
-> Value
-> Parser V1JobCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1JobCondition" ((Object -> Parser V1JobCondition)
 -> Value -> Parser V1JobCondition)
-> (Object -> Parser V1JobCondition)
-> Value
-> Parser V1JobCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1JobCondition
V1JobCondition
      (Maybe DateTime
 -> Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1JobCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe DateTime
      -> Maybe Text -> Maybe Text -> Text -> Text -> V1JobCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastProbeTime")
      Parser
  (Maybe DateTime
   -> Maybe Text -> Maybe Text -> Text -> Text -> V1JobCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text -> Maybe Text -> Text -> Text -> V1JobCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser (Maybe Text -> Maybe Text -> Text -> Text -> V1JobCondition)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Text -> Text -> V1JobCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1JobCondition)
-> Parser (Maybe Text) -> Parser (Text -> Text -> V1JobCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1JobCondition)
-> Parser Text -> Parser (Text -> V1JobCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1JobCondition)
-> Parser Text -> Parser V1JobCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1JobCondition
instance A.ToJSON V1JobCondition where
  toJSON :: V1JobCondition -> Value
toJSON V1JobCondition {Maybe Text
Maybe DateTime
Text
v1JobConditionType :: Text
v1JobConditionStatus :: Text
v1JobConditionReason :: Maybe Text
v1JobConditionMessage :: Maybe Text
v1JobConditionLastTransitionTime :: Maybe DateTime
v1JobConditionLastProbeTime :: Maybe DateTime
v1JobConditionType :: V1JobCondition -> Text
v1JobConditionStatus :: V1JobCondition -> Text
v1JobConditionReason :: V1JobCondition -> Maybe Text
v1JobConditionMessage :: V1JobCondition -> Maybe Text
v1JobConditionLastTransitionTime :: V1JobCondition -> Maybe DateTime
v1JobConditionLastProbeTime :: V1JobCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastProbeTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1JobConditionLastProbeTime
      , Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1JobConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1JobConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1JobConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1JobConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1JobConditionType
      ]


-- | Construct a value of type 'V1JobCondition' (by applying it's required fields, if any)
mkV1JobCondition
  :: Text -- ^ 'v1JobConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'v1JobConditionType': Type of job condition, Complete or Failed.
  -> V1JobCondition
mkV1JobCondition :: Text -> Text -> V1JobCondition
mkV1JobCondition Text
v1JobConditionStatus Text
v1JobConditionType =
  V1JobCondition :: Maybe DateTime
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1JobCondition
V1JobCondition
  { v1JobConditionLastProbeTime :: Maybe DateTime
v1JobConditionLastProbeTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1JobConditionLastTransitionTime :: Maybe DateTime
v1JobConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1JobConditionMessage :: Maybe Text
v1JobConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1JobConditionReason :: Maybe Text
v1JobConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1JobConditionStatus :: Text
v1JobConditionStatus :: Text
v1JobConditionStatus
  , Text
v1JobConditionType :: Text
v1JobConditionType :: Text
v1JobConditionType
  }

-- ** V1JobList
-- | V1JobList
-- JobList is a collection of jobs.
data V1JobList = V1JobList
  { V1JobList -> Maybe Text
v1JobListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1JobList -> [V1Job]
v1JobListItems :: !([V1Job]) -- ^ /Required/ "items" - items is the list of Jobs.
  , V1JobList -> Maybe Text
v1JobListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1JobList -> Maybe V1ListMeta
v1JobListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1JobList -> ShowS
[V1JobList] -> ShowS
V1JobList -> String
(Int -> V1JobList -> ShowS)
-> (V1JobList -> String)
-> ([V1JobList] -> ShowS)
-> Show V1JobList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1JobList] -> ShowS
$cshowList :: [V1JobList] -> ShowS
show :: V1JobList -> String
$cshow :: V1JobList -> String
showsPrec :: Int -> V1JobList -> ShowS
$cshowsPrec :: Int -> V1JobList -> ShowS
P.Show, V1JobList -> V1JobList -> Bool
(V1JobList -> V1JobList -> Bool)
-> (V1JobList -> V1JobList -> Bool) -> Eq V1JobList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1JobList -> V1JobList -> Bool
$c/= :: V1JobList -> V1JobList -> Bool
== :: V1JobList -> V1JobList -> Bool
$c== :: V1JobList -> V1JobList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1JobList
instance A.FromJSON V1JobList where
  parseJSON :: Value -> Parser V1JobList
parseJSON = String -> (Object -> Parser V1JobList) -> Value -> Parser V1JobList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1JobList" ((Object -> Parser V1JobList) -> Value -> Parser V1JobList)
-> (Object -> Parser V1JobList) -> Value -> Parser V1JobList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1Job] -> Maybe Text -> Maybe V1ListMeta -> V1JobList
V1JobList
      (Maybe Text
 -> [V1Job] -> Maybe Text -> Maybe V1ListMeta -> V1JobList)
-> Parser (Maybe Text)
-> Parser ([V1Job] -> Maybe Text -> Maybe V1ListMeta -> V1JobList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser ([V1Job] -> Maybe Text -> Maybe V1ListMeta -> V1JobList)
-> Parser [V1Job]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1JobList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1Job]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1JobList)
-> Parser (Maybe Text) -> Parser (Maybe V1ListMeta -> V1JobList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1JobList)
-> Parser (Maybe V1ListMeta) -> Parser V1JobList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1JobList
instance A.ToJSON V1JobList where
  toJSON :: V1JobList -> Value
toJSON V1JobList {[V1Job]
Maybe Text
Maybe V1ListMeta
v1JobListMetadata :: Maybe V1ListMeta
v1JobListKind :: Maybe Text
v1JobListItems :: [V1Job]
v1JobListApiVersion :: Maybe Text
v1JobListMetadata :: V1JobList -> Maybe V1ListMeta
v1JobListKind :: V1JobList -> Maybe Text
v1JobListItems :: V1JobList -> [V1Job]
v1JobListApiVersion :: V1JobList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1JobListApiVersion
      , Text
"items" Text -> [V1Job] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1Job]
v1JobListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1JobListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1JobListMetadata
      ]


-- | Construct a value of type 'V1JobList' (by applying it's required fields, if any)
mkV1JobList
  :: [V1Job] -- ^ 'v1JobListItems': items is the list of Jobs.
  -> V1JobList
mkV1JobList :: [V1Job] -> V1JobList
mkV1JobList [V1Job]
v1JobListItems =
  V1JobList :: Maybe Text
-> [V1Job] -> Maybe Text -> Maybe V1ListMeta -> V1JobList
V1JobList
  { v1JobListApiVersion :: Maybe Text
v1JobListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1Job]
v1JobListItems :: [V1Job]
v1JobListItems :: [V1Job]
v1JobListItems
  , v1JobListKind :: Maybe Text
v1JobListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1JobListMetadata :: Maybe V1ListMeta
v1JobListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1JobSpec
-- | V1JobSpec
-- JobSpec describes how the job execution will look like.
data V1JobSpec = V1JobSpec
  { V1JobSpec -> Maybe Integer
v1JobSpecActiveDeadlineSeconds :: !(Maybe Integer) -- ^ "activeDeadlineSeconds" - Specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer
  , V1JobSpec -> Maybe Int
v1JobSpecBackoffLimit :: !(Maybe Int) -- ^ "backoffLimit" - Specifies the number of retries before marking this job failed. Defaults to 6
  , V1JobSpec -> Maybe Int
v1JobSpecCompletions :: !(Maybe Int) -- ^ "completions" - Specifies the desired number of successfully finished pods the job should be run with.  Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value.  Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
  , V1JobSpec -> Maybe Bool
v1JobSpecManualSelector :: !(Maybe Bool) -- ^ "manualSelector" - manualSelector controls generation of pod labels and pod selectors. Leave &#x60;manualSelector&#x60; unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template.  When true, the user is responsible for picking unique labels and specifying the selector.  Failure to pick a unique label may cause this and other jobs to not function correctly.  However, You may see &#x60;manualSelector&#x3D;true&#x60; in jobs that were created with the old &#x60;extensions/v1beta1&#x60; API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector
  , V1JobSpec -> Maybe Int
v1JobSpecParallelism :: !(Maybe Int) -- ^ "parallelism" - Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) &lt; .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
  , V1JobSpec -> Maybe V1LabelSelector
v1JobSpecSelector :: !(Maybe V1LabelSelector) -- ^ "selector"
  , V1JobSpec -> V1PodTemplateSpec
v1JobSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"
  , V1JobSpec -> Maybe Int
v1JobSpecTtlSecondsAfterFinished :: !(Maybe Int) -- ^ "ttlSecondsAfterFinished" - ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won&#39;t be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes. This field is alpha-level and is only honored by servers that enable the TTLAfterFinished feature.
  } deriving (Int -> V1JobSpec -> ShowS
[V1JobSpec] -> ShowS
V1JobSpec -> String
(Int -> V1JobSpec -> ShowS)
-> (V1JobSpec -> String)
-> ([V1JobSpec] -> ShowS)
-> Show V1JobSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1JobSpec] -> ShowS
$cshowList :: [V1JobSpec] -> ShowS
show :: V1JobSpec -> String
$cshow :: V1JobSpec -> String
showsPrec :: Int -> V1JobSpec -> ShowS
$cshowsPrec :: Int -> V1JobSpec -> ShowS
P.Show, V1JobSpec -> V1JobSpec -> Bool
(V1JobSpec -> V1JobSpec -> Bool)
-> (V1JobSpec -> V1JobSpec -> Bool) -> Eq V1JobSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1JobSpec -> V1JobSpec -> Bool
$c/= :: V1JobSpec -> V1JobSpec -> Bool
== :: V1JobSpec -> V1JobSpec -> Bool
$c== :: V1JobSpec -> V1JobSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1JobSpec
instance A.FromJSON V1JobSpec where
  parseJSON :: Value -> Parser V1JobSpec
parseJSON = String -> (Object -> Parser V1JobSpec) -> Value -> Parser V1JobSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1JobSpec" ((Object -> Parser V1JobSpec) -> Value -> Parser V1JobSpec)
-> (Object -> Parser V1JobSpec) -> Value -> Parser V1JobSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Integer
-> Maybe Int
-> Maybe Int
-> Maybe Bool
-> Maybe Int
-> Maybe V1LabelSelector
-> V1PodTemplateSpec
-> Maybe Int
-> V1JobSpec
V1JobSpec
      (Maybe Integer
 -> Maybe Int
 -> Maybe Int
 -> Maybe Bool
 -> Maybe Int
 -> Maybe V1LabelSelector
 -> V1PodTemplateSpec
 -> Maybe Int
 -> V1JobSpec)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Int
      -> Maybe V1LabelSelector
      -> V1PodTemplateSpec
      -> Maybe Int
      -> V1JobSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"activeDeadlineSeconds")
      Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Int
   -> Maybe V1LabelSelector
   -> V1PodTemplateSpec
   -> Maybe Int
   -> V1JobSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe Bool
      -> Maybe Int
      -> Maybe V1LabelSelector
      -> V1PodTemplateSpec
      -> Maybe Int
      -> V1JobSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"backoffLimit")
      Parser
  (Maybe Int
   -> Maybe Bool
   -> Maybe Int
   -> Maybe V1LabelSelector
   -> V1PodTemplateSpec
   -> Maybe Int
   -> V1JobSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool
      -> Maybe Int
      -> Maybe V1LabelSelector
      -> V1PodTemplateSpec
      -> Maybe Int
      -> V1JobSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"completions")
      Parser
  (Maybe Bool
   -> Maybe Int
   -> Maybe V1LabelSelector
   -> V1PodTemplateSpec
   -> Maybe Int
   -> V1JobSpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Int
      -> Maybe V1LabelSelector
      -> V1PodTemplateSpec
      -> Maybe Int
      -> V1JobSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"manualSelector")
      Parser
  (Maybe Int
   -> Maybe V1LabelSelector
   -> V1PodTemplateSpec
   -> Maybe Int
   -> V1JobSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe V1LabelSelector
      -> V1PodTemplateSpec -> Maybe Int -> V1JobSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"parallelism")
      Parser
  (Maybe V1LabelSelector
   -> V1PodTemplateSpec -> Maybe Int -> V1JobSpec)
-> Parser (Maybe V1LabelSelector)
-> Parser (V1PodTemplateSpec -> Maybe Int -> V1JobSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")
      Parser (V1PodTemplateSpec -> Maybe Int -> V1JobSpec)
-> Parser V1PodTemplateSpec -> Parser (Maybe Int -> V1JobSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1PodTemplateSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"template")
      Parser (Maybe Int -> V1JobSpec)
-> Parser (Maybe Int) -> Parser V1JobSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ttlSecondsAfterFinished")

-- | ToJSON V1JobSpec
instance A.ToJSON V1JobSpec where
  toJSON :: V1JobSpec -> Value
toJSON V1JobSpec {Maybe Bool
Maybe Int
Maybe Integer
Maybe V1LabelSelector
V1PodTemplateSpec
v1JobSpecTtlSecondsAfterFinished :: Maybe Int
v1JobSpecTemplate :: V1PodTemplateSpec
v1JobSpecSelector :: Maybe V1LabelSelector
v1JobSpecParallelism :: Maybe Int
v1JobSpecManualSelector :: Maybe Bool
v1JobSpecCompletions :: Maybe Int
v1JobSpecBackoffLimit :: Maybe Int
v1JobSpecActiveDeadlineSeconds :: Maybe Integer
v1JobSpecTtlSecondsAfterFinished :: V1JobSpec -> Maybe Int
v1JobSpecTemplate :: V1JobSpec -> V1PodTemplateSpec
v1JobSpecSelector :: V1JobSpec -> Maybe V1LabelSelector
v1JobSpecParallelism :: V1JobSpec -> Maybe Int
v1JobSpecManualSelector :: V1JobSpec -> Maybe Bool
v1JobSpecCompletions :: V1JobSpec -> Maybe Int
v1JobSpecBackoffLimit :: V1JobSpec -> Maybe Int
v1JobSpecActiveDeadlineSeconds :: V1JobSpec -> Maybe Integer
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"activeDeadlineSeconds" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1JobSpecActiveDeadlineSeconds
      , Text
"backoffLimit" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1JobSpecBackoffLimit
      , Text
"completions" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1JobSpecCompletions
      , Text
"manualSelector" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1JobSpecManualSelector
      , Text
"parallelism" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1JobSpecParallelism
      , Text
"selector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1JobSpecSelector
      , Text
"template" Text -> V1PodTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1PodTemplateSpec
v1JobSpecTemplate
      , Text
"ttlSecondsAfterFinished" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1JobSpecTtlSecondsAfterFinished
      ]


-- | Construct a value of type 'V1JobSpec' (by applying it's required fields, if any)
mkV1JobSpec
  :: V1PodTemplateSpec -- ^ 'v1JobSpecTemplate' 
  -> V1JobSpec
mkV1JobSpec :: V1PodTemplateSpec -> V1JobSpec
mkV1JobSpec V1PodTemplateSpec
v1JobSpecTemplate =
  V1JobSpec :: Maybe Integer
-> Maybe Int
-> Maybe Int
-> Maybe Bool
-> Maybe Int
-> Maybe V1LabelSelector
-> V1PodTemplateSpec
-> Maybe Int
-> V1JobSpec
V1JobSpec
  { v1JobSpecActiveDeadlineSeconds :: Maybe Integer
v1JobSpecActiveDeadlineSeconds = Maybe Integer
forall a. Maybe a
Nothing
  , v1JobSpecBackoffLimit :: Maybe Int
v1JobSpecBackoffLimit = Maybe Int
forall a. Maybe a
Nothing
  , v1JobSpecCompletions :: Maybe Int
v1JobSpecCompletions = Maybe Int
forall a. Maybe a
Nothing
  , v1JobSpecManualSelector :: Maybe Bool
v1JobSpecManualSelector = Maybe Bool
forall a. Maybe a
Nothing
  , v1JobSpecParallelism :: Maybe Int
v1JobSpecParallelism = Maybe Int
forall a. Maybe a
Nothing
  , v1JobSpecSelector :: Maybe V1LabelSelector
v1JobSpecSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , V1PodTemplateSpec
v1JobSpecTemplate :: V1PodTemplateSpec
v1JobSpecTemplate :: V1PodTemplateSpec
v1JobSpecTemplate
  , v1JobSpecTtlSecondsAfterFinished :: Maybe Int
v1JobSpecTtlSecondsAfterFinished = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1JobStatus
-- | V1JobStatus
-- JobStatus represents the current state of a Job.
data V1JobStatus = V1JobStatus
  { V1JobStatus -> Maybe Int
v1JobStatusActive :: !(Maybe Int) -- ^ "active" - The number of actively running pods.
  , V1JobStatus -> Maybe DateTime
v1JobStatusCompletionTime :: !(Maybe DateTime) -- ^ "completionTime" - Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.
  , V1JobStatus -> Maybe [V1JobCondition]
v1JobStatusConditions :: !(Maybe [V1JobCondition]) -- ^ "conditions" - The latest available observations of an object&#39;s current state. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
  , V1JobStatus -> Maybe Int
v1JobStatusFailed :: !(Maybe Int) -- ^ "failed" - The number of pods which reached phase Failed.
  , V1JobStatus -> Maybe DateTime
v1JobStatusStartTime :: !(Maybe DateTime) -- ^ "startTime" - Represents time when the job was acknowledged by the job controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.
  , V1JobStatus -> Maybe Int
v1JobStatusSucceeded :: !(Maybe Int) -- ^ "succeeded" - The number of pods which reached phase Succeeded.
  } deriving (Int -> V1JobStatus -> ShowS
[V1JobStatus] -> ShowS
V1JobStatus -> String
(Int -> V1JobStatus -> ShowS)
-> (V1JobStatus -> String)
-> ([V1JobStatus] -> ShowS)
-> Show V1JobStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1JobStatus] -> ShowS
$cshowList :: [V1JobStatus] -> ShowS
show :: V1JobStatus -> String
$cshow :: V1JobStatus -> String
showsPrec :: Int -> V1JobStatus -> ShowS
$cshowsPrec :: Int -> V1JobStatus -> ShowS
P.Show, V1JobStatus -> V1JobStatus -> Bool
(V1JobStatus -> V1JobStatus -> Bool)
-> (V1JobStatus -> V1JobStatus -> Bool) -> Eq V1JobStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1JobStatus -> V1JobStatus -> Bool
$c/= :: V1JobStatus -> V1JobStatus -> Bool
== :: V1JobStatus -> V1JobStatus -> Bool
$c== :: V1JobStatus -> V1JobStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1JobStatus
instance A.FromJSON V1JobStatus where
  parseJSON :: Value -> Parser V1JobStatus
parseJSON = String
-> (Object -> Parser V1JobStatus) -> Value -> Parser V1JobStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1JobStatus" ((Object -> Parser V1JobStatus) -> Value -> Parser V1JobStatus)
-> (Object -> Parser V1JobStatus) -> Value -> Parser V1JobStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe DateTime
-> Maybe [V1JobCondition]
-> Maybe Int
-> Maybe DateTime
-> Maybe Int
-> V1JobStatus
V1JobStatus
      (Maybe Int
 -> Maybe DateTime
 -> Maybe [V1JobCondition]
 -> Maybe Int
 -> Maybe DateTime
 -> Maybe Int
 -> V1JobStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe DateTime
      -> Maybe [V1JobCondition]
      -> Maybe Int
      -> Maybe DateTime
      -> Maybe Int
      -> V1JobStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"active")
      Parser
  (Maybe DateTime
   -> Maybe [V1JobCondition]
   -> Maybe Int
   -> Maybe DateTime
   -> Maybe Int
   -> V1JobStatus)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe [V1JobCondition]
      -> Maybe Int -> Maybe DateTime -> Maybe Int -> V1JobStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"completionTime")
      Parser
  (Maybe [V1JobCondition]
   -> Maybe Int -> Maybe DateTime -> Maybe Int -> V1JobStatus)
-> Parser (Maybe [V1JobCondition])
-> Parser (Maybe Int -> Maybe DateTime -> Maybe Int -> V1JobStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1JobCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser (Maybe Int -> Maybe DateTime -> Maybe Int -> V1JobStatus)
-> Parser (Maybe Int)
-> Parser (Maybe DateTime -> Maybe Int -> V1JobStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"failed")
      Parser (Maybe DateTime -> Maybe Int -> V1JobStatus)
-> Parser (Maybe DateTime) -> Parser (Maybe Int -> V1JobStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"startTime")
      Parser (Maybe Int -> V1JobStatus)
-> Parser (Maybe Int) -> Parser V1JobStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"succeeded")

-- | ToJSON V1JobStatus
instance A.ToJSON V1JobStatus where
  toJSON :: V1JobStatus -> Value
toJSON V1JobStatus {Maybe Int
Maybe [V1JobCondition]
Maybe DateTime
v1JobStatusSucceeded :: Maybe Int
v1JobStatusStartTime :: Maybe DateTime
v1JobStatusFailed :: Maybe Int
v1JobStatusConditions :: Maybe [V1JobCondition]
v1JobStatusCompletionTime :: Maybe DateTime
v1JobStatusActive :: Maybe Int
v1JobStatusSucceeded :: V1JobStatus -> Maybe Int
v1JobStatusStartTime :: V1JobStatus -> Maybe DateTime
v1JobStatusFailed :: V1JobStatus -> Maybe Int
v1JobStatusConditions :: V1JobStatus -> Maybe [V1JobCondition]
v1JobStatusCompletionTime :: V1JobStatus -> Maybe DateTime
v1JobStatusActive :: V1JobStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"active" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1JobStatusActive
      , Text
"completionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1JobStatusCompletionTime
      , Text
"conditions" Text -> Maybe [V1JobCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1JobCondition]
v1JobStatusConditions
      , Text
"failed" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1JobStatusFailed
      , Text
"startTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1JobStatusStartTime
      , Text
"succeeded" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1JobStatusSucceeded
      ]


-- | Construct a value of type 'V1JobStatus' (by applying it's required fields, if any)
mkV1JobStatus
  :: V1JobStatus
mkV1JobStatus :: V1JobStatus
mkV1JobStatus =
  V1JobStatus :: Maybe Int
-> Maybe DateTime
-> Maybe [V1JobCondition]
-> Maybe Int
-> Maybe DateTime
-> Maybe Int
-> V1JobStatus
V1JobStatus
  { v1JobStatusActive :: Maybe Int
v1JobStatusActive = Maybe Int
forall a. Maybe a
Nothing
  , v1JobStatusCompletionTime :: Maybe DateTime
v1JobStatusCompletionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1JobStatusConditions :: Maybe [V1JobCondition]
v1JobStatusConditions = Maybe [V1JobCondition]
forall a. Maybe a
Nothing
  , v1JobStatusFailed :: Maybe Int
v1JobStatusFailed = Maybe Int
forall a. Maybe a
Nothing
  , v1JobStatusStartTime :: Maybe DateTime
v1JobStatusStartTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1JobStatusSucceeded :: Maybe Int
v1JobStatusSucceeded = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1KeyToPath
-- | V1KeyToPath
-- Maps a string key to a path within a volume.
data V1KeyToPath = V1KeyToPath
  { V1KeyToPath -> Text
v1KeyToPathKey :: !(Text) -- ^ /Required/ "key" - The key to project.
  , V1KeyToPath -> Maybe Int
v1KeyToPathMode :: !(Maybe Int) -- ^ "mode" - Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  , V1KeyToPath -> Text
v1KeyToPathPath :: !(Text) -- ^ /Required/ "path" - The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#39;..&#39;. May not start with the string &#39;..&#39;.
  } deriving (Int -> V1KeyToPath -> ShowS
[V1KeyToPath] -> ShowS
V1KeyToPath -> String
(Int -> V1KeyToPath -> ShowS)
-> (V1KeyToPath -> String)
-> ([V1KeyToPath] -> ShowS)
-> Show V1KeyToPath
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1KeyToPath] -> ShowS
$cshowList :: [V1KeyToPath] -> ShowS
show :: V1KeyToPath -> String
$cshow :: V1KeyToPath -> String
showsPrec :: Int -> V1KeyToPath -> ShowS
$cshowsPrec :: Int -> V1KeyToPath -> ShowS
P.Show, V1KeyToPath -> V1KeyToPath -> Bool
(V1KeyToPath -> V1KeyToPath -> Bool)
-> (V1KeyToPath -> V1KeyToPath -> Bool) -> Eq V1KeyToPath
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1KeyToPath -> V1KeyToPath -> Bool
$c/= :: V1KeyToPath -> V1KeyToPath -> Bool
== :: V1KeyToPath -> V1KeyToPath -> Bool
$c== :: V1KeyToPath -> V1KeyToPath -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1KeyToPath
instance A.FromJSON V1KeyToPath where
  parseJSON :: Value -> Parser V1KeyToPath
parseJSON = String
-> (Object -> Parser V1KeyToPath) -> Value -> Parser V1KeyToPath
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1KeyToPath" ((Object -> Parser V1KeyToPath) -> Value -> Parser V1KeyToPath)
-> (Object -> Parser V1KeyToPath) -> Value -> Parser V1KeyToPath
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Maybe Int -> Text -> V1KeyToPath
V1KeyToPath
      (Text -> Maybe Int -> Text -> V1KeyToPath)
-> Parser Text -> Parser (Maybe Int -> Text -> V1KeyToPath)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"key")
      Parser (Maybe Int -> Text -> V1KeyToPath)
-> Parser (Maybe Int) -> Parser (Text -> V1KeyToPath)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"mode")
      Parser (Text -> V1KeyToPath) -> Parser Text -> Parser V1KeyToPath
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"path")

-- | ToJSON V1KeyToPath
instance A.ToJSON V1KeyToPath where
  toJSON :: V1KeyToPath -> Value
toJSON V1KeyToPath {Maybe Int
Text
v1KeyToPathPath :: Text
v1KeyToPathMode :: Maybe Int
v1KeyToPathKey :: Text
v1KeyToPathPath :: V1KeyToPath -> Text
v1KeyToPathMode :: V1KeyToPath -> Maybe Int
v1KeyToPathKey :: V1KeyToPath -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"key" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1KeyToPathKey
      , Text
"mode" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1KeyToPathMode
      , Text
"path" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1KeyToPathPath
      ]


-- | Construct a value of type 'V1KeyToPath' (by applying it's required fields, if any)
mkV1KeyToPath
  :: Text -- ^ 'v1KeyToPathKey': The key to project.
  -> Text -- ^ 'v1KeyToPathPath': The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
  -> V1KeyToPath
mkV1KeyToPath :: Text -> Text -> V1KeyToPath
mkV1KeyToPath Text
v1KeyToPathKey Text
v1KeyToPathPath =
  V1KeyToPath :: Text -> Maybe Int -> Text -> V1KeyToPath
V1KeyToPath
  { Text
v1KeyToPathKey :: Text
v1KeyToPathKey :: Text
v1KeyToPathKey
  , v1KeyToPathMode :: Maybe Int
v1KeyToPathMode = Maybe Int
forall a. Maybe a
Nothing
  , Text
v1KeyToPathPath :: Text
v1KeyToPathPath :: Text
v1KeyToPathPath
  }

-- ** V1LabelSelector
-- | V1LabelSelector
-- A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
data V1LabelSelector = V1LabelSelector
  { V1LabelSelector -> Maybe [V1LabelSelectorRequirement]
v1LabelSelectorMatchExpressions :: !(Maybe [V1LabelSelectorRequirement]) -- ^ "matchExpressions" - matchExpressions is a list of label selector requirements. The requirements are ANDed.
  , V1LabelSelector -> Maybe (Map String Text)
v1LabelSelectorMatchLabels :: !(Maybe (Map.Map String Text)) -- ^ "matchLabels" - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \&quot;key\&quot;, the operator is \&quot;In\&quot;, and the values array contains only \&quot;value\&quot;. The requirements are ANDed.
  } deriving (Int -> V1LabelSelector -> ShowS
[V1LabelSelector] -> ShowS
V1LabelSelector -> String
(Int -> V1LabelSelector -> ShowS)
-> (V1LabelSelector -> String)
-> ([V1LabelSelector] -> ShowS)
-> Show V1LabelSelector
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1LabelSelector] -> ShowS
$cshowList :: [V1LabelSelector] -> ShowS
show :: V1LabelSelector -> String
$cshow :: V1LabelSelector -> String
showsPrec :: Int -> V1LabelSelector -> ShowS
$cshowsPrec :: Int -> V1LabelSelector -> ShowS
P.Show, V1LabelSelector -> V1LabelSelector -> Bool
(V1LabelSelector -> V1LabelSelector -> Bool)
-> (V1LabelSelector -> V1LabelSelector -> Bool)
-> Eq V1LabelSelector
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1LabelSelector -> V1LabelSelector -> Bool
$c/= :: V1LabelSelector -> V1LabelSelector -> Bool
== :: V1LabelSelector -> V1LabelSelector -> Bool
$c== :: V1LabelSelector -> V1LabelSelector -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1LabelSelector
instance A.FromJSON V1LabelSelector where
  parseJSON :: Value -> Parser V1LabelSelector
parseJSON = String
-> (Object -> Parser V1LabelSelector)
-> Value
-> Parser V1LabelSelector
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1LabelSelector" ((Object -> Parser V1LabelSelector)
 -> Value -> Parser V1LabelSelector)
-> (Object -> Parser V1LabelSelector)
-> Value
-> Parser V1LabelSelector
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1LabelSelectorRequirement]
-> Maybe (Map String Text) -> V1LabelSelector
V1LabelSelector
      (Maybe [V1LabelSelectorRequirement]
 -> Maybe (Map String Text) -> V1LabelSelector)
-> Parser (Maybe [V1LabelSelectorRequirement])
-> Parser (Maybe (Map String Text) -> V1LabelSelector)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1LabelSelectorRequirement])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"matchExpressions")
      Parser (Maybe (Map String Text) -> V1LabelSelector)
-> Parser (Maybe (Map String Text)) -> Parser V1LabelSelector
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"matchLabels")

-- | ToJSON V1LabelSelector
instance A.ToJSON V1LabelSelector where
  toJSON :: V1LabelSelector -> Value
toJSON V1LabelSelector {Maybe [V1LabelSelectorRequirement]
Maybe (Map String Text)
v1LabelSelectorMatchLabels :: Maybe (Map String Text)
v1LabelSelectorMatchExpressions :: Maybe [V1LabelSelectorRequirement]
v1LabelSelectorMatchLabels :: V1LabelSelector -> Maybe (Map String Text)
v1LabelSelectorMatchExpressions :: V1LabelSelector -> Maybe [V1LabelSelectorRequirement]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"matchExpressions" Text -> Maybe [V1LabelSelectorRequirement] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1LabelSelectorRequirement]
v1LabelSelectorMatchExpressions
      , Text
"matchLabels" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1LabelSelectorMatchLabels
      ]


-- | Construct a value of type 'V1LabelSelector' (by applying it's required fields, if any)
mkV1LabelSelector
  :: V1LabelSelector
mkV1LabelSelector :: V1LabelSelector
mkV1LabelSelector =
  V1LabelSelector :: Maybe [V1LabelSelectorRequirement]
-> Maybe (Map String Text) -> V1LabelSelector
V1LabelSelector
  { v1LabelSelectorMatchExpressions :: Maybe [V1LabelSelectorRequirement]
v1LabelSelectorMatchExpressions = Maybe [V1LabelSelectorRequirement]
forall a. Maybe a
Nothing
  , v1LabelSelectorMatchLabels :: Maybe (Map String Text)
v1LabelSelectorMatchLabels = Maybe (Map String Text)
forall a. Maybe a
Nothing
  }

-- ** V1LabelSelectorRequirement
-- | V1LabelSelectorRequirement
-- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
data V1LabelSelectorRequirement = V1LabelSelectorRequirement
  { V1LabelSelectorRequirement -> Text
v1LabelSelectorRequirementKey :: !(Text) -- ^ /Required/ "key" - key is the label key that the selector applies to.
  , V1LabelSelectorRequirement -> Text
v1LabelSelectorRequirementOperator :: !(Text) -- ^ /Required/ "operator" - operator represents a key&#39;s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  , V1LabelSelectorRequirement -> Maybe [Text]
v1LabelSelectorRequirementValues :: !(Maybe [Text]) -- ^ "values" - values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  } deriving (Int -> V1LabelSelectorRequirement -> ShowS
[V1LabelSelectorRequirement] -> ShowS
V1LabelSelectorRequirement -> String
(Int -> V1LabelSelectorRequirement -> ShowS)
-> (V1LabelSelectorRequirement -> String)
-> ([V1LabelSelectorRequirement] -> ShowS)
-> Show V1LabelSelectorRequirement
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1LabelSelectorRequirement] -> ShowS
$cshowList :: [V1LabelSelectorRequirement] -> ShowS
show :: V1LabelSelectorRequirement -> String
$cshow :: V1LabelSelectorRequirement -> String
showsPrec :: Int -> V1LabelSelectorRequirement -> ShowS
$cshowsPrec :: Int -> V1LabelSelectorRequirement -> ShowS
P.Show, V1LabelSelectorRequirement -> V1LabelSelectorRequirement -> Bool
(V1LabelSelectorRequirement -> V1LabelSelectorRequirement -> Bool)
-> (V1LabelSelectorRequirement
    -> V1LabelSelectorRequirement -> Bool)
-> Eq V1LabelSelectorRequirement
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1LabelSelectorRequirement -> V1LabelSelectorRequirement -> Bool
$c/= :: V1LabelSelectorRequirement -> V1LabelSelectorRequirement -> Bool
== :: V1LabelSelectorRequirement -> V1LabelSelectorRequirement -> Bool
$c== :: V1LabelSelectorRequirement -> V1LabelSelectorRequirement -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1LabelSelectorRequirement
instance A.FromJSON V1LabelSelectorRequirement where
  parseJSON :: Value -> Parser V1LabelSelectorRequirement
parseJSON = String
-> (Object -> Parser V1LabelSelectorRequirement)
-> Value
-> Parser V1LabelSelectorRequirement
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1LabelSelectorRequirement" ((Object -> Parser V1LabelSelectorRequirement)
 -> Value -> Parser V1LabelSelectorRequirement)
-> (Object -> Parser V1LabelSelectorRequirement)
-> Value
-> Parser V1LabelSelectorRequirement
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> Maybe [Text] -> V1LabelSelectorRequirement
V1LabelSelectorRequirement
      (Text -> Text -> Maybe [Text] -> V1LabelSelectorRequirement)
-> Parser Text
-> Parser (Text -> Maybe [Text] -> V1LabelSelectorRequirement)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"key")
      Parser (Text -> Maybe [Text] -> V1LabelSelectorRequirement)
-> Parser Text
-> Parser (Maybe [Text] -> V1LabelSelectorRequirement)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"operator")
      Parser (Maybe [Text] -> V1LabelSelectorRequirement)
-> Parser (Maybe [Text]) -> Parser V1LabelSelectorRequirement
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"values")

-- | ToJSON V1LabelSelectorRequirement
instance A.ToJSON V1LabelSelectorRequirement where
  toJSON :: V1LabelSelectorRequirement -> Value
toJSON V1LabelSelectorRequirement {Maybe [Text]
Text
v1LabelSelectorRequirementValues :: Maybe [Text]
v1LabelSelectorRequirementOperator :: Text
v1LabelSelectorRequirementKey :: Text
v1LabelSelectorRequirementValues :: V1LabelSelectorRequirement -> Maybe [Text]
v1LabelSelectorRequirementOperator :: V1LabelSelectorRequirement -> Text
v1LabelSelectorRequirementKey :: V1LabelSelectorRequirement -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"key" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1LabelSelectorRequirementKey
      , Text
"operator" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1LabelSelectorRequirementOperator
      , Text
"values" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1LabelSelectorRequirementValues
      ]


-- | Construct a value of type 'V1LabelSelectorRequirement' (by applying it's required fields, if any)
mkV1LabelSelectorRequirement
  :: Text -- ^ 'v1LabelSelectorRequirementKey': key is the label key that the selector applies to.
  -> Text -- ^ 'v1LabelSelectorRequirementOperator': operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  -> V1LabelSelectorRequirement
mkV1LabelSelectorRequirement :: Text -> Text -> V1LabelSelectorRequirement
mkV1LabelSelectorRequirement Text
v1LabelSelectorRequirementKey Text
v1LabelSelectorRequirementOperator =
  V1LabelSelectorRequirement :: Text -> Text -> Maybe [Text] -> V1LabelSelectorRequirement
V1LabelSelectorRequirement
  { Text
v1LabelSelectorRequirementKey :: Text
v1LabelSelectorRequirementKey :: Text
v1LabelSelectorRequirementKey
  , Text
v1LabelSelectorRequirementOperator :: Text
v1LabelSelectorRequirementOperator :: Text
v1LabelSelectorRequirementOperator
  , v1LabelSelectorRequirementValues :: Maybe [Text]
v1LabelSelectorRequirementValues = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1Lease
-- | V1Lease
-- Lease defines a lease concept.
data V1Lease = V1Lease
  { V1Lease -> Maybe Text
v1LeaseApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1Lease -> Maybe Text
v1LeaseKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1Lease -> Maybe V1ObjectMeta
v1LeaseMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1Lease -> Maybe V1LeaseSpec
v1LeaseSpec :: !(Maybe V1LeaseSpec) -- ^ "spec"
  } deriving (Int -> V1Lease -> ShowS
[V1Lease] -> ShowS
V1Lease -> String
(Int -> V1Lease -> ShowS)
-> (V1Lease -> String) -> ([V1Lease] -> ShowS) -> Show V1Lease
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Lease] -> ShowS
$cshowList :: [V1Lease] -> ShowS
show :: V1Lease -> String
$cshow :: V1Lease -> String
showsPrec :: Int -> V1Lease -> ShowS
$cshowsPrec :: Int -> V1Lease -> ShowS
P.Show, V1Lease -> V1Lease -> Bool
(V1Lease -> V1Lease -> Bool)
-> (V1Lease -> V1Lease -> Bool) -> Eq V1Lease
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Lease -> V1Lease -> Bool
$c/= :: V1Lease -> V1Lease -> Bool
== :: V1Lease -> V1Lease -> Bool
$c== :: V1Lease -> V1Lease -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Lease
instance A.FromJSON V1Lease where
  parseJSON :: Value -> Parser V1Lease
parseJSON = String -> (Object -> Parser V1Lease) -> Value -> Parser V1Lease
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Lease" ((Object -> Parser V1Lease) -> Value -> Parser V1Lease)
-> (Object -> Parser V1Lease) -> Value -> Parser V1Lease
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text -> Maybe V1ObjectMeta -> Maybe V1LeaseSpec -> V1Lease
V1Lease
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1LeaseSpec
 -> V1Lease)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe V1ObjectMeta -> Maybe V1LeaseSpec -> V1Lease)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text -> Maybe V1ObjectMeta -> Maybe V1LeaseSpec -> V1Lease)
-> Parser (Maybe Text)
-> Parser (Maybe V1ObjectMeta -> Maybe V1LeaseSpec -> V1Lease)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ObjectMeta -> Maybe V1LeaseSpec -> V1Lease)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe V1LeaseSpec -> V1Lease)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe V1LeaseSpec -> V1Lease)
-> Parser (Maybe V1LeaseSpec) -> Parser V1Lease
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LeaseSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")

-- | ToJSON V1Lease
instance A.ToJSON V1Lease where
  toJSON :: V1Lease -> Value
toJSON V1Lease {Maybe Text
Maybe V1ObjectMeta
Maybe V1LeaseSpec
v1LeaseSpec :: Maybe V1LeaseSpec
v1LeaseMetadata :: Maybe V1ObjectMeta
v1LeaseKind :: Maybe Text
v1LeaseApiVersion :: Maybe Text
v1LeaseSpec :: V1Lease -> Maybe V1LeaseSpec
v1LeaseMetadata :: V1Lease -> Maybe V1ObjectMeta
v1LeaseKind :: V1Lease -> Maybe Text
v1LeaseApiVersion :: V1Lease -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1LeaseApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1LeaseKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1LeaseMetadata
      , Text
"spec" Text -> Maybe V1LeaseSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LeaseSpec
v1LeaseSpec
      ]


-- | Construct a value of type 'V1Lease' (by applying it's required fields, if any)
mkV1Lease
  :: V1Lease
mkV1Lease :: V1Lease
mkV1Lease =
  V1Lease :: Maybe Text
-> Maybe Text -> Maybe V1ObjectMeta -> Maybe V1LeaseSpec -> V1Lease
V1Lease
  { v1LeaseApiVersion :: Maybe Text
v1LeaseApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1LeaseKind :: Maybe Text
v1LeaseKind = Maybe Text
forall a. Maybe a
Nothing
  , v1LeaseMetadata :: Maybe V1ObjectMeta
v1LeaseMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1LeaseSpec :: Maybe V1LeaseSpec
v1LeaseSpec = Maybe V1LeaseSpec
forall a. Maybe a
Nothing
  }

-- ** V1LeaseList
-- | V1LeaseList
-- LeaseList is a list of Lease objects.
data V1LeaseList = V1LeaseList
  { V1LeaseList -> Maybe Text
v1LeaseListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1LeaseList -> [V1Lease]
v1LeaseListItems :: !([V1Lease]) -- ^ /Required/ "items" - Items is a list of schema objects.
  , V1LeaseList -> Maybe Text
v1LeaseListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1LeaseList -> Maybe V1ListMeta
v1LeaseListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1LeaseList -> ShowS
[V1LeaseList] -> ShowS
V1LeaseList -> String
(Int -> V1LeaseList -> ShowS)
-> (V1LeaseList -> String)
-> ([V1LeaseList] -> ShowS)
-> Show V1LeaseList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1LeaseList] -> ShowS
$cshowList :: [V1LeaseList] -> ShowS
show :: V1LeaseList -> String
$cshow :: V1LeaseList -> String
showsPrec :: Int -> V1LeaseList -> ShowS
$cshowsPrec :: Int -> V1LeaseList -> ShowS
P.Show, V1LeaseList -> V1LeaseList -> Bool
(V1LeaseList -> V1LeaseList -> Bool)
-> (V1LeaseList -> V1LeaseList -> Bool) -> Eq V1LeaseList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1LeaseList -> V1LeaseList -> Bool
$c/= :: V1LeaseList -> V1LeaseList -> Bool
== :: V1LeaseList -> V1LeaseList -> Bool
$c== :: V1LeaseList -> V1LeaseList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1LeaseList
instance A.FromJSON V1LeaseList where
  parseJSON :: Value -> Parser V1LeaseList
parseJSON = String
-> (Object -> Parser V1LeaseList) -> Value -> Parser V1LeaseList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1LeaseList" ((Object -> Parser V1LeaseList) -> Value -> Parser V1LeaseList)
-> (Object -> Parser V1LeaseList) -> Value -> Parser V1LeaseList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1Lease] -> Maybe Text -> Maybe V1ListMeta -> V1LeaseList
V1LeaseList
      (Maybe Text
 -> [V1Lease] -> Maybe Text -> Maybe V1ListMeta -> V1LeaseList)
-> Parser (Maybe Text)
-> Parser
     ([V1Lease] -> Maybe Text -> Maybe V1ListMeta -> V1LeaseList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser ([V1Lease] -> Maybe Text -> Maybe V1ListMeta -> V1LeaseList)
-> Parser [V1Lease]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1LeaseList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1Lease]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1LeaseList)
-> Parser (Maybe Text) -> Parser (Maybe V1ListMeta -> V1LeaseList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1LeaseList)
-> Parser (Maybe V1ListMeta) -> Parser V1LeaseList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1LeaseList
instance A.ToJSON V1LeaseList where
  toJSON :: V1LeaseList -> Value
toJSON V1LeaseList {[V1Lease]
Maybe Text
Maybe V1ListMeta
v1LeaseListMetadata :: Maybe V1ListMeta
v1LeaseListKind :: Maybe Text
v1LeaseListItems :: [V1Lease]
v1LeaseListApiVersion :: Maybe Text
v1LeaseListMetadata :: V1LeaseList -> Maybe V1ListMeta
v1LeaseListKind :: V1LeaseList -> Maybe Text
v1LeaseListItems :: V1LeaseList -> [V1Lease]
v1LeaseListApiVersion :: V1LeaseList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1LeaseListApiVersion
      , Text
"items" Text -> [V1Lease] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1Lease]
v1LeaseListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1LeaseListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1LeaseListMetadata
      ]


-- | Construct a value of type 'V1LeaseList' (by applying it's required fields, if any)
mkV1LeaseList
  :: [V1Lease] -- ^ 'v1LeaseListItems': Items is a list of schema objects.
  -> V1LeaseList
mkV1LeaseList :: [V1Lease] -> V1LeaseList
mkV1LeaseList [V1Lease]
v1LeaseListItems =
  V1LeaseList :: Maybe Text
-> [V1Lease] -> Maybe Text -> Maybe V1ListMeta -> V1LeaseList
V1LeaseList
  { v1LeaseListApiVersion :: Maybe Text
v1LeaseListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1Lease]
v1LeaseListItems :: [V1Lease]
v1LeaseListItems :: [V1Lease]
v1LeaseListItems
  , v1LeaseListKind :: Maybe Text
v1LeaseListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1LeaseListMetadata :: Maybe V1ListMeta
v1LeaseListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1LeaseSpec
-- | V1LeaseSpec
-- LeaseSpec is a specification of a Lease.
data V1LeaseSpec = V1LeaseSpec
  { V1LeaseSpec -> Maybe DateTime
v1LeaseSpecAcquireTime :: !(Maybe DateTime) -- ^ "acquireTime" - acquireTime is a time when the current lease was acquired.
  , V1LeaseSpec -> Maybe Text
v1LeaseSpecHolderIdentity :: !(Maybe Text) -- ^ "holderIdentity" - holderIdentity contains the identity of the holder of a current lease.
  , V1LeaseSpec -> Maybe Int
v1LeaseSpecLeaseDurationSeconds :: !(Maybe Int) -- ^ "leaseDurationSeconds" - leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.
  , V1LeaseSpec -> Maybe Int
v1LeaseSpecLeaseTransitions :: !(Maybe Int) -- ^ "leaseTransitions" - leaseTransitions is the number of transitions of a lease between holders.
  , V1LeaseSpec -> Maybe DateTime
v1LeaseSpecRenewTime :: !(Maybe DateTime) -- ^ "renewTime" - renewTime is a time when the current holder of a lease has last updated the lease.
  } deriving (Int -> V1LeaseSpec -> ShowS
[V1LeaseSpec] -> ShowS
V1LeaseSpec -> String
(Int -> V1LeaseSpec -> ShowS)
-> (V1LeaseSpec -> String)
-> ([V1LeaseSpec] -> ShowS)
-> Show V1LeaseSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1LeaseSpec] -> ShowS
$cshowList :: [V1LeaseSpec] -> ShowS
show :: V1LeaseSpec -> String
$cshow :: V1LeaseSpec -> String
showsPrec :: Int -> V1LeaseSpec -> ShowS
$cshowsPrec :: Int -> V1LeaseSpec -> ShowS
P.Show, V1LeaseSpec -> V1LeaseSpec -> Bool
(V1LeaseSpec -> V1LeaseSpec -> Bool)
-> (V1LeaseSpec -> V1LeaseSpec -> Bool) -> Eq V1LeaseSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1LeaseSpec -> V1LeaseSpec -> Bool
$c/= :: V1LeaseSpec -> V1LeaseSpec -> Bool
== :: V1LeaseSpec -> V1LeaseSpec -> Bool
$c== :: V1LeaseSpec -> V1LeaseSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1LeaseSpec
instance A.FromJSON V1LeaseSpec where
  parseJSON :: Value -> Parser V1LeaseSpec
parseJSON = String
-> (Object -> Parser V1LeaseSpec) -> Value -> Parser V1LeaseSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1LeaseSpec" ((Object -> Parser V1LeaseSpec) -> Value -> Parser V1LeaseSpec)
-> (Object -> Parser V1LeaseSpec) -> Value -> Parser V1LeaseSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe DateTime
-> V1LeaseSpec
V1LeaseSpec
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Int
 -> Maybe Int
 -> Maybe DateTime
 -> V1LeaseSpec)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Int -> Maybe Int -> Maybe DateTime -> V1LeaseSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"acquireTime")
      Parser
  (Maybe Text
   -> Maybe Int -> Maybe Int -> Maybe DateTime -> V1LeaseSpec)
-> Parser (Maybe Text)
-> Parser (Maybe Int -> Maybe Int -> Maybe DateTime -> V1LeaseSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"holderIdentity")
      Parser (Maybe Int -> Maybe Int -> Maybe DateTime -> V1LeaseSpec)
-> Parser (Maybe Int)
-> Parser (Maybe Int -> Maybe DateTime -> V1LeaseSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"leaseDurationSeconds")
      Parser (Maybe Int -> Maybe DateTime -> V1LeaseSpec)
-> Parser (Maybe Int) -> Parser (Maybe DateTime -> V1LeaseSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"leaseTransitions")
      Parser (Maybe DateTime -> V1LeaseSpec)
-> Parser (Maybe DateTime) -> Parser V1LeaseSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"renewTime")

-- | ToJSON V1LeaseSpec
instance A.ToJSON V1LeaseSpec where
  toJSON :: V1LeaseSpec -> Value
toJSON V1LeaseSpec {Maybe Int
Maybe Text
Maybe DateTime
v1LeaseSpecRenewTime :: Maybe DateTime
v1LeaseSpecLeaseTransitions :: Maybe Int
v1LeaseSpecLeaseDurationSeconds :: Maybe Int
v1LeaseSpecHolderIdentity :: Maybe Text
v1LeaseSpecAcquireTime :: Maybe DateTime
v1LeaseSpecRenewTime :: V1LeaseSpec -> Maybe DateTime
v1LeaseSpecLeaseTransitions :: V1LeaseSpec -> Maybe Int
v1LeaseSpecLeaseDurationSeconds :: V1LeaseSpec -> Maybe Int
v1LeaseSpecHolderIdentity :: V1LeaseSpec -> Maybe Text
v1LeaseSpecAcquireTime :: V1LeaseSpec -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"acquireTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1LeaseSpecAcquireTime
      , Text
"holderIdentity" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1LeaseSpecHolderIdentity
      , Text
"leaseDurationSeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1LeaseSpecLeaseDurationSeconds
      , Text
"leaseTransitions" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1LeaseSpecLeaseTransitions
      , Text
"renewTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1LeaseSpecRenewTime
      ]


-- | Construct a value of type 'V1LeaseSpec' (by applying it's required fields, if any)
mkV1LeaseSpec
  :: V1LeaseSpec
mkV1LeaseSpec :: V1LeaseSpec
mkV1LeaseSpec =
  V1LeaseSpec :: Maybe DateTime
-> Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe DateTime
-> V1LeaseSpec
V1LeaseSpec
  { v1LeaseSpecAcquireTime :: Maybe DateTime
v1LeaseSpecAcquireTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1LeaseSpecHolderIdentity :: Maybe Text
v1LeaseSpecHolderIdentity = Maybe Text
forall a. Maybe a
Nothing
  , v1LeaseSpecLeaseDurationSeconds :: Maybe Int
v1LeaseSpecLeaseDurationSeconds = Maybe Int
forall a. Maybe a
Nothing
  , v1LeaseSpecLeaseTransitions :: Maybe Int
v1LeaseSpecLeaseTransitions = Maybe Int
forall a. Maybe a
Nothing
  , v1LeaseSpecRenewTime :: Maybe DateTime
v1LeaseSpecRenewTime = Maybe DateTime
forall a. Maybe a
Nothing
  }

-- ** V1Lifecycle
-- | V1Lifecycle
-- Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.
data V1Lifecycle = V1Lifecycle
  { V1Lifecycle -> Maybe V1Handler
v1LifecyclePostStart :: !(Maybe V1Handler) -- ^ "postStart"
  , V1Lifecycle -> Maybe V1Handler
v1LifecyclePreStop :: !(Maybe V1Handler) -- ^ "preStop"
  } deriving (Int -> V1Lifecycle -> ShowS
[V1Lifecycle] -> ShowS
V1Lifecycle -> String
(Int -> V1Lifecycle -> ShowS)
-> (V1Lifecycle -> String)
-> ([V1Lifecycle] -> ShowS)
-> Show V1Lifecycle
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Lifecycle] -> ShowS
$cshowList :: [V1Lifecycle] -> ShowS
show :: V1Lifecycle -> String
$cshow :: V1Lifecycle -> String
showsPrec :: Int -> V1Lifecycle -> ShowS
$cshowsPrec :: Int -> V1Lifecycle -> ShowS
P.Show, V1Lifecycle -> V1Lifecycle -> Bool
(V1Lifecycle -> V1Lifecycle -> Bool)
-> (V1Lifecycle -> V1Lifecycle -> Bool) -> Eq V1Lifecycle
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Lifecycle -> V1Lifecycle -> Bool
$c/= :: V1Lifecycle -> V1Lifecycle -> Bool
== :: V1Lifecycle -> V1Lifecycle -> Bool
$c== :: V1Lifecycle -> V1Lifecycle -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Lifecycle
instance A.FromJSON V1Lifecycle where
  parseJSON :: Value -> Parser V1Lifecycle
parseJSON = String
-> (Object -> Parser V1Lifecycle) -> Value -> Parser V1Lifecycle
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Lifecycle" ((Object -> Parser V1Lifecycle) -> Value -> Parser V1Lifecycle)
-> (Object -> Parser V1Lifecycle) -> Value -> Parser V1Lifecycle
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1Handler -> Maybe V1Handler -> V1Lifecycle
V1Lifecycle
      (Maybe V1Handler -> Maybe V1Handler -> V1Lifecycle)
-> Parser (Maybe V1Handler)
-> Parser (Maybe V1Handler -> V1Lifecycle)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1Handler)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"postStart")
      Parser (Maybe V1Handler -> V1Lifecycle)
-> Parser (Maybe V1Handler) -> Parser V1Lifecycle
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1Handler)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"preStop")

-- | ToJSON V1Lifecycle
instance A.ToJSON V1Lifecycle where
  toJSON :: V1Lifecycle -> Value
toJSON V1Lifecycle {Maybe V1Handler
v1LifecyclePreStop :: Maybe V1Handler
v1LifecyclePostStart :: Maybe V1Handler
v1LifecyclePreStop :: V1Lifecycle -> Maybe V1Handler
v1LifecyclePostStart :: V1Lifecycle -> Maybe V1Handler
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"postStart" Text -> Maybe V1Handler -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1Handler
v1LifecyclePostStart
      , Text
"preStop" Text -> Maybe V1Handler -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1Handler
v1LifecyclePreStop
      ]


-- | Construct a value of type 'V1Lifecycle' (by applying it's required fields, if any)
mkV1Lifecycle
  :: V1Lifecycle
mkV1Lifecycle :: V1Lifecycle
mkV1Lifecycle =
  V1Lifecycle :: Maybe V1Handler -> Maybe V1Handler -> V1Lifecycle
V1Lifecycle
  { v1LifecyclePostStart :: Maybe V1Handler
v1LifecyclePostStart = Maybe V1Handler
forall a. Maybe a
Nothing
  , v1LifecyclePreStop :: Maybe V1Handler
v1LifecyclePreStop = Maybe V1Handler
forall a. Maybe a
Nothing
  }

-- ** V1LimitRange
-- | V1LimitRange
-- LimitRange sets resource usage limits for each kind of resource in a Namespace.
data V1LimitRange = V1LimitRange
  { V1LimitRange -> Maybe Text
v1LimitRangeApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1LimitRange -> Maybe Text
v1LimitRangeKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1LimitRange -> Maybe V1ObjectMeta
v1LimitRangeMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1LimitRange -> Maybe V1LimitRangeSpec
v1LimitRangeSpec :: !(Maybe V1LimitRangeSpec) -- ^ "spec"
  } deriving (Int -> V1LimitRange -> ShowS
[V1LimitRange] -> ShowS
V1LimitRange -> String
(Int -> V1LimitRange -> ShowS)
-> (V1LimitRange -> String)
-> ([V1LimitRange] -> ShowS)
-> Show V1LimitRange
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1LimitRange] -> ShowS
$cshowList :: [V1LimitRange] -> ShowS
show :: V1LimitRange -> String
$cshow :: V1LimitRange -> String
showsPrec :: Int -> V1LimitRange -> ShowS
$cshowsPrec :: Int -> V1LimitRange -> ShowS
P.Show, V1LimitRange -> V1LimitRange -> Bool
(V1LimitRange -> V1LimitRange -> Bool)
-> (V1LimitRange -> V1LimitRange -> Bool) -> Eq V1LimitRange
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1LimitRange -> V1LimitRange -> Bool
$c/= :: V1LimitRange -> V1LimitRange -> Bool
== :: V1LimitRange -> V1LimitRange -> Bool
$c== :: V1LimitRange -> V1LimitRange -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1LimitRange
instance A.FromJSON V1LimitRange where
  parseJSON :: Value -> Parser V1LimitRange
parseJSON = String
-> (Object -> Parser V1LimitRange) -> Value -> Parser V1LimitRange
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1LimitRange" ((Object -> Parser V1LimitRange) -> Value -> Parser V1LimitRange)
-> (Object -> Parser V1LimitRange) -> Value -> Parser V1LimitRange
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1LimitRangeSpec
-> V1LimitRange
V1LimitRange
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1LimitRangeSpec
 -> V1LimitRange)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta -> Maybe V1LimitRangeSpec -> V1LimitRange)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta -> Maybe V1LimitRangeSpec -> V1LimitRange)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta -> Maybe V1LimitRangeSpec -> V1LimitRange)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta -> Maybe V1LimitRangeSpec -> V1LimitRange)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe V1LimitRangeSpec -> V1LimitRange)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe V1LimitRangeSpec -> V1LimitRange)
-> Parser (Maybe V1LimitRangeSpec) -> Parser V1LimitRange
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LimitRangeSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")

-- | ToJSON V1LimitRange
instance A.ToJSON V1LimitRange where
  toJSON :: V1LimitRange -> Value
toJSON V1LimitRange {Maybe Text
Maybe V1ObjectMeta
Maybe V1LimitRangeSpec
v1LimitRangeSpec :: Maybe V1LimitRangeSpec
v1LimitRangeMetadata :: Maybe V1ObjectMeta
v1LimitRangeKind :: Maybe Text
v1LimitRangeApiVersion :: Maybe Text
v1LimitRangeSpec :: V1LimitRange -> Maybe V1LimitRangeSpec
v1LimitRangeMetadata :: V1LimitRange -> Maybe V1ObjectMeta
v1LimitRangeKind :: V1LimitRange -> Maybe Text
v1LimitRangeApiVersion :: V1LimitRange -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1LimitRangeApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1LimitRangeKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1LimitRangeMetadata
      , Text
"spec" Text -> Maybe V1LimitRangeSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LimitRangeSpec
v1LimitRangeSpec
      ]


-- | Construct a value of type 'V1LimitRange' (by applying it's required fields, if any)
mkV1LimitRange
  :: V1LimitRange
mkV1LimitRange :: V1LimitRange
mkV1LimitRange =
  V1LimitRange :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1LimitRangeSpec
-> V1LimitRange
V1LimitRange
  { v1LimitRangeApiVersion :: Maybe Text
v1LimitRangeApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1LimitRangeKind :: Maybe Text
v1LimitRangeKind = Maybe Text
forall a. Maybe a
Nothing
  , v1LimitRangeMetadata :: Maybe V1ObjectMeta
v1LimitRangeMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1LimitRangeSpec :: Maybe V1LimitRangeSpec
v1LimitRangeSpec = Maybe V1LimitRangeSpec
forall a. Maybe a
Nothing
  }

-- ** V1LimitRangeItem
-- | V1LimitRangeItem
-- LimitRangeItem defines a min/max usage limit for any resource that matches on kind.
data V1LimitRangeItem = V1LimitRangeItem
  { V1LimitRangeItem -> Maybe (Map String Quantity)
v1LimitRangeItemDefault :: !(Maybe (Map.Map String Quantity)) -- ^ "default" - Default resource requirement limit value by resource name if resource limit is omitted.
  , V1LimitRangeItem -> Maybe (Map String Quantity)
v1LimitRangeItemDefaultRequest :: !(Maybe (Map.Map String Quantity)) -- ^ "defaultRequest" - DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
  , V1LimitRangeItem -> Maybe (Map String Quantity)
v1LimitRangeItemMax :: !(Maybe (Map.Map String Quantity)) -- ^ "max" - Max usage constraints on this kind by resource name.
  , V1LimitRangeItem -> Maybe (Map String Quantity)
v1LimitRangeItemMaxLimitRequestRatio :: !(Maybe (Map.Map String Quantity)) -- ^ "maxLimitRequestRatio" - MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
  , V1LimitRangeItem -> Maybe (Map String Quantity)
v1LimitRangeItemMin :: !(Maybe (Map.Map String Quantity)) -- ^ "min" - Min usage constraints on this kind by resource name.
  , V1LimitRangeItem -> Maybe Text
v1LimitRangeItemType :: !(Maybe Text) -- ^ "type" - Type of resource that this limit applies to.
  } deriving (Int -> V1LimitRangeItem -> ShowS
[V1LimitRangeItem] -> ShowS
V1LimitRangeItem -> String
(Int -> V1LimitRangeItem -> ShowS)
-> (V1LimitRangeItem -> String)
-> ([V1LimitRangeItem] -> ShowS)
-> Show V1LimitRangeItem
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1LimitRangeItem] -> ShowS
$cshowList :: [V1LimitRangeItem] -> ShowS
show :: V1LimitRangeItem -> String
$cshow :: V1LimitRangeItem -> String
showsPrec :: Int -> V1LimitRangeItem -> ShowS
$cshowsPrec :: Int -> V1LimitRangeItem -> ShowS
P.Show, V1LimitRangeItem -> V1LimitRangeItem -> Bool
(V1LimitRangeItem -> V1LimitRangeItem -> Bool)
-> (V1LimitRangeItem -> V1LimitRangeItem -> Bool)
-> Eq V1LimitRangeItem
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1LimitRangeItem -> V1LimitRangeItem -> Bool
$c/= :: V1LimitRangeItem -> V1LimitRangeItem -> Bool
== :: V1LimitRangeItem -> V1LimitRangeItem -> Bool
$c== :: V1LimitRangeItem -> V1LimitRangeItem -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1LimitRangeItem
instance A.FromJSON V1LimitRangeItem where
  parseJSON :: Value -> Parser V1LimitRangeItem
parseJSON = String
-> (Object -> Parser V1LimitRangeItem)
-> Value
-> Parser V1LimitRangeItem
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1LimitRangeItem" ((Object -> Parser V1LimitRangeItem)
 -> Value -> Parser V1LimitRangeItem)
-> (Object -> Parser V1LimitRangeItem)
-> Value
-> Parser V1LimitRangeItem
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe (Map String Quantity)
-> Maybe (Map String Quantity)
-> Maybe (Map String Quantity)
-> Maybe (Map String Quantity)
-> Maybe (Map String Quantity)
-> Maybe Text
-> V1LimitRangeItem
V1LimitRangeItem
      (Maybe (Map String Quantity)
 -> Maybe (Map String Quantity)
 -> Maybe (Map String Quantity)
 -> Maybe (Map String Quantity)
 -> Maybe (Map String Quantity)
 -> Maybe Text
 -> V1LimitRangeItem)
-> Parser (Maybe (Map String Quantity))
-> Parser
     (Maybe (Map String Quantity)
      -> Maybe (Map String Quantity)
      -> Maybe (Map String Quantity)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> V1LimitRangeItem)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"default")
      Parser
  (Maybe (Map String Quantity)
   -> Maybe (Map String Quantity)
   -> Maybe (Map String Quantity)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> V1LimitRangeItem)
-> Parser (Maybe (Map String Quantity))
-> Parser
     (Maybe (Map String Quantity)
      -> Maybe (Map String Quantity)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> V1LimitRangeItem)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"defaultRequest")
      Parser
  (Maybe (Map String Quantity)
   -> Maybe (Map String Quantity)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> V1LimitRangeItem)
-> Parser (Maybe (Map String Quantity))
-> Parser
     (Maybe (Map String Quantity)
      -> Maybe (Map String Quantity) -> Maybe Text -> V1LimitRangeItem)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"max")
      Parser
  (Maybe (Map String Quantity)
   -> Maybe (Map String Quantity) -> Maybe Text -> V1LimitRangeItem)
-> Parser (Maybe (Map String Quantity))
-> Parser
     (Maybe (Map String Quantity) -> Maybe Text -> V1LimitRangeItem)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxLimitRequestRatio")
      Parser
  (Maybe (Map String Quantity) -> Maybe Text -> V1LimitRangeItem)
-> Parser (Maybe (Map String Quantity))
-> Parser (Maybe Text -> V1LimitRangeItem)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"min")
      Parser (Maybe Text -> V1LimitRangeItem)
-> Parser (Maybe Text) -> Parser V1LimitRangeItem
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")

-- | ToJSON V1LimitRangeItem
instance A.ToJSON V1LimitRangeItem where
  toJSON :: V1LimitRangeItem -> Value
toJSON V1LimitRangeItem {Maybe Text
Maybe (Map String Quantity)
v1LimitRangeItemType :: Maybe Text
v1LimitRangeItemMin :: Maybe (Map String Quantity)
v1LimitRangeItemMaxLimitRequestRatio :: Maybe (Map String Quantity)
v1LimitRangeItemMax :: Maybe (Map String Quantity)
v1LimitRangeItemDefaultRequest :: Maybe (Map String Quantity)
v1LimitRangeItemDefault :: Maybe (Map String Quantity)
v1LimitRangeItemType :: V1LimitRangeItem -> Maybe Text
v1LimitRangeItemMin :: V1LimitRangeItem -> Maybe (Map String Quantity)
v1LimitRangeItemMaxLimitRequestRatio :: V1LimitRangeItem -> Maybe (Map String Quantity)
v1LimitRangeItemMax :: V1LimitRangeItem -> Maybe (Map String Quantity)
v1LimitRangeItemDefaultRequest :: V1LimitRangeItem -> Maybe (Map String Quantity)
v1LimitRangeItemDefault :: V1LimitRangeItem -> Maybe (Map String Quantity)
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"default" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1LimitRangeItemDefault
      , Text
"defaultRequest" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1LimitRangeItemDefaultRequest
      , Text
"max" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1LimitRangeItemMax
      , Text
"maxLimitRequestRatio" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1LimitRangeItemMaxLimitRequestRatio
      , Text
"min" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1LimitRangeItemMin
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1LimitRangeItemType
      ]


-- | Construct a value of type 'V1LimitRangeItem' (by applying it's required fields, if any)
mkV1LimitRangeItem
  :: V1LimitRangeItem
mkV1LimitRangeItem :: V1LimitRangeItem
mkV1LimitRangeItem =
  V1LimitRangeItem :: Maybe (Map String Quantity)
-> Maybe (Map String Quantity)
-> Maybe (Map String Quantity)
-> Maybe (Map String Quantity)
-> Maybe (Map String Quantity)
-> Maybe Text
-> V1LimitRangeItem
V1LimitRangeItem
  { v1LimitRangeItemDefault :: Maybe (Map String Quantity)
v1LimitRangeItemDefault = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  , v1LimitRangeItemDefaultRequest :: Maybe (Map String Quantity)
v1LimitRangeItemDefaultRequest = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  , v1LimitRangeItemMax :: Maybe (Map String Quantity)
v1LimitRangeItemMax = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  , v1LimitRangeItemMaxLimitRequestRatio :: Maybe (Map String Quantity)
v1LimitRangeItemMaxLimitRequestRatio = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  , v1LimitRangeItemMin :: Maybe (Map String Quantity)
v1LimitRangeItemMin = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  , v1LimitRangeItemType :: Maybe Text
v1LimitRangeItemType = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1LimitRangeList
-- | V1LimitRangeList
-- LimitRangeList is a list of LimitRange items.
data V1LimitRangeList = V1LimitRangeList
  { V1LimitRangeList -> Maybe Text
v1LimitRangeListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1LimitRangeList -> [V1LimitRange]
v1LimitRangeListItems :: !([V1LimitRange]) -- ^ /Required/ "items" - Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
  , V1LimitRangeList -> Maybe Text
v1LimitRangeListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1LimitRangeList -> Maybe V1ListMeta
v1LimitRangeListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1LimitRangeList -> ShowS
[V1LimitRangeList] -> ShowS
V1LimitRangeList -> String
(Int -> V1LimitRangeList -> ShowS)
-> (V1LimitRangeList -> String)
-> ([V1LimitRangeList] -> ShowS)
-> Show V1LimitRangeList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1LimitRangeList] -> ShowS
$cshowList :: [V1LimitRangeList] -> ShowS
show :: V1LimitRangeList -> String
$cshow :: V1LimitRangeList -> String
showsPrec :: Int -> V1LimitRangeList -> ShowS
$cshowsPrec :: Int -> V1LimitRangeList -> ShowS
P.Show, V1LimitRangeList -> V1LimitRangeList -> Bool
(V1LimitRangeList -> V1LimitRangeList -> Bool)
-> (V1LimitRangeList -> V1LimitRangeList -> Bool)
-> Eq V1LimitRangeList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1LimitRangeList -> V1LimitRangeList -> Bool
$c/= :: V1LimitRangeList -> V1LimitRangeList -> Bool
== :: V1LimitRangeList -> V1LimitRangeList -> Bool
$c== :: V1LimitRangeList -> V1LimitRangeList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1LimitRangeList
instance A.FromJSON V1LimitRangeList where
  parseJSON :: Value -> Parser V1LimitRangeList
parseJSON = String
-> (Object -> Parser V1LimitRangeList)
-> Value
-> Parser V1LimitRangeList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1LimitRangeList" ((Object -> Parser V1LimitRangeList)
 -> Value -> Parser V1LimitRangeList)
-> (Object -> Parser V1LimitRangeList)
-> Value
-> Parser V1LimitRangeList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1LimitRange]
-> Maybe Text
-> Maybe V1ListMeta
-> V1LimitRangeList
V1LimitRangeList
      (Maybe Text
 -> [V1LimitRange]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1LimitRangeList)
-> Parser (Maybe Text)
-> Parser
     ([V1LimitRange]
      -> Maybe Text -> Maybe V1ListMeta -> V1LimitRangeList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1LimitRange]
   -> Maybe Text -> Maybe V1ListMeta -> V1LimitRangeList)
-> Parser [V1LimitRange]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1LimitRangeList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1LimitRange]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1LimitRangeList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1LimitRangeList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1LimitRangeList)
-> Parser (Maybe V1ListMeta) -> Parser V1LimitRangeList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1LimitRangeList
instance A.ToJSON V1LimitRangeList where
  toJSON :: V1LimitRangeList -> Value
toJSON V1LimitRangeList {[V1LimitRange]
Maybe Text
Maybe V1ListMeta
v1LimitRangeListMetadata :: Maybe V1ListMeta
v1LimitRangeListKind :: Maybe Text
v1LimitRangeListItems :: [V1LimitRange]
v1LimitRangeListApiVersion :: Maybe Text
v1LimitRangeListMetadata :: V1LimitRangeList -> Maybe V1ListMeta
v1LimitRangeListKind :: V1LimitRangeList -> Maybe Text
v1LimitRangeListItems :: V1LimitRangeList -> [V1LimitRange]
v1LimitRangeListApiVersion :: V1LimitRangeList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1LimitRangeListApiVersion
      , Text
"items" Text -> [V1LimitRange] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1LimitRange]
v1LimitRangeListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1LimitRangeListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1LimitRangeListMetadata
      ]


-- | Construct a value of type 'V1LimitRangeList' (by applying it's required fields, if any)
mkV1LimitRangeList
  :: [V1LimitRange] -- ^ 'v1LimitRangeListItems': Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
  -> V1LimitRangeList
mkV1LimitRangeList :: [V1LimitRange] -> V1LimitRangeList
mkV1LimitRangeList [V1LimitRange]
v1LimitRangeListItems =
  V1LimitRangeList :: Maybe Text
-> [V1LimitRange]
-> Maybe Text
-> Maybe V1ListMeta
-> V1LimitRangeList
V1LimitRangeList
  { v1LimitRangeListApiVersion :: Maybe Text
v1LimitRangeListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1LimitRange]
v1LimitRangeListItems :: [V1LimitRange]
v1LimitRangeListItems :: [V1LimitRange]
v1LimitRangeListItems
  , v1LimitRangeListKind :: Maybe Text
v1LimitRangeListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1LimitRangeListMetadata :: Maybe V1ListMeta
v1LimitRangeListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1LimitRangeSpec
-- | V1LimitRangeSpec
-- LimitRangeSpec defines a min/max usage limit for resources that match on kind.
data V1LimitRangeSpec = V1LimitRangeSpec
  { V1LimitRangeSpec -> [V1LimitRangeItem]
v1LimitRangeSpecLimits :: !([V1LimitRangeItem]) -- ^ /Required/ "limits" - Limits is the list of LimitRangeItem objects that are enforced.
  } deriving (Int -> V1LimitRangeSpec -> ShowS
[V1LimitRangeSpec] -> ShowS
V1LimitRangeSpec -> String
(Int -> V1LimitRangeSpec -> ShowS)
-> (V1LimitRangeSpec -> String)
-> ([V1LimitRangeSpec] -> ShowS)
-> Show V1LimitRangeSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1LimitRangeSpec] -> ShowS
$cshowList :: [V1LimitRangeSpec] -> ShowS
show :: V1LimitRangeSpec -> String
$cshow :: V1LimitRangeSpec -> String
showsPrec :: Int -> V1LimitRangeSpec -> ShowS
$cshowsPrec :: Int -> V1LimitRangeSpec -> ShowS
P.Show, V1LimitRangeSpec -> V1LimitRangeSpec -> Bool
(V1LimitRangeSpec -> V1LimitRangeSpec -> Bool)
-> (V1LimitRangeSpec -> V1LimitRangeSpec -> Bool)
-> Eq V1LimitRangeSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1LimitRangeSpec -> V1LimitRangeSpec -> Bool
$c/= :: V1LimitRangeSpec -> V1LimitRangeSpec -> Bool
== :: V1LimitRangeSpec -> V1LimitRangeSpec -> Bool
$c== :: V1LimitRangeSpec -> V1LimitRangeSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1LimitRangeSpec
instance A.FromJSON V1LimitRangeSpec where
  parseJSON :: Value -> Parser V1LimitRangeSpec
parseJSON = String
-> (Object -> Parser V1LimitRangeSpec)
-> Value
-> Parser V1LimitRangeSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1LimitRangeSpec" ((Object -> Parser V1LimitRangeSpec)
 -> Value -> Parser V1LimitRangeSpec)
-> (Object -> Parser V1LimitRangeSpec)
-> Value
-> Parser V1LimitRangeSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    [V1LimitRangeItem] -> V1LimitRangeSpec
V1LimitRangeSpec
      ([V1LimitRangeItem] -> V1LimitRangeSpec)
-> Parser [V1LimitRangeItem] -> Parser V1LimitRangeSpec
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser [V1LimitRangeItem]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"limits")

-- | ToJSON V1LimitRangeSpec
instance A.ToJSON V1LimitRangeSpec where
  toJSON :: V1LimitRangeSpec -> Value
toJSON V1LimitRangeSpec {[V1LimitRangeItem]
v1LimitRangeSpecLimits :: [V1LimitRangeItem]
v1LimitRangeSpecLimits :: V1LimitRangeSpec -> [V1LimitRangeItem]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"limits" Text -> [V1LimitRangeItem] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1LimitRangeItem]
v1LimitRangeSpecLimits
      ]


-- | Construct a value of type 'V1LimitRangeSpec' (by applying it's required fields, if any)
mkV1LimitRangeSpec
  :: [V1LimitRangeItem] -- ^ 'v1LimitRangeSpecLimits': Limits is the list of LimitRangeItem objects that are enforced.
  -> V1LimitRangeSpec
mkV1LimitRangeSpec :: [V1LimitRangeItem] -> V1LimitRangeSpec
mkV1LimitRangeSpec [V1LimitRangeItem]
v1LimitRangeSpecLimits =
  V1LimitRangeSpec :: [V1LimitRangeItem] -> V1LimitRangeSpec
V1LimitRangeSpec
  { [V1LimitRangeItem]
v1LimitRangeSpecLimits :: [V1LimitRangeItem]
v1LimitRangeSpecLimits :: [V1LimitRangeItem]
v1LimitRangeSpecLimits
  }

-- ** V1ListMeta
-- | V1ListMeta
-- ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.
data V1ListMeta = V1ListMeta
  { V1ListMeta -> Maybe Text
v1ListMetaContinue :: !(Maybe Text) -- ^ "continue" - continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.
  , V1ListMeta -> Maybe Integer
v1ListMetaRemainingItemCount :: !(Maybe Integer) -- ^ "remainingItemCount" - remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.
  , V1ListMeta -> Maybe Text
v1ListMetaResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - String that identifies the server&#39;s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
  , V1ListMeta -> Maybe Text
v1ListMetaSelfLink :: !(Maybe Text) -- ^ "selfLink" - selfLink is a URL representing this object. Populated by the system. Read-only.  DEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.
  } deriving (Int -> V1ListMeta -> ShowS
[V1ListMeta] -> ShowS
V1ListMeta -> String
(Int -> V1ListMeta -> ShowS)
-> (V1ListMeta -> String)
-> ([V1ListMeta] -> ShowS)
-> Show V1ListMeta
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ListMeta] -> ShowS
$cshowList :: [V1ListMeta] -> ShowS
show :: V1ListMeta -> String
$cshow :: V1ListMeta -> String
showsPrec :: Int -> V1ListMeta -> ShowS
$cshowsPrec :: Int -> V1ListMeta -> ShowS
P.Show, V1ListMeta -> V1ListMeta -> Bool
(V1ListMeta -> V1ListMeta -> Bool)
-> (V1ListMeta -> V1ListMeta -> Bool) -> Eq V1ListMeta
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ListMeta -> V1ListMeta -> Bool
$c/= :: V1ListMeta -> V1ListMeta -> Bool
== :: V1ListMeta -> V1ListMeta -> Bool
$c== :: V1ListMeta -> V1ListMeta -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ListMeta
instance A.FromJSON V1ListMeta where
  parseJSON :: Value -> Parser V1ListMeta
parseJSON = String
-> (Object -> Parser V1ListMeta) -> Value -> Parser V1ListMeta
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ListMeta" ((Object -> Parser V1ListMeta) -> Value -> Parser V1ListMeta)
-> (Object -> Parser V1ListMeta) -> Value -> Parser V1ListMeta
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Integer -> Maybe Text -> Maybe Text -> V1ListMeta
V1ListMeta
      (Maybe Text
 -> Maybe Integer -> Maybe Text -> Maybe Text -> V1ListMeta)
-> Parser (Maybe Text)
-> Parser (Maybe Integer -> Maybe Text -> Maybe Text -> V1ListMeta)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"continue")
      Parser (Maybe Integer -> Maybe Text -> Maybe Text -> V1ListMeta)
-> Parser (Maybe Integer)
-> Parser (Maybe Text -> Maybe Text -> V1ListMeta)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"remainingItemCount")
      Parser (Maybe Text -> Maybe Text -> V1ListMeta)
-> Parser (Maybe Text) -> Parser (Maybe Text -> V1ListMeta)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resourceVersion")
      Parser (Maybe Text -> V1ListMeta)
-> Parser (Maybe Text) -> Parser V1ListMeta
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selfLink")

-- | ToJSON V1ListMeta
instance A.ToJSON V1ListMeta where
  toJSON :: V1ListMeta -> Value
toJSON V1ListMeta {Maybe Integer
Maybe Text
v1ListMetaSelfLink :: Maybe Text
v1ListMetaResourceVersion :: Maybe Text
v1ListMetaRemainingItemCount :: Maybe Integer
v1ListMetaContinue :: Maybe Text
v1ListMetaSelfLink :: V1ListMeta -> Maybe Text
v1ListMetaResourceVersion :: V1ListMeta -> Maybe Text
v1ListMetaRemainingItemCount :: V1ListMeta -> Maybe Integer
v1ListMetaContinue :: V1ListMeta -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"continue" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ListMetaContinue
      , Text
"remainingItemCount" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1ListMetaRemainingItemCount
      , Text
"resourceVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ListMetaResourceVersion
      , Text
"selfLink" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ListMetaSelfLink
      ]


-- | Construct a value of type 'V1ListMeta' (by applying it's required fields, if any)
mkV1ListMeta
  :: V1ListMeta
mkV1ListMeta :: V1ListMeta
mkV1ListMeta =
  V1ListMeta :: Maybe Text
-> Maybe Integer -> Maybe Text -> Maybe Text -> V1ListMeta
V1ListMeta
  { v1ListMetaContinue :: Maybe Text
v1ListMetaContinue = Maybe Text
forall a. Maybe a
Nothing
  , v1ListMetaRemainingItemCount :: Maybe Integer
v1ListMetaRemainingItemCount = Maybe Integer
forall a. Maybe a
Nothing
  , v1ListMetaResourceVersion :: Maybe Text
v1ListMetaResourceVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ListMetaSelfLink :: Maybe Text
v1ListMetaSelfLink = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1LoadBalancerIngress
-- | V1LoadBalancerIngress
-- LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.
data V1LoadBalancerIngress = V1LoadBalancerIngress
  { V1LoadBalancerIngress -> Maybe Text
v1LoadBalancerIngressHostname :: !(Maybe Text) -- ^ "hostname" - Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)
  , V1LoadBalancerIngress -> Maybe Text
v1LoadBalancerIngressIp :: !(Maybe Text) -- ^ "ip" - IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)
  } deriving (Int -> V1LoadBalancerIngress -> ShowS
[V1LoadBalancerIngress] -> ShowS
V1LoadBalancerIngress -> String
(Int -> V1LoadBalancerIngress -> ShowS)
-> (V1LoadBalancerIngress -> String)
-> ([V1LoadBalancerIngress] -> ShowS)
-> Show V1LoadBalancerIngress
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1LoadBalancerIngress] -> ShowS
$cshowList :: [V1LoadBalancerIngress] -> ShowS
show :: V1LoadBalancerIngress -> String
$cshow :: V1LoadBalancerIngress -> String
showsPrec :: Int -> V1LoadBalancerIngress -> ShowS
$cshowsPrec :: Int -> V1LoadBalancerIngress -> ShowS
P.Show, V1LoadBalancerIngress -> V1LoadBalancerIngress -> Bool
(V1LoadBalancerIngress -> V1LoadBalancerIngress -> Bool)
-> (V1LoadBalancerIngress -> V1LoadBalancerIngress -> Bool)
-> Eq V1LoadBalancerIngress
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1LoadBalancerIngress -> V1LoadBalancerIngress -> Bool
$c/= :: V1LoadBalancerIngress -> V1LoadBalancerIngress -> Bool
== :: V1LoadBalancerIngress -> V1LoadBalancerIngress -> Bool
$c== :: V1LoadBalancerIngress -> V1LoadBalancerIngress -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1LoadBalancerIngress
instance A.FromJSON V1LoadBalancerIngress where
  parseJSON :: Value -> Parser V1LoadBalancerIngress
parseJSON = String
-> (Object -> Parser V1LoadBalancerIngress)
-> Value
-> Parser V1LoadBalancerIngress
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1LoadBalancerIngress" ((Object -> Parser V1LoadBalancerIngress)
 -> Value -> Parser V1LoadBalancerIngress)
-> (Object -> Parser V1LoadBalancerIngress)
-> Value
-> Parser V1LoadBalancerIngress
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Text -> V1LoadBalancerIngress
V1LoadBalancerIngress
      (Maybe Text -> Maybe Text -> V1LoadBalancerIngress)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1LoadBalancerIngress)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostname")
      Parser (Maybe Text -> V1LoadBalancerIngress)
-> Parser (Maybe Text) -> Parser V1LoadBalancerIngress
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ip")

-- | ToJSON V1LoadBalancerIngress
instance A.ToJSON V1LoadBalancerIngress where
  toJSON :: V1LoadBalancerIngress -> Value
toJSON V1LoadBalancerIngress {Maybe Text
v1LoadBalancerIngressIp :: Maybe Text
v1LoadBalancerIngressHostname :: Maybe Text
v1LoadBalancerIngressIp :: V1LoadBalancerIngress -> Maybe Text
v1LoadBalancerIngressHostname :: V1LoadBalancerIngress -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"hostname" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1LoadBalancerIngressHostname
      , Text
"ip" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1LoadBalancerIngressIp
      ]


-- | Construct a value of type 'V1LoadBalancerIngress' (by applying it's required fields, if any)
mkV1LoadBalancerIngress
  :: V1LoadBalancerIngress
mkV1LoadBalancerIngress :: V1LoadBalancerIngress
mkV1LoadBalancerIngress =
  V1LoadBalancerIngress :: Maybe Text -> Maybe Text -> V1LoadBalancerIngress
V1LoadBalancerIngress
  { v1LoadBalancerIngressHostname :: Maybe Text
v1LoadBalancerIngressHostname = Maybe Text
forall a. Maybe a
Nothing
  , v1LoadBalancerIngressIp :: Maybe Text
v1LoadBalancerIngressIp = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1LoadBalancerStatus
-- | V1LoadBalancerStatus
-- LoadBalancerStatus represents the status of a load-balancer.
data V1LoadBalancerStatus = V1LoadBalancerStatus
  { V1LoadBalancerStatus -> Maybe [V1LoadBalancerIngress]
v1LoadBalancerStatusIngress :: !(Maybe [V1LoadBalancerIngress]) -- ^ "ingress" - Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.
  } deriving (Int -> V1LoadBalancerStatus -> ShowS
[V1LoadBalancerStatus] -> ShowS
V1LoadBalancerStatus -> String
(Int -> V1LoadBalancerStatus -> ShowS)
-> (V1LoadBalancerStatus -> String)
-> ([V1LoadBalancerStatus] -> ShowS)
-> Show V1LoadBalancerStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1LoadBalancerStatus] -> ShowS
$cshowList :: [V1LoadBalancerStatus] -> ShowS
show :: V1LoadBalancerStatus -> String
$cshow :: V1LoadBalancerStatus -> String
showsPrec :: Int -> V1LoadBalancerStatus -> ShowS
$cshowsPrec :: Int -> V1LoadBalancerStatus -> ShowS
P.Show, V1LoadBalancerStatus -> V1LoadBalancerStatus -> Bool
(V1LoadBalancerStatus -> V1LoadBalancerStatus -> Bool)
-> (V1LoadBalancerStatus -> V1LoadBalancerStatus -> Bool)
-> Eq V1LoadBalancerStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1LoadBalancerStatus -> V1LoadBalancerStatus -> Bool
$c/= :: V1LoadBalancerStatus -> V1LoadBalancerStatus -> Bool
== :: V1LoadBalancerStatus -> V1LoadBalancerStatus -> Bool
$c== :: V1LoadBalancerStatus -> V1LoadBalancerStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1LoadBalancerStatus
instance A.FromJSON V1LoadBalancerStatus where
  parseJSON :: Value -> Parser V1LoadBalancerStatus
parseJSON = String
-> (Object -> Parser V1LoadBalancerStatus)
-> Value
-> Parser V1LoadBalancerStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1LoadBalancerStatus" ((Object -> Parser V1LoadBalancerStatus)
 -> Value -> Parser V1LoadBalancerStatus)
-> (Object -> Parser V1LoadBalancerStatus)
-> Value
-> Parser V1LoadBalancerStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1LoadBalancerIngress] -> V1LoadBalancerStatus
V1LoadBalancerStatus
      (Maybe [V1LoadBalancerIngress] -> V1LoadBalancerStatus)
-> Parser (Maybe [V1LoadBalancerIngress])
-> Parser V1LoadBalancerStatus
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1LoadBalancerIngress])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ingress")

-- | ToJSON V1LoadBalancerStatus
instance A.ToJSON V1LoadBalancerStatus where
  toJSON :: V1LoadBalancerStatus -> Value
toJSON V1LoadBalancerStatus {Maybe [V1LoadBalancerIngress]
v1LoadBalancerStatusIngress :: Maybe [V1LoadBalancerIngress]
v1LoadBalancerStatusIngress :: V1LoadBalancerStatus -> Maybe [V1LoadBalancerIngress]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"ingress" Text -> Maybe [V1LoadBalancerIngress] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1LoadBalancerIngress]
v1LoadBalancerStatusIngress
      ]


-- | Construct a value of type 'V1LoadBalancerStatus' (by applying it's required fields, if any)
mkV1LoadBalancerStatus
  :: V1LoadBalancerStatus
mkV1LoadBalancerStatus :: V1LoadBalancerStatus
mkV1LoadBalancerStatus =
  V1LoadBalancerStatus :: Maybe [V1LoadBalancerIngress] -> V1LoadBalancerStatus
V1LoadBalancerStatus
  { v1LoadBalancerStatusIngress :: Maybe [V1LoadBalancerIngress]
v1LoadBalancerStatusIngress = Maybe [V1LoadBalancerIngress]
forall a. Maybe a
Nothing
  }

-- ** V1LocalObjectReference
-- | V1LocalObjectReference
-- LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
data V1LocalObjectReference = V1LocalObjectReference
  { V1LocalObjectReference -> Maybe Text
v1LocalObjectReferenceName :: !(Maybe Text) -- ^ "name" - Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  } deriving (Int -> V1LocalObjectReference -> ShowS
[V1LocalObjectReference] -> ShowS
V1LocalObjectReference -> String
(Int -> V1LocalObjectReference -> ShowS)
-> (V1LocalObjectReference -> String)
-> ([V1LocalObjectReference] -> ShowS)
-> Show V1LocalObjectReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1LocalObjectReference] -> ShowS
$cshowList :: [V1LocalObjectReference] -> ShowS
show :: V1LocalObjectReference -> String
$cshow :: V1LocalObjectReference -> String
showsPrec :: Int -> V1LocalObjectReference -> ShowS
$cshowsPrec :: Int -> V1LocalObjectReference -> ShowS
P.Show, V1LocalObjectReference -> V1LocalObjectReference -> Bool
(V1LocalObjectReference -> V1LocalObjectReference -> Bool)
-> (V1LocalObjectReference -> V1LocalObjectReference -> Bool)
-> Eq V1LocalObjectReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1LocalObjectReference -> V1LocalObjectReference -> Bool
$c/= :: V1LocalObjectReference -> V1LocalObjectReference -> Bool
== :: V1LocalObjectReference -> V1LocalObjectReference -> Bool
$c== :: V1LocalObjectReference -> V1LocalObjectReference -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1LocalObjectReference
instance A.FromJSON V1LocalObjectReference where
  parseJSON :: Value -> Parser V1LocalObjectReference
parseJSON = String
-> (Object -> Parser V1LocalObjectReference)
-> Value
-> Parser V1LocalObjectReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1LocalObjectReference" ((Object -> Parser V1LocalObjectReference)
 -> Value -> Parser V1LocalObjectReference)
-> (Object -> Parser V1LocalObjectReference)
-> Value
-> Parser V1LocalObjectReference
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> V1LocalObjectReference
V1LocalObjectReference
      (Maybe Text -> V1LocalObjectReference)
-> Parser (Maybe Text) -> Parser V1LocalObjectReference
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")

-- | ToJSON V1LocalObjectReference
instance A.ToJSON V1LocalObjectReference where
  toJSON :: V1LocalObjectReference -> Value
toJSON V1LocalObjectReference {Maybe Text
v1LocalObjectReferenceName :: Maybe Text
v1LocalObjectReferenceName :: V1LocalObjectReference -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1LocalObjectReferenceName
      ]


-- | Construct a value of type 'V1LocalObjectReference' (by applying it's required fields, if any)
mkV1LocalObjectReference
  :: V1LocalObjectReference
mkV1LocalObjectReference :: V1LocalObjectReference
mkV1LocalObjectReference =
  V1LocalObjectReference :: Maybe Text -> V1LocalObjectReference
V1LocalObjectReference
  { v1LocalObjectReferenceName :: Maybe Text
v1LocalObjectReferenceName = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1LocalSubjectAccessReview
-- | V1LocalSubjectAccessReview
-- LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.
data V1LocalSubjectAccessReview = V1LocalSubjectAccessReview
  { V1LocalSubjectAccessReview -> Maybe Text
v1LocalSubjectAccessReviewApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1LocalSubjectAccessReview -> Maybe Text
v1LocalSubjectAccessReviewKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1LocalSubjectAccessReview -> Maybe V1ObjectMeta
v1LocalSubjectAccessReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1LocalSubjectAccessReview -> V1SubjectAccessReviewSpec
v1LocalSubjectAccessReviewSpec :: !(V1SubjectAccessReviewSpec) -- ^ /Required/ "spec"
  , V1LocalSubjectAccessReview -> Maybe V1SubjectAccessReviewStatus
v1LocalSubjectAccessReviewStatus :: !(Maybe V1SubjectAccessReviewStatus) -- ^ "status"
  } deriving (Int -> V1LocalSubjectAccessReview -> ShowS
[V1LocalSubjectAccessReview] -> ShowS
V1LocalSubjectAccessReview -> String
(Int -> V1LocalSubjectAccessReview -> ShowS)
-> (V1LocalSubjectAccessReview -> String)
-> ([V1LocalSubjectAccessReview] -> ShowS)
-> Show V1LocalSubjectAccessReview
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1LocalSubjectAccessReview] -> ShowS
$cshowList :: [V1LocalSubjectAccessReview] -> ShowS
show :: V1LocalSubjectAccessReview -> String
$cshow :: V1LocalSubjectAccessReview -> String
showsPrec :: Int -> V1LocalSubjectAccessReview -> ShowS
$cshowsPrec :: Int -> V1LocalSubjectAccessReview -> ShowS
P.Show, V1LocalSubjectAccessReview -> V1LocalSubjectAccessReview -> Bool
(V1LocalSubjectAccessReview -> V1LocalSubjectAccessReview -> Bool)
-> (V1LocalSubjectAccessReview
    -> V1LocalSubjectAccessReview -> Bool)
-> Eq V1LocalSubjectAccessReview
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1LocalSubjectAccessReview -> V1LocalSubjectAccessReview -> Bool
$c/= :: V1LocalSubjectAccessReview -> V1LocalSubjectAccessReview -> Bool
== :: V1LocalSubjectAccessReview -> V1LocalSubjectAccessReview -> Bool
$c== :: V1LocalSubjectAccessReview -> V1LocalSubjectAccessReview -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1LocalSubjectAccessReview
instance A.FromJSON V1LocalSubjectAccessReview where
  parseJSON :: Value -> Parser V1LocalSubjectAccessReview
parseJSON = String
-> (Object -> Parser V1LocalSubjectAccessReview)
-> Value
-> Parser V1LocalSubjectAccessReview
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1LocalSubjectAccessReview" ((Object -> Parser V1LocalSubjectAccessReview)
 -> Value -> Parser V1LocalSubjectAccessReview)
-> (Object -> Parser V1LocalSubjectAccessReview)
-> Value
-> Parser V1LocalSubjectAccessReview
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1SubjectAccessReviewSpec
-> Maybe V1SubjectAccessReviewStatus
-> V1LocalSubjectAccessReview
V1LocalSubjectAccessReview
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1SubjectAccessReviewSpec
 -> Maybe V1SubjectAccessReviewStatus
 -> V1LocalSubjectAccessReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1SubjectAccessReviewSpec
      -> Maybe V1SubjectAccessReviewStatus
      -> V1LocalSubjectAccessReview)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1SubjectAccessReviewSpec
   -> Maybe V1SubjectAccessReviewStatus
   -> V1LocalSubjectAccessReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1SubjectAccessReviewSpec
      -> Maybe V1SubjectAccessReviewStatus
      -> V1LocalSubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1SubjectAccessReviewSpec
   -> Maybe V1SubjectAccessReviewStatus
   -> V1LocalSubjectAccessReview)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1SubjectAccessReviewSpec
      -> Maybe V1SubjectAccessReviewStatus -> V1LocalSubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1SubjectAccessReviewSpec
   -> Maybe V1SubjectAccessReviewStatus -> V1LocalSubjectAccessReview)
-> Parser V1SubjectAccessReviewSpec
-> Parser
     (Maybe V1SubjectAccessReviewStatus -> V1LocalSubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1SubjectAccessReviewSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")
      Parser
  (Maybe V1SubjectAccessReviewStatus -> V1LocalSubjectAccessReview)
-> Parser (Maybe V1SubjectAccessReviewStatus)
-> Parser V1LocalSubjectAccessReview
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SubjectAccessReviewStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1LocalSubjectAccessReview
instance A.ToJSON V1LocalSubjectAccessReview where
  toJSON :: V1LocalSubjectAccessReview -> Value
toJSON V1LocalSubjectAccessReview {Maybe Text
Maybe V1SubjectAccessReviewStatus
Maybe V1ObjectMeta
V1SubjectAccessReviewSpec
v1LocalSubjectAccessReviewStatus :: Maybe V1SubjectAccessReviewStatus
v1LocalSubjectAccessReviewSpec :: V1SubjectAccessReviewSpec
v1LocalSubjectAccessReviewMetadata :: Maybe V1ObjectMeta
v1LocalSubjectAccessReviewKind :: Maybe Text
v1LocalSubjectAccessReviewApiVersion :: Maybe Text
v1LocalSubjectAccessReviewStatus :: V1LocalSubjectAccessReview -> Maybe V1SubjectAccessReviewStatus
v1LocalSubjectAccessReviewSpec :: V1LocalSubjectAccessReview -> V1SubjectAccessReviewSpec
v1LocalSubjectAccessReviewMetadata :: V1LocalSubjectAccessReview -> Maybe V1ObjectMeta
v1LocalSubjectAccessReviewKind :: V1LocalSubjectAccessReview -> Maybe Text
v1LocalSubjectAccessReviewApiVersion :: V1LocalSubjectAccessReview -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1LocalSubjectAccessReviewApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1LocalSubjectAccessReviewKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1LocalSubjectAccessReviewMetadata
      , Text
"spec" Text -> V1SubjectAccessReviewSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1SubjectAccessReviewSpec
v1LocalSubjectAccessReviewSpec
      , Text
"status" Text -> Maybe V1SubjectAccessReviewStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SubjectAccessReviewStatus
v1LocalSubjectAccessReviewStatus
      ]


-- | Construct a value of type 'V1LocalSubjectAccessReview' (by applying it's required fields, if any)
mkV1LocalSubjectAccessReview
  :: V1SubjectAccessReviewSpec -- ^ 'v1LocalSubjectAccessReviewSpec' 
  -> V1LocalSubjectAccessReview
mkV1LocalSubjectAccessReview :: V1SubjectAccessReviewSpec -> V1LocalSubjectAccessReview
mkV1LocalSubjectAccessReview V1SubjectAccessReviewSpec
v1LocalSubjectAccessReviewSpec =
  V1LocalSubjectAccessReview :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1SubjectAccessReviewSpec
-> Maybe V1SubjectAccessReviewStatus
-> V1LocalSubjectAccessReview
V1LocalSubjectAccessReview
  { v1LocalSubjectAccessReviewApiVersion :: Maybe Text
v1LocalSubjectAccessReviewApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1LocalSubjectAccessReviewKind :: Maybe Text
v1LocalSubjectAccessReviewKind = Maybe Text
forall a. Maybe a
Nothing
  , v1LocalSubjectAccessReviewMetadata :: Maybe V1ObjectMeta
v1LocalSubjectAccessReviewMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1SubjectAccessReviewSpec
v1LocalSubjectAccessReviewSpec :: V1SubjectAccessReviewSpec
v1LocalSubjectAccessReviewSpec :: V1SubjectAccessReviewSpec
v1LocalSubjectAccessReviewSpec
  , v1LocalSubjectAccessReviewStatus :: Maybe V1SubjectAccessReviewStatus
v1LocalSubjectAccessReviewStatus = Maybe V1SubjectAccessReviewStatus
forall a. Maybe a
Nothing
  }

-- ** V1LocalVolumeSource
-- | V1LocalVolumeSource
-- Local represents directly-attached storage with node affinity (Beta feature)
data V1LocalVolumeSource = V1LocalVolumeSource
  { V1LocalVolumeSource -> Maybe Text
v1LocalVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. The default value is to auto-select a fileystem if unspecified.
  , V1LocalVolumeSource -> Text
v1LocalVolumeSourcePath :: !(Text) -- ^ /Required/ "path" - The full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).
  } deriving (Int -> V1LocalVolumeSource -> ShowS
[V1LocalVolumeSource] -> ShowS
V1LocalVolumeSource -> String
(Int -> V1LocalVolumeSource -> ShowS)
-> (V1LocalVolumeSource -> String)
-> ([V1LocalVolumeSource] -> ShowS)
-> Show V1LocalVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1LocalVolumeSource] -> ShowS
$cshowList :: [V1LocalVolumeSource] -> ShowS
show :: V1LocalVolumeSource -> String
$cshow :: V1LocalVolumeSource -> String
showsPrec :: Int -> V1LocalVolumeSource -> ShowS
$cshowsPrec :: Int -> V1LocalVolumeSource -> ShowS
P.Show, V1LocalVolumeSource -> V1LocalVolumeSource -> Bool
(V1LocalVolumeSource -> V1LocalVolumeSource -> Bool)
-> (V1LocalVolumeSource -> V1LocalVolumeSource -> Bool)
-> Eq V1LocalVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1LocalVolumeSource -> V1LocalVolumeSource -> Bool
$c/= :: V1LocalVolumeSource -> V1LocalVolumeSource -> Bool
== :: V1LocalVolumeSource -> V1LocalVolumeSource -> Bool
$c== :: V1LocalVolumeSource -> V1LocalVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1LocalVolumeSource
instance A.FromJSON V1LocalVolumeSource where
  parseJSON :: Value -> Parser V1LocalVolumeSource
parseJSON = String
-> (Object -> Parser V1LocalVolumeSource)
-> Value
-> Parser V1LocalVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1LocalVolumeSource" ((Object -> Parser V1LocalVolumeSource)
 -> Value -> Parser V1LocalVolumeSource)
-> (Object -> Parser V1LocalVolumeSource)
-> Value
-> Parser V1LocalVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Text -> V1LocalVolumeSource
V1LocalVolumeSource
      (Maybe Text -> Text -> V1LocalVolumeSource)
-> Parser (Maybe Text) -> Parser (Text -> V1LocalVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser (Text -> V1LocalVolumeSource)
-> Parser Text -> Parser V1LocalVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"path")

-- | ToJSON V1LocalVolumeSource
instance A.ToJSON V1LocalVolumeSource where
  toJSON :: V1LocalVolumeSource -> Value
toJSON V1LocalVolumeSource {Maybe Text
Text
v1LocalVolumeSourcePath :: Text
v1LocalVolumeSourceFsType :: Maybe Text
v1LocalVolumeSourcePath :: V1LocalVolumeSource -> Text
v1LocalVolumeSourceFsType :: V1LocalVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1LocalVolumeSourceFsType
      , Text
"path" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1LocalVolumeSourcePath
      ]


-- | Construct a value of type 'V1LocalVolumeSource' (by applying it's required fields, if any)
mkV1LocalVolumeSource
  :: Text -- ^ 'v1LocalVolumeSourcePath': The full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).
  -> V1LocalVolumeSource
mkV1LocalVolumeSource :: Text -> V1LocalVolumeSource
mkV1LocalVolumeSource Text
v1LocalVolumeSourcePath =
  V1LocalVolumeSource :: Maybe Text -> Text -> V1LocalVolumeSource
V1LocalVolumeSource
  { v1LocalVolumeSourceFsType :: Maybe Text
v1LocalVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1LocalVolumeSourcePath :: Text
v1LocalVolumeSourcePath :: Text
v1LocalVolumeSourcePath
  }

-- ** V1ManagedFieldsEntry
-- | V1ManagedFieldsEntry
-- ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.
data V1ManagedFieldsEntry = V1ManagedFieldsEntry
  { V1ManagedFieldsEntry -> Maybe Text
v1ManagedFieldsEntryApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the version of this resource that this field set applies to. The format is \&quot;group/version\&quot; just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.
  , V1ManagedFieldsEntry -> Maybe Text
v1ManagedFieldsEntryFieldsType :: !(Maybe Text) -- ^ "fieldsType" - FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \&quot;FieldsV1\&quot;
  , V1ManagedFieldsEntry -> Maybe Value
v1ManagedFieldsEntryFieldsV1 :: !(Maybe A.Value) -- ^ "fieldsV1" - FieldsV1 holds the first JSON version format as described in the \&quot;FieldsV1\&quot; type.
  , V1ManagedFieldsEntry -> Maybe Text
v1ManagedFieldsEntryManager :: !(Maybe Text) -- ^ "manager" - Manager is an identifier of the workflow managing these fields.
  , V1ManagedFieldsEntry -> Maybe Text
v1ManagedFieldsEntryOperation :: !(Maybe Text) -- ^ "operation" - Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are &#39;Apply&#39; and &#39;Update&#39;.
  , V1ManagedFieldsEntry -> Maybe DateTime
v1ManagedFieldsEntryTime :: !(Maybe DateTime) -- ^ "time" - Time is timestamp of when these fields were set. It should always be empty if Operation is &#39;Apply&#39;
  } deriving (Int -> V1ManagedFieldsEntry -> ShowS
[V1ManagedFieldsEntry] -> ShowS
V1ManagedFieldsEntry -> String
(Int -> V1ManagedFieldsEntry -> ShowS)
-> (V1ManagedFieldsEntry -> String)
-> ([V1ManagedFieldsEntry] -> ShowS)
-> Show V1ManagedFieldsEntry
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ManagedFieldsEntry] -> ShowS
$cshowList :: [V1ManagedFieldsEntry] -> ShowS
show :: V1ManagedFieldsEntry -> String
$cshow :: V1ManagedFieldsEntry -> String
showsPrec :: Int -> V1ManagedFieldsEntry -> ShowS
$cshowsPrec :: Int -> V1ManagedFieldsEntry -> ShowS
P.Show, V1ManagedFieldsEntry -> V1ManagedFieldsEntry -> Bool
(V1ManagedFieldsEntry -> V1ManagedFieldsEntry -> Bool)
-> (V1ManagedFieldsEntry -> V1ManagedFieldsEntry -> Bool)
-> Eq V1ManagedFieldsEntry
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ManagedFieldsEntry -> V1ManagedFieldsEntry -> Bool
$c/= :: V1ManagedFieldsEntry -> V1ManagedFieldsEntry -> Bool
== :: V1ManagedFieldsEntry -> V1ManagedFieldsEntry -> Bool
$c== :: V1ManagedFieldsEntry -> V1ManagedFieldsEntry -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ManagedFieldsEntry
instance A.FromJSON V1ManagedFieldsEntry where
  parseJSON :: Value -> Parser V1ManagedFieldsEntry
parseJSON = String
-> (Object -> Parser V1ManagedFieldsEntry)
-> Value
-> Parser V1ManagedFieldsEntry
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ManagedFieldsEntry" ((Object -> Parser V1ManagedFieldsEntry)
 -> Value -> Parser V1ManagedFieldsEntry)
-> (Object -> Parser V1ManagedFieldsEntry)
-> Value
-> Parser V1ManagedFieldsEntry
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe Value
-> Maybe Text
-> Maybe Text
-> Maybe DateTime
-> V1ManagedFieldsEntry
V1ManagedFieldsEntry
      (Maybe Text
 -> Maybe Text
 -> Maybe Value
 -> Maybe Text
 -> Maybe Text
 -> Maybe DateTime
 -> V1ManagedFieldsEntry)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Value
      -> Maybe Text
      -> Maybe Text
      -> Maybe DateTime
      -> V1ManagedFieldsEntry)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe Value
   -> Maybe Text
   -> Maybe Text
   -> Maybe DateTime
   -> V1ManagedFieldsEntry)
-> Parser (Maybe Text)
-> Parser
     (Maybe Value
      -> Maybe Text
      -> Maybe Text
      -> Maybe DateTime
      -> V1ManagedFieldsEntry)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fieldsType")
      Parser
  (Maybe Value
   -> Maybe Text
   -> Maybe Text
   -> Maybe DateTime
   -> V1ManagedFieldsEntry)
-> Parser (Maybe Value)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe DateTime -> V1ManagedFieldsEntry)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fieldsV1")
      Parser
  (Maybe Text
   -> Maybe Text -> Maybe DateTime -> V1ManagedFieldsEntry)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe DateTime -> V1ManagedFieldsEntry)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"manager")
      Parser (Maybe Text -> Maybe DateTime -> V1ManagedFieldsEntry)
-> Parser (Maybe Text)
-> Parser (Maybe DateTime -> V1ManagedFieldsEntry)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"operation")
      Parser (Maybe DateTime -> V1ManagedFieldsEntry)
-> Parser (Maybe DateTime) -> Parser V1ManagedFieldsEntry
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"time")

-- | ToJSON V1ManagedFieldsEntry
instance A.ToJSON V1ManagedFieldsEntry where
  toJSON :: V1ManagedFieldsEntry -> Value
toJSON V1ManagedFieldsEntry {Maybe Text
Maybe Value
Maybe DateTime
v1ManagedFieldsEntryTime :: Maybe DateTime
v1ManagedFieldsEntryOperation :: Maybe Text
v1ManagedFieldsEntryManager :: Maybe Text
v1ManagedFieldsEntryFieldsV1 :: Maybe Value
v1ManagedFieldsEntryFieldsType :: Maybe Text
v1ManagedFieldsEntryApiVersion :: Maybe Text
v1ManagedFieldsEntryTime :: V1ManagedFieldsEntry -> Maybe DateTime
v1ManagedFieldsEntryOperation :: V1ManagedFieldsEntry -> Maybe Text
v1ManagedFieldsEntryManager :: V1ManagedFieldsEntry -> Maybe Text
v1ManagedFieldsEntryFieldsV1 :: V1ManagedFieldsEntry -> Maybe Value
v1ManagedFieldsEntryFieldsType :: V1ManagedFieldsEntry -> Maybe Text
v1ManagedFieldsEntryApiVersion :: V1ManagedFieldsEntry -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ManagedFieldsEntryApiVersion
      , Text
"fieldsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ManagedFieldsEntryFieldsType
      , Text
"fieldsV1" Text -> Maybe Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Value
v1ManagedFieldsEntryFieldsV1
      , Text
"manager" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ManagedFieldsEntryManager
      , Text
"operation" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ManagedFieldsEntryOperation
      , Text
"time" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1ManagedFieldsEntryTime
      ]


-- | Construct a value of type 'V1ManagedFieldsEntry' (by applying it's required fields, if any)
mkV1ManagedFieldsEntry
  :: V1ManagedFieldsEntry
mkV1ManagedFieldsEntry :: V1ManagedFieldsEntry
mkV1ManagedFieldsEntry =
  V1ManagedFieldsEntry :: Maybe Text
-> Maybe Text
-> Maybe Value
-> Maybe Text
-> Maybe Text
-> Maybe DateTime
-> V1ManagedFieldsEntry
V1ManagedFieldsEntry
  { v1ManagedFieldsEntryApiVersion :: Maybe Text
v1ManagedFieldsEntryApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ManagedFieldsEntryFieldsType :: Maybe Text
v1ManagedFieldsEntryFieldsType = Maybe Text
forall a. Maybe a
Nothing
  , v1ManagedFieldsEntryFieldsV1 :: Maybe Value
v1ManagedFieldsEntryFieldsV1 = Maybe Value
forall a. Maybe a
Nothing
  , v1ManagedFieldsEntryManager :: Maybe Text
v1ManagedFieldsEntryManager = Maybe Text
forall a. Maybe a
Nothing
  , v1ManagedFieldsEntryOperation :: Maybe Text
v1ManagedFieldsEntryOperation = Maybe Text
forall a. Maybe a
Nothing
  , v1ManagedFieldsEntryTime :: Maybe DateTime
v1ManagedFieldsEntryTime = Maybe DateTime
forall a. Maybe a
Nothing
  }

-- ** V1MutatingWebhook
-- | V1MutatingWebhook
-- MutatingWebhook describes an admission webhook and the resources and operations it applies to.
data V1MutatingWebhook = V1MutatingWebhook
  { V1MutatingWebhook -> [Text]
v1MutatingWebhookAdmissionReviewVersions :: !([Text]) -- ^ /Required/ "admissionReviewVersions" - AdmissionReviewVersions is an ordered list of preferred &#x60;AdmissionReview&#x60; versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.
  , V1MutatingWebhook -> AdmissionregistrationV1WebhookClientConfig
v1MutatingWebhookClientConfig :: !(AdmissionregistrationV1WebhookClientConfig) -- ^ /Required/ "clientConfig"
  , V1MutatingWebhook -> Maybe Text
v1MutatingWebhookFailurePolicy :: !(Maybe Text) -- ^ "failurePolicy" - FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.
  , V1MutatingWebhook -> Maybe Text
v1MutatingWebhookMatchPolicy :: !(Maybe Text) -- ^ "matchPolicy" - matchPolicy defines how the \&quot;rules\&quot; list is used to match incoming requests. Allowed values are \&quot;Exact\&quot; or \&quot;Equivalent\&quot;.  - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \&quot;rules\&quot; only included &#x60;apiGroups:[\&quot;apps\&quot;], apiVersions:[\&quot;v1\&quot;], resources: [\&quot;deployments\&quot;]&#x60;, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.  - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \&quot;rules\&quot; only included &#x60;apiGroups:[\&quot;apps\&quot;], apiVersions:[\&quot;v1\&quot;], resources: [\&quot;deployments\&quot;]&#x60;, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.  Defaults to \&quot;Equivalent\&quot;
  , V1MutatingWebhook -> Text
v1MutatingWebhookName :: !(Text) -- ^ /Required/ "name" - The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \&quot;imagepolicy\&quot; is the name of the webhook, and kubernetes.io is the name of the organization. Required.
  , V1MutatingWebhook -> Maybe V1LabelSelector
v1MutatingWebhookNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"
  , V1MutatingWebhook -> Maybe V1LabelSelector
v1MutatingWebhookObjectSelector :: !(Maybe V1LabelSelector) -- ^ "objectSelector"
  , V1MutatingWebhook -> Maybe Text
v1MutatingWebhookReinvocationPolicy :: !(Maybe Text) -- ^ "reinvocationPolicy" - reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \&quot;Never\&quot; and \&quot;IfNeeded\&quot;.  Never: the webhook will not be called more than once in a single admission evaluation.  IfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.  Defaults to \&quot;Never\&quot;.
  , V1MutatingWebhook -> Maybe [V1RuleWithOperations]
v1MutatingWebhookRules :: !(Maybe [V1RuleWithOperations]) -- ^ "rules" - Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.
  , V1MutatingWebhook -> Text
v1MutatingWebhookSideEffects :: !(Text) -- ^ /Required/ "sideEffects" - SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects &#x3D;&#x3D; Unknown or Some.
  , V1MutatingWebhook -> Maybe Int
v1MutatingWebhookTimeoutSeconds :: !(Maybe Int) -- ^ "timeoutSeconds" - TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.
  } deriving (Int -> V1MutatingWebhook -> ShowS
[V1MutatingWebhook] -> ShowS
V1MutatingWebhook -> String
(Int -> V1MutatingWebhook -> ShowS)
-> (V1MutatingWebhook -> String)
-> ([V1MutatingWebhook] -> ShowS)
-> Show V1MutatingWebhook
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1MutatingWebhook] -> ShowS
$cshowList :: [V1MutatingWebhook] -> ShowS
show :: V1MutatingWebhook -> String
$cshow :: V1MutatingWebhook -> String
showsPrec :: Int -> V1MutatingWebhook -> ShowS
$cshowsPrec :: Int -> V1MutatingWebhook -> ShowS
P.Show, V1MutatingWebhook -> V1MutatingWebhook -> Bool
(V1MutatingWebhook -> V1MutatingWebhook -> Bool)
-> (V1MutatingWebhook -> V1MutatingWebhook -> Bool)
-> Eq V1MutatingWebhook
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1MutatingWebhook -> V1MutatingWebhook -> Bool
$c/= :: V1MutatingWebhook -> V1MutatingWebhook -> Bool
== :: V1MutatingWebhook -> V1MutatingWebhook -> Bool
$c== :: V1MutatingWebhook -> V1MutatingWebhook -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1MutatingWebhook
instance A.FromJSON V1MutatingWebhook where
  parseJSON :: Value -> Parser V1MutatingWebhook
parseJSON = String
-> (Object -> Parser V1MutatingWebhook)
-> Value
-> Parser V1MutatingWebhook
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1MutatingWebhook" ((Object -> Parser V1MutatingWebhook)
 -> Value -> Parser V1MutatingWebhook)
-> (Object -> Parser V1MutatingWebhook)
-> Value
-> Parser V1MutatingWebhook
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    [Text]
-> AdmissionregistrationV1WebhookClientConfig
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe V1LabelSelector
-> Maybe V1LabelSelector
-> Maybe Text
-> Maybe [V1RuleWithOperations]
-> Text
-> Maybe Int
-> V1MutatingWebhook
V1MutatingWebhook
      ([Text]
 -> AdmissionregistrationV1WebhookClientConfig
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Maybe V1LabelSelector
 -> Maybe V1LabelSelector
 -> Maybe Text
 -> Maybe [V1RuleWithOperations]
 -> Text
 -> Maybe Int
 -> V1MutatingWebhook)
-> Parser [Text]
-> Parser
     (AdmissionregistrationV1WebhookClientConfig
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe Text
      -> Maybe [V1RuleWithOperations]
      -> Text
      -> Maybe Int
      -> V1MutatingWebhook)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"admissionReviewVersions")
      Parser
  (AdmissionregistrationV1WebhookClientConfig
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe Text
   -> Maybe [V1RuleWithOperations]
   -> Text
   -> Maybe Int
   -> V1MutatingWebhook)
-> Parser AdmissionregistrationV1WebhookClientConfig
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe Text
      -> Maybe [V1RuleWithOperations]
      -> Text
      -> Maybe Int
      -> V1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser AdmissionregistrationV1WebhookClientConfig
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"clientConfig")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe Text
   -> Maybe [V1RuleWithOperations]
   -> Text
   -> Maybe Int
   -> V1MutatingWebhook)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text
      -> Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe Text
      -> Maybe [V1RuleWithOperations]
      -> Text
      -> Maybe Int
      -> V1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"failurePolicy")
      Parser
  (Maybe Text
   -> Text
   -> Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe Text
   -> Maybe [V1RuleWithOperations]
   -> Text
   -> Maybe Int
   -> V1MutatingWebhook)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe Text
      -> Maybe [V1RuleWithOperations]
      -> Text
      -> Maybe Int
      -> V1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"matchPolicy")
      Parser
  (Text
   -> Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe Text
   -> Maybe [V1RuleWithOperations]
   -> Text
   -> Maybe Int
   -> V1MutatingWebhook)
-> Parser Text
-> Parser
     (Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe Text
      -> Maybe [V1RuleWithOperations]
      -> Text
      -> Maybe Int
      -> V1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe Text
   -> Maybe [V1RuleWithOperations]
   -> Text
   -> Maybe Int
   -> V1MutatingWebhook)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (Maybe V1LabelSelector
      -> Maybe Text
      -> Maybe [V1RuleWithOperations]
      -> Text
      -> Maybe Int
      -> V1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespaceSelector")
      Parser
  (Maybe V1LabelSelector
   -> Maybe Text
   -> Maybe [V1RuleWithOperations]
   -> Text
   -> Maybe Int
   -> V1MutatingWebhook)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (Maybe Text
      -> Maybe [V1RuleWithOperations]
      -> Text
      -> Maybe Int
      -> V1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"objectSelector")
      Parser
  (Maybe Text
   -> Maybe [V1RuleWithOperations]
   -> Text
   -> Maybe Int
   -> V1MutatingWebhook)
-> Parser (Maybe Text)
-> Parser
     (Maybe [V1RuleWithOperations]
      -> Text -> Maybe Int -> V1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reinvocationPolicy")
      Parser
  (Maybe [V1RuleWithOperations]
   -> Text -> Maybe Int -> V1MutatingWebhook)
-> Parser (Maybe [V1RuleWithOperations])
-> Parser (Text -> Maybe Int -> V1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1RuleWithOperations])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rules")
      Parser (Text -> Maybe Int -> V1MutatingWebhook)
-> Parser Text -> Parser (Maybe Int -> V1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"sideEffects")
      Parser (Maybe Int -> V1MutatingWebhook)
-> Parser (Maybe Int) -> Parser V1MutatingWebhook
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"timeoutSeconds")

-- | ToJSON V1MutatingWebhook
instance A.ToJSON V1MutatingWebhook where
  toJSON :: V1MutatingWebhook -> Value
toJSON V1MutatingWebhook {[Text]
Maybe Int
Maybe [V1RuleWithOperations]
Maybe Text
Maybe V1LabelSelector
Text
AdmissionregistrationV1WebhookClientConfig
v1MutatingWebhookTimeoutSeconds :: Maybe Int
v1MutatingWebhookSideEffects :: Text
v1MutatingWebhookRules :: Maybe [V1RuleWithOperations]
v1MutatingWebhookReinvocationPolicy :: Maybe Text
v1MutatingWebhookObjectSelector :: Maybe V1LabelSelector
v1MutatingWebhookNamespaceSelector :: Maybe V1LabelSelector
v1MutatingWebhookName :: Text
v1MutatingWebhookMatchPolicy :: Maybe Text
v1MutatingWebhookFailurePolicy :: Maybe Text
v1MutatingWebhookClientConfig :: AdmissionregistrationV1WebhookClientConfig
v1MutatingWebhookAdmissionReviewVersions :: [Text]
v1MutatingWebhookTimeoutSeconds :: V1MutatingWebhook -> Maybe Int
v1MutatingWebhookSideEffects :: V1MutatingWebhook -> Text
v1MutatingWebhookRules :: V1MutatingWebhook -> Maybe [V1RuleWithOperations]
v1MutatingWebhookReinvocationPolicy :: V1MutatingWebhook -> Maybe Text
v1MutatingWebhookObjectSelector :: V1MutatingWebhook -> Maybe V1LabelSelector
v1MutatingWebhookNamespaceSelector :: V1MutatingWebhook -> Maybe V1LabelSelector
v1MutatingWebhookName :: V1MutatingWebhook -> Text
v1MutatingWebhookMatchPolicy :: V1MutatingWebhook -> Maybe Text
v1MutatingWebhookFailurePolicy :: V1MutatingWebhook -> Maybe Text
v1MutatingWebhookClientConfig :: V1MutatingWebhook -> AdmissionregistrationV1WebhookClientConfig
v1MutatingWebhookAdmissionReviewVersions :: V1MutatingWebhook -> [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"admissionReviewVersions" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1MutatingWebhookAdmissionReviewVersions
      , Text
"clientConfig" Text -> AdmissionregistrationV1WebhookClientConfig -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= AdmissionregistrationV1WebhookClientConfig
v1MutatingWebhookClientConfig
      , Text
"failurePolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1MutatingWebhookFailurePolicy
      , Text
"matchPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1MutatingWebhookMatchPolicy
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1MutatingWebhookName
      , Text
"namespaceSelector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1MutatingWebhookNamespaceSelector
      , Text
"objectSelector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1MutatingWebhookObjectSelector
      , Text
"reinvocationPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1MutatingWebhookReinvocationPolicy
      , Text
"rules" Text -> Maybe [V1RuleWithOperations] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1RuleWithOperations]
v1MutatingWebhookRules
      , Text
"sideEffects" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1MutatingWebhookSideEffects
      , Text
"timeoutSeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1MutatingWebhookTimeoutSeconds
      ]


-- | Construct a value of type 'V1MutatingWebhook' (by applying it's required fields, if any)
mkV1MutatingWebhook
  :: [Text] -- ^ 'v1MutatingWebhookAdmissionReviewVersions': AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.
  -> AdmissionregistrationV1WebhookClientConfig -- ^ 'v1MutatingWebhookClientConfig' 
  -> Text -- ^ 'v1MutatingWebhookName': The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.
  -> Text -- ^ 'v1MutatingWebhookSideEffects': SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.
  -> V1MutatingWebhook
mkV1MutatingWebhook :: [Text]
-> AdmissionregistrationV1WebhookClientConfig
-> Text
-> Text
-> V1MutatingWebhook
mkV1MutatingWebhook [Text]
v1MutatingWebhookAdmissionReviewVersions AdmissionregistrationV1WebhookClientConfig
v1MutatingWebhookClientConfig Text
v1MutatingWebhookName Text
v1MutatingWebhookSideEffects =
  V1MutatingWebhook :: [Text]
-> AdmissionregistrationV1WebhookClientConfig
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe V1LabelSelector
-> Maybe V1LabelSelector
-> Maybe Text
-> Maybe [V1RuleWithOperations]
-> Text
-> Maybe Int
-> V1MutatingWebhook
V1MutatingWebhook
  { [Text]
v1MutatingWebhookAdmissionReviewVersions :: [Text]
v1MutatingWebhookAdmissionReviewVersions :: [Text]
v1MutatingWebhookAdmissionReviewVersions
  , AdmissionregistrationV1WebhookClientConfig
v1MutatingWebhookClientConfig :: AdmissionregistrationV1WebhookClientConfig
v1MutatingWebhookClientConfig :: AdmissionregistrationV1WebhookClientConfig
v1MutatingWebhookClientConfig
  , v1MutatingWebhookFailurePolicy :: Maybe Text
v1MutatingWebhookFailurePolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1MutatingWebhookMatchPolicy :: Maybe Text
v1MutatingWebhookMatchPolicy = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1MutatingWebhookName :: Text
v1MutatingWebhookName :: Text
v1MutatingWebhookName
  , v1MutatingWebhookNamespaceSelector :: Maybe V1LabelSelector
v1MutatingWebhookNamespaceSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , v1MutatingWebhookObjectSelector :: Maybe V1LabelSelector
v1MutatingWebhookObjectSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , v1MutatingWebhookReinvocationPolicy :: Maybe Text
v1MutatingWebhookReinvocationPolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1MutatingWebhookRules :: Maybe [V1RuleWithOperations]
v1MutatingWebhookRules = Maybe [V1RuleWithOperations]
forall a. Maybe a
Nothing
  , Text
v1MutatingWebhookSideEffects :: Text
v1MutatingWebhookSideEffects :: Text
v1MutatingWebhookSideEffects
  , v1MutatingWebhookTimeoutSeconds :: Maybe Int
v1MutatingWebhookTimeoutSeconds = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1MutatingWebhookConfiguration
-- | V1MutatingWebhookConfiguration
-- MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.
data V1MutatingWebhookConfiguration = V1MutatingWebhookConfiguration
  { V1MutatingWebhookConfiguration -> Maybe Text
v1MutatingWebhookConfigurationApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1MutatingWebhookConfiguration -> Maybe Text
v1MutatingWebhookConfigurationKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1MutatingWebhookConfiguration -> Maybe V1ObjectMeta
v1MutatingWebhookConfigurationMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1MutatingWebhookConfiguration -> Maybe [V1MutatingWebhook]
v1MutatingWebhookConfigurationWebhooks :: !(Maybe [V1MutatingWebhook]) -- ^ "webhooks" - Webhooks is a list of webhooks and the affected resources and operations.
  } deriving (Int -> V1MutatingWebhookConfiguration -> ShowS
[V1MutatingWebhookConfiguration] -> ShowS
V1MutatingWebhookConfiguration -> String
(Int -> V1MutatingWebhookConfiguration -> ShowS)
-> (V1MutatingWebhookConfiguration -> String)
-> ([V1MutatingWebhookConfiguration] -> ShowS)
-> Show V1MutatingWebhookConfiguration
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1MutatingWebhookConfiguration] -> ShowS
$cshowList :: [V1MutatingWebhookConfiguration] -> ShowS
show :: V1MutatingWebhookConfiguration -> String
$cshow :: V1MutatingWebhookConfiguration -> String
showsPrec :: Int -> V1MutatingWebhookConfiguration -> ShowS
$cshowsPrec :: Int -> V1MutatingWebhookConfiguration -> ShowS
P.Show, V1MutatingWebhookConfiguration
-> V1MutatingWebhookConfiguration -> Bool
(V1MutatingWebhookConfiguration
 -> V1MutatingWebhookConfiguration -> Bool)
-> (V1MutatingWebhookConfiguration
    -> V1MutatingWebhookConfiguration -> Bool)
-> Eq V1MutatingWebhookConfiguration
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1MutatingWebhookConfiguration
-> V1MutatingWebhookConfiguration -> Bool
$c/= :: V1MutatingWebhookConfiguration
-> V1MutatingWebhookConfiguration -> Bool
== :: V1MutatingWebhookConfiguration
-> V1MutatingWebhookConfiguration -> Bool
$c== :: V1MutatingWebhookConfiguration
-> V1MutatingWebhookConfiguration -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1MutatingWebhookConfiguration
instance A.FromJSON V1MutatingWebhookConfiguration where
  parseJSON :: Value -> Parser V1MutatingWebhookConfiguration
parseJSON = String
-> (Object -> Parser V1MutatingWebhookConfiguration)
-> Value
-> Parser V1MutatingWebhookConfiguration
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1MutatingWebhookConfiguration" ((Object -> Parser V1MutatingWebhookConfiguration)
 -> Value -> Parser V1MutatingWebhookConfiguration)
-> (Object -> Parser V1MutatingWebhookConfiguration)
-> Value
-> Parser V1MutatingWebhookConfiguration
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1MutatingWebhook]
-> V1MutatingWebhookConfiguration
V1MutatingWebhookConfiguration
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe [V1MutatingWebhook]
 -> V1MutatingWebhookConfiguration)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [V1MutatingWebhook]
      -> V1MutatingWebhookConfiguration)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [V1MutatingWebhook]
   -> V1MutatingWebhookConfiguration)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe [V1MutatingWebhook] -> V1MutatingWebhookConfiguration)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe [V1MutatingWebhook] -> V1MutatingWebhookConfiguration)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe [V1MutatingWebhook] -> V1MutatingWebhookConfiguration)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe [V1MutatingWebhook] -> V1MutatingWebhookConfiguration)
-> Parser (Maybe [V1MutatingWebhook])
-> Parser V1MutatingWebhookConfiguration
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1MutatingWebhook])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"webhooks")

-- | ToJSON V1MutatingWebhookConfiguration
instance A.ToJSON V1MutatingWebhookConfiguration where
  toJSON :: V1MutatingWebhookConfiguration -> Value
toJSON V1MutatingWebhookConfiguration {Maybe [V1MutatingWebhook]
Maybe Text
Maybe V1ObjectMeta
v1MutatingWebhookConfigurationWebhooks :: Maybe [V1MutatingWebhook]
v1MutatingWebhookConfigurationMetadata :: Maybe V1ObjectMeta
v1MutatingWebhookConfigurationKind :: Maybe Text
v1MutatingWebhookConfigurationApiVersion :: Maybe Text
v1MutatingWebhookConfigurationWebhooks :: V1MutatingWebhookConfiguration -> Maybe [V1MutatingWebhook]
v1MutatingWebhookConfigurationMetadata :: V1MutatingWebhookConfiguration -> Maybe V1ObjectMeta
v1MutatingWebhookConfigurationKind :: V1MutatingWebhookConfiguration -> Maybe Text
v1MutatingWebhookConfigurationApiVersion :: V1MutatingWebhookConfiguration -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1MutatingWebhookConfigurationApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1MutatingWebhookConfigurationKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1MutatingWebhookConfigurationMetadata
      , Text
"webhooks" Text -> Maybe [V1MutatingWebhook] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1MutatingWebhook]
v1MutatingWebhookConfigurationWebhooks
      ]


-- | Construct a value of type 'V1MutatingWebhookConfiguration' (by applying it's required fields, if any)
mkV1MutatingWebhookConfiguration
  :: V1MutatingWebhookConfiguration
mkV1MutatingWebhookConfiguration :: V1MutatingWebhookConfiguration
mkV1MutatingWebhookConfiguration =
  V1MutatingWebhookConfiguration :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1MutatingWebhook]
-> V1MutatingWebhookConfiguration
V1MutatingWebhookConfiguration
  { v1MutatingWebhookConfigurationApiVersion :: Maybe Text
v1MutatingWebhookConfigurationApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1MutatingWebhookConfigurationKind :: Maybe Text
v1MutatingWebhookConfigurationKind = Maybe Text
forall a. Maybe a
Nothing
  , v1MutatingWebhookConfigurationMetadata :: Maybe V1ObjectMeta
v1MutatingWebhookConfigurationMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1MutatingWebhookConfigurationWebhooks :: Maybe [V1MutatingWebhook]
v1MutatingWebhookConfigurationWebhooks = Maybe [V1MutatingWebhook]
forall a. Maybe a
Nothing
  }

-- ** V1MutatingWebhookConfigurationList
-- | V1MutatingWebhookConfigurationList
-- MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.
data V1MutatingWebhookConfigurationList = V1MutatingWebhookConfigurationList
  { V1MutatingWebhookConfigurationList -> Maybe Text
v1MutatingWebhookConfigurationListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1MutatingWebhookConfigurationList
-> [V1MutatingWebhookConfiguration]
v1MutatingWebhookConfigurationListItems :: !([V1MutatingWebhookConfiguration]) -- ^ /Required/ "items" - List of MutatingWebhookConfiguration.
  , V1MutatingWebhookConfigurationList -> Maybe Text
v1MutatingWebhookConfigurationListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1MutatingWebhookConfigurationList -> Maybe V1ListMeta
v1MutatingWebhookConfigurationListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1MutatingWebhookConfigurationList -> ShowS
[V1MutatingWebhookConfigurationList] -> ShowS
V1MutatingWebhookConfigurationList -> String
(Int -> V1MutatingWebhookConfigurationList -> ShowS)
-> (V1MutatingWebhookConfigurationList -> String)
-> ([V1MutatingWebhookConfigurationList] -> ShowS)
-> Show V1MutatingWebhookConfigurationList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1MutatingWebhookConfigurationList] -> ShowS
$cshowList :: [V1MutatingWebhookConfigurationList] -> ShowS
show :: V1MutatingWebhookConfigurationList -> String
$cshow :: V1MutatingWebhookConfigurationList -> String
showsPrec :: Int -> V1MutatingWebhookConfigurationList -> ShowS
$cshowsPrec :: Int -> V1MutatingWebhookConfigurationList -> ShowS
P.Show, V1MutatingWebhookConfigurationList
-> V1MutatingWebhookConfigurationList -> Bool
(V1MutatingWebhookConfigurationList
 -> V1MutatingWebhookConfigurationList -> Bool)
-> (V1MutatingWebhookConfigurationList
    -> V1MutatingWebhookConfigurationList -> Bool)
-> Eq V1MutatingWebhookConfigurationList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1MutatingWebhookConfigurationList
-> V1MutatingWebhookConfigurationList -> Bool
$c/= :: V1MutatingWebhookConfigurationList
-> V1MutatingWebhookConfigurationList -> Bool
== :: V1MutatingWebhookConfigurationList
-> V1MutatingWebhookConfigurationList -> Bool
$c== :: V1MutatingWebhookConfigurationList
-> V1MutatingWebhookConfigurationList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1MutatingWebhookConfigurationList
instance A.FromJSON V1MutatingWebhookConfigurationList where
  parseJSON :: Value -> Parser V1MutatingWebhookConfigurationList
parseJSON = String
-> (Object -> Parser V1MutatingWebhookConfigurationList)
-> Value
-> Parser V1MutatingWebhookConfigurationList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1MutatingWebhookConfigurationList" ((Object -> Parser V1MutatingWebhookConfigurationList)
 -> Value -> Parser V1MutatingWebhookConfigurationList)
-> (Object -> Parser V1MutatingWebhookConfigurationList)
-> Value
-> Parser V1MutatingWebhookConfigurationList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1MutatingWebhookConfiguration]
-> Maybe Text
-> Maybe V1ListMeta
-> V1MutatingWebhookConfigurationList
V1MutatingWebhookConfigurationList
      (Maybe Text
 -> [V1MutatingWebhookConfiguration]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1MutatingWebhookConfigurationList)
-> Parser (Maybe Text)
-> Parser
     ([V1MutatingWebhookConfiguration]
      -> Maybe Text
      -> Maybe V1ListMeta
      -> V1MutatingWebhookConfigurationList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1MutatingWebhookConfiguration]
   -> Maybe Text
   -> Maybe V1ListMeta
   -> V1MutatingWebhookConfigurationList)
-> Parser [V1MutatingWebhookConfiguration]
-> Parser
     (Maybe Text
      -> Maybe V1ListMeta -> V1MutatingWebhookConfigurationList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1MutatingWebhookConfiguration]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text
   -> Maybe V1ListMeta -> V1MutatingWebhookConfigurationList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1MutatingWebhookConfigurationList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1MutatingWebhookConfigurationList)
-> Parser (Maybe V1ListMeta)
-> Parser V1MutatingWebhookConfigurationList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1MutatingWebhookConfigurationList
instance A.ToJSON V1MutatingWebhookConfigurationList where
  toJSON :: V1MutatingWebhookConfigurationList -> Value
toJSON V1MutatingWebhookConfigurationList {[V1MutatingWebhookConfiguration]
Maybe Text
Maybe V1ListMeta
v1MutatingWebhookConfigurationListMetadata :: Maybe V1ListMeta
v1MutatingWebhookConfigurationListKind :: Maybe Text
v1MutatingWebhookConfigurationListItems :: [V1MutatingWebhookConfiguration]
v1MutatingWebhookConfigurationListApiVersion :: Maybe Text
v1MutatingWebhookConfigurationListMetadata :: V1MutatingWebhookConfigurationList -> Maybe V1ListMeta
v1MutatingWebhookConfigurationListKind :: V1MutatingWebhookConfigurationList -> Maybe Text
v1MutatingWebhookConfigurationListItems :: V1MutatingWebhookConfigurationList
-> [V1MutatingWebhookConfiguration]
v1MutatingWebhookConfigurationListApiVersion :: V1MutatingWebhookConfigurationList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1MutatingWebhookConfigurationListApiVersion
      , Text
"items" Text -> [V1MutatingWebhookConfiguration] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1MutatingWebhookConfiguration]
v1MutatingWebhookConfigurationListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1MutatingWebhookConfigurationListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1MutatingWebhookConfigurationListMetadata
      ]


-- | Construct a value of type 'V1MutatingWebhookConfigurationList' (by applying it's required fields, if any)
mkV1MutatingWebhookConfigurationList
  :: [V1MutatingWebhookConfiguration] -- ^ 'v1MutatingWebhookConfigurationListItems': List of MutatingWebhookConfiguration.
  -> V1MutatingWebhookConfigurationList
mkV1MutatingWebhookConfigurationList :: [V1MutatingWebhookConfiguration]
-> V1MutatingWebhookConfigurationList
mkV1MutatingWebhookConfigurationList [V1MutatingWebhookConfiguration]
v1MutatingWebhookConfigurationListItems =
  V1MutatingWebhookConfigurationList :: Maybe Text
-> [V1MutatingWebhookConfiguration]
-> Maybe Text
-> Maybe V1ListMeta
-> V1MutatingWebhookConfigurationList
V1MutatingWebhookConfigurationList
  { v1MutatingWebhookConfigurationListApiVersion :: Maybe Text
v1MutatingWebhookConfigurationListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1MutatingWebhookConfiguration]
v1MutatingWebhookConfigurationListItems :: [V1MutatingWebhookConfiguration]
v1MutatingWebhookConfigurationListItems :: [V1MutatingWebhookConfiguration]
v1MutatingWebhookConfigurationListItems
  , v1MutatingWebhookConfigurationListKind :: Maybe Text
v1MutatingWebhookConfigurationListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1MutatingWebhookConfigurationListMetadata :: Maybe V1ListMeta
v1MutatingWebhookConfigurationListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1NFSVolumeSource
-- | V1NFSVolumeSource
-- Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.
data V1NFSVolumeSource = V1NFSVolumeSource
  { V1NFSVolumeSource -> Text
v1NFSVolumeSourcePath :: !(Text) -- ^ /Required/ "path" - Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  , V1NFSVolumeSource -> Maybe Bool
v1NFSVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  , V1NFSVolumeSource -> Text
v1NFSVolumeSourceServer :: !(Text) -- ^ /Required/ "server" - Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  } deriving (Int -> V1NFSVolumeSource -> ShowS
[V1NFSVolumeSource] -> ShowS
V1NFSVolumeSource -> String
(Int -> V1NFSVolumeSource -> ShowS)
-> (V1NFSVolumeSource -> String)
-> ([V1NFSVolumeSource] -> ShowS)
-> Show V1NFSVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NFSVolumeSource] -> ShowS
$cshowList :: [V1NFSVolumeSource] -> ShowS
show :: V1NFSVolumeSource -> String
$cshow :: V1NFSVolumeSource -> String
showsPrec :: Int -> V1NFSVolumeSource -> ShowS
$cshowsPrec :: Int -> V1NFSVolumeSource -> ShowS
P.Show, V1NFSVolumeSource -> V1NFSVolumeSource -> Bool
(V1NFSVolumeSource -> V1NFSVolumeSource -> Bool)
-> (V1NFSVolumeSource -> V1NFSVolumeSource -> Bool)
-> Eq V1NFSVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NFSVolumeSource -> V1NFSVolumeSource -> Bool
$c/= :: V1NFSVolumeSource -> V1NFSVolumeSource -> Bool
== :: V1NFSVolumeSource -> V1NFSVolumeSource -> Bool
$c== :: V1NFSVolumeSource -> V1NFSVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NFSVolumeSource
instance A.FromJSON V1NFSVolumeSource where
  parseJSON :: Value -> Parser V1NFSVolumeSource
parseJSON = String
-> (Object -> Parser V1NFSVolumeSource)
-> Value
-> Parser V1NFSVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NFSVolumeSource" ((Object -> Parser V1NFSVolumeSource)
 -> Value -> Parser V1NFSVolumeSource)
-> (Object -> Parser V1NFSVolumeSource)
-> Value
-> Parser V1NFSVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Maybe Bool -> Text -> V1NFSVolumeSource
V1NFSVolumeSource
      (Text -> Maybe Bool -> Text -> V1NFSVolumeSource)
-> Parser Text -> Parser (Maybe Bool -> Text -> V1NFSVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"path")
      Parser (Maybe Bool -> Text -> V1NFSVolumeSource)
-> Parser (Maybe Bool) -> Parser (Text -> V1NFSVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser (Text -> V1NFSVolumeSource)
-> Parser Text -> Parser V1NFSVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"server")

-- | ToJSON V1NFSVolumeSource
instance A.ToJSON V1NFSVolumeSource where
  toJSON :: V1NFSVolumeSource -> Value
toJSON V1NFSVolumeSource {Maybe Bool
Text
v1NFSVolumeSourceServer :: Text
v1NFSVolumeSourceReadOnly :: Maybe Bool
v1NFSVolumeSourcePath :: Text
v1NFSVolumeSourceServer :: V1NFSVolumeSource -> Text
v1NFSVolumeSourceReadOnly :: V1NFSVolumeSource -> Maybe Bool
v1NFSVolumeSourcePath :: V1NFSVolumeSource -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"path" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NFSVolumeSourcePath
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1NFSVolumeSourceReadOnly
      , Text
"server" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NFSVolumeSourceServer
      ]


-- | Construct a value of type 'V1NFSVolumeSource' (by applying it's required fields, if any)
mkV1NFSVolumeSource
  :: Text -- ^ 'v1NFSVolumeSourcePath': Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  -> Text -- ^ 'v1NFSVolumeSourceServer': Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
  -> V1NFSVolumeSource
mkV1NFSVolumeSource :: Text -> Text -> V1NFSVolumeSource
mkV1NFSVolumeSource Text
v1NFSVolumeSourcePath Text
v1NFSVolumeSourceServer =
  V1NFSVolumeSource :: Text -> Maybe Bool -> Text -> V1NFSVolumeSource
V1NFSVolumeSource
  { Text
v1NFSVolumeSourcePath :: Text
v1NFSVolumeSourcePath :: Text
v1NFSVolumeSourcePath
  , v1NFSVolumeSourceReadOnly :: Maybe Bool
v1NFSVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , Text
v1NFSVolumeSourceServer :: Text
v1NFSVolumeSourceServer :: Text
v1NFSVolumeSourceServer
  }

-- ** V1Namespace
-- | V1Namespace
-- Namespace provides a scope for Names. Use of multiple namespaces is optional.
data V1Namespace = V1Namespace
  { V1Namespace -> Maybe Text
v1NamespaceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1Namespace -> Maybe Text
v1NamespaceKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1Namespace -> Maybe V1ObjectMeta
v1NamespaceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1Namespace -> Maybe V1NamespaceSpec
v1NamespaceSpec :: !(Maybe V1NamespaceSpec) -- ^ "spec"
  , V1Namespace -> Maybe V1NamespaceStatus
v1NamespaceStatus :: !(Maybe V1NamespaceStatus) -- ^ "status"
  } deriving (Int -> V1Namespace -> ShowS
[V1Namespace] -> ShowS
V1Namespace -> String
(Int -> V1Namespace -> ShowS)
-> (V1Namespace -> String)
-> ([V1Namespace] -> ShowS)
-> Show V1Namespace
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Namespace] -> ShowS
$cshowList :: [V1Namespace] -> ShowS
show :: V1Namespace -> String
$cshow :: V1Namespace -> String
showsPrec :: Int -> V1Namespace -> ShowS
$cshowsPrec :: Int -> V1Namespace -> ShowS
P.Show, V1Namespace -> V1Namespace -> Bool
(V1Namespace -> V1Namespace -> Bool)
-> (V1Namespace -> V1Namespace -> Bool) -> Eq V1Namespace
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Namespace -> V1Namespace -> Bool
$c/= :: V1Namespace -> V1Namespace -> Bool
== :: V1Namespace -> V1Namespace -> Bool
$c== :: V1Namespace -> V1Namespace -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Namespace
instance A.FromJSON V1Namespace where
  parseJSON :: Value -> Parser V1Namespace
parseJSON = String
-> (Object -> Parser V1Namespace) -> Value -> Parser V1Namespace
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Namespace" ((Object -> Parser V1Namespace) -> Value -> Parser V1Namespace)
-> (Object -> Parser V1Namespace) -> Value -> Parser V1Namespace
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1NamespaceSpec
-> Maybe V1NamespaceStatus
-> V1Namespace
V1Namespace
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1NamespaceSpec
 -> Maybe V1NamespaceStatus
 -> V1Namespace)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1NamespaceSpec
      -> Maybe V1NamespaceStatus
      -> V1Namespace)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1NamespaceSpec
   -> Maybe V1NamespaceStatus
   -> V1Namespace)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1NamespaceSpec -> Maybe V1NamespaceStatus -> V1Namespace)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1NamespaceSpec -> Maybe V1NamespaceStatus -> V1Namespace)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1NamespaceSpec -> Maybe V1NamespaceStatus -> V1Namespace)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1NamespaceSpec -> Maybe V1NamespaceStatus -> V1Namespace)
-> Parser (Maybe V1NamespaceSpec)
-> Parser (Maybe V1NamespaceStatus -> V1Namespace)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1NamespaceSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1NamespaceStatus -> V1Namespace)
-> Parser (Maybe V1NamespaceStatus) -> Parser V1Namespace
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1NamespaceStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1Namespace
instance A.ToJSON V1Namespace where
  toJSON :: V1Namespace -> Value
toJSON V1Namespace {Maybe Text
Maybe V1ObjectMeta
Maybe V1NamespaceStatus
Maybe V1NamespaceSpec
v1NamespaceStatus :: Maybe V1NamespaceStatus
v1NamespaceSpec :: Maybe V1NamespaceSpec
v1NamespaceMetadata :: Maybe V1ObjectMeta
v1NamespaceKind :: Maybe Text
v1NamespaceApiVersion :: Maybe Text
v1NamespaceStatus :: V1Namespace -> Maybe V1NamespaceStatus
v1NamespaceSpec :: V1Namespace -> Maybe V1NamespaceSpec
v1NamespaceMetadata :: V1Namespace -> Maybe V1ObjectMeta
v1NamespaceKind :: V1Namespace -> Maybe Text
v1NamespaceApiVersion :: V1Namespace -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NamespaceApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NamespaceKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1NamespaceMetadata
      , Text
"spec" Text -> Maybe V1NamespaceSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NamespaceSpec
v1NamespaceSpec
      , Text
"status" Text -> Maybe V1NamespaceStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NamespaceStatus
v1NamespaceStatus
      ]


-- | Construct a value of type 'V1Namespace' (by applying it's required fields, if any)
mkV1Namespace
  :: V1Namespace
mkV1Namespace :: V1Namespace
mkV1Namespace =
  V1Namespace :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1NamespaceSpec
-> Maybe V1NamespaceStatus
-> V1Namespace
V1Namespace
  { v1NamespaceApiVersion :: Maybe Text
v1NamespaceApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1NamespaceKind :: Maybe Text
v1NamespaceKind = Maybe Text
forall a. Maybe a
Nothing
  , v1NamespaceMetadata :: Maybe V1ObjectMeta
v1NamespaceMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1NamespaceSpec :: Maybe V1NamespaceSpec
v1NamespaceSpec = Maybe V1NamespaceSpec
forall a. Maybe a
Nothing
  , v1NamespaceStatus :: Maybe V1NamespaceStatus
v1NamespaceStatus = Maybe V1NamespaceStatus
forall a. Maybe a
Nothing
  }

-- ** V1NamespaceCondition
-- | V1NamespaceCondition
-- NamespaceCondition contains details about state of namespace.
data V1NamespaceCondition = V1NamespaceCondition
  { V1NamespaceCondition -> Maybe DateTime
v1NamespaceConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON.  Wrappers are provided for many of the factory methods that the time package offers.
  , V1NamespaceCondition -> Maybe Text
v1NamespaceConditionMessage :: !(Maybe Text) -- ^ "message"
  , V1NamespaceCondition -> Maybe Text
v1NamespaceConditionReason :: !(Maybe Text) -- ^ "reason"
  , V1NamespaceCondition -> Text
v1NamespaceConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , V1NamespaceCondition -> Text
v1NamespaceConditionType :: !(Text) -- ^ /Required/ "type" - Type of namespace controller condition.
  } deriving (Int -> V1NamespaceCondition -> ShowS
[V1NamespaceCondition] -> ShowS
V1NamespaceCondition -> String
(Int -> V1NamespaceCondition -> ShowS)
-> (V1NamespaceCondition -> String)
-> ([V1NamespaceCondition] -> ShowS)
-> Show V1NamespaceCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NamespaceCondition] -> ShowS
$cshowList :: [V1NamespaceCondition] -> ShowS
show :: V1NamespaceCondition -> String
$cshow :: V1NamespaceCondition -> String
showsPrec :: Int -> V1NamespaceCondition -> ShowS
$cshowsPrec :: Int -> V1NamespaceCondition -> ShowS
P.Show, V1NamespaceCondition -> V1NamespaceCondition -> Bool
(V1NamespaceCondition -> V1NamespaceCondition -> Bool)
-> (V1NamespaceCondition -> V1NamespaceCondition -> Bool)
-> Eq V1NamespaceCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NamespaceCondition -> V1NamespaceCondition -> Bool
$c/= :: V1NamespaceCondition -> V1NamespaceCondition -> Bool
== :: V1NamespaceCondition -> V1NamespaceCondition -> Bool
$c== :: V1NamespaceCondition -> V1NamespaceCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NamespaceCondition
instance A.FromJSON V1NamespaceCondition where
  parseJSON :: Value -> Parser V1NamespaceCondition
parseJSON = String
-> (Object -> Parser V1NamespaceCondition)
-> Value
-> Parser V1NamespaceCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NamespaceCondition" ((Object -> Parser V1NamespaceCondition)
 -> Value -> Parser V1NamespaceCondition)
-> (Object -> Parser V1NamespaceCondition)
-> Value
-> Parser V1NamespaceCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text -> Maybe Text -> Text -> Text -> V1NamespaceCondition
V1NamespaceCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1NamespaceCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text -> Maybe Text -> Text -> Text -> V1NamespaceCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text -> Maybe Text -> Text -> Text -> V1NamespaceCondition)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Text -> Text -> V1NamespaceCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1NamespaceCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1NamespaceCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1NamespaceCondition)
-> Parser Text -> Parser (Text -> V1NamespaceCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1NamespaceCondition)
-> Parser Text -> Parser V1NamespaceCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1NamespaceCondition
instance A.ToJSON V1NamespaceCondition where
  toJSON :: V1NamespaceCondition -> Value
toJSON V1NamespaceCondition {Maybe Text
Maybe DateTime
Text
v1NamespaceConditionType :: Text
v1NamespaceConditionStatus :: Text
v1NamespaceConditionReason :: Maybe Text
v1NamespaceConditionMessage :: Maybe Text
v1NamespaceConditionLastTransitionTime :: Maybe DateTime
v1NamespaceConditionType :: V1NamespaceCondition -> Text
v1NamespaceConditionStatus :: V1NamespaceCondition -> Text
v1NamespaceConditionReason :: V1NamespaceCondition -> Maybe Text
v1NamespaceConditionMessage :: V1NamespaceCondition -> Maybe Text
v1NamespaceConditionLastTransitionTime :: V1NamespaceCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1NamespaceConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NamespaceConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NamespaceConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NamespaceConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NamespaceConditionType
      ]


-- | Construct a value of type 'V1NamespaceCondition' (by applying it's required fields, if any)
mkV1NamespaceCondition
  :: Text -- ^ 'v1NamespaceConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'v1NamespaceConditionType': Type of namespace controller condition.
  -> V1NamespaceCondition
mkV1NamespaceCondition :: Text -> Text -> V1NamespaceCondition
mkV1NamespaceCondition Text
v1NamespaceConditionStatus Text
v1NamespaceConditionType =
  V1NamespaceCondition :: Maybe DateTime
-> Maybe Text -> Maybe Text -> Text -> Text -> V1NamespaceCondition
V1NamespaceCondition
  { v1NamespaceConditionLastTransitionTime :: Maybe DateTime
v1NamespaceConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1NamespaceConditionMessage :: Maybe Text
v1NamespaceConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1NamespaceConditionReason :: Maybe Text
v1NamespaceConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1NamespaceConditionStatus :: Text
v1NamespaceConditionStatus :: Text
v1NamespaceConditionStatus
  , Text
v1NamespaceConditionType :: Text
v1NamespaceConditionType :: Text
v1NamespaceConditionType
  }

-- ** V1NamespaceList
-- | V1NamespaceList
-- NamespaceList is a list of Namespaces.
data V1NamespaceList = V1NamespaceList
  { V1NamespaceList -> Maybe Text
v1NamespaceListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1NamespaceList -> [V1Namespace]
v1NamespaceListItems :: !([V1Namespace]) -- ^ /Required/ "items" - Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
  , V1NamespaceList -> Maybe Text
v1NamespaceListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1NamespaceList -> Maybe V1ListMeta
v1NamespaceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1NamespaceList -> ShowS
[V1NamespaceList] -> ShowS
V1NamespaceList -> String
(Int -> V1NamespaceList -> ShowS)
-> (V1NamespaceList -> String)
-> ([V1NamespaceList] -> ShowS)
-> Show V1NamespaceList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NamespaceList] -> ShowS
$cshowList :: [V1NamespaceList] -> ShowS
show :: V1NamespaceList -> String
$cshow :: V1NamespaceList -> String
showsPrec :: Int -> V1NamespaceList -> ShowS
$cshowsPrec :: Int -> V1NamespaceList -> ShowS
P.Show, V1NamespaceList -> V1NamespaceList -> Bool
(V1NamespaceList -> V1NamespaceList -> Bool)
-> (V1NamespaceList -> V1NamespaceList -> Bool)
-> Eq V1NamespaceList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NamespaceList -> V1NamespaceList -> Bool
$c/= :: V1NamespaceList -> V1NamespaceList -> Bool
== :: V1NamespaceList -> V1NamespaceList -> Bool
$c== :: V1NamespaceList -> V1NamespaceList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NamespaceList
instance A.FromJSON V1NamespaceList where
  parseJSON :: Value -> Parser V1NamespaceList
parseJSON = String
-> (Object -> Parser V1NamespaceList)
-> Value
-> Parser V1NamespaceList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NamespaceList" ((Object -> Parser V1NamespaceList)
 -> Value -> Parser V1NamespaceList)
-> (Object -> Parser V1NamespaceList)
-> Value
-> Parser V1NamespaceList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1Namespace]
-> Maybe Text
-> Maybe V1ListMeta
-> V1NamespaceList
V1NamespaceList
      (Maybe Text
 -> [V1Namespace]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1NamespaceList)
-> Parser (Maybe Text)
-> Parser
     ([V1Namespace]
      -> Maybe Text -> Maybe V1ListMeta -> V1NamespaceList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1Namespace]
   -> Maybe Text -> Maybe V1ListMeta -> V1NamespaceList)
-> Parser [V1Namespace]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1NamespaceList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1Namespace]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1NamespaceList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1NamespaceList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1NamespaceList)
-> Parser (Maybe V1ListMeta) -> Parser V1NamespaceList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1NamespaceList
instance A.ToJSON V1NamespaceList where
  toJSON :: V1NamespaceList -> Value
toJSON V1NamespaceList {[V1Namespace]
Maybe Text
Maybe V1ListMeta
v1NamespaceListMetadata :: Maybe V1ListMeta
v1NamespaceListKind :: Maybe Text
v1NamespaceListItems :: [V1Namespace]
v1NamespaceListApiVersion :: Maybe Text
v1NamespaceListMetadata :: V1NamespaceList -> Maybe V1ListMeta
v1NamespaceListKind :: V1NamespaceList -> Maybe Text
v1NamespaceListItems :: V1NamespaceList -> [V1Namespace]
v1NamespaceListApiVersion :: V1NamespaceList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NamespaceListApiVersion
      , Text
"items" Text -> [V1Namespace] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1Namespace]
v1NamespaceListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NamespaceListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1NamespaceListMetadata
      ]


-- | Construct a value of type 'V1NamespaceList' (by applying it's required fields, if any)
mkV1NamespaceList
  :: [V1Namespace] -- ^ 'v1NamespaceListItems': Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
  -> V1NamespaceList
mkV1NamespaceList :: [V1Namespace] -> V1NamespaceList
mkV1NamespaceList [V1Namespace]
v1NamespaceListItems =
  V1NamespaceList :: Maybe Text
-> [V1Namespace]
-> Maybe Text
-> Maybe V1ListMeta
-> V1NamespaceList
V1NamespaceList
  { v1NamespaceListApiVersion :: Maybe Text
v1NamespaceListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1Namespace]
v1NamespaceListItems :: [V1Namespace]
v1NamespaceListItems :: [V1Namespace]
v1NamespaceListItems
  , v1NamespaceListKind :: Maybe Text
v1NamespaceListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1NamespaceListMetadata :: Maybe V1ListMeta
v1NamespaceListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1NamespaceSpec
-- | V1NamespaceSpec
-- NamespaceSpec describes the attributes on a Namespace.
data V1NamespaceSpec = V1NamespaceSpec
  { V1NamespaceSpec -> Maybe [Text]
v1NamespaceSpecFinalizers :: !(Maybe [Text]) -- ^ "finalizers" - Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
  } deriving (Int -> V1NamespaceSpec -> ShowS
[V1NamespaceSpec] -> ShowS
V1NamespaceSpec -> String
(Int -> V1NamespaceSpec -> ShowS)
-> (V1NamespaceSpec -> String)
-> ([V1NamespaceSpec] -> ShowS)
-> Show V1NamespaceSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NamespaceSpec] -> ShowS
$cshowList :: [V1NamespaceSpec] -> ShowS
show :: V1NamespaceSpec -> String
$cshow :: V1NamespaceSpec -> String
showsPrec :: Int -> V1NamespaceSpec -> ShowS
$cshowsPrec :: Int -> V1NamespaceSpec -> ShowS
P.Show, V1NamespaceSpec -> V1NamespaceSpec -> Bool
(V1NamespaceSpec -> V1NamespaceSpec -> Bool)
-> (V1NamespaceSpec -> V1NamespaceSpec -> Bool)
-> Eq V1NamespaceSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NamespaceSpec -> V1NamespaceSpec -> Bool
$c/= :: V1NamespaceSpec -> V1NamespaceSpec -> Bool
== :: V1NamespaceSpec -> V1NamespaceSpec -> Bool
$c== :: V1NamespaceSpec -> V1NamespaceSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NamespaceSpec
instance A.FromJSON V1NamespaceSpec where
  parseJSON :: Value -> Parser V1NamespaceSpec
parseJSON = String
-> (Object -> Parser V1NamespaceSpec)
-> Value
-> Parser V1NamespaceSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NamespaceSpec" ((Object -> Parser V1NamespaceSpec)
 -> Value -> Parser V1NamespaceSpec)
-> (Object -> Parser V1NamespaceSpec)
-> Value
-> Parser V1NamespaceSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text] -> V1NamespaceSpec
V1NamespaceSpec
      (Maybe [Text] -> V1NamespaceSpec)
-> Parser (Maybe [Text]) -> Parser V1NamespaceSpec
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"finalizers")

-- | ToJSON V1NamespaceSpec
instance A.ToJSON V1NamespaceSpec where
  toJSON :: V1NamespaceSpec -> Value
toJSON V1NamespaceSpec {Maybe [Text]
v1NamespaceSpecFinalizers :: Maybe [Text]
v1NamespaceSpecFinalizers :: V1NamespaceSpec -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"finalizers" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1NamespaceSpecFinalizers
      ]


-- | Construct a value of type 'V1NamespaceSpec' (by applying it's required fields, if any)
mkV1NamespaceSpec
  :: V1NamespaceSpec
mkV1NamespaceSpec :: V1NamespaceSpec
mkV1NamespaceSpec =
  V1NamespaceSpec :: Maybe [Text] -> V1NamespaceSpec
V1NamespaceSpec
  { v1NamespaceSpecFinalizers :: Maybe [Text]
v1NamespaceSpecFinalizers = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1NamespaceStatus
-- | V1NamespaceStatus
-- NamespaceStatus is information about the current status of a Namespace.
data V1NamespaceStatus = V1NamespaceStatus
  { V1NamespaceStatus -> Maybe [V1NamespaceCondition]
v1NamespaceStatusConditions :: !(Maybe [V1NamespaceCondition]) -- ^ "conditions" - Represents the latest available observations of a namespace&#39;s current state.
  , V1NamespaceStatus -> Maybe Text
v1NamespaceStatusPhase :: !(Maybe Text) -- ^ "phase" - Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
  } deriving (Int -> V1NamespaceStatus -> ShowS
[V1NamespaceStatus] -> ShowS
V1NamespaceStatus -> String
(Int -> V1NamespaceStatus -> ShowS)
-> (V1NamespaceStatus -> String)
-> ([V1NamespaceStatus] -> ShowS)
-> Show V1NamespaceStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NamespaceStatus] -> ShowS
$cshowList :: [V1NamespaceStatus] -> ShowS
show :: V1NamespaceStatus -> String
$cshow :: V1NamespaceStatus -> String
showsPrec :: Int -> V1NamespaceStatus -> ShowS
$cshowsPrec :: Int -> V1NamespaceStatus -> ShowS
P.Show, V1NamespaceStatus -> V1NamespaceStatus -> Bool
(V1NamespaceStatus -> V1NamespaceStatus -> Bool)
-> (V1NamespaceStatus -> V1NamespaceStatus -> Bool)
-> Eq V1NamespaceStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NamespaceStatus -> V1NamespaceStatus -> Bool
$c/= :: V1NamespaceStatus -> V1NamespaceStatus -> Bool
== :: V1NamespaceStatus -> V1NamespaceStatus -> Bool
$c== :: V1NamespaceStatus -> V1NamespaceStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NamespaceStatus
instance A.FromJSON V1NamespaceStatus where
  parseJSON :: Value -> Parser V1NamespaceStatus
parseJSON = String
-> (Object -> Parser V1NamespaceStatus)
-> Value
-> Parser V1NamespaceStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NamespaceStatus" ((Object -> Parser V1NamespaceStatus)
 -> Value -> Parser V1NamespaceStatus)
-> (Object -> Parser V1NamespaceStatus)
-> Value
-> Parser V1NamespaceStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1NamespaceCondition] -> Maybe Text -> V1NamespaceStatus
V1NamespaceStatus
      (Maybe [V1NamespaceCondition] -> Maybe Text -> V1NamespaceStatus)
-> Parser (Maybe [V1NamespaceCondition])
-> Parser (Maybe Text -> V1NamespaceStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1NamespaceCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser (Maybe Text -> V1NamespaceStatus)
-> Parser (Maybe Text) -> Parser V1NamespaceStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"phase")

-- | ToJSON V1NamespaceStatus
instance A.ToJSON V1NamespaceStatus where
  toJSON :: V1NamespaceStatus -> Value
toJSON V1NamespaceStatus {Maybe [V1NamespaceCondition]
Maybe Text
v1NamespaceStatusPhase :: Maybe Text
v1NamespaceStatusConditions :: Maybe [V1NamespaceCondition]
v1NamespaceStatusPhase :: V1NamespaceStatus -> Maybe Text
v1NamespaceStatusConditions :: V1NamespaceStatus -> Maybe [V1NamespaceCondition]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"conditions" Text -> Maybe [V1NamespaceCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1NamespaceCondition]
v1NamespaceStatusConditions
      , Text
"phase" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NamespaceStatusPhase
      ]


-- | Construct a value of type 'V1NamespaceStatus' (by applying it's required fields, if any)
mkV1NamespaceStatus
  :: V1NamespaceStatus
mkV1NamespaceStatus :: V1NamespaceStatus
mkV1NamespaceStatus =
  V1NamespaceStatus :: Maybe [V1NamespaceCondition] -> Maybe Text -> V1NamespaceStatus
V1NamespaceStatus
  { v1NamespaceStatusConditions :: Maybe [V1NamespaceCondition]
v1NamespaceStatusConditions = Maybe [V1NamespaceCondition]
forall a. Maybe a
Nothing
  , v1NamespaceStatusPhase :: Maybe Text
v1NamespaceStatusPhase = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1NetworkPolicy
-- | V1NetworkPolicy
-- NetworkPolicy describes what network traffic is allowed for a set of Pods
data V1NetworkPolicy = V1NetworkPolicy
  { V1NetworkPolicy -> Maybe Text
v1NetworkPolicyApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1NetworkPolicy -> Maybe Text
v1NetworkPolicyKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1NetworkPolicy -> Maybe V1ObjectMeta
v1NetworkPolicyMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1NetworkPolicy -> Maybe V1NetworkPolicySpec
v1NetworkPolicySpec :: !(Maybe V1NetworkPolicySpec) -- ^ "spec"
  } deriving (Int -> V1NetworkPolicy -> ShowS
[V1NetworkPolicy] -> ShowS
V1NetworkPolicy -> String
(Int -> V1NetworkPolicy -> ShowS)
-> (V1NetworkPolicy -> String)
-> ([V1NetworkPolicy] -> ShowS)
-> Show V1NetworkPolicy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NetworkPolicy] -> ShowS
$cshowList :: [V1NetworkPolicy] -> ShowS
show :: V1NetworkPolicy -> String
$cshow :: V1NetworkPolicy -> String
showsPrec :: Int -> V1NetworkPolicy -> ShowS
$cshowsPrec :: Int -> V1NetworkPolicy -> ShowS
P.Show, V1NetworkPolicy -> V1NetworkPolicy -> Bool
(V1NetworkPolicy -> V1NetworkPolicy -> Bool)
-> (V1NetworkPolicy -> V1NetworkPolicy -> Bool)
-> Eq V1NetworkPolicy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NetworkPolicy -> V1NetworkPolicy -> Bool
$c/= :: V1NetworkPolicy -> V1NetworkPolicy -> Bool
== :: V1NetworkPolicy -> V1NetworkPolicy -> Bool
$c== :: V1NetworkPolicy -> V1NetworkPolicy -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NetworkPolicy
instance A.FromJSON V1NetworkPolicy where
  parseJSON :: Value -> Parser V1NetworkPolicy
parseJSON = String
-> (Object -> Parser V1NetworkPolicy)
-> Value
-> Parser V1NetworkPolicy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NetworkPolicy" ((Object -> Parser V1NetworkPolicy)
 -> Value -> Parser V1NetworkPolicy)
-> (Object -> Parser V1NetworkPolicy)
-> Value
-> Parser V1NetworkPolicy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1NetworkPolicySpec
-> V1NetworkPolicy
V1NetworkPolicy
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1NetworkPolicySpec
 -> V1NetworkPolicy)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1NetworkPolicySpec
      -> V1NetworkPolicy)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1NetworkPolicySpec
   -> V1NetworkPolicy)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1NetworkPolicySpec -> V1NetworkPolicy)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1NetworkPolicySpec -> V1NetworkPolicy)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe V1NetworkPolicySpec -> V1NetworkPolicy)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe V1NetworkPolicySpec -> V1NetworkPolicy)
-> Parser (Maybe V1NetworkPolicySpec) -> Parser V1NetworkPolicy
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1NetworkPolicySpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")

-- | ToJSON V1NetworkPolicy
instance A.ToJSON V1NetworkPolicy where
  toJSON :: V1NetworkPolicy -> Value
toJSON V1NetworkPolicy {Maybe Text
Maybe V1ObjectMeta
Maybe V1NetworkPolicySpec
v1NetworkPolicySpec :: Maybe V1NetworkPolicySpec
v1NetworkPolicyMetadata :: Maybe V1ObjectMeta
v1NetworkPolicyKind :: Maybe Text
v1NetworkPolicyApiVersion :: Maybe Text
v1NetworkPolicySpec :: V1NetworkPolicy -> Maybe V1NetworkPolicySpec
v1NetworkPolicyMetadata :: V1NetworkPolicy -> Maybe V1ObjectMeta
v1NetworkPolicyKind :: V1NetworkPolicy -> Maybe Text
v1NetworkPolicyApiVersion :: V1NetworkPolicy -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NetworkPolicyApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NetworkPolicyKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1NetworkPolicyMetadata
      , Text
"spec" Text -> Maybe V1NetworkPolicySpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NetworkPolicySpec
v1NetworkPolicySpec
      ]


-- | Construct a value of type 'V1NetworkPolicy' (by applying it's required fields, if any)
mkV1NetworkPolicy
  :: V1NetworkPolicy
mkV1NetworkPolicy :: V1NetworkPolicy
mkV1NetworkPolicy =
  V1NetworkPolicy :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1NetworkPolicySpec
-> V1NetworkPolicy
V1NetworkPolicy
  { v1NetworkPolicyApiVersion :: Maybe Text
v1NetworkPolicyApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1NetworkPolicyKind :: Maybe Text
v1NetworkPolicyKind = Maybe Text
forall a. Maybe a
Nothing
  , v1NetworkPolicyMetadata :: Maybe V1ObjectMeta
v1NetworkPolicyMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1NetworkPolicySpec :: Maybe V1NetworkPolicySpec
v1NetworkPolicySpec = Maybe V1NetworkPolicySpec
forall a. Maybe a
Nothing
  }

-- ** V1NetworkPolicyEgressRule
-- | V1NetworkPolicyEgressRule
-- NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8
data V1NetworkPolicyEgressRule = V1NetworkPolicyEgressRule
  { V1NetworkPolicyEgressRule -> Maybe [V1NetworkPolicyPort]
v1NetworkPolicyEgressRulePorts :: !(Maybe [V1NetworkPolicyPort]) -- ^ "ports" - List of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.
  , V1NetworkPolicyEgressRule -> Maybe [V1NetworkPolicyPeer]
v1NetworkPolicyEgressRuleTo :: !(Maybe [V1NetworkPolicyPeer]) -- ^ "to" - List of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.
  } deriving (Int -> V1NetworkPolicyEgressRule -> ShowS
[V1NetworkPolicyEgressRule] -> ShowS
V1NetworkPolicyEgressRule -> String
(Int -> V1NetworkPolicyEgressRule -> ShowS)
-> (V1NetworkPolicyEgressRule -> String)
-> ([V1NetworkPolicyEgressRule] -> ShowS)
-> Show V1NetworkPolicyEgressRule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NetworkPolicyEgressRule] -> ShowS
$cshowList :: [V1NetworkPolicyEgressRule] -> ShowS
show :: V1NetworkPolicyEgressRule -> String
$cshow :: V1NetworkPolicyEgressRule -> String
showsPrec :: Int -> V1NetworkPolicyEgressRule -> ShowS
$cshowsPrec :: Int -> V1NetworkPolicyEgressRule -> ShowS
P.Show, V1NetworkPolicyEgressRule -> V1NetworkPolicyEgressRule -> Bool
(V1NetworkPolicyEgressRule -> V1NetworkPolicyEgressRule -> Bool)
-> (V1NetworkPolicyEgressRule -> V1NetworkPolicyEgressRule -> Bool)
-> Eq V1NetworkPolicyEgressRule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NetworkPolicyEgressRule -> V1NetworkPolicyEgressRule -> Bool
$c/= :: V1NetworkPolicyEgressRule -> V1NetworkPolicyEgressRule -> Bool
== :: V1NetworkPolicyEgressRule -> V1NetworkPolicyEgressRule -> Bool
$c== :: V1NetworkPolicyEgressRule -> V1NetworkPolicyEgressRule -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NetworkPolicyEgressRule
instance A.FromJSON V1NetworkPolicyEgressRule where
  parseJSON :: Value -> Parser V1NetworkPolicyEgressRule
parseJSON = String
-> (Object -> Parser V1NetworkPolicyEgressRule)
-> Value
-> Parser V1NetworkPolicyEgressRule
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NetworkPolicyEgressRule" ((Object -> Parser V1NetworkPolicyEgressRule)
 -> Value -> Parser V1NetworkPolicyEgressRule)
-> (Object -> Parser V1NetworkPolicyEgressRule)
-> Value
-> Parser V1NetworkPolicyEgressRule
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1NetworkPolicyPort]
-> Maybe [V1NetworkPolicyPeer] -> V1NetworkPolicyEgressRule
V1NetworkPolicyEgressRule
      (Maybe [V1NetworkPolicyPort]
 -> Maybe [V1NetworkPolicyPeer] -> V1NetworkPolicyEgressRule)
-> Parser (Maybe [V1NetworkPolicyPort])
-> Parser
     (Maybe [V1NetworkPolicyPeer] -> V1NetworkPolicyEgressRule)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1NetworkPolicyPort])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ports")
      Parser (Maybe [V1NetworkPolicyPeer] -> V1NetworkPolicyEgressRule)
-> Parser (Maybe [V1NetworkPolicyPeer])
-> Parser V1NetworkPolicyEgressRule
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1NetworkPolicyPeer])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"to")

-- | ToJSON V1NetworkPolicyEgressRule
instance A.ToJSON V1NetworkPolicyEgressRule where
  toJSON :: V1NetworkPolicyEgressRule -> Value
toJSON V1NetworkPolicyEgressRule {Maybe [V1NetworkPolicyPort]
Maybe [V1NetworkPolicyPeer]
v1NetworkPolicyEgressRuleTo :: Maybe [V1NetworkPolicyPeer]
v1NetworkPolicyEgressRulePorts :: Maybe [V1NetworkPolicyPort]
v1NetworkPolicyEgressRuleTo :: V1NetworkPolicyEgressRule -> Maybe [V1NetworkPolicyPeer]
v1NetworkPolicyEgressRulePorts :: V1NetworkPolicyEgressRule -> Maybe [V1NetworkPolicyPort]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"ports" Text -> Maybe [V1NetworkPolicyPort] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1NetworkPolicyPort]
v1NetworkPolicyEgressRulePorts
      , Text
"to" Text -> Maybe [V1NetworkPolicyPeer] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1NetworkPolicyPeer]
v1NetworkPolicyEgressRuleTo
      ]


-- | Construct a value of type 'V1NetworkPolicyEgressRule' (by applying it's required fields, if any)
mkV1NetworkPolicyEgressRule
  :: V1NetworkPolicyEgressRule
mkV1NetworkPolicyEgressRule :: V1NetworkPolicyEgressRule
mkV1NetworkPolicyEgressRule =
  V1NetworkPolicyEgressRule :: Maybe [V1NetworkPolicyPort]
-> Maybe [V1NetworkPolicyPeer] -> V1NetworkPolicyEgressRule
V1NetworkPolicyEgressRule
  { v1NetworkPolicyEgressRulePorts :: Maybe [V1NetworkPolicyPort]
v1NetworkPolicyEgressRulePorts = Maybe [V1NetworkPolicyPort]
forall a. Maybe a
Nothing
  , v1NetworkPolicyEgressRuleTo :: Maybe [V1NetworkPolicyPeer]
v1NetworkPolicyEgressRuleTo = Maybe [V1NetworkPolicyPeer]
forall a. Maybe a
Nothing
  }

-- ** V1NetworkPolicyIngressRule
-- | V1NetworkPolicyIngressRule
-- NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.
data V1NetworkPolicyIngressRule = V1NetworkPolicyIngressRule
  { V1NetworkPolicyIngressRule -> Maybe [V1NetworkPolicyPeer]
v1NetworkPolicyIngressRuleFrom :: !(Maybe [V1NetworkPolicyPeer]) -- ^ "from" - List of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the from list.
  , V1NetworkPolicyIngressRule -> Maybe [V1NetworkPolicyPort]
v1NetworkPolicyIngressRulePorts :: !(Maybe [V1NetworkPolicyPort]) -- ^ "ports" - List of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.
  } deriving (Int -> V1NetworkPolicyIngressRule -> ShowS
[V1NetworkPolicyIngressRule] -> ShowS
V1NetworkPolicyIngressRule -> String
(Int -> V1NetworkPolicyIngressRule -> ShowS)
-> (V1NetworkPolicyIngressRule -> String)
-> ([V1NetworkPolicyIngressRule] -> ShowS)
-> Show V1NetworkPolicyIngressRule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NetworkPolicyIngressRule] -> ShowS
$cshowList :: [V1NetworkPolicyIngressRule] -> ShowS
show :: V1NetworkPolicyIngressRule -> String
$cshow :: V1NetworkPolicyIngressRule -> String
showsPrec :: Int -> V1NetworkPolicyIngressRule -> ShowS
$cshowsPrec :: Int -> V1NetworkPolicyIngressRule -> ShowS
P.Show, V1NetworkPolicyIngressRule -> V1NetworkPolicyIngressRule -> Bool
(V1NetworkPolicyIngressRule -> V1NetworkPolicyIngressRule -> Bool)
-> (V1NetworkPolicyIngressRule
    -> V1NetworkPolicyIngressRule -> Bool)
-> Eq V1NetworkPolicyIngressRule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NetworkPolicyIngressRule -> V1NetworkPolicyIngressRule -> Bool
$c/= :: V1NetworkPolicyIngressRule -> V1NetworkPolicyIngressRule -> Bool
== :: V1NetworkPolicyIngressRule -> V1NetworkPolicyIngressRule -> Bool
$c== :: V1NetworkPolicyIngressRule -> V1NetworkPolicyIngressRule -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NetworkPolicyIngressRule
instance A.FromJSON V1NetworkPolicyIngressRule where
  parseJSON :: Value -> Parser V1NetworkPolicyIngressRule
parseJSON = String
-> (Object -> Parser V1NetworkPolicyIngressRule)
-> Value
-> Parser V1NetworkPolicyIngressRule
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NetworkPolicyIngressRule" ((Object -> Parser V1NetworkPolicyIngressRule)
 -> Value -> Parser V1NetworkPolicyIngressRule)
-> (Object -> Parser V1NetworkPolicyIngressRule)
-> Value
-> Parser V1NetworkPolicyIngressRule
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1NetworkPolicyPeer]
-> Maybe [V1NetworkPolicyPort] -> V1NetworkPolicyIngressRule
V1NetworkPolicyIngressRule
      (Maybe [V1NetworkPolicyPeer]
 -> Maybe [V1NetworkPolicyPort] -> V1NetworkPolicyIngressRule)
-> Parser (Maybe [V1NetworkPolicyPeer])
-> Parser
     (Maybe [V1NetworkPolicyPort] -> V1NetworkPolicyIngressRule)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1NetworkPolicyPeer])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"from")
      Parser (Maybe [V1NetworkPolicyPort] -> V1NetworkPolicyIngressRule)
-> Parser (Maybe [V1NetworkPolicyPort])
-> Parser V1NetworkPolicyIngressRule
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1NetworkPolicyPort])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ports")

-- | ToJSON V1NetworkPolicyIngressRule
instance A.ToJSON V1NetworkPolicyIngressRule where
  toJSON :: V1NetworkPolicyIngressRule -> Value
toJSON V1NetworkPolicyIngressRule {Maybe [V1NetworkPolicyPort]
Maybe [V1NetworkPolicyPeer]
v1NetworkPolicyIngressRulePorts :: Maybe [V1NetworkPolicyPort]
v1NetworkPolicyIngressRuleFrom :: Maybe [V1NetworkPolicyPeer]
v1NetworkPolicyIngressRulePorts :: V1NetworkPolicyIngressRule -> Maybe [V1NetworkPolicyPort]
v1NetworkPolicyIngressRuleFrom :: V1NetworkPolicyIngressRule -> Maybe [V1NetworkPolicyPeer]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"from" Text -> Maybe [V1NetworkPolicyPeer] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1NetworkPolicyPeer]
v1NetworkPolicyIngressRuleFrom
      , Text
"ports" Text -> Maybe [V1NetworkPolicyPort] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1NetworkPolicyPort]
v1NetworkPolicyIngressRulePorts
      ]


-- | Construct a value of type 'V1NetworkPolicyIngressRule' (by applying it's required fields, if any)
mkV1NetworkPolicyIngressRule
  :: V1NetworkPolicyIngressRule
mkV1NetworkPolicyIngressRule :: V1NetworkPolicyIngressRule
mkV1NetworkPolicyIngressRule =
  V1NetworkPolicyIngressRule :: Maybe [V1NetworkPolicyPeer]
-> Maybe [V1NetworkPolicyPort] -> V1NetworkPolicyIngressRule
V1NetworkPolicyIngressRule
  { v1NetworkPolicyIngressRuleFrom :: Maybe [V1NetworkPolicyPeer]
v1NetworkPolicyIngressRuleFrom = Maybe [V1NetworkPolicyPeer]
forall a. Maybe a
Nothing
  , v1NetworkPolicyIngressRulePorts :: Maybe [V1NetworkPolicyPort]
v1NetworkPolicyIngressRulePorts = Maybe [V1NetworkPolicyPort]
forall a. Maybe a
Nothing
  }

-- ** V1NetworkPolicyList
-- | V1NetworkPolicyList
-- NetworkPolicyList is a list of NetworkPolicy objects.
data V1NetworkPolicyList = V1NetworkPolicyList
  { V1NetworkPolicyList -> Maybe Text
v1NetworkPolicyListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1NetworkPolicyList -> [V1NetworkPolicy]
v1NetworkPolicyListItems :: !([V1NetworkPolicy]) -- ^ /Required/ "items" - Items is a list of schema objects.
  , V1NetworkPolicyList -> Maybe Text
v1NetworkPolicyListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1NetworkPolicyList -> Maybe V1ListMeta
v1NetworkPolicyListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1NetworkPolicyList -> ShowS
[V1NetworkPolicyList] -> ShowS
V1NetworkPolicyList -> String
(Int -> V1NetworkPolicyList -> ShowS)
-> (V1NetworkPolicyList -> String)
-> ([V1NetworkPolicyList] -> ShowS)
-> Show V1NetworkPolicyList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NetworkPolicyList] -> ShowS
$cshowList :: [V1NetworkPolicyList] -> ShowS
show :: V1NetworkPolicyList -> String
$cshow :: V1NetworkPolicyList -> String
showsPrec :: Int -> V1NetworkPolicyList -> ShowS
$cshowsPrec :: Int -> V1NetworkPolicyList -> ShowS
P.Show, V1NetworkPolicyList -> V1NetworkPolicyList -> Bool
(V1NetworkPolicyList -> V1NetworkPolicyList -> Bool)
-> (V1NetworkPolicyList -> V1NetworkPolicyList -> Bool)
-> Eq V1NetworkPolicyList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NetworkPolicyList -> V1NetworkPolicyList -> Bool
$c/= :: V1NetworkPolicyList -> V1NetworkPolicyList -> Bool
== :: V1NetworkPolicyList -> V1NetworkPolicyList -> Bool
$c== :: V1NetworkPolicyList -> V1NetworkPolicyList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NetworkPolicyList
instance A.FromJSON V1NetworkPolicyList where
  parseJSON :: Value -> Parser V1NetworkPolicyList
parseJSON = String
-> (Object -> Parser V1NetworkPolicyList)
-> Value
-> Parser V1NetworkPolicyList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NetworkPolicyList" ((Object -> Parser V1NetworkPolicyList)
 -> Value -> Parser V1NetworkPolicyList)
-> (Object -> Parser V1NetworkPolicyList)
-> Value
-> Parser V1NetworkPolicyList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1NetworkPolicy]
-> Maybe Text
-> Maybe V1ListMeta
-> V1NetworkPolicyList
V1NetworkPolicyList
      (Maybe Text
 -> [V1NetworkPolicy]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1NetworkPolicyList)
-> Parser (Maybe Text)
-> Parser
     ([V1NetworkPolicy]
      -> Maybe Text -> Maybe V1ListMeta -> V1NetworkPolicyList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1NetworkPolicy]
   -> Maybe Text -> Maybe V1ListMeta -> V1NetworkPolicyList)
-> Parser [V1NetworkPolicy]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1NetworkPolicyList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1NetworkPolicy]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1NetworkPolicyList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1NetworkPolicyList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1NetworkPolicyList)
-> Parser (Maybe V1ListMeta) -> Parser V1NetworkPolicyList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1NetworkPolicyList
instance A.ToJSON V1NetworkPolicyList where
  toJSON :: V1NetworkPolicyList -> Value
toJSON V1NetworkPolicyList {[V1NetworkPolicy]
Maybe Text
Maybe V1ListMeta
v1NetworkPolicyListMetadata :: Maybe V1ListMeta
v1NetworkPolicyListKind :: Maybe Text
v1NetworkPolicyListItems :: [V1NetworkPolicy]
v1NetworkPolicyListApiVersion :: Maybe Text
v1NetworkPolicyListMetadata :: V1NetworkPolicyList -> Maybe V1ListMeta
v1NetworkPolicyListKind :: V1NetworkPolicyList -> Maybe Text
v1NetworkPolicyListItems :: V1NetworkPolicyList -> [V1NetworkPolicy]
v1NetworkPolicyListApiVersion :: V1NetworkPolicyList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NetworkPolicyListApiVersion
      , Text
"items" Text -> [V1NetworkPolicy] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1NetworkPolicy]
v1NetworkPolicyListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NetworkPolicyListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1NetworkPolicyListMetadata
      ]


-- | Construct a value of type 'V1NetworkPolicyList' (by applying it's required fields, if any)
mkV1NetworkPolicyList
  :: [V1NetworkPolicy] -- ^ 'v1NetworkPolicyListItems': Items is a list of schema objects.
  -> V1NetworkPolicyList
mkV1NetworkPolicyList :: [V1NetworkPolicy] -> V1NetworkPolicyList
mkV1NetworkPolicyList [V1NetworkPolicy]
v1NetworkPolicyListItems =
  V1NetworkPolicyList :: Maybe Text
-> [V1NetworkPolicy]
-> Maybe Text
-> Maybe V1ListMeta
-> V1NetworkPolicyList
V1NetworkPolicyList
  { v1NetworkPolicyListApiVersion :: Maybe Text
v1NetworkPolicyListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1NetworkPolicy]
v1NetworkPolicyListItems :: [V1NetworkPolicy]
v1NetworkPolicyListItems :: [V1NetworkPolicy]
v1NetworkPolicyListItems
  , v1NetworkPolicyListKind :: Maybe Text
v1NetworkPolicyListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1NetworkPolicyListMetadata :: Maybe V1ListMeta
v1NetworkPolicyListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1NetworkPolicyPeer
-- | V1NetworkPolicyPeer
-- NetworkPolicyPeer describes a peer to allow traffic from. Only certain combinations of fields are allowed
data V1NetworkPolicyPeer = V1NetworkPolicyPeer
  { V1NetworkPolicyPeer -> Maybe V1IPBlock
v1NetworkPolicyPeerIpBlock :: !(Maybe V1IPBlock) -- ^ "ipBlock"
  , V1NetworkPolicyPeer -> Maybe V1LabelSelector
v1NetworkPolicyPeerNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"
  , V1NetworkPolicyPeer -> Maybe V1LabelSelector
v1NetworkPolicyPeerPodSelector :: !(Maybe V1LabelSelector) -- ^ "podSelector"
  } deriving (Int -> V1NetworkPolicyPeer -> ShowS
[V1NetworkPolicyPeer] -> ShowS
V1NetworkPolicyPeer -> String
(Int -> V1NetworkPolicyPeer -> ShowS)
-> (V1NetworkPolicyPeer -> String)
-> ([V1NetworkPolicyPeer] -> ShowS)
-> Show V1NetworkPolicyPeer
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NetworkPolicyPeer] -> ShowS
$cshowList :: [V1NetworkPolicyPeer] -> ShowS
show :: V1NetworkPolicyPeer -> String
$cshow :: V1NetworkPolicyPeer -> String
showsPrec :: Int -> V1NetworkPolicyPeer -> ShowS
$cshowsPrec :: Int -> V1NetworkPolicyPeer -> ShowS
P.Show, V1NetworkPolicyPeer -> V1NetworkPolicyPeer -> Bool
(V1NetworkPolicyPeer -> V1NetworkPolicyPeer -> Bool)
-> (V1NetworkPolicyPeer -> V1NetworkPolicyPeer -> Bool)
-> Eq V1NetworkPolicyPeer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NetworkPolicyPeer -> V1NetworkPolicyPeer -> Bool
$c/= :: V1NetworkPolicyPeer -> V1NetworkPolicyPeer -> Bool
== :: V1NetworkPolicyPeer -> V1NetworkPolicyPeer -> Bool
$c== :: V1NetworkPolicyPeer -> V1NetworkPolicyPeer -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NetworkPolicyPeer
instance A.FromJSON V1NetworkPolicyPeer where
  parseJSON :: Value -> Parser V1NetworkPolicyPeer
parseJSON = String
-> (Object -> Parser V1NetworkPolicyPeer)
-> Value
-> Parser V1NetworkPolicyPeer
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NetworkPolicyPeer" ((Object -> Parser V1NetworkPolicyPeer)
 -> Value -> Parser V1NetworkPolicyPeer)
-> (Object -> Parser V1NetworkPolicyPeer)
-> Value
-> Parser V1NetworkPolicyPeer
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1IPBlock
-> Maybe V1LabelSelector
-> Maybe V1LabelSelector
-> V1NetworkPolicyPeer
V1NetworkPolicyPeer
      (Maybe V1IPBlock
 -> Maybe V1LabelSelector
 -> Maybe V1LabelSelector
 -> V1NetworkPolicyPeer)
-> Parser (Maybe V1IPBlock)
-> Parser
     (Maybe V1LabelSelector
      -> Maybe V1LabelSelector -> V1NetworkPolicyPeer)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1IPBlock)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ipBlock")
      Parser
  (Maybe V1LabelSelector
   -> Maybe V1LabelSelector -> V1NetworkPolicyPeer)
-> Parser (Maybe V1LabelSelector)
-> Parser (Maybe V1LabelSelector -> V1NetworkPolicyPeer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespaceSelector")
      Parser (Maybe V1LabelSelector -> V1NetworkPolicyPeer)
-> Parser (Maybe V1LabelSelector) -> Parser V1NetworkPolicyPeer
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"podSelector")

-- | ToJSON V1NetworkPolicyPeer
instance A.ToJSON V1NetworkPolicyPeer where
  toJSON :: V1NetworkPolicyPeer -> Value
toJSON V1NetworkPolicyPeer {Maybe V1LabelSelector
Maybe V1IPBlock
v1NetworkPolicyPeerPodSelector :: Maybe V1LabelSelector
v1NetworkPolicyPeerNamespaceSelector :: Maybe V1LabelSelector
v1NetworkPolicyPeerIpBlock :: Maybe V1IPBlock
v1NetworkPolicyPeerPodSelector :: V1NetworkPolicyPeer -> Maybe V1LabelSelector
v1NetworkPolicyPeerNamespaceSelector :: V1NetworkPolicyPeer -> Maybe V1LabelSelector
v1NetworkPolicyPeerIpBlock :: V1NetworkPolicyPeer -> Maybe V1IPBlock
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"ipBlock" Text -> Maybe V1IPBlock -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1IPBlock
v1NetworkPolicyPeerIpBlock
      , Text
"namespaceSelector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1NetworkPolicyPeerNamespaceSelector
      , Text
"podSelector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1NetworkPolicyPeerPodSelector
      ]


-- | Construct a value of type 'V1NetworkPolicyPeer' (by applying it's required fields, if any)
mkV1NetworkPolicyPeer
  :: V1NetworkPolicyPeer
mkV1NetworkPolicyPeer :: V1NetworkPolicyPeer
mkV1NetworkPolicyPeer =
  V1NetworkPolicyPeer :: Maybe V1IPBlock
-> Maybe V1LabelSelector
-> Maybe V1LabelSelector
-> V1NetworkPolicyPeer
V1NetworkPolicyPeer
  { v1NetworkPolicyPeerIpBlock :: Maybe V1IPBlock
v1NetworkPolicyPeerIpBlock = Maybe V1IPBlock
forall a. Maybe a
Nothing
  , v1NetworkPolicyPeerNamespaceSelector :: Maybe V1LabelSelector
v1NetworkPolicyPeerNamespaceSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , v1NetworkPolicyPeerPodSelector :: Maybe V1LabelSelector
v1NetworkPolicyPeerPodSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  }

-- ** V1NetworkPolicyPort
-- | V1NetworkPolicyPort
-- NetworkPolicyPort describes a port to allow traffic on
data V1NetworkPolicyPort = V1NetworkPolicyPort
  { V1NetworkPolicyPort -> Maybe IntOrString
v1NetworkPolicyPortPort :: !(Maybe IntOrString) -- ^ "port"
  , V1NetworkPolicyPort -> Maybe Text
v1NetworkPolicyPortProtocol :: !(Maybe Text) -- ^ "protocol" - The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.
  } deriving (Int -> V1NetworkPolicyPort -> ShowS
[V1NetworkPolicyPort] -> ShowS
V1NetworkPolicyPort -> String
(Int -> V1NetworkPolicyPort -> ShowS)
-> (V1NetworkPolicyPort -> String)
-> ([V1NetworkPolicyPort] -> ShowS)
-> Show V1NetworkPolicyPort
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NetworkPolicyPort] -> ShowS
$cshowList :: [V1NetworkPolicyPort] -> ShowS
show :: V1NetworkPolicyPort -> String
$cshow :: V1NetworkPolicyPort -> String
showsPrec :: Int -> V1NetworkPolicyPort -> ShowS
$cshowsPrec :: Int -> V1NetworkPolicyPort -> ShowS
P.Show, V1NetworkPolicyPort -> V1NetworkPolicyPort -> Bool
(V1NetworkPolicyPort -> V1NetworkPolicyPort -> Bool)
-> (V1NetworkPolicyPort -> V1NetworkPolicyPort -> Bool)
-> Eq V1NetworkPolicyPort
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NetworkPolicyPort -> V1NetworkPolicyPort -> Bool
$c/= :: V1NetworkPolicyPort -> V1NetworkPolicyPort -> Bool
== :: V1NetworkPolicyPort -> V1NetworkPolicyPort -> Bool
$c== :: V1NetworkPolicyPort -> V1NetworkPolicyPort -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NetworkPolicyPort
instance A.FromJSON V1NetworkPolicyPort where
  parseJSON :: Value -> Parser V1NetworkPolicyPort
parseJSON = String
-> (Object -> Parser V1NetworkPolicyPort)
-> Value
-> Parser V1NetworkPolicyPort
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NetworkPolicyPort" ((Object -> Parser V1NetworkPolicyPort)
 -> Value -> Parser V1NetworkPolicyPort)
-> (Object -> Parser V1NetworkPolicyPort)
-> Value
-> Parser V1NetworkPolicyPort
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe IntOrString -> Maybe Text -> V1NetworkPolicyPort
V1NetworkPolicyPort
      (Maybe IntOrString -> Maybe Text -> V1NetworkPolicyPort)
-> Parser (Maybe IntOrString)
-> Parser (Maybe Text -> V1NetworkPolicyPort)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe IntOrString)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"port")
      Parser (Maybe Text -> V1NetworkPolicyPort)
-> Parser (Maybe Text) -> Parser V1NetworkPolicyPort
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"protocol")

-- | ToJSON V1NetworkPolicyPort
instance A.ToJSON V1NetworkPolicyPort where
  toJSON :: V1NetworkPolicyPort -> Value
toJSON V1NetworkPolicyPort {Maybe Text
Maybe IntOrString
v1NetworkPolicyPortProtocol :: Maybe Text
v1NetworkPolicyPortPort :: Maybe IntOrString
v1NetworkPolicyPortProtocol :: V1NetworkPolicyPort -> Maybe Text
v1NetworkPolicyPortPort :: V1NetworkPolicyPort -> Maybe IntOrString
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"port" Text -> Maybe IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe IntOrString
v1NetworkPolicyPortPort
      , Text
"protocol" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NetworkPolicyPortProtocol
      ]


-- | Construct a value of type 'V1NetworkPolicyPort' (by applying it's required fields, if any)
mkV1NetworkPolicyPort
  :: V1NetworkPolicyPort
mkV1NetworkPolicyPort :: V1NetworkPolicyPort
mkV1NetworkPolicyPort =
  V1NetworkPolicyPort :: Maybe IntOrString -> Maybe Text -> V1NetworkPolicyPort
V1NetworkPolicyPort
  { v1NetworkPolicyPortPort :: Maybe IntOrString
v1NetworkPolicyPortPort = Maybe IntOrString
forall a. Maybe a
Nothing
  , v1NetworkPolicyPortProtocol :: Maybe Text
v1NetworkPolicyPortProtocol = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1NetworkPolicySpec
-- | V1NetworkPolicySpec
-- NetworkPolicySpec provides the specification of a NetworkPolicy
data V1NetworkPolicySpec = V1NetworkPolicySpec
  { V1NetworkPolicySpec -> Maybe [V1NetworkPolicyEgressRule]
v1NetworkPolicySpecEgress :: !(Maybe [V1NetworkPolicyEgressRule]) -- ^ "egress" - List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8
  , V1NetworkPolicySpec -> Maybe [V1NetworkPolicyIngressRule]
v1NetworkPolicySpecIngress :: !(Maybe [V1NetworkPolicyIngressRule]) -- ^ "ingress" - List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod&#39;s local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)
  , V1NetworkPolicySpec -> V1LabelSelector
v1NetworkPolicySpecPodSelector :: !(V1LabelSelector) -- ^ /Required/ "podSelector"
  , V1NetworkPolicySpec -> Maybe [Text]
v1NetworkPolicySpecPolicyTypes :: !(Maybe [Text]) -- ^ "policyTypes" - List of rule types that the NetworkPolicy relates to. Valid options are \&quot;Ingress\&quot;, \&quot;Egress\&quot;, or \&quot;Ingress,Egress\&quot;. If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \&quot;Egress\&quot; ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \&quot;Egress\&quot; (since such a policy would not include an Egress section and would otherwise default to just [ \&quot;Ingress\&quot; ]). This field is beta-level in 1.8
  } deriving (Int -> V1NetworkPolicySpec -> ShowS
[V1NetworkPolicySpec] -> ShowS
V1NetworkPolicySpec -> String
(Int -> V1NetworkPolicySpec -> ShowS)
-> (V1NetworkPolicySpec -> String)
-> ([V1NetworkPolicySpec] -> ShowS)
-> Show V1NetworkPolicySpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NetworkPolicySpec] -> ShowS
$cshowList :: [V1NetworkPolicySpec] -> ShowS
show :: V1NetworkPolicySpec -> String
$cshow :: V1NetworkPolicySpec -> String
showsPrec :: Int -> V1NetworkPolicySpec -> ShowS
$cshowsPrec :: Int -> V1NetworkPolicySpec -> ShowS
P.Show, V1NetworkPolicySpec -> V1NetworkPolicySpec -> Bool
(V1NetworkPolicySpec -> V1NetworkPolicySpec -> Bool)
-> (V1NetworkPolicySpec -> V1NetworkPolicySpec -> Bool)
-> Eq V1NetworkPolicySpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NetworkPolicySpec -> V1NetworkPolicySpec -> Bool
$c/= :: V1NetworkPolicySpec -> V1NetworkPolicySpec -> Bool
== :: V1NetworkPolicySpec -> V1NetworkPolicySpec -> Bool
$c== :: V1NetworkPolicySpec -> V1NetworkPolicySpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NetworkPolicySpec
instance A.FromJSON V1NetworkPolicySpec where
  parseJSON :: Value -> Parser V1NetworkPolicySpec
parseJSON = String
-> (Object -> Parser V1NetworkPolicySpec)
-> Value
-> Parser V1NetworkPolicySpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NetworkPolicySpec" ((Object -> Parser V1NetworkPolicySpec)
 -> Value -> Parser V1NetworkPolicySpec)
-> (Object -> Parser V1NetworkPolicySpec)
-> Value
-> Parser V1NetworkPolicySpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1NetworkPolicyEgressRule]
-> Maybe [V1NetworkPolicyIngressRule]
-> V1LabelSelector
-> Maybe [Text]
-> V1NetworkPolicySpec
V1NetworkPolicySpec
      (Maybe [V1NetworkPolicyEgressRule]
 -> Maybe [V1NetworkPolicyIngressRule]
 -> V1LabelSelector
 -> Maybe [Text]
 -> V1NetworkPolicySpec)
-> Parser (Maybe [V1NetworkPolicyEgressRule])
-> Parser
     (Maybe [V1NetworkPolicyIngressRule]
      -> V1LabelSelector -> Maybe [Text] -> V1NetworkPolicySpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1NetworkPolicyEgressRule])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"egress")
      Parser
  (Maybe [V1NetworkPolicyIngressRule]
   -> V1LabelSelector -> Maybe [Text] -> V1NetworkPolicySpec)
-> Parser (Maybe [V1NetworkPolicyIngressRule])
-> Parser (V1LabelSelector -> Maybe [Text] -> V1NetworkPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1NetworkPolicyIngressRule])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ingress")
      Parser (V1LabelSelector -> Maybe [Text] -> V1NetworkPolicySpec)
-> Parser V1LabelSelector
-> Parser (Maybe [Text] -> V1NetworkPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1LabelSelector
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"podSelector")
      Parser (Maybe [Text] -> V1NetworkPolicySpec)
-> Parser (Maybe [Text]) -> Parser V1NetworkPolicySpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"policyTypes")

-- | ToJSON V1NetworkPolicySpec
instance A.ToJSON V1NetworkPolicySpec where
  toJSON :: V1NetworkPolicySpec -> Value
toJSON V1NetworkPolicySpec {Maybe [Text]
Maybe [V1NetworkPolicyIngressRule]
Maybe [V1NetworkPolicyEgressRule]
V1LabelSelector
v1NetworkPolicySpecPolicyTypes :: Maybe [Text]
v1NetworkPolicySpecPodSelector :: V1LabelSelector
v1NetworkPolicySpecIngress :: Maybe [V1NetworkPolicyIngressRule]
v1NetworkPolicySpecEgress :: Maybe [V1NetworkPolicyEgressRule]
v1NetworkPolicySpecPolicyTypes :: V1NetworkPolicySpec -> Maybe [Text]
v1NetworkPolicySpecPodSelector :: V1NetworkPolicySpec -> V1LabelSelector
v1NetworkPolicySpecIngress :: V1NetworkPolicySpec -> Maybe [V1NetworkPolicyIngressRule]
v1NetworkPolicySpecEgress :: V1NetworkPolicySpec -> Maybe [V1NetworkPolicyEgressRule]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"egress" Text -> Maybe [V1NetworkPolicyEgressRule] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1NetworkPolicyEgressRule]
v1NetworkPolicySpecEgress
      , Text
"ingress" Text -> Maybe [V1NetworkPolicyIngressRule] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1NetworkPolicyIngressRule]
v1NetworkPolicySpecIngress
      , Text
"podSelector" Text -> V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1LabelSelector
v1NetworkPolicySpecPodSelector
      , Text
"policyTypes" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1NetworkPolicySpecPolicyTypes
      ]


-- | Construct a value of type 'V1NetworkPolicySpec' (by applying it's required fields, if any)
mkV1NetworkPolicySpec
  :: V1LabelSelector -- ^ 'v1NetworkPolicySpecPodSelector' 
  -> V1NetworkPolicySpec
mkV1NetworkPolicySpec :: V1LabelSelector -> V1NetworkPolicySpec
mkV1NetworkPolicySpec V1LabelSelector
v1NetworkPolicySpecPodSelector =
  V1NetworkPolicySpec :: Maybe [V1NetworkPolicyEgressRule]
-> Maybe [V1NetworkPolicyIngressRule]
-> V1LabelSelector
-> Maybe [Text]
-> V1NetworkPolicySpec
V1NetworkPolicySpec
  { v1NetworkPolicySpecEgress :: Maybe [V1NetworkPolicyEgressRule]
v1NetworkPolicySpecEgress = Maybe [V1NetworkPolicyEgressRule]
forall a. Maybe a
Nothing
  , v1NetworkPolicySpecIngress :: Maybe [V1NetworkPolicyIngressRule]
v1NetworkPolicySpecIngress = Maybe [V1NetworkPolicyIngressRule]
forall a. Maybe a
Nothing
  , V1LabelSelector
v1NetworkPolicySpecPodSelector :: V1LabelSelector
v1NetworkPolicySpecPodSelector :: V1LabelSelector
v1NetworkPolicySpecPodSelector
  , v1NetworkPolicySpecPolicyTypes :: Maybe [Text]
v1NetworkPolicySpecPolicyTypes = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1Node
-- | V1Node
-- Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).
data V1Node = V1Node
  { V1Node -> Maybe Text
v1NodeApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1Node -> Maybe Text
v1NodeKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1Node -> Maybe V1ObjectMeta
v1NodeMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1Node -> Maybe V1NodeSpec
v1NodeSpec :: !(Maybe V1NodeSpec) -- ^ "spec"
  , V1Node -> Maybe V1NodeStatus
v1NodeStatus :: !(Maybe V1NodeStatus) -- ^ "status"
  } deriving (Int -> V1Node -> ShowS
[V1Node] -> ShowS
V1Node -> String
(Int -> V1Node -> ShowS)
-> (V1Node -> String) -> ([V1Node] -> ShowS) -> Show V1Node
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Node] -> ShowS
$cshowList :: [V1Node] -> ShowS
show :: V1Node -> String
$cshow :: V1Node -> String
showsPrec :: Int -> V1Node -> ShowS
$cshowsPrec :: Int -> V1Node -> ShowS
P.Show, V1Node -> V1Node -> Bool
(V1Node -> V1Node -> Bool)
-> (V1Node -> V1Node -> Bool) -> Eq V1Node
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Node -> V1Node -> Bool
$c/= :: V1Node -> V1Node -> Bool
== :: V1Node -> V1Node -> Bool
$c== :: V1Node -> V1Node -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Node
instance A.FromJSON V1Node where
  parseJSON :: Value -> Parser V1Node
parseJSON = String -> (Object -> Parser V1Node) -> Value -> Parser V1Node
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Node" ((Object -> Parser V1Node) -> Value -> Parser V1Node)
-> (Object -> Parser V1Node) -> Value -> Parser V1Node
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1NodeSpec
-> Maybe V1NodeStatus
-> V1Node
V1Node
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1NodeSpec
 -> Maybe V1NodeStatus
 -> V1Node)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1NodeSpec
      -> Maybe V1NodeStatus
      -> V1Node)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1NodeSpec
   -> Maybe V1NodeStatus
   -> V1Node)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1NodeSpec -> Maybe V1NodeStatus -> V1Node)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1NodeSpec -> Maybe V1NodeStatus -> V1Node)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe V1NodeSpec -> Maybe V1NodeStatus -> V1Node)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe V1NodeSpec -> Maybe V1NodeStatus -> V1Node)
-> Parser (Maybe V1NodeSpec)
-> Parser (Maybe V1NodeStatus -> V1Node)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1NodeSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1NodeStatus -> V1Node)
-> Parser (Maybe V1NodeStatus) -> Parser V1Node
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1NodeStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1Node
instance A.ToJSON V1Node where
  toJSON :: V1Node -> Value
toJSON V1Node {Maybe Text
Maybe V1ObjectMeta
Maybe V1NodeStatus
Maybe V1NodeSpec
v1NodeStatus :: Maybe V1NodeStatus
v1NodeSpec :: Maybe V1NodeSpec
v1NodeMetadata :: Maybe V1ObjectMeta
v1NodeKind :: Maybe Text
v1NodeApiVersion :: Maybe Text
v1NodeStatus :: V1Node -> Maybe V1NodeStatus
v1NodeSpec :: V1Node -> Maybe V1NodeSpec
v1NodeMetadata :: V1Node -> Maybe V1ObjectMeta
v1NodeKind :: V1Node -> Maybe Text
v1NodeApiVersion :: V1Node -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NodeApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NodeKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1NodeMetadata
      , Text
"spec" Text -> Maybe V1NodeSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NodeSpec
v1NodeSpec
      , Text
"status" Text -> Maybe V1NodeStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NodeStatus
v1NodeStatus
      ]


-- | Construct a value of type 'V1Node' (by applying it's required fields, if any)
mkV1Node
  :: V1Node
mkV1Node :: V1Node
mkV1Node =
  V1Node :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1NodeSpec
-> Maybe V1NodeStatus
-> V1Node
V1Node
  { v1NodeApiVersion :: Maybe Text
v1NodeApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1NodeKind :: Maybe Text
v1NodeKind = Maybe Text
forall a. Maybe a
Nothing
  , v1NodeMetadata :: Maybe V1ObjectMeta
v1NodeMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1NodeSpec :: Maybe V1NodeSpec
v1NodeSpec = Maybe V1NodeSpec
forall a. Maybe a
Nothing
  , v1NodeStatus :: Maybe V1NodeStatus
v1NodeStatus = Maybe V1NodeStatus
forall a. Maybe a
Nothing
  }

-- ** V1NodeAddress
-- | V1NodeAddress
-- NodeAddress contains information for the node's address.
data V1NodeAddress = V1NodeAddress
  { V1NodeAddress -> Text
v1NodeAddressAddress :: !(Text) -- ^ /Required/ "address" - The node address.
  , V1NodeAddress -> Text
v1NodeAddressType :: !(Text) -- ^ /Required/ "type" - Node address type, one of Hostname, ExternalIP or InternalIP.
  } deriving (Int -> V1NodeAddress -> ShowS
[V1NodeAddress] -> ShowS
V1NodeAddress -> String
(Int -> V1NodeAddress -> ShowS)
-> (V1NodeAddress -> String)
-> ([V1NodeAddress] -> ShowS)
-> Show V1NodeAddress
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NodeAddress] -> ShowS
$cshowList :: [V1NodeAddress] -> ShowS
show :: V1NodeAddress -> String
$cshow :: V1NodeAddress -> String
showsPrec :: Int -> V1NodeAddress -> ShowS
$cshowsPrec :: Int -> V1NodeAddress -> ShowS
P.Show, V1NodeAddress -> V1NodeAddress -> Bool
(V1NodeAddress -> V1NodeAddress -> Bool)
-> (V1NodeAddress -> V1NodeAddress -> Bool) -> Eq V1NodeAddress
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NodeAddress -> V1NodeAddress -> Bool
$c/= :: V1NodeAddress -> V1NodeAddress -> Bool
== :: V1NodeAddress -> V1NodeAddress -> Bool
$c== :: V1NodeAddress -> V1NodeAddress -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NodeAddress
instance A.FromJSON V1NodeAddress where
  parseJSON :: Value -> Parser V1NodeAddress
parseJSON = String
-> (Object -> Parser V1NodeAddress)
-> Value
-> Parser V1NodeAddress
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NodeAddress" ((Object -> Parser V1NodeAddress) -> Value -> Parser V1NodeAddress)
-> (Object -> Parser V1NodeAddress)
-> Value
-> Parser V1NodeAddress
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> V1NodeAddress
V1NodeAddress
      (Text -> Text -> V1NodeAddress)
-> Parser Text -> Parser (Text -> V1NodeAddress)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"address")
      Parser (Text -> V1NodeAddress)
-> Parser Text -> Parser V1NodeAddress
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1NodeAddress
instance A.ToJSON V1NodeAddress where
  toJSON :: V1NodeAddress -> Value
toJSON V1NodeAddress {Text
v1NodeAddressType :: Text
v1NodeAddressAddress :: Text
v1NodeAddressType :: V1NodeAddress -> Text
v1NodeAddressAddress :: V1NodeAddress -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"address" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NodeAddressAddress
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NodeAddressType
      ]


-- | Construct a value of type 'V1NodeAddress' (by applying it's required fields, if any)
mkV1NodeAddress
  :: Text -- ^ 'v1NodeAddressAddress': The node address.
  -> Text -- ^ 'v1NodeAddressType': Node address type, one of Hostname, ExternalIP or InternalIP.
  -> V1NodeAddress
mkV1NodeAddress :: Text -> Text -> V1NodeAddress
mkV1NodeAddress Text
v1NodeAddressAddress Text
v1NodeAddressType =
  V1NodeAddress :: Text -> Text -> V1NodeAddress
V1NodeAddress
  { Text
v1NodeAddressAddress :: Text
v1NodeAddressAddress :: Text
v1NodeAddressAddress
  , Text
v1NodeAddressType :: Text
v1NodeAddressType :: Text
v1NodeAddressType
  }

-- ** V1NodeAffinity
-- | V1NodeAffinity
-- Node affinity is a group of node affinity scheduling rules.
data V1NodeAffinity = V1NodeAffinity
  { V1NodeAffinity -> Maybe [V1PreferredSchedulingTerm]
v1NodeAffinityPreferredDuringSchedulingIgnoredDuringExecution :: !(Maybe [V1PreferredSchedulingTerm]) -- ^ "preferredDuringSchedulingIgnoredDuringExecution" - The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \&quot;weight\&quot; to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  , V1NodeAffinity -> Maybe V1NodeSelector
v1NodeAffinityRequiredDuringSchedulingIgnoredDuringExecution :: !(Maybe V1NodeSelector) -- ^ "requiredDuringSchedulingIgnoredDuringExecution"
  } deriving (Int -> V1NodeAffinity -> ShowS
[V1NodeAffinity] -> ShowS
V1NodeAffinity -> String
(Int -> V1NodeAffinity -> ShowS)
-> (V1NodeAffinity -> String)
-> ([V1NodeAffinity] -> ShowS)
-> Show V1NodeAffinity
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NodeAffinity] -> ShowS
$cshowList :: [V1NodeAffinity] -> ShowS
show :: V1NodeAffinity -> String
$cshow :: V1NodeAffinity -> String
showsPrec :: Int -> V1NodeAffinity -> ShowS
$cshowsPrec :: Int -> V1NodeAffinity -> ShowS
P.Show, V1NodeAffinity -> V1NodeAffinity -> Bool
(V1NodeAffinity -> V1NodeAffinity -> Bool)
-> (V1NodeAffinity -> V1NodeAffinity -> Bool) -> Eq V1NodeAffinity
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NodeAffinity -> V1NodeAffinity -> Bool
$c/= :: V1NodeAffinity -> V1NodeAffinity -> Bool
== :: V1NodeAffinity -> V1NodeAffinity -> Bool
$c== :: V1NodeAffinity -> V1NodeAffinity -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NodeAffinity
instance A.FromJSON V1NodeAffinity where
  parseJSON :: Value -> Parser V1NodeAffinity
parseJSON = String
-> (Object -> Parser V1NodeAffinity)
-> Value
-> Parser V1NodeAffinity
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NodeAffinity" ((Object -> Parser V1NodeAffinity)
 -> Value -> Parser V1NodeAffinity)
-> (Object -> Parser V1NodeAffinity)
-> Value
-> Parser V1NodeAffinity
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1PreferredSchedulingTerm]
-> Maybe V1NodeSelector -> V1NodeAffinity
V1NodeAffinity
      (Maybe [V1PreferredSchedulingTerm]
 -> Maybe V1NodeSelector -> V1NodeAffinity)
-> Parser (Maybe [V1PreferredSchedulingTerm])
-> Parser (Maybe V1NodeSelector -> V1NodeAffinity)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1PreferredSchedulingTerm])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"preferredDuringSchedulingIgnoredDuringExecution")
      Parser (Maybe V1NodeSelector -> V1NodeAffinity)
-> Parser (Maybe V1NodeSelector) -> Parser V1NodeAffinity
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1NodeSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"requiredDuringSchedulingIgnoredDuringExecution")

-- | ToJSON V1NodeAffinity
instance A.ToJSON V1NodeAffinity where
  toJSON :: V1NodeAffinity -> Value
toJSON V1NodeAffinity {Maybe [V1PreferredSchedulingTerm]
Maybe V1NodeSelector
v1NodeAffinityRequiredDuringSchedulingIgnoredDuringExecution :: Maybe V1NodeSelector
v1NodeAffinityPreferredDuringSchedulingIgnoredDuringExecution :: Maybe [V1PreferredSchedulingTerm]
v1NodeAffinityRequiredDuringSchedulingIgnoredDuringExecution :: V1NodeAffinity -> Maybe V1NodeSelector
v1NodeAffinityPreferredDuringSchedulingIgnoredDuringExecution :: V1NodeAffinity -> Maybe [V1PreferredSchedulingTerm]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"preferredDuringSchedulingIgnoredDuringExecution" Text -> Maybe [V1PreferredSchedulingTerm] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1PreferredSchedulingTerm]
v1NodeAffinityPreferredDuringSchedulingIgnoredDuringExecution
      , Text
"requiredDuringSchedulingIgnoredDuringExecution" Text -> Maybe V1NodeSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NodeSelector
v1NodeAffinityRequiredDuringSchedulingIgnoredDuringExecution
      ]


-- | Construct a value of type 'V1NodeAffinity' (by applying it's required fields, if any)
mkV1NodeAffinity
  :: V1NodeAffinity
mkV1NodeAffinity :: V1NodeAffinity
mkV1NodeAffinity =
  V1NodeAffinity :: Maybe [V1PreferredSchedulingTerm]
-> Maybe V1NodeSelector -> V1NodeAffinity
V1NodeAffinity
  { v1NodeAffinityPreferredDuringSchedulingIgnoredDuringExecution :: Maybe [V1PreferredSchedulingTerm]
v1NodeAffinityPreferredDuringSchedulingIgnoredDuringExecution = Maybe [V1PreferredSchedulingTerm]
forall a. Maybe a
Nothing
  , v1NodeAffinityRequiredDuringSchedulingIgnoredDuringExecution :: Maybe V1NodeSelector
v1NodeAffinityRequiredDuringSchedulingIgnoredDuringExecution = Maybe V1NodeSelector
forall a. Maybe a
Nothing
  }

-- ** V1NodeCondition
-- | V1NodeCondition
-- NodeCondition contains condition information for a node.
data V1NodeCondition = V1NodeCondition
  { V1NodeCondition -> Maybe DateTime
v1NodeConditionLastHeartbeatTime :: !(Maybe DateTime) -- ^ "lastHeartbeatTime" - Last time we got an update on a given condition.
  , V1NodeCondition -> Maybe DateTime
v1NodeConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transit from one status to another.
  , V1NodeCondition -> Maybe Text
v1NodeConditionMessage :: !(Maybe Text) -- ^ "message" - Human readable message indicating details about last transition.
  , V1NodeCondition -> Maybe Text
v1NodeConditionReason :: !(Maybe Text) -- ^ "reason" - (brief) reason for the condition&#39;s last transition.
  , V1NodeCondition -> Text
v1NodeConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , V1NodeCondition -> Text
v1NodeConditionType :: !(Text) -- ^ /Required/ "type" - Type of node condition.
  } deriving (Int -> V1NodeCondition -> ShowS
[V1NodeCondition] -> ShowS
V1NodeCondition -> String
(Int -> V1NodeCondition -> ShowS)
-> (V1NodeCondition -> String)
-> ([V1NodeCondition] -> ShowS)
-> Show V1NodeCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NodeCondition] -> ShowS
$cshowList :: [V1NodeCondition] -> ShowS
show :: V1NodeCondition -> String
$cshow :: V1NodeCondition -> String
showsPrec :: Int -> V1NodeCondition -> ShowS
$cshowsPrec :: Int -> V1NodeCondition -> ShowS
P.Show, V1NodeCondition -> V1NodeCondition -> Bool
(V1NodeCondition -> V1NodeCondition -> Bool)
-> (V1NodeCondition -> V1NodeCondition -> Bool)
-> Eq V1NodeCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NodeCondition -> V1NodeCondition -> Bool
$c/= :: V1NodeCondition -> V1NodeCondition -> Bool
== :: V1NodeCondition -> V1NodeCondition -> Bool
$c== :: V1NodeCondition -> V1NodeCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NodeCondition
instance A.FromJSON V1NodeCondition where
  parseJSON :: Value -> Parser V1NodeCondition
parseJSON = String
-> (Object -> Parser V1NodeCondition)
-> Value
-> Parser V1NodeCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NodeCondition" ((Object -> Parser V1NodeCondition)
 -> Value -> Parser V1NodeCondition)
-> (Object -> Parser V1NodeCondition)
-> Value
-> Parser V1NodeCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1NodeCondition
V1NodeCondition
      (Maybe DateTime
 -> Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1NodeCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe DateTime
      -> Maybe Text -> Maybe Text -> Text -> Text -> V1NodeCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastHeartbeatTime")
      Parser
  (Maybe DateTime
   -> Maybe Text -> Maybe Text -> Text -> Text -> V1NodeCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text -> Maybe Text -> Text -> Text -> V1NodeCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text -> Maybe Text -> Text -> Text -> V1NodeCondition)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Text -> Text -> V1NodeCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1NodeCondition)
-> Parser (Maybe Text) -> Parser (Text -> Text -> V1NodeCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1NodeCondition)
-> Parser Text -> Parser (Text -> V1NodeCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1NodeCondition)
-> Parser Text -> Parser V1NodeCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1NodeCondition
instance A.ToJSON V1NodeCondition where
  toJSON :: V1NodeCondition -> Value
toJSON V1NodeCondition {Maybe Text
Maybe DateTime
Text
v1NodeConditionType :: Text
v1NodeConditionStatus :: Text
v1NodeConditionReason :: Maybe Text
v1NodeConditionMessage :: Maybe Text
v1NodeConditionLastTransitionTime :: Maybe DateTime
v1NodeConditionLastHeartbeatTime :: Maybe DateTime
v1NodeConditionType :: V1NodeCondition -> Text
v1NodeConditionStatus :: V1NodeCondition -> Text
v1NodeConditionReason :: V1NodeCondition -> Maybe Text
v1NodeConditionMessage :: V1NodeCondition -> Maybe Text
v1NodeConditionLastTransitionTime :: V1NodeCondition -> Maybe DateTime
v1NodeConditionLastHeartbeatTime :: V1NodeCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastHeartbeatTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1NodeConditionLastHeartbeatTime
      , Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1NodeConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NodeConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NodeConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NodeConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NodeConditionType
      ]


-- | Construct a value of type 'V1NodeCondition' (by applying it's required fields, if any)
mkV1NodeCondition
  :: Text -- ^ 'v1NodeConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'v1NodeConditionType': Type of node condition.
  -> V1NodeCondition
mkV1NodeCondition :: Text -> Text -> V1NodeCondition
mkV1NodeCondition Text
v1NodeConditionStatus Text
v1NodeConditionType =
  V1NodeCondition :: Maybe DateTime
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1NodeCondition
V1NodeCondition
  { v1NodeConditionLastHeartbeatTime :: Maybe DateTime
v1NodeConditionLastHeartbeatTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1NodeConditionLastTransitionTime :: Maybe DateTime
v1NodeConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1NodeConditionMessage :: Maybe Text
v1NodeConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1NodeConditionReason :: Maybe Text
v1NodeConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1NodeConditionStatus :: Text
v1NodeConditionStatus :: Text
v1NodeConditionStatus
  , Text
v1NodeConditionType :: Text
v1NodeConditionType :: Text
v1NodeConditionType
  }

-- ** V1NodeConfigSource
-- | V1NodeConfigSource
-- NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.
data V1NodeConfigSource = V1NodeConfigSource
  { V1NodeConfigSource -> Maybe V1ConfigMapNodeConfigSource
v1NodeConfigSourceConfigMap :: !(Maybe V1ConfigMapNodeConfigSource) -- ^ "configMap"
  } deriving (Int -> V1NodeConfigSource -> ShowS
[V1NodeConfigSource] -> ShowS
V1NodeConfigSource -> String
(Int -> V1NodeConfigSource -> ShowS)
-> (V1NodeConfigSource -> String)
-> ([V1NodeConfigSource] -> ShowS)
-> Show V1NodeConfigSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NodeConfigSource] -> ShowS
$cshowList :: [V1NodeConfigSource] -> ShowS
show :: V1NodeConfigSource -> String
$cshow :: V1NodeConfigSource -> String
showsPrec :: Int -> V1NodeConfigSource -> ShowS
$cshowsPrec :: Int -> V1NodeConfigSource -> ShowS
P.Show, V1NodeConfigSource -> V1NodeConfigSource -> Bool
(V1NodeConfigSource -> V1NodeConfigSource -> Bool)
-> (V1NodeConfigSource -> V1NodeConfigSource -> Bool)
-> Eq V1NodeConfigSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NodeConfigSource -> V1NodeConfigSource -> Bool
$c/= :: V1NodeConfigSource -> V1NodeConfigSource -> Bool
== :: V1NodeConfigSource -> V1NodeConfigSource -> Bool
$c== :: V1NodeConfigSource -> V1NodeConfigSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NodeConfigSource
instance A.FromJSON V1NodeConfigSource where
  parseJSON :: Value -> Parser V1NodeConfigSource
parseJSON = String
-> (Object -> Parser V1NodeConfigSource)
-> Value
-> Parser V1NodeConfigSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NodeConfigSource" ((Object -> Parser V1NodeConfigSource)
 -> Value -> Parser V1NodeConfigSource)
-> (Object -> Parser V1NodeConfigSource)
-> Value
-> Parser V1NodeConfigSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1ConfigMapNodeConfigSource -> V1NodeConfigSource
V1NodeConfigSource
      (Maybe V1ConfigMapNodeConfigSource -> V1NodeConfigSource)
-> Parser (Maybe V1ConfigMapNodeConfigSource)
-> Parser V1NodeConfigSource
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1ConfigMapNodeConfigSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"configMap")

-- | ToJSON V1NodeConfigSource
instance A.ToJSON V1NodeConfigSource where
  toJSON :: V1NodeConfigSource -> Value
toJSON V1NodeConfigSource {Maybe V1ConfigMapNodeConfigSource
v1NodeConfigSourceConfigMap :: Maybe V1ConfigMapNodeConfigSource
v1NodeConfigSourceConfigMap :: V1NodeConfigSource -> Maybe V1ConfigMapNodeConfigSource
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"configMap" Text -> Maybe V1ConfigMapNodeConfigSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ConfigMapNodeConfigSource
v1NodeConfigSourceConfigMap
      ]


-- | Construct a value of type 'V1NodeConfigSource' (by applying it's required fields, if any)
mkV1NodeConfigSource
  :: V1NodeConfigSource
mkV1NodeConfigSource :: V1NodeConfigSource
mkV1NodeConfigSource =
  V1NodeConfigSource :: Maybe V1ConfigMapNodeConfigSource -> V1NodeConfigSource
V1NodeConfigSource
  { v1NodeConfigSourceConfigMap :: Maybe V1ConfigMapNodeConfigSource
v1NodeConfigSourceConfigMap = Maybe V1ConfigMapNodeConfigSource
forall a. Maybe a
Nothing
  }

-- ** V1NodeConfigStatus
-- | V1NodeConfigStatus
-- NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.
data V1NodeConfigStatus = V1NodeConfigStatus
  { V1NodeConfigStatus -> Maybe V1NodeConfigSource
v1NodeConfigStatusActive :: !(Maybe V1NodeConfigSource) -- ^ "active"
  , V1NodeConfigStatus -> Maybe V1NodeConfigSource
v1NodeConfigStatusAssigned :: !(Maybe V1NodeConfigSource) -- ^ "assigned"
  , V1NodeConfigStatus -> Maybe Text
v1NodeConfigStatusError :: !(Maybe Text) -- ^ "error" - Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.
  , V1NodeConfigStatus -> Maybe V1NodeConfigSource
v1NodeConfigStatusLastKnownGood :: !(Maybe V1NodeConfigSource) -- ^ "lastKnownGood"
  } deriving (Int -> V1NodeConfigStatus -> ShowS
[V1NodeConfigStatus] -> ShowS
V1NodeConfigStatus -> String
(Int -> V1NodeConfigStatus -> ShowS)
-> (V1NodeConfigStatus -> String)
-> ([V1NodeConfigStatus] -> ShowS)
-> Show V1NodeConfigStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NodeConfigStatus] -> ShowS
$cshowList :: [V1NodeConfigStatus] -> ShowS
show :: V1NodeConfigStatus -> String
$cshow :: V1NodeConfigStatus -> String
showsPrec :: Int -> V1NodeConfigStatus -> ShowS
$cshowsPrec :: Int -> V1NodeConfigStatus -> ShowS
P.Show, V1NodeConfigStatus -> V1NodeConfigStatus -> Bool
(V1NodeConfigStatus -> V1NodeConfigStatus -> Bool)
-> (V1NodeConfigStatus -> V1NodeConfigStatus -> Bool)
-> Eq V1NodeConfigStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NodeConfigStatus -> V1NodeConfigStatus -> Bool
$c/= :: V1NodeConfigStatus -> V1NodeConfigStatus -> Bool
== :: V1NodeConfigStatus -> V1NodeConfigStatus -> Bool
$c== :: V1NodeConfigStatus -> V1NodeConfigStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NodeConfigStatus
instance A.FromJSON V1NodeConfigStatus where
  parseJSON :: Value -> Parser V1NodeConfigStatus
parseJSON = String
-> (Object -> Parser V1NodeConfigStatus)
-> Value
-> Parser V1NodeConfigStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NodeConfigStatus" ((Object -> Parser V1NodeConfigStatus)
 -> Value -> Parser V1NodeConfigStatus)
-> (Object -> Parser V1NodeConfigStatus)
-> Value
-> Parser V1NodeConfigStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1NodeConfigSource
-> Maybe V1NodeConfigSource
-> Maybe Text
-> Maybe V1NodeConfigSource
-> V1NodeConfigStatus
V1NodeConfigStatus
      (Maybe V1NodeConfigSource
 -> Maybe V1NodeConfigSource
 -> Maybe Text
 -> Maybe V1NodeConfigSource
 -> V1NodeConfigStatus)
-> Parser (Maybe V1NodeConfigSource)
-> Parser
     (Maybe V1NodeConfigSource
      -> Maybe Text -> Maybe V1NodeConfigSource -> V1NodeConfigStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1NodeConfigSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"active")
      Parser
  (Maybe V1NodeConfigSource
   -> Maybe Text -> Maybe V1NodeConfigSource -> V1NodeConfigStatus)
-> Parser (Maybe V1NodeConfigSource)
-> Parser
     (Maybe Text -> Maybe V1NodeConfigSource -> V1NodeConfigStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1NodeConfigSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"assigned")
      Parser
  (Maybe Text -> Maybe V1NodeConfigSource -> V1NodeConfigStatus)
-> Parser (Maybe Text)
-> Parser (Maybe V1NodeConfigSource -> V1NodeConfigStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"error")
      Parser (Maybe V1NodeConfigSource -> V1NodeConfigStatus)
-> Parser (Maybe V1NodeConfigSource) -> Parser V1NodeConfigStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1NodeConfigSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastKnownGood")

-- | ToJSON V1NodeConfigStatus
instance A.ToJSON V1NodeConfigStatus where
  toJSON :: V1NodeConfigStatus -> Value
toJSON V1NodeConfigStatus {Maybe Text
Maybe V1NodeConfigSource
v1NodeConfigStatusLastKnownGood :: Maybe V1NodeConfigSource
v1NodeConfigStatusError :: Maybe Text
v1NodeConfigStatusAssigned :: Maybe V1NodeConfigSource
v1NodeConfigStatusActive :: Maybe V1NodeConfigSource
v1NodeConfigStatusLastKnownGood :: V1NodeConfigStatus -> Maybe V1NodeConfigSource
v1NodeConfigStatusError :: V1NodeConfigStatus -> Maybe Text
v1NodeConfigStatusAssigned :: V1NodeConfigStatus -> Maybe V1NodeConfigSource
v1NodeConfigStatusActive :: V1NodeConfigStatus -> Maybe V1NodeConfigSource
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"active" Text -> Maybe V1NodeConfigSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NodeConfigSource
v1NodeConfigStatusActive
      , Text
"assigned" Text -> Maybe V1NodeConfigSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NodeConfigSource
v1NodeConfigStatusAssigned
      , Text
"error" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NodeConfigStatusError
      , Text
"lastKnownGood" Text -> Maybe V1NodeConfigSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NodeConfigSource
v1NodeConfigStatusLastKnownGood
      ]


-- | Construct a value of type 'V1NodeConfigStatus' (by applying it's required fields, if any)
mkV1NodeConfigStatus
  :: V1NodeConfigStatus
mkV1NodeConfigStatus :: V1NodeConfigStatus
mkV1NodeConfigStatus =
  V1NodeConfigStatus :: Maybe V1NodeConfigSource
-> Maybe V1NodeConfigSource
-> Maybe Text
-> Maybe V1NodeConfigSource
-> V1NodeConfigStatus
V1NodeConfigStatus
  { v1NodeConfigStatusActive :: Maybe V1NodeConfigSource
v1NodeConfigStatusActive = Maybe V1NodeConfigSource
forall a. Maybe a
Nothing
  , v1NodeConfigStatusAssigned :: Maybe V1NodeConfigSource
v1NodeConfigStatusAssigned = Maybe V1NodeConfigSource
forall a. Maybe a
Nothing
  , v1NodeConfigStatusError :: Maybe Text
v1NodeConfigStatusError = Maybe Text
forall a. Maybe a
Nothing
  , v1NodeConfigStatusLastKnownGood :: Maybe V1NodeConfigSource
v1NodeConfigStatusLastKnownGood = Maybe V1NodeConfigSource
forall a. Maybe a
Nothing
  }

-- ** V1NodeDaemonEndpoints
-- | V1NodeDaemonEndpoints
-- NodeDaemonEndpoints lists ports opened by daemons running on the Node.
data V1NodeDaemonEndpoints = V1NodeDaemonEndpoints
  { V1NodeDaemonEndpoints -> Maybe V1DaemonEndpoint
v1NodeDaemonEndpointsKubeletEndpoint :: !(Maybe V1DaemonEndpoint) -- ^ "kubeletEndpoint"
  } deriving (Int -> V1NodeDaemonEndpoints -> ShowS
[V1NodeDaemonEndpoints] -> ShowS
V1NodeDaemonEndpoints -> String
(Int -> V1NodeDaemonEndpoints -> ShowS)
-> (V1NodeDaemonEndpoints -> String)
-> ([V1NodeDaemonEndpoints] -> ShowS)
-> Show V1NodeDaemonEndpoints
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NodeDaemonEndpoints] -> ShowS
$cshowList :: [V1NodeDaemonEndpoints] -> ShowS
show :: V1NodeDaemonEndpoints -> String
$cshow :: V1NodeDaemonEndpoints -> String
showsPrec :: Int -> V1NodeDaemonEndpoints -> ShowS
$cshowsPrec :: Int -> V1NodeDaemonEndpoints -> ShowS
P.Show, V1NodeDaemonEndpoints -> V1NodeDaemonEndpoints -> Bool
(V1NodeDaemonEndpoints -> V1NodeDaemonEndpoints -> Bool)
-> (V1NodeDaemonEndpoints -> V1NodeDaemonEndpoints -> Bool)
-> Eq V1NodeDaemonEndpoints
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NodeDaemonEndpoints -> V1NodeDaemonEndpoints -> Bool
$c/= :: V1NodeDaemonEndpoints -> V1NodeDaemonEndpoints -> Bool
== :: V1NodeDaemonEndpoints -> V1NodeDaemonEndpoints -> Bool
$c== :: V1NodeDaemonEndpoints -> V1NodeDaemonEndpoints -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NodeDaemonEndpoints
instance A.FromJSON V1NodeDaemonEndpoints where
  parseJSON :: Value -> Parser V1NodeDaemonEndpoints
parseJSON = String
-> (Object -> Parser V1NodeDaemonEndpoints)
-> Value
-> Parser V1NodeDaemonEndpoints
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NodeDaemonEndpoints" ((Object -> Parser V1NodeDaemonEndpoints)
 -> Value -> Parser V1NodeDaemonEndpoints)
-> (Object -> Parser V1NodeDaemonEndpoints)
-> Value
-> Parser V1NodeDaemonEndpoints
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1DaemonEndpoint -> V1NodeDaemonEndpoints
V1NodeDaemonEndpoints
      (Maybe V1DaemonEndpoint -> V1NodeDaemonEndpoints)
-> Parser (Maybe V1DaemonEndpoint) -> Parser V1NodeDaemonEndpoints
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1DaemonEndpoint)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kubeletEndpoint")

-- | ToJSON V1NodeDaemonEndpoints
instance A.ToJSON V1NodeDaemonEndpoints where
  toJSON :: V1NodeDaemonEndpoints -> Value
toJSON V1NodeDaemonEndpoints {Maybe V1DaemonEndpoint
v1NodeDaemonEndpointsKubeletEndpoint :: Maybe V1DaemonEndpoint
v1NodeDaemonEndpointsKubeletEndpoint :: V1NodeDaemonEndpoints -> Maybe V1DaemonEndpoint
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"kubeletEndpoint" Text -> Maybe V1DaemonEndpoint -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1DaemonEndpoint
v1NodeDaemonEndpointsKubeletEndpoint
      ]


-- | Construct a value of type 'V1NodeDaemonEndpoints' (by applying it's required fields, if any)
mkV1NodeDaemonEndpoints
  :: V1NodeDaemonEndpoints
mkV1NodeDaemonEndpoints :: V1NodeDaemonEndpoints
mkV1NodeDaemonEndpoints =
  V1NodeDaemonEndpoints :: Maybe V1DaemonEndpoint -> V1NodeDaemonEndpoints
V1NodeDaemonEndpoints
  { v1NodeDaemonEndpointsKubeletEndpoint :: Maybe V1DaemonEndpoint
v1NodeDaemonEndpointsKubeletEndpoint = Maybe V1DaemonEndpoint
forall a. Maybe a
Nothing
  }

-- ** V1NodeList
-- | V1NodeList
-- NodeList is the whole list of all Nodes which have been registered with master.
data V1NodeList = V1NodeList
  { V1NodeList -> Maybe Text
v1NodeListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1NodeList -> [V1Node]
v1NodeListItems :: !([V1Node]) -- ^ /Required/ "items" - List of nodes
  , V1NodeList -> Maybe Text
v1NodeListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1NodeList -> Maybe V1ListMeta
v1NodeListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1NodeList -> ShowS
[V1NodeList] -> ShowS
V1NodeList -> String
(Int -> V1NodeList -> ShowS)
-> (V1NodeList -> String)
-> ([V1NodeList] -> ShowS)
-> Show V1NodeList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NodeList] -> ShowS
$cshowList :: [V1NodeList] -> ShowS
show :: V1NodeList -> String
$cshow :: V1NodeList -> String
showsPrec :: Int -> V1NodeList -> ShowS
$cshowsPrec :: Int -> V1NodeList -> ShowS
P.Show, V1NodeList -> V1NodeList -> Bool
(V1NodeList -> V1NodeList -> Bool)
-> (V1NodeList -> V1NodeList -> Bool) -> Eq V1NodeList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NodeList -> V1NodeList -> Bool
$c/= :: V1NodeList -> V1NodeList -> Bool
== :: V1NodeList -> V1NodeList -> Bool
$c== :: V1NodeList -> V1NodeList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NodeList
instance A.FromJSON V1NodeList where
  parseJSON :: Value -> Parser V1NodeList
parseJSON = String
-> (Object -> Parser V1NodeList) -> Value -> Parser V1NodeList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NodeList" ((Object -> Parser V1NodeList) -> Value -> Parser V1NodeList)
-> (Object -> Parser V1NodeList) -> Value -> Parser V1NodeList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1Node] -> Maybe Text -> Maybe V1ListMeta -> V1NodeList
V1NodeList
      (Maybe Text
 -> [V1Node] -> Maybe Text -> Maybe V1ListMeta -> V1NodeList)
-> Parser (Maybe Text)
-> Parser
     ([V1Node] -> Maybe Text -> Maybe V1ListMeta -> V1NodeList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser ([V1Node] -> Maybe Text -> Maybe V1ListMeta -> V1NodeList)
-> Parser [V1Node]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1NodeList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1Node]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1NodeList)
-> Parser (Maybe Text) -> Parser (Maybe V1ListMeta -> V1NodeList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1NodeList)
-> Parser (Maybe V1ListMeta) -> Parser V1NodeList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1NodeList
instance A.ToJSON V1NodeList where
  toJSON :: V1NodeList -> Value
toJSON V1NodeList {[V1Node]
Maybe Text
Maybe V1ListMeta
v1NodeListMetadata :: Maybe V1ListMeta
v1NodeListKind :: Maybe Text
v1NodeListItems :: [V1Node]
v1NodeListApiVersion :: Maybe Text
v1NodeListMetadata :: V1NodeList -> Maybe V1ListMeta
v1NodeListKind :: V1NodeList -> Maybe Text
v1NodeListItems :: V1NodeList -> [V1Node]
v1NodeListApiVersion :: V1NodeList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NodeListApiVersion
      , Text
"items" Text -> [V1Node] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1Node]
v1NodeListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NodeListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1NodeListMetadata
      ]


-- | Construct a value of type 'V1NodeList' (by applying it's required fields, if any)
mkV1NodeList
  :: [V1Node] -- ^ 'v1NodeListItems': List of nodes
  -> V1NodeList
mkV1NodeList :: [V1Node] -> V1NodeList
mkV1NodeList [V1Node]
v1NodeListItems =
  V1NodeList :: Maybe Text
-> [V1Node] -> Maybe Text -> Maybe V1ListMeta -> V1NodeList
V1NodeList
  { v1NodeListApiVersion :: Maybe Text
v1NodeListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1Node]
v1NodeListItems :: [V1Node]
v1NodeListItems :: [V1Node]
v1NodeListItems
  , v1NodeListKind :: Maybe Text
v1NodeListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1NodeListMetadata :: Maybe V1ListMeta
v1NodeListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1NodeSelector
-- | V1NodeSelector
-- A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.
data V1NodeSelector = V1NodeSelector
  { V1NodeSelector -> [V1NodeSelectorTerm]
v1NodeSelectorNodeSelectorTerms :: !([V1NodeSelectorTerm]) -- ^ /Required/ "nodeSelectorTerms" - Required. A list of node selector terms. The terms are ORed.
  } deriving (Int -> V1NodeSelector -> ShowS
[V1NodeSelector] -> ShowS
V1NodeSelector -> String
(Int -> V1NodeSelector -> ShowS)
-> (V1NodeSelector -> String)
-> ([V1NodeSelector] -> ShowS)
-> Show V1NodeSelector
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NodeSelector] -> ShowS
$cshowList :: [V1NodeSelector] -> ShowS
show :: V1NodeSelector -> String
$cshow :: V1NodeSelector -> String
showsPrec :: Int -> V1NodeSelector -> ShowS
$cshowsPrec :: Int -> V1NodeSelector -> ShowS
P.Show, V1NodeSelector -> V1NodeSelector -> Bool
(V1NodeSelector -> V1NodeSelector -> Bool)
-> (V1NodeSelector -> V1NodeSelector -> Bool) -> Eq V1NodeSelector
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NodeSelector -> V1NodeSelector -> Bool
$c/= :: V1NodeSelector -> V1NodeSelector -> Bool
== :: V1NodeSelector -> V1NodeSelector -> Bool
$c== :: V1NodeSelector -> V1NodeSelector -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NodeSelector
instance A.FromJSON V1NodeSelector where
  parseJSON :: Value -> Parser V1NodeSelector
parseJSON = String
-> (Object -> Parser V1NodeSelector)
-> Value
-> Parser V1NodeSelector
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NodeSelector" ((Object -> Parser V1NodeSelector)
 -> Value -> Parser V1NodeSelector)
-> (Object -> Parser V1NodeSelector)
-> Value
-> Parser V1NodeSelector
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    [V1NodeSelectorTerm] -> V1NodeSelector
V1NodeSelector
      ([V1NodeSelectorTerm] -> V1NodeSelector)
-> Parser [V1NodeSelectorTerm] -> Parser V1NodeSelector
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser [V1NodeSelectorTerm]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"nodeSelectorTerms")

-- | ToJSON V1NodeSelector
instance A.ToJSON V1NodeSelector where
  toJSON :: V1NodeSelector -> Value
toJSON V1NodeSelector {[V1NodeSelectorTerm]
v1NodeSelectorNodeSelectorTerms :: [V1NodeSelectorTerm]
v1NodeSelectorNodeSelectorTerms :: V1NodeSelector -> [V1NodeSelectorTerm]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"nodeSelectorTerms" Text -> [V1NodeSelectorTerm] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1NodeSelectorTerm]
v1NodeSelectorNodeSelectorTerms
      ]


-- | Construct a value of type 'V1NodeSelector' (by applying it's required fields, if any)
mkV1NodeSelector
  :: [V1NodeSelectorTerm] -- ^ 'v1NodeSelectorNodeSelectorTerms': Required. A list of node selector terms. The terms are ORed.
  -> V1NodeSelector
mkV1NodeSelector :: [V1NodeSelectorTerm] -> V1NodeSelector
mkV1NodeSelector [V1NodeSelectorTerm]
v1NodeSelectorNodeSelectorTerms =
  V1NodeSelector :: [V1NodeSelectorTerm] -> V1NodeSelector
V1NodeSelector
  { [V1NodeSelectorTerm]
v1NodeSelectorNodeSelectorTerms :: [V1NodeSelectorTerm]
v1NodeSelectorNodeSelectorTerms :: [V1NodeSelectorTerm]
v1NodeSelectorNodeSelectorTerms
  }

-- ** V1NodeSelectorRequirement
-- | V1NodeSelectorRequirement
-- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
data V1NodeSelectorRequirement = V1NodeSelectorRequirement
  { V1NodeSelectorRequirement -> Text
v1NodeSelectorRequirementKey :: !(Text) -- ^ /Required/ "key" - The label key that the selector applies to.
  , V1NodeSelectorRequirement -> Text
v1NodeSelectorRequirementOperator :: !(Text) -- ^ /Required/ "operator" - Represents a key&#39;s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  , V1NodeSelectorRequirement -> Maybe [Text]
v1NodeSelectorRequirementValues :: !(Maybe [Text]) -- ^ "values" - An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  } deriving (Int -> V1NodeSelectorRequirement -> ShowS
[V1NodeSelectorRequirement] -> ShowS
V1NodeSelectorRequirement -> String
(Int -> V1NodeSelectorRequirement -> ShowS)
-> (V1NodeSelectorRequirement -> String)
-> ([V1NodeSelectorRequirement] -> ShowS)
-> Show V1NodeSelectorRequirement
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NodeSelectorRequirement] -> ShowS
$cshowList :: [V1NodeSelectorRequirement] -> ShowS
show :: V1NodeSelectorRequirement -> String
$cshow :: V1NodeSelectorRequirement -> String
showsPrec :: Int -> V1NodeSelectorRequirement -> ShowS
$cshowsPrec :: Int -> V1NodeSelectorRequirement -> ShowS
P.Show, V1NodeSelectorRequirement -> V1NodeSelectorRequirement -> Bool
(V1NodeSelectorRequirement -> V1NodeSelectorRequirement -> Bool)
-> (V1NodeSelectorRequirement -> V1NodeSelectorRequirement -> Bool)
-> Eq V1NodeSelectorRequirement
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NodeSelectorRequirement -> V1NodeSelectorRequirement -> Bool
$c/= :: V1NodeSelectorRequirement -> V1NodeSelectorRequirement -> Bool
== :: V1NodeSelectorRequirement -> V1NodeSelectorRequirement -> Bool
$c== :: V1NodeSelectorRequirement -> V1NodeSelectorRequirement -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NodeSelectorRequirement
instance A.FromJSON V1NodeSelectorRequirement where
  parseJSON :: Value -> Parser V1NodeSelectorRequirement
parseJSON = String
-> (Object -> Parser V1NodeSelectorRequirement)
-> Value
-> Parser V1NodeSelectorRequirement
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NodeSelectorRequirement" ((Object -> Parser V1NodeSelectorRequirement)
 -> Value -> Parser V1NodeSelectorRequirement)
-> (Object -> Parser V1NodeSelectorRequirement)
-> Value
-> Parser V1NodeSelectorRequirement
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> Maybe [Text] -> V1NodeSelectorRequirement
V1NodeSelectorRequirement
      (Text -> Text -> Maybe [Text] -> V1NodeSelectorRequirement)
-> Parser Text
-> Parser (Text -> Maybe [Text] -> V1NodeSelectorRequirement)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"key")
      Parser (Text -> Maybe [Text] -> V1NodeSelectorRequirement)
-> Parser Text
-> Parser (Maybe [Text] -> V1NodeSelectorRequirement)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"operator")
      Parser (Maybe [Text] -> V1NodeSelectorRequirement)
-> Parser (Maybe [Text]) -> Parser V1NodeSelectorRequirement
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"values")

-- | ToJSON V1NodeSelectorRequirement
instance A.ToJSON V1NodeSelectorRequirement where
  toJSON :: V1NodeSelectorRequirement -> Value
toJSON V1NodeSelectorRequirement {Maybe [Text]
Text
v1NodeSelectorRequirementValues :: Maybe [Text]
v1NodeSelectorRequirementOperator :: Text
v1NodeSelectorRequirementKey :: Text
v1NodeSelectorRequirementValues :: V1NodeSelectorRequirement -> Maybe [Text]
v1NodeSelectorRequirementOperator :: V1NodeSelectorRequirement -> Text
v1NodeSelectorRequirementKey :: V1NodeSelectorRequirement -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"key" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NodeSelectorRequirementKey
      , Text
"operator" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NodeSelectorRequirementOperator
      , Text
"values" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1NodeSelectorRequirementValues
      ]


-- | Construct a value of type 'V1NodeSelectorRequirement' (by applying it's required fields, if any)
mkV1NodeSelectorRequirement
  :: Text -- ^ 'v1NodeSelectorRequirementKey': The label key that the selector applies to.
  -> Text -- ^ 'v1NodeSelectorRequirementOperator': Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  -> V1NodeSelectorRequirement
mkV1NodeSelectorRequirement :: Text -> Text -> V1NodeSelectorRequirement
mkV1NodeSelectorRequirement Text
v1NodeSelectorRequirementKey Text
v1NodeSelectorRequirementOperator =
  V1NodeSelectorRequirement :: Text -> Text -> Maybe [Text] -> V1NodeSelectorRequirement
V1NodeSelectorRequirement
  { Text
v1NodeSelectorRequirementKey :: Text
v1NodeSelectorRequirementKey :: Text
v1NodeSelectorRequirementKey
  , Text
v1NodeSelectorRequirementOperator :: Text
v1NodeSelectorRequirementOperator :: Text
v1NodeSelectorRequirementOperator
  , v1NodeSelectorRequirementValues :: Maybe [Text]
v1NodeSelectorRequirementValues = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1NodeSelectorTerm
-- | V1NodeSelectorTerm
-- A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
data V1NodeSelectorTerm = V1NodeSelectorTerm
  { V1NodeSelectorTerm -> Maybe [V1NodeSelectorRequirement]
v1NodeSelectorTermMatchExpressions :: !(Maybe [V1NodeSelectorRequirement]) -- ^ "matchExpressions" - A list of node selector requirements by node&#39;s labels.
  , V1NodeSelectorTerm -> Maybe [V1NodeSelectorRequirement]
v1NodeSelectorTermMatchFields :: !(Maybe [V1NodeSelectorRequirement]) -- ^ "matchFields" - A list of node selector requirements by node&#39;s fields.
  } deriving (Int -> V1NodeSelectorTerm -> ShowS
[V1NodeSelectorTerm] -> ShowS
V1NodeSelectorTerm -> String
(Int -> V1NodeSelectorTerm -> ShowS)
-> (V1NodeSelectorTerm -> String)
-> ([V1NodeSelectorTerm] -> ShowS)
-> Show V1NodeSelectorTerm
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NodeSelectorTerm] -> ShowS
$cshowList :: [V1NodeSelectorTerm] -> ShowS
show :: V1NodeSelectorTerm -> String
$cshow :: V1NodeSelectorTerm -> String
showsPrec :: Int -> V1NodeSelectorTerm -> ShowS
$cshowsPrec :: Int -> V1NodeSelectorTerm -> ShowS
P.Show, V1NodeSelectorTerm -> V1NodeSelectorTerm -> Bool
(V1NodeSelectorTerm -> V1NodeSelectorTerm -> Bool)
-> (V1NodeSelectorTerm -> V1NodeSelectorTerm -> Bool)
-> Eq V1NodeSelectorTerm
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NodeSelectorTerm -> V1NodeSelectorTerm -> Bool
$c/= :: V1NodeSelectorTerm -> V1NodeSelectorTerm -> Bool
== :: V1NodeSelectorTerm -> V1NodeSelectorTerm -> Bool
$c== :: V1NodeSelectorTerm -> V1NodeSelectorTerm -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NodeSelectorTerm
instance A.FromJSON V1NodeSelectorTerm where
  parseJSON :: Value -> Parser V1NodeSelectorTerm
parseJSON = String
-> (Object -> Parser V1NodeSelectorTerm)
-> Value
-> Parser V1NodeSelectorTerm
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NodeSelectorTerm" ((Object -> Parser V1NodeSelectorTerm)
 -> Value -> Parser V1NodeSelectorTerm)
-> (Object -> Parser V1NodeSelectorTerm)
-> Value
-> Parser V1NodeSelectorTerm
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1NodeSelectorRequirement]
-> Maybe [V1NodeSelectorRequirement] -> V1NodeSelectorTerm
V1NodeSelectorTerm
      (Maybe [V1NodeSelectorRequirement]
 -> Maybe [V1NodeSelectorRequirement] -> V1NodeSelectorTerm)
-> Parser (Maybe [V1NodeSelectorRequirement])
-> Parser (Maybe [V1NodeSelectorRequirement] -> V1NodeSelectorTerm)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1NodeSelectorRequirement])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"matchExpressions")
      Parser (Maybe [V1NodeSelectorRequirement] -> V1NodeSelectorTerm)
-> Parser (Maybe [V1NodeSelectorRequirement])
-> Parser V1NodeSelectorTerm
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1NodeSelectorRequirement])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"matchFields")

-- | ToJSON V1NodeSelectorTerm
instance A.ToJSON V1NodeSelectorTerm where
  toJSON :: V1NodeSelectorTerm -> Value
toJSON V1NodeSelectorTerm {Maybe [V1NodeSelectorRequirement]
v1NodeSelectorTermMatchFields :: Maybe [V1NodeSelectorRequirement]
v1NodeSelectorTermMatchExpressions :: Maybe [V1NodeSelectorRequirement]
v1NodeSelectorTermMatchFields :: V1NodeSelectorTerm -> Maybe [V1NodeSelectorRequirement]
v1NodeSelectorTermMatchExpressions :: V1NodeSelectorTerm -> Maybe [V1NodeSelectorRequirement]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"matchExpressions" Text -> Maybe [V1NodeSelectorRequirement] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1NodeSelectorRequirement]
v1NodeSelectorTermMatchExpressions
      , Text
"matchFields" Text -> Maybe [V1NodeSelectorRequirement] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1NodeSelectorRequirement]
v1NodeSelectorTermMatchFields
      ]


-- | Construct a value of type 'V1NodeSelectorTerm' (by applying it's required fields, if any)
mkV1NodeSelectorTerm
  :: V1NodeSelectorTerm
mkV1NodeSelectorTerm :: V1NodeSelectorTerm
mkV1NodeSelectorTerm =
  V1NodeSelectorTerm :: Maybe [V1NodeSelectorRequirement]
-> Maybe [V1NodeSelectorRequirement] -> V1NodeSelectorTerm
V1NodeSelectorTerm
  { v1NodeSelectorTermMatchExpressions :: Maybe [V1NodeSelectorRequirement]
v1NodeSelectorTermMatchExpressions = Maybe [V1NodeSelectorRequirement]
forall a. Maybe a
Nothing
  , v1NodeSelectorTermMatchFields :: Maybe [V1NodeSelectorRequirement]
v1NodeSelectorTermMatchFields = Maybe [V1NodeSelectorRequirement]
forall a. Maybe a
Nothing
  }

-- ** V1NodeSpec
-- | V1NodeSpec
-- NodeSpec describes the attributes that a node is created with.
data V1NodeSpec = V1NodeSpec
  { V1NodeSpec -> Maybe V1NodeConfigSource
v1NodeSpecConfigSource :: !(Maybe V1NodeConfigSource) -- ^ "configSource"
  , V1NodeSpec -> Maybe Text
v1NodeSpecExternalId :: !(Maybe Text) -- ^ "externalID" - Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966
  , V1NodeSpec -> Maybe Text
v1NodeSpecPodCidr :: !(Maybe Text) -- ^ "podCIDR" - PodCIDR represents the pod IP range assigned to the node.
  , V1NodeSpec -> Maybe [Text]
v1NodeSpecPodCidRs :: !(Maybe [Text]) -- ^ "podCIDRs" - podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.
  , V1NodeSpec -> Maybe Text
v1NodeSpecProviderId :: !(Maybe Text) -- ^ "providerID" - ID of the node assigned by the cloud provider in the format: &lt;ProviderName&gt;://&lt;ProviderSpecificNodeID&gt;
  , V1NodeSpec -> Maybe [V1Taint]
v1NodeSpecTaints :: !(Maybe [V1Taint]) -- ^ "taints" - If specified, the node&#39;s taints.
  , V1NodeSpec -> Maybe Bool
v1NodeSpecUnschedulable :: !(Maybe Bool) -- ^ "unschedulable" - Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration
  } deriving (Int -> V1NodeSpec -> ShowS
[V1NodeSpec] -> ShowS
V1NodeSpec -> String
(Int -> V1NodeSpec -> ShowS)
-> (V1NodeSpec -> String)
-> ([V1NodeSpec] -> ShowS)
-> Show V1NodeSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NodeSpec] -> ShowS
$cshowList :: [V1NodeSpec] -> ShowS
show :: V1NodeSpec -> String
$cshow :: V1NodeSpec -> String
showsPrec :: Int -> V1NodeSpec -> ShowS
$cshowsPrec :: Int -> V1NodeSpec -> ShowS
P.Show, V1NodeSpec -> V1NodeSpec -> Bool
(V1NodeSpec -> V1NodeSpec -> Bool)
-> (V1NodeSpec -> V1NodeSpec -> Bool) -> Eq V1NodeSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NodeSpec -> V1NodeSpec -> Bool
$c/= :: V1NodeSpec -> V1NodeSpec -> Bool
== :: V1NodeSpec -> V1NodeSpec -> Bool
$c== :: V1NodeSpec -> V1NodeSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NodeSpec
instance A.FromJSON V1NodeSpec where
  parseJSON :: Value -> Parser V1NodeSpec
parseJSON = String
-> (Object -> Parser V1NodeSpec) -> Value -> Parser V1NodeSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NodeSpec" ((Object -> Parser V1NodeSpec) -> Value -> Parser V1NodeSpec)
-> (Object -> Parser V1NodeSpec) -> Value -> Parser V1NodeSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1NodeConfigSource
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe [V1Taint]
-> Maybe Bool
-> V1NodeSpec
V1NodeSpec
      (Maybe V1NodeConfigSource
 -> Maybe Text
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe [V1Taint]
 -> Maybe Bool
 -> V1NodeSpec)
-> Parser (Maybe V1NodeConfigSource)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [V1Taint]
      -> Maybe Bool
      -> V1NodeSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1NodeConfigSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"configSource")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [V1Taint]
   -> Maybe Bool
   -> V1NodeSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe [V1Taint]
      -> Maybe Bool
      -> V1NodeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"externalID")
      Parser
  (Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe [V1Taint]
   -> Maybe Bool
   -> V1NodeSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Text]
      -> Maybe Text -> Maybe [V1Taint] -> Maybe Bool -> V1NodeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"podCIDR")
      Parser
  (Maybe [Text]
   -> Maybe Text -> Maybe [V1Taint] -> Maybe Bool -> V1NodeSpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Text -> Maybe [V1Taint] -> Maybe Bool -> V1NodeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"podCIDRs")
      Parser (Maybe Text -> Maybe [V1Taint] -> Maybe Bool -> V1NodeSpec)
-> Parser (Maybe Text)
-> Parser (Maybe [V1Taint] -> Maybe Bool -> V1NodeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"providerID")
      Parser (Maybe [V1Taint] -> Maybe Bool -> V1NodeSpec)
-> Parser (Maybe [V1Taint]) -> Parser (Maybe Bool -> V1NodeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1Taint])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"taints")
      Parser (Maybe Bool -> V1NodeSpec)
-> Parser (Maybe Bool) -> Parser V1NodeSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"unschedulable")

-- | ToJSON V1NodeSpec
instance A.ToJSON V1NodeSpec where
  toJSON :: V1NodeSpec -> Value
toJSON V1NodeSpec {Maybe Bool
Maybe [Text]
Maybe [V1Taint]
Maybe Text
Maybe V1NodeConfigSource
v1NodeSpecUnschedulable :: Maybe Bool
v1NodeSpecTaints :: Maybe [V1Taint]
v1NodeSpecProviderId :: Maybe Text
v1NodeSpecPodCidRs :: Maybe [Text]
v1NodeSpecPodCidr :: Maybe Text
v1NodeSpecExternalId :: Maybe Text
v1NodeSpecConfigSource :: Maybe V1NodeConfigSource
v1NodeSpecUnschedulable :: V1NodeSpec -> Maybe Bool
v1NodeSpecTaints :: V1NodeSpec -> Maybe [V1Taint]
v1NodeSpecProviderId :: V1NodeSpec -> Maybe Text
v1NodeSpecPodCidRs :: V1NodeSpec -> Maybe [Text]
v1NodeSpecPodCidr :: V1NodeSpec -> Maybe Text
v1NodeSpecExternalId :: V1NodeSpec -> Maybe Text
v1NodeSpecConfigSource :: V1NodeSpec -> Maybe V1NodeConfigSource
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"configSource" Text -> Maybe V1NodeConfigSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NodeConfigSource
v1NodeSpecConfigSource
      , Text
"externalID" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NodeSpecExternalId
      , Text
"podCIDR" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NodeSpecPodCidr
      , Text
"podCIDRs" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1NodeSpecPodCidRs
      , Text
"providerID" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NodeSpecProviderId
      , Text
"taints" Text -> Maybe [V1Taint] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1Taint]
v1NodeSpecTaints
      , Text
"unschedulable" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1NodeSpecUnschedulable
      ]


-- | Construct a value of type 'V1NodeSpec' (by applying it's required fields, if any)
mkV1NodeSpec
  :: V1NodeSpec
mkV1NodeSpec :: V1NodeSpec
mkV1NodeSpec =
  V1NodeSpec :: Maybe V1NodeConfigSource
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe [V1Taint]
-> Maybe Bool
-> V1NodeSpec
V1NodeSpec
  { v1NodeSpecConfigSource :: Maybe V1NodeConfigSource
v1NodeSpecConfigSource = Maybe V1NodeConfigSource
forall a. Maybe a
Nothing
  , v1NodeSpecExternalId :: Maybe Text
v1NodeSpecExternalId = Maybe Text
forall a. Maybe a
Nothing
  , v1NodeSpecPodCidr :: Maybe Text
v1NodeSpecPodCidr = Maybe Text
forall a. Maybe a
Nothing
  , v1NodeSpecPodCidRs :: Maybe [Text]
v1NodeSpecPodCidRs = Maybe [Text]
forall a. Maybe a
Nothing
  , v1NodeSpecProviderId :: Maybe Text
v1NodeSpecProviderId = Maybe Text
forall a. Maybe a
Nothing
  , v1NodeSpecTaints :: Maybe [V1Taint]
v1NodeSpecTaints = Maybe [V1Taint]
forall a. Maybe a
Nothing
  , v1NodeSpecUnschedulable :: Maybe Bool
v1NodeSpecUnschedulable = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1NodeStatus
-- | V1NodeStatus
-- NodeStatus is information about the current status of a node.
data V1NodeStatus = V1NodeStatus
  { V1NodeStatus -> Maybe [V1NodeAddress]
v1NodeStatusAddresses :: !(Maybe [V1NodeAddress]) -- ^ "addresses" - List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See http://pr.k8s.io/79391 for an example.
  , V1NodeStatus -> Maybe (Map String Quantity)
v1NodeStatusAllocatable :: !(Maybe (Map.Map String Quantity)) -- ^ "allocatable" - Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.
  , V1NodeStatus -> Maybe (Map String Quantity)
v1NodeStatusCapacity :: !(Maybe (Map.Map String Quantity)) -- ^ "capacity" - Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
  , V1NodeStatus -> Maybe [V1NodeCondition]
v1NodeStatusConditions :: !(Maybe [V1NodeCondition]) -- ^ "conditions" - Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
  , V1NodeStatus -> Maybe V1NodeConfigStatus
v1NodeStatusConfig :: !(Maybe V1NodeConfigStatus) -- ^ "config"
  , V1NodeStatus -> Maybe V1NodeDaemonEndpoints
v1NodeStatusDaemonEndpoints :: !(Maybe V1NodeDaemonEndpoints) -- ^ "daemonEndpoints"
  , V1NodeStatus -> Maybe [V1ContainerImage]
v1NodeStatusImages :: !(Maybe [V1ContainerImage]) -- ^ "images" - List of container images on this node
  , V1NodeStatus -> Maybe V1NodeSystemInfo
v1NodeStatusNodeInfo :: !(Maybe V1NodeSystemInfo) -- ^ "nodeInfo"
  , V1NodeStatus -> Maybe Text
v1NodeStatusPhase :: !(Maybe Text) -- ^ "phase" - NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.
  , V1NodeStatus -> Maybe [V1AttachedVolume]
v1NodeStatusVolumesAttached :: !(Maybe [V1AttachedVolume]) -- ^ "volumesAttached" - List of volumes that are attached to the node.
  , V1NodeStatus -> Maybe [Text]
v1NodeStatusVolumesInUse :: !(Maybe [Text]) -- ^ "volumesInUse" - List of attachable volumes in use (mounted) by the node.
  } deriving (Int -> V1NodeStatus -> ShowS
[V1NodeStatus] -> ShowS
V1NodeStatus -> String
(Int -> V1NodeStatus -> ShowS)
-> (V1NodeStatus -> String)
-> ([V1NodeStatus] -> ShowS)
-> Show V1NodeStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NodeStatus] -> ShowS
$cshowList :: [V1NodeStatus] -> ShowS
show :: V1NodeStatus -> String
$cshow :: V1NodeStatus -> String
showsPrec :: Int -> V1NodeStatus -> ShowS
$cshowsPrec :: Int -> V1NodeStatus -> ShowS
P.Show, V1NodeStatus -> V1NodeStatus -> Bool
(V1NodeStatus -> V1NodeStatus -> Bool)
-> (V1NodeStatus -> V1NodeStatus -> Bool) -> Eq V1NodeStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NodeStatus -> V1NodeStatus -> Bool
$c/= :: V1NodeStatus -> V1NodeStatus -> Bool
== :: V1NodeStatus -> V1NodeStatus -> Bool
$c== :: V1NodeStatus -> V1NodeStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NodeStatus
instance A.FromJSON V1NodeStatus where
  parseJSON :: Value -> Parser V1NodeStatus
parseJSON = String
-> (Object -> Parser V1NodeStatus) -> Value -> Parser V1NodeStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NodeStatus" ((Object -> Parser V1NodeStatus) -> Value -> Parser V1NodeStatus)
-> (Object -> Parser V1NodeStatus) -> Value -> Parser V1NodeStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1NodeAddress]
-> Maybe (Map String Quantity)
-> Maybe (Map String Quantity)
-> Maybe [V1NodeCondition]
-> Maybe V1NodeConfigStatus
-> Maybe V1NodeDaemonEndpoints
-> Maybe [V1ContainerImage]
-> Maybe V1NodeSystemInfo
-> Maybe Text
-> Maybe [V1AttachedVolume]
-> Maybe [Text]
-> V1NodeStatus
V1NodeStatus
      (Maybe [V1NodeAddress]
 -> Maybe (Map String Quantity)
 -> Maybe (Map String Quantity)
 -> Maybe [V1NodeCondition]
 -> Maybe V1NodeConfigStatus
 -> Maybe V1NodeDaemonEndpoints
 -> Maybe [V1ContainerImage]
 -> Maybe V1NodeSystemInfo
 -> Maybe Text
 -> Maybe [V1AttachedVolume]
 -> Maybe [Text]
 -> V1NodeStatus)
-> Parser (Maybe [V1NodeAddress])
-> Parser
     (Maybe (Map String Quantity)
      -> Maybe (Map String Quantity)
      -> Maybe [V1NodeCondition]
      -> Maybe V1NodeConfigStatus
      -> Maybe V1NodeDaemonEndpoints
      -> Maybe [V1ContainerImage]
      -> Maybe V1NodeSystemInfo
      -> Maybe Text
      -> Maybe [V1AttachedVolume]
      -> Maybe [Text]
      -> V1NodeStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1NodeAddress])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"addresses")
      Parser
  (Maybe (Map String Quantity)
   -> Maybe (Map String Quantity)
   -> Maybe [V1NodeCondition]
   -> Maybe V1NodeConfigStatus
   -> Maybe V1NodeDaemonEndpoints
   -> Maybe [V1ContainerImage]
   -> Maybe V1NodeSystemInfo
   -> Maybe Text
   -> Maybe [V1AttachedVolume]
   -> Maybe [Text]
   -> V1NodeStatus)
-> Parser (Maybe (Map String Quantity))
-> Parser
     (Maybe (Map String Quantity)
      -> Maybe [V1NodeCondition]
      -> Maybe V1NodeConfigStatus
      -> Maybe V1NodeDaemonEndpoints
      -> Maybe [V1ContainerImage]
      -> Maybe V1NodeSystemInfo
      -> Maybe Text
      -> Maybe [V1AttachedVolume]
      -> Maybe [Text]
      -> V1NodeStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allocatable")
      Parser
  (Maybe (Map String Quantity)
   -> Maybe [V1NodeCondition]
   -> Maybe V1NodeConfigStatus
   -> Maybe V1NodeDaemonEndpoints
   -> Maybe [V1ContainerImage]
   -> Maybe V1NodeSystemInfo
   -> Maybe Text
   -> Maybe [V1AttachedVolume]
   -> Maybe [Text]
   -> V1NodeStatus)
-> Parser (Maybe (Map String Quantity))
-> Parser
     (Maybe [V1NodeCondition]
      -> Maybe V1NodeConfigStatus
      -> Maybe V1NodeDaemonEndpoints
      -> Maybe [V1ContainerImage]
      -> Maybe V1NodeSystemInfo
      -> Maybe Text
      -> Maybe [V1AttachedVolume]
      -> Maybe [Text]
      -> V1NodeStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"capacity")
      Parser
  (Maybe [V1NodeCondition]
   -> Maybe V1NodeConfigStatus
   -> Maybe V1NodeDaemonEndpoints
   -> Maybe [V1ContainerImage]
   -> Maybe V1NodeSystemInfo
   -> Maybe Text
   -> Maybe [V1AttachedVolume]
   -> Maybe [Text]
   -> V1NodeStatus)
-> Parser (Maybe [V1NodeCondition])
-> Parser
     (Maybe V1NodeConfigStatus
      -> Maybe V1NodeDaemonEndpoints
      -> Maybe [V1ContainerImage]
      -> Maybe V1NodeSystemInfo
      -> Maybe Text
      -> Maybe [V1AttachedVolume]
      -> Maybe [Text]
      -> V1NodeStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1NodeCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Maybe V1NodeConfigStatus
   -> Maybe V1NodeDaemonEndpoints
   -> Maybe [V1ContainerImage]
   -> Maybe V1NodeSystemInfo
   -> Maybe Text
   -> Maybe [V1AttachedVolume]
   -> Maybe [Text]
   -> V1NodeStatus)
-> Parser (Maybe V1NodeConfigStatus)
-> Parser
     (Maybe V1NodeDaemonEndpoints
      -> Maybe [V1ContainerImage]
      -> Maybe V1NodeSystemInfo
      -> Maybe Text
      -> Maybe [V1AttachedVolume]
      -> Maybe [Text]
      -> V1NodeStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1NodeConfigStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"config")
      Parser
  (Maybe V1NodeDaemonEndpoints
   -> Maybe [V1ContainerImage]
   -> Maybe V1NodeSystemInfo
   -> Maybe Text
   -> Maybe [V1AttachedVolume]
   -> Maybe [Text]
   -> V1NodeStatus)
-> Parser (Maybe V1NodeDaemonEndpoints)
-> Parser
     (Maybe [V1ContainerImage]
      -> Maybe V1NodeSystemInfo
      -> Maybe Text
      -> Maybe [V1AttachedVolume]
      -> Maybe [Text]
      -> V1NodeStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1NodeDaemonEndpoints)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"daemonEndpoints")
      Parser
  (Maybe [V1ContainerImage]
   -> Maybe V1NodeSystemInfo
   -> Maybe Text
   -> Maybe [V1AttachedVolume]
   -> Maybe [Text]
   -> V1NodeStatus)
-> Parser (Maybe [V1ContainerImage])
-> Parser
     (Maybe V1NodeSystemInfo
      -> Maybe Text
      -> Maybe [V1AttachedVolume]
      -> Maybe [Text]
      -> V1NodeStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1ContainerImage])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"images")
      Parser
  (Maybe V1NodeSystemInfo
   -> Maybe Text
   -> Maybe [V1AttachedVolume]
   -> Maybe [Text]
   -> V1NodeStatus)
-> Parser (Maybe V1NodeSystemInfo)
-> Parser
     (Maybe Text
      -> Maybe [V1AttachedVolume] -> Maybe [Text] -> V1NodeStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1NodeSystemInfo)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nodeInfo")
      Parser
  (Maybe Text
   -> Maybe [V1AttachedVolume] -> Maybe [Text] -> V1NodeStatus)
-> Parser (Maybe Text)
-> Parser
     (Maybe [V1AttachedVolume] -> Maybe [Text] -> V1NodeStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"phase")
      Parser (Maybe [V1AttachedVolume] -> Maybe [Text] -> V1NodeStatus)
-> Parser (Maybe [V1AttachedVolume])
-> Parser (Maybe [Text] -> V1NodeStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1AttachedVolume])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumesAttached")
      Parser (Maybe [Text] -> V1NodeStatus)
-> Parser (Maybe [Text]) -> Parser V1NodeStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumesInUse")

-- | ToJSON V1NodeStatus
instance A.ToJSON V1NodeStatus where
  toJSON :: V1NodeStatus -> Value
toJSON V1NodeStatus {Maybe [Text]
Maybe [V1NodeCondition]
Maybe [V1NodeAddress]
Maybe [V1ContainerImage]
Maybe [V1AttachedVolume]
Maybe Text
Maybe (Map String Quantity)
Maybe V1NodeSystemInfo
Maybe V1NodeDaemonEndpoints
Maybe V1NodeConfigStatus
v1NodeStatusVolumesInUse :: Maybe [Text]
v1NodeStatusVolumesAttached :: Maybe [V1AttachedVolume]
v1NodeStatusPhase :: Maybe Text
v1NodeStatusNodeInfo :: Maybe V1NodeSystemInfo
v1NodeStatusImages :: Maybe [V1ContainerImage]
v1NodeStatusDaemonEndpoints :: Maybe V1NodeDaemonEndpoints
v1NodeStatusConfig :: Maybe V1NodeConfigStatus
v1NodeStatusConditions :: Maybe [V1NodeCondition]
v1NodeStatusCapacity :: Maybe (Map String Quantity)
v1NodeStatusAllocatable :: Maybe (Map String Quantity)
v1NodeStatusAddresses :: Maybe [V1NodeAddress]
v1NodeStatusVolumesInUse :: V1NodeStatus -> Maybe [Text]
v1NodeStatusVolumesAttached :: V1NodeStatus -> Maybe [V1AttachedVolume]
v1NodeStatusPhase :: V1NodeStatus -> Maybe Text
v1NodeStatusNodeInfo :: V1NodeStatus -> Maybe V1NodeSystemInfo
v1NodeStatusImages :: V1NodeStatus -> Maybe [V1ContainerImage]
v1NodeStatusDaemonEndpoints :: V1NodeStatus -> Maybe V1NodeDaemonEndpoints
v1NodeStatusConfig :: V1NodeStatus -> Maybe V1NodeConfigStatus
v1NodeStatusConditions :: V1NodeStatus -> Maybe [V1NodeCondition]
v1NodeStatusCapacity :: V1NodeStatus -> Maybe (Map String Quantity)
v1NodeStatusAllocatable :: V1NodeStatus -> Maybe (Map String Quantity)
v1NodeStatusAddresses :: V1NodeStatus -> Maybe [V1NodeAddress]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"addresses" Text -> Maybe [V1NodeAddress] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1NodeAddress]
v1NodeStatusAddresses
      , Text
"allocatable" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1NodeStatusAllocatable
      , Text
"capacity" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1NodeStatusCapacity
      , Text
"conditions" Text -> Maybe [V1NodeCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1NodeCondition]
v1NodeStatusConditions
      , Text
"config" Text -> Maybe V1NodeConfigStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NodeConfigStatus
v1NodeStatusConfig
      , Text
"daemonEndpoints" Text -> Maybe V1NodeDaemonEndpoints -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NodeDaemonEndpoints
v1NodeStatusDaemonEndpoints
      , Text
"images" Text -> Maybe [V1ContainerImage] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ContainerImage]
v1NodeStatusImages
      , Text
"nodeInfo" Text -> Maybe V1NodeSystemInfo -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NodeSystemInfo
v1NodeStatusNodeInfo
      , Text
"phase" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NodeStatusPhase
      , Text
"volumesAttached" Text -> Maybe [V1AttachedVolume] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1AttachedVolume]
v1NodeStatusVolumesAttached
      , Text
"volumesInUse" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1NodeStatusVolumesInUse
      ]


-- | Construct a value of type 'V1NodeStatus' (by applying it's required fields, if any)
mkV1NodeStatus
  :: V1NodeStatus
mkV1NodeStatus :: V1NodeStatus
mkV1NodeStatus =
  V1NodeStatus :: Maybe [V1NodeAddress]
-> Maybe (Map String Quantity)
-> Maybe (Map String Quantity)
-> Maybe [V1NodeCondition]
-> Maybe V1NodeConfigStatus
-> Maybe V1NodeDaemonEndpoints
-> Maybe [V1ContainerImage]
-> Maybe V1NodeSystemInfo
-> Maybe Text
-> Maybe [V1AttachedVolume]
-> Maybe [Text]
-> V1NodeStatus
V1NodeStatus
  { v1NodeStatusAddresses :: Maybe [V1NodeAddress]
v1NodeStatusAddresses = Maybe [V1NodeAddress]
forall a. Maybe a
Nothing
  , v1NodeStatusAllocatable :: Maybe (Map String Quantity)
v1NodeStatusAllocatable = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  , v1NodeStatusCapacity :: Maybe (Map String Quantity)
v1NodeStatusCapacity = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  , v1NodeStatusConditions :: Maybe [V1NodeCondition]
v1NodeStatusConditions = Maybe [V1NodeCondition]
forall a. Maybe a
Nothing
  , v1NodeStatusConfig :: Maybe V1NodeConfigStatus
v1NodeStatusConfig = Maybe V1NodeConfigStatus
forall a. Maybe a
Nothing
  , v1NodeStatusDaemonEndpoints :: Maybe V1NodeDaemonEndpoints
v1NodeStatusDaemonEndpoints = Maybe V1NodeDaemonEndpoints
forall a. Maybe a
Nothing
  , v1NodeStatusImages :: Maybe [V1ContainerImage]
v1NodeStatusImages = Maybe [V1ContainerImage]
forall a. Maybe a
Nothing
  , v1NodeStatusNodeInfo :: Maybe V1NodeSystemInfo
v1NodeStatusNodeInfo = Maybe V1NodeSystemInfo
forall a. Maybe a
Nothing
  , v1NodeStatusPhase :: Maybe Text
v1NodeStatusPhase = Maybe Text
forall a. Maybe a
Nothing
  , v1NodeStatusVolumesAttached :: Maybe [V1AttachedVolume]
v1NodeStatusVolumesAttached = Maybe [V1AttachedVolume]
forall a. Maybe a
Nothing
  , v1NodeStatusVolumesInUse :: Maybe [Text]
v1NodeStatusVolumesInUse = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1NodeSystemInfo
-- | V1NodeSystemInfo
-- NodeSystemInfo is a set of ids/uuids to uniquely identify the node.
data V1NodeSystemInfo = V1NodeSystemInfo
  { V1NodeSystemInfo -> Text
v1NodeSystemInfoArchitecture :: !(Text) -- ^ /Required/ "architecture" - The Architecture reported by the node
  , V1NodeSystemInfo -> Text
v1NodeSystemInfoBootId :: !(Text) -- ^ /Required/ "bootID" - Boot ID reported by the node.
  , V1NodeSystemInfo -> Text
v1NodeSystemInfoContainerRuntimeVersion :: !(Text) -- ^ /Required/ "containerRuntimeVersion" - ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).
  , V1NodeSystemInfo -> Text
v1NodeSystemInfoKernelVersion :: !(Text) -- ^ /Required/ "kernelVersion" - Kernel Version reported by the node from &#39;uname -r&#39; (e.g. 3.16.0-0.bpo.4-amd64).
  , V1NodeSystemInfo -> Text
v1NodeSystemInfoKubeProxyVersion :: !(Text) -- ^ /Required/ "kubeProxyVersion" - KubeProxy Version reported by the node.
  , V1NodeSystemInfo -> Text
v1NodeSystemInfoKubeletVersion :: !(Text) -- ^ /Required/ "kubeletVersion" - Kubelet Version reported by the node.
  , V1NodeSystemInfo -> Text
v1NodeSystemInfoMachineId :: !(Text) -- ^ /Required/ "machineID" - MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
  , V1NodeSystemInfo -> Text
v1NodeSystemInfoOperatingSystem :: !(Text) -- ^ /Required/ "operatingSystem" - The Operating System reported by the node
  , V1NodeSystemInfo -> Text
v1NodeSystemInfoOsImage :: !(Text) -- ^ /Required/ "osImage" - OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).
  , V1NodeSystemInfo -> Text
v1NodeSystemInfoSystemUuid :: !(Text) -- ^ /Required/ "systemUUID" - SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
  } deriving (Int -> V1NodeSystemInfo -> ShowS
[V1NodeSystemInfo] -> ShowS
V1NodeSystemInfo -> String
(Int -> V1NodeSystemInfo -> ShowS)
-> (V1NodeSystemInfo -> String)
-> ([V1NodeSystemInfo] -> ShowS)
-> Show V1NodeSystemInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NodeSystemInfo] -> ShowS
$cshowList :: [V1NodeSystemInfo] -> ShowS
show :: V1NodeSystemInfo -> String
$cshow :: V1NodeSystemInfo -> String
showsPrec :: Int -> V1NodeSystemInfo -> ShowS
$cshowsPrec :: Int -> V1NodeSystemInfo -> ShowS
P.Show, V1NodeSystemInfo -> V1NodeSystemInfo -> Bool
(V1NodeSystemInfo -> V1NodeSystemInfo -> Bool)
-> (V1NodeSystemInfo -> V1NodeSystemInfo -> Bool)
-> Eq V1NodeSystemInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NodeSystemInfo -> V1NodeSystemInfo -> Bool
$c/= :: V1NodeSystemInfo -> V1NodeSystemInfo -> Bool
== :: V1NodeSystemInfo -> V1NodeSystemInfo -> Bool
$c== :: V1NodeSystemInfo -> V1NodeSystemInfo -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NodeSystemInfo
instance A.FromJSON V1NodeSystemInfo where
  parseJSON :: Value -> Parser V1NodeSystemInfo
parseJSON = String
-> (Object -> Parser V1NodeSystemInfo)
-> Value
-> Parser V1NodeSystemInfo
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NodeSystemInfo" ((Object -> Parser V1NodeSystemInfo)
 -> Value -> Parser V1NodeSystemInfo)
-> (Object -> Parser V1NodeSystemInfo)
-> Value
-> Parser V1NodeSystemInfo
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> V1NodeSystemInfo
V1NodeSystemInfo
      (Text
 -> Text
 -> Text
 -> Text
 -> Text
 -> Text
 -> Text
 -> Text
 -> Text
 -> Text
 -> V1NodeSystemInfo)
-> Parser Text
-> Parser
     (Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> V1NodeSystemInfo)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"architecture")
      Parser
  (Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> V1NodeSystemInfo)
-> Parser Text
-> Parser
     (Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> V1NodeSystemInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"bootID")
      Parser
  (Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> V1NodeSystemInfo)
-> Parser Text
-> Parser
     (Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> V1NodeSystemInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"containerRuntimeVersion")
      Parser
  (Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> V1NodeSystemInfo)
-> Parser Text
-> Parser
     (Text -> Text -> Text -> Text -> Text -> Text -> V1NodeSystemInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kernelVersion")
      Parser
  (Text -> Text -> Text -> Text -> Text -> Text -> V1NodeSystemInfo)
-> Parser Text
-> Parser
     (Text -> Text -> Text -> Text -> Text -> V1NodeSystemInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kubeProxyVersion")
      Parser (Text -> Text -> Text -> Text -> Text -> V1NodeSystemInfo)
-> Parser Text
-> Parser (Text -> Text -> Text -> Text -> V1NodeSystemInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kubeletVersion")
      Parser (Text -> Text -> Text -> Text -> V1NodeSystemInfo)
-> Parser Text -> Parser (Text -> Text -> Text -> V1NodeSystemInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"machineID")
      Parser (Text -> Text -> Text -> V1NodeSystemInfo)
-> Parser Text -> Parser (Text -> Text -> V1NodeSystemInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"operatingSystem")
      Parser (Text -> Text -> V1NodeSystemInfo)
-> Parser Text -> Parser (Text -> V1NodeSystemInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"osImage")
      Parser (Text -> V1NodeSystemInfo)
-> Parser Text -> Parser V1NodeSystemInfo
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"systemUUID")

-- | ToJSON V1NodeSystemInfo
instance A.ToJSON V1NodeSystemInfo where
  toJSON :: V1NodeSystemInfo -> Value
toJSON V1NodeSystemInfo {Text
v1NodeSystemInfoSystemUuid :: Text
v1NodeSystemInfoOsImage :: Text
v1NodeSystemInfoOperatingSystem :: Text
v1NodeSystemInfoMachineId :: Text
v1NodeSystemInfoKubeletVersion :: Text
v1NodeSystemInfoKubeProxyVersion :: Text
v1NodeSystemInfoKernelVersion :: Text
v1NodeSystemInfoContainerRuntimeVersion :: Text
v1NodeSystemInfoBootId :: Text
v1NodeSystemInfoArchitecture :: Text
v1NodeSystemInfoSystemUuid :: V1NodeSystemInfo -> Text
v1NodeSystemInfoOsImage :: V1NodeSystemInfo -> Text
v1NodeSystemInfoOperatingSystem :: V1NodeSystemInfo -> Text
v1NodeSystemInfoMachineId :: V1NodeSystemInfo -> Text
v1NodeSystemInfoKubeletVersion :: V1NodeSystemInfo -> Text
v1NodeSystemInfoKubeProxyVersion :: V1NodeSystemInfo -> Text
v1NodeSystemInfoKernelVersion :: V1NodeSystemInfo -> Text
v1NodeSystemInfoContainerRuntimeVersion :: V1NodeSystemInfo -> Text
v1NodeSystemInfoBootId :: V1NodeSystemInfo -> Text
v1NodeSystemInfoArchitecture :: V1NodeSystemInfo -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"architecture" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NodeSystemInfoArchitecture
      , Text
"bootID" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NodeSystemInfoBootId
      , Text
"containerRuntimeVersion" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NodeSystemInfoContainerRuntimeVersion
      , Text
"kernelVersion" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NodeSystemInfoKernelVersion
      , Text
"kubeProxyVersion" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NodeSystemInfoKubeProxyVersion
      , Text
"kubeletVersion" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NodeSystemInfoKubeletVersion
      , Text
"machineID" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NodeSystemInfoMachineId
      , Text
"operatingSystem" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NodeSystemInfoOperatingSystem
      , Text
"osImage" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NodeSystemInfoOsImage
      , Text
"systemUUID" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1NodeSystemInfoSystemUuid
      ]


-- | Construct a value of type 'V1NodeSystemInfo' (by applying it's required fields, if any)
mkV1NodeSystemInfo
  :: Text -- ^ 'v1NodeSystemInfoArchitecture': The Architecture reported by the node
  -> Text -- ^ 'v1NodeSystemInfoBootId': Boot ID reported by the node.
  -> Text -- ^ 'v1NodeSystemInfoContainerRuntimeVersion': ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).
  -> Text -- ^ 'v1NodeSystemInfoKernelVersion': Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).
  -> Text -- ^ 'v1NodeSystemInfoKubeProxyVersion': KubeProxy Version reported by the node.
  -> Text -- ^ 'v1NodeSystemInfoKubeletVersion': Kubelet Version reported by the node.
  -> Text -- ^ 'v1NodeSystemInfoMachineId': MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
  -> Text -- ^ 'v1NodeSystemInfoOperatingSystem': The Operating System reported by the node
  -> Text -- ^ 'v1NodeSystemInfoOsImage': OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).
  -> Text -- ^ 'v1NodeSystemInfoSystemUuid': SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
  -> V1NodeSystemInfo
mkV1NodeSystemInfo :: Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> V1NodeSystemInfo
mkV1NodeSystemInfo Text
v1NodeSystemInfoArchitecture Text
v1NodeSystemInfoBootId Text
v1NodeSystemInfoContainerRuntimeVersion Text
v1NodeSystemInfoKernelVersion Text
v1NodeSystemInfoKubeProxyVersion Text
v1NodeSystemInfoKubeletVersion Text
v1NodeSystemInfoMachineId Text
v1NodeSystemInfoOperatingSystem Text
v1NodeSystemInfoOsImage Text
v1NodeSystemInfoSystemUuid =
  V1NodeSystemInfo :: Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> V1NodeSystemInfo
V1NodeSystemInfo
  { Text
v1NodeSystemInfoArchitecture :: Text
v1NodeSystemInfoArchitecture :: Text
v1NodeSystemInfoArchitecture
  , Text
v1NodeSystemInfoBootId :: Text
v1NodeSystemInfoBootId :: Text
v1NodeSystemInfoBootId
  , Text
v1NodeSystemInfoContainerRuntimeVersion :: Text
v1NodeSystemInfoContainerRuntimeVersion :: Text
v1NodeSystemInfoContainerRuntimeVersion
  , Text
v1NodeSystemInfoKernelVersion :: Text
v1NodeSystemInfoKernelVersion :: Text
v1NodeSystemInfoKernelVersion
  , Text
v1NodeSystemInfoKubeProxyVersion :: Text
v1NodeSystemInfoKubeProxyVersion :: Text
v1NodeSystemInfoKubeProxyVersion
  , Text
v1NodeSystemInfoKubeletVersion :: Text
v1NodeSystemInfoKubeletVersion :: Text
v1NodeSystemInfoKubeletVersion
  , Text
v1NodeSystemInfoMachineId :: Text
v1NodeSystemInfoMachineId :: Text
v1NodeSystemInfoMachineId
  , Text
v1NodeSystemInfoOperatingSystem :: Text
v1NodeSystemInfoOperatingSystem :: Text
v1NodeSystemInfoOperatingSystem
  , Text
v1NodeSystemInfoOsImage :: Text
v1NodeSystemInfoOsImage :: Text
v1NodeSystemInfoOsImage
  , Text
v1NodeSystemInfoSystemUuid :: Text
v1NodeSystemInfoSystemUuid :: Text
v1NodeSystemInfoSystemUuid
  }

-- ** V1NonResourceAttributes
-- | V1NonResourceAttributes
-- NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface
data V1NonResourceAttributes = V1NonResourceAttributes
  { V1NonResourceAttributes -> Maybe Text
v1NonResourceAttributesPath :: !(Maybe Text) -- ^ "path" - Path is the URL path of the request
  , V1NonResourceAttributes -> Maybe Text
v1NonResourceAttributesVerb :: !(Maybe Text) -- ^ "verb" - Verb is the standard HTTP verb
  } deriving (Int -> V1NonResourceAttributes -> ShowS
[V1NonResourceAttributes] -> ShowS
V1NonResourceAttributes -> String
(Int -> V1NonResourceAttributes -> ShowS)
-> (V1NonResourceAttributes -> String)
-> ([V1NonResourceAttributes] -> ShowS)
-> Show V1NonResourceAttributes
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NonResourceAttributes] -> ShowS
$cshowList :: [V1NonResourceAttributes] -> ShowS
show :: V1NonResourceAttributes -> String
$cshow :: V1NonResourceAttributes -> String
showsPrec :: Int -> V1NonResourceAttributes -> ShowS
$cshowsPrec :: Int -> V1NonResourceAttributes -> ShowS
P.Show, V1NonResourceAttributes -> V1NonResourceAttributes -> Bool
(V1NonResourceAttributes -> V1NonResourceAttributes -> Bool)
-> (V1NonResourceAttributes -> V1NonResourceAttributes -> Bool)
-> Eq V1NonResourceAttributes
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NonResourceAttributes -> V1NonResourceAttributes -> Bool
$c/= :: V1NonResourceAttributes -> V1NonResourceAttributes -> Bool
== :: V1NonResourceAttributes -> V1NonResourceAttributes -> Bool
$c== :: V1NonResourceAttributes -> V1NonResourceAttributes -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NonResourceAttributes
instance A.FromJSON V1NonResourceAttributes where
  parseJSON :: Value -> Parser V1NonResourceAttributes
parseJSON = String
-> (Object -> Parser V1NonResourceAttributes)
-> Value
-> Parser V1NonResourceAttributes
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NonResourceAttributes" ((Object -> Parser V1NonResourceAttributes)
 -> Value -> Parser V1NonResourceAttributes)
-> (Object -> Parser V1NonResourceAttributes)
-> Value
-> Parser V1NonResourceAttributes
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Text -> V1NonResourceAttributes
V1NonResourceAttributes
      (Maybe Text -> Maybe Text -> V1NonResourceAttributes)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1NonResourceAttributes)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"path")
      Parser (Maybe Text -> V1NonResourceAttributes)
-> Parser (Maybe Text) -> Parser V1NonResourceAttributes
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"verb")

-- | ToJSON V1NonResourceAttributes
instance A.ToJSON V1NonResourceAttributes where
  toJSON :: V1NonResourceAttributes -> Value
toJSON V1NonResourceAttributes {Maybe Text
v1NonResourceAttributesVerb :: Maybe Text
v1NonResourceAttributesPath :: Maybe Text
v1NonResourceAttributesVerb :: V1NonResourceAttributes -> Maybe Text
v1NonResourceAttributesPath :: V1NonResourceAttributes -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"path" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NonResourceAttributesPath
      , Text
"verb" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1NonResourceAttributesVerb
      ]


-- | Construct a value of type 'V1NonResourceAttributes' (by applying it's required fields, if any)
mkV1NonResourceAttributes
  :: V1NonResourceAttributes
mkV1NonResourceAttributes :: V1NonResourceAttributes
mkV1NonResourceAttributes =
  V1NonResourceAttributes :: Maybe Text -> Maybe Text -> V1NonResourceAttributes
V1NonResourceAttributes
  { v1NonResourceAttributesPath :: Maybe Text
v1NonResourceAttributesPath = Maybe Text
forall a. Maybe a
Nothing
  , v1NonResourceAttributesVerb :: Maybe Text
v1NonResourceAttributesVerb = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1NonResourceRule
-- | V1NonResourceRule
-- NonResourceRule holds information that describes a rule for the non-resource
data V1NonResourceRule = V1NonResourceRule
  { V1NonResourceRule -> Maybe [Text]
v1NonResourceRuleNonResourceUrLs :: !(Maybe [Text]) -- ^ "nonResourceURLs" - NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path.  \&quot;*\&quot; means all.
  , V1NonResourceRule -> [Text]
v1NonResourceRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \&quot;*\&quot; means all.
  } deriving (Int -> V1NonResourceRule -> ShowS
[V1NonResourceRule] -> ShowS
V1NonResourceRule -> String
(Int -> V1NonResourceRule -> ShowS)
-> (V1NonResourceRule -> String)
-> ([V1NonResourceRule] -> ShowS)
-> Show V1NonResourceRule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1NonResourceRule] -> ShowS
$cshowList :: [V1NonResourceRule] -> ShowS
show :: V1NonResourceRule -> String
$cshow :: V1NonResourceRule -> String
showsPrec :: Int -> V1NonResourceRule -> ShowS
$cshowsPrec :: Int -> V1NonResourceRule -> ShowS
P.Show, V1NonResourceRule -> V1NonResourceRule -> Bool
(V1NonResourceRule -> V1NonResourceRule -> Bool)
-> (V1NonResourceRule -> V1NonResourceRule -> Bool)
-> Eq V1NonResourceRule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1NonResourceRule -> V1NonResourceRule -> Bool
$c/= :: V1NonResourceRule -> V1NonResourceRule -> Bool
== :: V1NonResourceRule -> V1NonResourceRule -> Bool
$c== :: V1NonResourceRule -> V1NonResourceRule -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1NonResourceRule
instance A.FromJSON V1NonResourceRule where
  parseJSON :: Value -> Parser V1NonResourceRule
parseJSON = String
-> (Object -> Parser V1NonResourceRule)
-> Value
-> Parser V1NonResourceRule
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1NonResourceRule" ((Object -> Parser V1NonResourceRule)
 -> Value -> Parser V1NonResourceRule)
-> (Object -> Parser V1NonResourceRule)
-> Value
-> Parser V1NonResourceRule
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text] -> [Text] -> V1NonResourceRule
V1NonResourceRule
      (Maybe [Text] -> [Text] -> V1NonResourceRule)
-> Parser (Maybe [Text]) -> Parser ([Text] -> V1NonResourceRule)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nonResourceURLs")
      Parser ([Text] -> V1NonResourceRule)
-> Parser [Text] -> Parser V1NonResourceRule
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"verbs")

-- | ToJSON V1NonResourceRule
instance A.ToJSON V1NonResourceRule where
  toJSON :: V1NonResourceRule -> Value
toJSON V1NonResourceRule {[Text]
Maybe [Text]
v1NonResourceRuleVerbs :: [Text]
v1NonResourceRuleNonResourceUrLs :: Maybe [Text]
v1NonResourceRuleVerbs :: V1NonResourceRule -> [Text]
v1NonResourceRuleNonResourceUrLs :: V1NonResourceRule -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"nonResourceURLs" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1NonResourceRuleNonResourceUrLs
      , Text
"verbs" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1NonResourceRuleVerbs
      ]


-- | Construct a value of type 'V1NonResourceRule' (by applying it's required fields, if any)
mkV1NonResourceRule
  :: [Text] -- ^ 'v1NonResourceRuleVerbs': Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \"*\" means all.
  -> V1NonResourceRule
mkV1NonResourceRule :: [Text] -> V1NonResourceRule
mkV1NonResourceRule [Text]
v1NonResourceRuleVerbs =
  V1NonResourceRule :: Maybe [Text] -> [Text] -> V1NonResourceRule
V1NonResourceRule
  { v1NonResourceRuleNonResourceUrLs :: Maybe [Text]
v1NonResourceRuleNonResourceUrLs = Maybe [Text]
forall a. Maybe a
Nothing
  , [Text]
v1NonResourceRuleVerbs :: [Text]
v1NonResourceRuleVerbs :: [Text]
v1NonResourceRuleVerbs
  }

-- ** V1ObjectFieldSelector
-- | V1ObjectFieldSelector
-- ObjectFieldSelector selects an APIVersioned field of an object.
data V1ObjectFieldSelector = V1ObjectFieldSelector
  { V1ObjectFieldSelector -> Maybe Text
v1ObjectFieldSelectorApiVersion :: !(Maybe Text) -- ^ "apiVersion" - Version of the schema the FieldPath is written in terms of, defaults to \&quot;v1\&quot;.
  , V1ObjectFieldSelector -> Text
v1ObjectFieldSelectorFieldPath :: !(Text) -- ^ /Required/ "fieldPath" - Path of the field to select in the specified API version.
  } deriving (Int -> V1ObjectFieldSelector -> ShowS
[V1ObjectFieldSelector] -> ShowS
V1ObjectFieldSelector -> String
(Int -> V1ObjectFieldSelector -> ShowS)
-> (V1ObjectFieldSelector -> String)
-> ([V1ObjectFieldSelector] -> ShowS)
-> Show V1ObjectFieldSelector
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ObjectFieldSelector] -> ShowS
$cshowList :: [V1ObjectFieldSelector] -> ShowS
show :: V1ObjectFieldSelector -> String
$cshow :: V1ObjectFieldSelector -> String
showsPrec :: Int -> V1ObjectFieldSelector -> ShowS
$cshowsPrec :: Int -> V1ObjectFieldSelector -> ShowS
P.Show, V1ObjectFieldSelector -> V1ObjectFieldSelector -> Bool
(V1ObjectFieldSelector -> V1ObjectFieldSelector -> Bool)
-> (V1ObjectFieldSelector -> V1ObjectFieldSelector -> Bool)
-> Eq V1ObjectFieldSelector
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ObjectFieldSelector -> V1ObjectFieldSelector -> Bool
$c/= :: V1ObjectFieldSelector -> V1ObjectFieldSelector -> Bool
== :: V1ObjectFieldSelector -> V1ObjectFieldSelector -> Bool
$c== :: V1ObjectFieldSelector -> V1ObjectFieldSelector -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ObjectFieldSelector
instance A.FromJSON V1ObjectFieldSelector where
  parseJSON :: Value -> Parser V1ObjectFieldSelector
parseJSON = String
-> (Object -> Parser V1ObjectFieldSelector)
-> Value
-> Parser V1ObjectFieldSelector
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ObjectFieldSelector" ((Object -> Parser V1ObjectFieldSelector)
 -> Value -> Parser V1ObjectFieldSelector)
-> (Object -> Parser V1ObjectFieldSelector)
-> Value
-> Parser V1ObjectFieldSelector
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Text -> V1ObjectFieldSelector
V1ObjectFieldSelector
      (Maybe Text -> Text -> V1ObjectFieldSelector)
-> Parser (Maybe Text) -> Parser (Text -> V1ObjectFieldSelector)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser (Text -> V1ObjectFieldSelector)
-> Parser Text -> Parser V1ObjectFieldSelector
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"fieldPath")

-- | ToJSON V1ObjectFieldSelector
instance A.ToJSON V1ObjectFieldSelector where
  toJSON :: V1ObjectFieldSelector -> Value
toJSON V1ObjectFieldSelector {Maybe Text
Text
v1ObjectFieldSelectorFieldPath :: Text
v1ObjectFieldSelectorApiVersion :: Maybe Text
v1ObjectFieldSelectorFieldPath :: V1ObjectFieldSelector -> Text
v1ObjectFieldSelectorApiVersion :: V1ObjectFieldSelector -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ObjectFieldSelectorApiVersion
      , Text
"fieldPath" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ObjectFieldSelectorFieldPath
      ]


-- | Construct a value of type 'V1ObjectFieldSelector' (by applying it's required fields, if any)
mkV1ObjectFieldSelector
  :: Text -- ^ 'v1ObjectFieldSelectorFieldPath': Path of the field to select in the specified API version.
  -> V1ObjectFieldSelector
mkV1ObjectFieldSelector :: Text -> V1ObjectFieldSelector
mkV1ObjectFieldSelector Text
v1ObjectFieldSelectorFieldPath =
  V1ObjectFieldSelector :: Maybe Text -> Text -> V1ObjectFieldSelector
V1ObjectFieldSelector
  { v1ObjectFieldSelectorApiVersion :: Maybe Text
v1ObjectFieldSelectorApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1ObjectFieldSelectorFieldPath :: Text
v1ObjectFieldSelectorFieldPath :: Text
v1ObjectFieldSelectorFieldPath
  }

-- ** V1ObjectMeta
-- | V1ObjectMeta
-- ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.
data V1ObjectMeta = V1ObjectMeta
  { V1ObjectMeta -> Maybe (Map String Text)
v1ObjectMetaAnnotations :: !(Maybe (Map.Map String Text)) -- ^ "annotations" - Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations
  , V1ObjectMeta -> Maybe Text
v1ObjectMetaClusterName :: !(Maybe Text) -- ^ "clusterName" - The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
  , V1ObjectMeta -> Maybe DateTime
v1ObjectMetaCreationTimestamp :: !(Maybe DateTime) -- ^ "creationTimestamp" - CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.  Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
  , V1ObjectMeta -> Maybe Integer
v1ObjectMetaDeletionGracePeriodSeconds :: !(Maybe Integer) -- ^ "deletionGracePeriodSeconds" - Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.
  , V1ObjectMeta -> Maybe DateTime
v1ObjectMetaDeletionTimestamp :: !(Maybe DateTime) -- ^ "deletionTimestamp" - DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.  Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
  , V1ObjectMeta -> Maybe [Text]
v1ObjectMetaFinalizers :: !(Maybe [Text]) -- ^ "finalizers" - Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.
  , V1ObjectMeta -> Maybe Text
v1ObjectMetaGenerateName :: !(Maybe Text) -- ^ "generateName" - GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.  If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).  Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency
  , V1ObjectMeta -> Maybe Integer
v1ObjectMetaGeneration :: !(Maybe Integer) -- ^ "generation" - A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.
  , V1ObjectMeta -> Maybe (Map String Text)
v1ObjectMetaLabels :: !(Maybe (Map.Map String Text)) -- ^ "labels" - Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels
  , V1ObjectMeta -> Maybe [V1ManagedFieldsEntry]
v1ObjectMetaManagedFields :: !(Maybe [V1ManagedFieldsEntry]) -- ^ "managedFields" - ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn&#39;t need to set or understand this field. A workflow can be the user&#39;s name, a controller&#39;s name, or the name of a specific apply path like \&quot;ci-cd\&quot;. The set of fields is always in the version that the workflow used when modifying the object.
  , V1ObjectMeta -> Maybe Text
v1ObjectMetaName :: !(Maybe Text) -- ^ "name" - Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names
  , V1ObjectMeta -> Maybe Text
v1ObjectMetaNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \&quot;default\&quot; namespace, but \&quot;default\&quot; is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.  Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces
  , V1ObjectMeta -> Maybe [V1OwnerReference]
v1ObjectMetaOwnerReferences :: !(Maybe [V1OwnerReference]) -- ^ "ownerReferences" - List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.
  , V1ObjectMeta -> Maybe Text
v1ObjectMetaResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.  Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
  , V1ObjectMeta -> Maybe Text
v1ObjectMetaSelfLink :: !(Maybe Text) -- ^ "selfLink" - SelfLink is a URL representing this object. Populated by the system. Read-only.  DEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.
  , V1ObjectMeta -> Maybe Text
v1ObjectMetaUid :: !(Maybe Text) -- ^ "uid" - UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.  Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
  } deriving (Int -> V1ObjectMeta -> ShowS
[V1ObjectMeta] -> ShowS
V1ObjectMeta -> String
(Int -> V1ObjectMeta -> ShowS)
-> (V1ObjectMeta -> String)
-> ([V1ObjectMeta] -> ShowS)
-> Show V1ObjectMeta
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ObjectMeta] -> ShowS
$cshowList :: [V1ObjectMeta] -> ShowS
show :: V1ObjectMeta -> String
$cshow :: V1ObjectMeta -> String
showsPrec :: Int -> V1ObjectMeta -> ShowS
$cshowsPrec :: Int -> V1ObjectMeta -> ShowS
P.Show, V1ObjectMeta -> V1ObjectMeta -> Bool
(V1ObjectMeta -> V1ObjectMeta -> Bool)
-> (V1ObjectMeta -> V1ObjectMeta -> Bool) -> Eq V1ObjectMeta
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ObjectMeta -> V1ObjectMeta -> Bool
$c/= :: V1ObjectMeta -> V1ObjectMeta -> Bool
== :: V1ObjectMeta -> V1ObjectMeta -> Bool
$c== :: V1ObjectMeta -> V1ObjectMeta -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ObjectMeta
instance A.FromJSON V1ObjectMeta where
  parseJSON :: Value -> Parser V1ObjectMeta
parseJSON = String
-> (Object -> Parser V1ObjectMeta) -> Value -> Parser V1ObjectMeta
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ObjectMeta" ((Object -> Parser V1ObjectMeta) -> Value -> Parser V1ObjectMeta)
-> (Object -> Parser V1ObjectMeta) -> Value -> Parser V1ObjectMeta
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe (Map String Text)
-> Maybe Text
-> Maybe DateTime
-> Maybe Integer
-> Maybe DateTime
-> Maybe [Text]
-> Maybe Text
-> Maybe Integer
-> Maybe (Map String Text)
-> Maybe [V1ManagedFieldsEntry]
-> Maybe Text
-> Maybe Text
-> Maybe [V1OwnerReference]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> V1ObjectMeta
V1ObjectMeta
      (Maybe (Map String Text)
 -> Maybe Text
 -> Maybe DateTime
 -> Maybe Integer
 -> Maybe DateTime
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe Integer
 -> Maybe (Map String Text)
 -> Maybe [V1ManagedFieldsEntry]
 -> Maybe Text
 -> Maybe Text
 -> Maybe [V1OwnerReference]
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> V1ObjectMeta)
-> Parser (Maybe (Map String Text))
-> Parser
     (Maybe Text
      -> Maybe DateTime
      -> Maybe Integer
      -> Maybe DateTime
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Integer
      -> Maybe (Map String Text)
      -> Maybe [V1ManagedFieldsEntry]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [V1OwnerReference]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1ObjectMeta)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"annotations")
      Parser
  (Maybe Text
   -> Maybe DateTime
   -> Maybe Integer
   -> Maybe DateTime
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Integer
   -> Maybe (Map String Text)
   -> Maybe [V1ManagedFieldsEntry]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [V1OwnerReference]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1ObjectMeta)
-> Parser (Maybe Text)
-> Parser
     (Maybe DateTime
      -> Maybe Integer
      -> Maybe DateTime
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Integer
      -> Maybe (Map String Text)
      -> Maybe [V1ManagedFieldsEntry]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [V1OwnerReference]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1ObjectMeta)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"clusterName")
      Parser
  (Maybe DateTime
   -> Maybe Integer
   -> Maybe DateTime
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Integer
   -> Maybe (Map String Text)
   -> Maybe [V1ManagedFieldsEntry]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [V1OwnerReference]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1ObjectMeta)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Integer
      -> Maybe DateTime
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Integer
      -> Maybe (Map String Text)
      -> Maybe [V1ManagedFieldsEntry]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [V1OwnerReference]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1ObjectMeta)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"creationTimestamp")
      Parser
  (Maybe Integer
   -> Maybe DateTime
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Integer
   -> Maybe (Map String Text)
   -> Maybe [V1ManagedFieldsEntry]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [V1OwnerReference]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1ObjectMeta)
-> Parser (Maybe Integer)
-> Parser
     (Maybe DateTime
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Integer
      -> Maybe (Map String Text)
      -> Maybe [V1ManagedFieldsEntry]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [V1OwnerReference]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1ObjectMeta)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"deletionGracePeriodSeconds")
      Parser
  (Maybe DateTime
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Integer
   -> Maybe (Map String Text)
   -> Maybe [V1ManagedFieldsEntry]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [V1OwnerReference]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1ObjectMeta)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe [Text]
      -> Maybe Text
      -> Maybe Integer
      -> Maybe (Map String Text)
      -> Maybe [V1ManagedFieldsEntry]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [V1OwnerReference]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1ObjectMeta)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"deletionTimestamp")
      Parser
  (Maybe [Text]
   -> Maybe Text
   -> Maybe Integer
   -> Maybe (Map String Text)
   -> Maybe [V1ManagedFieldsEntry]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [V1OwnerReference]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1ObjectMeta)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Text
      -> Maybe Integer
      -> Maybe (Map String Text)
      -> Maybe [V1ManagedFieldsEntry]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [V1OwnerReference]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1ObjectMeta)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"finalizers")
      Parser
  (Maybe Text
   -> Maybe Integer
   -> Maybe (Map String Text)
   -> Maybe [V1ManagedFieldsEntry]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [V1OwnerReference]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1ObjectMeta)
-> Parser (Maybe Text)
-> Parser
     (Maybe Integer
      -> Maybe (Map String Text)
      -> Maybe [V1ManagedFieldsEntry]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [V1OwnerReference]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1ObjectMeta)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"generateName")
      Parser
  (Maybe Integer
   -> Maybe (Map String Text)
   -> Maybe [V1ManagedFieldsEntry]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [V1OwnerReference]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1ObjectMeta)
-> Parser (Maybe Integer)
-> Parser
     (Maybe (Map String Text)
      -> Maybe [V1ManagedFieldsEntry]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [V1OwnerReference]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1ObjectMeta)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"generation")
      Parser
  (Maybe (Map String Text)
   -> Maybe [V1ManagedFieldsEntry]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [V1OwnerReference]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1ObjectMeta)
-> Parser (Maybe (Map String Text))
-> Parser
     (Maybe [V1ManagedFieldsEntry]
      -> Maybe Text
      -> Maybe Text
      -> Maybe [V1OwnerReference]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1ObjectMeta)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"labels")
      Parser
  (Maybe [V1ManagedFieldsEntry]
   -> Maybe Text
   -> Maybe Text
   -> Maybe [V1OwnerReference]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1ObjectMeta)
-> Parser (Maybe [V1ManagedFieldsEntry])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe [V1OwnerReference]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1ObjectMeta)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1ManagedFieldsEntry])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"managedFields")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe [V1OwnerReference]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1ObjectMeta)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe [V1OwnerReference]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1ObjectMeta)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser
  (Maybe Text
   -> Maybe [V1OwnerReference]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1ObjectMeta)
-> Parser (Maybe Text)
-> Parser
     (Maybe [V1OwnerReference]
      -> Maybe Text -> Maybe Text -> Maybe Text -> V1ObjectMeta)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespace")
      Parser
  (Maybe [V1OwnerReference]
   -> Maybe Text -> Maybe Text -> Maybe Text -> V1ObjectMeta)
-> Parser (Maybe [V1OwnerReference])
-> Parser (Maybe Text -> Maybe Text -> Maybe Text -> V1ObjectMeta)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1OwnerReference])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ownerReferences")
      Parser (Maybe Text -> Maybe Text -> Maybe Text -> V1ObjectMeta)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> V1ObjectMeta)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resourceVersion")
      Parser (Maybe Text -> Maybe Text -> V1ObjectMeta)
-> Parser (Maybe Text) -> Parser (Maybe Text -> V1ObjectMeta)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selfLink")
      Parser (Maybe Text -> V1ObjectMeta)
-> Parser (Maybe Text) -> Parser V1ObjectMeta
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"uid")

-- | ToJSON V1ObjectMeta
instance A.ToJSON V1ObjectMeta where
  toJSON :: V1ObjectMeta -> Value
toJSON V1ObjectMeta {Maybe Integer
Maybe [Text]
Maybe [V1OwnerReference]
Maybe [V1ManagedFieldsEntry]
Maybe Text
Maybe (Map String Text)
Maybe DateTime
v1ObjectMetaUid :: Maybe Text
v1ObjectMetaSelfLink :: Maybe Text
v1ObjectMetaResourceVersion :: Maybe Text
v1ObjectMetaOwnerReferences :: Maybe [V1OwnerReference]
v1ObjectMetaNamespace :: Maybe Text
v1ObjectMetaName :: Maybe Text
v1ObjectMetaManagedFields :: Maybe [V1ManagedFieldsEntry]
v1ObjectMetaLabels :: Maybe (Map String Text)
v1ObjectMetaGeneration :: Maybe Integer
v1ObjectMetaGenerateName :: Maybe Text
v1ObjectMetaFinalizers :: Maybe [Text]
v1ObjectMetaDeletionTimestamp :: Maybe DateTime
v1ObjectMetaDeletionGracePeriodSeconds :: Maybe Integer
v1ObjectMetaCreationTimestamp :: Maybe DateTime
v1ObjectMetaClusterName :: Maybe Text
v1ObjectMetaAnnotations :: Maybe (Map String Text)
v1ObjectMetaUid :: V1ObjectMeta -> Maybe Text
v1ObjectMetaSelfLink :: V1ObjectMeta -> Maybe Text
v1ObjectMetaResourceVersion :: V1ObjectMeta -> Maybe Text
v1ObjectMetaOwnerReferences :: V1ObjectMeta -> Maybe [V1OwnerReference]
v1ObjectMetaNamespace :: V1ObjectMeta -> Maybe Text
v1ObjectMetaName :: V1ObjectMeta -> Maybe Text
v1ObjectMetaManagedFields :: V1ObjectMeta -> Maybe [V1ManagedFieldsEntry]
v1ObjectMetaLabels :: V1ObjectMeta -> Maybe (Map String Text)
v1ObjectMetaGeneration :: V1ObjectMeta -> Maybe Integer
v1ObjectMetaGenerateName :: V1ObjectMeta -> Maybe Text
v1ObjectMetaFinalizers :: V1ObjectMeta -> Maybe [Text]
v1ObjectMetaDeletionTimestamp :: V1ObjectMeta -> Maybe DateTime
v1ObjectMetaDeletionGracePeriodSeconds :: V1ObjectMeta -> Maybe Integer
v1ObjectMetaCreationTimestamp :: V1ObjectMeta -> Maybe DateTime
v1ObjectMetaClusterName :: V1ObjectMeta -> Maybe Text
v1ObjectMetaAnnotations :: V1ObjectMeta -> Maybe (Map String Text)
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"annotations" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1ObjectMetaAnnotations
      , Text
"clusterName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ObjectMetaClusterName
      , Text
"creationTimestamp" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1ObjectMetaCreationTimestamp
      , Text
"deletionGracePeriodSeconds" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1ObjectMetaDeletionGracePeriodSeconds
      , Text
"deletionTimestamp" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1ObjectMetaDeletionTimestamp
      , Text
"finalizers" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1ObjectMetaFinalizers
      , Text
"generateName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ObjectMetaGenerateName
      , Text
"generation" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1ObjectMetaGeneration
      , Text
"labels" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1ObjectMetaLabels
      , Text
"managedFields" Text -> Maybe [V1ManagedFieldsEntry] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ManagedFieldsEntry]
v1ObjectMetaManagedFields
      , Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ObjectMetaName
      , Text
"namespace" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ObjectMetaNamespace
      , Text
"ownerReferences" Text -> Maybe [V1OwnerReference] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1OwnerReference]
v1ObjectMetaOwnerReferences
      , Text
"resourceVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ObjectMetaResourceVersion
      , Text
"selfLink" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ObjectMetaSelfLink
      , Text
"uid" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ObjectMetaUid
      ]


-- | Construct a value of type 'V1ObjectMeta' (by applying it's required fields, if any)
mkV1ObjectMeta
  :: V1ObjectMeta
mkV1ObjectMeta :: V1ObjectMeta
mkV1ObjectMeta =
  V1ObjectMeta :: Maybe (Map String Text)
-> Maybe Text
-> Maybe DateTime
-> Maybe Integer
-> Maybe DateTime
-> Maybe [Text]
-> Maybe Text
-> Maybe Integer
-> Maybe (Map String Text)
-> Maybe [V1ManagedFieldsEntry]
-> Maybe Text
-> Maybe Text
-> Maybe [V1OwnerReference]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> V1ObjectMeta
V1ObjectMeta
  { v1ObjectMetaAnnotations :: Maybe (Map String Text)
v1ObjectMetaAnnotations = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , v1ObjectMetaClusterName :: Maybe Text
v1ObjectMetaClusterName = Maybe Text
forall a. Maybe a
Nothing
  , v1ObjectMetaCreationTimestamp :: Maybe DateTime
v1ObjectMetaCreationTimestamp = Maybe DateTime
forall a. Maybe a
Nothing
  , v1ObjectMetaDeletionGracePeriodSeconds :: Maybe Integer
v1ObjectMetaDeletionGracePeriodSeconds = Maybe Integer
forall a. Maybe a
Nothing
  , v1ObjectMetaDeletionTimestamp :: Maybe DateTime
v1ObjectMetaDeletionTimestamp = Maybe DateTime
forall a. Maybe a
Nothing
  , v1ObjectMetaFinalizers :: Maybe [Text]
v1ObjectMetaFinalizers = Maybe [Text]
forall a. Maybe a
Nothing
  , v1ObjectMetaGenerateName :: Maybe Text
v1ObjectMetaGenerateName = Maybe Text
forall a. Maybe a
Nothing
  , v1ObjectMetaGeneration :: Maybe Integer
v1ObjectMetaGeneration = Maybe Integer
forall a. Maybe a
Nothing
  , v1ObjectMetaLabels :: Maybe (Map String Text)
v1ObjectMetaLabels = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , v1ObjectMetaManagedFields :: Maybe [V1ManagedFieldsEntry]
v1ObjectMetaManagedFields = Maybe [V1ManagedFieldsEntry]
forall a. Maybe a
Nothing
  , v1ObjectMetaName :: Maybe Text
v1ObjectMetaName = Maybe Text
forall a. Maybe a
Nothing
  , v1ObjectMetaNamespace :: Maybe Text
v1ObjectMetaNamespace = Maybe Text
forall a. Maybe a
Nothing
  , v1ObjectMetaOwnerReferences :: Maybe [V1OwnerReference]
v1ObjectMetaOwnerReferences = Maybe [V1OwnerReference]
forall a. Maybe a
Nothing
  , v1ObjectMetaResourceVersion :: Maybe Text
v1ObjectMetaResourceVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ObjectMetaSelfLink :: Maybe Text
v1ObjectMetaSelfLink = Maybe Text
forall a. Maybe a
Nothing
  , v1ObjectMetaUid :: Maybe Text
v1ObjectMetaUid = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1ObjectReference
-- | V1ObjectReference
-- ObjectReference contains enough information to let you inspect or modify the referred object.
data V1ObjectReference = V1ObjectReference
  { V1ObjectReference -> Maybe Text
v1ObjectReferenceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - API version of the referent.
  , V1ObjectReference -> Maybe Text
v1ObjectReferenceFieldPath :: !(Maybe Text) -- ^ "fieldPath" - If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \&quot;spec.containers{name}\&quot; (where \&quot;name\&quot; refers to the name of the container that triggered the event) or if no container name is specified \&quot;spec.containers[2]\&quot; (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.
  , V1ObjectReference -> Maybe Text
v1ObjectReferenceKind :: !(Maybe Text) -- ^ "kind" - Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ObjectReference -> Maybe Text
v1ObjectReferenceName :: !(Maybe Text) -- ^ "name" - Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  , V1ObjectReference -> Maybe Text
v1ObjectReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
  , V1ObjectReference -> Maybe Text
v1ObjectReferenceResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
  , V1ObjectReference -> Maybe Text
v1ObjectReferenceUid :: !(Maybe Text) -- ^ "uid" - UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
  } deriving (Int -> V1ObjectReference -> ShowS
[V1ObjectReference] -> ShowS
V1ObjectReference -> String
(Int -> V1ObjectReference -> ShowS)
-> (V1ObjectReference -> String)
-> ([V1ObjectReference] -> ShowS)
-> Show V1ObjectReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ObjectReference] -> ShowS
$cshowList :: [V1ObjectReference] -> ShowS
show :: V1ObjectReference -> String
$cshow :: V1ObjectReference -> String
showsPrec :: Int -> V1ObjectReference -> ShowS
$cshowsPrec :: Int -> V1ObjectReference -> ShowS
P.Show, V1ObjectReference -> V1ObjectReference -> Bool
(V1ObjectReference -> V1ObjectReference -> Bool)
-> (V1ObjectReference -> V1ObjectReference -> Bool)
-> Eq V1ObjectReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ObjectReference -> V1ObjectReference -> Bool
$c/= :: V1ObjectReference -> V1ObjectReference -> Bool
== :: V1ObjectReference -> V1ObjectReference -> Bool
$c== :: V1ObjectReference -> V1ObjectReference -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ObjectReference
instance A.FromJSON V1ObjectReference where
  parseJSON :: Value -> Parser V1ObjectReference
parseJSON = String
-> (Object -> Parser V1ObjectReference)
-> Value
-> Parser V1ObjectReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ObjectReference" ((Object -> Parser V1ObjectReference)
 -> Value -> Parser V1ObjectReference)
-> (Object -> Parser V1ObjectReference)
-> Value
-> Parser V1ObjectReference
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> V1ObjectReference
V1ObjectReference
      (Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> V1ObjectReference)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1ObjectReference)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1ObjectReference)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1ObjectReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fieldPath")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1ObjectReference)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Text -> Maybe Text -> V1ObjectReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe Text
   -> Maybe Text -> Maybe Text -> Maybe Text -> V1ObjectReference)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Text -> Maybe Text -> V1ObjectReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser
  (Maybe Text -> Maybe Text -> Maybe Text -> V1ObjectReference)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> V1ObjectReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespace")
      Parser (Maybe Text -> Maybe Text -> V1ObjectReference)
-> Parser (Maybe Text) -> Parser (Maybe Text -> V1ObjectReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resourceVersion")
      Parser (Maybe Text -> V1ObjectReference)
-> Parser (Maybe Text) -> Parser V1ObjectReference
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"uid")

-- | ToJSON V1ObjectReference
instance A.ToJSON V1ObjectReference where
  toJSON :: V1ObjectReference -> Value
toJSON V1ObjectReference {Maybe Text
v1ObjectReferenceUid :: Maybe Text
v1ObjectReferenceResourceVersion :: Maybe Text
v1ObjectReferenceNamespace :: Maybe Text
v1ObjectReferenceName :: Maybe Text
v1ObjectReferenceKind :: Maybe Text
v1ObjectReferenceFieldPath :: Maybe Text
v1ObjectReferenceApiVersion :: Maybe Text
v1ObjectReferenceUid :: V1ObjectReference -> Maybe Text
v1ObjectReferenceResourceVersion :: V1ObjectReference -> Maybe Text
v1ObjectReferenceNamespace :: V1ObjectReference -> Maybe Text
v1ObjectReferenceName :: V1ObjectReference -> Maybe Text
v1ObjectReferenceKind :: V1ObjectReference -> Maybe Text
v1ObjectReferenceFieldPath :: V1ObjectReference -> Maybe Text
v1ObjectReferenceApiVersion :: V1ObjectReference -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ObjectReferenceApiVersion
      , Text
"fieldPath" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ObjectReferenceFieldPath
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ObjectReferenceKind
      , Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ObjectReferenceName
      , Text
"namespace" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ObjectReferenceNamespace
      , Text
"resourceVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ObjectReferenceResourceVersion
      , Text
"uid" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ObjectReferenceUid
      ]


-- | Construct a value of type 'V1ObjectReference' (by applying it's required fields, if any)
mkV1ObjectReference
  :: V1ObjectReference
mkV1ObjectReference :: V1ObjectReference
mkV1ObjectReference =
  V1ObjectReference :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> V1ObjectReference
V1ObjectReference
  { v1ObjectReferenceApiVersion :: Maybe Text
v1ObjectReferenceApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ObjectReferenceFieldPath :: Maybe Text
v1ObjectReferenceFieldPath = Maybe Text
forall a. Maybe a
Nothing
  , v1ObjectReferenceKind :: Maybe Text
v1ObjectReferenceKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ObjectReferenceName :: Maybe Text
v1ObjectReferenceName = Maybe Text
forall a. Maybe a
Nothing
  , v1ObjectReferenceNamespace :: Maybe Text
v1ObjectReferenceNamespace = Maybe Text
forall a. Maybe a
Nothing
  , v1ObjectReferenceResourceVersion :: Maybe Text
v1ObjectReferenceResourceVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ObjectReferenceUid :: Maybe Text
v1ObjectReferenceUid = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1OwnerReference
-- | V1OwnerReference
-- OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.
data V1OwnerReference = V1OwnerReference
  { V1OwnerReference -> Text
v1OwnerReferenceApiVersion :: !(Text) -- ^ /Required/ "apiVersion" - API version of the referent.
  , V1OwnerReference -> Maybe Bool
v1OwnerReferenceBlockOwnerDeletion :: !(Maybe Bool) -- ^ "blockOwnerDeletion" - If true, AND if the owner has the \&quot;foregroundDeletion\&quot; finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \&quot;delete\&quot; permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.
  , V1OwnerReference -> Maybe Bool
v1OwnerReferenceController :: !(Maybe Bool) -- ^ "controller" - If true, this reference points to the managing controller.
  , V1OwnerReference -> Text
v1OwnerReferenceKind :: !(Text) -- ^ /Required/ "kind" - Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1OwnerReference -> Text
v1OwnerReferenceName :: !(Text) -- ^ /Required/ "name" - Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names
  , V1OwnerReference -> Text
v1OwnerReferenceUid :: !(Text) -- ^ /Required/ "uid" - UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
  } deriving (Int -> V1OwnerReference -> ShowS
[V1OwnerReference] -> ShowS
V1OwnerReference -> String
(Int -> V1OwnerReference -> ShowS)
-> (V1OwnerReference -> String)
-> ([V1OwnerReference] -> ShowS)
-> Show V1OwnerReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1OwnerReference] -> ShowS
$cshowList :: [V1OwnerReference] -> ShowS
show :: V1OwnerReference -> String
$cshow :: V1OwnerReference -> String
showsPrec :: Int -> V1OwnerReference -> ShowS
$cshowsPrec :: Int -> V1OwnerReference -> ShowS
P.Show, V1OwnerReference -> V1OwnerReference -> Bool
(V1OwnerReference -> V1OwnerReference -> Bool)
-> (V1OwnerReference -> V1OwnerReference -> Bool)
-> Eq V1OwnerReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1OwnerReference -> V1OwnerReference -> Bool
$c/= :: V1OwnerReference -> V1OwnerReference -> Bool
== :: V1OwnerReference -> V1OwnerReference -> Bool
$c== :: V1OwnerReference -> V1OwnerReference -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1OwnerReference
instance A.FromJSON V1OwnerReference where
  parseJSON :: Value -> Parser V1OwnerReference
parseJSON = String
-> (Object -> Parser V1OwnerReference)
-> Value
-> Parser V1OwnerReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1OwnerReference" ((Object -> Parser V1OwnerReference)
 -> Value -> Parser V1OwnerReference)
-> (Object -> Parser V1OwnerReference)
-> Value
-> Parser V1OwnerReference
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Maybe Bool
-> Maybe Bool
-> Text
-> Text
-> Text
-> V1OwnerReference
V1OwnerReference
      (Text
 -> Maybe Bool
 -> Maybe Bool
 -> Text
 -> Text
 -> Text
 -> V1OwnerReference)
-> Parser Text
-> Parser
     (Maybe Bool
      -> Maybe Bool -> Text -> Text -> Text -> V1OwnerReference)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"apiVersion")
      Parser
  (Maybe Bool
   -> Maybe Bool -> Text -> Text -> Text -> V1OwnerReference)
-> Parser (Maybe Bool)
-> Parser (Maybe Bool -> Text -> Text -> Text -> V1OwnerReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"blockOwnerDeletion")
      Parser (Maybe Bool -> Text -> Text -> Text -> V1OwnerReference)
-> Parser (Maybe Bool)
-> Parser (Text -> Text -> Text -> V1OwnerReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"controller")
      Parser (Text -> Text -> Text -> V1OwnerReference)
-> Parser Text -> Parser (Text -> Text -> V1OwnerReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kind")
      Parser (Text -> Text -> V1OwnerReference)
-> Parser Text -> Parser (Text -> V1OwnerReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser (Text -> V1OwnerReference)
-> Parser Text -> Parser V1OwnerReference
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"uid")

-- | ToJSON V1OwnerReference
instance A.ToJSON V1OwnerReference where
  toJSON :: V1OwnerReference -> Value
toJSON V1OwnerReference {Maybe Bool
Text
v1OwnerReferenceUid :: Text
v1OwnerReferenceName :: Text
v1OwnerReferenceKind :: Text
v1OwnerReferenceController :: Maybe Bool
v1OwnerReferenceBlockOwnerDeletion :: Maybe Bool
v1OwnerReferenceApiVersion :: Text
v1OwnerReferenceUid :: V1OwnerReference -> Text
v1OwnerReferenceName :: V1OwnerReference -> Text
v1OwnerReferenceKind :: V1OwnerReference -> Text
v1OwnerReferenceController :: V1OwnerReference -> Maybe Bool
v1OwnerReferenceBlockOwnerDeletion :: V1OwnerReference -> Maybe Bool
v1OwnerReferenceApiVersion :: V1OwnerReference -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1OwnerReferenceApiVersion
      , Text
"blockOwnerDeletion" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1OwnerReferenceBlockOwnerDeletion
      , Text
"controller" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1OwnerReferenceController
      , Text
"kind" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1OwnerReferenceKind
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1OwnerReferenceName
      , Text
"uid" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1OwnerReferenceUid
      ]


-- | Construct a value of type 'V1OwnerReference' (by applying it's required fields, if any)
mkV1OwnerReference
  :: Text -- ^ 'v1OwnerReferenceApiVersion': API version of the referent.
  -> Text -- ^ 'v1OwnerReferenceKind': Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  -> Text -- ^ 'v1OwnerReferenceName': Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names
  -> Text -- ^ 'v1OwnerReferenceUid': UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
  -> V1OwnerReference
mkV1OwnerReference :: Text -> Text -> Text -> Text -> V1OwnerReference
mkV1OwnerReference Text
v1OwnerReferenceApiVersion Text
v1OwnerReferenceKind Text
v1OwnerReferenceName Text
v1OwnerReferenceUid =
  V1OwnerReference :: Text
-> Maybe Bool
-> Maybe Bool
-> Text
-> Text
-> Text
-> V1OwnerReference
V1OwnerReference
  { Text
v1OwnerReferenceApiVersion :: Text
v1OwnerReferenceApiVersion :: Text
v1OwnerReferenceApiVersion
  , v1OwnerReferenceBlockOwnerDeletion :: Maybe Bool
v1OwnerReferenceBlockOwnerDeletion = Maybe Bool
forall a. Maybe a
Nothing
  , v1OwnerReferenceController :: Maybe Bool
v1OwnerReferenceController = Maybe Bool
forall a. Maybe a
Nothing
  , Text
v1OwnerReferenceKind :: Text
v1OwnerReferenceKind :: Text
v1OwnerReferenceKind
  , Text
v1OwnerReferenceName :: Text
v1OwnerReferenceName :: Text
v1OwnerReferenceName
  , Text
v1OwnerReferenceUid :: Text
v1OwnerReferenceUid :: Text
v1OwnerReferenceUid
  }

-- ** V1PersistentVolume
-- | V1PersistentVolume
-- PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
data V1PersistentVolume = V1PersistentVolume
  { V1PersistentVolume -> Maybe Text
v1PersistentVolumeApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1PersistentVolume -> Maybe Text
v1PersistentVolumeKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1PersistentVolume -> Maybe V1ObjectMeta
v1PersistentVolumeMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1PersistentVolume -> Maybe V1PersistentVolumeSpec
v1PersistentVolumeSpec :: !(Maybe V1PersistentVolumeSpec) -- ^ "spec"
  , V1PersistentVolume -> Maybe V1PersistentVolumeStatus
v1PersistentVolumeStatus :: !(Maybe V1PersistentVolumeStatus) -- ^ "status"
  } deriving (Int -> V1PersistentVolume -> ShowS
[V1PersistentVolume] -> ShowS
V1PersistentVolume -> String
(Int -> V1PersistentVolume -> ShowS)
-> (V1PersistentVolume -> String)
-> ([V1PersistentVolume] -> ShowS)
-> Show V1PersistentVolume
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PersistentVolume] -> ShowS
$cshowList :: [V1PersistentVolume] -> ShowS
show :: V1PersistentVolume -> String
$cshow :: V1PersistentVolume -> String
showsPrec :: Int -> V1PersistentVolume -> ShowS
$cshowsPrec :: Int -> V1PersistentVolume -> ShowS
P.Show, V1PersistentVolume -> V1PersistentVolume -> Bool
(V1PersistentVolume -> V1PersistentVolume -> Bool)
-> (V1PersistentVolume -> V1PersistentVolume -> Bool)
-> Eq V1PersistentVolume
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PersistentVolume -> V1PersistentVolume -> Bool
$c/= :: V1PersistentVolume -> V1PersistentVolume -> Bool
== :: V1PersistentVolume -> V1PersistentVolume -> Bool
$c== :: V1PersistentVolume -> V1PersistentVolume -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PersistentVolume
instance A.FromJSON V1PersistentVolume where
  parseJSON :: Value -> Parser V1PersistentVolume
parseJSON = String
-> (Object -> Parser V1PersistentVolume)
-> Value
-> Parser V1PersistentVolume
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PersistentVolume" ((Object -> Parser V1PersistentVolume)
 -> Value -> Parser V1PersistentVolume)
-> (Object -> Parser V1PersistentVolume)
-> Value
-> Parser V1PersistentVolume
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1PersistentVolumeSpec
-> Maybe V1PersistentVolumeStatus
-> V1PersistentVolume
V1PersistentVolume
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1PersistentVolumeSpec
 -> Maybe V1PersistentVolumeStatus
 -> V1PersistentVolume)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1PersistentVolumeSpec
      -> Maybe V1PersistentVolumeStatus
      -> V1PersistentVolume)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1PersistentVolumeSpec
   -> Maybe V1PersistentVolumeStatus
   -> V1PersistentVolume)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1PersistentVolumeSpec
      -> Maybe V1PersistentVolumeStatus
      -> V1PersistentVolume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1PersistentVolumeSpec
   -> Maybe V1PersistentVolumeStatus
   -> V1PersistentVolume)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1PersistentVolumeSpec
      -> Maybe V1PersistentVolumeStatus -> V1PersistentVolume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1PersistentVolumeSpec
   -> Maybe V1PersistentVolumeStatus -> V1PersistentVolume)
-> Parser (Maybe V1PersistentVolumeSpec)
-> Parser (Maybe V1PersistentVolumeStatus -> V1PersistentVolume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PersistentVolumeSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1PersistentVolumeStatus -> V1PersistentVolume)
-> Parser (Maybe V1PersistentVolumeStatus)
-> Parser V1PersistentVolume
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PersistentVolumeStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1PersistentVolume
instance A.ToJSON V1PersistentVolume where
  toJSON :: V1PersistentVolume -> Value
toJSON V1PersistentVolume {Maybe Text
Maybe V1PersistentVolumeStatus
Maybe V1PersistentVolumeSpec
Maybe V1ObjectMeta
v1PersistentVolumeStatus :: Maybe V1PersistentVolumeStatus
v1PersistentVolumeSpec :: Maybe V1PersistentVolumeSpec
v1PersistentVolumeMetadata :: Maybe V1ObjectMeta
v1PersistentVolumeKind :: Maybe Text
v1PersistentVolumeApiVersion :: Maybe Text
v1PersistentVolumeStatus :: V1PersistentVolume -> Maybe V1PersistentVolumeStatus
v1PersistentVolumeSpec :: V1PersistentVolume -> Maybe V1PersistentVolumeSpec
v1PersistentVolumeMetadata :: V1PersistentVolume -> Maybe V1ObjectMeta
v1PersistentVolumeKind :: V1PersistentVolume -> Maybe Text
v1PersistentVolumeApiVersion :: V1PersistentVolume -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1PersistentVolumeMetadata
      , Text
"spec" Text -> Maybe V1PersistentVolumeSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PersistentVolumeSpec
v1PersistentVolumeSpec
      , Text
"status" Text -> Maybe V1PersistentVolumeStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PersistentVolumeStatus
v1PersistentVolumeStatus
      ]


-- | Construct a value of type 'V1PersistentVolume' (by applying it's required fields, if any)
mkV1PersistentVolume
  :: V1PersistentVolume
mkV1PersistentVolume :: V1PersistentVolume
mkV1PersistentVolume =
  V1PersistentVolume :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1PersistentVolumeSpec
-> Maybe V1PersistentVolumeStatus
-> V1PersistentVolume
V1PersistentVolume
  { v1PersistentVolumeApiVersion :: Maybe Text
v1PersistentVolumeApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1PersistentVolumeKind :: Maybe Text
v1PersistentVolumeKind = Maybe Text
forall a. Maybe a
Nothing
  , v1PersistentVolumeMetadata :: Maybe V1ObjectMeta
v1PersistentVolumeMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpec :: Maybe V1PersistentVolumeSpec
v1PersistentVolumeSpec = Maybe V1PersistentVolumeSpec
forall a. Maybe a
Nothing
  , v1PersistentVolumeStatus :: Maybe V1PersistentVolumeStatus
v1PersistentVolumeStatus = Maybe V1PersistentVolumeStatus
forall a. Maybe a
Nothing
  }

-- ** V1PersistentVolumeClaim
-- | V1PersistentVolumeClaim
-- PersistentVolumeClaim is a user's request for and claim to a persistent volume
data V1PersistentVolumeClaim = V1PersistentVolumeClaim
  { V1PersistentVolumeClaim -> Maybe Text
v1PersistentVolumeClaimApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1PersistentVolumeClaim -> Maybe Text
v1PersistentVolumeClaimKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1PersistentVolumeClaim -> Maybe V1ObjectMeta
v1PersistentVolumeClaimMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1PersistentVolumeClaim -> Maybe V1PersistentVolumeClaimSpec
v1PersistentVolumeClaimSpec :: !(Maybe V1PersistentVolumeClaimSpec) -- ^ "spec"
  , V1PersistentVolumeClaim -> Maybe V1PersistentVolumeClaimStatus
v1PersistentVolumeClaimStatus :: !(Maybe V1PersistentVolumeClaimStatus) -- ^ "status"
  } deriving (Int -> V1PersistentVolumeClaim -> ShowS
[V1PersistentVolumeClaim] -> ShowS
V1PersistentVolumeClaim -> String
(Int -> V1PersistentVolumeClaim -> ShowS)
-> (V1PersistentVolumeClaim -> String)
-> ([V1PersistentVolumeClaim] -> ShowS)
-> Show V1PersistentVolumeClaim
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PersistentVolumeClaim] -> ShowS
$cshowList :: [V1PersistentVolumeClaim] -> ShowS
show :: V1PersistentVolumeClaim -> String
$cshow :: V1PersistentVolumeClaim -> String
showsPrec :: Int -> V1PersistentVolumeClaim -> ShowS
$cshowsPrec :: Int -> V1PersistentVolumeClaim -> ShowS
P.Show, V1PersistentVolumeClaim -> V1PersistentVolumeClaim -> Bool
(V1PersistentVolumeClaim -> V1PersistentVolumeClaim -> Bool)
-> (V1PersistentVolumeClaim -> V1PersistentVolumeClaim -> Bool)
-> Eq V1PersistentVolumeClaim
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PersistentVolumeClaim -> V1PersistentVolumeClaim -> Bool
$c/= :: V1PersistentVolumeClaim -> V1PersistentVolumeClaim -> Bool
== :: V1PersistentVolumeClaim -> V1PersistentVolumeClaim -> Bool
$c== :: V1PersistentVolumeClaim -> V1PersistentVolumeClaim -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PersistentVolumeClaim
instance A.FromJSON V1PersistentVolumeClaim where
  parseJSON :: Value -> Parser V1PersistentVolumeClaim
parseJSON = String
-> (Object -> Parser V1PersistentVolumeClaim)
-> Value
-> Parser V1PersistentVolumeClaim
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PersistentVolumeClaim" ((Object -> Parser V1PersistentVolumeClaim)
 -> Value -> Parser V1PersistentVolumeClaim)
-> (Object -> Parser V1PersistentVolumeClaim)
-> Value
-> Parser V1PersistentVolumeClaim
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1PersistentVolumeClaimSpec
-> Maybe V1PersistentVolumeClaimStatus
-> V1PersistentVolumeClaim
V1PersistentVolumeClaim
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1PersistentVolumeClaimSpec
 -> Maybe V1PersistentVolumeClaimStatus
 -> V1PersistentVolumeClaim)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1PersistentVolumeClaimSpec
      -> Maybe V1PersistentVolumeClaimStatus
      -> V1PersistentVolumeClaim)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1PersistentVolumeClaimSpec
   -> Maybe V1PersistentVolumeClaimStatus
   -> V1PersistentVolumeClaim)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1PersistentVolumeClaimSpec
      -> Maybe V1PersistentVolumeClaimStatus
      -> V1PersistentVolumeClaim)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1PersistentVolumeClaimSpec
   -> Maybe V1PersistentVolumeClaimStatus
   -> V1PersistentVolumeClaim)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1PersistentVolumeClaimSpec
      -> Maybe V1PersistentVolumeClaimStatus -> V1PersistentVolumeClaim)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1PersistentVolumeClaimSpec
   -> Maybe V1PersistentVolumeClaimStatus -> V1PersistentVolumeClaim)
-> Parser (Maybe V1PersistentVolumeClaimSpec)
-> Parser
     (Maybe V1PersistentVolumeClaimStatus -> V1PersistentVolumeClaim)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PersistentVolumeClaimSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser
  (Maybe V1PersistentVolumeClaimStatus -> V1PersistentVolumeClaim)
-> Parser (Maybe V1PersistentVolumeClaimStatus)
-> Parser V1PersistentVolumeClaim
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PersistentVolumeClaimStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1PersistentVolumeClaim
instance A.ToJSON V1PersistentVolumeClaim where
  toJSON :: V1PersistentVolumeClaim -> Value
toJSON V1PersistentVolumeClaim {Maybe Text
Maybe V1PersistentVolumeClaimStatus
Maybe V1PersistentVolumeClaimSpec
Maybe V1ObjectMeta
v1PersistentVolumeClaimStatus :: Maybe V1PersistentVolumeClaimStatus
v1PersistentVolumeClaimSpec :: Maybe V1PersistentVolumeClaimSpec
v1PersistentVolumeClaimMetadata :: Maybe V1ObjectMeta
v1PersistentVolumeClaimKind :: Maybe Text
v1PersistentVolumeClaimApiVersion :: Maybe Text
v1PersistentVolumeClaimStatus :: V1PersistentVolumeClaim -> Maybe V1PersistentVolumeClaimStatus
v1PersistentVolumeClaimSpec :: V1PersistentVolumeClaim -> Maybe V1PersistentVolumeClaimSpec
v1PersistentVolumeClaimMetadata :: V1PersistentVolumeClaim -> Maybe V1ObjectMeta
v1PersistentVolumeClaimKind :: V1PersistentVolumeClaim -> Maybe Text
v1PersistentVolumeClaimApiVersion :: V1PersistentVolumeClaim -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeClaimApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeClaimKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1PersistentVolumeClaimMetadata
      , Text
"spec" Text -> Maybe V1PersistentVolumeClaimSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PersistentVolumeClaimSpec
v1PersistentVolumeClaimSpec
      , Text
"status" Text -> Maybe V1PersistentVolumeClaimStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PersistentVolumeClaimStatus
v1PersistentVolumeClaimStatus
      ]


-- | Construct a value of type 'V1PersistentVolumeClaim' (by applying it's required fields, if any)
mkV1PersistentVolumeClaim
  :: V1PersistentVolumeClaim
mkV1PersistentVolumeClaim :: V1PersistentVolumeClaim
mkV1PersistentVolumeClaim =
  V1PersistentVolumeClaim :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1PersistentVolumeClaimSpec
-> Maybe V1PersistentVolumeClaimStatus
-> V1PersistentVolumeClaim
V1PersistentVolumeClaim
  { v1PersistentVolumeClaimApiVersion :: Maybe Text
v1PersistentVolumeClaimApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimKind :: Maybe Text
v1PersistentVolumeClaimKind = Maybe Text
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimMetadata :: Maybe V1ObjectMeta
v1PersistentVolumeClaimMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimSpec :: Maybe V1PersistentVolumeClaimSpec
v1PersistentVolumeClaimSpec = Maybe V1PersistentVolumeClaimSpec
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimStatus :: Maybe V1PersistentVolumeClaimStatus
v1PersistentVolumeClaimStatus = Maybe V1PersistentVolumeClaimStatus
forall a. Maybe a
Nothing
  }

-- ** V1PersistentVolumeClaimCondition
-- | V1PersistentVolumeClaimCondition
-- PersistentVolumeClaimCondition contails details about state of pvc
data V1PersistentVolumeClaimCondition = V1PersistentVolumeClaimCondition
  { V1PersistentVolumeClaimCondition -> Maybe DateTime
v1PersistentVolumeClaimConditionLastProbeTime :: !(Maybe DateTime) -- ^ "lastProbeTime" - Last time we probed the condition.
  , V1PersistentVolumeClaimCondition -> Maybe DateTime
v1PersistentVolumeClaimConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.
  , V1PersistentVolumeClaimCondition -> Maybe Text
v1PersistentVolumeClaimConditionMessage :: !(Maybe Text) -- ^ "message" - Human-readable message indicating details about last transition.
  , V1PersistentVolumeClaimCondition -> Maybe Text
v1PersistentVolumeClaimConditionReason :: !(Maybe Text) -- ^ "reason" - Unique, this should be a short, machine understandable string that gives the reason for condition&#39;s last transition. If it reports \&quot;ResizeStarted\&quot; that means the underlying persistent volume is being resized.
  , V1PersistentVolumeClaimCondition -> Text
v1PersistentVolumeClaimConditionStatus :: !(Text) -- ^ /Required/ "status"
  , V1PersistentVolumeClaimCondition -> Text
v1PersistentVolumeClaimConditionType :: !(Text) -- ^ /Required/ "type"
  } deriving (Int -> V1PersistentVolumeClaimCondition -> ShowS
[V1PersistentVolumeClaimCondition] -> ShowS
V1PersistentVolumeClaimCondition -> String
(Int -> V1PersistentVolumeClaimCondition -> ShowS)
-> (V1PersistentVolumeClaimCondition -> String)
-> ([V1PersistentVolumeClaimCondition] -> ShowS)
-> Show V1PersistentVolumeClaimCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PersistentVolumeClaimCondition] -> ShowS
$cshowList :: [V1PersistentVolumeClaimCondition] -> ShowS
show :: V1PersistentVolumeClaimCondition -> String
$cshow :: V1PersistentVolumeClaimCondition -> String
showsPrec :: Int -> V1PersistentVolumeClaimCondition -> ShowS
$cshowsPrec :: Int -> V1PersistentVolumeClaimCondition -> ShowS
P.Show, V1PersistentVolumeClaimCondition
-> V1PersistentVolumeClaimCondition -> Bool
(V1PersistentVolumeClaimCondition
 -> V1PersistentVolumeClaimCondition -> Bool)
-> (V1PersistentVolumeClaimCondition
    -> V1PersistentVolumeClaimCondition -> Bool)
-> Eq V1PersistentVolumeClaimCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PersistentVolumeClaimCondition
-> V1PersistentVolumeClaimCondition -> Bool
$c/= :: V1PersistentVolumeClaimCondition
-> V1PersistentVolumeClaimCondition -> Bool
== :: V1PersistentVolumeClaimCondition
-> V1PersistentVolumeClaimCondition -> Bool
$c== :: V1PersistentVolumeClaimCondition
-> V1PersistentVolumeClaimCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PersistentVolumeClaimCondition
instance A.FromJSON V1PersistentVolumeClaimCondition where
  parseJSON :: Value -> Parser V1PersistentVolumeClaimCondition
parseJSON = String
-> (Object -> Parser V1PersistentVolumeClaimCondition)
-> Value
-> Parser V1PersistentVolumeClaimCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PersistentVolumeClaimCondition" ((Object -> Parser V1PersistentVolumeClaimCondition)
 -> Value -> Parser V1PersistentVolumeClaimCondition)
-> (Object -> Parser V1PersistentVolumeClaimCondition)
-> Value
-> Parser V1PersistentVolumeClaimCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1PersistentVolumeClaimCondition
V1PersistentVolumeClaimCondition
      (Maybe DateTime
 -> Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1PersistentVolumeClaimCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe DateTime
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Text
      -> V1PersistentVolumeClaimCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastProbeTime")
      Parser
  (Maybe DateTime
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Text
   -> V1PersistentVolumeClaimCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text -> Text -> Text -> V1PersistentVolumeClaimCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text
   -> Maybe Text -> Text -> Text -> V1PersistentVolumeClaimCondition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Text -> Text -> V1PersistentVolumeClaimCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser
  (Maybe Text -> Text -> Text -> V1PersistentVolumeClaimCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1PersistentVolumeClaimCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1PersistentVolumeClaimCondition)
-> Parser Text -> Parser (Text -> V1PersistentVolumeClaimCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1PersistentVolumeClaimCondition)
-> Parser Text -> Parser V1PersistentVolumeClaimCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1PersistentVolumeClaimCondition
instance A.ToJSON V1PersistentVolumeClaimCondition where
  toJSON :: V1PersistentVolumeClaimCondition -> Value
toJSON V1PersistentVolumeClaimCondition {Maybe Text
Maybe DateTime
Text
v1PersistentVolumeClaimConditionType :: Text
v1PersistentVolumeClaimConditionStatus :: Text
v1PersistentVolumeClaimConditionReason :: Maybe Text
v1PersistentVolumeClaimConditionMessage :: Maybe Text
v1PersistentVolumeClaimConditionLastTransitionTime :: Maybe DateTime
v1PersistentVolumeClaimConditionLastProbeTime :: Maybe DateTime
v1PersistentVolumeClaimConditionType :: V1PersistentVolumeClaimCondition -> Text
v1PersistentVolumeClaimConditionStatus :: V1PersistentVolumeClaimCondition -> Text
v1PersistentVolumeClaimConditionReason :: V1PersistentVolumeClaimCondition -> Maybe Text
v1PersistentVolumeClaimConditionMessage :: V1PersistentVolumeClaimCondition -> Maybe Text
v1PersistentVolumeClaimConditionLastTransitionTime :: V1PersistentVolumeClaimCondition -> Maybe DateTime
v1PersistentVolumeClaimConditionLastProbeTime :: V1PersistentVolumeClaimCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastProbeTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1PersistentVolumeClaimConditionLastProbeTime
      , Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1PersistentVolumeClaimConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeClaimConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeClaimConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1PersistentVolumeClaimConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1PersistentVolumeClaimConditionType
      ]


-- | Construct a value of type 'V1PersistentVolumeClaimCondition' (by applying it's required fields, if any)
mkV1PersistentVolumeClaimCondition
  :: Text -- ^ 'v1PersistentVolumeClaimConditionStatus' 
  -> Text -- ^ 'v1PersistentVolumeClaimConditionType' 
  -> V1PersistentVolumeClaimCondition
mkV1PersistentVolumeClaimCondition :: Text -> Text -> V1PersistentVolumeClaimCondition
mkV1PersistentVolumeClaimCondition Text
v1PersistentVolumeClaimConditionStatus Text
v1PersistentVolumeClaimConditionType =
  V1PersistentVolumeClaimCondition :: Maybe DateTime
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1PersistentVolumeClaimCondition
V1PersistentVolumeClaimCondition
  { v1PersistentVolumeClaimConditionLastProbeTime :: Maybe DateTime
v1PersistentVolumeClaimConditionLastProbeTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimConditionLastTransitionTime :: Maybe DateTime
v1PersistentVolumeClaimConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimConditionMessage :: Maybe Text
v1PersistentVolumeClaimConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimConditionReason :: Maybe Text
v1PersistentVolumeClaimConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1PersistentVolumeClaimConditionStatus :: Text
v1PersistentVolumeClaimConditionStatus :: Text
v1PersistentVolumeClaimConditionStatus
  , Text
v1PersistentVolumeClaimConditionType :: Text
v1PersistentVolumeClaimConditionType :: Text
v1PersistentVolumeClaimConditionType
  }

-- ** V1PersistentVolumeClaimList
-- | V1PersistentVolumeClaimList
-- PersistentVolumeClaimList is a list of PersistentVolumeClaim items.
data V1PersistentVolumeClaimList = V1PersistentVolumeClaimList
  { V1PersistentVolumeClaimList -> Maybe Text
v1PersistentVolumeClaimListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1PersistentVolumeClaimList -> [V1PersistentVolumeClaim]
v1PersistentVolumeClaimListItems :: !([V1PersistentVolumeClaim]) -- ^ /Required/ "items" - A list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  , V1PersistentVolumeClaimList -> Maybe Text
v1PersistentVolumeClaimListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1PersistentVolumeClaimList -> Maybe V1ListMeta
v1PersistentVolumeClaimListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1PersistentVolumeClaimList -> ShowS
[V1PersistentVolumeClaimList] -> ShowS
V1PersistentVolumeClaimList -> String
(Int -> V1PersistentVolumeClaimList -> ShowS)
-> (V1PersistentVolumeClaimList -> String)
-> ([V1PersistentVolumeClaimList] -> ShowS)
-> Show V1PersistentVolumeClaimList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PersistentVolumeClaimList] -> ShowS
$cshowList :: [V1PersistentVolumeClaimList] -> ShowS
show :: V1PersistentVolumeClaimList -> String
$cshow :: V1PersistentVolumeClaimList -> String
showsPrec :: Int -> V1PersistentVolumeClaimList -> ShowS
$cshowsPrec :: Int -> V1PersistentVolumeClaimList -> ShowS
P.Show, V1PersistentVolumeClaimList -> V1PersistentVolumeClaimList -> Bool
(V1PersistentVolumeClaimList
 -> V1PersistentVolumeClaimList -> Bool)
-> (V1PersistentVolumeClaimList
    -> V1PersistentVolumeClaimList -> Bool)
-> Eq V1PersistentVolumeClaimList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PersistentVolumeClaimList -> V1PersistentVolumeClaimList -> Bool
$c/= :: V1PersistentVolumeClaimList -> V1PersistentVolumeClaimList -> Bool
== :: V1PersistentVolumeClaimList -> V1PersistentVolumeClaimList -> Bool
$c== :: V1PersistentVolumeClaimList -> V1PersistentVolumeClaimList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PersistentVolumeClaimList
instance A.FromJSON V1PersistentVolumeClaimList where
  parseJSON :: Value -> Parser V1PersistentVolumeClaimList
parseJSON = String
-> (Object -> Parser V1PersistentVolumeClaimList)
-> Value
-> Parser V1PersistentVolumeClaimList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PersistentVolumeClaimList" ((Object -> Parser V1PersistentVolumeClaimList)
 -> Value -> Parser V1PersistentVolumeClaimList)
-> (Object -> Parser V1PersistentVolumeClaimList)
-> Value
-> Parser V1PersistentVolumeClaimList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1PersistentVolumeClaim]
-> Maybe Text
-> Maybe V1ListMeta
-> V1PersistentVolumeClaimList
V1PersistentVolumeClaimList
      (Maybe Text
 -> [V1PersistentVolumeClaim]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1PersistentVolumeClaimList)
-> Parser (Maybe Text)
-> Parser
     ([V1PersistentVolumeClaim]
      -> Maybe Text -> Maybe V1ListMeta -> V1PersistentVolumeClaimList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1PersistentVolumeClaim]
   -> Maybe Text -> Maybe V1ListMeta -> V1PersistentVolumeClaimList)
-> Parser [V1PersistentVolumeClaim]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1PersistentVolumeClaimList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1PersistentVolumeClaim]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> V1PersistentVolumeClaimList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1PersistentVolumeClaimList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1PersistentVolumeClaimList)
-> Parser (Maybe V1ListMeta) -> Parser V1PersistentVolumeClaimList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1PersistentVolumeClaimList
instance A.ToJSON V1PersistentVolumeClaimList where
  toJSON :: V1PersistentVolumeClaimList -> Value
toJSON V1PersistentVolumeClaimList {[V1PersistentVolumeClaim]
Maybe Text
Maybe V1ListMeta
v1PersistentVolumeClaimListMetadata :: Maybe V1ListMeta
v1PersistentVolumeClaimListKind :: Maybe Text
v1PersistentVolumeClaimListItems :: [V1PersistentVolumeClaim]
v1PersistentVolumeClaimListApiVersion :: Maybe Text
v1PersistentVolumeClaimListMetadata :: V1PersistentVolumeClaimList -> Maybe V1ListMeta
v1PersistentVolumeClaimListKind :: V1PersistentVolumeClaimList -> Maybe Text
v1PersistentVolumeClaimListItems :: V1PersistentVolumeClaimList -> [V1PersistentVolumeClaim]
v1PersistentVolumeClaimListApiVersion :: V1PersistentVolumeClaimList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeClaimListApiVersion
      , Text
"items" Text -> [V1PersistentVolumeClaim] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1PersistentVolumeClaim]
v1PersistentVolumeClaimListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeClaimListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1PersistentVolumeClaimListMetadata
      ]


-- | Construct a value of type 'V1PersistentVolumeClaimList' (by applying it's required fields, if any)
mkV1PersistentVolumeClaimList
  :: [V1PersistentVolumeClaim] -- ^ 'v1PersistentVolumeClaimListItems': A list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  -> V1PersistentVolumeClaimList
mkV1PersistentVolumeClaimList :: [V1PersistentVolumeClaim] -> V1PersistentVolumeClaimList
mkV1PersistentVolumeClaimList [V1PersistentVolumeClaim]
v1PersistentVolumeClaimListItems =
  V1PersistentVolumeClaimList :: Maybe Text
-> [V1PersistentVolumeClaim]
-> Maybe Text
-> Maybe V1ListMeta
-> V1PersistentVolumeClaimList
V1PersistentVolumeClaimList
  { v1PersistentVolumeClaimListApiVersion :: Maybe Text
v1PersistentVolumeClaimListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1PersistentVolumeClaim]
v1PersistentVolumeClaimListItems :: [V1PersistentVolumeClaim]
v1PersistentVolumeClaimListItems :: [V1PersistentVolumeClaim]
v1PersistentVolumeClaimListItems
  , v1PersistentVolumeClaimListKind :: Maybe Text
v1PersistentVolumeClaimListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimListMetadata :: Maybe V1ListMeta
v1PersistentVolumeClaimListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1PersistentVolumeClaimSpec
-- | V1PersistentVolumeClaimSpec
-- PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes
data V1PersistentVolumeClaimSpec = V1PersistentVolumeClaimSpec
  { V1PersistentVolumeClaimSpec -> Maybe [Text]
v1PersistentVolumeClaimSpecAccessModes :: !(Maybe [Text]) -- ^ "accessModes" - AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  , V1PersistentVolumeClaimSpec -> Maybe V1TypedLocalObjectReference
v1PersistentVolumeClaimSpecDataSource :: !(Maybe V1TypedLocalObjectReference) -- ^ "dataSource"
  , V1PersistentVolumeClaimSpec -> Maybe V1ResourceRequirements
v1PersistentVolumeClaimSpecResources :: !(Maybe V1ResourceRequirements) -- ^ "resources"
  , V1PersistentVolumeClaimSpec -> Maybe V1LabelSelector
v1PersistentVolumeClaimSpecSelector :: !(Maybe V1LabelSelector) -- ^ "selector"
  , V1PersistentVolumeClaimSpec -> Maybe Text
v1PersistentVolumeClaimSpecStorageClassName :: !(Maybe Text) -- ^ "storageClassName" - Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
  , V1PersistentVolumeClaimSpec -> Maybe Text
v1PersistentVolumeClaimSpecVolumeMode :: !(Maybe Text) -- ^ "volumeMode" - volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. This is a beta feature.
  , V1PersistentVolumeClaimSpec -> Maybe Text
v1PersistentVolumeClaimSpecVolumeName :: !(Maybe Text) -- ^ "volumeName" - VolumeName is the binding reference to the PersistentVolume backing this claim.
  } deriving (Int -> V1PersistentVolumeClaimSpec -> ShowS
[V1PersistentVolumeClaimSpec] -> ShowS
V1PersistentVolumeClaimSpec -> String
(Int -> V1PersistentVolumeClaimSpec -> ShowS)
-> (V1PersistentVolumeClaimSpec -> String)
-> ([V1PersistentVolumeClaimSpec] -> ShowS)
-> Show V1PersistentVolumeClaimSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PersistentVolumeClaimSpec] -> ShowS
$cshowList :: [V1PersistentVolumeClaimSpec] -> ShowS
show :: V1PersistentVolumeClaimSpec -> String
$cshow :: V1PersistentVolumeClaimSpec -> String
showsPrec :: Int -> V1PersistentVolumeClaimSpec -> ShowS
$cshowsPrec :: Int -> V1PersistentVolumeClaimSpec -> ShowS
P.Show, V1PersistentVolumeClaimSpec -> V1PersistentVolumeClaimSpec -> Bool
(V1PersistentVolumeClaimSpec
 -> V1PersistentVolumeClaimSpec -> Bool)
-> (V1PersistentVolumeClaimSpec
    -> V1PersistentVolumeClaimSpec -> Bool)
-> Eq V1PersistentVolumeClaimSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PersistentVolumeClaimSpec -> V1PersistentVolumeClaimSpec -> Bool
$c/= :: V1PersistentVolumeClaimSpec -> V1PersistentVolumeClaimSpec -> Bool
== :: V1PersistentVolumeClaimSpec -> V1PersistentVolumeClaimSpec -> Bool
$c== :: V1PersistentVolumeClaimSpec -> V1PersistentVolumeClaimSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PersistentVolumeClaimSpec
instance A.FromJSON V1PersistentVolumeClaimSpec where
  parseJSON :: Value -> Parser V1PersistentVolumeClaimSpec
parseJSON = String
-> (Object -> Parser V1PersistentVolumeClaimSpec)
-> Value
-> Parser V1PersistentVolumeClaimSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PersistentVolumeClaimSpec" ((Object -> Parser V1PersistentVolumeClaimSpec)
 -> Value -> Parser V1PersistentVolumeClaimSpec)
-> (Object -> Parser V1PersistentVolumeClaimSpec)
-> Value
-> Parser V1PersistentVolumeClaimSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Maybe V1TypedLocalObjectReference
-> Maybe V1ResourceRequirements
-> Maybe V1LabelSelector
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> V1PersistentVolumeClaimSpec
V1PersistentVolumeClaimSpec
      (Maybe [Text]
 -> Maybe V1TypedLocalObjectReference
 -> Maybe V1ResourceRequirements
 -> Maybe V1LabelSelector
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> V1PersistentVolumeClaimSpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe V1TypedLocalObjectReference
      -> Maybe V1ResourceRequirements
      -> Maybe V1LabelSelector
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1PersistentVolumeClaimSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"accessModes")
      Parser
  (Maybe V1TypedLocalObjectReference
   -> Maybe V1ResourceRequirements
   -> Maybe V1LabelSelector
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1PersistentVolumeClaimSpec)
-> Parser (Maybe V1TypedLocalObjectReference)
-> Parser
     (Maybe V1ResourceRequirements
      -> Maybe V1LabelSelector
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1PersistentVolumeClaimSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1TypedLocalObjectReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"dataSource")
      Parser
  (Maybe V1ResourceRequirements
   -> Maybe V1LabelSelector
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1PersistentVolumeClaimSpec)
-> Parser (Maybe V1ResourceRequirements)
-> Parser
     (Maybe V1LabelSelector
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1PersistentVolumeClaimSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ResourceRequirements)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resources")
      Parser
  (Maybe V1LabelSelector
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1PersistentVolumeClaimSpec)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Text -> V1PersistentVolumeClaimSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")
      Parser
  (Maybe Text
   -> Maybe Text -> Maybe Text -> V1PersistentVolumeClaimSpec)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> V1PersistentVolumeClaimSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"storageClassName")
      Parser (Maybe Text -> Maybe Text -> V1PersistentVolumeClaimSpec)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1PersistentVolumeClaimSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeMode")
      Parser (Maybe Text -> V1PersistentVolumeClaimSpec)
-> Parser (Maybe Text) -> Parser V1PersistentVolumeClaimSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeName")

-- | ToJSON V1PersistentVolumeClaimSpec
instance A.ToJSON V1PersistentVolumeClaimSpec where
  toJSON :: V1PersistentVolumeClaimSpec -> Value
toJSON V1PersistentVolumeClaimSpec {Maybe [Text]
Maybe Text
Maybe V1TypedLocalObjectReference
Maybe V1ResourceRequirements
Maybe V1LabelSelector
v1PersistentVolumeClaimSpecVolumeName :: Maybe Text
v1PersistentVolumeClaimSpecVolumeMode :: Maybe Text
v1PersistentVolumeClaimSpecStorageClassName :: Maybe Text
v1PersistentVolumeClaimSpecSelector :: Maybe V1LabelSelector
v1PersistentVolumeClaimSpecResources :: Maybe V1ResourceRequirements
v1PersistentVolumeClaimSpecDataSource :: Maybe V1TypedLocalObjectReference
v1PersistentVolumeClaimSpecAccessModes :: Maybe [Text]
v1PersistentVolumeClaimSpecVolumeName :: V1PersistentVolumeClaimSpec -> Maybe Text
v1PersistentVolumeClaimSpecVolumeMode :: V1PersistentVolumeClaimSpec -> Maybe Text
v1PersistentVolumeClaimSpecStorageClassName :: V1PersistentVolumeClaimSpec -> Maybe Text
v1PersistentVolumeClaimSpecSelector :: V1PersistentVolumeClaimSpec -> Maybe V1LabelSelector
v1PersistentVolumeClaimSpecResources :: V1PersistentVolumeClaimSpec -> Maybe V1ResourceRequirements
v1PersistentVolumeClaimSpecDataSource :: V1PersistentVolumeClaimSpec -> Maybe V1TypedLocalObjectReference
v1PersistentVolumeClaimSpecAccessModes :: V1PersistentVolumeClaimSpec -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"accessModes" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1PersistentVolumeClaimSpecAccessModes
      , Text
"dataSource" Text -> Maybe V1TypedLocalObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1TypedLocalObjectReference
v1PersistentVolumeClaimSpecDataSource
      , Text
"resources" Text -> Maybe V1ResourceRequirements -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ResourceRequirements
v1PersistentVolumeClaimSpecResources
      , Text
"selector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1PersistentVolumeClaimSpecSelector
      , Text
"storageClassName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeClaimSpecStorageClassName
      , Text
"volumeMode" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeClaimSpecVolumeMode
      , Text
"volumeName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeClaimSpecVolumeName
      ]


-- | Construct a value of type 'V1PersistentVolumeClaimSpec' (by applying it's required fields, if any)
mkV1PersistentVolumeClaimSpec
  :: V1PersistentVolumeClaimSpec
mkV1PersistentVolumeClaimSpec :: V1PersistentVolumeClaimSpec
mkV1PersistentVolumeClaimSpec =
  V1PersistentVolumeClaimSpec :: Maybe [Text]
-> Maybe V1TypedLocalObjectReference
-> Maybe V1ResourceRequirements
-> Maybe V1LabelSelector
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> V1PersistentVolumeClaimSpec
V1PersistentVolumeClaimSpec
  { v1PersistentVolumeClaimSpecAccessModes :: Maybe [Text]
v1PersistentVolumeClaimSpecAccessModes = Maybe [Text]
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimSpecDataSource :: Maybe V1TypedLocalObjectReference
v1PersistentVolumeClaimSpecDataSource = Maybe V1TypedLocalObjectReference
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimSpecResources :: Maybe V1ResourceRequirements
v1PersistentVolumeClaimSpecResources = Maybe V1ResourceRequirements
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimSpecSelector :: Maybe V1LabelSelector
v1PersistentVolumeClaimSpecSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimSpecStorageClassName :: Maybe Text
v1PersistentVolumeClaimSpecStorageClassName = Maybe Text
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimSpecVolumeMode :: Maybe Text
v1PersistentVolumeClaimSpecVolumeMode = Maybe Text
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimSpecVolumeName :: Maybe Text
v1PersistentVolumeClaimSpecVolumeName = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1PersistentVolumeClaimStatus
-- | V1PersistentVolumeClaimStatus
-- PersistentVolumeClaimStatus is the current status of a persistent volume claim.
data V1PersistentVolumeClaimStatus = V1PersistentVolumeClaimStatus
  { V1PersistentVolumeClaimStatus -> Maybe [Text]
v1PersistentVolumeClaimStatusAccessModes :: !(Maybe [Text]) -- ^ "accessModes" - AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
  , V1PersistentVolumeClaimStatus -> Maybe (Map String Quantity)
v1PersistentVolumeClaimStatusCapacity :: !(Maybe (Map.Map String Quantity)) -- ^ "capacity" - Represents the actual resources of the underlying volume.
  , V1PersistentVolumeClaimStatus
-> Maybe [V1PersistentVolumeClaimCondition]
v1PersistentVolumeClaimStatusConditions :: !(Maybe [V1PersistentVolumeClaimCondition]) -- ^ "conditions" - Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to &#39;ResizeStarted&#39;.
  , V1PersistentVolumeClaimStatus -> Maybe Text
v1PersistentVolumeClaimStatusPhase :: !(Maybe Text) -- ^ "phase" - Phase represents the current phase of PersistentVolumeClaim.
  } deriving (Int -> V1PersistentVolumeClaimStatus -> ShowS
[V1PersistentVolumeClaimStatus] -> ShowS
V1PersistentVolumeClaimStatus -> String
(Int -> V1PersistentVolumeClaimStatus -> ShowS)
-> (V1PersistentVolumeClaimStatus -> String)
-> ([V1PersistentVolumeClaimStatus] -> ShowS)
-> Show V1PersistentVolumeClaimStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PersistentVolumeClaimStatus] -> ShowS
$cshowList :: [V1PersistentVolumeClaimStatus] -> ShowS
show :: V1PersistentVolumeClaimStatus -> String
$cshow :: V1PersistentVolumeClaimStatus -> String
showsPrec :: Int -> V1PersistentVolumeClaimStatus -> ShowS
$cshowsPrec :: Int -> V1PersistentVolumeClaimStatus -> ShowS
P.Show, V1PersistentVolumeClaimStatus
-> V1PersistentVolumeClaimStatus -> Bool
(V1PersistentVolumeClaimStatus
 -> V1PersistentVolumeClaimStatus -> Bool)
-> (V1PersistentVolumeClaimStatus
    -> V1PersistentVolumeClaimStatus -> Bool)
-> Eq V1PersistentVolumeClaimStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PersistentVolumeClaimStatus
-> V1PersistentVolumeClaimStatus -> Bool
$c/= :: V1PersistentVolumeClaimStatus
-> V1PersistentVolumeClaimStatus -> Bool
== :: V1PersistentVolumeClaimStatus
-> V1PersistentVolumeClaimStatus -> Bool
$c== :: V1PersistentVolumeClaimStatus
-> V1PersistentVolumeClaimStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PersistentVolumeClaimStatus
instance A.FromJSON V1PersistentVolumeClaimStatus where
  parseJSON :: Value -> Parser V1PersistentVolumeClaimStatus
parseJSON = String
-> (Object -> Parser V1PersistentVolumeClaimStatus)
-> Value
-> Parser V1PersistentVolumeClaimStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PersistentVolumeClaimStatus" ((Object -> Parser V1PersistentVolumeClaimStatus)
 -> Value -> Parser V1PersistentVolumeClaimStatus)
-> (Object -> Parser V1PersistentVolumeClaimStatus)
-> Value
-> Parser V1PersistentVolumeClaimStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Maybe (Map String Quantity)
-> Maybe [V1PersistentVolumeClaimCondition]
-> Maybe Text
-> V1PersistentVolumeClaimStatus
V1PersistentVolumeClaimStatus
      (Maybe [Text]
 -> Maybe (Map String Quantity)
 -> Maybe [V1PersistentVolumeClaimCondition]
 -> Maybe Text
 -> V1PersistentVolumeClaimStatus)
-> Parser (Maybe [Text])
-> Parser
     (Maybe (Map String Quantity)
      -> Maybe [V1PersistentVolumeClaimCondition]
      -> Maybe Text
      -> V1PersistentVolumeClaimStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"accessModes")
      Parser
  (Maybe (Map String Quantity)
   -> Maybe [V1PersistentVolumeClaimCondition]
   -> Maybe Text
   -> V1PersistentVolumeClaimStatus)
-> Parser (Maybe (Map String Quantity))
-> Parser
     (Maybe [V1PersistentVolumeClaimCondition]
      -> Maybe Text -> V1PersistentVolumeClaimStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"capacity")
      Parser
  (Maybe [V1PersistentVolumeClaimCondition]
   -> Maybe Text -> V1PersistentVolumeClaimStatus)
-> Parser (Maybe [V1PersistentVolumeClaimCondition])
-> Parser (Maybe Text -> V1PersistentVolumeClaimStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1PersistentVolumeClaimCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser (Maybe Text -> V1PersistentVolumeClaimStatus)
-> Parser (Maybe Text) -> Parser V1PersistentVolumeClaimStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"phase")

-- | ToJSON V1PersistentVolumeClaimStatus
instance A.ToJSON V1PersistentVolumeClaimStatus where
  toJSON :: V1PersistentVolumeClaimStatus -> Value
toJSON V1PersistentVolumeClaimStatus {Maybe [Text]
Maybe [V1PersistentVolumeClaimCondition]
Maybe Text
Maybe (Map String Quantity)
v1PersistentVolumeClaimStatusPhase :: Maybe Text
v1PersistentVolumeClaimStatusConditions :: Maybe [V1PersistentVolumeClaimCondition]
v1PersistentVolumeClaimStatusCapacity :: Maybe (Map String Quantity)
v1PersistentVolumeClaimStatusAccessModes :: Maybe [Text]
v1PersistentVolumeClaimStatusPhase :: V1PersistentVolumeClaimStatus -> Maybe Text
v1PersistentVolumeClaimStatusConditions :: V1PersistentVolumeClaimStatus
-> Maybe [V1PersistentVolumeClaimCondition]
v1PersistentVolumeClaimStatusCapacity :: V1PersistentVolumeClaimStatus -> Maybe (Map String Quantity)
v1PersistentVolumeClaimStatusAccessModes :: V1PersistentVolumeClaimStatus -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"accessModes" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1PersistentVolumeClaimStatusAccessModes
      , Text
"capacity" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1PersistentVolumeClaimStatusCapacity
      , Text
"conditions" Text -> Maybe [V1PersistentVolumeClaimCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1PersistentVolumeClaimCondition]
v1PersistentVolumeClaimStatusConditions
      , Text
"phase" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeClaimStatusPhase
      ]


-- | Construct a value of type 'V1PersistentVolumeClaimStatus' (by applying it's required fields, if any)
mkV1PersistentVolumeClaimStatus
  :: V1PersistentVolumeClaimStatus
mkV1PersistentVolumeClaimStatus :: V1PersistentVolumeClaimStatus
mkV1PersistentVolumeClaimStatus =
  V1PersistentVolumeClaimStatus :: Maybe [Text]
-> Maybe (Map String Quantity)
-> Maybe [V1PersistentVolumeClaimCondition]
-> Maybe Text
-> V1PersistentVolumeClaimStatus
V1PersistentVolumeClaimStatus
  { v1PersistentVolumeClaimStatusAccessModes :: Maybe [Text]
v1PersistentVolumeClaimStatusAccessModes = Maybe [Text]
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimStatusCapacity :: Maybe (Map String Quantity)
v1PersistentVolumeClaimStatusCapacity = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimStatusConditions :: Maybe [V1PersistentVolumeClaimCondition]
v1PersistentVolumeClaimStatusConditions = Maybe [V1PersistentVolumeClaimCondition]
forall a. Maybe a
Nothing
  , v1PersistentVolumeClaimStatusPhase :: Maybe Text
v1PersistentVolumeClaimStatusPhase = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1PersistentVolumeClaimVolumeSource
-- | V1PersistentVolumeClaimVolumeSource
-- PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).
data V1PersistentVolumeClaimVolumeSource = V1PersistentVolumeClaimVolumeSource
  { V1PersistentVolumeClaimVolumeSource -> Text
v1PersistentVolumeClaimVolumeSourceClaimName :: !(Text) -- ^ /Required/ "claimName" - ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  , V1PersistentVolumeClaimVolumeSource -> Maybe Bool
v1PersistentVolumeClaimVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Will force the ReadOnly setting in VolumeMounts. Default false.
  } deriving (Int -> V1PersistentVolumeClaimVolumeSource -> ShowS
[V1PersistentVolumeClaimVolumeSource] -> ShowS
V1PersistentVolumeClaimVolumeSource -> String
(Int -> V1PersistentVolumeClaimVolumeSource -> ShowS)
-> (V1PersistentVolumeClaimVolumeSource -> String)
-> ([V1PersistentVolumeClaimVolumeSource] -> ShowS)
-> Show V1PersistentVolumeClaimVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PersistentVolumeClaimVolumeSource] -> ShowS
$cshowList :: [V1PersistentVolumeClaimVolumeSource] -> ShowS
show :: V1PersistentVolumeClaimVolumeSource -> String
$cshow :: V1PersistentVolumeClaimVolumeSource -> String
showsPrec :: Int -> V1PersistentVolumeClaimVolumeSource -> ShowS
$cshowsPrec :: Int -> V1PersistentVolumeClaimVolumeSource -> ShowS
P.Show, V1PersistentVolumeClaimVolumeSource
-> V1PersistentVolumeClaimVolumeSource -> Bool
(V1PersistentVolumeClaimVolumeSource
 -> V1PersistentVolumeClaimVolumeSource -> Bool)
-> (V1PersistentVolumeClaimVolumeSource
    -> V1PersistentVolumeClaimVolumeSource -> Bool)
-> Eq V1PersistentVolumeClaimVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PersistentVolumeClaimVolumeSource
-> V1PersistentVolumeClaimVolumeSource -> Bool
$c/= :: V1PersistentVolumeClaimVolumeSource
-> V1PersistentVolumeClaimVolumeSource -> Bool
== :: V1PersistentVolumeClaimVolumeSource
-> V1PersistentVolumeClaimVolumeSource -> Bool
$c== :: V1PersistentVolumeClaimVolumeSource
-> V1PersistentVolumeClaimVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PersistentVolumeClaimVolumeSource
instance A.FromJSON V1PersistentVolumeClaimVolumeSource where
  parseJSON :: Value -> Parser V1PersistentVolumeClaimVolumeSource
parseJSON = String
-> (Object -> Parser V1PersistentVolumeClaimVolumeSource)
-> Value
-> Parser V1PersistentVolumeClaimVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PersistentVolumeClaimVolumeSource" ((Object -> Parser V1PersistentVolumeClaimVolumeSource)
 -> Value -> Parser V1PersistentVolumeClaimVolumeSource)
-> (Object -> Parser V1PersistentVolumeClaimVolumeSource)
-> Value
-> Parser V1PersistentVolumeClaimVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Maybe Bool -> V1PersistentVolumeClaimVolumeSource
V1PersistentVolumeClaimVolumeSource
      (Text -> Maybe Bool -> V1PersistentVolumeClaimVolumeSource)
-> Parser Text
-> Parser (Maybe Bool -> V1PersistentVolumeClaimVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"claimName")
      Parser (Maybe Bool -> V1PersistentVolumeClaimVolumeSource)
-> Parser (Maybe Bool)
-> Parser V1PersistentVolumeClaimVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")

-- | ToJSON V1PersistentVolumeClaimVolumeSource
instance A.ToJSON V1PersistentVolumeClaimVolumeSource where
  toJSON :: V1PersistentVolumeClaimVolumeSource -> Value
toJSON V1PersistentVolumeClaimVolumeSource {Maybe Bool
Text
v1PersistentVolumeClaimVolumeSourceReadOnly :: Maybe Bool
v1PersistentVolumeClaimVolumeSourceClaimName :: Text
v1PersistentVolumeClaimVolumeSourceReadOnly :: V1PersistentVolumeClaimVolumeSource -> Maybe Bool
v1PersistentVolumeClaimVolumeSourceClaimName :: V1PersistentVolumeClaimVolumeSource -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"claimName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1PersistentVolumeClaimVolumeSourceClaimName
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1PersistentVolumeClaimVolumeSourceReadOnly
      ]


-- | Construct a value of type 'V1PersistentVolumeClaimVolumeSource' (by applying it's required fields, if any)
mkV1PersistentVolumeClaimVolumeSource
  :: Text -- ^ 'v1PersistentVolumeClaimVolumeSourceClaimName': ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
  -> V1PersistentVolumeClaimVolumeSource
mkV1PersistentVolumeClaimVolumeSource :: Text -> V1PersistentVolumeClaimVolumeSource
mkV1PersistentVolumeClaimVolumeSource Text
v1PersistentVolumeClaimVolumeSourceClaimName =
  V1PersistentVolumeClaimVolumeSource :: Text -> Maybe Bool -> V1PersistentVolumeClaimVolumeSource
V1PersistentVolumeClaimVolumeSource
  { Text
v1PersistentVolumeClaimVolumeSourceClaimName :: Text
v1PersistentVolumeClaimVolumeSourceClaimName :: Text
v1PersistentVolumeClaimVolumeSourceClaimName
  , v1PersistentVolumeClaimVolumeSourceReadOnly :: Maybe Bool
v1PersistentVolumeClaimVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1PersistentVolumeList
-- | V1PersistentVolumeList
-- PersistentVolumeList is a list of PersistentVolume items.
data V1PersistentVolumeList = V1PersistentVolumeList
  { V1PersistentVolumeList -> Maybe Text
v1PersistentVolumeListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1PersistentVolumeList -> [V1PersistentVolume]
v1PersistentVolumeListItems :: !([V1PersistentVolume]) -- ^ /Required/ "items" - List of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
  , V1PersistentVolumeList -> Maybe Text
v1PersistentVolumeListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1PersistentVolumeList -> Maybe V1ListMeta
v1PersistentVolumeListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1PersistentVolumeList -> ShowS
[V1PersistentVolumeList] -> ShowS
V1PersistentVolumeList -> String
(Int -> V1PersistentVolumeList -> ShowS)
-> (V1PersistentVolumeList -> String)
-> ([V1PersistentVolumeList] -> ShowS)
-> Show V1PersistentVolumeList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PersistentVolumeList] -> ShowS
$cshowList :: [V1PersistentVolumeList] -> ShowS
show :: V1PersistentVolumeList -> String
$cshow :: V1PersistentVolumeList -> String
showsPrec :: Int -> V1PersistentVolumeList -> ShowS
$cshowsPrec :: Int -> V1PersistentVolumeList -> ShowS
P.Show, V1PersistentVolumeList -> V1PersistentVolumeList -> Bool
(V1PersistentVolumeList -> V1PersistentVolumeList -> Bool)
-> (V1PersistentVolumeList -> V1PersistentVolumeList -> Bool)
-> Eq V1PersistentVolumeList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PersistentVolumeList -> V1PersistentVolumeList -> Bool
$c/= :: V1PersistentVolumeList -> V1PersistentVolumeList -> Bool
== :: V1PersistentVolumeList -> V1PersistentVolumeList -> Bool
$c== :: V1PersistentVolumeList -> V1PersistentVolumeList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PersistentVolumeList
instance A.FromJSON V1PersistentVolumeList where
  parseJSON :: Value -> Parser V1PersistentVolumeList
parseJSON = String
-> (Object -> Parser V1PersistentVolumeList)
-> Value
-> Parser V1PersistentVolumeList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PersistentVolumeList" ((Object -> Parser V1PersistentVolumeList)
 -> Value -> Parser V1PersistentVolumeList)
-> (Object -> Parser V1PersistentVolumeList)
-> Value
-> Parser V1PersistentVolumeList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1PersistentVolume]
-> Maybe Text
-> Maybe V1ListMeta
-> V1PersistentVolumeList
V1PersistentVolumeList
      (Maybe Text
 -> [V1PersistentVolume]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1PersistentVolumeList)
-> Parser (Maybe Text)
-> Parser
     ([V1PersistentVolume]
      -> Maybe Text -> Maybe V1ListMeta -> V1PersistentVolumeList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1PersistentVolume]
   -> Maybe Text -> Maybe V1ListMeta -> V1PersistentVolumeList)
-> Parser [V1PersistentVolume]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1PersistentVolumeList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1PersistentVolume]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1PersistentVolumeList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1PersistentVolumeList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1PersistentVolumeList)
-> Parser (Maybe V1ListMeta) -> Parser V1PersistentVolumeList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1PersistentVolumeList
instance A.ToJSON V1PersistentVolumeList where
  toJSON :: V1PersistentVolumeList -> Value
toJSON V1PersistentVolumeList {[V1PersistentVolume]
Maybe Text
Maybe V1ListMeta
v1PersistentVolumeListMetadata :: Maybe V1ListMeta
v1PersistentVolumeListKind :: Maybe Text
v1PersistentVolumeListItems :: [V1PersistentVolume]
v1PersistentVolumeListApiVersion :: Maybe Text
v1PersistentVolumeListMetadata :: V1PersistentVolumeList -> Maybe V1ListMeta
v1PersistentVolumeListKind :: V1PersistentVolumeList -> Maybe Text
v1PersistentVolumeListItems :: V1PersistentVolumeList -> [V1PersistentVolume]
v1PersistentVolumeListApiVersion :: V1PersistentVolumeList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeListApiVersion
      , Text
"items" Text -> [V1PersistentVolume] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1PersistentVolume]
v1PersistentVolumeListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1PersistentVolumeListMetadata
      ]


-- | Construct a value of type 'V1PersistentVolumeList' (by applying it's required fields, if any)
mkV1PersistentVolumeList
  :: [V1PersistentVolume] -- ^ 'v1PersistentVolumeListItems': List of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
  -> V1PersistentVolumeList
mkV1PersistentVolumeList :: [V1PersistentVolume] -> V1PersistentVolumeList
mkV1PersistentVolumeList [V1PersistentVolume]
v1PersistentVolumeListItems =
  V1PersistentVolumeList :: Maybe Text
-> [V1PersistentVolume]
-> Maybe Text
-> Maybe V1ListMeta
-> V1PersistentVolumeList
V1PersistentVolumeList
  { v1PersistentVolumeListApiVersion :: Maybe Text
v1PersistentVolumeListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1PersistentVolume]
v1PersistentVolumeListItems :: [V1PersistentVolume]
v1PersistentVolumeListItems :: [V1PersistentVolume]
v1PersistentVolumeListItems
  , v1PersistentVolumeListKind :: Maybe Text
v1PersistentVolumeListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1PersistentVolumeListMetadata :: Maybe V1ListMeta
v1PersistentVolumeListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1PersistentVolumeSpec
-- | V1PersistentVolumeSpec
-- PersistentVolumeSpec is the specification of a persistent volume.
data V1PersistentVolumeSpec = V1PersistentVolumeSpec
  { V1PersistentVolumeSpec -> Maybe [Text]
v1PersistentVolumeSpecAccessModes :: !(Maybe [Text]) -- ^ "accessModes" - AccessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
  , V1PersistentVolumeSpec -> Maybe V1AWSElasticBlockStoreVolumeSource
v1PersistentVolumeSpecAwsElasticBlockStore :: !(Maybe V1AWSElasticBlockStoreVolumeSource) -- ^ "awsElasticBlockStore"
  , V1PersistentVolumeSpec -> Maybe V1AzureDiskVolumeSource
v1PersistentVolumeSpecAzureDisk :: !(Maybe V1AzureDiskVolumeSource) -- ^ "azureDisk"
  , V1PersistentVolumeSpec -> Maybe V1AzureFilePersistentVolumeSource
v1PersistentVolumeSpecAzureFile :: !(Maybe V1AzureFilePersistentVolumeSource) -- ^ "azureFile"
  , V1PersistentVolumeSpec -> Maybe (Map String Quantity)
v1PersistentVolumeSpecCapacity :: !(Maybe (Map.Map String Quantity)) -- ^ "capacity" - A description of the persistent volume&#39;s resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
  , V1PersistentVolumeSpec -> Maybe V1CephFSPersistentVolumeSource
v1PersistentVolumeSpecCephfs :: !(Maybe V1CephFSPersistentVolumeSource) -- ^ "cephfs"
  , V1PersistentVolumeSpec -> Maybe V1CinderPersistentVolumeSource
v1PersistentVolumeSpecCinder :: !(Maybe V1CinderPersistentVolumeSource) -- ^ "cinder"
  , V1PersistentVolumeSpec -> Maybe V1ObjectReference
v1PersistentVolumeSpecClaimRef :: !(Maybe V1ObjectReference) -- ^ "claimRef"
  , V1PersistentVolumeSpec -> Maybe V1CSIPersistentVolumeSource
v1PersistentVolumeSpecCsi :: !(Maybe V1CSIPersistentVolumeSource) -- ^ "csi"
  , V1PersistentVolumeSpec -> Maybe V1FCVolumeSource
v1PersistentVolumeSpecFc :: !(Maybe V1FCVolumeSource) -- ^ "fc"
  , V1PersistentVolumeSpec -> Maybe V1FlexPersistentVolumeSource
v1PersistentVolumeSpecFlexVolume :: !(Maybe V1FlexPersistentVolumeSource) -- ^ "flexVolume"
  , V1PersistentVolumeSpec -> Maybe V1FlockerVolumeSource
v1PersistentVolumeSpecFlocker :: !(Maybe V1FlockerVolumeSource) -- ^ "flocker"
  , V1PersistentVolumeSpec -> Maybe V1GCEPersistentDiskVolumeSource
v1PersistentVolumeSpecGcePersistentDisk :: !(Maybe V1GCEPersistentDiskVolumeSource) -- ^ "gcePersistentDisk"
  , V1PersistentVolumeSpec -> Maybe V1GlusterfsPersistentVolumeSource
v1PersistentVolumeSpecGlusterfs :: !(Maybe V1GlusterfsPersistentVolumeSource) -- ^ "glusterfs"
  , V1PersistentVolumeSpec -> Maybe V1HostPathVolumeSource
v1PersistentVolumeSpecHostPath :: !(Maybe V1HostPathVolumeSource) -- ^ "hostPath"
  , V1PersistentVolumeSpec -> Maybe V1ISCSIPersistentVolumeSource
v1PersistentVolumeSpecIscsi :: !(Maybe V1ISCSIPersistentVolumeSource) -- ^ "iscsi"
  , V1PersistentVolumeSpec -> Maybe V1LocalVolumeSource
v1PersistentVolumeSpecLocal :: !(Maybe V1LocalVolumeSource) -- ^ "local"
  , V1PersistentVolumeSpec -> Maybe [Text]
v1PersistentVolumeSpecMountOptions :: !(Maybe [Text]) -- ^ "mountOptions" - A list of mount options, e.g. [\&quot;ro\&quot;, \&quot;soft\&quot;]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
  , V1PersistentVolumeSpec -> Maybe V1NFSVolumeSource
v1PersistentVolumeSpecNfs :: !(Maybe V1NFSVolumeSource) -- ^ "nfs"
  , V1PersistentVolumeSpec -> Maybe V1VolumeNodeAffinity
v1PersistentVolumeSpecNodeAffinity :: !(Maybe V1VolumeNodeAffinity) -- ^ "nodeAffinity"
  , V1PersistentVolumeSpec -> Maybe Text
v1PersistentVolumeSpecPersistentVolumeReclaimPolicy :: !(Maybe Text) -- ^ "persistentVolumeReclaimPolicy" - What happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
  , V1PersistentVolumeSpec -> Maybe V1PhotonPersistentDiskVolumeSource
v1PersistentVolumeSpecPhotonPersistentDisk :: !(Maybe V1PhotonPersistentDiskVolumeSource) -- ^ "photonPersistentDisk"
  , V1PersistentVolumeSpec -> Maybe V1PortworxVolumeSource
v1PersistentVolumeSpecPortworxVolume :: !(Maybe V1PortworxVolumeSource) -- ^ "portworxVolume"
  , V1PersistentVolumeSpec -> Maybe V1QuobyteVolumeSource
v1PersistentVolumeSpecQuobyte :: !(Maybe V1QuobyteVolumeSource) -- ^ "quobyte"
  , V1PersistentVolumeSpec -> Maybe V1RBDPersistentVolumeSource
v1PersistentVolumeSpecRbd :: !(Maybe V1RBDPersistentVolumeSource) -- ^ "rbd"
  , V1PersistentVolumeSpec -> Maybe V1ScaleIOPersistentVolumeSource
v1PersistentVolumeSpecScaleIo :: !(Maybe V1ScaleIOPersistentVolumeSource) -- ^ "scaleIO"
  , V1PersistentVolumeSpec -> Maybe Text
v1PersistentVolumeSpecStorageClassName :: !(Maybe Text) -- ^ "storageClassName" - Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.
  , V1PersistentVolumeSpec -> Maybe V1StorageOSPersistentVolumeSource
v1PersistentVolumeSpecStorageos :: !(Maybe V1StorageOSPersistentVolumeSource) -- ^ "storageos"
  , V1PersistentVolumeSpec -> Maybe Text
v1PersistentVolumeSpecVolumeMode :: !(Maybe Text) -- ^ "volumeMode" - volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. This is a beta feature.
  , V1PersistentVolumeSpec -> Maybe V1VsphereVirtualDiskVolumeSource
v1PersistentVolumeSpecVsphereVolume :: !(Maybe V1VsphereVirtualDiskVolumeSource) -- ^ "vsphereVolume"
  } deriving (Int -> V1PersistentVolumeSpec -> ShowS
[V1PersistentVolumeSpec] -> ShowS
V1PersistentVolumeSpec -> String
(Int -> V1PersistentVolumeSpec -> ShowS)
-> (V1PersistentVolumeSpec -> String)
-> ([V1PersistentVolumeSpec] -> ShowS)
-> Show V1PersistentVolumeSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PersistentVolumeSpec] -> ShowS
$cshowList :: [V1PersistentVolumeSpec] -> ShowS
show :: V1PersistentVolumeSpec -> String
$cshow :: V1PersistentVolumeSpec -> String
showsPrec :: Int -> V1PersistentVolumeSpec -> ShowS
$cshowsPrec :: Int -> V1PersistentVolumeSpec -> ShowS
P.Show, V1PersistentVolumeSpec -> V1PersistentVolumeSpec -> Bool
(V1PersistentVolumeSpec -> V1PersistentVolumeSpec -> Bool)
-> (V1PersistentVolumeSpec -> V1PersistentVolumeSpec -> Bool)
-> Eq V1PersistentVolumeSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PersistentVolumeSpec -> V1PersistentVolumeSpec -> Bool
$c/= :: V1PersistentVolumeSpec -> V1PersistentVolumeSpec -> Bool
== :: V1PersistentVolumeSpec -> V1PersistentVolumeSpec -> Bool
$c== :: V1PersistentVolumeSpec -> V1PersistentVolumeSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PersistentVolumeSpec
instance A.FromJSON V1PersistentVolumeSpec where
  parseJSON :: Value -> Parser V1PersistentVolumeSpec
parseJSON = String
-> (Object -> Parser V1PersistentVolumeSpec)
-> Value
-> Parser V1PersistentVolumeSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PersistentVolumeSpec" ((Object -> Parser V1PersistentVolumeSpec)
 -> Value -> Parser V1PersistentVolumeSpec)
-> (Object -> Parser V1PersistentVolumeSpec)
-> Value
-> Parser V1PersistentVolumeSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Maybe V1AWSElasticBlockStoreVolumeSource
-> Maybe V1AzureDiskVolumeSource
-> Maybe V1AzureFilePersistentVolumeSource
-> Maybe (Map String Quantity)
-> Maybe V1CephFSPersistentVolumeSource
-> Maybe V1CinderPersistentVolumeSource
-> Maybe V1ObjectReference
-> Maybe V1CSIPersistentVolumeSource
-> Maybe V1FCVolumeSource
-> Maybe V1FlexPersistentVolumeSource
-> Maybe V1FlockerVolumeSource
-> Maybe V1GCEPersistentDiskVolumeSource
-> Maybe V1GlusterfsPersistentVolumeSource
-> Maybe V1HostPathVolumeSource
-> Maybe V1ISCSIPersistentVolumeSource
-> Maybe V1LocalVolumeSource
-> Maybe [Text]
-> Maybe V1NFSVolumeSource
-> Maybe V1VolumeNodeAffinity
-> Maybe Text
-> Maybe V1PhotonPersistentDiskVolumeSource
-> Maybe V1PortworxVolumeSource
-> Maybe V1QuobyteVolumeSource
-> Maybe V1RBDPersistentVolumeSource
-> Maybe V1ScaleIOPersistentVolumeSource
-> Maybe Text
-> Maybe V1StorageOSPersistentVolumeSource
-> Maybe Text
-> Maybe V1VsphereVirtualDiskVolumeSource
-> V1PersistentVolumeSpec
V1PersistentVolumeSpec
      (Maybe [Text]
 -> Maybe V1AWSElasticBlockStoreVolumeSource
 -> Maybe V1AzureDiskVolumeSource
 -> Maybe V1AzureFilePersistentVolumeSource
 -> Maybe (Map String Quantity)
 -> Maybe V1CephFSPersistentVolumeSource
 -> Maybe V1CinderPersistentVolumeSource
 -> Maybe V1ObjectReference
 -> Maybe V1CSIPersistentVolumeSource
 -> Maybe V1FCVolumeSource
 -> Maybe V1FlexPersistentVolumeSource
 -> Maybe V1FlockerVolumeSource
 -> Maybe V1GCEPersistentDiskVolumeSource
 -> Maybe V1GlusterfsPersistentVolumeSource
 -> Maybe V1HostPathVolumeSource
 -> Maybe V1ISCSIPersistentVolumeSource
 -> Maybe V1LocalVolumeSource
 -> Maybe [Text]
 -> Maybe V1NFSVolumeSource
 -> Maybe V1VolumeNodeAffinity
 -> Maybe Text
 -> Maybe V1PhotonPersistentDiskVolumeSource
 -> Maybe V1PortworxVolumeSource
 -> Maybe V1QuobyteVolumeSource
 -> Maybe V1RBDPersistentVolumeSource
 -> Maybe V1ScaleIOPersistentVolumeSource
 -> Maybe Text
 -> Maybe V1StorageOSPersistentVolumeSource
 -> Maybe Text
 -> Maybe V1VsphereVirtualDiskVolumeSource
 -> V1PersistentVolumeSpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe V1AWSElasticBlockStoreVolumeSource
      -> Maybe V1AzureDiskVolumeSource
      -> Maybe V1AzureFilePersistentVolumeSource
      -> Maybe (Map String Quantity)
      -> Maybe V1CephFSPersistentVolumeSource
      -> Maybe V1CinderPersistentVolumeSource
      -> Maybe V1ObjectReference
      -> Maybe V1CSIPersistentVolumeSource
      -> Maybe V1FCVolumeSource
      -> Maybe V1FlexPersistentVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GlusterfsPersistentVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIPersistentVolumeSource
      -> Maybe V1LocalVolumeSource
      -> Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"accessModes")
      Parser
  (Maybe V1AWSElasticBlockStoreVolumeSource
   -> Maybe V1AzureDiskVolumeSource
   -> Maybe V1AzureFilePersistentVolumeSource
   -> Maybe (Map String Quantity)
   -> Maybe V1CephFSPersistentVolumeSource
   -> Maybe V1CinderPersistentVolumeSource
   -> Maybe V1ObjectReference
   -> Maybe V1CSIPersistentVolumeSource
   -> Maybe V1FCVolumeSource
   -> Maybe V1FlexPersistentVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GlusterfsPersistentVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIPersistentVolumeSource
   -> Maybe V1LocalVolumeSource
   -> Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1AWSElasticBlockStoreVolumeSource)
-> Parser
     (Maybe V1AzureDiskVolumeSource
      -> Maybe V1AzureFilePersistentVolumeSource
      -> Maybe (Map String Quantity)
      -> Maybe V1CephFSPersistentVolumeSource
      -> Maybe V1CinderPersistentVolumeSource
      -> Maybe V1ObjectReference
      -> Maybe V1CSIPersistentVolumeSource
      -> Maybe V1FCVolumeSource
      -> Maybe V1FlexPersistentVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GlusterfsPersistentVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIPersistentVolumeSource
      -> Maybe V1LocalVolumeSource
      -> Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1AWSElasticBlockStoreVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"awsElasticBlockStore")
      Parser
  (Maybe V1AzureDiskVolumeSource
   -> Maybe V1AzureFilePersistentVolumeSource
   -> Maybe (Map String Quantity)
   -> Maybe V1CephFSPersistentVolumeSource
   -> Maybe V1CinderPersistentVolumeSource
   -> Maybe V1ObjectReference
   -> Maybe V1CSIPersistentVolumeSource
   -> Maybe V1FCVolumeSource
   -> Maybe V1FlexPersistentVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GlusterfsPersistentVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIPersistentVolumeSource
   -> Maybe V1LocalVolumeSource
   -> Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1AzureDiskVolumeSource)
-> Parser
     (Maybe V1AzureFilePersistentVolumeSource
      -> Maybe (Map String Quantity)
      -> Maybe V1CephFSPersistentVolumeSource
      -> Maybe V1CinderPersistentVolumeSource
      -> Maybe V1ObjectReference
      -> Maybe V1CSIPersistentVolumeSource
      -> Maybe V1FCVolumeSource
      -> Maybe V1FlexPersistentVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GlusterfsPersistentVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIPersistentVolumeSource
      -> Maybe V1LocalVolumeSource
      -> Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1AzureDiskVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"azureDisk")
      Parser
  (Maybe V1AzureFilePersistentVolumeSource
   -> Maybe (Map String Quantity)
   -> Maybe V1CephFSPersistentVolumeSource
   -> Maybe V1CinderPersistentVolumeSource
   -> Maybe V1ObjectReference
   -> Maybe V1CSIPersistentVolumeSource
   -> Maybe V1FCVolumeSource
   -> Maybe V1FlexPersistentVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GlusterfsPersistentVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIPersistentVolumeSource
   -> Maybe V1LocalVolumeSource
   -> Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1AzureFilePersistentVolumeSource)
-> Parser
     (Maybe (Map String Quantity)
      -> Maybe V1CephFSPersistentVolumeSource
      -> Maybe V1CinderPersistentVolumeSource
      -> Maybe V1ObjectReference
      -> Maybe V1CSIPersistentVolumeSource
      -> Maybe V1FCVolumeSource
      -> Maybe V1FlexPersistentVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GlusterfsPersistentVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIPersistentVolumeSource
      -> Maybe V1LocalVolumeSource
      -> Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1AzureFilePersistentVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"azureFile")
      Parser
  (Maybe (Map String Quantity)
   -> Maybe V1CephFSPersistentVolumeSource
   -> Maybe V1CinderPersistentVolumeSource
   -> Maybe V1ObjectReference
   -> Maybe V1CSIPersistentVolumeSource
   -> Maybe V1FCVolumeSource
   -> Maybe V1FlexPersistentVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GlusterfsPersistentVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIPersistentVolumeSource
   -> Maybe V1LocalVolumeSource
   -> Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe (Map String Quantity))
-> Parser
     (Maybe V1CephFSPersistentVolumeSource
      -> Maybe V1CinderPersistentVolumeSource
      -> Maybe V1ObjectReference
      -> Maybe V1CSIPersistentVolumeSource
      -> Maybe V1FCVolumeSource
      -> Maybe V1FlexPersistentVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GlusterfsPersistentVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIPersistentVolumeSource
      -> Maybe V1LocalVolumeSource
      -> Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"capacity")
      Parser
  (Maybe V1CephFSPersistentVolumeSource
   -> Maybe V1CinderPersistentVolumeSource
   -> Maybe V1ObjectReference
   -> Maybe V1CSIPersistentVolumeSource
   -> Maybe V1FCVolumeSource
   -> Maybe V1FlexPersistentVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GlusterfsPersistentVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIPersistentVolumeSource
   -> Maybe V1LocalVolumeSource
   -> Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1CephFSPersistentVolumeSource)
-> Parser
     (Maybe V1CinderPersistentVolumeSource
      -> Maybe V1ObjectReference
      -> Maybe V1CSIPersistentVolumeSource
      -> Maybe V1FCVolumeSource
      -> Maybe V1FlexPersistentVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GlusterfsPersistentVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIPersistentVolumeSource
      -> Maybe V1LocalVolumeSource
      -> Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1CephFSPersistentVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"cephfs")
      Parser
  (Maybe V1CinderPersistentVolumeSource
   -> Maybe V1ObjectReference
   -> Maybe V1CSIPersistentVolumeSource
   -> Maybe V1FCVolumeSource
   -> Maybe V1FlexPersistentVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GlusterfsPersistentVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIPersistentVolumeSource
   -> Maybe V1LocalVolumeSource
   -> Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1CinderPersistentVolumeSource)
-> Parser
     (Maybe V1ObjectReference
      -> Maybe V1CSIPersistentVolumeSource
      -> Maybe V1FCVolumeSource
      -> Maybe V1FlexPersistentVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GlusterfsPersistentVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIPersistentVolumeSource
      -> Maybe V1LocalVolumeSource
      -> Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1CinderPersistentVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"cinder")
      Parser
  (Maybe V1ObjectReference
   -> Maybe V1CSIPersistentVolumeSource
   -> Maybe V1FCVolumeSource
   -> Maybe V1FlexPersistentVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GlusterfsPersistentVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIPersistentVolumeSource
   -> Maybe V1LocalVolumeSource
   -> Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1ObjectReference)
-> Parser
     (Maybe V1CSIPersistentVolumeSource
      -> Maybe V1FCVolumeSource
      -> Maybe V1FlexPersistentVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GlusterfsPersistentVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIPersistentVolumeSource
      -> Maybe V1LocalVolumeSource
      -> Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"claimRef")
      Parser
  (Maybe V1CSIPersistentVolumeSource
   -> Maybe V1FCVolumeSource
   -> Maybe V1FlexPersistentVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GlusterfsPersistentVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIPersistentVolumeSource
   -> Maybe V1LocalVolumeSource
   -> Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1CSIPersistentVolumeSource)
-> Parser
     (Maybe V1FCVolumeSource
      -> Maybe V1FlexPersistentVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GlusterfsPersistentVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIPersistentVolumeSource
      -> Maybe V1LocalVolumeSource
      -> Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1CSIPersistentVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"csi")
      Parser
  (Maybe V1FCVolumeSource
   -> Maybe V1FlexPersistentVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GlusterfsPersistentVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIPersistentVolumeSource
   -> Maybe V1LocalVolumeSource
   -> Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1FCVolumeSource)
-> Parser
     (Maybe V1FlexPersistentVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GlusterfsPersistentVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIPersistentVolumeSource
      -> Maybe V1LocalVolumeSource
      -> Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1FCVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fc")
      Parser
  (Maybe V1FlexPersistentVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GlusterfsPersistentVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIPersistentVolumeSource
   -> Maybe V1LocalVolumeSource
   -> Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1FlexPersistentVolumeSource)
-> Parser
     (Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GlusterfsPersistentVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIPersistentVolumeSource
      -> Maybe V1LocalVolumeSource
      -> Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1FlexPersistentVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"flexVolume")
      Parser
  (Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GlusterfsPersistentVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIPersistentVolumeSource
   -> Maybe V1LocalVolumeSource
   -> Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1FlockerVolumeSource)
-> Parser
     (Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GlusterfsPersistentVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIPersistentVolumeSource
      -> Maybe V1LocalVolumeSource
      -> Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1FlockerVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"flocker")
      Parser
  (Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GlusterfsPersistentVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIPersistentVolumeSource
   -> Maybe V1LocalVolumeSource
   -> Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1GCEPersistentDiskVolumeSource)
-> Parser
     (Maybe V1GlusterfsPersistentVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIPersistentVolumeSource
      -> Maybe V1LocalVolumeSource
      -> Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1GCEPersistentDiskVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"gcePersistentDisk")
      Parser
  (Maybe V1GlusterfsPersistentVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIPersistentVolumeSource
   -> Maybe V1LocalVolumeSource
   -> Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1GlusterfsPersistentVolumeSource)
-> Parser
     (Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIPersistentVolumeSource
      -> Maybe V1LocalVolumeSource
      -> Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1GlusterfsPersistentVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"glusterfs")
      Parser
  (Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIPersistentVolumeSource
   -> Maybe V1LocalVolumeSource
   -> Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1HostPathVolumeSource)
-> Parser
     (Maybe V1ISCSIPersistentVolumeSource
      -> Maybe V1LocalVolumeSource
      -> Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1HostPathVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostPath")
      Parser
  (Maybe V1ISCSIPersistentVolumeSource
   -> Maybe V1LocalVolumeSource
   -> Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1ISCSIPersistentVolumeSource)
-> Parser
     (Maybe V1LocalVolumeSource
      -> Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ISCSIPersistentVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"iscsi")
      Parser
  (Maybe V1LocalVolumeSource
   -> Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1LocalVolumeSource)
-> Parser
     (Maybe [Text]
      -> Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LocalVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"local")
      Parser
  (Maybe [Text]
   -> Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe V1NFSVolumeSource
      -> Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"mountOptions")
      Parser
  (Maybe V1NFSVolumeSource
   -> Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1NFSVolumeSource)
-> Parser
     (Maybe V1VolumeNodeAffinity
      -> Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1NFSVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nfs")
      Parser
  (Maybe V1VolumeNodeAffinity
   -> Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1VolumeNodeAffinity)
-> Parser
     (Maybe Text
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1VolumeNodeAffinity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nodeAffinity")
      Parser
  (Maybe Text
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"persistentVolumeReclaimPolicy")
      Parser
  (Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1PhotonPersistentDiskVolumeSource)
-> Parser
     (Maybe V1PortworxVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PhotonPersistentDiskVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"photonPersistentDisk")
      Parser
  (Maybe V1PortworxVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1PortworxVolumeSource)
-> Parser
     (Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PortworxVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"portworxVolume")
      Parser
  (Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1QuobyteVolumeSource)
-> Parser
     (Maybe V1RBDPersistentVolumeSource
      -> Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1QuobyteVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"quobyte")
      Parser
  (Maybe V1RBDPersistentVolumeSource
   -> Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1RBDPersistentVolumeSource)
-> Parser
     (Maybe V1ScaleIOPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1RBDPersistentVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rbd")
      Parser
  (Maybe V1ScaleIOPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1ScaleIOPersistentVolumeSource)
-> Parser
     (Maybe Text
      -> Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ScaleIOPersistentVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"scaleIO")
      Parser
  (Maybe Text
   -> Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1StorageOSPersistentVolumeSource
      -> Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"storageClassName")
      Parser
  (Maybe V1StorageOSPersistentVolumeSource
   -> Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe V1StorageOSPersistentVolumeSource)
-> Parser
     (Maybe Text
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1StorageOSPersistentVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"storageos")
      Parser
  (Maybe Text
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1PersistentVolumeSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1VsphereVirtualDiskVolumeSource -> V1PersistentVolumeSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeMode")
      Parser
  (Maybe V1VsphereVirtualDiskVolumeSource -> V1PersistentVolumeSpec)
-> Parser (Maybe V1VsphereVirtualDiskVolumeSource)
-> Parser V1PersistentVolumeSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1VsphereVirtualDiskVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"vsphereVolume")

-- | ToJSON V1PersistentVolumeSpec
instance A.ToJSON V1PersistentVolumeSpec where
  toJSON :: V1PersistentVolumeSpec -> Value
toJSON V1PersistentVolumeSpec {Maybe [Text]
Maybe Text
Maybe (Map String Quantity)
Maybe V1VsphereVirtualDiskVolumeSource
Maybe V1VolumeNodeAffinity
Maybe V1StorageOSPersistentVolumeSource
Maybe V1ScaleIOPersistentVolumeSource
Maybe V1RBDPersistentVolumeSource
Maybe V1QuobyteVolumeSource
Maybe V1PortworxVolumeSource
Maybe V1PhotonPersistentDiskVolumeSource
Maybe V1ObjectReference
Maybe V1NFSVolumeSource
Maybe V1LocalVolumeSource
Maybe V1ISCSIPersistentVolumeSource
Maybe V1HostPathVolumeSource
Maybe V1GlusterfsPersistentVolumeSource
Maybe V1GCEPersistentDiskVolumeSource
Maybe V1FlockerVolumeSource
Maybe V1FlexPersistentVolumeSource
Maybe V1FCVolumeSource
Maybe V1CinderPersistentVolumeSource
Maybe V1CephFSPersistentVolumeSource
Maybe V1CSIPersistentVolumeSource
Maybe V1AzureFilePersistentVolumeSource
Maybe V1AzureDiskVolumeSource
Maybe V1AWSElasticBlockStoreVolumeSource
v1PersistentVolumeSpecVsphereVolume :: Maybe V1VsphereVirtualDiskVolumeSource
v1PersistentVolumeSpecVolumeMode :: Maybe Text
v1PersistentVolumeSpecStorageos :: Maybe V1StorageOSPersistentVolumeSource
v1PersistentVolumeSpecStorageClassName :: Maybe Text
v1PersistentVolumeSpecScaleIo :: Maybe V1ScaleIOPersistentVolumeSource
v1PersistentVolumeSpecRbd :: Maybe V1RBDPersistentVolumeSource
v1PersistentVolumeSpecQuobyte :: Maybe V1QuobyteVolumeSource
v1PersistentVolumeSpecPortworxVolume :: Maybe V1PortworxVolumeSource
v1PersistentVolumeSpecPhotonPersistentDisk :: Maybe V1PhotonPersistentDiskVolumeSource
v1PersistentVolumeSpecPersistentVolumeReclaimPolicy :: Maybe Text
v1PersistentVolumeSpecNodeAffinity :: Maybe V1VolumeNodeAffinity
v1PersistentVolumeSpecNfs :: Maybe V1NFSVolumeSource
v1PersistentVolumeSpecMountOptions :: Maybe [Text]
v1PersistentVolumeSpecLocal :: Maybe V1LocalVolumeSource
v1PersistentVolumeSpecIscsi :: Maybe V1ISCSIPersistentVolumeSource
v1PersistentVolumeSpecHostPath :: Maybe V1HostPathVolumeSource
v1PersistentVolumeSpecGlusterfs :: Maybe V1GlusterfsPersistentVolumeSource
v1PersistentVolumeSpecGcePersistentDisk :: Maybe V1GCEPersistentDiskVolumeSource
v1PersistentVolumeSpecFlocker :: Maybe V1FlockerVolumeSource
v1PersistentVolumeSpecFlexVolume :: Maybe V1FlexPersistentVolumeSource
v1PersistentVolumeSpecFc :: Maybe V1FCVolumeSource
v1PersistentVolumeSpecCsi :: Maybe V1CSIPersistentVolumeSource
v1PersistentVolumeSpecClaimRef :: Maybe V1ObjectReference
v1PersistentVolumeSpecCinder :: Maybe V1CinderPersistentVolumeSource
v1PersistentVolumeSpecCephfs :: Maybe V1CephFSPersistentVolumeSource
v1PersistentVolumeSpecCapacity :: Maybe (Map String Quantity)
v1PersistentVolumeSpecAzureFile :: Maybe V1AzureFilePersistentVolumeSource
v1PersistentVolumeSpecAzureDisk :: Maybe V1AzureDiskVolumeSource
v1PersistentVolumeSpecAwsElasticBlockStore :: Maybe V1AWSElasticBlockStoreVolumeSource
v1PersistentVolumeSpecAccessModes :: Maybe [Text]
v1PersistentVolumeSpecVsphereVolume :: V1PersistentVolumeSpec -> Maybe V1VsphereVirtualDiskVolumeSource
v1PersistentVolumeSpecVolumeMode :: V1PersistentVolumeSpec -> Maybe Text
v1PersistentVolumeSpecStorageos :: V1PersistentVolumeSpec -> Maybe V1StorageOSPersistentVolumeSource
v1PersistentVolumeSpecStorageClassName :: V1PersistentVolumeSpec -> Maybe Text
v1PersistentVolumeSpecScaleIo :: V1PersistentVolumeSpec -> Maybe V1ScaleIOPersistentVolumeSource
v1PersistentVolumeSpecRbd :: V1PersistentVolumeSpec -> Maybe V1RBDPersistentVolumeSource
v1PersistentVolumeSpecQuobyte :: V1PersistentVolumeSpec -> Maybe V1QuobyteVolumeSource
v1PersistentVolumeSpecPortworxVolume :: V1PersistentVolumeSpec -> Maybe V1PortworxVolumeSource
v1PersistentVolumeSpecPhotonPersistentDisk :: V1PersistentVolumeSpec -> Maybe V1PhotonPersistentDiskVolumeSource
v1PersistentVolumeSpecPersistentVolumeReclaimPolicy :: V1PersistentVolumeSpec -> Maybe Text
v1PersistentVolumeSpecNodeAffinity :: V1PersistentVolumeSpec -> Maybe V1VolumeNodeAffinity
v1PersistentVolumeSpecNfs :: V1PersistentVolumeSpec -> Maybe V1NFSVolumeSource
v1PersistentVolumeSpecMountOptions :: V1PersistentVolumeSpec -> Maybe [Text]
v1PersistentVolumeSpecLocal :: V1PersistentVolumeSpec -> Maybe V1LocalVolumeSource
v1PersistentVolumeSpecIscsi :: V1PersistentVolumeSpec -> Maybe V1ISCSIPersistentVolumeSource
v1PersistentVolumeSpecHostPath :: V1PersistentVolumeSpec -> Maybe V1HostPathVolumeSource
v1PersistentVolumeSpecGlusterfs :: V1PersistentVolumeSpec -> Maybe V1GlusterfsPersistentVolumeSource
v1PersistentVolumeSpecGcePersistentDisk :: V1PersistentVolumeSpec -> Maybe V1GCEPersistentDiskVolumeSource
v1PersistentVolumeSpecFlocker :: V1PersistentVolumeSpec -> Maybe V1FlockerVolumeSource
v1PersistentVolumeSpecFlexVolume :: V1PersistentVolumeSpec -> Maybe V1FlexPersistentVolumeSource
v1PersistentVolumeSpecFc :: V1PersistentVolumeSpec -> Maybe V1FCVolumeSource
v1PersistentVolumeSpecCsi :: V1PersistentVolumeSpec -> Maybe V1CSIPersistentVolumeSource
v1PersistentVolumeSpecClaimRef :: V1PersistentVolumeSpec -> Maybe V1ObjectReference
v1PersistentVolumeSpecCinder :: V1PersistentVolumeSpec -> Maybe V1CinderPersistentVolumeSource
v1PersistentVolumeSpecCephfs :: V1PersistentVolumeSpec -> Maybe V1CephFSPersistentVolumeSource
v1PersistentVolumeSpecCapacity :: V1PersistentVolumeSpec -> Maybe (Map String Quantity)
v1PersistentVolumeSpecAzureFile :: V1PersistentVolumeSpec -> Maybe V1AzureFilePersistentVolumeSource
v1PersistentVolumeSpecAzureDisk :: V1PersistentVolumeSpec -> Maybe V1AzureDiskVolumeSource
v1PersistentVolumeSpecAwsElasticBlockStore :: V1PersistentVolumeSpec -> Maybe V1AWSElasticBlockStoreVolumeSource
v1PersistentVolumeSpecAccessModes :: V1PersistentVolumeSpec -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"accessModes" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1PersistentVolumeSpecAccessModes
      , Text
"awsElasticBlockStore" Text -> Maybe V1AWSElasticBlockStoreVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1AWSElasticBlockStoreVolumeSource
v1PersistentVolumeSpecAwsElasticBlockStore
      , Text
"azureDisk" Text -> Maybe V1AzureDiskVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1AzureDiskVolumeSource
v1PersistentVolumeSpecAzureDisk
      , Text
"azureFile" Text -> Maybe V1AzureFilePersistentVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1AzureFilePersistentVolumeSource
v1PersistentVolumeSpecAzureFile
      , Text
"capacity" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1PersistentVolumeSpecCapacity
      , Text
"cephfs" Text -> Maybe V1CephFSPersistentVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1CephFSPersistentVolumeSource
v1PersistentVolumeSpecCephfs
      , Text
"cinder" Text -> Maybe V1CinderPersistentVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1CinderPersistentVolumeSource
v1PersistentVolumeSpecCinder
      , Text
"claimRef" Text -> Maybe V1ObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectReference
v1PersistentVolumeSpecClaimRef
      , Text
"csi" Text -> Maybe V1CSIPersistentVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1CSIPersistentVolumeSource
v1PersistentVolumeSpecCsi
      , Text
"fc" Text -> Maybe V1FCVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1FCVolumeSource
v1PersistentVolumeSpecFc
      , Text
"flexVolume" Text -> Maybe V1FlexPersistentVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1FlexPersistentVolumeSource
v1PersistentVolumeSpecFlexVolume
      , Text
"flocker" Text -> Maybe V1FlockerVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1FlockerVolumeSource
v1PersistentVolumeSpecFlocker
      , Text
"gcePersistentDisk" Text -> Maybe V1GCEPersistentDiskVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1GCEPersistentDiskVolumeSource
v1PersistentVolumeSpecGcePersistentDisk
      , Text
"glusterfs" Text -> Maybe V1GlusterfsPersistentVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1GlusterfsPersistentVolumeSource
v1PersistentVolumeSpecGlusterfs
      , Text
"hostPath" Text -> Maybe V1HostPathVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1HostPathVolumeSource
v1PersistentVolumeSpecHostPath
      , Text
"iscsi" Text -> Maybe V1ISCSIPersistentVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ISCSIPersistentVolumeSource
v1PersistentVolumeSpecIscsi
      , Text
"local" Text -> Maybe V1LocalVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LocalVolumeSource
v1PersistentVolumeSpecLocal
      , Text
"mountOptions" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1PersistentVolumeSpecMountOptions
      , Text
"nfs" Text -> Maybe V1NFSVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NFSVolumeSource
v1PersistentVolumeSpecNfs
      , Text
"nodeAffinity" Text -> Maybe V1VolumeNodeAffinity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1VolumeNodeAffinity
v1PersistentVolumeSpecNodeAffinity
      , Text
"persistentVolumeReclaimPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeSpecPersistentVolumeReclaimPolicy
      , Text
"photonPersistentDisk" Text -> Maybe V1PhotonPersistentDiskVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PhotonPersistentDiskVolumeSource
v1PersistentVolumeSpecPhotonPersistentDisk
      , Text
"portworxVolume" Text -> Maybe V1PortworxVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PortworxVolumeSource
v1PersistentVolumeSpecPortworxVolume
      , Text
"quobyte" Text -> Maybe V1QuobyteVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1QuobyteVolumeSource
v1PersistentVolumeSpecQuobyte
      , Text
"rbd" Text -> Maybe V1RBDPersistentVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1RBDPersistentVolumeSource
v1PersistentVolumeSpecRbd
      , Text
"scaleIO" Text -> Maybe V1ScaleIOPersistentVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ScaleIOPersistentVolumeSource
v1PersistentVolumeSpecScaleIo
      , Text
"storageClassName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeSpecStorageClassName
      , Text
"storageos" Text -> Maybe V1StorageOSPersistentVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1StorageOSPersistentVolumeSource
v1PersistentVolumeSpecStorageos
      , Text
"volumeMode" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeSpecVolumeMode
      , Text
"vsphereVolume" Text -> Maybe V1VsphereVirtualDiskVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1VsphereVirtualDiskVolumeSource
v1PersistentVolumeSpecVsphereVolume
      ]


-- | Construct a value of type 'V1PersistentVolumeSpec' (by applying it's required fields, if any)
mkV1PersistentVolumeSpec
  :: V1PersistentVolumeSpec
mkV1PersistentVolumeSpec :: V1PersistentVolumeSpec
mkV1PersistentVolumeSpec =
  V1PersistentVolumeSpec :: Maybe [Text]
-> Maybe V1AWSElasticBlockStoreVolumeSource
-> Maybe V1AzureDiskVolumeSource
-> Maybe V1AzureFilePersistentVolumeSource
-> Maybe (Map String Quantity)
-> Maybe V1CephFSPersistentVolumeSource
-> Maybe V1CinderPersistentVolumeSource
-> Maybe V1ObjectReference
-> Maybe V1CSIPersistentVolumeSource
-> Maybe V1FCVolumeSource
-> Maybe V1FlexPersistentVolumeSource
-> Maybe V1FlockerVolumeSource
-> Maybe V1GCEPersistentDiskVolumeSource
-> Maybe V1GlusterfsPersistentVolumeSource
-> Maybe V1HostPathVolumeSource
-> Maybe V1ISCSIPersistentVolumeSource
-> Maybe V1LocalVolumeSource
-> Maybe [Text]
-> Maybe V1NFSVolumeSource
-> Maybe V1VolumeNodeAffinity
-> Maybe Text
-> Maybe V1PhotonPersistentDiskVolumeSource
-> Maybe V1PortworxVolumeSource
-> Maybe V1QuobyteVolumeSource
-> Maybe V1RBDPersistentVolumeSource
-> Maybe V1ScaleIOPersistentVolumeSource
-> Maybe Text
-> Maybe V1StorageOSPersistentVolumeSource
-> Maybe Text
-> Maybe V1VsphereVirtualDiskVolumeSource
-> V1PersistentVolumeSpec
V1PersistentVolumeSpec
  { v1PersistentVolumeSpecAccessModes :: Maybe [Text]
v1PersistentVolumeSpecAccessModes = Maybe [Text]
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecAwsElasticBlockStore :: Maybe V1AWSElasticBlockStoreVolumeSource
v1PersistentVolumeSpecAwsElasticBlockStore = Maybe V1AWSElasticBlockStoreVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecAzureDisk :: Maybe V1AzureDiskVolumeSource
v1PersistentVolumeSpecAzureDisk = Maybe V1AzureDiskVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecAzureFile :: Maybe V1AzureFilePersistentVolumeSource
v1PersistentVolumeSpecAzureFile = Maybe V1AzureFilePersistentVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecCapacity :: Maybe (Map String Quantity)
v1PersistentVolumeSpecCapacity = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecCephfs :: Maybe V1CephFSPersistentVolumeSource
v1PersistentVolumeSpecCephfs = Maybe V1CephFSPersistentVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecCinder :: Maybe V1CinderPersistentVolumeSource
v1PersistentVolumeSpecCinder = Maybe V1CinderPersistentVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecClaimRef :: Maybe V1ObjectReference
v1PersistentVolumeSpecClaimRef = Maybe V1ObjectReference
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecCsi :: Maybe V1CSIPersistentVolumeSource
v1PersistentVolumeSpecCsi = Maybe V1CSIPersistentVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecFc :: Maybe V1FCVolumeSource
v1PersistentVolumeSpecFc = Maybe V1FCVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecFlexVolume :: Maybe V1FlexPersistentVolumeSource
v1PersistentVolumeSpecFlexVolume = Maybe V1FlexPersistentVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecFlocker :: Maybe V1FlockerVolumeSource
v1PersistentVolumeSpecFlocker = Maybe V1FlockerVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecGcePersistentDisk :: Maybe V1GCEPersistentDiskVolumeSource
v1PersistentVolumeSpecGcePersistentDisk = Maybe V1GCEPersistentDiskVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecGlusterfs :: Maybe V1GlusterfsPersistentVolumeSource
v1PersistentVolumeSpecGlusterfs = Maybe V1GlusterfsPersistentVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecHostPath :: Maybe V1HostPathVolumeSource
v1PersistentVolumeSpecHostPath = Maybe V1HostPathVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecIscsi :: Maybe V1ISCSIPersistentVolumeSource
v1PersistentVolumeSpecIscsi = Maybe V1ISCSIPersistentVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecLocal :: Maybe V1LocalVolumeSource
v1PersistentVolumeSpecLocal = Maybe V1LocalVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecMountOptions :: Maybe [Text]
v1PersistentVolumeSpecMountOptions = Maybe [Text]
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecNfs :: Maybe V1NFSVolumeSource
v1PersistentVolumeSpecNfs = Maybe V1NFSVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecNodeAffinity :: Maybe V1VolumeNodeAffinity
v1PersistentVolumeSpecNodeAffinity = Maybe V1VolumeNodeAffinity
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecPersistentVolumeReclaimPolicy :: Maybe Text
v1PersistentVolumeSpecPersistentVolumeReclaimPolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecPhotonPersistentDisk :: Maybe V1PhotonPersistentDiskVolumeSource
v1PersistentVolumeSpecPhotonPersistentDisk = Maybe V1PhotonPersistentDiskVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecPortworxVolume :: Maybe V1PortworxVolumeSource
v1PersistentVolumeSpecPortworxVolume = Maybe V1PortworxVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecQuobyte :: Maybe V1QuobyteVolumeSource
v1PersistentVolumeSpecQuobyte = Maybe V1QuobyteVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecRbd :: Maybe V1RBDPersistentVolumeSource
v1PersistentVolumeSpecRbd = Maybe V1RBDPersistentVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecScaleIo :: Maybe V1ScaleIOPersistentVolumeSource
v1PersistentVolumeSpecScaleIo = Maybe V1ScaleIOPersistentVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecStorageClassName :: Maybe Text
v1PersistentVolumeSpecStorageClassName = Maybe Text
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecStorageos :: Maybe V1StorageOSPersistentVolumeSource
v1PersistentVolumeSpecStorageos = Maybe V1StorageOSPersistentVolumeSource
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecVolumeMode :: Maybe Text
v1PersistentVolumeSpecVolumeMode = Maybe Text
forall a. Maybe a
Nothing
  , v1PersistentVolumeSpecVsphereVolume :: Maybe V1VsphereVirtualDiskVolumeSource
v1PersistentVolumeSpecVsphereVolume = Maybe V1VsphereVirtualDiskVolumeSource
forall a. Maybe a
Nothing
  }

-- ** V1PersistentVolumeStatus
-- | V1PersistentVolumeStatus
-- PersistentVolumeStatus is the current status of a persistent volume.
data V1PersistentVolumeStatus = V1PersistentVolumeStatus
  { V1PersistentVolumeStatus -> Maybe Text
v1PersistentVolumeStatusMessage :: !(Maybe Text) -- ^ "message" - A human-readable message indicating details about why the volume is in this state.
  , V1PersistentVolumeStatus -> Maybe Text
v1PersistentVolumeStatusPhase :: !(Maybe Text) -- ^ "phase" - Phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase
  , V1PersistentVolumeStatus -> Maybe Text
v1PersistentVolumeStatusReason :: !(Maybe Text) -- ^ "reason" - Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.
  } deriving (Int -> V1PersistentVolumeStatus -> ShowS
[V1PersistentVolumeStatus] -> ShowS
V1PersistentVolumeStatus -> String
(Int -> V1PersistentVolumeStatus -> ShowS)
-> (V1PersistentVolumeStatus -> String)
-> ([V1PersistentVolumeStatus] -> ShowS)
-> Show V1PersistentVolumeStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PersistentVolumeStatus] -> ShowS
$cshowList :: [V1PersistentVolumeStatus] -> ShowS
show :: V1PersistentVolumeStatus -> String
$cshow :: V1PersistentVolumeStatus -> String
showsPrec :: Int -> V1PersistentVolumeStatus -> ShowS
$cshowsPrec :: Int -> V1PersistentVolumeStatus -> ShowS
P.Show, V1PersistentVolumeStatus -> V1PersistentVolumeStatus -> Bool
(V1PersistentVolumeStatus -> V1PersistentVolumeStatus -> Bool)
-> (V1PersistentVolumeStatus -> V1PersistentVolumeStatus -> Bool)
-> Eq V1PersistentVolumeStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PersistentVolumeStatus -> V1PersistentVolumeStatus -> Bool
$c/= :: V1PersistentVolumeStatus -> V1PersistentVolumeStatus -> Bool
== :: V1PersistentVolumeStatus -> V1PersistentVolumeStatus -> Bool
$c== :: V1PersistentVolumeStatus -> V1PersistentVolumeStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PersistentVolumeStatus
instance A.FromJSON V1PersistentVolumeStatus where
  parseJSON :: Value -> Parser V1PersistentVolumeStatus
parseJSON = String
-> (Object -> Parser V1PersistentVolumeStatus)
-> Value
-> Parser V1PersistentVolumeStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PersistentVolumeStatus" ((Object -> Parser V1PersistentVolumeStatus)
 -> Value -> Parser V1PersistentVolumeStatus)
-> (Object -> Parser V1PersistentVolumeStatus)
-> Value
-> Parser V1PersistentVolumeStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Text -> Maybe Text -> V1PersistentVolumeStatus
V1PersistentVolumeStatus
      (Maybe Text
 -> Maybe Text -> Maybe Text -> V1PersistentVolumeStatus)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> V1PersistentVolumeStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Maybe Text -> V1PersistentVolumeStatus)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1PersistentVolumeStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"phase")
      Parser (Maybe Text -> V1PersistentVolumeStatus)
-> Parser (Maybe Text) -> Parser V1PersistentVolumeStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")

-- | ToJSON V1PersistentVolumeStatus
instance A.ToJSON V1PersistentVolumeStatus where
  toJSON :: V1PersistentVolumeStatus -> Value
toJSON V1PersistentVolumeStatus {Maybe Text
v1PersistentVolumeStatusReason :: Maybe Text
v1PersistentVolumeStatusPhase :: Maybe Text
v1PersistentVolumeStatusMessage :: Maybe Text
v1PersistentVolumeStatusReason :: V1PersistentVolumeStatus -> Maybe Text
v1PersistentVolumeStatusPhase :: V1PersistentVolumeStatus -> Maybe Text
v1PersistentVolumeStatusMessage :: V1PersistentVolumeStatus -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeStatusMessage
      , Text
"phase" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeStatusPhase
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PersistentVolumeStatusReason
      ]


-- | Construct a value of type 'V1PersistentVolumeStatus' (by applying it's required fields, if any)
mkV1PersistentVolumeStatus
  :: V1PersistentVolumeStatus
mkV1PersistentVolumeStatus :: V1PersistentVolumeStatus
mkV1PersistentVolumeStatus =
  V1PersistentVolumeStatus :: Maybe Text -> Maybe Text -> Maybe Text -> V1PersistentVolumeStatus
V1PersistentVolumeStatus
  { v1PersistentVolumeStatusMessage :: Maybe Text
v1PersistentVolumeStatusMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1PersistentVolumeStatusPhase :: Maybe Text
v1PersistentVolumeStatusPhase = Maybe Text
forall a. Maybe a
Nothing
  , v1PersistentVolumeStatusReason :: Maybe Text
v1PersistentVolumeStatusReason = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1PhotonPersistentDiskVolumeSource
-- | V1PhotonPersistentDiskVolumeSource
-- Represents a Photon Controller persistent disk resource.
data V1PhotonPersistentDiskVolumeSource = V1PhotonPersistentDiskVolumeSource
  { V1PhotonPersistentDiskVolumeSource -> Maybe Text
v1PhotonPersistentDiskVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. Implicitly inferred to be \&quot;ext4\&quot; if unspecified.
  , V1PhotonPersistentDiskVolumeSource -> Text
v1PhotonPersistentDiskVolumeSourcePdId :: !(Text) -- ^ /Required/ "pdID" - ID that identifies Photon Controller persistent disk
  } deriving (Int -> V1PhotonPersistentDiskVolumeSource -> ShowS
[V1PhotonPersistentDiskVolumeSource] -> ShowS
V1PhotonPersistentDiskVolumeSource -> String
(Int -> V1PhotonPersistentDiskVolumeSource -> ShowS)
-> (V1PhotonPersistentDiskVolumeSource -> String)
-> ([V1PhotonPersistentDiskVolumeSource] -> ShowS)
-> Show V1PhotonPersistentDiskVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PhotonPersistentDiskVolumeSource] -> ShowS
$cshowList :: [V1PhotonPersistentDiskVolumeSource] -> ShowS
show :: V1PhotonPersistentDiskVolumeSource -> String
$cshow :: V1PhotonPersistentDiskVolumeSource -> String
showsPrec :: Int -> V1PhotonPersistentDiskVolumeSource -> ShowS
$cshowsPrec :: Int -> V1PhotonPersistentDiskVolumeSource -> ShowS
P.Show, V1PhotonPersistentDiskVolumeSource
-> V1PhotonPersistentDiskVolumeSource -> Bool
(V1PhotonPersistentDiskVolumeSource
 -> V1PhotonPersistentDiskVolumeSource -> Bool)
-> (V1PhotonPersistentDiskVolumeSource
    -> V1PhotonPersistentDiskVolumeSource -> Bool)
-> Eq V1PhotonPersistentDiskVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PhotonPersistentDiskVolumeSource
-> V1PhotonPersistentDiskVolumeSource -> Bool
$c/= :: V1PhotonPersistentDiskVolumeSource
-> V1PhotonPersistentDiskVolumeSource -> Bool
== :: V1PhotonPersistentDiskVolumeSource
-> V1PhotonPersistentDiskVolumeSource -> Bool
$c== :: V1PhotonPersistentDiskVolumeSource
-> V1PhotonPersistentDiskVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PhotonPersistentDiskVolumeSource
instance A.FromJSON V1PhotonPersistentDiskVolumeSource where
  parseJSON :: Value -> Parser V1PhotonPersistentDiskVolumeSource
parseJSON = String
-> (Object -> Parser V1PhotonPersistentDiskVolumeSource)
-> Value
-> Parser V1PhotonPersistentDiskVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PhotonPersistentDiskVolumeSource" ((Object -> Parser V1PhotonPersistentDiskVolumeSource)
 -> Value -> Parser V1PhotonPersistentDiskVolumeSource)
-> (Object -> Parser V1PhotonPersistentDiskVolumeSource)
-> Value
-> Parser V1PhotonPersistentDiskVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Text -> V1PhotonPersistentDiskVolumeSource
V1PhotonPersistentDiskVolumeSource
      (Maybe Text -> Text -> V1PhotonPersistentDiskVolumeSource)
-> Parser (Maybe Text)
-> Parser (Text -> V1PhotonPersistentDiskVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser (Text -> V1PhotonPersistentDiskVolumeSource)
-> Parser Text -> Parser V1PhotonPersistentDiskVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"pdID")

-- | ToJSON V1PhotonPersistentDiskVolumeSource
instance A.ToJSON V1PhotonPersistentDiskVolumeSource where
  toJSON :: V1PhotonPersistentDiskVolumeSource -> Value
toJSON V1PhotonPersistentDiskVolumeSource {Maybe Text
Text
v1PhotonPersistentDiskVolumeSourcePdId :: Text
v1PhotonPersistentDiskVolumeSourceFsType :: Maybe Text
v1PhotonPersistentDiskVolumeSourcePdId :: V1PhotonPersistentDiskVolumeSource -> Text
v1PhotonPersistentDiskVolumeSourceFsType :: V1PhotonPersistentDiskVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PhotonPersistentDiskVolumeSourceFsType
      , Text
"pdID" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1PhotonPersistentDiskVolumeSourcePdId
      ]


-- | Construct a value of type 'V1PhotonPersistentDiskVolumeSource' (by applying it's required fields, if any)
mkV1PhotonPersistentDiskVolumeSource
  :: Text -- ^ 'v1PhotonPersistentDiskVolumeSourcePdId': ID that identifies Photon Controller persistent disk
  -> V1PhotonPersistentDiskVolumeSource
mkV1PhotonPersistentDiskVolumeSource :: Text -> V1PhotonPersistentDiskVolumeSource
mkV1PhotonPersistentDiskVolumeSource Text
v1PhotonPersistentDiskVolumeSourcePdId =
  V1PhotonPersistentDiskVolumeSource :: Maybe Text -> Text -> V1PhotonPersistentDiskVolumeSource
V1PhotonPersistentDiskVolumeSource
  { v1PhotonPersistentDiskVolumeSourceFsType :: Maybe Text
v1PhotonPersistentDiskVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1PhotonPersistentDiskVolumeSourcePdId :: Text
v1PhotonPersistentDiskVolumeSourcePdId :: Text
v1PhotonPersistentDiskVolumeSourcePdId
  }

-- ** V1Pod
-- | V1Pod
-- Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.
data V1Pod = V1Pod
  { V1Pod -> Maybe Text
v1PodApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1Pod -> Maybe Text
v1PodKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1Pod -> Maybe V1ObjectMeta
v1PodMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1Pod -> Maybe V1PodSpec
v1PodSpec :: !(Maybe V1PodSpec) -- ^ "spec"
  , V1Pod -> Maybe V1PodStatus
v1PodStatus :: !(Maybe V1PodStatus) -- ^ "status"
  } deriving (Int -> V1Pod -> ShowS
[V1Pod] -> ShowS
V1Pod -> String
(Int -> V1Pod -> ShowS)
-> (V1Pod -> String) -> ([V1Pod] -> ShowS) -> Show V1Pod
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Pod] -> ShowS
$cshowList :: [V1Pod] -> ShowS
show :: V1Pod -> String
$cshow :: V1Pod -> String
showsPrec :: Int -> V1Pod -> ShowS
$cshowsPrec :: Int -> V1Pod -> ShowS
P.Show, V1Pod -> V1Pod -> Bool
(V1Pod -> V1Pod -> Bool) -> (V1Pod -> V1Pod -> Bool) -> Eq V1Pod
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Pod -> V1Pod -> Bool
$c/= :: V1Pod -> V1Pod -> Bool
== :: V1Pod -> V1Pod -> Bool
$c== :: V1Pod -> V1Pod -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Pod
instance A.FromJSON V1Pod where
  parseJSON :: Value -> Parser V1Pod
parseJSON = String -> (Object -> Parser V1Pod) -> Value -> Parser V1Pod
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Pod" ((Object -> Parser V1Pod) -> Value -> Parser V1Pod)
-> (Object -> Parser V1Pod) -> Value -> Parser V1Pod
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1PodSpec
-> Maybe V1PodStatus
-> V1Pod
V1Pod
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1PodSpec
 -> Maybe V1PodStatus
 -> V1Pod)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1PodSpec
      -> Maybe V1PodStatus
      -> V1Pod)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1PodSpec
   -> Maybe V1PodStatus
   -> V1Pod)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1PodSpec -> Maybe V1PodStatus -> V1Pod)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1PodSpec -> Maybe V1PodStatus -> V1Pod)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe V1PodSpec -> Maybe V1PodStatus -> V1Pod)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe V1PodSpec -> Maybe V1PodStatus -> V1Pod)
-> Parser (Maybe V1PodSpec) -> Parser (Maybe V1PodStatus -> V1Pod)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PodSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1PodStatus -> V1Pod)
-> Parser (Maybe V1PodStatus) -> Parser V1Pod
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PodStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1Pod
instance A.ToJSON V1Pod where
  toJSON :: V1Pod -> Value
toJSON V1Pod {Maybe Text
Maybe V1PodStatus
Maybe V1PodSpec
Maybe V1ObjectMeta
v1PodStatus :: Maybe V1PodStatus
v1PodSpec :: Maybe V1PodSpec
v1PodMetadata :: Maybe V1ObjectMeta
v1PodKind :: Maybe Text
v1PodApiVersion :: Maybe Text
v1PodStatus :: V1Pod -> Maybe V1PodStatus
v1PodSpec :: V1Pod -> Maybe V1PodSpec
v1PodMetadata :: V1Pod -> Maybe V1ObjectMeta
v1PodKind :: V1Pod -> Maybe Text
v1PodApiVersion :: V1Pod -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1PodMetadata
      , Text
"spec" Text -> Maybe V1PodSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PodSpec
v1PodSpec
      , Text
"status" Text -> Maybe V1PodStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PodStatus
v1PodStatus
      ]


-- | Construct a value of type 'V1Pod' (by applying it's required fields, if any)
mkV1Pod
  :: V1Pod
mkV1Pod :: V1Pod
mkV1Pod =
  V1Pod :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1PodSpec
-> Maybe V1PodStatus
-> V1Pod
V1Pod
  { v1PodApiVersion :: Maybe Text
v1PodApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1PodKind :: Maybe Text
v1PodKind = Maybe Text
forall a. Maybe a
Nothing
  , v1PodMetadata :: Maybe V1ObjectMeta
v1PodMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1PodSpec :: Maybe V1PodSpec
v1PodSpec = Maybe V1PodSpec
forall a. Maybe a
Nothing
  , v1PodStatus :: Maybe V1PodStatus
v1PodStatus = Maybe V1PodStatus
forall a. Maybe a
Nothing
  }

-- ** V1PodAffinity
-- | V1PodAffinity
-- Pod affinity is a group of inter pod affinity scheduling rules.
data V1PodAffinity = V1PodAffinity
  { V1PodAffinity -> Maybe [V1WeightedPodAffinityTerm]
v1PodAffinityPreferredDuringSchedulingIgnoredDuringExecution :: !(Maybe [V1WeightedPodAffinityTerm]) -- ^ "preferredDuringSchedulingIgnoredDuringExecution" - The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \&quot;weight\&quot; to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  , V1PodAffinity -> Maybe [V1PodAffinityTerm]
v1PodAffinityRequiredDuringSchedulingIgnoredDuringExecution :: !(Maybe [V1PodAffinityTerm]) -- ^ "requiredDuringSchedulingIgnoredDuringExecution" - If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  } deriving (Int -> V1PodAffinity -> ShowS
[V1PodAffinity] -> ShowS
V1PodAffinity -> String
(Int -> V1PodAffinity -> ShowS)
-> (V1PodAffinity -> String)
-> ([V1PodAffinity] -> ShowS)
-> Show V1PodAffinity
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PodAffinity] -> ShowS
$cshowList :: [V1PodAffinity] -> ShowS
show :: V1PodAffinity -> String
$cshow :: V1PodAffinity -> String
showsPrec :: Int -> V1PodAffinity -> ShowS
$cshowsPrec :: Int -> V1PodAffinity -> ShowS
P.Show, V1PodAffinity -> V1PodAffinity -> Bool
(V1PodAffinity -> V1PodAffinity -> Bool)
-> (V1PodAffinity -> V1PodAffinity -> Bool) -> Eq V1PodAffinity
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PodAffinity -> V1PodAffinity -> Bool
$c/= :: V1PodAffinity -> V1PodAffinity -> Bool
== :: V1PodAffinity -> V1PodAffinity -> Bool
$c== :: V1PodAffinity -> V1PodAffinity -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PodAffinity
instance A.FromJSON V1PodAffinity where
  parseJSON :: Value -> Parser V1PodAffinity
parseJSON = String
-> (Object -> Parser V1PodAffinity)
-> Value
-> Parser V1PodAffinity
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PodAffinity" ((Object -> Parser V1PodAffinity) -> Value -> Parser V1PodAffinity)
-> (Object -> Parser V1PodAffinity)
-> Value
-> Parser V1PodAffinity
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1WeightedPodAffinityTerm]
-> Maybe [V1PodAffinityTerm] -> V1PodAffinity
V1PodAffinity
      (Maybe [V1WeightedPodAffinityTerm]
 -> Maybe [V1PodAffinityTerm] -> V1PodAffinity)
-> Parser (Maybe [V1WeightedPodAffinityTerm])
-> Parser (Maybe [V1PodAffinityTerm] -> V1PodAffinity)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1WeightedPodAffinityTerm])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"preferredDuringSchedulingIgnoredDuringExecution")
      Parser (Maybe [V1PodAffinityTerm] -> V1PodAffinity)
-> Parser (Maybe [V1PodAffinityTerm]) -> Parser V1PodAffinity
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1PodAffinityTerm])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"requiredDuringSchedulingIgnoredDuringExecution")

-- | ToJSON V1PodAffinity
instance A.ToJSON V1PodAffinity where
  toJSON :: V1PodAffinity -> Value
toJSON V1PodAffinity {Maybe [V1WeightedPodAffinityTerm]
Maybe [V1PodAffinityTerm]
v1PodAffinityRequiredDuringSchedulingIgnoredDuringExecution :: Maybe [V1PodAffinityTerm]
v1PodAffinityPreferredDuringSchedulingIgnoredDuringExecution :: Maybe [V1WeightedPodAffinityTerm]
v1PodAffinityRequiredDuringSchedulingIgnoredDuringExecution :: V1PodAffinity -> Maybe [V1PodAffinityTerm]
v1PodAffinityPreferredDuringSchedulingIgnoredDuringExecution :: V1PodAffinity -> Maybe [V1WeightedPodAffinityTerm]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"preferredDuringSchedulingIgnoredDuringExecution" Text -> Maybe [V1WeightedPodAffinityTerm] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1WeightedPodAffinityTerm]
v1PodAffinityPreferredDuringSchedulingIgnoredDuringExecution
      , Text
"requiredDuringSchedulingIgnoredDuringExecution" Text -> Maybe [V1PodAffinityTerm] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1PodAffinityTerm]
v1PodAffinityRequiredDuringSchedulingIgnoredDuringExecution
      ]


-- | Construct a value of type 'V1PodAffinity' (by applying it's required fields, if any)
mkV1PodAffinity
  :: V1PodAffinity
mkV1PodAffinity :: V1PodAffinity
mkV1PodAffinity =
  V1PodAffinity :: Maybe [V1WeightedPodAffinityTerm]
-> Maybe [V1PodAffinityTerm] -> V1PodAffinity
V1PodAffinity
  { v1PodAffinityPreferredDuringSchedulingIgnoredDuringExecution :: Maybe [V1WeightedPodAffinityTerm]
v1PodAffinityPreferredDuringSchedulingIgnoredDuringExecution = Maybe [V1WeightedPodAffinityTerm]
forall a. Maybe a
Nothing
  , v1PodAffinityRequiredDuringSchedulingIgnoredDuringExecution :: Maybe [V1PodAffinityTerm]
v1PodAffinityRequiredDuringSchedulingIgnoredDuringExecution = Maybe [V1PodAffinityTerm]
forall a. Maybe a
Nothing
  }

-- ** V1PodAffinityTerm
-- | V1PodAffinityTerm
-- Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
data V1PodAffinityTerm = V1PodAffinityTerm
  { V1PodAffinityTerm -> Maybe V1LabelSelector
v1PodAffinityTermLabelSelector :: !(Maybe V1LabelSelector) -- ^ "labelSelector"
  , V1PodAffinityTerm -> Maybe [Text]
v1PodAffinityTermNamespaces :: !(Maybe [Text]) -- ^ "namespaces" - namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \&quot;this pod&#39;s namespace\&quot;
  , V1PodAffinityTerm -> Text
v1PodAffinityTermTopologyKey :: !(Text) -- ^ /Required/ "topologyKey" - This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  } deriving (Int -> V1PodAffinityTerm -> ShowS
[V1PodAffinityTerm] -> ShowS
V1PodAffinityTerm -> String
(Int -> V1PodAffinityTerm -> ShowS)
-> (V1PodAffinityTerm -> String)
-> ([V1PodAffinityTerm] -> ShowS)
-> Show V1PodAffinityTerm
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PodAffinityTerm] -> ShowS
$cshowList :: [V1PodAffinityTerm] -> ShowS
show :: V1PodAffinityTerm -> String
$cshow :: V1PodAffinityTerm -> String
showsPrec :: Int -> V1PodAffinityTerm -> ShowS
$cshowsPrec :: Int -> V1PodAffinityTerm -> ShowS
P.Show, V1PodAffinityTerm -> V1PodAffinityTerm -> Bool
(V1PodAffinityTerm -> V1PodAffinityTerm -> Bool)
-> (V1PodAffinityTerm -> V1PodAffinityTerm -> Bool)
-> Eq V1PodAffinityTerm
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PodAffinityTerm -> V1PodAffinityTerm -> Bool
$c/= :: V1PodAffinityTerm -> V1PodAffinityTerm -> Bool
== :: V1PodAffinityTerm -> V1PodAffinityTerm -> Bool
$c== :: V1PodAffinityTerm -> V1PodAffinityTerm -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PodAffinityTerm
instance A.FromJSON V1PodAffinityTerm where
  parseJSON :: Value -> Parser V1PodAffinityTerm
parseJSON = String
-> (Object -> Parser V1PodAffinityTerm)
-> Value
-> Parser V1PodAffinityTerm
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PodAffinityTerm" ((Object -> Parser V1PodAffinityTerm)
 -> Value -> Parser V1PodAffinityTerm)
-> (Object -> Parser V1PodAffinityTerm)
-> Value
-> Parser V1PodAffinityTerm
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1LabelSelector -> Maybe [Text] -> Text -> V1PodAffinityTerm
V1PodAffinityTerm
      (Maybe V1LabelSelector
 -> Maybe [Text] -> Text -> V1PodAffinityTerm)
-> Parser (Maybe V1LabelSelector)
-> Parser (Maybe [Text] -> Text -> V1PodAffinityTerm)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"labelSelector")
      Parser (Maybe [Text] -> Text -> V1PodAffinityTerm)
-> Parser (Maybe [Text]) -> Parser (Text -> V1PodAffinityTerm)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespaces")
      Parser (Text -> V1PodAffinityTerm)
-> Parser Text -> Parser V1PodAffinityTerm
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"topologyKey")

-- | ToJSON V1PodAffinityTerm
instance A.ToJSON V1PodAffinityTerm where
  toJSON :: V1PodAffinityTerm -> Value
toJSON V1PodAffinityTerm {Maybe [Text]
Maybe V1LabelSelector
Text
v1PodAffinityTermTopologyKey :: Text
v1PodAffinityTermNamespaces :: Maybe [Text]
v1PodAffinityTermLabelSelector :: Maybe V1LabelSelector
v1PodAffinityTermTopologyKey :: V1PodAffinityTerm -> Text
v1PodAffinityTermNamespaces :: V1PodAffinityTerm -> Maybe [Text]
v1PodAffinityTermLabelSelector :: V1PodAffinityTerm -> Maybe V1LabelSelector
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"labelSelector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1PodAffinityTermLabelSelector
      , Text
"namespaces" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1PodAffinityTermNamespaces
      , Text
"topologyKey" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1PodAffinityTermTopologyKey
      ]


-- | Construct a value of type 'V1PodAffinityTerm' (by applying it's required fields, if any)
mkV1PodAffinityTerm
  :: Text -- ^ 'v1PodAffinityTermTopologyKey': This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  -> V1PodAffinityTerm
mkV1PodAffinityTerm :: Text -> V1PodAffinityTerm
mkV1PodAffinityTerm Text
v1PodAffinityTermTopologyKey =
  V1PodAffinityTerm :: Maybe V1LabelSelector -> Maybe [Text] -> Text -> V1PodAffinityTerm
V1PodAffinityTerm
  { v1PodAffinityTermLabelSelector :: Maybe V1LabelSelector
v1PodAffinityTermLabelSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , v1PodAffinityTermNamespaces :: Maybe [Text]
v1PodAffinityTermNamespaces = Maybe [Text]
forall a. Maybe a
Nothing
  , Text
v1PodAffinityTermTopologyKey :: Text
v1PodAffinityTermTopologyKey :: Text
v1PodAffinityTermTopologyKey
  }

-- ** V1PodAntiAffinity
-- | V1PodAntiAffinity
-- Pod anti affinity is a group of inter pod anti affinity scheduling rules.
data V1PodAntiAffinity = V1PodAntiAffinity
  { V1PodAntiAffinity -> Maybe [V1WeightedPodAffinityTerm]
v1PodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution :: !(Maybe [V1WeightedPodAffinityTerm]) -- ^ "preferredDuringSchedulingIgnoredDuringExecution" - The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \&quot;weight\&quot; to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  , V1PodAntiAffinity -> Maybe [V1PodAffinityTerm]
v1PodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution :: !(Maybe [V1PodAffinityTerm]) -- ^ "requiredDuringSchedulingIgnoredDuringExecution" - If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  } deriving (Int -> V1PodAntiAffinity -> ShowS
[V1PodAntiAffinity] -> ShowS
V1PodAntiAffinity -> String
(Int -> V1PodAntiAffinity -> ShowS)
-> (V1PodAntiAffinity -> String)
-> ([V1PodAntiAffinity] -> ShowS)
-> Show V1PodAntiAffinity
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PodAntiAffinity] -> ShowS
$cshowList :: [V1PodAntiAffinity] -> ShowS
show :: V1PodAntiAffinity -> String
$cshow :: V1PodAntiAffinity -> String
showsPrec :: Int -> V1PodAntiAffinity -> ShowS
$cshowsPrec :: Int -> V1PodAntiAffinity -> ShowS
P.Show, V1PodAntiAffinity -> V1PodAntiAffinity -> Bool
(V1PodAntiAffinity -> V1PodAntiAffinity -> Bool)
-> (V1PodAntiAffinity -> V1PodAntiAffinity -> Bool)
-> Eq V1PodAntiAffinity
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PodAntiAffinity -> V1PodAntiAffinity -> Bool
$c/= :: V1PodAntiAffinity -> V1PodAntiAffinity -> Bool
== :: V1PodAntiAffinity -> V1PodAntiAffinity -> Bool
$c== :: V1PodAntiAffinity -> V1PodAntiAffinity -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PodAntiAffinity
instance A.FromJSON V1PodAntiAffinity where
  parseJSON :: Value -> Parser V1PodAntiAffinity
parseJSON = String
-> (Object -> Parser V1PodAntiAffinity)
-> Value
-> Parser V1PodAntiAffinity
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PodAntiAffinity" ((Object -> Parser V1PodAntiAffinity)
 -> Value -> Parser V1PodAntiAffinity)
-> (Object -> Parser V1PodAntiAffinity)
-> Value
-> Parser V1PodAntiAffinity
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1WeightedPodAffinityTerm]
-> Maybe [V1PodAffinityTerm] -> V1PodAntiAffinity
V1PodAntiAffinity
      (Maybe [V1WeightedPodAffinityTerm]
 -> Maybe [V1PodAffinityTerm] -> V1PodAntiAffinity)
-> Parser (Maybe [V1WeightedPodAffinityTerm])
-> Parser (Maybe [V1PodAffinityTerm] -> V1PodAntiAffinity)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1WeightedPodAffinityTerm])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"preferredDuringSchedulingIgnoredDuringExecution")
      Parser (Maybe [V1PodAffinityTerm] -> V1PodAntiAffinity)
-> Parser (Maybe [V1PodAffinityTerm]) -> Parser V1PodAntiAffinity
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1PodAffinityTerm])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"requiredDuringSchedulingIgnoredDuringExecution")

-- | ToJSON V1PodAntiAffinity
instance A.ToJSON V1PodAntiAffinity where
  toJSON :: V1PodAntiAffinity -> Value
toJSON V1PodAntiAffinity {Maybe [V1WeightedPodAffinityTerm]
Maybe [V1PodAffinityTerm]
v1PodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution :: Maybe [V1PodAffinityTerm]
v1PodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution :: Maybe [V1WeightedPodAffinityTerm]
v1PodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution :: V1PodAntiAffinity -> Maybe [V1PodAffinityTerm]
v1PodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution :: V1PodAntiAffinity -> Maybe [V1WeightedPodAffinityTerm]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"preferredDuringSchedulingIgnoredDuringExecution" Text -> Maybe [V1WeightedPodAffinityTerm] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1WeightedPodAffinityTerm]
v1PodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution
      , Text
"requiredDuringSchedulingIgnoredDuringExecution" Text -> Maybe [V1PodAffinityTerm] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1PodAffinityTerm]
v1PodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution
      ]


-- | Construct a value of type 'V1PodAntiAffinity' (by applying it's required fields, if any)
mkV1PodAntiAffinity
  :: V1PodAntiAffinity
mkV1PodAntiAffinity :: V1PodAntiAffinity
mkV1PodAntiAffinity =
  V1PodAntiAffinity :: Maybe [V1WeightedPodAffinityTerm]
-> Maybe [V1PodAffinityTerm] -> V1PodAntiAffinity
V1PodAntiAffinity
  { v1PodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution :: Maybe [V1WeightedPodAffinityTerm]
v1PodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution = Maybe [V1WeightedPodAffinityTerm]
forall a. Maybe a
Nothing
  , v1PodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution :: Maybe [V1PodAffinityTerm]
v1PodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution = Maybe [V1PodAffinityTerm]
forall a. Maybe a
Nothing
  }

-- ** V1PodCondition
-- | V1PodCondition
-- PodCondition contains details for the current condition of this pod.
data V1PodCondition = V1PodCondition
  { V1PodCondition -> Maybe DateTime
v1PodConditionLastProbeTime :: !(Maybe DateTime) -- ^ "lastProbeTime" - Last time we probed the condition.
  , V1PodCondition -> Maybe DateTime
v1PodConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.
  , V1PodCondition -> Maybe Text
v1PodConditionMessage :: !(Maybe Text) -- ^ "message" - Human-readable message indicating details about last transition.
  , V1PodCondition -> Maybe Text
v1PodConditionReason :: !(Maybe Text) -- ^ "reason" - Unique, one-word, CamelCase reason for the condition&#39;s last transition.
  , V1PodCondition -> Text
v1PodConditionStatus :: !(Text) -- ^ /Required/ "status" - Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
  , V1PodCondition -> Text
v1PodConditionType :: !(Text) -- ^ /Required/ "type" - Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
  } deriving (Int -> V1PodCondition -> ShowS
[V1PodCondition] -> ShowS
V1PodCondition -> String
(Int -> V1PodCondition -> ShowS)
-> (V1PodCondition -> String)
-> ([V1PodCondition] -> ShowS)
-> Show V1PodCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PodCondition] -> ShowS
$cshowList :: [V1PodCondition] -> ShowS
show :: V1PodCondition -> String
$cshow :: V1PodCondition -> String
showsPrec :: Int -> V1PodCondition -> ShowS
$cshowsPrec :: Int -> V1PodCondition -> ShowS
P.Show, V1PodCondition -> V1PodCondition -> Bool
(V1PodCondition -> V1PodCondition -> Bool)
-> (V1PodCondition -> V1PodCondition -> Bool) -> Eq V1PodCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PodCondition -> V1PodCondition -> Bool
$c/= :: V1PodCondition -> V1PodCondition -> Bool
== :: V1PodCondition -> V1PodCondition -> Bool
$c== :: V1PodCondition -> V1PodCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PodCondition
instance A.FromJSON V1PodCondition where
  parseJSON :: Value -> Parser V1PodCondition
parseJSON = String
-> (Object -> Parser V1PodCondition)
-> Value
-> Parser V1PodCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PodCondition" ((Object -> Parser V1PodCondition)
 -> Value -> Parser V1PodCondition)
-> (Object -> Parser V1PodCondition)
-> Value
-> Parser V1PodCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1PodCondition
V1PodCondition
      (Maybe DateTime
 -> Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1PodCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe DateTime
      -> Maybe Text -> Maybe Text -> Text -> Text -> V1PodCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastProbeTime")
      Parser
  (Maybe DateTime
   -> Maybe Text -> Maybe Text -> Text -> Text -> V1PodCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text -> Maybe Text -> Text -> Text -> V1PodCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser (Maybe Text -> Maybe Text -> Text -> Text -> V1PodCondition)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Text -> Text -> V1PodCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1PodCondition)
-> Parser (Maybe Text) -> Parser (Text -> Text -> V1PodCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1PodCondition)
-> Parser Text -> Parser (Text -> V1PodCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1PodCondition)
-> Parser Text -> Parser V1PodCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1PodCondition
instance A.ToJSON V1PodCondition where
  toJSON :: V1PodCondition -> Value
toJSON V1PodCondition {Maybe Text
Maybe DateTime
Text
v1PodConditionType :: Text
v1PodConditionStatus :: Text
v1PodConditionReason :: Maybe Text
v1PodConditionMessage :: Maybe Text
v1PodConditionLastTransitionTime :: Maybe DateTime
v1PodConditionLastProbeTime :: Maybe DateTime
v1PodConditionType :: V1PodCondition -> Text
v1PodConditionStatus :: V1PodCondition -> Text
v1PodConditionReason :: V1PodCondition -> Maybe Text
v1PodConditionMessage :: V1PodCondition -> Maybe Text
v1PodConditionLastTransitionTime :: V1PodCondition -> Maybe DateTime
v1PodConditionLastProbeTime :: V1PodCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastProbeTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1PodConditionLastProbeTime
      , Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1PodConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1PodConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1PodConditionType
      ]


-- | Construct a value of type 'V1PodCondition' (by applying it's required fields, if any)
mkV1PodCondition
  :: Text -- ^ 'v1PodConditionStatus': Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
  -> Text -- ^ 'v1PodConditionType': Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
  -> V1PodCondition
mkV1PodCondition :: Text -> Text -> V1PodCondition
mkV1PodCondition Text
v1PodConditionStatus Text
v1PodConditionType =
  V1PodCondition :: Maybe DateTime
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1PodCondition
V1PodCondition
  { v1PodConditionLastProbeTime :: Maybe DateTime
v1PodConditionLastProbeTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1PodConditionLastTransitionTime :: Maybe DateTime
v1PodConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1PodConditionMessage :: Maybe Text
v1PodConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1PodConditionReason :: Maybe Text
v1PodConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1PodConditionStatus :: Text
v1PodConditionStatus :: Text
v1PodConditionStatus
  , Text
v1PodConditionType :: Text
v1PodConditionType :: Text
v1PodConditionType
  }

-- ** V1PodDNSConfig
-- | V1PodDNSConfig
-- PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.
data V1PodDNSConfig = V1PodDNSConfig
  { V1PodDNSConfig -> Maybe [Text]
v1PodDNSConfigNameservers :: !(Maybe [Text]) -- ^ "nameservers" - A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.
  , V1PodDNSConfig -> Maybe [V1PodDNSConfigOption]
v1PodDNSConfigOptions :: !(Maybe [V1PodDNSConfigOption]) -- ^ "options" - A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.
  , V1PodDNSConfig -> Maybe [Text]
v1PodDNSConfigSearches :: !(Maybe [Text]) -- ^ "searches" - A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.
  } deriving (Int -> V1PodDNSConfig -> ShowS
[V1PodDNSConfig] -> ShowS
V1PodDNSConfig -> String
(Int -> V1PodDNSConfig -> ShowS)
-> (V1PodDNSConfig -> String)
-> ([V1PodDNSConfig] -> ShowS)
-> Show V1PodDNSConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PodDNSConfig] -> ShowS
$cshowList :: [V1PodDNSConfig] -> ShowS
show :: V1PodDNSConfig -> String
$cshow :: V1PodDNSConfig -> String
showsPrec :: Int -> V1PodDNSConfig -> ShowS
$cshowsPrec :: Int -> V1PodDNSConfig -> ShowS
P.Show, V1PodDNSConfig -> V1PodDNSConfig -> Bool
(V1PodDNSConfig -> V1PodDNSConfig -> Bool)
-> (V1PodDNSConfig -> V1PodDNSConfig -> Bool) -> Eq V1PodDNSConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PodDNSConfig -> V1PodDNSConfig -> Bool
$c/= :: V1PodDNSConfig -> V1PodDNSConfig -> Bool
== :: V1PodDNSConfig -> V1PodDNSConfig -> Bool
$c== :: V1PodDNSConfig -> V1PodDNSConfig -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PodDNSConfig
instance A.FromJSON V1PodDNSConfig where
  parseJSON :: Value -> Parser V1PodDNSConfig
parseJSON = String
-> (Object -> Parser V1PodDNSConfig)
-> Value
-> Parser V1PodDNSConfig
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PodDNSConfig" ((Object -> Parser V1PodDNSConfig)
 -> Value -> Parser V1PodDNSConfig)
-> (Object -> Parser V1PodDNSConfig)
-> Value
-> Parser V1PodDNSConfig
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Maybe [V1PodDNSConfigOption] -> Maybe [Text] -> V1PodDNSConfig
V1PodDNSConfig
      (Maybe [Text]
 -> Maybe [V1PodDNSConfigOption] -> Maybe [Text] -> V1PodDNSConfig)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [V1PodDNSConfigOption] -> Maybe [Text] -> V1PodDNSConfig)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nameservers")
      Parser
  (Maybe [V1PodDNSConfigOption] -> Maybe [Text] -> V1PodDNSConfig)
-> Parser (Maybe [V1PodDNSConfigOption])
-> Parser (Maybe [Text] -> V1PodDNSConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1PodDNSConfigOption])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"options")
      Parser (Maybe [Text] -> V1PodDNSConfig)
-> Parser (Maybe [Text]) -> Parser V1PodDNSConfig
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"searches")

-- | ToJSON V1PodDNSConfig
instance A.ToJSON V1PodDNSConfig where
  toJSON :: V1PodDNSConfig -> Value
toJSON V1PodDNSConfig {Maybe [Text]
Maybe [V1PodDNSConfigOption]
v1PodDNSConfigSearches :: Maybe [Text]
v1PodDNSConfigOptions :: Maybe [V1PodDNSConfigOption]
v1PodDNSConfigNameservers :: Maybe [Text]
v1PodDNSConfigSearches :: V1PodDNSConfig -> Maybe [Text]
v1PodDNSConfigOptions :: V1PodDNSConfig -> Maybe [V1PodDNSConfigOption]
v1PodDNSConfigNameservers :: V1PodDNSConfig -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"nameservers" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1PodDNSConfigNameservers
      , Text
"options" Text -> Maybe [V1PodDNSConfigOption] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1PodDNSConfigOption]
v1PodDNSConfigOptions
      , Text
"searches" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1PodDNSConfigSearches
      ]


-- | Construct a value of type 'V1PodDNSConfig' (by applying it's required fields, if any)
mkV1PodDNSConfig
  :: V1PodDNSConfig
mkV1PodDNSConfig :: V1PodDNSConfig
mkV1PodDNSConfig =
  V1PodDNSConfig :: Maybe [Text]
-> Maybe [V1PodDNSConfigOption] -> Maybe [Text] -> V1PodDNSConfig
V1PodDNSConfig
  { v1PodDNSConfigNameservers :: Maybe [Text]
v1PodDNSConfigNameservers = Maybe [Text]
forall a. Maybe a
Nothing
  , v1PodDNSConfigOptions :: Maybe [V1PodDNSConfigOption]
v1PodDNSConfigOptions = Maybe [V1PodDNSConfigOption]
forall a. Maybe a
Nothing
  , v1PodDNSConfigSearches :: Maybe [Text]
v1PodDNSConfigSearches = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1PodDNSConfigOption
-- | V1PodDNSConfigOption
-- PodDNSConfigOption defines DNS resolver options of a pod.
data V1PodDNSConfigOption = V1PodDNSConfigOption
  { V1PodDNSConfigOption -> Maybe Text
v1PodDNSConfigOptionName :: !(Maybe Text) -- ^ "name" - Required.
  , V1PodDNSConfigOption -> Maybe Text
v1PodDNSConfigOptionValue :: !(Maybe Text) -- ^ "value"
  } deriving (Int -> V1PodDNSConfigOption -> ShowS
[V1PodDNSConfigOption] -> ShowS
V1PodDNSConfigOption -> String
(Int -> V1PodDNSConfigOption -> ShowS)
-> (V1PodDNSConfigOption -> String)
-> ([V1PodDNSConfigOption] -> ShowS)
-> Show V1PodDNSConfigOption
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PodDNSConfigOption] -> ShowS
$cshowList :: [V1PodDNSConfigOption] -> ShowS
show :: V1PodDNSConfigOption -> String
$cshow :: V1PodDNSConfigOption -> String
showsPrec :: Int -> V1PodDNSConfigOption -> ShowS
$cshowsPrec :: Int -> V1PodDNSConfigOption -> ShowS
P.Show, V1PodDNSConfigOption -> V1PodDNSConfigOption -> Bool
(V1PodDNSConfigOption -> V1PodDNSConfigOption -> Bool)
-> (V1PodDNSConfigOption -> V1PodDNSConfigOption -> Bool)
-> Eq V1PodDNSConfigOption
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PodDNSConfigOption -> V1PodDNSConfigOption -> Bool
$c/= :: V1PodDNSConfigOption -> V1PodDNSConfigOption -> Bool
== :: V1PodDNSConfigOption -> V1PodDNSConfigOption -> Bool
$c== :: V1PodDNSConfigOption -> V1PodDNSConfigOption -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PodDNSConfigOption
instance A.FromJSON V1PodDNSConfigOption where
  parseJSON :: Value -> Parser V1PodDNSConfigOption
parseJSON = String
-> (Object -> Parser V1PodDNSConfigOption)
-> Value
-> Parser V1PodDNSConfigOption
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PodDNSConfigOption" ((Object -> Parser V1PodDNSConfigOption)
 -> Value -> Parser V1PodDNSConfigOption)
-> (Object -> Parser V1PodDNSConfigOption)
-> Value
-> Parser V1PodDNSConfigOption
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Text -> V1PodDNSConfigOption
V1PodDNSConfigOption
      (Maybe Text -> Maybe Text -> V1PodDNSConfigOption)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1PodDNSConfigOption)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser (Maybe Text -> V1PodDNSConfigOption)
-> Parser (Maybe Text) -> Parser V1PodDNSConfigOption
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"value")

-- | ToJSON V1PodDNSConfigOption
instance A.ToJSON V1PodDNSConfigOption where
  toJSON :: V1PodDNSConfigOption -> Value
toJSON V1PodDNSConfigOption {Maybe Text
v1PodDNSConfigOptionValue :: Maybe Text
v1PodDNSConfigOptionName :: Maybe Text
v1PodDNSConfigOptionValue :: V1PodDNSConfigOption -> Maybe Text
v1PodDNSConfigOptionName :: V1PodDNSConfigOption -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodDNSConfigOptionName
      , Text
"value" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodDNSConfigOptionValue
      ]


-- | Construct a value of type 'V1PodDNSConfigOption' (by applying it's required fields, if any)
mkV1PodDNSConfigOption
  :: V1PodDNSConfigOption
mkV1PodDNSConfigOption :: V1PodDNSConfigOption
mkV1PodDNSConfigOption =
  V1PodDNSConfigOption :: Maybe Text -> Maybe Text -> V1PodDNSConfigOption
V1PodDNSConfigOption
  { v1PodDNSConfigOptionName :: Maybe Text
v1PodDNSConfigOptionName = Maybe Text
forall a. Maybe a
Nothing
  , v1PodDNSConfigOptionValue :: Maybe Text
v1PodDNSConfigOptionValue = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1PodIP
-- | V1PodIP
-- IP address information for entries in the (plural) PodIPs field. Each entry includes:    IP: An IP address allocated to the pod. Routable at least within the cluster.
data V1PodIP = V1PodIP
  { V1PodIP -> Maybe Text
v1PodIPIp :: !(Maybe Text) -- ^ "ip" - ip is an IP address (IPv4 or IPv6) assigned to the pod
  } deriving (Int -> V1PodIP -> ShowS
[V1PodIP] -> ShowS
V1PodIP -> String
(Int -> V1PodIP -> ShowS)
-> (V1PodIP -> String) -> ([V1PodIP] -> ShowS) -> Show V1PodIP
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PodIP] -> ShowS
$cshowList :: [V1PodIP] -> ShowS
show :: V1PodIP -> String
$cshow :: V1PodIP -> String
showsPrec :: Int -> V1PodIP -> ShowS
$cshowsPrec :: Int -> V1PodIP -> ShowS
P.Show, V1PodIP -> V1PodIP -> Bool
(V1PodIP -> V1PodIP -> Bool)
-> (V1PodIP -> V1PodIP -> Bool) -> Eq V1PodIP
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PodIP -> V1PodIP -> Bool
$c/= :: V1PodIP -> V1PodIP -> Bool
== :: V1PodIP -> V1PodIP -> Bool
$c== :: V1PodIP -> V1PodIP -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PodIP
instance A.FromJSON V1PodIP where
  parseJSON :: Value -> Parser V1PodIP
parseJSON = String -> (Object -> Parser V1PodIP) -> Value -> Parser V1PodIP
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PodIP" ((Object -> Parser V1PodIP) -> Value -> Parser V1PodIP)
-> (Object -> Parser V1PodIP) -> Value -> Parser V1PodIP
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> V1PodIP
V1PodIP
      (Maybe Text -> V1PodIP) -> Parser (Maybe Text) -> Parser V1PodIP
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ip")

-- | ToJSON V1PodIP
instance A.ToJSON V1PodIP where
  toJSON :: V1PodIP -> Value
toJSON V1PodIP {Maybe Text
v1PodIPIp :: Maybe Text
v1PodIPIp :: V1PodIP -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"ip" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodIPIp
      ]


-- | Construct a value of type 'V1PodIP' (by applying it's required fields, if any)
mkV1PodIP
  :: V1PodIP
mkV1PodIP :: V1PodIP
mkV1PodIP =
  V1PodIP :: Maybe Text -> V1PodIP
V1PodIP
  { v1PodIPIp :: Maybe Text
v1PodIPIp = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1PodList
-- | V1PodList
-- PodList is a list of Pods.
data V1PodList = V1PodList
  { V1PodList -> Maybe Text
v1PodListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1PodList -> [V1Pod]
v1PodListItems :: !([V1Pod]) -- ^ /Required/ "items" - List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md
  , V1PodList -> Maybe Text
v1PodListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1PodList -> Maybe V1ListMeta
v1PodListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1PodList -> ShowS
[V1PodList] -> ShowS
V1PodList -> String
(Int -> V1PodList -> ShowS)
-> (V1PodList -> String)
-> ([V1PodList] -> ShowS)
-> Show V1PodList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PodList] -> ShowS
$cshowList :: [V1PodList] -> ShowS
show :: V1PodList -> String
$cshow :: V1PodList -> String
showsPrec :: Int -> V1PodList -> ShowS
$cshowsPrec :: Int -> V1PodList -> ShowS
P.Show, V1PodList -> V1PodList -> Bool
(V1PodList -> V1PodList -> Bool)
-> (V1PodList -> V1PodList -> Bool) -> Eq V1PodList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PodList -> V1PodList -> Bool
$c/= :: V1PodList -> V1PodList -> Bool
== :: V1PodList -> V1PodList -> Bool
$c== :: V1PodList -> V1PodList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PodList
instance A.FromJSON V1PodList where
  parseJSON :: Value -> Parser V1PodList
parseJSON = String -> (Object -> Parser V1PodList) -> Value -> Parser V1PodList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PodList" ((Object -> Parser V1PodList) -> Value -> Parser V1PodList)
-> (Object -> Parser V1PodList) -> Value -> Parser V1PodList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1Pod] -> Maybe Text -> Maybe V1ListMeta -> V1PodList
V1PodList
      (Maybe Text
 -> [V1Pod] -> Maybe Text -> Maybe V1ListMeta -> V1PodList)
-> Parser (Maybe Text)
-> Parser ([V1Pod] -> Maybe Text -> Maybe V1ListMeta -> V1PodList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser ([V1Pod] -> Maybe Text -> Maybe V1ListMeta -> V1PodList)
-> Parser [V1Pod]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1PodList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1Pod]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1PodList)
-> Parser (Maybe Text) -> Parser (Maybe V1ListMeta -> V1PodList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1PodList)
-> Parser (Maybe V1ListMeta) -> Parser V1PodList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1PodList
instance A.ToJSON V1PodList where
  toJSON :: V1PodList -> Value
toJSON V1PodList {[V1Pod]
Maybe Text
Maybe V1ListMeta
v1PodListMetadata :: Maybe V1ListMeta
v1PodListKind :: Maybe Text
v1PodListItems :: [V1Pod]
v1PodListApiVersion :: Maybe Text
v1PodListMetadata :: V1PodList -> Maybe V1ListMeta
v1PodListKind :: V1PodList -> Maybe Text
v1PodListItems :: V1PodList -> [V1Pod]
v1PodListApiVersion :: V1PodList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodListApiVersion
      , Text
"items" Text -> [V1Pod] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1Pod]
v1PodListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1PodListMetadata
      ]


-- | Construct a value of type 'V1PodList' (by applying it's required fields, if any)
mkV1PodList
  :: [V1Pod] -- ^ 'v1PodListItems': List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md
  -> V1PodList
mkV1PodList :: [V1Pod] -> V1PodList
mkV1PodList [V1Pod]
v1PodListItems =
  V1PodList :: Maybe Text
-> [V1Pod] -> Maybe Text -> Maybe V1ListMeta -> V1PodList
V1PodList
  { v1PodListApiVersion :: Maybe Text
v1PodListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1Pod]
v1PodListItems :: [V1Pod]
v1PodListItems :: [V1Pod]
v1PodListItems
  , v1PodListKind :: Maybe Text
v1PodListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1PodListMetadata :: Maybe V1ListMeta
v1PodListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1PodReadinessGate
-- | V1PodReadinessGate
-- PodReadinessGate contains the reference to a pod condition
data V1PodReadinessGate = V1PodReadinessGate
  { V1PodReadinessGate -> Text
v1PodReadinessGateConditionType :: !(Text) -- ^ /Required/ "conditionType" - ConditionType refers to a condition in the pod&#39;s condition list with matching type.
  } deriving (Int -> V1PodReadinessGate -> ShowS
[V1PodReadinessGate] -> ShowS
V1PodReadinessGate -> String
(Int -> V1PodReadinessGate -> ShowS)
-> (V1PodReadinessGate -> String)
-> ([V1PodReadinessGate] -> ShowS)
-> Show V1PodReadinessGate
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PodReadinessGate] -> ShowS
$cshowList :: [V1PodReadinessGate] -> ShowS
show :: V1PodReadinessGate -> String
$cshow :: V1PodReadinessGate -> String
showsPrec :: Int -> V1PodReadinessGate -> ShowS
$cshowsPrec :: Int -> V1PodReadinessGate -> ShowS
P.Show, V1PodReadinessGate -> V1PodReadinessGate -> Bool
(V1PodReadinessGate -> V1PodReadinessGate -> Bool)
-> (V1PodReadinessGate -> V1PodReadinessGate -> Bool)
-> Eq V1PodReadinessGate
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PodReadinessGate -> V1PodReadinessGate -> Bool
$c/= :: V1PodReadinessGate -> V1PodReadinessGate -> Bool
== :: V1PodReadinessGate -> V1PodReadinessGate -> Bool
$c== :: V1PodReadinessGate -> V1PodReadinessGate -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PodReadinessGate
instance A.FromJSON V1PodReadinessGate where
  parseJSON :: Value -> Parser V1PodReadinessGate
parseJSON = String
-> (Object -> Parser V1PodReadinessGate)
-> Value
-> Parser V1PodReadinessGate
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PodReadinessGate" ((Object -> Parser V1PodReadinessGate)
 -> Value -> Parser V1PodReadinessGate)
-> (Object -> Parser V1PodReadinessGate)
-> Value
-> Parser V1PodReadinessGate
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> V1PodReadinessGate
V1PodReadinessGate
      (Text -> V1PodReadinessGate)
-> Parser Text -> Parser V1PodReadinessGate
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"conditionType")

-- | ToJSON V1PodReadinessGate
instance A.ToJSON V1PodReadinessGate where
  toJSON :: V1PodReadinessGate -> Value
toJSON V1PodReadinessGate {Text
v1PodReadinessGateConditionType :: Text
v1PodReadinessGateConditionType :: V1PodReadinessGate -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"conditionType" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1PodReadinessGateConditionType
      ]


-- | Construct a value of type 'V1PodReadinessGate' (by applying it's required fields, if any)
mkV1PodReadinessGate
  :: Text -- ^ 'v1PodReadinessGateConditionType': ConditionType refers to a condition in the pod's condition list with matching type.
  -> V1PodReadinessGate
mkV1PodReadinessGate :: Text -> V1PodReadinessGate
mkV1PodReadinessGate Text
v1PodReadinessGateConditionType =
  V1PodReadinessGate :: Text -> V1PodReadinessGate
V1PodReadinessGate
  { Text
v1PodReadinessGateConditionType :: Text
v1PodReadinessGateConditionType :: Text
v1PodReadinessGateConditionType
  }

-- ** V1PodSecurityContext
-- | V1PodSecurityContext
-- PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext.  Field values of container.securityContext take precedence over field values of PodSecurityContext.
data V1PodSecurityContext = V1PodSecurityContext
  { V1PodSecurityContext -> Maybe Integer
v1PodSecurityContextFsGroup :: !(Maybe Integer) -- ^ "fsGroup" - A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:  1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR&#39;d with rw-rw----  If unset, the Kubelet will not modify the ownership and permissions of any volume.
  , V1PodSecurityContext -> Maybe Integer
v1PodSecurityContextRunAsGroup :: !(Maybe Integer) -- ^ "runAsGroup" - The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.
  , V1PodSecurityContext -> Maybe Bool
v1PodSecurityContextRunAsNonRoot :: !(Maybe Bool) -- ^ "runAsNonRoot" - Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
  , V1PodSecurityContext -> Maybe Integer
v1PodSecurityContextRunAsUser :: !(Maybe Integer) -- ^ "runAsUser" - The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.
  , V1PodSecurityContext -> Maybe V1SELinuxOptions
v1PodSecurityContextSeLinuxOptions :: !(Maybe V1SELinuxOptions) -- ^ "seLinuxOptions"
  , V1PodSecurityContext -> Maybe [Integer]
v1PodSecurityContextSupplementalGroups :: !(Maybe [Integer]) -- ^ "supplementalGroups" - A list of groups applied to the first process run in each container, in addition to the container&#39;s primary GID.  If unspecified, no groups will be added to any container.
  , V1PodSecurityContext -> Maybe [V1Sysctl]
v1PodSecurityContextSysctls :: !(Maybe [V1Sysctl]) -- ^ "sysctls" - Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.
  , V1PodSecurityContext -> Maybe V1WindowsSecurityContextOptions
v1PodSecurityContextWindowsOptions :: !(Maybe V1WindowsSecurityContextOptions) -- ^ "windowsOptions"
  } deriving (Int -> V1PodSecurityContext -> ShowS
[V1PodSecurityContext] -> ShowS
V1PodSecurityContext -> String
(Int -> V1PodSecurityContext -> ShowS)
-> (V1PodSecurityContext -> String)
-> ([V1PodSecurityContext] -> ShowS)
-> Show V1PodSecurityContext
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PodSecurityContext] -> ShowS
$cshowList :: [V1PodSecurityContext] -> ShowS
show :: V1PodSecurityContext -> String
$cshow :: V1PodSecurityContext -> String
showsPrec :: Int -> V1PodSecurityContext -> ShowS
$cshowsPrec :: Int -> V1PodSecurityContext -> ShowS
P.Show, V1PodSecurityContext -> V1PodSecurityContext -> Bool
(V1PodSecurityContext -> V1PodSecurityContext -> Bool)
-> (V1PodSecurityContext -> V1PodSecurityContext -> Bool)
-> Eq V1PodSecurityContext
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PodSecurityContext -> V1PodSecurityContext -> Bool
$c/= :: V1PodSecurityContext -> V1PodSecurityContext -> Bool
== :: V1PodSecurityContext -> V1PodSecurityContext -> Bool
$c== :: V1PodSecurityContext -> V1PodSecurityContext -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PodSecurityContext
instance A.FromJSON V1PodSecurityContext where
  parseJSON :: Value -> Parser V1PodSecurityContext
parseJSON = String
-> (Object -> Parser V1PodSecurityContext)
-> Value
-> Parser V1PodSecurityContext
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PodSecurityContext" ((Object -> Parser V1PodSecurityContext)
 -> Value -> Parser V1PodSecurityContext)
-> (Object -> Parser V1PodSecurityContext)
-> Value
-> Parser V1PodSecurityContext
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Integer
-> Maybe Integer
-> Maybe Bool
-> Maybe Integer
-> Maybe V1SELinuxOptions
-> Maybe [Integer]
-> Maybe [V1Sysctl]
-> Maybe V1WindowsSecurityContextOptions
-> V1PodSecurityContext
V1PodSecurityContext
      (Maybe Integer
 -> Maybe Integer
 -> Maybe Bool
 -> Maybe Integer
 -> Maybe V1SELinuxOptions
 -> Maybe [Integer]
 -> Maybe [V1Sysctl]
 -> Maybe V1WindowsSecurityContextOptions
 -> V1PodSecurityContext)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Integer
      -> Maybe Bool
      -> Maybe Integer
      -> Maybe V1SELinuxOptions
      -> Maybe [Integer]
      -> Maybe [V1Sysctl]
      -> Maybe V1WindowsSecurityContextOptions
      -> V1PodSecurityContext)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsGroup")
      Parser
  (Maybe Integer
   -> Maybe Bool
   -> Maybe Integer
   -> Maybe V1SELinuxOptions
   -> Maybe [Integer]
   -> Maybe [V1Sysctl]
   -> Maybe V1WindowsSecurityContextOptions
   -> V1PodSecurityContext)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Bool
      -> Maybe Integer
      -> Maybe V1SELinuxOptions
      -> Maybe [Integer]
      -> Maybe [V1Sysctl]
      -> Maybe V1WindowsSecurityContextOptions
      -> V1PodSecurityContext)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"runAsGroup")
      Parser
  (Maybe Bool
   -> Maybe Integer
   -> Maybe V1SELinuxOptions
   -> Maybe [Integer]
   -> Maybe [V1Sysctl]
   -> Maybe V1WindowsSecurityContextOptions
   -> V1PodSecurityContext)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Integer
      -> Maybe V1SELinuxOptions
      -> Maybe [Integer]
      -> Maybe [V1Sysctl]
      -> Maybe V1WindowsSecurityContextOptions
      -> V1PodSecurityContext)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"runAsNonRoot")
      Parser
  (Maybe Integer
   -> Maybe V1SELinuxOptions
   -> Maybe [Integer]
   -> Maybe [V1Sysctl]
   -> Maybe V1WindowsSecurityContextOptions
   -> V1PodSecurityContext)
-> Parser (Maybe Integer)
-> Parser
     (Maybe V1SELinuxOptions
      -> Maybe [Integer]
      -> Maybe [V1Sysctl]
      -> Maybe V1WindowsSecurityContextOptions
      -> V1PodSecurityContext)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"runAsUser")
      Parser
  (Maybe V1SELinuxOptions
   -> Maybe [Integer]
   -> Maybe [V1Sysctl]
   -> Maybe V1WindowsSecurityContextOptions
   -> V1PodSecurityContext)
-> Parser (Maybe V1SELinuxOptions)
-> Parser
     (Maybe [Integer]
      -> Maybe [V1Sysctl]
      -> Maybe V1WindowsSecurityContextOptions
      -> V1PodSecurityContext)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SELinuxOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"seLinuxOptions")
      Parser
  (Maybe [Integer]
   -> Maybe [V1Sysctl]
   -> Maybe V1WindowsSecurityContextOptions
   -> V1PodSecurityContext)
-> Parser (Maybe [Integer])
-> Parser
     (Maybe [V1Sysctl]
      -> Maybe V1WindowsSecurityContextOptions -> V1PodSecurityContext)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Integer])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"supplementalGroups")
      Parser
  (Maybe [V1Sysctl]
   -> Maybe V1WindowsSecurityContextOptions -> V1PodSecurityContext)
-> Parser (Maybe [V1Sysctl])
-> Parser
     (Maybe V1WindowsSecurityContextOptions -> V1PodSecurityContext)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1Sysctl])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"sysctls")
      Parser
  (Maybe V1WindowsSecurityContextOptions -> V1PodSecurityContext)
-> Parser (Maybe V1WindowsSecurityContextOptions)
-> Parser V1PodSecurityContext
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1WindowsSecurityContextOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"windowsOptions")

-- | ToJSON V1PodSecurityContext
instance A.ToJSON V1PodSecurityContext where
  toJSON :: V1PodSecurityContext -> Value
toJSON V1PodSecurityContext {Maybe Bool
Maybe Integer
Maybe [Integer]
Maybe [V1Sysctl]
Maybe V1WindowsSecurityContextOptions
Maybe V1SELinuxOptions
v1PodSecurityContextWindowsOptions :: Maybe V1WindowsSecurityContextOptions
v1PodSecurityContextSysctls :: Maybe [V1Sysctl]
v1PodSecurityContextSupplementalGroups :: Maybe [Integer]
v1PodSecurityContextSeLinuxOptions :: Maybe V1SELinuxOptions
v1PodSecurityContextRunAsUser :: Maybe Integer
v1PodSecurityContextRunAsNonRoot :: Maybe Bool
v1PodSecurityContextRunAsGroup :: Maybe Integer
v1PodSecurityContextFsGroup :: Maybe Integer
v1PodSecurityContextWindowsOptions :: V1PodSecurityContext -> Maybe V1WindowsSecurityContextOptions
v1PodSecurityContextSysctls :: V1PodSecurityContext -> Maybe [V1Sysctl]
v1PodSecurityContextSupplementalGroups :: V1PodSecurityContext -> Maybe [Integer]
v1PodSecurityContextSeLinuxOptions :: V1PodSecurityContext -> Maybe V1SELinuxOptions
v1PodSecurityContextRunAsUser :: V1PodSecurityContext -> Maybe Integer
v1PodSecurityContextRunAsNonRoot :: V1PodSecurityContext -> Maybe Bool
v1PodSecurityContextRunAsGroup :: V1PodSecurityContext -> Maybe Integer
v1PodSecurityContextFsGroup :: V1PodSecurityContext -> Maybe Integer
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fsGroup" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1PodSecurityContextFsGroup
      , Text
"runAsGroup" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1PodSecurityContextRunAsGroup
      , Text
"runAsNonRoot" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1PodSecurityContextRunAsNonRoot
      , Text
"runAsUser" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1PodSecurityContextRunAsUser
      , Text
"seLinuxOptions" Text -> Maybe V1SELinuxOptions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SELinuxOptions
v1PodSecurityContextSeLinuxOptions
      , Text
"supplementalGroups" Text -> Maybe [Integer] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Integer]
v1PodSecurityContextSupplementalGroups
      , Text
"sysctls" Text -> Maybe [V1Sysctl] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1Sysctl]
v1PodSecurityContextSysctls
      , Text
"windowsOptions" Text -> Maybe V1WindowsSecurityContextOptions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1WindowsSecurityContextOptions
v1PodSecurityContextWindowsOptions
      ]


-- | Construct a value of type 'V1PodSecurityContext' (by applying it's required fields, if any)
mkV1PodSecurityContext
  :: V1PodSecurityContext
mkV1PodSecurityContext :: V1PodSecurityContext
mkV1PodSecurityContext =
  V1PodSecurityContext :: Maybe Integer
-> Maybe Integer
-> Maybe Bool
-> Maybe Integer
-> Maybe V1SELinuxOptions
-> Maybe [Integer]
-> Maybe [V1Sysctl]
-> Maybe V1WindowsSecurityContextOptions
-> V1PodSecurityContext
V1PodSecurityContext
  { v1PodSecurityContextFsGroup :: Maybe Integer
v1PodSecurityContextFsGroup = Maybe Integer
forall a. Maybe a
Nothing
  , v1PodSecurityContextRunAsGroup :: Maybe Integer
v1PodSecurityContextRunAsGroup = Maybe Integer
forall a. Maybe a
Nothing
  , v1PodSecurityContextRunAsNonRoot :: Maybe Bool
v1PodSecurityContextRunAsNonRoot = Maybe Bool
forall a. Maybe a
Nothing
  , v1PodSecurityContextRunAsUser :: Maybe Integer
v1PodSecurityContextRunAsUser = Maybe Integer
forall a. Maybe a
Nothing
  , v1PodSecurityContextSeLinuxOptions :: Maybe V1SELinuxOptions
v1PodSecurityContextSeLinuxOptions = Maybe V1SELinuxOptions
forall a. Maybe a
Nothing
  , v1PodSecurityContextSupplementalGroups :: Maybe [Integer]
v1PodSecurityContextSupplementalGroups = Maybe [Integer]
forall a. Maybe a
Nothing
  , v1PodSecurityContextSysctls :: Maybe [V1Sysctl]
v1PodSecurityContextSysctls = Maybe [V1Sysctl]
forall a. Maybe a
Nothing
  , v1PodSecurityContextWindowsOptions :: Maybe V1WindowsSecurityContextOptions
v1PodSecurityContextWindowsOptions = Maybe V1WindowsSecurityContextOptions
forall a. Maybe a
Nothing
  }

-- ** V1PodSpec
-- | V1PodSpec
-- PodSpec is a description of a pod.
data V1PodSpec = V1PodSpec
  { V1PodSpec -> Maybe Integer
v1PodSpecActiveDeadlineSeconds :: !(Maybe Integer) -- ^ "activeDeadlineSeconds" - Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.
  , V1PodSpec -> Maybe V1Affinity
v1PodSpecAffinity :: !(Maybe V1Affinity) -- ^ "affinity"
  , V1PodSpec -> Maybe Bool
v1PodSpecAutomountServiceAccountToken :: !(Maybe Bool) -- ^ "automountServiceAccountToken" - AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.
  , V1PodSpec -> [V1Container]
v1PodSpecContainers :: !([V1Container]) -- ^ /Required/ "containers" - List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.
  , V1PodSpec -> Maybe V1PodDNSConfig
v1PodSpecDnsConfig :: !(Maybe V1PodDNSConfig) -- ^ "dnsConfig"
  , V1PodSpec -> Maybe Text
v1PodSpecDnsPolicy :: !(Maybe Text) -- ^ "dnsPolicy" - Set DNS policy for the pod. Defaults to \&quot;ClusterFirst\&quot;. Valid values are &#39;ClusterFirstWithHostNet&#39;, &#39;ClusterFirst&#39;, &#39;Default&#39; or &#39;None&#39;. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to &#39;ClusterFirstWithHostNet&#39;.
  , V1PodSpec -> Maybe Bool
v1PodSpecEnableServiceLinks :: !(Maybe Bool) -- ^ "enableServiceLinks" - EnableServiceLinks indicates whether information about services should be injected into pod&#39;s environment variables, matching the syntax of Docker links. Optional: Defaults to true.
  , V1PodSpec -> Maybe [V1EphemeralContainer]
v1PodSpecEphemeralContainers :: !(Maybe [V1EphemeralContainer]) -- ^ "ephemeralContainers" - List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod&#39;s ephemeralcontainers subresource. This field is alpha-level and is only honored by servers that enable the EphemeralContainers feature.
  , V1PodSpec -> Maybe [V1HostAlias]
v1PodSpecHostAliases :: !(Maybe [V1HostAlias]) -- ^ "hostAliases" - HostAliases is an optional list of hosts and IPs that will be injected into the pod&#39;s hosts file if specified. This is only valid for non-hostNetwork pods.
  , V1PodSpec -> Maybe Bool
v1PodSpecHostIpc :: !(Maybe Bool) -- ^ "hostIPC" - Use the host&#39;s ipc namespace. Optional: Default to false.
  , V1PodSpec -> Maybe Bool
v1PodSpecHostNetwork :: !(Maybe Bool) -- ^ "hostNetwork" - Host networking requested for this pod. Use the host&#39;s network namespace. If this option is set, the ports that will be used must be specified. Default to false.
  , V1PodSpec -> Maybe Bool
v1PodSpecHostPid :: !(Maybe Bool) -- ^ "hostPID" - Use the host&#39;s pid namespace. Optional: Default to false.
  , V1PodSpec -> Maybe Text
v1PodSpecHostname :: !(Maybe Text) -- ^ "hostname" - Specifies the hostname of the Pod If not specified, the pod&#39;s hostname will be set to a system-defined value.
  , V1PodSpec -> Maybe [V1LocalObjectReference]
v1PodSpecImagePullSecrets :: !(Maybe [V1LocalObjectReference]) -- ^ "imagePullSecrets" - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
  , V1PodSpec -> Maybe [V1Container]
v1PodSpecInitContainers :: !(Maybe [V1Container]) -- ^ "initContainers" - List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
  , V1PodSpec -> Maybe Text
v1PodSpecNodeName :: !(Maybe Text) -- ^ "nodeName" - NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.
  , V1PodSpec -> Maybe (Map String Text)
v1PodSpecNodeSelector :: !(Maybe (Map.Map String Text)) -- ^ "nodeSelector" - NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node&#39;s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
  , V1PodSpec -> Maybe (Map String Quantity)
v1PodSpecOverhead :: !(Maybe (Map.Map String Quantity)) -- ^ "overhead" - Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.16, and is only honored by servers that enable the PodOverhead feature.
  , V1PodSpec -> Maybe Text
v1PodSpecPreemptionPolicy :: !(Maybe Text) -- ^ "preemptionPolicy" - PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.
  , V1PodSpec -> Maybe Int
v1PodSpecPriority :: !(Maybe Int) -- ^ "priority" - The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.
  , V1PodSpec -> Maybe Text
v1PodSpecPriorityClassName :: !(Maybe Text) -- ^ "priorityClassName" - If specified, indicates the pod&#39;s priority. \&quot;system-node-critical\&quot; and \&quot;system-cluster-critical\&quot; are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.
  , V1PodSpec -> Maybe [V1PodReadinessGate]
v1PodSpecReadinessGates :: !(Maybe [V1PodReadinessGate]) -- ^ "readinessGates" - If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \&quot;True\&quot; More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md
  , V1PodSpec -> Maybe Text
v1PodSpecRestartPolicy :: !(Maybe Text) -- ^ "restartPolicy" - Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
  , V1PodSpec -> Maybe Text
v1PodSpecRuntimeClassName :: !(Maybe Text) -- ^ "runtimeClassName" - RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \&quot;legacy\&quot; RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md This is a beta feature as of Kubernetes v1.14.
  , V1PodSpec -> Maybe Text
v1PodSpecSchedulerName :: !(Maybe Text) -- ^ "schedulerName" - If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.
  , V1PodSpec -> Maybe V1PodSecurityContext
v1PodSpecSecurityContext :: !(Maybe V1PodSecurityContext) -- ^ "securityContext"
  , V1PodSpec -> Maybe Text
v1PodSpecServiceAccount :: !(Maybe Text) -- ^ "serviceAccount" - DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.
  , V1PodSpec -> Maybe Text
v1PodSpecServiceAccountName :: !(Maybe Text) -- ^ "serviceAccountName" - ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  , V1PodSpec -> Maybe Bool
v1PodSpecShareProcessNamespace :: !(Maybe Bool) -- ^ "shareProcessNamespace" - Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false. This field is beta-level and may be disabled with the PodShareProcessNamespace feature.
  , V1PodSpec -> Maybe Text
v1PodSpecSubdomain :: !(Maybe Text) -- ^ "subdomain" - If specified, the fully qualified Pod hostname will be \&quot;&lt;hostname&gt;.&lt;subdomain&gt;.&lt;pod namespace&gt;.svc.&lt;cluster domain&gt;\&quot;. If not specified, the pod will not have a domainname at all.
  , V1PodSpec -> Maybe Integer
v1PodSpecTerminationGracePeriodSeconds :: !(Maybe Integer) -- ^ "terminationGracePeriodSeconds" - Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.
  , V1PodSpec -> Maybe [V1Toleration]
v1PodSpecTolerations :: !(Maybe [V1Toleration]) -- ^ "tolerations" - If specified, the pod&#39;s tolerations.
  , V1PodSpec -> Maybe [V1TopologySpreadConstraint]
v1PodSpecTopologySpreadConstraints :: !(Maybe [V1TopologySpreadConstraint]) -- ^ "topologySpreadConstraints" - TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. This field is alpha-level and is only honored by clusters that enables the EvenPodsSpread feature. All topologySpreadConstraints are ANDed.
  , V1PodSpec -> Maybe [V1Volume]
v1PodSpecVolumes :: !(Maybe [V1Volume]) -- ^ "volumes" - List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes
  } deriving (Int -> V1PodSpec -> ShowS
[V1PodSpec] -> ShowS
V1PodSpec -> String
(Int -> V1PodSpec -> ShowS)
-> (V1PodSpec -> String)
-> ([V1PodSpec] -> ShowS)
-> Show V1PodSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PodSpec] -> ShowS
$cshowList :: [V1PodSpec] -> ShowS
show :: V1PodSpec -> String
$cshow :: V1PodSpec -> String
showsPrec :: Int -> V1PodSpec -> ShowS
$cshowsPrec :: Int -> V1PodSpec -> ShowS
P.Show, V1PodSpec -> V1PodSpec -> Bool
(V1PodSpec -> V1PodSpec -> Bool)
-> (V1PodSpec -> V1PodSpec -> Bool) -> Eq V1PodSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PodSpec -> V1PodSpec -> Bool
$c/= :: V1PodSpec -> V1PodSpec -> Bool
== :: V1PodSpec -> V1PodSpec -> Bool
$c== :: V1PodSpec -> V1PodSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PodSpec
instance A.FromJSON V1PodSpec where
  parseJSON :: Value -> Parser V1PodSpec
parseJSON = String -> (Object -> Parser V1PodSpec) -> Value -> Parser V1PodSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PodSpec" ((Object -> Parser V1PodSpec) -> Value -> Parser V1PodSpec)
-> (Object -> Parser V1PodSpec) -> Value -> Parser V1PodSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Integer
-> Maybe V1Affinity
-> Maybe Bool
-> [V1Container]
-> Maybe V1PodDNSConfig
-> Maybe Text
-> Maybe Bool
-> Maybe [V1EphemeralContainer]
-> Maybe [V1HostAlias]
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe [V1LocalObjectReference]
-> Maybe [V1Container]
-> Maybe Text
-> Maybe (Map String Text)
-> Maybe (Map String Quantity)
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe [V1PodReadinessGate]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe V1PodSecurityContext
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Integer
-> Maybe [V1Toleration]
-> Maybe [V1TopologySpreadConstraint]
-> Maybe [V1Volume]
-> V1PodSpec
V1PodSpec
      (Maybe Integer
 -> Maybe V1Affinity
 -> Maybe Bool
 -> [V1Container]
 -> Maybe V1PodDNSConfig
 -> Maybe Text
 -> Maybe Bool
 -> Maybe [V1EphemeralContainer]
 -> Maybe [V1HostAlias]
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe [V1LocalObjectReference]
 -> Maybe [V1Container]
 -> Maybe Text
 -> Maybe (Map String Text)
 -> Maybe (Map String Quantity)
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe [V1PodReadinessGate]
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe V1PodSecurityContext
 -> Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Integer
 -> Maybe [V1Toleration]
 -> Maybe [V1TopologySpreadConstraint]
 -> Maybe [V1Volume]
 -> V1PodSpec)
-> Parser (Maybe Integer)
-> Parser
     (Maybe V1Affinity
      -> Maybe Bool
      -> [V1Container]
      -> Maybe V1PodDNSConfig
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1EphemeralContainer]
      -> Maybe [V1HostAlias]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [V1LocalObjectReference]
      -> Maybe [V1Container]
      -> Maybe Text
      -> Maybe (Map String Text)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"activeDeadlineSeconds")
      Parser
  (Maybe V1Affinity
   -> Maybe Bool
   -> [V1Container]
   -> Maybe V1PodDNSConfig
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1EphemeralContainer]
   -> Maybe [V1HostAlias]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [V1LocalObjectReference]
   -> Maybe [V1Container]
   -> Maybe Text
   -> Maybe (Map String Text)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe V1Affinity)
-> Parser
     (Maybe Bool
      -> [V1Container]
      -> Maybe V1PodDNSConfig
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1EphemeralContainer]
      -> Maybe [V1HostAlias]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [V1LocalObjectReference]
      -> Maybe [V1Container]
      -> Maybe Text
      -> Maybe (Map String Text)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1Affinity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"affinity")
      Parser
  (Maybe Bool
   -> [V1Container]
   -> Maybe V1PodDNSConfig
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1EphemeralContainer]
   -> Maybe [V1HostAlias]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [V1LocalObjectReference]
   -> Maybe [V1Container]
   -> Maybe Text
   -> Maybe (Map String Text)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Bool)
-> Parser
     ([V1Container]
      -> Maybe V1PodDNSConfig
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1EphemeralContainer]
      -> Maybe [V1HostAlias]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [V1LocalObjectReference]
      -> Maybe [V1Container]
      -> Maybe Text
      -> Maybe (Map String Text)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"automountServiceAccountToken")
      Parser
  ([V1Container]
   -> Maybe V1PodDNSConfig
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1EphemeralContainer]
   -> Maybe [V1HostAlias]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [V1LocalObjectReference]
   -> Maybe [V1Container]
   -> Maybe Text
   -> Maybe (Map String Text)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser [V1Container]
-> Parser
     (Maybe V1PodDNSConfig
      -> Maybe Text
      -> Maybe Bool
      -> Maybe [V1EphemeralContainer]
      -> Maybe [V1HostAlias]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [V1LocalObjectReference]
      -> Maybe [V1Container]
      -> Maybe Text
      -> Maybe (Map String Text)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1Container]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"containers")
      Parser
  (Maybe V1PodDNSConfig
   -> Maybe Text
   -> Maybe Bool
   -> Maybe [V1EphemeralContainer]
   -> Maybe [V1HostAlias]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [V1LocalObjectReference]
   -> Maybe [V1Container]
   -> Maybe Text
   -> Maybe (Map String Text)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe V1PodDNSConfig)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe [V1EphemeralContainer]
      -> Maybe [V1HostAlias]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [V1LocalObjectReference]
      -> Maybe [V1Container]
      -> Maybe Text
      -> Maybe (Map String Text)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PodDNSConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"dnsConfig")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe [V1EphemeralContainer]
   -> Maybe [V1HostAlias]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [V1LocalObjectReference]
   -> Maybe [V1Container]
   -> Maybe Text
   -> Maybe (Map String Text)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe [V1EphemeralContainer]
      -> Maybe [V1HostAlias]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [V1LocalObjectReference]
      -> Maybe [V1Container]
      -> Maybe Text
      -> Maybe (Map String Text)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"dnsPolicy")
      Parser
  (Maybe Bool
   -> Maybe [V1EphemeralContainer]
   -> Maybe [V1HostAlias]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [V1LocalObjectReference]
   -> Maybe [V1Container]
   -> Maybe Text
   -> Maybe (Map String Text)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [V1EphemeralContainer]
      -> Maybe [V1HostAlias]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [V1LocalObjectReference]
      -> Maybe [V1Container]
      -> Maybe Text
      -> Maybe (Map String Text)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"enableServiceLinks")
      Parser
  (Maybe [V1EphemeralContainer]
   -> Maybe [V1HostAlias]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [V1LocalObjectReference]
   -> Maybe [V1Container]
   -> Maybe Text
   -> Maybe (Map String Text)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe [V1EphemeralContainer])
-> Parser
     (Maybe [V1HostAlias]
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [V1LocalObjectReference]
      -> Maybe [V1Container]
      -> Maybe Text
      -> Maybe (Map String Text)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1EphemeralContainer])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ephemeralContainers")
      Parser
  (Maybe [V1HostAlias]
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [V1LocalObjectReference]
   -> Maybe [V1Container]
   -> Maybe Text
   -> Maybe (Map String Text)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe [V1HostAlias])
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [V1LocalObjectReference]
      -> Maybe [V1Container]
      -> Maybe Text
      -> Maybe (Map String Text)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1HostAlias])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostAliases")
      Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [V1LocalObjectReference]
   -> Maybe [V1Container]
   -> Maybe Text
   -> Maybe (Map String Text)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe [V1LocalObjectReference]
      -> Maybe [V1Container]
      -> Maybe Text
      -> Maybe (Map String Text)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostIPC")
      Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe [V1LocalObjectReference]
   -> Maybe [V1Container]
   -> Maybe Text
   -> Maybe (Map String Text)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe [V1LocalObjectReference]
      -> Maybe [V1Container]
      -> Maybe Text
      -> Maybe (Map String Text)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostNetwork")
      Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe [V1LocalObjectReference]
   -> Maybe [V1Container]
   -> Maybe Text
   -> Maybe (Map String Text)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe [V1LocalObjectReference]
      -> Maybe [V1Container]
      -> Maybe Text
      -> Maybe (Map String Text)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostPID")
      Parser
  (Maybe Text
   -> Maybe [V1LocalObjectReference]
   -> Maybe [V1Container]
   -> Maybe Text
   -> Maybe (Map String Text)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe [V1LocalObjectReference]
      -> Maybe [V1Container]
      -> Maybe Text
      -> Maybe (Map String Text)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostname")
      Parser
  (Maybe [V1LocalObjectReference]
   -> Maybe [V1Container]
   -> Maybe Text
   -> Maybe (Map String Text)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe [V1LocalObjectReference])
-> Parser
     (Maybe [V1Container]
      -> Maybe Text
      -> Maybe (Map String Text)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1LocalObjectReference])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"imagePullSecrets")
      Parser
  (Maybe [V1Container]
   -> Maybe Text
   -> Maybe (Map String Text)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe [V1Container])
-> Parser
     (Maybe Text
      -> Maybe (Map String Text)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1Container])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"initContainers")
      Parser
  (Maybe Text
   -> Maybe (Map String Text)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe (Map String Text)
      -> Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nodeName")
      Parser
  (Maybe (Map String Text)
   -> Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe (Map String Text))
-> Parser
     (Maybe (Map String Quantity)
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nodeSelector")
      Parser
  (Maybe (Map String Quantity)
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe (Map String Quantity))
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"overhead")
      Parser
  (Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"preemptionPolicy")
      Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"priority")
      Parser
  (Maybe Text
   -> Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe [V1PodReadinessGate]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"priorityClassName")
      Parser
  (Maybe [V1PodReadinessGate]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe [V1PodReadinessGate])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1PodReadinessGate])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readinessGates")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"restartPolicy")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"runtimeClassName")
      Parser
  (Maybe Text
   -> Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1PodSecurityContext
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"schedulerName")
      Parser
  (Maybe V1PodSecurityContext
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe V1PodSecurityContext)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PodSecurityContext)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"securityContext")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"serviceAccount")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"serviceAccountName")
      Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"shareProcessNamespace")
      Parser
  (Maybe Text
   -> Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Integer
      -> Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"subdomain")
      Parser
  (Maybe Integer
   -> Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe Integer)
-> Parser
     (Maybe [V1Toleration]
      -> Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume]
      -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"terminationGracePeriodSeconds")
      Parser
  (Maybe [V1Toleration]
   -> Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume]
   -> V1PodSpec)
-> Parser (Maybe [V1Toleration])
-> Parser
     (Maybe [V1TopologySpreadConstraint]
      -> Maybe [V1Volume] -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1Toleration])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"tolerations")
      Parser
  (Maybe [V1TopologySpreadConstraint]
   -> Maybe [V1Volume] -> V1PodSpec)
-> Parser (Maybe [V1TopologySpreadConstraint])
-> Parser (Maybe [V1Volume] -> V1PodSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1TopologySpreadConstraint])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"topologySpreadConstraints")
      Parser (Maybe [V1Volume] -> V1PodSpec)
-> Parser (Maybe [V1Volume]) -> Parser V1PodSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1Volume])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumes")

-- | ToJSON V1PodSpec
instance A.ToJSON V1PodSpec where
  toJSON :: V1PodSpec -> Value
toJSON V1PodSpec {[V1Container]
Maybe Bool
Maybe Int
Maybe Integer
Maybe [V1Volume]
Maybe [V1TopologySpreadConstraint]
Maybe [V1Toleration]
Maybe [V1PodReadinessGate]
Maybe [V1LocalObjectReference]
Maybe [V1HostAlias]
Maybe [V1EphemeralContainer]
Maybe [V1Container]
Maybe Text
Maybe (Map String Text)
Maybe (Map String Quantity)
Maybe V1PodSecurityContext
Maybe V1PodDNSConfig
Maybe V1Affinity
v1PodSpecVolumes :: Maybe [V1Volume]
v1PodSpecTopologySpreadConstraints :: Maybe [V1TopologySpreadConstraint]
v1PodSpecTolerations :: Maybe [V1Toleration]
v1PodSpecTerminationGracePeriodSeconds :: Maybe Integer
v1PodSpecSubdomain :: Maybe Text
v1PodSpecShareProcessNamespace :: Maybe Bool
v1PodSpecServiceAccountName :: Maybe Text
v1PodSpecServiceAccount :: Maybe Text
v1PodSpecSecurityContext :: Maybe V1PodSecurityContext
v1PodSpecSchedulerName :: Maybe Text
v1PodSpecRuntimeClassName :: Maybe Text
v1PodSpecRestartPolicy :: Maybe Text
v1PodSpecReadinessGates :: Maybe [V1PodReadinessGate]
v1PodSpecPriorityClassName :: Maybe Text
v1PodSpecPriority :: Maybe Int
v1PodSpecPreemptionPolicy :: Maybe Text
v1PodSpecOverhead :: Maybe (Map String Quantity)
v1PodSpecNodeSelector :: Maybe (Map String Text)
v1PodSpecNodeName :: Maybe Text
v1PodSpecInitContainers :: Maybe [V1Container]
v1PodSpecImagePullSecrets :: Maybe [V1LocalObjectReference]
v1PodSpecHostname :: Maybe Text
v1PodSpecHostPid :: Maybe Bool
v1PodSpecHostNetwork :: Maybe Bool
v1PodSpecHostIpc :: Maybe Bool
v1PodSpecHostAliases :: Maybe [V1HostAlias]
v1PodSpecEphemeralContainers :: Maybe [V1EphemeralContainer]
v1PodSpecEnableServiceLinks :: Maybe Bool
v1PodSpecDnsPolicy :: Maybe Text
v1PodSpecDnsConfig :: Maybe V1PodDNSConfig
v1PodSpecContainers :: [V1Container]
v1PodSpecAutomountServiceAccountToken :: Maybe Bool
v1PodSpecAffinity :: Maybe V1Affinity
v1PodSpecActiveDeadlineSeconds :: Maybe Integer
v1PodSpecVolumes :: V1PodSpec -> Maybe [V1Volume]
v1PodSpecTopologySpreadConstraints :: V1PodSpec -> Maybe [V1TopologySpreadConstraint]
v1PodSpecTolerations :: V1PodSpec -> Maybe [V1Toleration]
v1PodSpecTerminationGracePeriodSeconds :: V1PodSpec -> Maybe Integer
v1PodSpecSubdomain :: V1PodSpec -> Maybe Text
v1PodSpecShareProcessNamespace :: V1PodSpec -> Maybe Bool
v1PodSpecServiceAccountName :: V1PodSpec -> Maybe Text
v1PodSpecServiceAccount :: V1PodSpec -> Maybe Text
v1PodSpecSecurityContext :: V1PodSpec -> Maybe V1PodSecurityContext
v1PodSpecSchedulerName :: V1PodSpec -> Maybe Text
v1PodSpecRuntimeClassName :: V1PodSpec -> Maybe Text
v1PodSpecRestartPolicy :: V1PodSpec -> Maybe Text
v1PodSpecReadinessGates :: V1PodSpec -> Maybe [V1PodReadinessGate]
v1PodSpecPriorityClassName :: V1PodSpec -> Maybe Text
v1PodSpecPriority :: V1PodSpec -> Maybe Int
v1PodSpecPreemptionPolicy :: V1PodSpec -> Maybe Text
v1PodSpecOverhead :: V1PodSpec -> Maybe (Map String Quantity)
v1PodSpecNodeSelector :: V1PodSpec -> Maybe (Map String Text)
v1PodSpecNodeName :: V1PodSpec -> Maybe Text
v1PodSpecInitContainers :: V1PodSpec -> Maybe [V1Container]
v1PodSpecImagePullSecrets :: V1PodSpec -> Maybe [V1LocalObjectReference]
v1PodSpecHostname :: V1PodSpec -> Maybe Text
v1PodSpecHostPid :: V1PodSpec -> Maybe Bool
v1PodSpecHostNetwork :: V1PodSpec -> Maybe Bool
v1PodSpecHostIpc :: V1PodSpec -> Maybe Bool
v1PodSpecHostAliases :: V1PodSpec -> Maybe [V1HostAlias]
v1PodSpecEphemeralContainers :: V1PodSpec -> Maybe [V1EphemeralContainer]
v1PodSpecEnableServiceLinks :: V1PodSpec -> Maybe Bool
v1PodSpecDnsPolicy :: V1PodSpec -> Maybe Text
v1PodSpecDnsConfig :: V1PodSpec -> Maybe V1PodDNSConfig
v1PodSpecContainers :: V1PodSpec -> [V1Container]
v1PodSpecAutomountServiceAccountToken :: V1PodSpec -> Maybe Bool
v1PodSpecAffinity :: V1PodSpec -> Maybe V1Affinity
v1PodSpecActiveDeadlineSeconds :: V1PodSpec -> Maybe Integer
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"activeDeadlineSeconds" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1PodSpecActiveDeadlineSeconds
      , Text
"affinity" Text -> Maybe V1Affinity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1Affinity
v1PodSpecAffinity
      , Text
"automountServiceAccountToken" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1PodSpecAutomountServiceAccountToken
      , Text
"containers" Text -> [V1Container] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1Container]
v1PodSpecContainers
      , Text
"dnsConfig" Text -> Maybe V1PodDNSConfig -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PodDNSConfig
v1PodSpecDnsConfig
      , Text
"dnsPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodSpecDnsPolicy
      , Text
"enableServiceLinks" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1PodSpecEnableServiceLinks
      , Text
"ephemeralContainers" Text -> Maybe [V1EphemeralContainer] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1EphemeralContainer]
v1PodSpecEphemeralContainers
      , Text
"hostAliases" Text -> Maybe [V1HostAlias] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1HostAlias]
v1PodSpecHostAliases
      , Text
"hostIPC" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1PodSpecHostIpc
      , Text
"hostNetwork" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1PodSpecHostNetwork
      , Text
"hostPID" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1PodSpecHostPid
      , Text
"hostname" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodSpecHostname
      , Text
"imagePullSecrets" Text -> Maybe [V1LocalObjectReference] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1LocalObjectReference]
v1PodSpecImagePullSecrets
      , Text
"initContainers" Text -> Maybe [V1Container] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1Container]
v1PodSpecInitContainers
      , Text
"nodeName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodSpecNodeName
      , Text
"nodeSelector" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1PodSpecNodeSelector
      , Text
"overhead" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1PodSpecOverhead
      , Text
"preemptionPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodSpecPreemptionPolicy
      , Text
"priority" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1PodSpecPriority
      , Text
"priorityClassName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodSpecPriorityClassName
      , Text
"readinessGates" Text -> Maybe [V1PodReadinessGate] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1PodReadinessGate]
v1PodSpecReadinessGates
      , Text
"restartPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodSpecRestartPolicy
      , Text
"runtimeClassName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodSpecRuntimeClassName
      , Text
"schedulerName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodSpecSchedulerName
      , Text
"securityContext" Text -> Maybe V1PodSecurityContext -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PodSecurityContext
v1PodSpecSecurityContext
      , Text
"serviceAccount" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodSpecServiceAccount
      , Text
"serviceAccountName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodSpecServiceAccountName
      , Text
"shareProcessNamespace" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1PodSpecShareProcessNamespace
      , Text
"subdomain" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodSpecSubdomain
      , Text
"terminationGracePeriodSeconds" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1PodSpecTerminationGracePeriodSeconds
      , Text
"tolerations" Text -> Maybe [V1Toleration] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1Toleration]
v1PodSpecTolerations
      , Text
"topologySpreadConstraints" Text -> Maybe [V1TopologySpreadConstraint] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1TopologySpreadConstraint]
v1PodSpecTopologySpreadConstraints
      , Text
"volumes" Text -> Maybe [V1Volume] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1Volume]
v1PodSpecVolumes
      ]


-- | Construct a value of type 'V1PodSpec' (by applying it's required fields, if any)
mkV1PodSpec
  :: [V1Container] -- ^ 'v1PodSpecContainers': List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.
  -> V1PodSpec
mkV1PodSpec :: [V1Container] -> V1PodSpec
mkV1PodSpec [V1Container]
v1PodSpecContainers =
  V1PodSpec :: Maybe Integer
-> Maybe V1Affinity
-> Maybe Bool
-> [V1Container]
-> Maybe V1PodDNSConfig
-> Maybe Text
-> Maybe Bool
-> Maybe [V1EphemeralContainer]
-> Maybe [V1HostAlias]
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe [V1LocalObjectReference]
-> Maybe [V1Container]
-> Maybe Text
-> Maybe (Map String Text)
-> Maybe (Map String Quantity)
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe [V1PodReadinessGate]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe V1PodSecurityContext
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Integer
-> Maybe [V1Toleration]
-> Maybe [V1TopologySpreadConstraint]
-> Maybe [V1Volume]
-> V1PodSpec
V1PodSpec
  { v1PodSpecActiveDeadlineSeconds :: Maybe Integer
v1PodSpecActiveDeadlineSeconds = Maybe Integer
forall a. Maybe a
Nothing
  , v1PodSpecAffinity :: Maybe V1Affinity
v1PodSpecAffinity = Maybe V1Affinity
forall a. Maybe a
Nothing
  , v1PodSpecAutomountServiceAccountToken :: Maybe Bool
v1PodSpecAutomountServiceAccountToken = Maybe Bool
forall a. Maybe a
Nothing
  , [V1Container]
v1PodSpecContainers :: [V1Container]
v1PodSpecContainers :: [V1Container]
v1PodSpecContainers
  , v1PodSpecDnsConfig :: Maybe V1PodDNSConfig
v1PodSpecDnsConfig = Maybe V1PodDNSConfig
forall a. Maybe a
Nothing
  , v1PodSpecDnsPolicy :: Maybe Text
v1PodSpecDnsPolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1PodSpecEnableServiceLinks :: Maybe Bool
v1PodSpecEnableServiceLinks = Maybe Bool
forall a. Maybe a
Nothing
  , v1PodSpecEphemeralContainers :: Maybe [V1EphemeralContainer]
v1PodSpecEphemeralContainers = Maybe [V1EphemeralContainer]
forall a. Maybe a
Nothing
  , v1PodSpecHostAliases :: Maybe [V1HostAlias]
v1PodSpecHostAliases = Maybe [V1HostAlias]
forall a. Maybe a
Nothing
  , v1PodSpecHostIpc :: Maybe Bool
v1PodSpecHostIpc = Maybe Bool
forall a. Maybe a
Nothing
  , v1PodSpecHostNetwork :: Maybe Bool
v1PodSpecHostNetwork = Maybe Bool
forall a. Maybe a
Nothing
  , v1PodSpecHostPid :: Maybe Bool
v1PodSpecHostPid = Maybe Bool
forall a. Maybe a
Nothing
  , v1PodSpecHostname :: Maybe Text
v1PodSpecHostname = Maybe Text
forall a. Maybe a
Nothing
  , v1PodSpecImagePullSecrets :: Maybe [V1LocalObjectReference]
v1PodSpecImagePullSecrets = Maybe [V1LocalObjectReference]
forall a. Maybe a
Nothing
  , v1PodSpecInitContainers :: Maybe [V1Container]
v1PodSpecInitContainers = Maybe [V1Container]
forall a. Maybe a
Nothing
  , v1PodSpecNodeName :: Maybe Text
v1PodSpecNodeName = Maybe Text
forall a. Maybe a
Nothing
  , v1PodSpecNodeSelector :: Maybe (Map String Text)
v1PodSpecNodeSelector = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , v1PodSpecOverhead :: Maybe (Map String Quantity)
v1PodSpecOverhead = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  , v1PodSpecPreemptionPolicy :: Maybe Text
v1PodSpecPreemptionPolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1PodSpecPriority :: Maybe Int
v1PodSpecPriority = Maybe Int
forall a. Maybe a
Nothing
  , v1PodSpecPriorityClassName :: Maybe Text
v1PodSpecPriorityClassName = Maybe Text
forall a. Maybe a
Nothing
  , v1PodSpecReadinessGates :: Maybe [V1PodReadinessGate]
v1PodSpecReadinessGates = Maybe [V1PodReadinessGate]
forall a. Maybe a
Nothing
  , v1PodSpecRestartPolicy :: Maybe Text
v1PodSpecRestartPolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1PodSpecRuntimeClassName :: Maybe Text
v1PodSpecRuntimeClassName = Maybe Text
forall a. Maybe a
Nothing
  , v1PodSpecSchedulerName :: Maybe Text
v1PodSpecSchedulerName = Maybe Text
forall a. Maybe a
Nothing
  , v1PodSpecSecurityContext :: Maybe V1PodSecurityContext
v1PodSpecSecurityContext = Maybe V1PodSecurityContext
forall a. Maybe a
Nothing
  , v1PodSpecServiceAccount :: Maybe Text
v1PodSpecServiceAccount = Maybe Text
forall a. Maybe a
Nothing
  , v1PodSpecServiceAccountName :: Maybe Text
v1PodSpecServiceAccountName = Maybe Text
forall a. Maybe a
Nothing
  , v1PodSpecShareProcessNamespace :: Maybe Bool
v1PodSpecShareProcessNamespace = Maybe Bool
forall a. Maybe a
Nothing
  , v1PodSpecSubdomain :: Maybe Text
v1PodSpecSubdomain = Maybe Text
forall a. Maybe a
Nothing
  , v1PodSpecTerminationGracePeriodSeconds :: Maybe Integer
v1PodSpecTerminationGracePeriodSeconds = Maybe Integer
forall a. Maybe a
Nothing
  , v1PodSpecTolerations :: Maybe [V1Toleration]
v1PodSpecTolerations = Maybe [V1Toleration]
forall a. Maybe a
Nothing
  , v1PodSpecTopologySpreadConstraints :: Maybe [V1TopologySpreadConstraint]
v1PodSpecTopologySpreadConstraints = Maybe [V1TopologySpreadConstraint]
forall a. Maybe a
Nothing
  , v1PodSpecVolumes :: Maybe [V1Volume]
v1PodSpecVolumes = Maybe [V1Volume]
forall a. Maybe a
Nothing
  }

-- ** V1PodStatus
-- | V1PodStatus
-- PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.
data V1PodStatus = V1PodStatus
  { V1PodStatus -> Maybe [V1PodCondition]
v1PodStatusConditions :: !(Maybe [V1PodCondition]) -- ^ "conditions" - Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
  , V1PodStatus -> Maybe [V1ContainerStatus]
v1PodStatusContainerStatuses :: !(Maybe [V1ContainerStatus]) -- ^ "containerStatuses" - The list has one entry per container in the manifest. Each entry is currently the output of &#x60;docker inspect&#x60;. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
  , V1PodStatus -> Maybe [V1ContainerStatus]
v1PodStatusEphemeralContainerStatuses :: !(Maybe [V1ContainerStatus]) -- ^ "ephemeralContainerStatuses" - Status for any ephemeral containers that have run in this pod. This field is alpha-level and is only populated by servers that enable the EphemeralContainers feature.
  , V1PodStatus -> Maybe Text
v1PodStatusHostIp :: !(Maybe Text) -- ^ "hostIP" - IP address of the host to which the pod is assigned. Empty if not yet scheduled.
  , V1PodStatus -> Maybe [V1ContainerStatus]
v1PodStatusInitContainerStatuses :: !(Maybe [V1ContainerStatus]) -- ^ "initContainerStatuses" - The list has one entry per init container in the manifest. The most recent successful init container will have ready &#x3D; true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
  , V1PodStatus -> Maybe Text
v1PodStatusMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about why the pod is in this condition.
  , V1PodStatus -> Maybe Text
v1PodStatusNominatedNodeName :: !(Maybe Text) -- ^ "nominatedNodeName" - nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled.
  , V1PodStatus -> Maybe Text
v1PodStatusPhase :: !(Maybe Text) -- ^ "phase" - The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod&#39;s status. There are five possible phase values:  Pending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
  , V1PodStatus -> Maybe Text
v1PodStatusPodIp :: !(Maybe Text) -- ^ "podIP" - IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.
  , V1PodStatus -> Maybe [V1PodIP]
v1PodStatusPodIPs :: !(Maybe [V1PodIP]) -- ^ "podIPs" - podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.
  , V1PodStatus -> Maybe Text
v1PodStatusQosClass :: !(Maybe Text) -- ^ "qosClass" - The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md
  , V1PodStatus -> Maybe Text
v1PodStatusReason :: !(Maybe Text) -- ^ "reason" - A brief CamelCase message indicating details about why the pod is in this state. e.g. &#39;Evicted&#39;
  , V1PodStatus -> Maybe DateTime
v1PodStatusStartTime :: !(Maybe DateTime) -- ^ "startTime" - RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod.
  } deriving (Int -> V1PodStatus -> ShowS
[V1PodStatus] -> ShowS
V1PodStatus -> String
(Int -> V1PodStatus -> ShowS)
-> (V1PodStatus -> String)
-> ([V1PodStatus] -> ShowS)
-> Show V1PodStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PodStatus] -> ShowS
$cshowList :: [V1PodStatus] -> ShowS
show :: V1PodStatus -> String
$cshow :: V1PodStatus -> String
showsPrec :: Int -> V1PodStatus -> ShowS
$cshowsPrec :: Int -> V1PodStatus -> ShowS
P.Show, V1PodStatus -> V1PodStatus -> Bool
(V1PodStatus -> V1PodStatus -> Bool)
-> (V1PodStatus -> V1PodStatus -> Bool) -> Eq V1PodStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PodStatus -> V1PodStatus -> Bool
$c/= :: V1PodStatus -> V1PodStatus -> Bool
== :: V1PodStatus -> V1PodStatus -> Bool
$c== :: V1PodStatus -> V1PodStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PodStatus
instance A.FromJSON V1PodStatus where
  parseJSON :: Value -> Parser V1PodStatus
parseJSON = String
-> (Object -> Parser V1PodStatus) -> Value -> Parser V1PodStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PodStatus" ((Object -> Parser V1PodStatus) -> Value -> Parser V1PodStatus)
-> (Object -> Parser V1PodStatus) -> Value -> Parser V1PodStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1PodCondition]
-> Maybe [V1ContainerStatus]
-> Maybe [V1ContainerStatus]
-> Maybe Text
-> Maybe [V1ContainerStatus]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [V1PodIP]
-> Maybe Text
-> Maybe Text
-> Maybe DateTime
-> V1PodStatus
V1PodStatus
      (Maybe [V1PodCondition]
 -> Maybe [V1ContainerStatus]
 -> Maybe [V1ContainerStatus]
 -> Maybe Text
 -> Maybe [V1ContainerStatus]
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe [V1PodIP]
 -> Maybe Text
 -> Maybe Text
 -> Maybe DateTime
 -> V1PodStatus)
-> Parser (Maybe [V1PodCondition])
-> Parser
     (Maybe [V1ContainerStatus]
      -> Maybe [V1ContainerStatus]
      -> Maybe Text
      -> Maybe [V1ContainerStatus]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [V1PodIP]
      -> Maybe Text
      -> Maybe Text
      -> Maybe DateTime
      -> V1PodStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1PodCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Maybe [V1ContainerStatus]
   -> Maybe [V1ContainerStatus]
   -> Maybe Text
   -> Maybe [V1ContainerStatus]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [V1PodIP]
   -> Maybe Text
   -> Maybe Text
   -> Maybe DateTime
   -> V1PodStatus)
-> Parser (Maybe [V1ContainerStatus])
-> Parser
     (Maybe [V1ContainerStatus]
      -> Maybe Text
      -> Maybe [V1ContainerStatus]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [V1PodIP]
      -> Maybe Text
      -> Maybe Text
      -> Maybe DateTime
      -> V1PodStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1ContainerStatus])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"containerStatuses")
      Parser
  (Maybe [V1ContainerStatus]
   -> Maybe Text
   -> Maybe [V1ContainerStatus]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [V1PodIP]
   -> Maybe Text
   -> Maybe Text
   -> Maybe DateTime
   -> V1PodStatus)
-> Parser (Maybe [V1ContainerStatus])
-> Parser
     (Maybe Text
      -> Maybe [V1ContainerStatus]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [V1PodIP]
      -> Maybe Text
      -> Maybe Text
      -> Maybe DateTime
      -> V1PodStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1ContainerStatus])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ephemeralContainerStatuses")
      Parser
  (Maybe Text
   -> Maybe [V1ContainerStatus]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [V1PodIP]
   -> Maybe Text
   -> Maybe Text
   -> Maybe DateTime
   -> V1PodStatus)
-> Parser (Maybe Text)
-> Parser
     (Maybe [V1ContainerStatus]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [V1PodIP]
      -> Maybe Text
      -> Maybe Text
      -> Maybe DateTime
      -> V1PodStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostIP")
      Parser
  (Maybe [V1ContainerStatus]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [V1PodIP]
   -> Maybe Text
   -> Maybe Text
   -> Maybe DateTime
   -> V1PodStatus)
-> Parser (Maybe [V1ContainerStatus])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [V1PodIP]
      -> Maybe Text
      -> Maybe Text
      -> Maybe DateTime
      -> V1PodStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1ContainerStatus])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"initContainerStatuses")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [V1PodIP]
   -> Maybe Text
   -> Maybe Text
   -> Maybe DateTime
   -> V1PodStatus)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [V1PodIP]
      -> Maybe Text
      -> Maybe Text
      -> Maybe DateTime
      -> V1PodStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [V1PodIP]
   -> Maybe Text
   -> Maybe Text
   -> Maybe DateTime
   -> V1PodStatus)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe [V1PodIP]
      -> Maybe Text
      -> Maybe Text
      -> Maybe DateTime
      -> V1PodStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nominatedNodeName")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe [V1PodIP]
   -> Maybe Text
   -> Maybe Text
   -> Maybe DateTime
   -> V1PodStatus)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe [V1PodIP]
      -> Maybe Text
      -> Maybe Text
      -> Maybe DateTime
      -> V1PodStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"phase")
      Parser
  (Maybe Text
   -> Maybe [V1PodIP]
   -> Maybe Text
   -> Maybe Text
   -> Maybe DateTime
   -> V1PodStatus)
-> Parser (Maybe Text)
-> Parser
     (Maybe [V1PodIP]
      -> Maybe Text -> Maybe Text -> Maybe DateTime -> V1PodStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"podIP")
      Parser
  (Maybe [V1PodIP]
   -> Maybe Text -> Maybe Text -> Maybe DateTime -> V1PodStatus)
-> Parser (Maybe [V1PodIP])
-> Parser
     (Maybe Text -> Maybe Text -> Maybe DateTime -> V1PodStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1PodIP])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"podIPs")
      Parser (Maybe Text -> Maybe Text -> Maybe DateTime -> V1PodStatus)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe DateTime -> V1PodStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"qosClass")
      Parser (Maybe Text -> Maybe DateTime -> V1PodStatus)
-> Parser (Maybe Text) -> Parser (Maybe DateTime -> V1PodStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Maybe DateTime -> V1PodStatus)
-> Parser (Maybe DateTime) -> Parser V1PodStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"startTime")

-- | ToJSON V1PodStatus
instance A.ToJSON V1PodStatus where
  toJSON :: V1PodStatus -> Value
toJSON V1PodStatus {Maybe [V1PodIP]
Maybe [V1PodCondition]
Maybe [V1ContainerStatus]
Maybe Text
Maybe DateTime
v1PodStatusStartTime :: Maybe DateTime
v1PodStatusReason :: Maybe Text
v1PodStatusQosClass :: Maybe Text
v1PodStatusPodIPs :: Maybe [V1PodIP]
v1PodStatusPodIp :: Maybe Text
v1PodStatusPhase :: Maybe Text
v1PodStatusNominatedNodeName :: Maybe Text
v1PodStatusMessage :: Maybe Text
v1PodStatusInitContainerStatuses :: Maybe [V1ContainerStatus]
v1PodStatusHostIp :: Maybe Text
v1PodStatusEphemeralContainerStatuses :: Maybe [V1ContainerStatus]
v1PodStatusContainerStatuses :: Maybe [V1ContainerStatus]
v1PodStatusConditions :: Maybe [V1PodCondition]
v1PodStatusStartTime :: V1PodStatus -> Maybe DateTime
v1PodStatusReason :: V1PodStatus -> Maybe Text
v1PodStatusQosClass :: V1PodStatus -> Maybe Text
v1PodStatusPodIPs :: V1PodStatus -> Maybe [V1PodIP]
v1PodStatusPodIp :: V1PodStatus -> Maybe Text
v1PodStatusPhase :: V1PodStatus -> Maybe Text
v1PodStatusNominatedNodeName :: V1PodStatus -> Maybe Text
v1PodStatusMessage :: V1PodStatus -> Maybe Text
v1PodStatusInitContainerStatuses :: V1PodStatus -> Maybe [V1ContainerStatus]
v1PodStatusHostIp :: V1PodStatus -> Maybe Text
v1PodStatusEphemeralContainerStatuses :: V1PodStatus -> Maybe [V1ContainerStatus]
v1PodStatusContainerStatuses :: V1PodStatus -> Maybe [V1ContainerStatus]
v1PodStatusConditions :: V1PodStatus -> Maybe [V1PodCondition]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"conditions" Text -> Maybe [V1PodCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1PodCondition]
v1PodStatusConditions
      , Text
"containerStatuses" Text -> Maybe [V1ContainerStatus] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ContainerStatus]
v1PodStatusContainerStatuses
      , Text
"ephemeralContainerStatuses" Text -> Maybe [V1ContainerStatus] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ContainerStatus]
v1PodStatusEphemeralContainerStatuses
      , Text
"hostIP" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodStatusHostIp
      , Text
"initContainerStatuses" Text -> Maybe [V1ContainerStatus] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ContainerStatus]
v1PodStatusInitContainerStatuses
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodStatusMessage
      , Text
"nominatedNodeName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodStatusNominatedNodeName
      , Text
"phase" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodStatusPhase
      , Text
"podIP" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodStatusPodIp
      , Text
"podIPs" Text -> Maybe [V1PodIP] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1PodIP]
v1PodStatusPodIPs
      , Text
"qosClass" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodStatusQosClass
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodStatusReason
      , Text
"startTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1PodStatusStartTime
      ]


-- | Construct a value of type 'V1PodStatus' (by applying it's required fields, if any)
mkV1PodStatus
  :: V1PodStatus
mkV1PodStatus :: V1PodStatus
mkV1PodStatus =
  V1PodStatus :: Maybe [V1PodCondition]
-> Maybe [V1ContainerStatus]
-> Maybe [V1ContainerStatus]
-> Maybe Text
-> Maybe [V1ContainerStatus]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [V1PodIP]
-> Maybe Text
-> Maybe Text
-> Maybe DateTime
-> V1PodStatus
V1PodStatus
  { v1PodStatusConditions :: Maybe [V1PodCondition]
v1PodStatusConditions = Maybe [V1PodCondition]
forall a. Maybe a
Nothing
  , v1PodStatusContainerStatuses :: Maybe [V1ContainerStatus]
v1PodStatusContainerStatuses = Maybe [V1ContainerStatus]
forall a. Maybe a
Nothing
  , v1PodStatusEphemeralContainerStatuses :: Maybe [V1ContainerStatus]
v1PodStatusEphemeralContainerStatuses = Maybe [V1ContainerStatus]
forall a. Maybe a
Nothing
  , v1PodStatusHostIp :: Maybe Text
v1PodStatusHostIp = Maybe Text
forall a. Maybe a
Nothing
  , v1PodStatusInitContainerStatuses :: Maybe [V1ContainerStatus]
v1PodStatusInitContainerStatuses = Maybe [V1ContainerStatus]
forall a. Maybe a
Nothing
  , v1PodStatusMessage :: Maybe Text
v1PodStatusMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1PodStatusNominatedNodeName :: Maybe Text
v1PodStatusNominatedNodeName = Maybe Text
forall a. Maybe a
Nothing
  , v1PodStatusPhase :: Maybe Text
v1PodStatusPhase = Maybe Text
forall a. Maybe a
Nothing
  , v1PodStatusPodIp :: Maybe Text
v1PodStatusPodIp = Maybe Text
forall a. Maybe a
Nothing
  , v1PodStatusPodIPs :: Maybe [V1PodIP]
v1PodStatusPodIPs = Maybe [V1PodIP]
forall a. Maybe a
Nothing
  , v1PodStatusQosClass :: Maybe Text
v1PodStatusQosClass = Maybe Text
forall a. Maybe a
Nothing
  , v1PodStatusReason :: Maybe Text
v1PodStatusReason = Maybe Text
forall a. Maybe a
Nothing
  , v1PodStatusStartTime :: Maybe DateTime
v1PodStatusStartTime = Maybe DateTime
forall a. Maybe a
Nothing
  }

-- ** V1PodTemplate
-- | V1PodTemplate
-- PodTemplate describes a template for creating copies of a predefined pod.
data V1PodTemplate = V1PodTemplate
  { V1PodTemplate -> Maybe Text
v1PodTemplateApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1PodTemplate -> Maybe Text
v1PodTemplateKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1PodTemplate -> Maybe V1ObjectMeta
v1PodTemplateMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1PodTemplate -> Maybe V1PodTemplateSpec
v1PodTemplateTemplate :: !(Maybe V1PodTemplateSpec) -- ^ "template"
  } deriving (Int -> V1PodTemplate -> ShowS
[V1PodTemplate] -> ShowS
V1PodTemplate -> String
(Int -> V1PodTemplate -> ShowS)
-> (V1PodTemplate -> String)
-> ([V1PodTemplate] -> ShowS)
-> Show V1PodTemplate
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PodTemplate] -> ShowS
$cshowList :: [V1PodTemplate] -> ShowS
show :: V1PodTemplate -> String
$cshow :: V1PodTemplate -> String
showsPrec :: Int -> V1PodTemplate -> ShowS
$cshowsPrec :: Int -> V1PodTemplate -> ShowS
P.Show, V1PodTemplate -> V1PodTemplate -> Bool
(V1PodTemplate -> V1PodTemplate -> Bool)
-> (V1PodTemplate -> V1PodTemplate -> Bool) -> Eq V1PodTemplate
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PodTemplate -> V1PodTemplate -> Bool
$c/= :: V1PodTemplate -> V1PodTemplate -> Bool
== :: V1PodTemplate -> V1PodTemplate -> Bool
$c== :: V1PodTemplate -> V1PodTemplate -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PodTemplate
instance A.FromJSON V1PodTemplate where
  parseJSON :: Value -> Parser V1PodTemplate
parseJSON = String
-> (Object -> Parser V1PodTemplate)
-> Value
-> Parser V1PodTemplate
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PodTemplate" ((Object -> Parser V1PodTemplate) -> Value -> Parser V1PodTemplate)
-> (Object -> Parser V1PodTemplate)
-> Value
-> Parser V1PodTemplate
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1PodTemplateSpec
-> V1PodTemplate
V1PodTemplate
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1PodTemplateSpec
 -> V1PodTemplate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta -> Maybe V1PodTemplateSpec -> V1PodTemplate)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta -> Maybe V1PodTemplateSpec -> V1PodTemplate)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta -> Maybe V1PodTemplateSpec -> V1PodTemplate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta -> Maybe V1PodTemplateSpec -> V1PodTemplate)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe V1PodTemplateSpec -> V1PodTemplate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe V1PodTemplateSpec -> V1PodTemplate)
-> Parser (Maybe V1PodTemplateSpec) -> Parser V1PodTemplate
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PodTemplateSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"template")

-- | ToJSON V1PodTemplate
instance A.ToJSON V1PodTemplate where
  toJSON :: V1PodTemplate -> Value
toJSON V1PodTemplate {Maybe Text
Maybe V1PodTemplateSpec
Maybe V1ObjectMeta
v1PodTemplateTemplate :: Maybe V1PodTemplateSpec
v1PodTemplateMetadata :: Maybe V1ObjectMeta
v1PodTemplateKind :: Maybe Text
v1PodTemplateApiVersion :: Maybe Text
v1PodTemplateTemplate :: V1PodTemplate -> Maybe V1PodTemplateSpec
v1PodTemplateMetadata :: V1PodTemplate -> Maybe V1ObjectMeta
v1PodTemplateKind :: V1PodTemplate -> Maybe Text
v1PodTemplateApiVersion :: V1PodTemplate -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodTemplateApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodTemplateKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1PodTemplateMetadata
      , Text
"template" Text -> Maybe V1PodTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PodTemplateSpec
v1PodTemplateTemplate
      ]


-- | Construct a value of type 'V1PodTemplate' (by applying it's required fields, if any)
mkV1PodTemplate
  :: V1PodTemplate
mkV1PodTemplate :: V1PodTemplate
mkV1PodTemplate =
  V1PodTemplate :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1PodTemplateSpec
-> V1PodTemplate
V1PodTemplate
  { v1PodTemplateApiVersion :: Maybe Text
v1PodTemplateApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1PodTemplateKind :: Maybe Text
v1PodTemplateKind = Maybe Text
forall a. Maybe a
Nothing
  , v1PodTemplateMetadata :: Maybe V1ObjectMeta
v1PodTemplateMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1PodTemplateTemplate :: Maybe V1PodTemplateSpec
v1PodTemplateTemplate = Maybe V1PodTemplateSpec
forall a. Maybe a
Nothing
  }

-- ** V1PodTemplateList
-- | V1PodTemplateList
-- PodTemplateList is a list of PodTemplates.
data V1PodTemplateList = V1PodTemplateList
  { V1PodTemplateList -> Maybe Text
v1PodTemplateListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1PodTemplateList -> [V1PodTemplate]
v1PodTemplateListItems :: !([V1PodTemplate]) -- ^ /Required/ "items" - List of pod templates
  , V1PodTemplateList -> Maybe Text
v1PodTemplateListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1PodTemplateList -> Maybe V1ListMeta
v1PodTemplateListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1PodTemplateList -> ShowS
[V1PodTemplateList] -> ShowS
V1PodTemplateList -> String
(Int -> V1PodTemplateList -> ShowS)
-> (V1PodTemplateList -> String)
-> ([V1PodTemplateList] -> ShowS)
-> Show V1PodTemplateList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PodTemplateList] -> ShowS
$cshowList :: [V1PodTemplateList] -> ShowS
show :: V1PodTemplateList -> String
$cshow :: V1PodTemplateList -> String
showsPrec :: Int -> V1PodTemplateList -> ShowS
$cshowsPrec :: Int -> V1PodTemplateList -> ShowS
P.Show, V1PodTemplateList -> V1PodTemplateList -> Bool
(V1PodTemplateList -> V1PodTemplateList -> Bool)
-> (V1PodTemplateList -> V1PodTemplateList -> Bool)
-> Eq V1PodTemplateList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PodTemplateList -> V1PodTemplateList -> Bool
$c/= :: V1PodTemplateList -> V1PodTemplateList -> Bool
== :: V1PodTemplateList -> V1PodTemplateList -> Bool
$c== :: V1PodTemplateList -> V1PodTemplateList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PodTemplateList
instance A.FromJSON V1PodTemplateList where
  parseJSON :: Value -> Parser V1PodTemplateList
parseJSON = String
-> (Object -> Parser V1PodTemplateList)
-> Value
-> Parser V1PodTemplateList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PodTemplateList" ((Object -> Parser V1PodTemplateList)
 -> Value -> Parser V1PodTemplateList)
-> (Object -> Parser V1PodTemplateList)
-> Value
-> Parser V1PodTemplateList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1PodTemplate]
-> Maybe Text
-> Maybe V1ListMeta
-> V1PodTemplateList
V1PodTemplateList
      (Maybe Text
 -> [V1PodTemplate]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1PodTemplateList)
-> Parser (Maybe Text)
-> Parser
     ([V1PodTemplate]
      -> Maybe Text -> Maybe V1ListMeta -> V1PodTemplateList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1PodTemplate]
   -> Maybe Text -> Maybe V1ListMeta -> V1PodTemplateList)
-> Parser [V1PodTemplate]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1PodTemplateList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1PodTemplate]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1PodTemplateList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1PodTemplateList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1PodTemplateList)
-> Parser (Maybe V1ListMeta) -> Parser V1PodTemplateList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1PodTemplateList
instance A.ToJSON V1PodTemplateList where
  toJSON :: V1PodTemplateList -> Value
toJSON V1PodTemplateList {[V1PodTemplate]
Maybe Text
Maybe V1ListMeta
v1PodTemplateListMetadata :: Maybe V1ListMeta
v1PodTemplateListKind :: Maybe Text
v1PodTemplateListItems :: [V1PodTemplate]
v1PodTemplateListApiVersion :: Maybe Text
v1PodTemplateListMetadata :: V1PodTemplateList -> Maybe V1ListMeta
v1PodTemplateListKind :: V1PodTemplateList -> Maybe Text
v1PodTemplateListItems :: V1PodTemplateList -> [V1PodTemplate]
v1PodTemplateListApiVersion :: V1PodTemplateList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodTemplateListApiVersion
      , Text
"items" Text -> [V1PodTemplate] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1PodTemplate]
v1PodTemplateListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PodTemplateListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1PodTemplateListMetadata
      ]


-- | Construct a value of type 'V1PodTemplateList' (by applying it's required fields, if any)
mkV1PodTemplateList
  :: [V1PodTemplate] -- ^ 'v1PodTemplateListItems': List of pod templates
  -> V1PodTemplateList
mkV1PodTemplateList :: [V1PodTemplate] -> V1PodTemplateList
mkV1PodTemplateList [V1PodTemplate]
v1PodTemplateListItems =
  V1PodTemplateList :: Maybe Text
-> [V1PodTemplate]
-> Maybe Text
-> Maybe V1ListMeta
-> V1PodTemplateList
V1PodTemplateList
  { v1PodTemplateListApiVersion :: Maybe Text
v1PodTemplateListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1PodTemplate]
v1PodTemplateListItems :: [V1PodTemplate]
v1PodTemplateListItems :: [V1PodTemplate]
v1PodTemplateListItems
  , v1PodTemplateListKind :: Maybe Text
v1PodTemplateListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1PodTemplateListMetadata :: Maybe V1ListMeta
v1PodTemplateListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1PodTemplateSpec
-- | V1PodTemplateSpec
-- PodTemplateSpec describes the data a pod should have when created from a template
data V1PodTemplateSpec = V1PodTemplateSpec
  { V1PodTemplateSpec -> Maybe V1ObjectMeta
v1PodTemplateSpecMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1PodTemplateSpec -> Maybe V1PodSpec
v1PodTemplateSpecSpec :: !(Maybe V1PodSpec) -- ^ "spec"
  } deriving (Int -> V1PodTemplateSpec -> ShowS
[V1PodTemplateSpec] -> ShowS
V1PodTemplateSpec -> String
(Int -> V1PodTemplateSpec -> ShowS)
-> (V1PodTemplateSpec -> String)
-> ([V1PodTemplateSpec] -> ShowS)
-> Show V1PodTemplateSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PodTemplateSpec] -> ShowS
$cshowList :: [V1PodTemplateSpec] -> ShowS
show :: V1PodTemplateSpec -> String
$cshow :: V1PodTemplateSpec -> String
showsPrec :: Int -> V1PodTemplateSpec -> ShowS
$cshowsPrec :: Int -> V1PodTemplateSpec -> ShowS
P.Show, V1PodTemplateSpec -> V1PodTemplateSpec -> Bool
(V1PodTemplateSpec -> V1PodTemplateSpec -> Bool)
-> (V1PodTemplateSpec -> V1PodTemplateSpec -> Bool)
-> Eq V1PodTemplateSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PodTemplateSpec -> V1PodTemplateSpec -> Bool
$c/= :: V1PodTemplateSpec -> V1PodTemplateSpec -> Bool
== :: V1PodTemplateSpec -> V1PodTemplateSpec -> Bool
$c== :: V1PodTemplateSpec -> V1PodTemplateSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PodTemplateSpec
instance A.FromJSON V1PodTemplateSpec where
  parseJSON :: Value -> Parser V1PodTemplateSpec
parseJSON = String
-> (Object -> Parser V1PodTemplateSpec)
-> Value
-> Parser V1PodTemplateSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PodTemplateSpec" ((Object -> Parser V1PodTemplateSpec)
 -> Value -> Parser V1PodTemplateSpec)
-> (Object -> Parser V1PodTemplateSpec)
-> Value
-> Parser V1PodTemplateSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1ObjectMeta -> Maybe V1PodSpec -> V1PodTemplateSpec
V1PodTemplateSpec
      (Maybe V1ObjectMeta -> Maybe V1PodSpec -> V1PodTemplateSpec)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe V1PodSpec -> V1PodTemplateSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe V1PodSpec -> V1PodTemplateSpec)
-> Parser (Maybe V1PodSpec) -> Parser V1PodTemplateSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PodSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")

-- | ToJSON V1PodTemplateSpec
instance A.ToJSON V1PodTemplateSpec where
  toJSON :: V1PodTemplateSpec -> Value
toJSON V1PodTemplateSpec {Maybe V1PodSpec
Maybe V1ObjectMeta
v1PodTemplateSpecSpec :: Maybe V1PodSpec
v1PodTemplateSpecMetadata :: Maybe V1ObjectMeta
v1PodTemplateSpecSpec :: V1PodTemplateSpec -> Maybe V1PodSpec
v1PodTemplateSpecMetadata :: V1PodTemplateSpec -> Maybe V1ObjectMeta
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1PodTemplateSpecMetadata
      , Text
"spec" Text -> Maybe V1PodSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PodSpec
v1PodTemplateSpecSpec
      ]


-- | Construct a value of type 'V1PodTemplateSpec' (by applying it's required fields, if any)
mkV1PodTemplateSpec
  :: V1PodTemplateSpec
mkV1PodTemplateSpec :: V1PodTemplateSpec
mkV1PodTemplateSpec =
  V1PodTemplateSpec :: Maybe V1ObjectMeta -> Maybe V1PodSpec -> V1PodTemplateSpec
V1PodTemplateSpec
  { v1PodTemplateSpecMetadata :: Maybe V1ObjectMeta
v1PodTemplateSpecMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1PodTemplateSpecSpec :: Maybe V1PodSpec
v1PodTemplateSpecSpec = Maybe V1PodSpec
forall a. Maybe a
Nothing
  }

-- ** V1PolicyRule
-- | V1PolicyRule
-- PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.
data V1PolicyRule = V1PolicyRule
  { V1PolicyRule -> Maybe [Text]
v1PolicyRuleApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.
  , V1PolicyRule -> Maybe [Text]
v1PolicyRuleNonResourceUrLs :: !(Maybe [Text]) -- ^ "nonResourceURLs" - NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \&quot;pods\&quot; or \&quot;secrets\&quot;) or non-resource URL paths (such as \&quot;/api\&quot;),  but not both.
  , V1PolicyRule -> Maybe [Text]
v1PolicyRuleResourceNames :: !(Maybe [Text]) -- ^ "resourceNames" - ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.
  , V1PolicyRule -> Maybe [Text]
v1PolicyRuleResources :: !(Maybe [Text]) -- ^ "resources" - Resources is a list of resources this rule applies to.  ResourceAll represents all resources.
  , V1PolicyRule -> [Text]
v1PolicyRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule.  VerbAll represents all kinds.
  } deriving (Int -> V1PolicyRule -> ShowS
[V1PolicyRule] -> ShowS
V1PolicyRule -> String
(Int -> V1PolicyRule -> ShowS)
-> (V1PolicyRule -> String)
-> ([V1PolicyRule] -> ShowS)
-> Show V1PolicyRule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PolicyRule] -> ShowS
$cshowList :: [V1PolicyRule] -> ShowS
show :: V1PolicyRule -> String
$cshow :: V1PolicyRule -> String
showsPrec :: Int -> V1PolicyRule -> ShowS
$cshowsPrec :: Int -> V1PolicyRule -> ShowS
P.Show, V1PolicyRule -> V1PolicyRule -> Bool
(V1PolicyRule -> V1PolicyRule -> Bool)
-> (V1PolicyRule -> V1PolicyRule -> Bool) -> Eq V1PolicyRule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PolicyRule -> V1PolicyRule -> Bool
$c/= :: V1PolicyRule -> V1PolicyRule -> Bool
== :: V1PolicyRule -> V1PolicyRule -> Bool
$c== :: V1PolicyRule -> V1PolicyRule -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PolicyRule
instance A.FromJSON V1PolicyRule where
  parseJSON :: Value -> Parser V1PolicyRule
parseJSON = String
-> (Object -> Parser V1PolicyRule) -> Value -> Parser V1PolicyRule
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PolicyRule" ((Object -> Parser V1PolicyRule) -> Value -> Parser V1PolicyRule)
-> (Object -> Parser V1PolicyRule) -> Value -> Parser V1PolicyRule
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> [Text]
-> V1PolicyRule
V1PolicyRule
      (Maybe [Text]
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe [Text]
 -> [Text]
 -> V1PolicyRule)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe [Text] -> Maybe [Text] -> [Text] -> V1PolicyRule)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiGroups")
      Parser
  (Maybe [Text]
   -> Maybe [Text] -> Maybe [Text] -> [Text] -> V1PolicyRule)
-> Parser (Maybe [Text])
-> Parser (Maybe [Text] -> Maybe [Text] -> [Text] -> V1PolicyRule)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nonResourceURLs")
      Parser (Maybe [Text] -> Maybe [Text] -> [Text] -> V1PolicyRule)
-> Parser (Maybe [Text])
-> Parser (Maybe [Text] -> [Text] -> V1PolicyRule)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resourceNames")
      Parser (Maybe [Text] -> [Text] -> V1PolicyRule)
-> Parser (Maybe [Text]) -> Parser ([Text] -> V1PolicyRule)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resources")
      Parser ([Text] -> V1PolicyRule)
-> Parser [Text] -> Parser V1PolicyRule
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"verbs")

-- | ToJSON V1PolicyRule
instance A.ToJSON V1PolicyRule where
  toJSON :: V1PolicyRule -> Value
toJSON V1PolicyRule {[Text]
Maybe [Text]
v1PolicyRuleVerbs :: [Text]
v1PolicyRuleResources :: Maybe [Text]
v1PolicyRuleResourceNames :: Maybe [Text]
v1PolicyRuleNonResourceUrLs :: Maybe [Text]
v1PolicyRuleApiGroups :: Maybe [Text]
v1PolicyRuleVerbs :: V1PolicyRule -> [Text]
v1PolicyRuleResources :: V1PolicyRule -> Maybe [Text]
v1PolicyRuleResourceNames :: V1PolicyRule -> Maybe [Text]
v1PolicyRuleNonResourceUrLs :: V1PolicyRule -> Maybe [Text]
v1PolicyRuleApiGroups :: V1PolicyRule -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiGroups" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1PolicyRuleApiGroups
      , Text
"nonResourceURLs" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1PolicyRuleNonResourceUrLs
      , Text
"resourceNames" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1PolicyRuleResourceNames
      , Text
"resources" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1PolicyRuleResources
      , Text
"verbs" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1PolicyRuleVerbs
      ]


-- | Construct a value of type 'V1PolicyRule' (by applying it's required fields, if any)
mkV1PolicyRule
  :: [Text] -- ^ 'v1PolicyRuleVerbs': Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule.  VerbAll represents all kinds.
  -> V1PolicyRule
mkV1PolicyRule :: [Text] -> V1PolicyRule
mkV1PolicyRule [Text]
v1PolicyRuleVerbs =
  V1PolicyRule :: Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> [Text]
-> V1PolicyRule
V1PolicyRule
  { v1PolicyRuleApiGroups :: Maybe [Text]
v1PolicyRuleApiGroups = Maybe [Text]
forall a. Maybe a
Nothing
  , v1PolicyRuleNonResourceUrLs :: Maybe [Text]
v1PolicyRuleNonResourceUrLs = Maybe [Text]
forall a. Maybe a
Nothing
  , v1PolicyRuleResourceNames :: Maybe [Text]
v1PolicyRuleResourceNames = Maybe [Text]
forall a. Maybe a
Nothing
  , v1PolicyRuleResources :: Maybe [Text]
v1PolicyRuleResources = Maybe [Text]
forall a. Maybe a
Nothing
  , [Text]
v1PolicyRuleVerbs :: [Text]
v1PolicyRuleVerbs :: [Text]
v1PolicyRuleVerbs
  }

-- ** V1PortworxVolumeSource
-- | V1PortworxVolumeSource
-- PortworxVolumeSource represents a Portworx volume resource.
data V1PortworxVolumeSource = V1PortworxVolumeSource
  { V1PortworxVolumeSource -> Maybe Text
v1PortworxVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \&quot;ext4\&quot;, \&quot;xfs\&quot;. Implicitly inferred to be \&quot;ext4\&quot; if unspecified.
  , V1PortworxVolumeSource -> Maybe Bool
v1PortworxVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
  , V1PortworxVolumeSource -> Text
v1PortworxVolumeSourceVolumeId :: !(Text) -- ^ /Required/ "volumeID" - VolumeID uniquely identifies a Portworx volume
  } deriving (Int -> V1PortworxVolumeSource -> ShowS
[V1PortworxVolumeSource] -> ShowS
V1PortworxVolumeSource -> String
(Int -> V1PortworxVolumeSource -> ShowS)
-> (V1PortworxVolumeSource -> String)
-> ([V1PortworxVolumeSource] -> ShowS)
-> Show V1PortworxVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PortworxVolumeSource] -> ShowS
$cshowList :: [V1PortworxVolumeSource] -> ShowS
show :: V1PortworxVolumeSource -> String
$cshow :: V1PortworxVolumeSource -> String
showsPrec :: Int -> V1PortworxVolumeSource -> ShowS
$cshowsPrec :: Int -> V1PortworxVolumeSource -> ShowS
P.Show, V1PortworxVolumeSource -> V1PortworxVolumeSource -> Bool
(V1PortworxVolumeSource -> V1PortworxVolumeSource -> Bool)
-> (V1PortworxVolumeSource -> V1PortworxVolumeSource -> Bool)
-> Eq V1PortworxVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PortworxVolumeSource -> V1PortworxVolumeSource -> Bool
$c/= :: V1PortworxVolumeSource -> V1PortworxVolumeSource -> Bool
== :: V1PortworxVolumeSource -> V1PortworxVolumeSource -> Bool
$c== :: V1PortworxVolumeSource -> V1PortworxVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PortworxVolumeSource
instance A.FromJSON V1PortworxVolumeSource where
  parseJSON :: Value -> Parser V1PortworxVolumeSource
parseJSON = String
-> (Object -> Parser V1PortworxVolumeSource)
-> Value
-> Parser V1PortworxVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PortworxVolumeSource" ((Object -> Parser V1PortworxVolumeSource)
 -> Value -> Parser V1PortworxVolumeSource)
-> (Object -> Parser V1PortworxVolumeSource)
-> Value
-> Parser V1PortworxVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Bool -> Text -> V1PortworxVolumeSource
V1PortworxVolumeSource
      (Maybe Text -> Maybe Bool -> Text -> V1PortworxVolumeSource)
-> Parser (Maybe Text)
-> Parser (Maybe Bool -> Text -> V1PortworxVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser (Maybe Bool -> Text -> V1PortworxVolumeSource)
-> Parser (Maybe Bool) -> Parser (Text -> V1PortworxVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser (Text -> V1PortworxVolumeSource)
-> Parser Text -> Parser V1PortworxVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"volumeID")

-- | ToJSON V1PortworxVolumeSource
instance A.ToJSON V1PortworxVolumeSource where
  toJSON :: V1PortworxVolumeSource -> Value
toJSON V1PortworxVolumeSource {Maybe Bool
Maybe Text
Text
v1PortworxVolumeSourceVolumeId :: Text
v1PortworxVolumeSourceReadOnly :: Maybe Bool
v1PortworxVolumeSourceFsType :: Maybe Text
v1PortworxVolumeSourceVolumeId :: V1PortworxVolumeSource -> Text
v1PortworxVolumeSourceReadOnly :: V1PortworxVolumeSource -> Maybe Bool
v1PortworxVolumeSourceFsType :: V1PortworxVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PortworxVolumeSourceFsType
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1PortworxVolumeSourceReadOnly
      , Text
"volumeID" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1PortworxVolumeSourceVolumeId
      ]


-- | Construct a value of type 'V1PortworxVolumeSource' (by applying it's required fields, if any)
mkV1PortworxVolumeSource
  :: Text -- ^ 'v1PortworxVolumeSourceVolumeId': VolumeID uniquely identifies a Portworx volume
  -> V1PortworxVolumeSource
mkV1PortworxVolumeSource :: Text -> V1PortworxVolumeSource
mkV1PortworxVolumeSource Text
v1PortworxVolumeSourceVolumeId =
  V1PortworxVolumeSource :: Maybe Text -> Maybe Bool -> Text -> V1PortworxVolumeSource
V1PortworxVolumeSource
  { v1PortworxVolumeSourceFsType :: Maybe Text
v1PortworxVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , v1PortworxVolumeSourceReadOnly :: Maybe Bool
v1PortworxVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , Text
v1PortworxVolumeSourceVolumeId :: Text
v1PortworxVolumeSourceVolumeId :: Text
v1PortworxVolumeSourceVolumeId
  }

-- ** V1Preconditions
-- | V1Preconditions
-- Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.
data V1Preconditions = V1Preconditions
  { V1Preconditions -> Maybe Text
v1PreconditionsResourceVersion :: !(Maybe Text) -- ^ "resourceVersion" - Specifies the target ResourceVersion
  , V1Preconditions -> Maybe Text
v1PreconditionsUid :: !(Maybe Text) -- ^ "uid" - Specifies the target UID.
  } deriving (Int -> V1Preconditions -> ShowS
[V1Preconditions] -> ShowS
V1Preconditions -> String
(Int -> V1Preconditions -> ShowS)
-> (V1Preconditions -> String)
-> ([V1Preconditions] -> ShowS)
-> Show V1Preconditions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Preconditions] -> ShowS
$cshowList :: [V1Preconditions] -> ShowS
show :: V1Preconditions -> String
$cshow :: V1Preconditions -> String
showsPrec :: Int -> V1Preconditions -> ShowS
$cshowsPrec :: Int -> V1Preconditions -> ShowS
P.Show, V1Preconditions -> V1Preconditions -> Bool
(V1Preconditions -> V1Preconditions -> Bool)
-> (V1Preconditions -> V1Preconditions -> Bool)
-> Eq V1Preconditions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Preconditions -> V1Preconditions -> Bool
$c/= :: V1Preconditions -> V1Preconditions -> Bool
== :: V1Preconditions -> V1Preconditions -> Bool
$c== :: V1Preconditions -> V1Preconditions -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Preconditions
instance A.FromJSON V1Preconditions where
  parseJSON :: Value -> Parser V1Preconditions
parseJSON = String
-> (Object -> Parser V1Preconditions)
-> Value
-> Parser V1Preconditions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Preconditions" ((Object -> Parser V1Preconditions)
 -> Value -> Parser V1Preconditions)
-> (Object -> Parser V1Preconditions)
-> Value
-> Parser V1Preconditions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Text -> V1Preconditions
V1Preconditions
      (Maybe Text -> Maybe Text -> V1Preconditions)
-> Parser (Maybe Text) -> Parser (Maybe Text -> V1Preconditions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resourceVersion")
      Parser (Maybe Text -> V1Preconditions)
-> Parser (Maybe Text) -> Parser V1Preconditions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"uid")

-- | ToJSON V1Preconditions
instance A.ToJSON V1Preconditions where
  toJSON :: V1Preconditions -> Value
toJSON V1Preconditions {Maybe Text
v1PreconditionsUid :: Maybe Text
v1PreconditionsResourceVersion :: Maybe Text
v1PreconditionsUid :: V1Preconditions -> Maybe Text
v1PreconditionsResourceVersion :: V1Preconditions -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"resourceVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PreconditionsResourceVersion
      , Text
"uid" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PreconditionsUid
      ]


-- | Construct a value of type 'V1Preconditions' (by applying it's required fields, if any)
mkV1Preconditions
  :: V1Preconditions
mkV1Preconditions :: V1Preconditions
mkV1Preconditions =
  V1Preconditions :: Maybe Text -> Maybe Text -> V1Preconditions
V1Preconditions
  { v1PreconditionsResourceVersion :: Maybe Text
v1PreconditionsResourceVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1PreconditionsUid :: Maybe Text
v1PreconditionsUid = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1PreferredSchedulingTerm
-- | V1PreferredSchedulingTerm
-- An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
data V1PreferredSchedulingTerm = V1PreferredSchedulingTerm
  { V1PreferredSchedulingTerm -> V1NodeSelectorTerm
v1PreferredSchedulingTermPreference :: !(V1NodeSelectorTerm) -- ^ /Required/ "preference"
  , V1PreferredSchedulingTerm -> Int
v1PreferredSchedulingTermWeight :: !(Int) -- ^ /Required/ "weight" - Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  } deriving (Int -> V1PreferredSchedulingTerm -> ShowS
[V1PreferredSchedulingTerm] -> ShowS
V1PreferredSchedulingTerm -> String
(Int -> V1PreferredSchedulingTerm -> ShowS)
-> (V1PreferredSchedulingTerm -> String)
-> ([V1PreferredSchedulingTerm] -> ShowS)
-> Show V1PreferredSchedulingTerm
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PreferredSchedulingTerm] -> ShowS
$cshowList :: [V1PreferredSchedulingTerm] -> ShowS
show :: V1PreferredSchedulingTerm -> String
$cshow :: V1PreferredSchedulingTerm -> String
showsPrec :: Int -> V1PreferredSchedulingTerm -> ShowS
$cshowsPrec :: Int -> V1PreferredSchedulingTerm -> ShowS
P.Show, V1PreferredSchedulingTerm -> V1PreferredSchedulingTerm -> Bool
(V1PreferredSchedulingTerm -> V1PreferredSchedulingTerm -> Bool)
-> (V1PreferredSchedulingTerm -> V1PreferredSchedulingTerm -> Bool)
-> Eq V1PreferredSchedulingTerm
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PreferredSchedulingTerm -> V1PreferredSchedulingTerm -> Bool
$c/= :: V1PreferredSchedulingTerm -> V1PreferredSchedulingTerm -> Bool
== :: V1PreferredSchedulingTerm -> V1PreferredSchedulingTerm -> Bool
$c== :: V1PreferredSchedulingTerm -> V1PreferredSchedulingTerm -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PreferredSchedulingTerm
instance A.FromJSON V1PreferredSchedulingTerm where
  parseJSON :: Value -> Parser V1PreferredSchedulingTerm
parseJSON = String
-> (Object -> Parser V1PreferredSchedulingTerm)
-> Value
-> Parser V1PreferredSchedulingTerm
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PreferredSchedulingTerm" ((Object -> Parser V1PreferredSchedulingTerm)
 -> Value -> Parser V1PreferredSchedulingTerm)
-> (Object -> Parser V1PreferredSchedulingTerm)
-> Value
-> Parser V1PreferredSchedulingTerm
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    V1NodeSelectorTerm -> Int -> V1PreferredSchedulingTerm
V1PreferredSchedulingTerm
      (V1NodeSelectorTerm -> Int -> V1PreferredSchedulingTerm)
-> Parser V1NodeSelectorTerm
-> Parser (Int -> V1PreferredSchedulingTerm)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser V1NodeSelectorTerm
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"preference")
      Parser (Int -> V1PreferredSchedulingTerm)
-> Parser Int -> Parser V1PreferredSchedulingTerm
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"weight")

-- | ToJSON V1PreferredSchedulingTerm
instance A.ToJSON V1PreferredSchedulingTerm where
  toJSON :: V1PreferredSchedulingTerm -> Value
toJSON V1PreferredSchedulingTerm {Int
V1NodeSelectorTerm
v1PreferredSchedulingTermWeight :: Int
v1PreferredSchedulingTermPreference :: V1NodeSelectorTerm
v1PreferredSchedulingTermWeight :: V1PreferredSchedulingTerm -> Int
v1PreferredSchedulingTermPreference :: V1PreferredSchedulingTerm -> V1NodeSelectorTerm
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"preference" Text -> V1NodeSelectorTerm -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1NodeSelectorTerm
v1PreferredSchedulingTermPreference
      , Text
"weight" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1PreferredSchedulingTermWeight
      ]


-- | Construct a value of type 'V1PreferredSchedulingTerm' (by applying it's required fields, if any)
mkV1PreferredSchedulingTerm
  :: V1NodeSelectorTerm -- ^ 'v1PreferredSchedulingTermPreference' 
  -> Int -- ^ 'v1PreferredSchedulingTermWeight': Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  -> V1PreferredSchedulingTerm
mkV1PreferredSchedulingTerm :: V1NodeSelectorTerm -> Int -> V1PreferredSchedulingTerm
mkV1PreferredSchedulingTerm V1NodeSelectorTerm
v1PreferredSchedulingTermPreference Int
v1PreferredSchedulingTermWeight =
  V1PreferredSchedulingTerm :: V1NodeSelectorTerm -> Int -> V1PreferredSchedulingTerm
V1PreferredSchedulingTerm
  { V1NodeSelectorTerm
v1PreferredSchedulingTermPreference :: V1NodeSelectorTerm
v1PreferredSchedulingTermPreference :: V1NodeSelectorTerm
v1PreferredSchedulingTermPreference
  , Int
v1PreferredSchedulingTermWeight :: Int
v1PreferredSchedulingTermWeight :: Int
v1PreferredSchedulingTermWeight
  }

-- ** V1PriorityClass
-- | V1PriorityClass
-- PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.
data V1PriorityClass = V1PriorityClass
  { V1PriorityClass -> Maybe Text
v1PriorityClassApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1PriorityClass -> Maybe Text
v1PriorityClassDescription :: !(Maybe Text) -- ^ "description" - description is an arbitrary string that usually provides guidelines on when this priority class should be used.
  , V1PriorityClass -> Maybe Bool
v1PriorityClassGlobalDefault :: !(Maybe Bool) -- ^ "globalDefault" - globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as &#x60;globalDefault&#x60;. However, if more than one PriorityClasses exists with their &#x60;globalDefault&#x60; field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.
  , V1PriorityClass -> Maybe Text
v1PriorityClassKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1PriorityClass -> Maybe V1ObjectMeta
v1PriorityClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1PriorityClass -> Maybe Text
v1PriorityClassPreemptionPolicy :: !(Maybe Text) -- ^ "preemptionPolicy" - PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.
  , V1PriorityClass -> Int
v1PriorityClassValue :: !(Int) -- ^ /Required/ "value" - The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.
  } deriving (Int -> V1PriorityClass -> ShowS
[V1PriorityClass] -> ShowS
V1PriorityClass -> String
(Int -> V1PriorityClass -> ShowS)
-> (V1PriorityClass -> String)
-> ([V1PriorityClass] -> ShowS)
-> Show V1PriorityClass
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PriorityClass] -> ShowS
$cshowList :: [V1PriorityClass] -> ShowS
show :: V1PriorityClass -> String
$cshow :: V1PriorityClass -> String
showsPrec :: Int -> V1PriorityClass -> ShowS
$cshowsPrec :: Int -> V1PriorityClass -> ShowS
P.Show, V1PriorityClass -> V1PriorityClass -> Bool
(V1PriorityClass -> V1PriorityClass -> Bool)
-> (V1PriorityClass -> V1PriorityClass -> Bool)
-> Eq V1PriorityClass
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PriorityClass -> V1PriorityClass -> Bool
$c/= :: V1PriorityClass -> V1PriorityClass -> Bool
== :: V1PriorityClass -> V1PriorityClass -> Bool
$c== :: V1PriorityClass -> V1PriorityClass -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PriorityClass
instance A.FromJSON V1PriorityClass where
  parseJSON :: Value -> Parser V1PriorityClass
parseJSON = String
-> (Object -> Parser V1PriorityClass)
-> Value
-> Parser V1PriorityClass
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PriorityClass" ((Object -> Parser V1PriorityClass)
 -> Value -> Parser V1PriorityClass)
-> (Object -> Parser V1PriorityClass)
-> Value
-> Parser V1PriorityClass
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe Text
-> Int
-> V1PriorityClass
V1PriorityClass
      (Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe Text
 -> Int
 -> V1PriorityClass)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe Text
      -> Int
      -> V1PriorityClass)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe Text
   -> Int
   -> V1PriorityClass)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe Text
      -> Int
      -> V1PriorityClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"description")
      Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe Text
   -> Int
   -> V1PriorityClass)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta -> Maybe Text -> Int -> V1PriorityClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"globalDefault")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta -> Maybe Text -> Int -> V1PriorityClass)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta -> Maybe Text -> Int -> V1PriorityClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ObjectMeta -> Maybe Text -> Int -> V1PriorityClass)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe Text -> Int -> V1PriorityClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe Text -> Int -> V1PriorityClass)
-> Parser (Maybe Text) -> Parser (Int -> V1PriorityClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"preemptionPolicy")
      Parser (Int -> V1PriorityClass)
-> Parser Int -> Parser V1PriorityClass
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"value")

-- | ToJSON V1PriorityClass
instance A.ToJSON V1PriorityClass where
  toJSON :: V1PriorityClass -> Value
toJSON V1PriorityClass {Int
Maybe Bool
Maybe Text
Maybe V1ObjectMeta
v1PriorityClassValue :: Int
v1PriorityClassPreemptionPolicy :: Maybe Text
v1PriorityClassMetadata :: Maybe V1ObjectMeta
v1PriorityClassKind :: Maybe Text
v1PriorityClassGlobalDefault :: Maybe Bool
v1PriorityClassDescription :: Maybe Text
v1PriorityClassApiVersion :: Maybe Text
v1PriorityClassValue :: V1PriorityClass -> Int
v1PriorityClassPreemptionPolicy :: V1PriorityClass -> Maybe Text
v1PriorityClassMetadata :: V1PriorityClass -> Maybe V1ObjectMeta
v1PriorityClassKind :: V1PriorityClass -> Maybe Text
v1PriorityClassGlobalDefault :: V1PriorityClass -> Maybe Bool
v1PriorityClassDescription :: V1PriorityClass -> Maybe Text
v1PriorityClassApiVersion :: V1PriorityClass -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PriorityClassApiVersion
      , Text
"description" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PriorityClassDescription
      , Text
"globalDefault" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1PriorityClassGlobalDefault
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PriorityClassKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1PriorityClassMetadata
      , Text
"preemptionPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PriorityClassPreemptionPolicy
      , Text
"value" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1PriorityClassValue
      ]


-- | Construct a value of type 'V1PriorityClass' (by applying it's required fields, if any)
mkV1PriorityClass
  :: Int -- ^ 'v1PriorityClassValue': The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.
  -> V1PriorityClass
mkV1PriorityClass :: Int -> V1PriorityClass
mkV1PriorityClass Int
v1PriorityClassValue =
  V1PriorityClass :: Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe Text
-> Int
-> V1PriorityClass
V1PriorityClass
  { v1PriorityClassApiVersion :: Maybe Text
v1PriorityClassApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1PriorityClassDescription :: Maybe Text
v1PriorityClassDescription = Maybe Text
forall a. Maybe a
Nothing
  , v1PriorityClassGlobalDefault :: Maybe Bool
v1PriorityClassGlobalDefault = Maybe Bool
forall a. Maybe a
Nothing
  , v1PriorityClassKind :: Maybe Text
v1PriorityClassKind = Maybe Text
forall a. Maybe a
Nothing
  , v1PriorityClassMetadata :: Maybe V1ObjectMeta
v1PriorityClassMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1PriorityClassPreemptionPolicy :: Maybe Text
v1PriorityClassPreemptionPolicy = Maybe Text
forall a. Maybe a
Nothing
  , Int
v1PriorityClassValue :: Int
v1PriorityClassValue :: Int
v1PriorityClassValue
  }

-- ** V1PriorityClassList
-- | V1PriorityClassList
-- PriorityClassList is a collection of priority classes.
data V1PriorityClassList = V1PriorityClassList
  { V1PriorityClassList -> Maybe Text
v1PriorityClassListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1PriorityClassList -> [V1PriorityClass]
v1PriorityClassListItems :: !([V1PriorityClass]) -- ^ /Required/ "items" - items is the list of PriorityClasses
  , V1PriorityClassList -> Maybe Text
v1PriorityClassListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1PriorityClassList -> Maybe V1ListMeta
v1PriorityClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1PriorityClassList -> ShowS
[V1PriorityClassList] -> ShowS
V1PriorityClassList -> String
(Int -> V1PriorityClassList -> ShowS)
-> (V1PriorityClassList -> String)
-> ([V1PriorityClassList] -> ShowS)
-> Show V1PriorityClassList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1PriorityClassList] -> ShowS
$cshowList :: [V1PriorityClassList] -> ShowS
show :: V1PriorityClassList -> String
$cshow :: V1PriorityClassList -> String
showsPrec :: Int -> V1PriorityClassList -> ShowS
$cshowsPrec :: Int -> V1PriorityClassList -> ShowS
P.Show, V1PriorityClassList -> V1PriorityClassList -> Bool
(V1PriorityClassList -> V1PriorityClassList -> Bool)
-> (V1PriorityClassList -> V1PriorityClassList -> Bool)
-> Eq V1PriorityClassList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1PriorityClassList -> V1PriorityClassList -> Bool
$c/= :: V1PriorityClassList -> V1PriorityClassList -> Bool
== :: V1PriorityClassList -> V1PriorityClassList -> Bool
$c== :: V1PriorityClassList -> V1PriorityClassList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1PriorityClassList
instance A.FromJSON V1PriorityClassList where
  parseJSON :: Value -> Parser V1PriorityClassList
parseJSON = String
-> (Object -> Parser V1PriorityClassList)
-> Value
-> Parser V1PriorityClassList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1PriorityClassList" ((Object -> Parser V1PriorityClassList)
 -> Value -> Parser V1PriorityClassList)
-> (Object -> Parser V1PriorityClassList)
-> Value
-> Parser V1PriorityClassList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1PriorityClass]
-> Maybe Text
-> Maybe V1ListMeta
-> V1PriorityClassList
V1PriorityClassList
      (Maybe Text
 -> [V1PriorityClass]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1PriorityClassList)
-> Parser (Maybe Text)
-> Parser
     ([V1PriorityClass]
      -> Maybe Text -> Maybe V1ListMeta -> V1PriorityClassList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1PriorityClass]
   -> Maybe Text -> Maybe V1ListMeta -> V1PriorityClassList)
-> Parser [V1PriorityClass]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1PriorityClassList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1PriorityClass]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1PriorityClassList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1PriorityClassList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1PriorityClassList)
-> Parser (Maybe V1ListMeta) -> Parser V1PriorityClassList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1PriorityClassList
instance A.ToJSON V1PriorityClassList where
  toJSON :: V1PriorityClassList -> Value
toJSON V1PriorityClassList {[V1PriorityClass]
Maybe Text
Maybe V1ListMeta
v1PriorityClassListMetadata :: Maybe V1ListMeta
v1PriorityClassListKind :: Maybe Text
v1PriorityClassListItems :: [V1PriorityClass]
v1PriorityClassListApiVersion :: Maybe Text
v1PriorityClassListMetadata :: V1PriorityClassList -> Maybe V1ListMeta
v1PriorityClassListKind :: V1PriorityClassList -> Maybe Text
v1PriorityClassListItems :: V1PriorityClassList -> [V1PriorityClass]
v1PriorityClassListApiVersion :: V1PriorityClassList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PriorityClassListApiVersion
      , Text
"items" Text -> [V1PriorityClass] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1PriorityClass]
v1PriorityClassListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1PriorityClassListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1PriorityClassListMetadata
      ]


-- | Construct a value of type 'V1PriorityClassList' (by applying it's required fields, if any)
mkV1PriorityClassList
  :: [V1PriorityClass] -- ^ 'v1PriorityClassListItems': items is the list of PriorityClasses
  -> V1PriorityClassList
mkV1PriorityClassList :: [V1PriorityClass] -> V1PriorityClassList
mkV1PriorityClassList [V1PriorityClass]
v1PriorityClassListItems =
  V1PriorityClassList :: Maybe Text
-> [V1PriorityClass]
-> Maybe Text
-> Maybe V1ListMeta
-> V1PriorityClassList
V1PriorityClassList
  { v1PriorityClassListApiVersion :: Maybe Text
v1PriorityClassListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1PriorityClass]
v1PriorityClassListItems :: [V1PriorityClass]
v1PriorityClassListItems :: [V1PriorityClass]
v1PriorityClassListItems
  , v1PriorityClassListKind :: Maybe Text
v1PriorityClassListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1PriorityClassListMetadata :: Maybe V1ListMeta
v1PriorityClassListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1Probe
-- | V1Probe
-- Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
data V1Probe = V1Probe
  { V1Probe -> Maybe V1ExecAction
v1ProbeExec :: !(Maybe V1ExecAction) -- ^ "exec"
  , V1Probe -> Maybe Int
v1ProbeFailureThreshold :: !(Maybe Int) -- ^ "failureThreshold" - Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  , V1Probe -> Maybe V1HTTPGetAction
v1ProbeHttpGet :: !(Maybe V1HTTPGetAction) -- ^ "httpGet"
  , V1Probe -> Maybe Int
v1ProbeInitialDelaySeconds :: !(Maybe Int) -- ^ "initialDelaySeconds" - Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  , V1Probe -> Maybe Int
v1ProbePeriodSeconds :: !(Maybe Int) -- ^ "periodSeconds" - How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  , V1Probe -> Maybe Int
v1ProbeSuccessThreshold :: !(Maybe Int) -- ^ "successThreshold" - Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
  , V1Probe -> Maybe V1TCPSocketAction
v1ProbeTcpSocket :: !(Maybe V1TCPSocketAction) -- ^ "tcpSocket"
  , V1Probe -> Maybe Int
v1ProbeTimeoutSeconds :: !(Maybe Int) -- ^ "timeoutSeconds" - Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
  } deriving (Int -> V1Probe -> ShowS
[V1Probe] -> ShowS
V1Probe -> String
(Int -> V1Probe -> ShowS)
-> (V1Probe -> String) -> ([V1Probe] -> ShowS) -> Show V1Probe
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Probe] -> ShowS
$cshowList :: [V1Probe] -> ShowS
show :: V1Probe -> String
$cshow :: V1Probe -> String
showsPrec :: Int -> V1Probe -> ShowS
$cshowsPrec :: Int -> V1Probe -> ShowS
P.Show, V1Probe -> V1Probe -> Bool
(V1Probe -> V1Probe -> Bool)
-> (V1Probe -> V1Probe -> Bool) -> Eq V1Probe
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Probe -> V1Probe -> Bool
$c/= :: V1Probe -> V1Probe -> Bool
== :: V1Probe -> V1Probe -> Bool
$c== :: V1Probe -> V1Probe -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Probe
instance A.FromJSON V1Probe where
  parseJSON :: Value -> Parser V1Probe
parseJSON = String -> (Object -> Parser V1Probe) -> Value -> Parser V1Probe
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Probe" ((Object -> Parser V1Probe) -> Value -> Parser V1Probe)
-> (Object -> Parser V1Probe) -> Value -> Parser V1Probe
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1ExecAction
-> Maybe Int
-> Maybe V1HTTPGetAction
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe V1TCPSocketAction
-> Maybe Int
-> V1Probe
V1Probe
      (Maybe V1ExecAction
 -> Maybe Int
 -> Maybe V1HTTPGetAction
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe V1TCPSocketAction
 -> Maybe Int
 -> V1Probe)
-> Parser (Maybe V1ExecAction)
-> Parser
     (Maybe Int
      -> Maybe V1HTTPGetAction
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe V1TCPSocketAction
      -> Maybe Int
      -> V1Probe)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1ExecAction)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"exec")
      Parser
  (Maybe Int
   -> Maybe V1HTTPGetAction
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe V1TCPSocketAction
   -> Maybe Int
   -> V1Probe)
-> Parser (Maybe Int)
-> Parser
     (Maybe V1HTTPGetAction
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe V1TCPSocketAction
      -> Maybe Int
      -> V1Probe)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"failureThreshold")
      Parser
  (Maybe V1HTTPGetAction
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe V1TCPSocketAction
   -> Maybe Int
   -> V1Probe)
-> Parser (Maybe V1HTTPGetAction)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe V1TCPSocketAction
      -> Maybe Int
      -> V1Probe)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1HTTPGetAction)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"httpGet")
      Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe V1TCPSocketAction
   -> Maybe Int
   -> V1Probe)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe Int -> Maybe V1TCPSocketAction -> Maybe Int -> V1Probe)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"initialDelaySeconds")
      Parser
  (Maybe Int
   -> Maybe Int -> Maybe V1TCPSocketAction -> Maybe Int -> V1Probe)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int -> Maybe V1TCPSocketAction -> Maybe Int -> V1Probe)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"periodSeconds")
      Parser
  (Maybe Int -> Maybe V1TCPSocketAction -> Maybe Int -> V1Probe)
-> Parser (Maybe Int)
-> Parser (Maybe V1TCPSocketAction -> Maybe Int -> V1Probe)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"successThreshold")
      Parser (Maybe V1TCPSocketAction -> Maybe Int -> V1Probe)
-> Parser (Maybe V1TCPSocketAction)
-> Parser (Maybe Int -> V1Probe)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1TCPSocketAction)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"tcpSocket")
      Parser (Maybe Int -> V1Probe)
-> Parser (Maybe Int) -> Parser V1Probe
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"timeoutSeconds")

-- | ToJSON V1Probe
instance A.ToJSON V1Probe where
  toJSON :: V1Probe -> Value
toJSON V1Probe {Maybe Int
Maybe V1TCPSocketAction
Maybe V1HTTPGetAction
Maybe V1ExecAction
v1ProbeTimeoutSeconds :: Maybe Int
v1ProbeTcpSocket :: Maybe V1TCPSocketAction
v1ProbeSuccessThreshold :: Maybe Int
v1ProbePeriodSeconds :: Maybe Int
v1ProbeInitialDelaySeconds :: Maybe Int
v1ProbeHttpGet :: Maybe V1HTTPGetAction
v1ProbeFailureThreshold :: Maybe Int
v1ProbeExec :: Maybe V1ExecAction
v1ProbeTimeoutSeconds :: V1Probe -> Maybe Int
v1ProbeTcpSocket :: V1Probe -> Maybe V1TCPSocketAction
v1ProbeSuccessThreshold :: V1Probe -> Maybe Int
v1ProbePeriodSeconds :: V1Probe -> Maybe Int
v1ProbeInitialDelaySeconds :: V1Probe -> Maybe Int
v1ProbeHttpGet :: V1Probe -> Maybe V1HTTPGetAction
v1ProbeFailureThreshold :: V1Probe -> Maybe Int
v1ProbeExec :: V1Probe -> Maybe V1ExecAction
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"exec" Text -> Maybe V1ExecAction -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ExecAction
v1ProbeExec
      , Text
"failureThreshold" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ProbeFailureThreshold
      , Text
"httpGet" Text -> Maybe V1HTTPGetAction -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1HTTPGetAction
v1ProbeHttpGet
      , Text
"initialDelaySeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ProbeInitialDelaySeconds
      , Text
"periodSeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ProbePeriodSeconds
      , Text
"successThreshold" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ProbeSuccessThreshold
      , Text
"tcpSocket" Text -> Maybe V1TCPSocketAction -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1TCPSocketAction
v1ProbeTcpSocket
      , Text
"timeoutSeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ProbeTimeoutSeconds
      ]


-- | Construct a value of type 'V1Probe' (by applying it's required fields, if any)
mkV1Probe
  :: V1Probe
mkV1Probe :: V1Probe
mkV1Probe =
  V1Probe :: Maybe V1ExecAction
-> Maybe Int
-> Maybe V1HTTPGetAction
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe V1TCPSocketAction
-> Maybe Int
-> V1Probe
V1Probe
  { v1ProbeExec :: Maybe V1ExecAction
v1ProbeExec = Maybe V1ExecAction
forall a. Maybe a
Nothing
  , v1ProbeFailureThreshold :: Maybe Int
v1ProbeFailureThreshold = Maybe Int
forall a. Maybe a
Nothing
  , v1ProbeHttpGet :: Maybe V1HTTPGetAction
v1ProbeHttpGet = Maybe V1HTTPGetAction
forall a. Maybe a
Nothing
  , v1ProbeInitialDelaySeconds :: Maybe Int
v1ProbeInitialDelaySeconds = Maybe Int
forall a. Maybe a
Nothing
  , v1ProbePeriodSeconds :: Maybe Int
v1ProbePeriodSeconds = Maybe Int
forall a. Maybe a
Nothing
  , v1ProbeSuccessThreshold :: Maybe Int
v1ProbeSuccessThreshold = Maybe Int
forall a. Maybe a
Nothing
  , v1ProbeTcpSocket :: Maybe V1TCPSocketAction
v1ProbeTcpSocket = Maybe V1TCPSocketAction
forall a. Maybe a
Nothing
  , v1ProbeTimeoutSeconds :: Maybe Int
v1ProbeTimeoutSeconds = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1ProjectedVolumeSource
-- | V1ProjectedVolumeSource
-- Represents a projected volume source
data V1ProjectedVolumeSource = V1ProjectedVolumeSource
  { V1ProjectedVolumeSource -> Maybe Int
v1ProjectedVolumeSourceDefaultMode :: !(Maybe Int) -- ^ "defaultMode" - Mode bits to use on created files by default. Must be a value between 0 and 0777. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  , V1ProjectedVolumeSource -> [V1VolumeProjection]
v1ProjectedVolumeSourceSources :: !([V1VolumeProjection]) -- ^ /Required/ "sources" - list of volume projections
  } deriving (Int -> V1ProjectedVolumeSource -> ShowS
[V1ProjectedVolumeSource] -> ShowS
V1ProjectedVolumeSource -> String
(Int -> V1ProjectedVolumeSource -> ShowS)
-> (V1ProjectedVolumeSource -> String)
-> ([V1ProjectedVolumeSource] -> ShowS)
-> Show V1ProjectedVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ProjectedVolumeSource] -> ShowS
$cshowList :: [V1ProjectedVolumeSource] -> ShowS
show :: V1ProjectedVolumeSource -> String
$cshow :: V1ProjectedVolumeSource -> String
showsPrec :: Int -> V1ProjectedVolumeSource -> ShowS
$cshowsPrec :: Int -> V1ProjectedVolumeSource -> ShowS
P.Show, V1ProjectedVolumeSource -> V1ProjectedVolumeSource -> Bool
(V1ProjectedVolumeSource -> V1ProjectedVolumeSource -> Bool)
-> (V1ProjectedVolumeSource -> V1ProjectedVolumeSource -> Bool)
-> Eq V1ProjectedVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ProjectedVolumeSource -> V1ProjectedVolumeSource -> Bool
$c/= :: V1ProjectedVolumeSource -> V1ProjectedVolumeSource -> Bool
== :: V1ProjectedVolumeSource -> V1ProjectedVolumeSource -> Bool
$c== :: V1ProjectedVolumeSource -> V1ProjectedVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ProjectedVolumeSource
instance A.FromJSON V1ProjectedVolumeSource where
  parseJSON :: Value -> Parser V1ProjectedVolumeSource
parseJSON = String
-> (Object -> Parser V1ProjectedVolumeSource)
-> Value
-> Parser V1ProjectedVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ProjectedVolumeSource" ((Object -> Parser V1ProjectedVolumeSource)
 -> Value -> Parser V1ProjectedVolumeSource)
-> (Object -> Parser V1ProjectedVolumeSource)
-> Value
-> Parser V1ProjectedVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int -> [V1VolumeProjection] -> V1ProjectedVolumeSource
V1ProjectedVolumeSource
      (Maybe Int -> [V1VolumeProjection] -> V1ProjectedVolumeSource)
-> Parser (Maybe Int)
-> Parser ([V1VolumeProjection] -> V1ProjectedVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"defaultMode")
      Parser ([V1VolumeProjection] -> V1ProjectedVolumeSource)
-> Parser [V1VolumeProjection] -> Parser V1ProjectedVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1VolumeProjection]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"sources")

-- | ToJSON V1ProjectedVolumeSource
instance A.ToJSON V1ProjectedVolumeSource where
  toJSON :: V1ProjectedVolumeSource -> Value
toJSON V1ProjectedVolumeSource {[V1VolumeProjection]
Maybe Int
v1ProjectedVolumeSourceSources :: [V1VolumeProjection]
v1ProjectedVolumeSourceDefaultMode :: Maybe Int
v1ProjectedVolumeSourceSources :: V1ProjectedVolumeSource -> [V1VolumeProjection]
v1ProjectedVolumeSourceDefaultMode :: V1ProjectedVolumeSource -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"defaultMode" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ProjectedVolumeSourceDefaultMode
      , Text
"sources" Text -> [V1VolumeProjection] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1VolumeProjection]
v1ProjectedVolumeSourceSources
      ]


-- | Construct a value of type 'V1ProjectedVolumeSource' (by applying it's required fields, if any)
mkV1ProjectedVolumeSource
  :: [V1VolumeProjection] -- ^ 'v1ProjectedVolumeSourceSources': list of volume projections
  -> V1ProjectedVolumeSource
mkV1ProjectedVolumeSource :: [V1VolumeProjection] -> V1ProjectedVolumeSource
mkV1ProjectedVolumeSource [V1VolumeProjection]
v1ProjectedVolumeSourceSources =
  V1ProjectedVolumeSource :: Maybe Int -> [V1VolumeProjection] -> V1ProjectedVolumeSource
V1ProjectedVolumeSource
  { v1ProjectedVolumeSourceDefaultMode :: Maybe Int
v1ProjectedVolumeSourceDefaultMode = Maybe Int
forall a. Maybe a
Nothing
  , [V1VolumeProjection]
v1ProjectedVolumeSourceSources :: [V1VolumeProjection]
v1ProjectedVolumeSourceSources :: [V1VolumeProjection]
v1ProjectedVolumeSourceSources
  }

-- ** V1QuobyteVolumeSource
-- | V1QuobyteVolumeSource
-- Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.
data V1QuobyteVolumeSource = V1QuobyteVolumeSource
  { V1QuobyteVolumeSource -> Maybe Text
v1QuobyteVolumeSourceGroup :: !(Maybe Text) -- ^ "group" - Group to map volume access to Default is no group
  , V1QuobyteVolumeSource -> Maybe Bool
v1QuobyteVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.
  , V1QuobyteVolumeSource -> Text
v1QuobyteVolumeSourceRegistry :: !(Text) -- ^ /Required/ "registry" - Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes
  , V1QuobyteVolumeSource -> Maybe Text
v1QuobyteVolumeSourceTenant :: !(Maybe Text) -- ^ "tenant" - Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin
  , V1QuobyteVolumeSource -> Maybe Text
v1QuobyteVolumeSourceUser :: !(Maybe Text) -- ^ "user" - User to map volume access to Defaults to serivceaccount user
  , V1QuobyteVolumeSource -> Text
v1QuobyteVolumeSourceVolume :: !(Text) -- ^ /Required/ "volume" - Volume is a string that references an already created Quobyte volume by name.
  } deriving (Int -> V1QuobyteVolumeSource -> ShowS
[V1QuobyteVolumeSource] -> ShowS
V1QuobyteVolumeSource -> String
(Int -> V1QuobyteVolumeSource -> ShowS)
-> (V1QuobyteVolumeSource -> String)
-> ([V1QuobyteVolumeSource] -> ShowS)
-> Show V1QuobyteVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1QuobyteVolumeSource] -> ShowS
$cshowList :: [V1QuobyteVolumeSource] -> ShowS
show :: V1QuobyteVolumeSource -> String
$cshow :: V1QuobyteVolumeSource -> String
showsPrec :: Int -> V1QuobyteVolumeSource -> ShowS
$cshowsPrec :: Int -> V1QuobyteVolumeSource -> ShowS
P.Show, V1QuobyteVolumeSource -> V1QuobyteVolumeSource -> Bool
(V1QuobyteVolumeSource -> V1QuobyteVolumeSource -> Bool)
-> (V1QuobyteVolumeSource -> V1QuobyteVolumeSource -> Bool)
-> Eq V1QuobyteVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1QuobyteVolumeSource -> V1QuobyteVolumeSource -> Bool
$c/= :: V1QuobyteVolumeSource -> V1QuobyteVolumeSource -> Bool
== :: V1QuobyteVolumeSource -> V1QuobyteVolumeSource -> Bool
$c== :: V1QuobyteVolumeSource -> V1QuobyteVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1QuobyteVolumeSource
instance A.FromJSON V1QuobyteVolumeSource where
  parseJSON :: Value -> Parser V1QuobyteVolumeSource
parseJSON = String
-> (Object -> Parser V1QuobyteVolumeSource)
-> Value
-> Parser V1QuobyteVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1QuobyteVolumeSource" ((Object -> Parser V1QuobyteVolumeSource)
 -> Value -> Parser V1QuobyteVolumeSource)
-> (Object -> Parser V1QuobyteVolumeSource)
-> Value
-> Parser V1QuobyteVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Bool
-> Text
-> Maybe Text
-> Maybe Text
-> Text
-> V1QuobyteVolumeSource
V1QuobyteVolumeSource
      (Maybe Text
 -> Maybe Bool
 -> Text
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> V1QuobyteVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> V1QuobyteVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"group")
      Parser
  (Maybe Bool
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> V1QuobyteVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Text -> Maybe Text -> Maybe Text -> Text -> V1QuobyteVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser
  (Text -> Maybe Text -> Maybe Text -> Text -> V1QuobyteVolumeSource)
-> Parser Text
-> Parser
     (Maybe Text -> Maybe Text -> Text -> V1QuobyteVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"registry")
      Parser (Maybe Text -> Maybe Text -> Text -> V1QuobyteVolumeSource)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Text -> V1QuobyteVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"tenant")
      Parser (Maybe Text -> Text -> V1QuobyteVolumeSource)
-> Parser (Maybe Text) -> Parser (Text -> V1QuobyteVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"user")
      Parser (Text -> V1QuobyteVolumeSource)
-> Parser Text -> Parser V1QuobyteVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"volume")

-- | ToJSON V1QuobyteVolumeSource
instance A.ToJSON V1QuobyteVolumeSource where
  toJSON :: V1QuobyteVolumeSource -> Value
toJSON V1QuobyteVolumeSource {Maybe Bool
Maybe Text
Text
v1QuobyteVolumeSourceVolume :: Text
v1QuobyteVolumeSourceUser :: Maybe Text
v1QuobyteVolumeSourceTenant :: Maybe Text
v1QuobyteVolumeSourceRegistry :: Text
v1QuobyteVolumeSourceReadOnly :: Maybe Bool
v1QuobyteVolumeSourceGroup :: Maybe Text
v1QuobyteVolumeSourceVolume :: V1QuobyteVolumeSource -> Text
v1QuobyteVolumeSourceUser :: V1QuobyteVolumeSource -> Maybe Text
v1QuobyteVolumeSourceTenant :: V1QuobyteVolumeSource -> Maybe Text
v1QuobyteVolumeSourceRegistry :: V1QuobyteVolumeSource -> Text
v1QuobyteVolumeSourceReadOnly :: V1QuobyteVolumeSource -> Maybe Bool
v1QuobyteVolumeSourceGroup :: V1QuobyteVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"group" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1QuobyteVolumeSourceGroup
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1QuobyteVolumeSourceReadOnly
      , Text
"registry" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1QuobyteVolumeSourceRegistry
      , Text
"tenant" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1QuobyteVolumeSourceTenant
      , Text
"user" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1QuobyteVolumeSourceUser
      , Text
"volume" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1QuobyteVolumeSourceVolume
      ]


-- | Construct a value of type 'V1QuobyteVolumeSource' (by applying it's required fields, if any)
mkV1QuobyteVolumeSource
  :: Text -- ^ 'v1QuobyteVolumeSourceRegistry': Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes
  -> Text -- ^ 'v1QuobyteVolumeSourceVolume': Volume is a string that references an already created Quobyte volume by name.
  -> V1QuobyteVolumeSource
mkV1QuobyteVolumeSource :: Text -> Text -> V1QuobyteVolumeSource
mkV1QuobyteVolumeSource Text
v1QuobyteVolumeSourceRegistry Text
v1QuobyteVolumeSourceVolume =
  V1QuobyteVolumeSource :: Maybe Text
-> Maybe Bool
-> Text
-> Maybe Text
-> Maybe Text
-> Text
-> V1QuobyteVolumeSource
V1QuobyteVolumeSource
  { v1QuobyteVolumeSourceGroup :: Maybe Text
v1QuobyteVolumeSourceGroup = Maybe Text
forall a. Maybe a
Nothing
  , v1QuobyteVolumeSourceReadOnly :: Maybe Bool
v1QuobyteVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , Text
v1QuobyteVolumeSourceRegistry :: Text
v1QuobyteVolumeSourceRegistry :: Text
v1QuobyteVolumeSourceRegistry
  , v1QuobyteVolumeSourceTenant :: Maybe Text
v1QuobyteVolumeSourceTenant = Maybe Text
forall a. Maybe a
Nothing
  , v1QuobyteVolumeSourceUser :: Maybe Text
v1QuobyteVolumeSourceUser = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1QuobyteVolumeSourceVolume :: Text
v1QuobyteVolumeSourceVolume :: Text
v1QuobyteVolumeSourceVolume
  }

-- ** V1RBDPersistentVolumeSource
-- | V1RBDPersistentVolumeSource
-- Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.
data V1RBDPersistentVolumeSource = V1RBDPersistentVolumeSource
  { V1RBDPersistentVolumeSource -> Maybe Text
v1RBDPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. Implicitly inferred to be \&quot;ext4\&quot; if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
  , V1RBDPersistentVolumeSource -> Text
v1RBDPersistentVolumeSourceImage :: !(Text) -- ^ /Required/ "image" - The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  , V1RBDPersistentVolumeSource -> Maybe Text
v1RBDPersistentVolumeSourceKeyring :: !(Maybe Text) -- ^ "keyring" - Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  , V1RBDPersistentVolumeSource -> [Text]
v1RBDPersistentVolumeSourceMonitors :: !([Text]) -- ^ /Required/ "monitors" - A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  , V1RBDPersistentVolumeSource -> Maybe Text
v1RBDPersistentVolumeSourcePool :: !(Maybe Text) -- ^ "pool" - The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  , V1RBDPersistentVolumeSource -> Maybe Bool
v1RBDPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  , V1RBDPersistentVolumeSource -> Maybe V1SecretReference
v1RBDPersistentVolumeSourceSecretRef :: !(Maybe V1SecretReference) -- ^ "secretRef"
  , V1RBDPersistentVolumeSource -> Maybe Text
v1RBDPersistentVolumeSourceUser :: !(Maybe Text) -- ^ "user" - The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  } deriving (Int -> V1RBDPersistentVolumeSource -> ShowS
[V1RBDPersistentVolumeSource] -> ShowS
V1RBDPersistentVolumeSource -> String
(Int -> V1RBDPersistentVolumeSource -> ShowS)
-> (V1RBDPersistentVolumeSource -> String)
-> ([V1RBDPersistentVolumeSource] -> ShowS)
-> Show V1RBDPersistentVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1RBDPersistentVolumeSource] -> ShowS
$cshowList :: [V1RBDPersistentVolumeSource] -> ShowS
show :: V1RBDPersistentVolumeSource -> String
$cshow :: V1RBDPersistentVolumeSource -> String
showsPrec :: Int -> V1RBDPersistentVolumeSource -> ShowS
$cshowsPrec :: Int -> V1RBDPersistentVolumeSource -> ShowS
P.Show, V1RBDPersistentVolumeSource -> V1RBDPersistentVolumeSource -> Bool
(V1RBDPersistentVolumeSource
 -> V1RBDPersistentVolumeSource -> Bool)
-> (V1RBDPersistentVolumeSource
    -> V1RBDPersistentVolumeSource -> Bool)
-> Eq V1RBDPersistentVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1RBDPersistentVolumeSource -> V1RBDPersistentVolumeSource -> Bool
$c/= :: V1RBDPersistentVolumeSource -> V1RBDPersistentVolumeSource -> Bool
== :: V1RBDPersistentVolumeSource -> V1RBDPersistentVolumeSource -> Bool
$c== :: V1RBDPersistentVolumeSource -> V1RBDPersistentVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1RBDPersistentVolumeSource
instance A.FromJSON V1RBDPersistentVolumeSource where
  parseJSON :: Value -> Parser V1RBDPersistentVolumeSource
parseJSON = String
-> (Object -> Parser V1RBDPersistentVolumeSource)
-> Value
-> Parser V1RBDPersistentVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1RBDPersistentVolumeSource" ((Object -> Parser V1RBDPersistentVolumeSource)
 -> Value -> Parser V1RBDPersistentVolumeSource)
-> (Object -> Parser V1RBDPersistentVolumeSource)
-> Value
-> Parser V1RBDPersistentVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Text
-> Maybe Text
-> [Text]
-> Maybe Text
-> Maybe Bool
-> Maybe V1SecretReference
-> Maybe Text
-> V1RBDPersistentVolumeSource
V1RBDPersistentVolumeSource
      (Maybe Text
 -> Text
 -> Maybe Text
 -> [Text]
 -> Maybe Text
 -> Maybe Bool
 -> Maybe V1SecretReference
 -> Maybe Text
 -> V1RBDPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe Text
      -> [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe V1SecretReference
      -> Maybe Text
      -> V1RBDPersistentVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Text
   -> Maybe Text
   -> [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe V1SecretReference
   -> Maybe Text
   -> V1RBDPersistentVolumeSource)
-> Parser Text
-> Parser
     (Maybe Text
      -> [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe V1SecretReference
      -> Maybe Text
      -> V1RBDPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"image")
      Parser
  (Maybe Text
   -> [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe V1SecretReference
   -> Maybe Text
   -> V1RBDPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser
     ([Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe V1SecretReference
      -> Maybe Text
      -> V1RBDPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"keyring")
      Parser
  ([Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe V1SecretReference
   -> Maybe Text
   -> V1RBDPersistentVolumeSource)
-> Parser [Text]
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe V1SecretReference
      -> Maybe Text
      -> V1RBDPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"monitors")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe V1SecretReference
   -> Maybe Text
   -> V1RBDPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe V1SecretReference
      -> Maybe Text
      -> V1RBDPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"pool")
      Parser
  (Maybe Bool
   -> Maybe V1SecretReference
   -> Maybe Text
   -> V1RBDPersistentVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe V1SecretReference
      -> Maybe Text -> V1RBDPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser
  (Maybe V1SecretReference
   -> Maybe Text -> V1RBDPersistentVolumeSource)
-> Parser (Maybe V1SecretReference)
-> Parser (Maybe Text -> V1RBDPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SecretReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretRef")
      Parser (Maybe Text -> V1RBDPersistentVolumeSource)
-> Parser (Maybe Text) -> Parser V1RBDPersistentVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"user")

-- | ToJSON V1RBDPersistentVolumeSource
instance A.ToJSON V1RBDPersistentVolumeSource where
  toJSON :: V1RBDPersistentVolumeSource -> Value
toJSON V1RBDPersistentVolumeSource {[Text]
Maybe Bool
Maybe Text
Maybe V1SecretReference
Text
v1RBDPersistentVolumeSourceUser :: Maybe Text
v1RBDPersistentVolumeSourceSecretRef :: Maybe V1SecretReference
v1RBDPersistentVolumeSourceReadOnly :: Maybe Bool
v1RBDPersistentVolumeSourcePool :: Maybe Text
v1RBDPersistentVolumeSourceMonitors :: [Text]
v1RBDPersistentVolumeSourceKeyring :: Maybe Text
v1RBDPersistentVolumeSourceImage :: Text
v1RBDPersistentVolumeSourceFsType :: Maybe Text
v1RBDPersistentVolumeSourceUser :: V1RBDPersistentVolumeSource -> Maybe Text
v1RBDPersistentVolumeSourceSecretRef :: V1RBDPersistentVolumeSource -> Maybe V1SecretReference
v1RBDPersistentVolumeSourceReadOnly :: V1RBDPersistentVolumeSource -> Maybe Bool
v1RBDPersistentVolumeSourcePool :: V1RBDPersistentVolumeSource -> Maybe Text
v1RBDPersistentVolumeSourceMonitors :: V1RBDPersistentVolumeSource -> [Text]
v1RBDPersistentVolumeSourceKeyring :: V1RBDPersistentVolumeSource -> Maybe Text
v1RBDPersistentVolumeSourceImage :: V1RBDPersistentVolumeSource -> Text
v1RBDPersistentVolumeSourceFsType :: V1RBDPersistentVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RBDPersistentVolumeSourceFsType
      , Text
"image" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1RBDPersistentVolumeSourceImage
      , Text
"keyring" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RBDPersistentVolumeSourceKeyring
      , Text
"monitors" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1RBDPersistentVolumeSourceMonitors
      , Text
"pool" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RBDPersistentVolumeSourcePool
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1RBDPersistentVolumeSourceReadOnly
      , Text
"secretRef" Text -> Maybe V1SecretReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SecretReference
v1RBDPersistentVolumeSourceSecretRef
      , Text
"user" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RBDPersistentVolumeSourceUser
      ]


-- | Construct a value of type 'V1RBDPersistentVolumeSource' (by applying it's required fields, if any)
mkV1RBDPersistentVolumeSource
  :: Text -- ^ 'v1RBDPersistentVolumeSourceImage': The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  -> [Text] -- ^ 'v1RBDPersistentVolumeSourceMonitors': A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  -> V1RBDPersistentVolumeSource
mkV1RBDPersistentVolumeSource :: Text -> [Text] -> V1RBDPersistentVolumeSource
mkV1RBDPersistentVolumeSource Text
v1RBDPersistentVolumeSourceImage [Text]
v1RBDPersistentVolumeSourceMonitors =
  V1RBDPersistentVolumeSource :: Maybe Text
-> Text
-> Maybe Text
-> [Text]
-> Maybe Text
-> Maybe Bool
-> Maybe V1SecretReference
-> Maybe Text
-> V1RBDPersistentVolumeSource
V1RBDPersistentVolumeSource
  { v1RBDPersistentVolumeSourceFsType :: Maybe Text
v1RBDPersistentVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1RBDPersistentVolumeSourceImage :: Text
v1RBDPersistentVolumeSourceImage :: Text
v1RBDPersistentVolumeSourceImage
  , v1RBDPersistentVolumeSourceKeyring :: Maybe Text
v1RBDPersistentVolumeSourceKeyring = Maybe Text
forall a. Maybe a
Nothing
  , [Text]
v1RBDPersistentVolumeSourceMonitors :: [Text]
v1RBDPersistentVolumeSourceMonitors :: [Text]
v1RBDPersistentVolumeSourceMonitors
  , v1RBDPersistentVolumeSourcePool :: Maybe Text
v1RBDPersistentVolumeSourcePool = Maybe Text
forall a. Maybe a
Nothing
  , v1RBDPersistentVolumeSourceReadOnly :: Maybe Bool
v1RBDPersistentVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , v1RBDPersistentVolumeSourceSecretRef :: Maybe V1SecretReference
v1RBDPersistentVolumeSourceSecretRef = Maybe V1SecretReference
forall a. Maybe a
Nothing
  , v1RBDPersistentVolumeSourceUser :: Maybe Text
v1RBDPersistentVolumeSourceUser = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1RBDVolumeSource
-- | V1RBDVolumeSource
-- Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.
data V1RBDVolumeSource = V1RBDVolumeSource
  { V1RBDVolumeSource -> Maybe Text
v1RBDVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. Implicitly inferred to be \&quot;ext4\&quot; if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
  , V1RBDVolumeSource -> Text
v1RBDVolumeSourceImage :: !(Text) -- ^ /Required/ "image" - The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  , V1RBDVolumeSource -> Maybe Text
v1RBDVolumeSourceKeyring :: !(Maybe Text) -- ^ "keyring" - Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  , V1RBDVolumeSource -> [Text]
v1RBDVolumeSourceMonitors :: !([Text]) -- ^ /Required/ "monitors" - A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  , V1RBDVolumeSource -> Maybe Text
v1RBDVolumeSourcePool :: !(Maybe Text) -- ^ "pool" - The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  , V1RBDVolumeSource -> Maybe Bool
v1RBDVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  , V1RBDVolumeSource -> Maybe V1LocalObjectReference
v1RBDVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"
  , V1RBDVolumeSource -> Maybe Text
v1RBDVolumeSourceUser :: !(Maybe Text) -- ^ "user" - The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  } deriving (Int -> V1RBDVolumeSource -> ShowS
[V1RBDVolumeSource] -> ShowS
V1RBDVolumeSource -> String
(Int -> V1RBDVolumeSource -> ShowS)
-> (V1RBDVolumeSource -> String)
-> ([V1RBDVolumeSource] -> ShowS)
-> Show V1RBDVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1RBDVolumeSource] -> ShowS
$cshowList :: [V1RBDVolumeSource] -> ShowS
show :: V1RBDVolumeSource -> String
$cshow :: V1RBDVolumeSource -> String
showsPrec :: Int -> V1RBDVolumeSource -> ShowS
$cshowsPrec :: Int -> V1RBDVolumeSource -> ShowS
P.Show, V1RBDVolumeSource -> V1RBDVolumeSource -> Bool
(V1RBDVolumeSource -> V1RBDVolumeSource -> Bool)
-> (V1RBDVolumeSource -> V1RBDVolumeSource -> Bool)
-> Eq V1RBDVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1RBDVolumeSource -> V1RBDVolumeSource -> Bool
$c/= :: V1RBDVolumeSource -> V1RBDVolumeSource -> Bool
== :: V1RBDVolumeSource -> V1RBDVolumeSource -> Bool
$c== :: V1RBDVolumeSource -> V1RBDVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1RBDVolumeSource
instance A.FromJSON V1RBDVolumeSource where
  parseJSON :: Value -> Parser V1RBDVolumeSource
parseJSON = String
-> (Object -> Parser V1RBDVolumeSource)
-> Value
-> Parser V1RBDVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1RBDVolumeSource" ((Object -> Parser V1RBDVolumeSource)
 -> Value -> Parser V1RBDVolumeSource)
-> (Object -> Parser V1RBDVolumeSource)
-> Value
-> Parser V1RBDVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Text
-> Maybe Text
-> [Text]
-> Maybe Text
-> Maybe Bool
-> Maybe V1LocalObjectReference
-> Maybe Text
-> V1RBDVolumeSource
V1RBDVolumeSource
      (Maybe Text
 -> Text
 -> Maybe Text
 -> [Text]
 -> Maybe Text
 -> Maybe Bool
 -> Maybe V1LocalObjectReference
 -> Maybe Text
 -> V1RBDVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe Text
      -> [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe V1LocalObjectReference
      -> Maybe Text
      -> V1RBDVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Text
   -> Maybe Text
   -> [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe V1LocalObjectReference
   -> Maybe Text
   -> V1RBDVolumeSource)
-> Parser Text
-> Parser
     (Maybe Text
      -> [Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe V1LocalObjectReference
      -> Maybe Text
      -> V1RBDVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"image")
      Parser
  (Maybe Text
   -> [Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe V1LocalObjectReference
   -> Maybe Text
   -> V1RBDVolumeSource)
-> Parser (Maybe Text)
-> Parser
     ([Text]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe V1LocalObjectReference
      -> Maybe Text
      -> V1RBDVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"keyring")
      Parser
  ([Text]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe V1LocalObjectReference
   -> Maybe Text
   -> V1RBDVolumeSource)
-> Parser [Text]
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe V1LocalObjectReference
      -> Maybe Text
      -> V1RBDVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"monitors")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe V1LocalObjectReference
   -> Maybe Text
   -> V1RBDVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe V1LocalObjectReference -> Maybe Text -> V1RBDVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"pool")
      Parser
  (Maybe Bool
   -> Maybe V1LocalObjectReference -> Maybe Text -> V1RBDVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe V1LocalObjectReference -> Maybe Text -> V1RBDVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser
  (Maybe V1LocalObjectReference -> Maybe Text -> V1RBDVolumeSource)
-> Parser (Maybe V1LocalObjectReference)
-> Parser (Maybe Text -> V1RBDVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LocalObjectReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretRef")
      Parser (Maybe Text -> V1RBDVolumeSource)
-> Parser (Maybe Text) -> Parser V1RBDVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"user")

-- | ToJSON V1RBDVolumeSource
instance A.ToJSON V1RBDVolumeSource where
  toJSON :: V1RBDVolumeSource -> Value
toJSON V1RBDVolumeSource {[Text]
Maybe Bool
Maybe Text
Maybe V1LocalObjectReference
Text
v1RBDVolumeSourceUser :: Maybe Text
v1RBDVolumeSourceSecretRef :: Maybe V1LocalObjectReference
v1RBDVolumeSourceReadOnly :: Maybe Bool
v1RBDVolumeSourcePool :: Maybe Text
v1RBDVolumeSourceMonitors :: [Text]
v1RBDVolumeSourceKeyring :: Maybe Text
v1RBDVolumeSourceImage :: Text
v1RBDVolumeSourceFsType :: Maybe Text
v1RBDVolumeSourceUser :: V1RBDVolumeSource -> Maybe Text
v1RBDVolumeSourceSecretRef :: V1RBDVolumeSource -> Maybe V1LocalObjectReference
v1RBDVolumeSourceReadOnly :: V1RBDVolumeSource -> Maybe Bool
v1RBDVolumeSourcePool :: V1RBDVolumeSource -> Maybe Text
v1RBDVolumeSourceMonitors :: V1RBDVolumeSource -> [Text]
v1RBDVolumeSourceKeyring :: V1RBDVolumeSource -> Maybe Text
v1RBDVolumeSourceImage :: V1RBDVolumeSource -> Text
v1RBDVolumeSourceFsType :: V1RBDVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RBDVolumeSourceFsType
      , Text
"image" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1RBDVolumeSourceImage
      , Text
"keyring" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RBDVolumeSourceKeyring
      , Text
"monitors" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1RBDVolumeSourceMonitors
      , Text
"pool" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RBDVolumeSourcePool
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1RBDVolumeSourceReadOnly
      , Text
"secretRef" Text -> Maybe V1LocalObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LocalObjectReference
v1RBDVolumeSourceSecretRef
      , Text
"user" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RBDVolumeSourceUser
      ]


-- | Construct a value of type 'V1RBDVolumeSource' (by applying it's required fields, if any)
mkV1RBDVolumeSource
  :: Text -- ^ 'v1RBDVolumeSourceImage': The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  -> [Text] -- ^ 'v1RBDVolumeSourceMonitors': A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
  -> V1RBDVolumeSource
mkV1RBDVolumeSource :: Text -> [Text] -> V1RBDVolumeSource
mkV1RBDVolumeSource Text
v1RBDVolumeSourceImage [Text]
v1RBDVolumeSourceMonitors =
  V1RBDVolumeSource :: Maybe Text
-> Text
-> Maybe Text
-> [Text]
-> Maybe Text
-> Maybe Bool
-> Maybe V1LocalObjectReference
-> Maybe Text
-> V1RBDVolumeSource
V1RBDVolumeSource
  { v1RBDVolumeSourceFsType :: Maybe Text
v1RBDVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1RBDVolumeSourceImage :: Text
v1RBDVolumeSourceImage :: Text
v1RBDVolumeSourceImage
  , v1RBDVolumeSourceKeyring :: Maybe Text
v1RBDVolumeSourceKeyring = Maybe Text
forall a. Maybe a
Nothing
  , [Text]
v1RBDVolumeSourceMonitors :: [Text]
v1RBDVolumeSourceMonitors :: [Text]
v1RBDVolumeSourceMonitors
  , v1RBDVolumeSourcePool :: Maybe Text
v1RBDVolumeSourcePool = Maybe Text
forall a. Maybe a
Nothing
  , v1RBDVolumeSourceReadOnly :: Maybe Bool
v1RBDVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , v1RBDVolumeSourceSecretRef :: Maybe V1LocalObjectReference
v1RBDVolumeSourceSecretRef = Maybe V1LocalObjectReference
forall a. Maybe a
Nothing
  , v1RBDVolumeSourceUser :: Maybe Text
v1RBDVolumeSourceUser = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1ReplicaSet
-- | V1ReplicaSet
-- ReplicaSet ensures that a specified number of pod replicas are running at any given time.
data V1ReplicaSet = V1ReplicaSet
  { V1ReplicaSet -> Maybe Text
v1ReplicaSetApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ReplicaSet -> Maybe Text
v1ReplicaSetKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ReplicaSet -> Maybe V1ObjectMeta
v1ReplicaSetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1ReplicaSet -> Maybe V1ReplicaSetSpec
v1ReplicaSetSpec :: !(Maybe V1ReplicaSetSpec) -- ^ "spec"
  , V1ReplicaSet -> Maybe V1ReplicaSetStatus
v1ReplicaSetStatus :: !(Maybe V1ReplicaSetStatus) -- ^ "status"
  } deriving (Int -> V1ReplicaSet -> ShowS
[V1ReplicaSet] -> ShowS
V1ReplicaSet -> String
(Int -> V1ReplicaSet -> ShowS)
-> (V1ReplicaSet -> String)
-> ([V1ReplicaSet] -> ShowS)
-> Show V1ReplicaSet
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ReplicaSet] -> ShowS
$cshowList :: [V1ReplicaSet] -> ShowS
show :: V1ReplicaSet -> String
$cshow :: V1ReplicaSet -> String
showsPrec :: Int -> V1ReplicaSet -> ShowS
$cshowsPrec :: Int -> V1ReplicaSet -> ShowS
P.Show, V1ReplicaSet -> V1ReplicaSet -> Bool
(V1ReplicaSet -> V1ReplicaSet -> Bool)
-> (V1ReplicaSet -> V1ReplicaSet -> Bool) -> Eq V1ReplicaSet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ReplicaSet -> V1ReplicaSet -> Bool
$c/= :: V1ReplicaSet -> V1ReplicaSet -> Bool
== :: V1ReplicaSet -> V1ReplicaSet -> Bool
$c== :: V1ReplicaSet -> V1ReplicaSet -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ReplicaSet
instance A.FromJSON V1ReplicaSet where
  parseJSON :: Value -> Parser V1ReplicaSet
parseJSON = String
-> (Object -> Parser V1ReplicaSet) -> Value -> Parser V1ReplicaSet
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ReplicaSet" ((Object -> Parser V1ReplicaSet) -> Value -> Parser V1ReplicaSet)
-> (Object -> Parser V1ReplicaSet) -> Value -> Parser V1ReplicaSet
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1ReplicaSetSpec
-> Maybe V1ReplicaSetStatus
-> V1ReplicaSet
V1ReplicaSet
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1ReplicaSetSpec
 -> Maybe V1ReplicaSetStatus
 -> V1ReplicaSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1ReplicaSetSpec
      -> Maybe V1ReplicaSetStatus
      -> V1ReplicaSet)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1ReplicaSetSpec
   -> Maybe V1ReplicaSetStatus
   -> V1ReplicaSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1ReplicaSetSpec
      -> Maybe V1ReplicaSetStatus
      -> V1ReplicaSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1ReplicaSetSpec
   -> Maybe V1ReplicaSetStatus
   -> V1ReplicaSet)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1ReplicaSetSpec
      -> Maybe V1ReplicaSetStatus -> V1ReplicaSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1ReplicaSetSpec
   -> Maybe V1ReplicaSetStatus -> V1ReplicaSet)
-> Parser (Maybe V1ReplicaSetSpec)
-> Parser (Maybe V1ReplicaSetStatus -> V1ReplicaSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ReplicaSetSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1ReplicaSetStatus -> V1ReplicaSet)
-> Parser (Maybe V1ReplicaSetStatus) -> Parser V1ReplicaSet
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ReplicaSetStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1ReplicaSet
instance A.ToJSON V1ReplicaSet where
  toJSON :: V1ReplicaSet -> Value
toJSON V1ReplicaSet {Maybe Text
Maybe V1ReplicaSetStatus
Maybe V1ReplicaSetSpec
Maybe V1ObjectMeta
v1ReplicaSetStatus :: Maybe V1ReplicaSetStatus
v1ReplicaSetSpec :: Maybe V1ReplicaSetSpec
v1ReplicaSetMetadata :: Maybe V1ObjectMeta
v1ReplicaSetKind :: Maybe Text
v1ReplicaSetApiVersion :: Maybe Text
v1ReplicaSetStatus :: V1ReplicaSet -> Maybe V1ReplicaSetStatus
v1ReplicaSetSpec :: V1ReplicaSet -> Maybe V1ReplicaSetSpec
v1ReplicaSetMetadata :: V1ReplicaSet -> Maybe V1ObjectMeta
v1ReplicaSetKind :: V1ReplicaSet -> Maybe Text
v1ReplicaSetApiVersion :: V1ReplicaSet -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ReplicaSetApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ReplicaSetKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1ReplicaSetMetadata
      , Text
"spec" Text -> Maybe V1ReplicaSetSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ReplicaSetSpec
v1ReplicaSetSpec
      , Text
"status" Text -> Maybe V1ReplicaSetStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ReplicaSetStatus
v1ReplicaSetStatus
      ]


-- | Construct a value of type 'V1ReplicaSet' (by applying it's required fields, if any)
mkV1ReplicaSet
  :: V1ReplicaSet
mkV1ReplicaSet :: V1ReplicaSet
mkV1ReplicaSet =
  V1ReplicaSet :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1ReplicaSetSpec
-> Maybe V1ReplicaSetStatus
-> V1ReplicaSet
V1ReplicaSet
  { v1ReplicaSetApiVersion :: Maybe Text
v1ReplicaSetApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ReplicaSetKind :: Maybe Text
v1ReplicaSetKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ReplicaSetMetadata :: Maybe V1ObjectMeta
v1ReplicaSetMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1ReplicaSetSpec :: Maybe V1ReplicaSetSpec
v1ReplicaSetSpec = Maybe V1ReplicaSetSpec
forall a. Maybe a
Nothing
  , v1ReplicaSetStatus :: Maybe V1ReplicaSetStatus
v1ReplicaSetStatus = Maybe V1ReplicaSetStatus
forall a. Maybe a
Nothing
  }

-- ** V1ReplicaSetCondition
-- | V1ReplicaSetCondition
-- ReplicaSetCondition describes the state of a replica set at a certain point.
data V1ReplicaSetCondition = V1ReplicaSetCondition
  { V1ReplicaSetCondition -> Maybe DateTime
v1ReplicaSetConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - The last time the condition transitioned from one status to another.
  , V1ReplicaSetCondition -> Maybe Text
v1ReplicaSetConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.
  , V1ReplicaSetCondition -> Maybe Text
v1ReplicaSetConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition&#39;s last transition.
  , V1ReplicaSetCondition -> Text
v1ReplicaSetConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , V1ReplicaSetCondition -> Text
v1ReplicaSetConditionType :: !(Text) -- ^ /Required/ "type" - Type of replica set condition.
  } deriving (Int -> V1ReplicaSetCondition -> ShowS
[V1ReplicaSetCondition] -> ShowS
V1ReplicaSetCondition -> String
(Int -> V1ReplicaSetCondition -> ShowS)
-> (V1ReplicaSetCondition -> String)
-> ([V1ReplicaSetCondition] -> ShowS)
-> Show V1ReplicaSetCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ReplicaSetCondition] -> ShowS
$cshowList :: [V1ReplicaSetCondition] -> ShowS
show :: V1ReplicaSetCondition -> String
$cshow :: V1ReplicaSetCondition -> String
showsPrec :: Int -> V1ReplicaSetCondition -> ShowS
$cshowsPrec :: Int -> V1ReplicaSetCondition -> ShowS
P.Show, V1ReplicaSetCondition -> V1ReplicaSetCondition -> Bool
(V1ReplicaSetCondition -> V1ReplicaSetCondition -> Bool)
-> (V1ReplicaSetCondition -> V1ReplicaSetCondition -> Bool)
-> Eq V1ReplicaSetCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ReplicaSetCondition -> V1ReplicaSetCondition -> Bool
$c/= :: V1ReplicaSetCondition -> V1ReplicaSetCondition -> Bool
== :: V1ReplicaSetCondition -> V1ReplicaSetCondition -> Bool
$c== :: V1ReplicaSetCondition -> V1ReplicaSetCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ReplicaSetCondition
instance A.FromJSON V1ReplicaSetCondition where
  parseJSON :: Value -> Parser V1ReplicaSetCondition
parseJSON = String
-> (Object -> Parser V1ReplicaSetCondition)
-> Value
-> Parser V1ReplicaSetCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ReplicaSetCondition" ((Object -> Parser V1ReplicaSetCondition)
 -> Value -> Parser V1ReplicaSetCondition)
-> (Object -> Parser V1ReplicaSetCondition)
-> Value
-> Parser V1ReplicaSetCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1ReplicaSetCondition
V1ReplicaSetCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1ReplicaSetCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text -> Maybe Text -> Text -> Text -> V1ReplicaSetCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text -> Maybe Text -> Text -> Text -> V1ReplicaSetCondition)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Text -> Text -> V1ReplicaSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1ReplicaSetCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1ReplicaSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1ReplicaSetCondition)
-> Parser Text -> Parser (Text -> V1ReplicaSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1ReplicaSetCondition)
-> Parser Text -> Parser V1ReplicaSetCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1ReplicaSetCondition
instance A.ToJSON V1ReplicaSetCondition where
  toJSON :: V1ReplicaSetCondition -> Value
toJSON V1ReplicaSetCondition {Maybe Text
Maybe DateTime
Text
v1ReplicaSetConditionType :: Text
v1ReplicaSetConditionStatus :: Text
v1ReplicaSetConditionReason :: Maybe Text
v1ReplicaSetConditionMessage :: Maybe Text
v1ReplicaSetConditionLastTransitionTime :: Maybe DateTime
v1ReplicaSetConditionType :: V1ReplicaSetCondition -> Text
v1ReplicaSetConditionStatus :: V1ReplicaSetCondition -> Text
v1ReplicaSetConditionReason :: V1ReplicaSetCondition -> Maybe Text
v1ReplicaSetConditionMessage :: V1ReplicaSetCondition -> Maybe Text
v1ReplicaSetConditionLastTransitionTime :: V1ReplicaSetCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1ReplicaSetConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ReplicaSetConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ReplicaSetConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ReplicaSetConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ReplicaSetConditionType
      ]


-- | Construct a value of type 'V1ReplicaSetCondition' (by applying it's required fields, if any)
mkV1ReplicaSetCondition
  :: Text -- ^ 'v1ReplicaSetConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'v1ReplicaSetConditionType': Type of replica set condition.
  -> V1ReplicaSetCondition
mkV1ReplicaSetCondition :: Text -> Text -> V1ReplicaSetCondition
mkV1ReplicaSetCondition Text
v1ReplicaSetConditionStatus Text
v1ReplicaSetConditionType =
  V1ReplicaSetCondition :: Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1ReplicaSetCondition
V1ReplicaSetCondition
  { v1ReplicaSetConditionLastTransitionTime :: Maybe DateTime
v1ReplicaSetConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1ReplicaSetConditionMessage :: Maybe Text
v1ReplicaSetConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1ReplicaSetConditionReason :: Maybe Text
v1ReplicaSetConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1ReplicaSetConditionStatus :: Text
v1ReplicaSetConditionStatus :: Text
v1ReplicaSetConditionStatus
  , Text
v1ReplicaSetConditionType :: Text
v1ReplicaSetConditionType :: Text
v1ReplicaSetConditionType
  }

-- ** V1ReplicaSetList
-- | V1ReplicaSetList
-- ReplicaSetList is a collection of ReplicaSets.
data V1ReplicaSetList = V1ReplicaSetList
  { V1ReplicaSetList -> Maybe Text
v1ReplicaSetListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ReplicaSetList -> [V1ReplicaSet]
v1ReplicaSetListItems :: !([V1ReplicaSet]) -- ^ /Required/ "items" - List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
  , V1ReplicaSetList -> Maybe Text
v1ReplicaSetListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ReplicaSetList -> Maybe V1ListMeta
v1ReplicaSetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1ReplicaSetList -> ShowS
[V1ReplicaSetList] -> ShowS
V1ReplicaSetList -> String
(Int -> V1ReplicaSetList -> ShowS)
-> (V1ReplicaSetList -> String)
-> ([V1ReplicaSetList] -> ShowS)
-> Show V1ReplicaSetList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ReplicaSetList] -> ShowS
$cshowList :: [V1ReplicaSetList] -> ShowS
show :: V1ReplicaSetList -> String
$cshow :: V1ReplicaSetList -> String
showsPrec :: Int -> V1ReplicaSetList -> ShowS
$cshowsPrec :: Int -> V1ReplicaSetList -> ShowS
P.Show, V1ReplicaSetList -> V1ReplicaSetList -> Bool
(V1ReplicaSetList -> V1ReplicaSetList -> Bool)
-> (V1ReplicaSetList -> V1ReplicaSetList -> Bool)
-> Eq V1ReplicaSetList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ReplicaSetList -> V1ReplicaSetList -> Bool
$c/= :: V1ReplicaSetList -> V1ReplicaSetList -> Bool
== :: V1ReplicaSetList -> V1ReplicaSetList -> Bool
$c== :: V1ReplicaSetList -> V1ReplicaSetList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ReplicaSetList
instance A.FromJSON V1ReplicaSetList where
  parseJSON :: Value -> Parser V1ReplicaSetList
parseJSON = String
-> (Object -> Parser V1ReplicaSetList)
-> Value
-> Parser V1ReplicaSetList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ReplicaSetList" ((Object -> Parser V1ReplicaSetList)
 -> Value -> Parser V1ReplicaSetList)
-> (Object -> Parser V1ReplicaSetList)
-> Value
-> Parser V1ReplicaSetList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1ReplicaSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ReplicaSetList
V1ReplicaSetList
      (Maybe Text
 -> [V1ReplicaSet]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1ReplicaSetList)
-> Parser (Maybe Text)
-> Parser
     ([V1ReplicaSet]
      -> Maybe Text -> Maybe V1ListMeta -> V1ReplicaSetList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1ReplicaSet]
   -> Maybe Text -> Maybe V1ListMeta -> V1ReplicaSetList)
-> Parser [V1ReplicaSet]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1ReplicaSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1ReplicaSet]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1ReplicaSetList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1ReplicaSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1ReplicaSetList)
-> Parser (Maybe V1ListMeta) -> Parser V1ReplicaSetList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1ReplicaSetList
instance A.ToJSON V1ReplicaSetList where
  toJSON :: V1ReplicaSetList -> Value
toJSON V1ReplicaSetList {[V1ReplicaSet]
Maybe Text
Maybe V1ListMeta
v1ReplicaSetListMetadata :: Maybe V1ListMeta
v1ReplicaSetListKind :: Maybe Text
v1ReplicaSetListItems :: [V1ReplicaSet]
v1ReplicaSetListApiVersion :: Maybe Text
v1ReplicaSetListMetadata :: V1ReplicaSetList -> Maybe V1ListMeta
v1ReplicaSetListKind :: V1ReplicaSetList -> Maybe Text
v1ReplicaSetListItems :: V1ReplicaSetList -> [V1ReplicaSet]
v1ReplicaSetListApiVersion :: V1ReplicaSetList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ReplicaSetListApiVersion
      , Text
"items" Text -> [V1ReplicaSet] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1ReplicaSet]
v1ReplicaSetListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ReplicaSetListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1ReplicaSetListMetadata
      ]


-- | Construct a value of type 'V1ReplicaSetList' (by applying it's required fields, if any)
mkV1ReplicaSetList
  :: [V1ReplicaSet] -- ^ 'v1ReplicaSetListItems': List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
  -> V1ReplicaSetList
mkV1ReplicaSetList :: [V1ReplicaSet] -> V1ReplicaSetList
mkV1ReplicaSetList [V1ReplicaSet]
v1ReplicaSetListItems =
  V1ReplicaSetList :: Maybe Text
-> [V1ReplicaSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ReplicaSetList
V1ReplicaSetList
  { v1ReplicaSetListApiVersion :: Maybe Text
v1ReplicaSetListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1ReplicaSet]
v1ReplicaSetListItems :: [V1ReplicaSet]
v1ReplicaSetListItems :: [V1ReplicaSet]
v1ReplicaSetListItems
  , v1ReplicaSetListKind :: Maybe Text
v1ReplicaSetListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ReplicaSetListMetadata :: Maybe V1ListMeta
v1ReplicaSetListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1ReplicaSetSpec
-- | V1ReplicaSetSpec
-- ReplicaSetSpec is the specification of a ReplicaSet.
data V1ReplicaSetSpec = V1ReplicaSetSpec
  { V1ReplicaSetSpec -> Maybe Int
v1ReplicaSetSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)
  , V1ReplicaSetSpec -> Maybe Int
v1ReplicaSetSpecReplicas :: !(Maybe Int) -- ^ "replicas" - Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller
  , V1ReplicaSetSpec -> V1LabelSelector
v1ReplicaSetSpecSelector :: !(V1LabelSelector) -- ^ /Required/ "selector"
  , V1ReplicaSetSpec -> Maybe V1PodTemplateSpec
v1ReplicaSetSpecTemplate :: !(Maybe V1PodTemplateSpec) -- ^ "template"
  } deriving (Int -> V1ReplicaSetSpec -> ShowS
[V1ReplicaSetSpec] -> ShowS
V1ReplicaSetSpec -> String
(Int -> V1ReplicaSetSpec -> ShowS)
-> (V1ReplicaSetSpec -> String)
-> ([V1ReplicaSetSpec] -> ShowS)
-> Show V1ReplicaSetSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ReplicaSetSpec] -> ShowS
$cshowList :: [V1ReplicaSetSpec] -> ShowS
show :: V1ReplicaSetSpec -> String
$cshow :: V1ReplicaSetSpec -> String
showsPrec :: Int -> V1ReplicaSetSpec -> ShowS
$cshowsPrec :: Int -> V1ReplicaSetSpec -> ShowS
P.Show, V1ReplicaSetSpec -> V1ReplicaSetSpec -> Bool
(V1ReplicaSetSpec -> V1ReplicaSetSpec -> Bool)
-> (V1ReplicaSetSpec -> V1ReplicaSetSpec -> Bool)
-> Eq V1ReplicaSetSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ReplicaSetSpec -> V1ReplicaSetSpec -> Bool
$c/= :: V1ReplicaSetSpec -> V1ReplicaSetSpec -> Bool
== :: V1ReplicaSetSpec -> V1ReplicaSetSpec -> Bool
$c== :: V1ReplicaSetSpec -> V1ReplicaSetSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ReplicaSetSpec
instance A.FromJSON V1ReplicaSetSpec where
  parseJSON :: Value -> Parser V1ReplicaSetSpec
parseJSON = String
-> (Object -> Parser V1ReplicaSetSpec)
-> Value
-> Parser V1ReplicaSetSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ReplicaSetSpec" ((Object -> Parser V1ReplicaSetSpec)
 -> Value -> Parser V1ReplicaSetSpec)
-> (Object -> Parser V1ReplicaSetSpec)
-> Value
-> Parser V1ReplicaSetSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Int
-> V1LabelSelector
-> Maybe V1PodTemplateSpec
-> V1ReplicaSetSpec
V1ReplicaSetSpec
      (Maybe Int
 -> Maybe Int
 -> V1LabelSelector
 -> Maybe V1PodTemplateSpec
 -> V1ReplicaSetSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> V1LabelSelector -> Maybe V1PodTemplateSpec -> V1ReplicaSetSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minReadySeconds")
      Parser
  (Maybe Int
   -> V1LabelSelector -> Maybe V1PodTemplateSpec -> V1ReplicaSetSpec)
-> Parser (Maybe Int)
-> Parser
     (V1LabelSelector -> Maybe V1PodTemplateSpec -> V1ReplicaSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")
      Parser
  (V1LabelSelector -> Maybe V1PodTemplateSpec -> V1ReplicaSetSpec)
-> Parser V1LabelSelector
-> Parser (Maybe V1PodTemplateSpec -> V1ReplicaSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1LabelSelector
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"selector")
      Parser (Maybe V1PodTemplateSpec -> V1ReplicaSetSpec)
-> Parser (Maybe V1PodTemplateSpec) -> Parser V1ReplicaSetSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PodTemplateSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"template")

-- | ToJSON V1ReplicaSetSpec
instance A.ToJSON V1ReplicaSetSpec where
  toJSON :: V1ReplicaSetSpec -> Value
toJSON V1ReplicaSetSpec {Maybe Int
Maybe V1PodTemplateSpec
V1LabelSelector
v1ReplicaSetSpecTemplate :: Maybe V1PodTemplateSpec
v1ReplicaSetSpecSelector :: V1LabelSelector
v1ReplicaSetSpecReplicas :: Maybe Int
v1ReplicaSetSpecMinReadySeconds :: Maybe Int
v1ReplicaSetSpecTemplate :: V1ReplicaSetSpec -> Maybe V1PodTemplateSpec
v1ReplicaSetSpecSelector :: V1ReplicaSetSpec -> V1LabelSelector
v1ReplicaSetSpecReplicas :: V1ReplicaSetSpec -> Maybe Int
v1ReplicaSetSpecMinReadySeconds :: V1ReplicaSetSpec -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"minReadySeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ReplicaSetSpecMinReadySeconds
      , Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ReplicaSetSpecReplicas
      , Text
"selector" Text -> V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1LabelSelector
v1ReplicaSetSpecSelector
      , Text
"template" Text -> Maybe V1PodTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PodTemplateSpec
v1ReplicaSetSpecTemplate
      ]


-- | Construct a value of type 'V1ReplicaSetSpec' (by applying it's required fields, if any)
mkV1ReplicaSetSpec
  :: V1LabelSelector -- ^ 'v1ReplicaSetSpecSelector' 
  -> V1ReplicaSetSpec
mkV1ReplicaSetSpec :: V1LabelSelector -> V1ReplicaSetSpec
mkV1ReplicaSetSpec V1LabelSelector
v1ReplicaSetSpecSelector =
  V1ReplicaSetSpec :: Maybe Int
-> Maybe Int
-> V1LabelSelector
-> Maybe V1PodTemplateSpec
-> V1ReplicaSetSpec
V1ReplicaSetSpec
  { v1ReplicaSetSpecMinReadySeconds :: Maybe Int
v1ReplicaSetSpecMinReadySeconds = Maybe Int
forall a. Maybe a
Nothing
  , v1ReplicaSetSpecReplicas :: Maybe Int
v1ReplicaSetSpecReplicas = Maybe Int
forall a. Maybe a
Nothing
  , V1LabelSelector
v1ReplicaSetSpecSelector :: V1LabelSelector
v1ReplicaSetSpecSelector :: V1LabelSelector
v1ReplicaSetSpecSelector
  , v1ReplicaSetSpecTemplate :: Maybe V1PodTemplateSpec
v1ReplicaSetSpecTemplate = Maybe V1PodTemplateSpec
forall a. Maybe a
Nothing
  }

-- ** V1ReplicaSetStatus
-- | V1ReplicaSetStatus
-- ReplicaSetStatus represents the current status of a ReplicaSet.
data V1ReplicaSetStatus = V1ReplicaSetStatus
  { V1ReplicaSetStatus -> Maybe Int
v1ReplicaSetStatusAvailableReplicas :: !(Maybe Int) -- ^ "availableReplicas" - The number of available replicas (ready for at least minReadySeconds) for this replica set.
  , V1ReplicaSetStatus -> Maybe [V1ReplicaSetCondition]
v1ReplicaSetStatusConditions :: !(Maybe [V1ReplicaSetCondition]) -- ^ "conditions" - Represents the latest available observations of a replica set&#39;s current state.
  , V1ReplicaSetStatus -> Maybe Int
v1ReplicaSetStatusFullyLabeledReplicas :: !(Maybe Int) -- ^ "fullyLabeledReplicas" - The number of pods that have labels matching the labels of the pod template of the replicaset.
  , V1ReplicaSetStatus -> Maybe Integer
v1ReplicaSetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - ObservedGeneration reflects the generation of the most recently observed ReplicaSet.
  , V1ReplicaSetStatus -> Maybe Int
v1ReplicaSetStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - The number of ready replicas for this replica set.
  , V1ReplicaSetStatus -> Int
v1ReplicaSetStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller
  } deriving (Int -> V1ReplicaSetStatus -> ShowS
[V1ReplicaSetStatus] -> ShowS
V1ReplicaSetStatus -> String
(Int -> V1ReplicaSetStatus -> ShowS)
-> (V1ReplicaSetStatus -> String)
-> ([V1ReplicaSetStatus] -> ShowS)
-> Show V1ReplicaSetStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ReplicaSetStatus] -> ShowS
$cshowList :: [V1ReplicaSetStatus] -> ShowS
show :: V1ReplicaSetStatus -> String
$cshow :: V1ReplicaSetStatus -> String
showsPrec :: Int -> V1ReplicaSetStatus -> ShowS
$cshowsPrec :: Int -> V1ReplicaSetStatus -> ShowS
P.Show, V1ReplicaSetStatus -> V1ReplicaSetStatus -> Bool
(V1ReplicaSetStatus -> V1ReplicaSetStatus -> Bool)
-> (V1ReplicaSetStatus -> V1ReplicaSetStatus -> Bool)
-> Eq V1ReplicaSetStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ReplicaSetStatus -> V1ReplicaSetStatus -> Bool
$c/= :: V1ReplicaSetStatus -> V1ReplicaSetStatus -> Bool
== :: V1ReplicaSetStatus -> V1ReplicaSetStatus -> Bool
$c== :: V1ReplicaSetStatus -> V1ReplicaSetStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ReplicaSetStatus
instance A.FromJSON V1ReplicaSetStatus where
  parseJSON :: Value -> Parser V1ReplicaSetStatus
parseJSON = String
-> (Object -> Parser V1ReplicaSetStatus)
-> Value
-> Parser V1ReplicaSetStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ReplicaSetStatus" ((Object -> Parser V1ReplicaSetStatus)
 -> Value -> Parser V1ReplicaSetStatus)
-> (Object -> Parser V1ReplicaSetStatus)
-> Value
-> Parser V1ReplicaSetStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe [V1ReplicaSetCondition]
-> Maybe Int
-> Maybe Integer
-> Maybe Int
-> Int
-> V1ReplicaSetStatus
V1ReplicaSetStatus
      (Maybe Int
 -> Maybe [V1ReplicaSetCondition]
 -> Maybe Int
 -> Maybe Integer
 -> Maybe Int
 -> Int
 -> V1ReplicaSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe [V1ReplicaSetCondition]
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> Int
      -> V1ReplicaSetStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"availableReplicas")
      Parser
  (Maybe [V1ReplicaSetCondition]
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> Int
   -> V1ReplicaSetStatus)
-> Parser (Maybe [V1ReplicaSetCondition])
-> Parser
     (Maybe Int
      -> Maybe Integer -> Maybe Int -> Int -> V1ReplicaSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1ReplicaSetCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Maybe Int
   -> Maybe Integer -> Maybe Int -> Int -> V1ReplicaSetStatus)
-> Parser (Maybe Int)
-> Parser (Maybe Integer -> Maybe Int -> Int -> V1ReplicaSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fullyLabeledReplicas")
      Parser (Maybe Integer -> Maybe Int -> Int -> V1ReplicaSetStatus)
-> Parser (Maybe Integer)
-> Parser (Maybe Int -> Int -> V1ReplicaSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")
      Parser (Maybe Int -> Int -> V1ReplicaSetStatus)
-> Parser (Maybe Int) -> Parser (Int -> V1ReplicaSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readyReplicas")
      Parser (Int -> V1ReplicaSetStatus)
-> Parser Int -> Parser V1ReplicaSetStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"replicas")

-- | ToJSON V1ReplicaSetStatus
instance A.ToJSON V1ReplicaSetStatus where
  toJSON :: V1ReplicaSetStatus -> Value
toJSON V1ReplicaSetStatus {Int
Maybe Int
Maybe Integer
Maybe [V1ReplicaSetCondition]
v1ReplicaSetStatusReplicas :: Int
v1ReplicaSetStatusReadyReplicas :: Maybe Int
v1ReplicaSetStatusObservedGeneration :: Maybe Integer
v1ReplicaSetStatusFullyLabeledReplicas :: Maybe Int
v1ReplicaSetStatusConditions :: Maybe [V1ReplicaSetCondition]
v1ReplicaSetStatusAvailableReplicas :: Maybe Int
v1ReplicaSetStatusReplicas :: V1ReplicaSetStatus -> Int
v1ReplicaSetStatusReadyReplicas :: V1ReplicaSetStatus -> Maybe Int
v1ReplicaSetStatusObservedGeneration :: V1ReplicaSetStatus -> Maybe Integer
v1ReplicaSetStatusFullyLabeledReplicas :: V1ReplicaSetStatus -> Maybe Int
v1ReplicaSetStatusConditions :: V1ReplicaSetStatus -> Maybe [V1ReplicaSetCondition]
v1ReplicaSetStatusAvailableReplicas :: V1ReplicaSetStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"availableReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ReplicaSetStatusAvailableReplicas
      , Text
"conditions" Text -> Maybe [V1ReplicaSetCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ReplicaSetCondition]
v1ReplicaSetStatusConditions
      , Text
"fullyLabeledReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ReplicaSetStatusFullyLabeledReplicas
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1ReplicaSetStatusObservedGeneration
      , Text
"readyReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ReplicaSetStatusReadyReplicas
      , Text
"replicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1ReplicaSetStatusReplicas
      ]


-- | Construct a value of type 'V1ReplicaSetStatus' (by applying it's required fields, if any)
mkV1ReplicaSetStatus
  :: Int -- ^ 'v1ReplicaSetStatusReplicas': Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller
  -> V1ReplicaSetStatus
mkV1ReplicaSetStatus :: Int -> V1ReplicaSetStatus
mkV1ReplicaSetStatus Int
v1ReplicaSetStatusReplicas =
  V1ReplicaSetStatus :: Maybe Int
-> Maybe [V1ReplicaSetCondition]
-> Maybe Int
-> Maybe Integer
-> Maybe Int
-> Int
-> V1ReplicaSetStatus
V1ReplicaSetStatus
  { v1ReplicaSetStatusAvailableReplicas :: Maybe Int
v1ReplicaSetStatusAvailableReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1ReplicaSetStatusConditions :: Maybe [V1ReplicaSetCondition]
v1ReplicaSetStatusConditions = Maybe [V1ReplicaSetCondition]
forall a. Maybe a
Nothing
  , v1ReplicaSetStatusFullyLabeledReplicas :: Maybe Int
v1ReplicaSetStatusFullyLabeledReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1ReplicaSetStatusObservedGeneration :: Maybe Integer
v1ReplicaSetStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  , v1ReplicaSetStatusReadyReplicas :: Maybe Int
v1ReplicaSetStatusReadyReplicas = Maybe Int
forall a. Maybe a
Nothing
  , Int
v1ReplicaSetStatusReplicas :: Int
v1ReplicaSetStatusReplicas :: Int
v1ReplicaSetStatusReplicas
  }

-- ** V1ReplicationController
-- | V1ReplicationController
-- ReplicationController represents the configuration of a replication controller.
data V1ReplicationController = V1ReplicationController
  { V1ReplicationController -> Maybe Text
v1ReplicationControllerApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ReplicationController -> Maybe Text
v1ReplicationControllerKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ReplicationController -> Maybe V1ObjectMeta
v1ReplicationControllerMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1ReplicationController -> Maybe V1ReplicationControllerSpec
v1ReplicationControllerSpec :: !(Maybe V1ReplicationControllerSpec) -- ^ "spec"
  , V1ReplicationController -> Maybe V1ReplicationControllerStatus
v1ReplicationControllerStatus :: !(Maybe V1ReplicationControllerStatus) -- ^ "status"
  } deriving (Int -> V1ReplicationController -> ShowS
[V1ReplicationController] -> ShowS
V1ReplicationController -> String
(Int -> V1ReplicationController -> ShowS)
-> (V1ReplicationController -> String)
-> ([V1ReplicationController] -> ShowS)
-> Show V1ReplicationController
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ReplicationController] -> ShowS
$cshowList :: [V1ReplicationController] -> ShowS
show :: V1ReplicationController -> String
$cshow :: V1ReplicationController -> String
showsPrec :: Int -> V1ReplicationController -> ShowS
$cshowsPrec :: Int -> V1ReplicationController -> ShowS
P.Show, V1ReplicationController -> V1ReplicationController -> Bool
(V1ReplicationController -> V1ReplicationController -> Bool)
-> (V1ReplicationController -> V1ReplicationController -> Bool)
-> Eq V1ReplicationController
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ReplicationController -> V1ReplicationController -> Bool
$c/= :: V1ReplicationController -> V1ReplicationController -> Bool
== :: V1ReplicationController -> V1ReplicationController -> Bool
$c== :: V1ReplicationController -> V1ReplicationController -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ReplicationController
instance A.FromJSON V1ReplicationController where
  parseJSON :: Value -> Parser V1ReplicationController
parseJSON = String
-> (Object -> Parser V1ReplicationController)
-> Value
-> Parser V1ReplicationController
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ReplicationController" ((Object -> Parser V1ReplicationController)
 -> Value -> Parser V1ReplicationController)
-> (Object -> Parser V1ReplicationController)
-> Value
-> Parser V1ReplicationController
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1ReplicationControllerSpec
-> Maybe V1ReplicationControllerStatus
-> V1ReplicationController
V1ReplicationController
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1ReplicationControllerSpec
 -> Maybe V1ReplicationControllerStatus
 -> V1ReplicationController)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1ReplicationControllerSpec
      -> Maybe V1ReplicationControllerStatus
      -> V1ReplicationController)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1ReplicationControllerSpec
   -> Maybe V1ReplicationControllerStatus
   -> V1ReplicationController)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1ReplicationControllerSpec
      -> Maybe V1ReplicationControllerStatus
      -> V1ReplicationController)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1ReplicationControllerSpec
   -> Maybe V1ReplicationControllerStatus
   -> V1ReplicationController)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1ReplicationControllerSpec
      -> Maybe V1ReplicationControllerStatus -> V1ReplicationController)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1ReplicationControllerSpec
   -> Maybe V1ReplicationControllerStatus -> V1ReplicationController)
-> Parser (Maybe V1ReplicationControllerSpec)
-> Parser
     (Maybe V1ReplicationControllerStatus -> V1ReplicationController)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ReplicationControllerSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser
  (Maybe V1ReplicationControllerStatus -> V1ReplicationController)
-> Parser (Maybe V1ReplicationControllerStatus)
-> Parser V1ReplicationController
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ReplicationControllerStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1ReplicationController
instance A.ToJSON V1ReplicationController where
  toJSON :: V1ReplicationController -> Value
toJSON V1ReplicationController {Maybe Text
Maybe V1ReplicationControllerStatus
Maybe V1ReplicationControllerSpec
Maybe V1ObjectMeta
v1ReplicationControllerStatus :: Maybe V1ReplicationControllerStatus
v1ReplicationControllerSpec :: Maybe V1ReplicationControllerSpec
v1ReplicationControllerMetadata :: Maybe V1ObjectMeta
v1ReplicationControllerKind :: Maybe Text
v1ReplicationControllerApiVersion :: Maybe Text
v1ReplicationControllerStatus :: V1ReplicationController -> Maybe V1ReplicationControllerStatus
v1ReplicationControllerSpec :: V1ReplicationController -> Maybe V1ReplicationControllerSpec
v1ReplicationControllerMetadata :: V1ReplicationController -> Maybe V1ObjectMeta
v1ReplicationControllerKind :: V1ReplicationController -> Maybe Text
v1ReplicationControllerApiVersion :: V1ReplicationController -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ReplicationControllerApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ReplicationControllerKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1ReplicationControllerMetadata
      , Text
"spec" Text -> Maybe V1ReplicationControllerSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ReplicationControllerSpec
v1ReplicationControllerSpec
      , Text
"status" Text -> Maybe V1ReplicationControllerStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ReplicationControllerStatus
v1ReplicationControllerStatus
      ]


-- | Construct a value of type 'V1ReplicationController' (by applying it's required fields, if any)
mkV1ReplicationController
  :: V1ReplicationController
mkV1ReplicationController :: V1ReplicationController
mkV1ReplicationController =
  V1ReplicationController :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1ReplicationControllerSpec
-> Maybe V1ReplicationControllerStatus
-> V1ReplicationController
V1ReplicationController
  { v1ReplicationControllerApiVersion :: Maybe Text
v1ReplicationControllerApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ReplicationControllerKind :: Maybe Text
v1ReplicationControllerKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ReplicationControllerMetadata :: Maybe V1ObjectMeta
v1ReplicationControllerMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1ReplicationControllerSpec :: Maybe V1ReplicationControllerSpec
v1ReplicationControllerSpec = Maybe V1ReplicationControllerSpec
forall a. Maybe a
Nothing
  , v1ReplicationControllerStatus :: Maybe V1ReplicationControllerStatus
v1ReplicationControllerStatus = Maybe V1ReplicationControllerStatus
forall a. Maybe a
Nothing
  }

-- ** V1ReplicationControllerCondition
-- | V1ReplicationControllerCondition
-- ReplicationControllerCondition describes the state of a replication controller at a certain point.
data V1ReplicationControllerCondition = V1ReplicationControllerCondition
  { V1ReplicationControllerCondition -> Maybe DateTime
v1ReplicationControllerConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - The last time the condition transitioned from one status to another.
  , V1ReplicationControllerCondition -> Maybe Text
v1ReplicationControllerConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.
  , V1ReplicationControllerCondition -> Maybe Text
v1ReplicationControllerConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition&#39;s last transition.
  , V1ReplicationControllerCondition -> Text
v1ReplicationControllerConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , V1ReplicationControllerCondition -> Text
v1ReplicationControllerConditionType :: !(Text) -- ^ /Required/ "type" - Type of replication controller condition.
  } deriving (Int -> V1ReplicationControllerCondition -> ShowS
[V1ReplicationControllerCondition] -> ShowS
V1ReplicationControllerCondition -> String
(Int -> V1ReplicationControllerCondition -> ShowS)
-> (V1ReplicationControllerCondition -> String)
-> ([V1ReplicationControllerCondition] -> ShowS)
-> Show V1ReplicationControllerCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ReplicationControllerCondition] -> ShowS
$cshowList :: [V1ReplicationControllerCondition] -> ShowS
show :: V1ReplicationControllerCondition -> String
$cshow :: V1ReplicationControllerCondition -> String
showsPrec :: Int -> V1ReplicationControllerCondition -> ShowS
$cshowsPrec :: Int -> V1ReplicationControllerCondition -> ShowS
P.Show, V1ReplicationControllerCondition
-> V1ReplicationControllerCondition -> Bool
(V1ReplicationControllerCondition
 -> V1ReplicationControllerCondition -> Bool)
-> (V1ReplicationControllerCondition
    -> V1ReplicationControllerCondition -> Bool)
-> Eq V1ReplicationControllerCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ReplicationControllerCondition
-> V1ReplicationControllerCondition -> Bool
$c/= :: V1ReplicationControllerCondition
-> V1ReplicationControllerCondition -> Bool
== :: V1ReplicationControllerCondition
-> V1ReplicationControllerCondition -> Bool
$c== :: V1ReplicationControllerCondition
-> V1ReplicationControllerCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ReplicationControllerCondition
instance A.FromJSON V1ReplicationControllerCondition where
  parseJSON :: Value -> Parser V1ReplicationControllerCondition
parseJSON = String
-> (Object -> Parser V1ReplicationControllerCondition)
-> Value
-> Parser V1ReplicationControllerCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ReplicationControllerCondition" ((Object -> Parser V1ReplicationControllerCondition)
 -> Value -> Parser V1ReplicationControllerCondition)
-> (Object -> Parser V1ReplicationControllerCondition)
-> Value
-> Parser V1ReplicationControllerCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1ReplicationControllerCondition
V1ReplicationControllerCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1ReplicationControllerCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text -> Text -> Text -> V1ReplicationControllerCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text
   -> Maybe Text -> Text -> Text -> V1ReplicationControllerCondition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Text -> Text -> V1ReplicationControllerCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser
  (Maybe Text -> Text -> Text -> V1ReplicationControllerCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1ReplicationControllerCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1ReplicationControllerCondition)
-> Parser Text -> Parser (Text -> V1ReplicationControllerCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1ReplicationControllerCondition)
-> Parser Text -> Parser V1ReplicationControllerCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1ReplicationControllerCondition
instance A.ToJSON V1ReplicationControllerCondition where
  toJSON :: V1ReplicationControllerCondition -> Value
toJSON V1ReplicationControllerCondition {Maybe Text
Maybe DateTime
Text
v1ReplicationControllerConditionType :: Text
v1ReplicationControllerConditionStatus :: Text
v1ReplicationControllerConditionReason :: Maybe Text
v1ReplicationControllerConditionMessage :: Maybe Text
v1ReplicationControllerConditionLastTransitionTime :: Maybe DateTime
v1ReplicationControllerConditionType :: V1ReplicationControllerCondition -> Text
v1ReplicationControllerConditionStatus :: V1ReplicationControllerCondition -> Text
v1ReplicationControllerConditionReason :: V1ReplicationControllerCondition -> Maybe Text
v1ReplicationControllerConditionMessage :: V1ReplicationControllerCondition -> Maybe Text
v1ReplicationControllerConditionLastTransitionTime :: V1ReplicationControllerCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1ReplicationControllerConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ReplicationControllerConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ReplicationControllerConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ReplicationControllerConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ReplicationControllerConditionType
      ]


-- | Construct a value of type 'V1ReplicationControllerCondition' (by applying it's required fields, if any)
mkV1ReplicationControllerCondition
  :: Text -- ^ 'v1ReplicationControllerConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'v1ReplicationControllerConditionType': Type of replication controller condition.
  -> V1ReplicationControllerCondition
mkV1ReplicationControllerCondition :: Text -> Text -> V1ReplicationControllerCondition
mkV1ReplicationControllerCondition Text
v1ReplicationControllerConditionStatus Text
v1ReplicationControllerConditionType =
  V1ReplicationControllerCondition :: Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1ReplicationControllerCondition
V1ReplicationControllerCondition
  { v1ReplicationControllerConditionLastTransitionTime :: Maybe DateTime
v1ReplicationControllerConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1ReplicationControllerConditionMessage :: Maybe Text
v1ReplicationControllerConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1ReplicationControllerConditionReason :: Maybe Text
v1ReplicationControllerConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1ReplicationControllerConditionStatus :: Text
v1ReplicationControllerConditionStatus :: Text
v1ReplicationControllerConditionStatus
  , Text
v1ReplicationControllerConditionType :: Text
v1ReplicationControllerConditionType :: Text
v1ReplicationControllerConditionType
  }

-- ** V1ReplicationControllerList
-- | V1ReplicationControllerList
-- ReplicationControllerList is a collection of replication controllers.
data V1ReplicationControllerList = V1ReplicationControllerList
  { V1ReplicationControllerList -> Maybe Text
v1ReplicationControllerListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ReplicationControllerList -> [V1ReplicationController]
v1ReplicationControllerListItems :: !([V1ReplicationController]) -- ^ /Required/ "items" - List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
  , V1ReplicationControllerList -> Maybe Text
v1ReplicationControllerListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ReplicationControllerList -> Maybe V1ListMeta
v1ReplicationControllerListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1ReplicationControllerList -> ShowS
[V1ReplicationControllerList] -> ShowS
V1ReplicationControllerList -> String
(Int -> V1ReplicationControllerList -> ShowS)
-> (V1ReplicationControllerList -> String)
-> ([V1ReplicationControllerList] -> ShowS)
-> Show V1ReplicationControllerList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ReplicationControllerList] -> ShowS
$cshowList :: [V1ReplicationControllerList] -> ShowS
show :: V1ReplicationControllerList -> String
$cshow :: V1ReplicationControllerList -> String
showsPrec :: Int -> V1ReplicationControllerList -> ShowS
$cshowsPrec :: Int -> V1ReplicationControllerList -> ShowS
P.Show, V1ReplicationControllerList -> V1ReplicationControllerList -> Bool
(V1ReplicationControllerList
 -> V1ReplicationControllerList -> Bool)
-> (V1ReplicationControllerList
    -> V1ReplicationControllerList -> Bool)
-> Eq V1ReplicationControllerList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ReplicationControllerList -> V1ReplicationControllerList -> Bool
$c/= :: V1ReplicationControllerList -> V1ReplicationControllerList -> Bool
== :: V1ReplicationControllerList -> V1ReplicationControllerList -> Bool
$c== :: V1ReplicationControllerList -> V1ReplicationControllerList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ReplicationControllerList
instance A.FromJSON V1ReplicationControllerList where
  parseJSON :: Value -> Parser V1ReplicationControllerList
parseJSON = String
-> (Object -> Parser V1ReplicationControllerList)
-> Value
-> Parser V1ReplicationControllerList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ReplicationControllerList" ((Object -> Parser V1ReplicationControllerList)
 -> Value -> Parser V1ReplicationControllerList)
-> (Object -> Parser V1ReplicationControllerList)
-> Value
-> Parser V1ReplicationControllerList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1ReplicationController]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ReplicationControllerList
V1ReplicationControllerList
      (Maybe Text
 -> [V1ReplicationController]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1ReplicationControllerList)
-> Parser (Maybe Text)
-> Parser
     ([V1ReplicationController]
      -> Maybe Text -> Maybe V1ListMeta -> V1ReplicationControllerList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1ReplicationController]
   -> Maybe Text -> Maybe V1ListMeta -> V1ReplicationControllerList)
-> Parser [V1ReplicationController]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1ReplicationControllerList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1ReplicationController]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> V1ReplicationControllerList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1ReplicationControllerList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1ReplicationControllerList)
-> Parser (Maybe V1ListMeta) -> Parser V1ReplicationControllerList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1ReplicationControllerList
instance A.ToJSON V1ReplicationControllerList where
  toJSON :: V1ReplicationControllerList -> Value
toJSON V1ReplicationControllerList {[V1ReplicationController]
Maybe Text
Maybe V1ListMeta
v1ReplicationControllerListMetadata :: Maybe V1ListMeta
v1ReplicationControllerListKind :: Maybe Text
v1ReplicationControllerListItems :: [V1ReplicationController]
v1ReplicationControllerListApiVersion :: Maybe Text
v1ReplicationControllerListMetadata :: V1ReplicationControllerList -> Maybe V1ListMeta
v1ReplicationControllerListKind :: V1ReplicationControllerList -> Maybe Text
v1ReplicationControllerListItems :: V1ReplicationControllerList -> [V1ReplicationController]
v1ReplicationControllerListApiVersion :: V1ReplicationControllerList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ReplicationControllerListApiVersion
      , Text
"items" Text -> [V1ReplicationController] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1ReplicationController]
v1ReplicationControllerListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ReplicationControllerListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1ReplicationControllerListMetadata
      ]


-- | Construct a value of type 'V1ReplicationControllerList' (by applying it's required fields, if any)
mkV1ReplicationControllerList
  :: [V1ReplicationController] -- ^ 'v1ReplicationControllerListItems': List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
  -> V1ReplicationControllerList
mkV1ReplicationControllerList :: [V1ReplicationController] -> V1ReplicationControllerList
mkV1ReplicationControllerList [V1ReplicationController]
v1ReplicationControllerListItems =
  V1ReplicationControllerList :: Maybe Text
-> [V1ReplicationController]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ReplicationControllerList
V1ReplicationControllerList
  { v1ReplicationControllerListApiVersion :: Maybe Text
v1ReplicationControllerListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1ReplicationController]
v1ReplicationControllerListItems :: [V1ReplicationController]
v1ReplicationControllerListItems :: [V1ReplicationController]
v1ReplicationControllerListItems
  , v1ReplicationControllerListKind :: Maybe Text
v1ReplicationControllerListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ReplicationControllerListMetadata :: Maybe V1ListMeta
v1ReplicationControllerListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1ReplicationControllerSpec
-- | V1ReplicationControllerSpec
-- ReplicationControllerSpec is the specification of a replication controller.
data V1ReplicationControllerSpec = V1ReplicationControllerSpec
  { V1ReplicationControllerSpec -> Maybe Int
v1ReplicationControllerSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)
  , V1ReplicationControllerSpec -> Maybe Int
v1ReplicationControllerSpecReplicas :: !(Maybe Int) -- ^ "replicas" - Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
  , V1ReplicationControllerSpec -> Maybe (Map String Text)
v1ReplicationControllerSpecSelector :: !(Maybe (Map.Map String Text)) -- ^ "selector" - Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
  , V1ReplicationControllerSpec -> Maybe V1PodTemplateSpec
v1ReplicationControllerSpecTemplate :: !(Maybe V1PodTemplateSpec) -- ^ "template"
  } deriving (Int -> V1ReplicationControllerSpec -> ShowS
[V1ReplicationControllerSpec] -> ShowS
V1ReplicationControllerSpec -> String
(Int -> V1ReplicationControllerSpec -> ShowS)
-> (V1ReplicationControllerSpec -> String)
-> ([V1ReplicationControllerSpec] -> ShowS)
-> Show V1ReplicationControllerSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ReplicationControllerSpec] -> ShowS
$cshowList :: [V1ReplicationControllerSpec] -> ShowS
show :: V1ReplicationControllerSpec -> String
$cshow :: V1ReplicationControllerSpec -> String
showsPrec :: Int -> V1ReplicationControllerSpec -> ShowS
$cshowsPrec :: Int -> V1ReplicationControllerSpec -> ShowS
P.Show, V1ReplicationControllerSpec -> V1ReplicationControllerSpec -> Bool
(V1ReplicationControllerSpec
 -> V1ReplicationControllerSpec -> Bool)
-> (V1ReplicationControllerSpec
    -> V1ReplicationControllerSpec -> Bool)
-> Eq V1ReplicationControllerSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ReplicationControllerSpec -> V1ReplicationControllerSpec -> Bool
$c/= :: V1ReplicationControllerSpec -> V1ReplicationControllerSpec -> Bool
== :: V1ReplicationControllerSpec -> V1ReplicationControllerSpec -> Bool
$c== :: V1ReplicationControllerSpec -> V1ReplicationControllerSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ReplicationControllerSpec
instance A.FromJSON V1ReplicationControllerSpec where
  parseJSON :: Value -> Parser V1ReplicationControllerSpec
parseJSON = String
-> (Object -> Parser V1ReplicationControllerSpec)
-> Value
-> Parser V1ReplicationControllerSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ReplicationControllerSpec" ((Object -> Parser V1ReplicationControllerSpec)
 -> Value -> Parser V1ReplicationControllerSpec)
-> (Object -> Parser V1ReplicationControllerSpec)
-> Value
-> Parser V1ReplicationControllerSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Int
-> Maybe (Map String Text)
-> Maybe V1PodTemplateSpec
-> V1ReplicationControllerSpec
V1ReplicationControllerSpec
      (Maybe Int
 -> Maybe Int
 -> Maybe (Map String Text)
 -> Maybe V1PodTemplateSpec
 -> V1ReplicationControllerSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe (Map String Text)
      -> Maybe V1PodTemplateSpec
      -> V1ReplicationControllerSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minReadySeconds")
      Parser
  (Maybe Int
   -> Maybe (Map String Text)
   -> Maybe V1PodTemplateSpec
   -> V1ReplicationControllerSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe (Map String Text)
      -> Maybe V1PodTemplateSpec -> V1ReplicationControllerSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")
      Parser
  (Maybe (Map String Text)
   -> Maybe V1PodTemplateSpec -> V1ReplicationControllerSpec)
-> Parser (Maybe (Map String Text))
-> Parser (Maybe V1PodTemplateSpec -> V1ReplicationControllerSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")
      Parser (Maybe V1PodTemplateSpec -> V1ReplicationControllerSpec)
-> Parser (Maybe V1PodTemplateSpec)
-> Parser V1ReplicationControllerSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PodTemplateSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"template")

-- | ToJSON V1ReplicationControllerSpec
instance A.ToJSON V1ReplicationControllerSpec where
  toJSON :: V1ReplicationControllerSpec -> Value
toJSON V1ReplicationControllerSpec {Maybe Int
Maybe (Map String Text)
Maybe V1PodTemplateSpec
v1ReplicationControllerSpecTemplate :: Maybe V1PodTemplateSpec
v1ReplicationControllerSpecSelector :: Maybe (Map String Text)
v1ReplicationControllerSpecReplicas :: Maybe Int
v1ReplicationControllerSpecMinReadySeconds :: Maybe Int
v1ReplicationControllerSpecTemplate :: V1ReplicationControllerSpec -> Maybe V1PodTemplateSpec
v1ReplicationControllerSpecSelector :: V1ReplicationControllerSpec -> Maybe (Map String Text)
v1ReplicationControllerSpecReplicas :: V1ReplicationControllerSpec -> Maybe Int
v1ReplicationControllerSpecMinReadySeconds :: V1ReplicationControllerSpec -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"minReadySeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ReplicationControllerSpecMinReadySeconds
      , Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ReplicationControllerSpecReplicas
      , Text
"selector" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1ReplicationControllerSpecSelector
      , Text
"template" Text -> Maybe V1PodTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PodTemplateSpec
v1ReplicationControllerSpecTemplate
      ]


-- | Construct a value of type 'V1ReplicationControllerSpec' (by applying it's required fields, if any)
mkV1ReplicationControllerSpec
  :: V1ReplicationControllerSpec
mkV1ReplicationControllerSpec :: V1ReplicationControllerSpec
mkV1ReplicationControllerSpec =
  V1ReplicationControllerSpec :: Maybe Int
-> Maybe Int
-> Maybe (Map String Text)
-> Maybe V1PodTemplateSpec
-> V1ReplicationControllerSpec
V1ReplicationControllerSpec
  { v1ReplicationControllerSpecMinReadySeconds :: Maybe Int
v1ReplicationControllerSpecMinReadySeconds = Maybe Int
forall a. Maybe a
Nothing
  , v1ReplicationControllerSpecReplicas :: Maybe Int
v1ReplicationControllerSpecReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1ReplicationControllerSpecSelector :: Maybe (Map String Text)
v1ReplicationControllerSpecSelector = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , v1ReplicationControllerSpecTemplate :: Maybe V1PodTemplateSpec
v1ReplicationControllerSpecTemplate = Maybe V1PodTemplateSpec
forall a. Maybe a
Nothing
  }

-- ** V1ReplicationControllerStatus
-- | V1ReplicationControllerStatus
-- ReplicationControllerStatus represents the current status of a replication controller.
data V1ReplicationControllerStatus = V1ReplicationControllerStatus
  { V1ReplicationControllerStatus -> Maybe Int
v1ReplicationControllerStatusAvailableReplicas :: !(Maybe Int) -- ^ "availableReplicas" - The number of available replicas (ready for at least minReadySeconds) for this replication controller.
  , V1ReplicationControllerStatus
-> Maybe [V1ReplicationControllerCondition]
v1ReplicationControllerStatusConditions :: !(Maybe [V1ReplicationControllerCondition]) -- ^ "conditions" - Represents the latest available observations of a replication controller&#39;s current state.
  , V1ReplicationControllerStatus -> Maybe Int
v1ReplicationControllerStatusFullyLabeledReplicas :: !(Maybe Int) -- ^ "fullyLabeledReplicas" - The number of pods that have labels matching the labels of the pod template of the replication controller.
  , V1ReplicationControllerStatus -> Maybe Integer
v1ReplicationControllerStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - ObservedGeneration reflects the generation of the most recently observed replication controller.
  , V1ReplicationControllerStatus -> Maybe Int
v1ReplicationControllerStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - The number of ready replicas for this replication controller.
  , V1ReplicationControllerStatus -> Int
v1ReplicationControllerStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
  } deriving (Int -> V1ReplicationControllerStatus -> ShowS
[V1ReplicationControllerStatus] -> ShowS
V1ReplicationControllerStatus -> String
(Int -> V1ReplicationControllerStatus -> ShowS)
-> (V1ReplicationControllerStatus -> String)
-> ([V1ReplicationControllerStatus] -> ShowS)
-> Show V1ReplicationControllerStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ReplicationControllerStatus] -> ShowS
$cshowList :: [V1ReplicationControllerStatus] -> ShowS
show :: V1ReplicationControllerStatus -> String
$cshow :: V1ReplicationControllerStatus -> String
showsPrec :: Int -> V1ReplicationControllerStatus -> ShowS
$cshowsPrec :: Int -> V1ReplicationControllerStatus -> ShowS
P.Show, V1ReplicationControllerStatus
-> V1ReplicationControllerStatus -> Bool
(V1ReplicationControllerStatus
 -> V1ReplicationControllerStatus -> Bool)
-> (V1ReplicationControllerStatus
    -> V1ReplicationControllerStatus -> Bool)
-> Eq V1ReplicationControllerStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ReplicationControllerStatus
-> V1ReplicationControllerStatus -> Bool
$c/= :: V1ReplicationControllerStatus
-> V1ReplicationControllerStatus -> Bool
== :: V1ReplicationControllerStatus
-> V1ReplicationControllerStatus -> Bool
$c== :: V1ReplicationControllerStatus
-> V1ReplicationControllerStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ReplicationControllerStatus
instance A.FromJSON V1ReplicationControllerStatus where
  parseJSON :: Value -> Parser V1ReplicationControllerStatus
parseJSON = String
-> (Object -> Parser V1ReplicationControllerStatus)
-> Value
-> Parser V1ReplicationControllerStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ReplicationControllerStatus" ((Object -> Parser V1ReplicationControllerStatus)
 -> Value -> Parser V1ReplicationControllerStatus)
-> (Object -> Parser V1ReplicationControllerStatus)
-> Value
-> Parser V1ReplicationControllerStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe [V1ReplicationControllerCondition]
-> Maybe Int
-> Maybe Integer
-> Maybe Int
-> Int
-> V1ReplicationControllerStatus
V1ReplicationControllerStatus
      (Maybe Int
 -> Maybe [V1ReplicationControllerCondition]
 -> Maybe Int
 -> Maybe Integer
 -> Maybe Int
 -> Int
 -> V1ReplicationControllerStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe [V1ReplicationControllerCondition]
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> Int
      -> V1ReplicationControllerStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"availableReplicas")
      Parser
  (Maybe [V1ReplicationControllerCondition]
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> Int
   -> V1ReplicationControllerStatus)
-> Parser (Maybe [V1ReplicationControllerCondition])
-> Parser
     (Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> Int
      -> V1ReplicationControllerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1ReplicationControllerCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> Int
   -> V1ReplicationControllerStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe Integer
      -> Maybe Int -> Int -> V1ReplicationControllerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fullyLabeledReplicas")
      Parser
  (Maybe Integer
   -> Maybe Int -> Int -> V1ReplicationControllerStatus)
-> Parser (Maybe Integer)
-> Parser (Maybe Int -> Int -> V1ReplicationControllerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")
      Parser (Maybe Int -> Int -> V1ReplicationControllerStatus)
-> Parser (Maybe Int)
-> Parser (Int -> V1ReplicationControllerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readyReplicas")
      Parser (Int -> V1ReplicationControllerStatus)
-> Parser Int -> Parser V1ReplicationControllerStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"replicas")

-- | ToJSON V1ReplicationControllerStatus
instance A.ToJSON V1ReplicationControllerStatus where
  toJSON :: V1ReplicationControllerStatus -> Value
toJSON V1ReplicationControllerStatus {Int
Maybe Int
Maybe Integer
Maybe [V1ReplicationControllerCondition]
v1ReplicationControllerStatusReplicas :: Int
v1ReplicationControllerStatusReadyReplicas :: Maybe Int
v1ReplicationControllerStatusObservedGeneration :: Maybe Integer
v1ReplicationControllerStatusFullyLabeledReplicas :: Maybe Int
v1ReplicationControllerStatusConditions :: Maybe [V1ReplicationControllerCondition]
v1ReplicationControllerStatusAvailableReplicas :: Maybe Int
v1ReplicationControllerStatusReplicas :: V1ReplicationControllerStatus -> Int
v1ReplicationControllerStatusReadyReplicas :: V1ReplicationControllerStatus -> Maybe Int
v1ReplicationControllerStatusObservedGeneration :: V1ReplicationControllerStatus -> Maybe Integer
v1ReplicationControllerStatusFullyLabeledReplicas :: V1ReplicationControllerStatus -> Maybe Int
v1ReplicationControllerStatusConditions :: V1ReplicationControllerStatus
-> Maybe [V1ReplicationControllerCondition]
v1ReplicationControllerStatusAvailableReplicas :: V1ReplicationControllerStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"availableReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ReplicationControllerStatusAvailableReplicas
      , Text
"conditions" Text -> Maybe [V1ReplicationControllerCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ReplicationControllerCondition]
v1ReplicationControllerStatusConditions
      , Text
"fullyLabeledReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ReplicationControllerStatusFullyLabeledReplicas
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1ReplicationControllerStatusObservedGeneration
      , Text
"readyReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ReplicationControllerStatusReadyReplicas
      , Text
"replicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1ReplicationControllerStatusReplicas
      ]


-- | Construct a value of type 'V1ReplicationControllerStatus' (by applying it's required fields, if any)
mkV1ReplicationControllerStatus
  :: Int -- ^ 'v1ReplicationControllerStatusReplicas': Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
  -> V1ReplicationControllerStatus
mkV1ReplicationControllerStatus :: Int -> V1ReplicationControllerStatus
mkV1ReplicationControllerStatus Int
v1ReplicationControllerStatusReplicas =
  V1ReplicationControllerStatus :: Maybe Int
-> Maybe [V1ReplicationControllerCondition]
-> Maybe Int
-> Maybe Integer
-> Maybe Int
-> Int
-> V1ReplicationControllerStatus
V1ReplicationControllerStatus
  { v1ReplicationControllerStatusAvailableReplicas :: Maybe Int
v1ReplicationControllerStatusAvailableReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1ReplicationControllerStatusConditions :: Maybe [V1ReplicationControllerCondition]
v1ReplicationControllerStatusConditions = Maybe [V1ReplicationControllerCondition]
forall a. Maybe a
Nothing
  , v1ReplicationControllerStatusFullyLabeledReplicas :: Maybe Int
v1ReplicationControllerStatusFullyLabeledReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1ReplicationControllerStatusObservedGeneration :: Maybe Integer
v1ReplicationControllerStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  , v1ReplicationControllerStatusReadyReplicas :: Maybe Int
v1ReplicationControllerStatusReadyReplicas = Maybe Int
forall a. Maybe a
Nothing
  , Int
v1ReplicationControllerStatusReplicas :: Int
v1ReplicationControllerStatusReplicas :: Int
v1ReplicationControllerStatusReplicas
  }

-- ** V1ResourceAttributes
-- | V1ResourceAttributes
-- ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface
data V1ResourceAttributes = V1ResourceAttributes
  { V1ResourceAttributes -> Maybe Text
v1ResourceAttributesGroup :: !(Maybe Text) -- ^ "group" - Group is the API Group of the Resource.  \&quot;*\&quot; means all.
  , V1ResourceAttributes -> Maybe Text
v1ResourceAttributesName :: !(Maybe Text) -- ^ "name" - Name is the name of the resource being requested for a \&quot;get\&quot; or deleted for a \&quot;delete\&quot;. \&quot;\&quot; (empty) means all.
  , V1ResourceAttributes -> Maybe Text
v1ResourceAttributesNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace is the namespace of the action being requested.  Currently, there is no distinction between no namespace and all namespaces \&quot;\&quot; (empty) is defaulted for LocalSubjectAccessReviews \&quot;\&quot; (empty) is empty for cluster-scoped resources \&quot;\&quot; (empty) means \&quot;all\&quot; for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview
  , V1ResourceAttributes -> Maybe Text
v1ResourceAttributesResource :: !(Maybe Text) -- ^ "resource" - Resource is one of the existing resource types.  \&quot;*\&quot; means all.
  , V1ResourceAttributes -> Maybe Text
v1ResourceAttributesSubresource :: !(Maybe Text) -- ^ "subresource" - Subresource is one of the existing resource types.  \&quot;\&quot; means none.
  , V1ResourceAttributes -> Maybe Text
v1ResourceAttributesVerb :: !(Maybe Text) -- ^ "verb" - Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \&quot;*\&quot; means all.
  , V1ResourceAttributes -> Maybe Text
v1ResourceAttributesVersion :: !(Maybe Text) -- ^ "version" - Version is the API Version of the Resource.  \&quot;*\&quot; means all.
  } deriving (Int -> V1ResourceAttributes -> ShowS
[V1ResourceAttributes] -> ShowS
V1ResourceAttributes -> String
(Int -> V1ResourceAttributes -> ShowS)
-> (V1ResourceAttributes -> String)
-> ([V1ResourceAttributes] -> ShowS)
-> Show V1ResourceAttributes
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ResourceAttributes] -> ShowS
$cshowList :: [V1ResourceAttributes] -> ShowS
show :: V1ResourceAttributes -> String
$cshow :: V1ResourceAttributes -> String
showsPrec :: Int -> V1ResourceAttributes -> ShowS
$cshowsPrec :: Int -> V1ResourceAttributes -> ShowS
P.Show, V1ResourceAttributes -> V1ResourceAttributes -> Bool
(V1ResourceAttributes -> V1ResourceAttributes -> Bool)
-> (V1ResourceAttributes -> V1ResourceAttributes -> Bool)
-> Eq V1ResourceAttributes
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ResourceAttributes -> V1ResourceAttributes -> Bool
$c/= :: V1ResourceAttributes -> V1ResourceAttributes -> Bool
== :: V1ResourceAttributes -> V1ResourceAttributes -> Bool
$c== :: V1ResourceAttributes -> V1ResourceAttributes -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ResourceAttributes
instance A.FromJSON V1ResourceAttributes where
  parseJSON :: Value -> Parser V1ResourceAttributes
parseJSON = String
-> (Object -> Parser V1ResourceAttributes)
-> Value
-> Parser V1ResourceAttributes
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ResourceAttributes" ((Object -> Parser V1ResourceAttributes)
 -> Value -> Parser V1ResourceAttributes)
-> (Object -> Parser V1ResourceAttributes)
-> Value
-> Parser V1ResourceAttributes
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> V1ResourceAttributes
V1ResourceAttributes
      (Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> V1ResourceAttributes)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1ResourceAttributes)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"group")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1ResourceAttributes)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1ResourceAttributes)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1ResourceAttributes)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Text -> Maybe Text -> V1ResourceAttributes)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespace")
      Parser
  (Maybe Text
   -> Maybe Text -> Maybe Text -> Maybe Text -> V1ResourceAttributes)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Text -> Maybe Text -> V1ResourceAttributes)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resource")
      Parser
  (Maybe Text -> Maybe Text -> Maybe Text -> V1ResourceAttributes)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> V1ResourceAttributes)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"subresource")
      Parser (Maybe Text -> Maybe Text -> V1ResourceAttributes)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1ResourceAttributes)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"verb")
      Parser (Maybe Text -> V1ResourceAttributes)
-> Parser (Maybe Text) -> Parser V1ResourceAttributes
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"version")

-- | ToJSON V1ResourceAttributes
instance A.ToJSON V1ResourceAttributes where
  toJSON :: V1ResourceAttributes -> Value
toJSON V1ResourceAttributes {Maybe Text
v1ResourceAttributesVersion :: Maybe Text
v1ResourceAttributesVerb :: Maybe Text
v1ResourceAttributesSubresource :: Maybe Text
v1ResourceAttributesResource :: Maybe Text
v1ResourceAttributesNamespace :: Maybe Text
v1ResourceAttributesName :: Maybe Text
v1ResourceAttributesGroup :: Maybe Text
v1ResourceAttributesVersion :: V1ResourceAttributes -> Maybe Text
v1ResourceAttributesVerb :: V1ResourceAttributes -> Maybe Text
v1ResourceAttributesSubresource :: V1ResourceAttributes -> Maybe Text
v1ResourceAttributesResource :: V1ResourceAttributes -> Maybe Text
v1ResourceAttributesNamespace :: V1ResourceAttributes -> Maybe Text
v1ResourceAttributesName :: V1ResourceAttributes -> Maybe Text
v1ResourceAttributesGroup :: V1ResourceAttributes -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"group" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ResourceAttributesGroup
      , Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ResourceAttributesName
      , Text
"namespace" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ResourceAttributesNamespace
      , Text
"resource" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ResourceAttributesResource
      , Text
"subresource" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ResourceAttributesSubresource
      , Text
"verb" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ResourceAttributesVerb
      , Text
"version" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ResourceAttributesVersion
      ]


-- | Construct a value of type 'V1ResourceAttributes' (by applying it's required fields, if any)
mkV1ResourceAttributes
  :: V1ResourceAttributes
mkV1ResourceAttributes :: V1ResourceAttributes
mkV1ResourceAttributes =
  V1ResourceAttributes :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> V1ResourceAttributes
V1ResourceAttributes
  { v1ResourceAttributesGroup :: Maybe Text
v1ResourceAttributesGroup = Maybe Text
forall a. Maybe a
Nothing
  , v1ResourceAttributesName :: Maybe Text
v1ResourceAttributesName = Maybe Text
forall a. Maybe a
Nothing
  , v1ResourceAttributesNamespace :: Maybe Text
v1ResourceAttributesNamespace = Maybe Text
forall a. Maybe a
Nothing
  , v1ResourceAttributesResource :: Maybe Text
v1ResourceAttributesResource = Maybe Text
forall a. Maybe a
Nothing
  , v1ResourceAttributesSubresource :: Maybe Text
v1ResourceAttributesSubresource = Maybe Text
forall a. Maybe a
Nothing
  , v1ResourceAttributesVerb :: Maybe Text
v1ResourceAttributesVerb = Maybe Text
forall a. Maybe a
Nothing
  , v1ResourceAttributesVersion :: Maybe Text
v1ResourceAttributesVersion = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1ResourceFieldSelector
-- | V1ResourceFieldSelector
-- ResourceFieldSelector represents container resources (cpu, memory) and their output format
data V1ResourceFieldSelector = V1ResourceFieldSelector
  { V1ResourceFieldSelector -> Maybe Text
v1ResourceFieldSelectorContainerName :: !(Maybe Text) -- ^ "containerName" - Container name: required for volumes, optional for env vars
  , V1ResourceFieldSelector -> Maybe Quantity
v1ResourceFieldSelectorDivisor :: !(Maybe Quantity) -- ^ "divisor"
  , V1ResourceFieldSelector -> Text
v1ResourceFieldSelectorResource :: !(Text) -- ^ /Required/ "resource" - Required: resource to select
  } deriving (Int -> V1ResourceFieldSelector -> ShowS
[V1ResourceFieldSelector] -> ShowS
V1ResourceFieldSelector -> String
(Int -> V1ResourceFieldSelector -> ShowS)
-> (V1ResourceFieldSelector -> String)
-> ([V1ResourceFieldSelector] -> ShowS)
-> Show V1ResourceFieldSelector
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ResourceFieldSelector] -> ShowS
$cshowList :: [V1ResourceFieldSelector] -> ShowS
show :: V1ResourceFieldSelector -> String
$cshow :: V1ResourceFieldSelector -> String
showsPrec :: Int -> V1ResourceFieldSelector -> ShowS
$cshowsPrec :: Int -> V1ResourceFieldSelector -> ShowS
P.Show, V1ResourceFieldSelector -> V1ResourceFieldSelector -> Bool
(V1ResourceFieldSelector -> V1ResourceFieldSelector -> Bool)
-> (V1ResourceFieldSelector -> V1ResourceFieldSelector -> Bool)
-> Eq V1ResourceFieldSelector
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ResourceFieldSelector -> V1ResourceFieldSelector -> Bool
$c/= :: V1ResourceFieldSelector -> V1ResourceFieldSelector -> Bool
== :: V1ResourceFieldSelector -> V1ResourceFieldSelector -> Bool
$c== :: V1ResourceFieldSelector -> V1ResourceFieldSelector -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ResourceFieldSelector
instance A.FromJSON V1ResourceFieldSelector where
  parseJSON :: Value -> Parser V1ResourceFieldSelector
parseJSON = String
-> (Object -> Parser V1ResourceFieldSelector)
-> Value
-> Parser V1ResourceFieldSelector
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ResourceFieldSelector" ((Object -> Parser V1ResourceFieldSelector)
 -> Value -> Parser V1ResourceFieldSelector)
-> (Object -> Parser V1ResourceFieldSelector)
-> Value
-> Parser V1ResourceFieldSelector
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Quantity -> Text -> V1ResourceFieldSelector
V1ResourceFieldSelector
      (Maybe Text -> Maybe Quantity -> Text -> V1ResourceFieldSelector)
-> Parser (Maybe Text)
-> Parser (Maybe Quantity -> Text -> V1ResourceFieldSelector)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"containerName")
      Parser (Maybe Quantity -> Text -> V1ResourceFieldSelector)
-> Parser (Maybe Quantity)
-> Parser (Text -> V1ResourceFieldSelector)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Quantity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"divisor")
      Parser (Text -> V1ResourceFieldSelector)
-> Parser Text -> Parser V1ResourceFieldSelector
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"resource")

-- | ToJSON V1ResourceFieldSelector
instance A.ToJSON V1ResourceFieldSelector where
  toJSON :: V1ResourceFieldSelector -> Value
toJSON V1ResourceFieldSelector {Maybe Text
Maybe Quantity
Text
v1ResourceFieldSelectorResource :: Text
v1ResourceFieldSelectorDivisor :: Maybe Quantity
v1ResourceFieldSelectorContainerName :: Maybe Text
v1ResourceFieldSelectorResource :: V1ResourceFieldSelector -> Text
v1ResourceFieldSelectorDivisor :: V1ResourceFieldSelector -> Maybe Quantity
v1ResourceFieldSelectorContainerName :: V1ResourceFieldSelector -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"containerName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ResourceFieldSelectorContainerName
      , Text
"divisor" Text -> Maybe Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Quantity
v1ResourceFieldSelectorDivisor
      , Text
"resource" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ResourceFieldSelectorResource
      ]


-- | Construct a value of type 'V1ResourceFieldSelector' (by applying it's required fields, if any)
mkV1ResourceFieldSelector
  :: Text -- ^ 'v1ResourceFieldSelectorResource': Required: resource to select
  -> V1ResourceFieldSelector
mkV1ResourceFieldSelector :: Text -> V1ResourceFieldSelector
mkV1ResourceFieldSelector Text
v1ResourceFieldSelectorResource =
  V1ResourceFieldSelector :: Maybe Text -> Maybe Quantity -> Text -> V1ResourceFieldSelector
V1ResourceFieldSelector
  { v1ResourceFieldSelectorContainerName :: Maybe Text
v1ResourceFieldSelectorContainerName = Maybe Text
forall a. Maybe a
Nothing
  , v1ResourceFieldSelectorDivisor :: Maybe Quantity
v1ResourceFieldSelectorDivisor = Maybe Quantity
forall a. Maybe a
Nothing
  , Text
v1ResourceFieldSelectorResource :: Text
v1ResourceFieldSelectorResource :: Text
v1ResourceFieldSelectorResource
  }

-- ** V1ResourceQuota
-- | V1ResourceQuota
-- ResourceQuota sets aggregate quota restrictions enforced per namespace
data V1ResourceQuota = V1ResourceQuota
  { V1ResourceQuota -> Maybe Text
v1ResourceQuotaApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ResourceQuota -> Maybe Text
v1ResourceQuotaKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ResourceQuota -> Maybe V1ObjectMeta
v1ResourceQuotaMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1ResourceQuota -> Maybe V1ResourceQuotaSpec
v1ResourceQuotaSpec :: !(Maybe V1ResourceQuotaSpec) -- ^ "spec"
  , V1ResourceQuota -> Maybe V1ResourceQuotaStatus
v1ResourceQuotaStatus :: !(Maybe V1ResourceQuotaStatus) -- ^ "status"
  } deriving (Int -> V1ResourceQuota -> ShowS
[V1ResourceQuota] -> ShowS
V1ResourceQuota -> String
(Int -> V1ResourceQuota -> ShowS)
-> (V1ResourceQuota -> String)
-> ([V1ResourceQuota] -> ShowS)
-> Show V1ResourceQuota
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ResourceQuota] -> ShowS
$cshowList :: [V1ResourceQuota] -> ShowS
show :: V1ResourceQuota -> String
$cshow :: V1ResourceQuota -> String
showsPrec :: Int -> V1ResourceQuota -> ShowS
$cshowsPrec :: Int -> V1ResourceQuota -> ShowS
P.Show, V1ResourceQuota -> V1ResourceQuota -> Bool
(V1ResourceQuota -> V1ResourceQuota -> Bool)
-> (V1ResourceQuota -> V1ResourceQuota -> Bool)
-> Eq V1ResourceQuota
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ResourceQuota -> V1ResourceQuota -> Bool
$c/= :: V1ResourceQuota -> V1ResourceQuota -> Bool
== :: V1ResourceQuota -> V1ResourceQuota -> Bool
$c== :: V1ResourceQuota -> V1ResourceQuota -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ResourceQuota
instance A.FromJSON V1ResourceQuota where
  parseJSON :: Value -> Parser V1ResourceQuota
parseJSON = String
-> (Object -> Parser V1ResourceQuota)
-> Value
-> Parser V1ResourceQuota
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ResourceQuota" ((Object -> Parser V1ResourceQuota)
 -> Value -> Parser V1ResourceQuota)
-> (Object -> Parser V1ResourceQuota)
-> Value
-> Parser V1ResourceQuota
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1ResourceQuotaSpec
-> Maybe V1ResourceQuotaStatus
-> V1ResourceQuota
V1ResourceQuota
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1ResourceQuotaSpec
 -> Maybe V1ResourceQuotaStatus
 -> V1ResourceQuota)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1ResourceQuotaSpec
      -> Maybe V1ResourceQuotaStatus
      -> V1ResourceQuota)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1ResourceQuotaSpec
   -> Maybe V1ResourceQuotaStatus
   -> V1ResourceQuota)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1ResourceQuotaSpec
      -> Maybe V1ResourceQuotaStatus
      -> V1ResourceQuota)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1ResourceQuotaSpec
   -> Maybe V1ResourceQuotaStatus
   -> V1ResourceQuota)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1ResourceQuotaSpec
      -> Maybe V1ResourceQuotaStatus -> V1ResourceQuota)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1ResourceQuotaSpec
   -> Maybe V1ResourceQuotaStatus -> V1ResourceQuota)
-> Parser (Maybe V1ResourceQuotaSpec)
-> Parser (Maybe V1ResourceQuotaStatus -> V1ResourceQuota)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ResourceQuotaSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1ResourceQuotaStatus -> V1ResourceQuota)
-> Parser (Maybe V1ResourceQuotaStatus) -> Parser V1ResourceQuota
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ResourceQuotaStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1ResourceQuota
instance A.ToJSON V1ResourceQuota where
  toJSON :: V1ResourceQuota -> Value
toJSON V1ResourceQuota {Maybe Text
Maybe V1ResourceQuotaStatus
Maybe V1ResourceQuotaSpec
Maybe V1ObjectMeta
v1ResourceQuotaStatus :: Maybe V1ResourceQuotaStatus
v1ResourceQuotaSpec :: Maybe V1ResourceQuotaSpec
v1ResourceQuotaMetadata :: Maybe V1ObjectMeta
v1ResourceQuotaKind :: Maybe Text
v1ResourceQuotaApiVersion :: Maybe Text
v1ResourceQuotaStatus :: V1ResourceQuota -> Maybe V1ResourceQuotaStatus
v1ResourceQuotaSpec :: V1ResourceQuota -> Maybe V1ResourceQuotaSpec
v1ResourceQuotaMetadata :: V1ResourceQuota -> Maybe V1ObjectMeta
v1ResourceQuotaKind :: V1ResourceQuota -> Maybe Text
v1ResourceQuotaApiVersion :: V1ResourceQuota -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ResourceQuotaApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ResourceQuotaKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1ResourceQuotaMetadata
      , Text
"spec" Text -> Maybe V1ResourceQuotaSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ResourceQuotaSpec
v1ResourceQuotaSpec
      , Text
"status" Text -> Maybe V1ResourceQuotaStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ResourceQuotaStatus
v1ResourceQuotaStatus
      ]


-- | Construct a value of type 'V1ResourceQuota' (by applying it's required fields, if any)
mkV1ResourceQuota
  :: V1ResourceQuota
mkV1ResourceQuota :: V1ResourceQuota
mkV1ResourceQuota =
  V1ResourceQuota :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1ResourceQuotaSpec
-> Maybe V1ResourceQuotaStatus
-> V1ResourceQuota
V1ResourceQuota
  { v1ResourceQuotaApiVersion :: Maybe Text
v1ResourceQuotaApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ResourceQuotaKind :: Maybe Text
v1ResourceQuotaKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ResourceQuotaMetadata :: Maybe V1ObjectMeta
v1ResourceQuotaMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1ResourceQuotaSpec :: Maybe V1ResourceQuotaSpec
v1ResourceQuotaSpec = Maybe V1ResourceQuotaSpec
forall a. Maybe a
Nothing
  , v1ResourceQuotaStatus :: Maybe V1ResourceQuotaStatus
v1ResourceQuotaStatus = Maybe V1ResourceQuotaStatus
forall a. Maybe a
Nothing
  }

-- ** V1ResourceQuotaList
-- | V1ResourceQuotaList
-- ResourceQuotaList is a list of ResourceQuota items.
data V1ResourceQuotaList = V1ResourceQuotaList
  { V1ResourceQuotaList -> Maybe Text
v1ResourceQuotaListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ResourceQuotaList -> [V1ResourceQuota]
v1ResourceQuotaListItems :: !([V1ResourceQuota]) -- ^ /Required/ "items" - Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
  , V1ResourceQuotaList -> Maybe Text
v1ResourceQuotaListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ResourceQuotaList -> Maybe V1ListMeta
v1ResourceQuotaListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1ResourceQuotaList -> ShowS
[V1ResourceQuotaList] -> ShowS
V1ResourceQuotaList -> String
(Int -> V1ResourceQuotaList -> ShowS)
-> (V1ResourceQuotaList -> String)
-> ([V1ResourceQuotaList] -> ShowS)
-> Show V1ResourceQuotaList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ResourceQuotaList] -> ShowS
$cshowList :: [V1ResourceQuotaList] -> ShowS
show :: V1ResourceQuotaList -> String
$cshow :: V1ResourceQuotaList -> String
showsPrec :: Int -> V1ResourceQuotaList -> ShowS
$cshowsPrec :: Int -> V1ResourceQuotaList -> ShowS
P.Show, V1ResourceQuotaList -> V1ResourceQuotaList -> Bool
(V1ResourceQuotaList -> V1ResourceQuotaList -> Bool)
-> (V1ResourceQuotaList -> V1ResourceQuotaList -> Bool)
-> Eq V1ResourceQuotaList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ResourceQuotaList -> V1ResourceQuotaList -> Bool
$c/= :: V1ResourceQuotaList -> V1ResourceQuotaList -> Bool
== :: V1ResourceQuotaList -> V1ResourceQuotaList -> Bool
$c== :: V1ResourceQuotaList -> V1ResourceQuotaList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ResourceQuotaList
instance A.FromJSON V1ResourceQuotaList where
  parseJSON :: Value -> Parser V1ResourceQuotaList
parseJSON = String
-> (Object -> Parser V1ResourceQuotaList)
-> Value
-> Parser V1ResourceQuotaList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ResourceQuotaList" ((Object -> Parser V1ResourceQuotaList)
 -> Value -> Parser V1ResourceQuotaList)
-> (Object -> Parser V1ResourceQuotaList)
-> Value
-> Parser V1ResourceQuotaList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1ResourceQuota]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ResourceQuotaList
V1ResourceQuotaList
      (Maybe Text
 -> [V1ResourceQuota]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1ResourceQuotaList)
-> Parser (Maybe Text)
-> Parser
     ([V1ResourceQuota]
      -> Maybe Text -> Maybe V1ListMeta -> V1ResourceQuotaList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1ResourceQuota]
   -> Maybe Text -> Maybe V1ListMeta -> V1ResourceQuotaList)
-> Parser [V1ResourceQuota]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1ResourceQuotaList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1ResourceQuota]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1ResourceQuotaList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1ResourceQuotaList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1ResourceQuotaList)
-> Parser (Maybe V1ListMeta) -> Parser V1ResourceQuotaList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1ResourceQuotaList
instance A.ToJSON V1ResourceQuotaList where
  toJSON :: V1ResourceQuotaList -> Value
toJSON V1ResourceQuotaList {[V1ResourceQuota]
Maybe Text
Maybe V1ListMeta
v1ResourceQuotaListMetadata :: Maybe V1ListMeta
v1ResourceQuotaListKind :: Maybe Text
v1ResourceQuotaListItems :: [V1ResourceQuota]
v1ResourceQuotaListApiVersion :: Maybe Text
v1ResourceQuotaListMetadata :: V1ResourceQuotaList -> Maybe V1ListMeta
v1ResourceQuotaListKind :: V1ResourceQuotaList -> Maybe Text
v1ResourceQuotaListItems :: V1ResourceQuotaList -> [V1ResourceQuota]
v1ResourceQuotaListApiVersion :: V1ResourceQuotaList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ResourceQuotaListApiVersion
      , Text
"items" Text -> [V1ResourceQuota] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1ResourceQuota]
v1ResourceQuotaListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ResourceQuotaListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1ResourceQuotaListMetadata
      ]


-- | Construct a value of type 'V1ResourceQuotaList' (by applying it's required fields, if any)
mkV1ResourceQuotaList
  :: [V1ResourceQuota] -- ^ 'v1ResourceQuotaListItems': Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
  -> V1ResourceQuotaList
mkV1ResourceQuotaList :: [V1ResourceQuota] -> V1ResourceQuotaList
mkV1ResourceQuotaList [V1ResourceQuota]
v1ResourceQuotaListItems =
  V1ResourceQuotaList :: Maybe Text
-> [V1ResourceQuota]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ResourceQuotaList
V1ResourceQuotaList
  { v1ResourceQuotaListApiVersion :: Maybe Text
v1ResourceQuotaListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1ResourceQuota]
v1ResourceQuotaListItems :: [V1ResourceQuota]
v1ResourceQuotaListItems :: [V1ResourceQuota]
v1ResourceQuotaListItems
  , v1ResourceQuotaListKind :: Maybe Text
v1ResourceQuotaListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ResourceQuotaListMetadata :: Maybe V1ListMeta
v1ResourceQuotaListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1ResourceQuotaSpec
-- | V1ResourceQuotaSpec
-- ResourceQuotaSpec defines the desired hard limits to enforce for Quota.
data V1ResourceQuotaSpec = V1ResourceQuotaSpec
  { V1ResourceQuotaSpec -> Maybe (Map String Quantity)
v1ResourceQuotaSpecHard :: !(Maybe (Map.Map String Quantity)) -- ^ "hard" - hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
  , V1ResourceQuotaSpec -> Maybe V1ScopeSelector
v1ResourceQuotaSpecScopeSelector :: !(Maybe V1ScopeSelector) -- ^ "scopeSelector"
  , V1ResourceQuotaSpec -> Maybe [Text]
v1ResourceQuotaSpecScopes :: !(Maybe [Text]) -- ^ "scopes" - A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.
  } deriving (Int -> V1ResourceQuotaSpec -> ShowS
[V1ResourceQuotaSpec] -> ShowS
V1ResourceQuotaSpec -> String
(Int -> V1ResourceQuotaSpec -> ShowS)
-> (V1ResourceQuotaSpec -> String)
-> ([V1ResourceQuotaSpec] -> ShowS)
-> Show V1ResourceQuotaSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ResourceQuotaSpec] -> ShowS
$cshowList :: [V1ResourceQuotaSpec] -> ShowS
show :: V1ResourceQuotaSpec -> String
$cshow :: V1ResourceQuotaSpec -> String
showsPrec :: Int -> V1ResourceQuotaSpec -> ShowS
$cshowsPrec :: Int -> V1ResourceQuotaSpec -> ShowS
P.Show, V1ResourceQuotaSpec -> V1ResourceQuotaSpec -> Bool
(V1ResourceQuotaSpec -> V1ResourceQuotaSpec -> Bool)
-> (V1ResourceQuotaSpec -> V1ResourceQuotaSpec -> Bool)
-> Eq V1ResourceQuotaSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ResourceQuotaSpec -> V1ResourceQuotaSpec -> Bool
$c/= :: V1ResourceQuotaSpec -> V1ResourceQuotaSpec -> Bool
== :: V1ResourceQuotaSpec -> V1ResourceQuotaSpec -> Bool
$c== :: V1ResourceQuotaSpec -> V1ResourceQuotaSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ResourceQuotaSpec
instance A.FromJSON V1ResourceQuotaSpec where
  parseJSON :: Value -> Parser V1ResourceQuotaSpec
parseJSON = String
-> (Object -> Parser V1ResourceQuotaSpec)
-> Value
-> Parser V1ResourceQuotaSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ResourceQuotaSpec" ((Object -> Parser V1ResourceQuotaSpec)
 -> Value -> Parser V1ResourceQuotaSpec)
-> (Object -> Parser V1ResourceQuotaSpec)
-> Value
-> Parser V1ResourceQuotaSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe (Map String Quantity)
-> Maybe V1ScopeSelector -> Maybe [Text] -> V1ResourceQuotaSpec
V1ResourceQuotaSpec
      (Maybe (Map String Quantity)
 -> Maybe V1ScopeSelector -> Maybe [Text] -> V1ResourceQuotaSpec)
-> Parser (Maybe (Map String Quantity))
-> Parser
     (Maybe V1ScopeSelector -> Maybe [Text] -> V1ResourceQuotaSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hard")
      Parser
  (Maybe V1ScopeSelector -> Maybe [Text] -> V1ResourceQuotaSpec)
-> Parser (Maybe V1ScopeSelector)
-> Parser (Maybe [Text] -> V1ResourceQuotaSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ScopeSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"scopeSelector")
      Parser (Maybe [Text] -> V1ResourceQuotaSpec)
-> Parser (Maybe [Text]) -> Parser V1ResourceQuotaSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"scopes")

-- | ToJSON V1ResourceQuotaSpec
instance A.ToJSON V1ResourceQuotaSpec where
  toJSON :: V1ResourceQuotaSpec -> Value
toJSON V1ResourceQuotaSpec {Maybe [Text]
Maybe (Map String Quantity)
Maybe V1ScopeSelector
v1ResourceQuotaSpecScopes :: Maybe [Text]
v1ResourceQuotaSpecScopeSelector :: Maybe V1ScopeSelector
v1ResourceQuotaSpecHard :: Maybe (Map String Quantity)
v1ResourceQuotaSpecScopes :: V1ResourceQuotaSpec -> Maybe [Text]
v1ResourceQuotaSpecScopeSelector :: V1ResourceQuotaSpec -> Maybe V1ScopeSelector
v1ResourceQuotaSpecHard :: V1ResourceQuotaSpec -> Maybe (Map String Quantity)
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"hard" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1ResourceQuotaSpecHard
      , Text
"scopeSelector" Text -> Maybe V1ScopeSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ScopeSelector
v1ResourceQuotaSpecScopeSelector
      , Text
"scopes" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1ResourceQuotaSpecScopes
      ]


-- | Construct a value of type 'V1ResourceQuotaSpec' (by applying it's required fields, if any)
mkV1ResourceQuotaSpec
  :: V1ResourceQuotaSpec
mkV1ResourceQuotaSpec :: V1ResourceQuotaSpec
mkV1ResourceQuotaSpec =
  V1ResourceQuotaSpec :: Maybe (Map String Quantity)
-> Maybe V1ScopeSelector -> Maybe [Text] -> V1ResourceQuotaSpec
V1ResourceQuotaSpec
  { v1ResourceQuotaSpecHard :: Maybe (Map String Quantity)
v1ResourceQuotaSpecHard = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  , v1ResourceQuotaSpecScopeSelector :: Maybe V1ScopeSelector
v1ResourceQuotaSpecScopeSelector = Maybe V1ScopeSelector
forall a. Maybe a
Nothing
  , v1ResourceQuotaSpecScopes :: Maybe [Text]
v1ResourceQuotaSpecScopes = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1ResourceQuotaStatus
-- | V1ResourceQuotaStatus
-- ResourceQuotaStatus defines the enforced hard limits and observed use.
data V1ResourceQuotaStatus = V1ResourceQuotaStatus
  { V1ResourceQuotaStatus -> Maybe (Map String Quantity)
v1ResourceQuotaStatusHard :: !(Maybe (Map.Map String Quantity)) -- ^ "hard" - Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
  , V1ResourceQuotaStatus -> Maybe (Map String Quantity)
v1ResourceQuotaStatusUsed :: !(Maybe (Map.Map String Quantity)) -- ^ "used" - Used is the current observed total usage of the resource in the namespace.
  } deriving (Int -> V1ResourceQuotaStatus -> ShowS
[V1ResourceQuotaStatus] -> ShowS
V1ResourceQuotaStatus -> String
(Int -> V1ResourceQuotaStatus -> ShowS)
-> (V1ResourceQuotaStatus -> String)
-> ([V1ResourceQuotaStatus] -> ShowS)
-> Show V1ResourceQuotaStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ResourceQuotaStatus] -> ShowS
$cshowList :: [V1ResourceQuotaStatus] -> ShowS
show :: V1ResourceQuotaStatus -> String
$cshow :: V1ResourceQuotaStatus -> String
showsPrec :: Int -> V1ResourceQuotaStatus -> ShowS
$cshowsPrec :: Int -> V1ResourceQuotaStatus -> ShowS
P.Show, V1ResourceQuotaStatus -> V1ResourceQuotaStatus -> Bool
(V1ResourceQuotaStatus -> V1ResourceQuotaStatus -> Bool)
-> (V1ResourceQuotaStatus -> V1ResourceQuotaStatus -> Bool)
-> Eq V1ResourceQuotaStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ResourceQuotaStatus -> V1ResourceQuotaStatus -> Bool
$c/= :: V1ResourceQuotaStatus -> V1ResourceQuotaStatus -> Bool
== :: V1ResourceQuotaStatus -> V1ResourceQuotaStatus -> Bool
$c== :: V1ResourceQuotaStatus -> V1ResourceQuotaStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ResourceQuotaStatus
instance A.FromJSON V1ResourceQuotaStatus where
  parseJSON :: Value -> Parser V1ResourceQuotaStatus
parseJSON = String
-> (Object -> Parser V1ResourceQuotaStatus)
-> Value
-> Parser V1ResourceQuotaStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ResourceQuotaStatus" ((Object -> Parser V1ResourceQuotaStatus)
 -> Value -> Parser V1ResourceQuotaStatus)
-> (Object -> Parser V1ResourceQuotaStatus)
-> Value
-> Parser V1ResourceQuotaStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe (Map String Quantity)
-> Maybe (Map String Quantity) -> V1ResourceQuotaStatus
V1ResourceQuotaStatus
      (Maybe (Map String Quantity)
 -> Maybe (Map String Quantity) -> V1ResourceQuotaStatus)
-> Parser (Maybe (Map String Quantity))
-> Parser (Maybe (Map String Quantity) -> V1ResourceQuotaStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hard")
      Parser (Maybe (Map String Quantity) -> V1ResourceQuotaStatus)
-> Parser (Maybe (Map String Quantity))
-> Parser V1ResourceQuotaStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"used")

-- | ToJSON V1ResourceQuotaStatus
instance A.ToJSON V1ResourceQuotaStatus where
  toJSON :: V1ResourceQuotaStatus -> Value
toJSON V1ResourceQuotaStatus {Maybe (Map String Quantity)
v1ResourceQuotaStatusUsed :: Maybe (Map String Quantity)
v1ResourceQuotaStatusHard :: Maybe (Map String Quantity)
v1ResourceQuotaStatusUsed :: V1ResourceQuotaStatus -> Maybe (Map String Quantity)
v1ResourceQuotaStatusHard :: V1ResourceQuotaStatus -> Maybe (Map String Quantity)
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"hard" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1ResourceQuotaStatusHard
      , Text
"used" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1ResourceQuotaStatusUsed
      ]


-- | Construct a value of type 'V1ResourceQuotaStatus' (by applying it's required fields, if any)
mkV1ResourceQuotaStatus
  :: V1ResourceQuotaStatus
mkV1ResourceQuotaStatus :: V1ResourceQuotaStatus
mkV1ResourceQuotaStatus =
  V1ResourceQuotaStatus :: Maybe (Map String Quantity)
-> Maybe (Map String Quantity) -> V1ResourceQuotaStatus
V1ResourceQuotaStatus
  { v1ResourceQuotaStatusHard :: Maybe (Map String Quantity)
v1ResourceQuotaStatusHard = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  , v1ResourceQuotaStatusUsed :: Maybe (Map String Quantity)
v1ResourceQuotaStatusUsed = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  }

-- ** V1ResourceRequirements
-- | V1ResourceRequirements
-- ResourceRequirements describes the compute resource requirements.
data V1ResourceRequirements = V1ResourceRequirements
  { V1ResourceRequirements -> Maybe (Map String Quantity)
v1ResourceRequirementsLimits :: !(Maybe (Map.Map String Quantity)) -- ^ "limits" - Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
  , V1ResourceRequirements -> Maybe (Map String Quantity)
v1ResourceRequirementsRequests :: !(Maybe (Map.Map String Quantity)) -- ^ "requests" - Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
  } deriving (Int -> V1ResourceRequirements -> ShowS
[V1ResourceRequirements] -> ShowS
V1ResourceRequirements -> String
(Int -> V1ResourceRequirements -> ShowS)
-> (V1ResourceRequirements -> String)
-> ([V1ResourceRequirements] -> ShowS)
-> Show V1ResourceRequirements
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ResourceRequirements] -> ShowS
$cshowList :: [V1ResourceRequirements] -> ShowS
show :: V1ResourceRequirements -> String
$cshow :: V1ResourceRequirements -> String
showsPrec :: Int -> V1ResourceRequirements -> ShowS
$cshowsPrec :: Int -> V1ResourceRequirements -> ShowS
P.Show, V1ResourceRequirements -> V1ResourceRequirements -> Bool
(V1ResourceRequirements -> V1ResourceRequirements -> Bool)
-> (V1ResourceRequirements -> V1ResourceRequirements -> Bool)
-> Eq V1ResourceRequirements
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ResourceRequirements -> V1ResourceRequirements -> Bool
$c/= :: V1ResourceRequirements -> V1ResourceRequirements -> Bool
== :: V1ResourceRequirements -> V1ResourceRequirements -> Bool
$c== :: V1ResourceRequirements -> V1ResourceRequirements -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ResourceRequirements
instance A.FromJSON V1ResourceRequirements where
  parseJSON :: Value -> Parser V1ResourceRequirements
parseJSON = String
-> (Object -> Parser V1ResourceRequirements)
-> Value
-> Parser V1ResourceRequirements
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ResourceRequirements" ((Object -> Parser V1ResourceRequirements)
 -> Value -> Parser V1ResourceRequirements)
-> (Object -> Parser V1ResourceRequirements)
-> Value
-> Parser V1ResourceRequirements
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe (Map String Quantity)
-> Maybe (Map String Quantity) -> V1ResourceRequirements
V1ResourceRequirements
      (Maybe (Map String Quantity)
 -> Maybe (Map String Quantity) -> V1ResourceRequirements)
-> Parser (Maybe (Map String Quantity))
-> Parser (Maybe (Map String Quantity) -> V1ResourceRequirements)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"limits")
      Parser (Maybe (Map String Quantity) -> V1ResourceRequirements)
-> Parser (Maybe (Map String Quantity))
-> Parser V1ResourceRequirements
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"requests")

-- | ToJSON V1ResourceRequirements
instance A.ToJSON V1ResourceRequirements where
  toJSON :: V1ResourceRequirements -> Value
toJSON V1ResourceRequirements {Maybe (Map String Quantity)
v1ResourceRequirementsRequests :: Maybe (Map String Quantity)
v1ResourceRequirementsLimits :: Maybe (Map String Quantity)
v1ResourceRequirementsRequests :: V1ResourceRequirements -> Maybe (Map String Quantity)
v1ResourceRequirementsLimits :: V1ResourceRequirements -> Maybe (Map String Quantity)
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"limits" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1ResourceRequirementsLimits
      , Text
"requests" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1ResourceRequirementsRequests
      ]


-- | Construct a value of type 'V1ResourceRequirements' (by applying it's required fields, if any)
mkV1ResourceRequirements
  :: V1ResourceRequirements
mkV1ResourceRequirements :: V1ResourceRequirements
mkV1ResourceRequirements =
  V1ResourceRequirements :: Maybe (Map String Quantity)
-> Maybe (Map String Quantity) -> V1ResourceRequirements
V1ResourceRequirements
  { v1ResourceRequirementsLimits :: Maybe (Map String Quantity)
v1ResourceRequirementsLimits = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  , v1ResourceRequirementsRequests :: Maybe (Map String Quantity)
v1ResourceRequirementsRequests = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  }

-- ** V1ResourceRule
-- | V1ResourceRule
-- ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.
data V1ResourceRule = V1ResourceRule
  { V1ResourceRule -> Maybe [Text]
v1ResourceRuleApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.  \&quot;*\&quot; means all.
  , V1ResourceRule -> Maybe [Text]
v1ResourceRuleResourceNames :: !(Maybe [Text]) -- ^ "resourceNames" - ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \&quot;*\&quot; means all.
  , V1ResourceRule -> Maybe [Text]
v1ResourceRuleResources :: !(Maybe [Text]) -- ^ "resources" - Resources is a list of resources this rule applies to.  \&quot;*\&quot; means all in the specified apiGroups.  \&quot;*/foo\&quot; represents the subresource &#39;foo&#39; for all resources in the specified apiGroups.
  , V1ResourceRule -> [Text]
v1ResourceRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \&quot;*\&quot; means all.
  } deriving (Int -> V1ResourceRule -> ShowS
[V1ResourceRule] -> ShowS
V1ResourceRule -> String
(Int -> V1ResourceRule -> ShowS)
-> (V1ResourceRule -> String)
-> ([V1ResourceRule] -> ShowS)
-> Show V1ResourceRule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ResourceRule] -> ShowS
$cshowList :: [V1ResourceRule] -> ShowS
show :: V1ResourceRule -> String
$cshow :: V1ResourceRule -> String
showsPrec :: Int -> V1ResourceRule -> ShowS
$cshowsPrec :: Int -> V1ResourceRule -> ShowS
P.Show, V1ResourceRule -> V1ResourceRule -> Bool
(V1ResourceRule -> V1ResourceRule -> Bool)
-> (V1ResourceRule -> V1ResourceRule -> Bool) -> Eq V1ResourceRule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ResourceRule -> V1ResourceRule -> Bool
$c/= :: V1ResourceRule -> V1ResourceRule -> Bool
== :: V1ResourceRule -> V1ResourceRule -> Bool
$c== :: V1ResourceRule -> V1ResourceRule -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ResourceRule
instance A.FromJSON V1ResourceRule where
  parseJSON :: Value -> Parser V1ResourceRule
parseJSON = String
-> (Object -> Parser V1ResourceRule)
-> Value
-> Parser V1ResourceRule
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ResourceRule" ((Object -> Parser V1ResourceRule)
 -> Value -> Parser V1ResourceRule)
-> (Object -> Parser V1ResourceRule)
-> Value
-> Parser V1ResourceRule
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Maybe [Text] -> Maybe [Text] -> [Text] -> V1ResourceRule
V1ResourceRule
      (Maybe [Text]
 -> Maybe [Text] -> Maybe [Text] -> [Text] -> V1ResourceRule)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text] -> Maybe [Text] -> [Text] -> V1ResourceRule)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiGroups")
      Parser (Maybe [Text] -> Maybe [Text] -> [Text] -> V1ResourceRule)
-> Parser (Maybe [Text])
-> Parser (Maybe [Text] -> [Text] -> V1ResourceRule)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resourceNames")
      Parser (Maybe [Text] -> [Text] -> V1ResourceRule)
-> Parser (Maybe [Text]) -> Parser ([Text] -> V1ResourceRule)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resources")
      Parser ([Text] -> V1ResourceRule)
-> Parser [Text] -> Parser V1ResourceRule
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"verbs")

-- | ToJSON V1ResourceRule
instance A.ToJSON V1ResourceRule where
  toJSON :: V1ResourceRule -> Value
toJSON V1ResourceRule {[Text]
Maybe [Text]
v1ResourceRuleVerbs :: [Text]
v1ResourceRuleResources :: Maybe [Text]
v1ResourceRuleResourceNames :: Maybe [Text]
v1ResourceRuleApiGroups :: Maybe [Text]
v1ResourceRuleVerbs :: V1ResourceRule -> [Text]
v1ResourceRuleResources :: V1ResourceRule -> Maybe [Text]
v1ResourceRuleResourceNames :: V1ResourceRule -> Maybe [Text]
v1ResourceRuleApiGroups :: V1ResourceRule -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiGroups" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1ResourceRuleApiGroups
      , Text
"resourceNames" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1ResourceRuleResourceNames
      , Text
"resources" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1ResourceRuleResources
      , Text
"verbs" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1ResourceRuleVerbs
      ]


-- | Construct a value of type 'V1ResourceRule' (by applying it's required fields, if any)
mkV1ResourceRule
  :: [Text] -- ^ 'v1ResourceRuleVerbs': Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.
  -> V1ResourceRule
mkV1ResourceRule :: [Text] -> V1ResourceRule
mkV1ResourceRule [Text]
v1ResourceRuleVerbs =
  V1ResourceRule :: Maybe [Text]
-> Maybe [Text] -> Maybe [Text] -> [Text] -> V1ResourceRule
V1ResourceRule
  { v1ResourceRuleApiGroups :: Maybe [Text]
v1ResourceRuleApiGroups = Maybe [Text]
forall a. Maybe a
Nothing
  , v1ResourceRuleResourceNames :: Maybe [Text]
v1ResourceRuleResourceNames = Maybe [Text]
forall a. Maybe a
Nothing
  , v1ResourceRuleResources :: Maybe [Text]
v1ResourceRuleResources = Maybe [Text]
forall a. Maybe a
Nothing
  , [Text]
v1ResourceRuleVerbs :: [Text]
v1ResourceRuleVerbs :: [Text]
v1ResourceRuleVerbs
  }

-- ** V1Role
-- | V1Role
-- Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.
data V1Role = V1Role
  { V1Role -> Maybe Text
v1RoleApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1Role -> Maybe Text
v1RoleKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1Role -> Maybe V1ObjectMeta
v1RoleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1Role -> Maybe [V1PolicyRule]
v1RoleRules :: !(Maybe [V1PolicyRule]) -- ^ "rules" - Rules holds all the PolicyRules for this Role
  } deriving (Int -> V1Role -> ShowS
[V1Role] -> ShowS
V1Role -> String
(Int -> V1Role -> ShowS)
-> (V1Role -> String) -> ([V1Role] -> ShowS) -> Show V1Role
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Role] -> ShowS
$cshowList :: [V1Role] -> ShowS
show :: V1Role -> String
$cshow :: V1Role -> String
showsPrec :: Int -> V1Role -> ShowS
$cshowsPrec :: Int -> V1Role -> ShowS
P.Show, V1Role -> V1Role -> Bool
(V1Role -> V1Role -> Bool)
-> (V1Role -> V1Role -> Bool) -> Eq V1Role
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Role -> V1Role -> Bool
$c/= :: V1Role -> V1Role -> Bool
== :: V1Role -> V1Role -> Bool
$c== :: V1Role -> V1Role -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Role
instance A.FromJSON V1Role where
  parseJSON :: Value -> Parser V1Role
parseJSON = String -> (Object -> Parser V1Role) -> Value -> Parser V1Role
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Role" ((Object -> Parser V1Role) -> Value -> Parser V1Role)
-> (Object -> Parser V1Role) -> Value -> Parser V1Role
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1PolicyRule]
-> V1Role
V1Role
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe [V1PolicyRule]
 -> V1Role)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta -> Maybe [V1PolicyRule] -> V1Role)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta -> Maybe [V1PolicyRule] -> V1Role)
-> Parser (Maybe Text)
-> Parser (Maybe V1ObjectMeta -> Maybe [V1PolicyRule] -> V1Role)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ObjectMeta -> Maybe [V1PolicyRule] -> V1Role)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe [V1PolicyRule] -> V1Role)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe [V1PolicyRule] -> V1Role)
-> Parser (Maybe [V1PolicyRule]) -> Parser V1Role
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1PolicyRule])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rules")

-- | ToJSON V1Role
instance A.ToJSON V1Role where
  toJSON :: V1Role -> Value
toJSON V1Role {Maybe [V1PolicyRule]
Maybe Text
Maybe V1ObjectMeta
v1RoleRules :: Maybe [V1PolicyRule]
v1RoleMetadata :: Maybe V1ObjectMeta
v1RoleKind :: Maybe Text
v1RoleApiVersion :: Maybe Text
v1RoleRules :: V1Role -> Maybe [V1PolicyRule]
v1RoleMetadata :: V1Role -> Maybe V1ObjectMeta
v1RoleKind :: V1Role -> Maybe Text
v1RoleApiVersion :: V1Role -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RoleApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RoleKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1RoleMetadata
      , Text
"rules" Text -> Maybe [V1PolicyRule] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1PolicyRule]
v1RoleRules
      ]


-- | Construct a value of type 'V1Role' (by applying it's required fields, if any)
mkV1Role
  :: V1Role
mkV1Role :: V1Role
mkV1Role =
  V1Role :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1PolicyRule]
-> V1Role
V1Role
  { v1RoleApiVersion :: Maybe Text
v1RoleApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1RoleKind :: Maybe Text
v1RoleKind = Maybe Text
forall a. Maybe a
Nothing
  , v1RoleMetadata :: Maybe V1ObjectMeta
v1RoleMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1RoleRules :: Maybe [V1PolicyRule]
v1RoleRules = Maybe [V1PolicyRule]
forall a. Maybe a
Nothing
  }

-- ** V1RoleBinding
-- | V1RoleBinding
-- RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given namespace only have effect in that namespace.
data V1RoleBinding = V1RoleBinding
  { V1RoleBinding -> Maybe Text
v1RoleBindingApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1RoleBinding -> Maybe Text
v1RoleBindingKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1RoleBinding -> Maybe V1ObjectMeta
v1RoleBindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1RoleBinding -> V1RoleRef
v1RoleBindingRoleRef :: !(V1RoleRef) -- ^ /Required/ "roleRef"
  , V1RoleBinding -> Maybe [V1Subject]
v1RoleBindingSubjects :: !(Maybe [V1Subject]) -- ^ "subjects" - Subjects holds references to the objects the role applies to.
  } deriving (Int -> V1RoleBinding -> ShowS
[V1RoleBinding] -> ShowS
V1RoleBinding -> String
(Int -> V1RoleBinding -> ShowS)
-> (V1RoleBinding -> String)
-> ([V1RoleBinding] -> ShowS)
-> Show V1RoleBinding
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1RoleBinding] -> ShowS
$cshowList :: [V1RoleBinding] -> ShowS
show :: V1RoleBinding -> String
$cshow :: V1RoleBinding -> String
showsPrec :: Int -> V1RoleBinding -> ShowS
$cshowsPrec :: Int -> V1RoleBinding -> ShowS
P.Show, V1RoleBinding -> V1RoleBinding -> Bool
(V1RoleBinding -> V1RoleBinding -> Bool)
-> (V1RoleBinding -> V1RoleBinding -> Bool) -> Eq V1RoleBinding
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1RoleBinding -> V1RoleBinding -> Bool
$c/= :: V1RoleBinding -> V1RoleBinding -> Bool
== :: V1RoleBinding -> V1RoleBinding -> Bool
$c== :: V1RoleBinding -> V1RoleBinding -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1RoleBinding
instance A.FromJSON V1RoleBinding where
  parseJSON :: Value -> Parser V1RoleBinding
parseJSON = String
-> (Object -> Parser V1RoleBinding)
-> Value
-> Parser V1RoleBinding
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1RoleBinding" ((Object -> Parser V1RoleBinding) -> Value -> Parser V1RoleBinding)
-> (Object -> Parser V1RoleBinding)
-> Value
-> Parser V1RoleBinding
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1RoleRef
-> Maybe [V1Subject]
-> V1RoleBinding
V1RoleBinding
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1RoleRef
 -> Maybe [V1Subject]
 -> V1RoleBinding)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1RoleRef
      -> Maybe [V1Subject]
      -> V1RoleBinding)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1RoleRef
   -> Maybe [V1Subject]
   -> V1RoleBinding)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1RoleRef -> Maybe [V1Subject] -> V1RoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1RoleRef -> Maybe [V1Subject] -> V1RoleBinding)
-> Parser (Maybe V1ObjectMeta)
-> Parser (V1RoleRef -> Maybe [V1Subject] -> V1RoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (V1RoleRef -> Maybe [V1Subject] -> V1RoleBinding)
-> Parser V1RoleRef -> Parser (Maybe [V1Subject] -> V1RoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1RoleRef
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"roleRef")
      Parser (Maybe [V1Subject] -> V1RoleBinding)
-> Parser (Maybe [V1Subject]) -> Parser V1RoleBinding
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1Subject])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"subjects")

-- | ToJSON V1RoleBinding
instance A.ToJSON V1RoleBinding where
  toJSON :: V1RoleBinding -> Value
toJSON V1RoleBinding {Maybe [V1Subject]
Maybe Text
Maybe V1ObjectMeta
V1RoleRef
v1RoleBindingSubjects :: Maybe [V1Subject]
v1RoleBindingRoleRef :: V1RoleRef
v1RoleBindingMetadata :: Maybe V1ObjectMeta
v1RoleBindingKind :: Maybe Text
v1RoleBindingApiVersion :: Maybe Text
v1RoleBindingSubjects :: V1RoleBinding -> Maybe [V1Subject]
v1RoleBindingRoleRef :: V1RoleBinding -> V1RoleRef
v1RoleBindingMetadata :: V1RoleBinding -> Maybe V1ObjectMeta
v1RoleBindingKind :: V1RoleBinding -> Maybe Text
v1RoleBindingApiVersion :: V1RoleBinding -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RoleBindingApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RoleBindingKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1RoleBindingMetadata
      , Text
"roleRef" Text -> V1RoleRef -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1RoleRef
v1RoleBindingRoleRef
      , Text
"subjects" Text -> Maybe [V1Subject] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1Subject]
v1RoleBindingSubjects
      ]


-- | Construct a value of type 'V1RoleBinding' (by applying it's required fields, if any)
mkV1RoleBinding
  :: V1RoleRef -- ^ 'v1RoleBindingRoleRef' 
  -> V1RoleBinding
mkV1RoleBinding :: V1RoleRef -> V1RoleBinding
mkV1RoleBinding V1RoleRef
v1RoleBindingRoleRef =
  V1RoleBinding :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1RoleRef
-> Maybe [V1Subject]
-> V1RoleBinding
V1RoleBinding
  { v1RoleBindingApiVersion :: Maybe Text
v1RoleBindingApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1RoleBindingKind :: Maybe Text
v1RoleBindingKind = Maybe Text
forall a. Maybe a
Nothing
  , v1RoleBindingMetadata :: Maybe V1ObjectMeta
v1RoleBindingMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1RoleRef
v1RoleBindingRoleRef :: V1RoleRef
v1RoleBindingRoleRef :: V1RoleRef
v1RoleBindingRoleRef
  , v1RoleBindingSubjects :: Maybe [V1Subject]
v1RoleBindingSubjects = Maybe [V1Subject]
forall a. Maybe a
Nothing
  }

-- ** V1RoleBindingList
-- | V1RoleBindingList
-- RoleBindingList is a collection of RoleBindings
data V1RoleBindingList = V1RoleBindingList
  { V1RoleBindingList -> Maybe Text
v1RoleBindingListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1RoleBindingList -> [V1RoleBinding]
v1RoleBindingListItems :: !([V1RoleBinding]) -- ^ /Required/ "items" - Items is a list of RoleBindings
  , V1RoleBindingList -> Maybe Text
v1RoleBindingListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1RoleBindingList -> Maybe V1ListMeta
v1RoleBindingListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1RoleBindingList -> ShowS
[V1RoleBindingList] -> ShowS
V1RoleBindingList -> String
(Int -> V1RoleBindingList -> ShowS)
-> (V1RoleBindingList -> String)
-> ([V1RoleBindingList] -> ShowS)
-> Show V1RoleBindingList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1RoleBindingList] -> ShowS
$cshowList :: [V1RoleBindingList] -> ShowS
show :: V1RoleBindingList -> String
$cshow :: V1RoleBindingList -> String
showsPrec :: Int -> V1RoleBindingList -> ShowS
$cshowsPrec :: Int -> V1RoleBindingList -> ShowS
P.Show, V1RoleBindingList -> V1RoleBindingList -> Bool
(V1RoleBindingList -> V1RoleBindingList -> Bool)
-> (V1RoleBindingList -> V1RoleBindingList -> Bool)
-> Eq V1RoleBindingList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1RoleBindingList -> V1RoleBindingList -> Bool
$c/= :: V1RoleBindingList -> V1RoleBindingList -> Bool
== :: V1RoleBindingList -> V1RoleBindingList -> Bool
$c== :: V1RoleBindingList -> V1RoleBindingList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1RoleBindingList
instance A.FromJSON V1RoleBindingList where
  parseJSON :: Value -> Parser V1RoleBindingList
parseJSON = String
-> (Object -> Parser V1RoleBindingList)
-> Value
-> Parser V1RoleBindingList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1RoleBindingList" ((Object -> Parser V1RoleBindingList)
 -> Value -> Parser V1RoleBindingList)
-> (Object -> Parser V1RoleBindingList)
-> Value
-> Parser V1RoleBindingList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1RoleBinding]
-> Maybe Text
-> Maybe V1ListMeta
-> V1RoleBindingList
V1RoleBindingList
      (Maybe Text
 -> [V1RoleBinding]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1RoleBindingList)
-> Parser (Maybe Text)
-> Parser
     ([V1RoleBinding]
      -> Maybe Text -> Maybe V1ListMeta -> V1RoleBindingList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1RoleBinding]
   -> Maybe Text -> Maybe V1ListMeta -> V1RoleBindingList)
-> Parser [V1RoleBinding]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1RoleBindingList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1RoleBinding]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1RoleBindingList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1RoleBindingList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1RoleBindingList)
-> Parser (Maybe V1ListMeta) -> Parser V1RoleBindingList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1RoleBindingList
instance A.ToJSON V1RoleBindingList where
  toJSON :: V1RoleBindingList -> Value
toJSON V1RoleBindingList {[V1RoleBinding]
Maybe Text
Maybe V1ListMeta
v1RoleBindingListMetadata :: Maybe V1ListMeta
v1RoleBindingListKind :: Maybe Text
v1RoleBindingListItems :: [V1RoleBinding]
v1RoleBindingListApiVersion :: Maybe Text
v1RoleBindingListMetadata :: V1RoleBindingList -> Maybe V1ListMeta
v1RoleBindingListKind :: V1RoleBindingList -> Maybe Text
v1RoleBindingListItems :: V1RoleBindingList -> [V1RoleBinding]
v1RoleBindingListApiVersion :: V1RoleBindingList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RoleBindingListApiVersion
      , Text
"items" Text -> [V1RoleBinding] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1RoleBinding]
v1RoleBindingListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RoleBindingListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1RoleBindingListMetadata
      ]


-- | Construct a value of type 'V1RoleBindingList' (by applying it's required fields, if any)
mkV1RoleBindingList
  :: [V1RoleBinding] -- ^ 'v1RoleBindingListItems': Items is a list of RoleBindings
  -> V1RoleBindingList
mkV1RoleBindingList :: [V1RoleBinding] -> V1RoleBindingList
mkV1RoleBindingList [V1RoleBinding]
v1RoleBindingListItems =
  V1RoleBindingList :: Maybe Text
-> [V1RoleBinding]
-> Maybe Text
-> Maybe V1ListMeta
-> V1RoleBindingList
V1RoleBindingList
  { v1RoleBindingListApiVersion :: Maybe Text
v1RoleBindingListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1RoleBinding]
v1RoleBindingListItems :: [V1RoleBinding]
v1RoleBindingListItems :: [V1RoleBinding]
v1RoleBindingListItems
  , v1RoleBindingListKind :: Maybe Text
v1RoleBindingListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1RoleBindingListMetadata :: Maybe V1ListMeta
v1RoleBindingListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1RoleList
-- | V1RoleList
-- RoleList is a collection of Roles
data V1RoleList = V1RoleList
  { V1RoleList -> Maybe Text
v1RoleListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1RoleList -> [V1Role]
v1RoleListItems :: !([V1Role]) -- ^ /Required/ "items" - Items is a list of Roles
  , V1RoleList -> Maybe Text
v1RoleListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1RoleList -> Maybe V1ListMeta
v1RoleListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1RoleList -> ShowS
[V1RoleList] -> ShowS
V1RoleList -> String
(Int -> V1RoleList -> ShowS)
-> (V1RoleList -> String)
-> ([V1RoleList] -> ShowS)
-> Show V1RoleList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1RoleList] -> ShowS
$cshowList :: [V1RoleList] -> ShowS
show :: V1RoleList -> String
$cshow :: V1RoleList -> String
showsPrec :: Int -> V1RoleList -> ShowS
$cshowsPrec :: Int -> V1RoleList -> ShowS
P.Show, V1RoleList -> V1RoleList -> Bool
(V1RoleList -> V1RoleList -> Bool)
-> (V1RoleList -> V1RoleList -> Bool) -> Eq V1RoleList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1RoleList -> V1RoleList -> Bool
$c/= :: V1RoleList -> V1RoleList -> Bool
== :: V1RoleList -> V1RoleList -> Bool
$c== :: V1RoleList -> V1RoleList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1RoleList
instance A.FromJSON V1RoleList where
  parseJSON :: Value -> Parser V1RoleList
parseJSON = String
-> (Object -> Parser V1RoleList) -> Value -> Parser V1RoleList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1RoleList" ((Object -> Parser V1RoleList) -> Value -> Parser V1RoleList)
-> (Object -> Parser V1RoleList) -> Value -> Parser V1RoleList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1Role] -> Maybe Text -> Maybe V1ListMeta -> V1RoleList
V1RoleList
      (Maybe Text
 -> [V1Role] -> Maybe Text -> Maybe V1ListMeta -> V1RoleList)
-> Parser (Maybe Text)
-> Parser
     ([V1Role] -> Maybe Text -> Maybe V1ListMeta -> V1RoleList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser ([V1Role] -> Maybe Text -> Maybe V1ListMeta -> V1RoleList)
-> Parser [V1Role]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1RoleList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1Role]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1RoleList)
-> Parser (Maybe Text) -> Parser (Maybe V1ListMeta -> V1RoleList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1RoleList)
-> Parser (Maybe V1ListMeta) -> Parser V1RoleList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1RoleList
instance A.ToJSON V1RoleList where
  toJSON :: V1RoleList -> Value
toJSON V1RoleList {[V1Role]
Maybe Text
Maybe V1ListMeta
v1RoleListMetadata :: Maybe V1ListMeta
v1RoleListKind :: Maybe Text
v1RoleListItems :: [V1Role]
v1RoleListApiVersion :: Maybe Text
v1RoleListMetadata :: V1RoleList -> Maybe V1ListMeta
v1RoleListKind :: V1RoleList -> Maybe Text
v1RoleListItems :: V1RoleList -> [V1Role]
v1RoleListApiVersion :: V1RoleList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RoleListApiVersion
      , Text
"items" Text -> [V1Role] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1Role]
v1RoleListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RoleListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1RoleListMetadata
      ]


-- | Construct a value of type 'V1RoleList' (by applying it's required fields, if any)
mkV1RoleList
  :: [V1Role] -- ^ 'v1RoleListItems': Items is a list of Roles
  -> V1RoleList
mkV1RoleList :: [V1Role] -> V1RoleList
mkV1RoleList [V1Role]
v1RoleListItems =
  V1RoleList :: Maybe Text
-> [V1Role] -> Maybe Text -> Maybe V1ListMeta -> V1RoleList
V1RoleList
  { v1RoleListApiVersion :: Maybe Text
v1RoleListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1Role]
v1RoleListItems :: [V1Role]
v1RoleListItems :: [V1Role]
v1RoleListItems
  , v1RoleListKind :: Maybe Text
v1RoleListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1RoleListMetadata :: Maybe V1ListMeta
v1RoleListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1RoleRef
-- | V1RoleRef
-- RoleRef contains information that points to the role being used
data V1RoleRef = V1RoleRef
  { V1RoleRef -> Text
v1RoleRefApiGroup :: !(Text) -- ^ /Required/ "apiGroup" - APIGroup is the group for the resource being referenced
  , V1RoleRef -> Text
v1RoleRefKind :: !(Text) -- ^ /Required/ "kind" - Kind is the type of resource being referenced
  , V1RoleRef -> Text
v1RoleRefName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced
  } deriving (Int -> V1RoleRef -> ShowS
[V1RoleRef] -> ShowS
V1RoleRef -> String
(Int -> V1RoleRef -> ShowS)
-> (V1RoleRef -> String)
-> ([V1RoleRef] -> ShowS)
-> Show V1RoleRef
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1RoleRef] -> ShowS
$cshowList :: [V1RoleRef] -> ShowS
show :: V1RoleRef -> String
$cshow :: V1RoleRef -> String
showsPrec :: Int -> V1RoleRef -> ShowS
$cshowsPrec :: Int -> V1RoleRef -> ShowS
P.Show, V1RoleRef -> V1RoleRef -> Bool
(V1RoleRef -> V1RoleRef -> Bool)
-> (V1RoleRef -> V1RoleRef -> Bool) -> Eq V1RoleRef
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1RoleRef -> V1RoleRef -> Bool
$c/= :: V1RoleRef -> V1RoleRef -> Bool
== :: V1RoleRef -> V1RoleRef -> Bool
$c== :: V1RoleRef -> V1RoleRef -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1RoleRef
instance A.FromJSON V1RoleRef where
  parseJSON :: Value -> Parser V1RoleRef
parseJSON = String -> (Object -> Parser V1RoleRef) -> Value -> Parser V1RoleRef
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1RoleRef" ((Object -> Parser V1RoleRef) -> Value -> Parser V1RoleRef)
-> (Object -> Parser V1RoleRef) -> Value -> Parser V1RoleRef
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> Text -> V1RoleRef
V1RoleRef
      (Text -> Text -> Text -> V1RoleRef)
-> Parser Text -> Parser (Text -> Text -> V1RoleRef)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"apiGroup")
      Parser (Text -> Text -> V1RoleRef)
-> Parser Text -> Parser (Text -> V1RoleRef)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kind")
      Parser (Text -> V1RoleRef) -> Parser Text -> Parser V1RoleRef
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")

-- | ToJSON V1RoleRef
instance A.ToJSON V1RoleRef where
  toJSON :: V1RoleRef -> Value
toJSON V1RoleRef {Text
v1RoleRefName :: Text
v1RoleRefKind :: Text
v1RoleRefApiGroup :: Text
v1RoleRefName :: V1RoleRef -> Text
v1RoleRefKind :: V1RoleRef -> Text
v1RoleRefApiGroup :: V1RoleRef -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiGroup" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1RoleRefApiGroup
      , Text
"kind" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1RoleRefKind
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1RoleRefName
      ]


-- | Construct a value of type 'V1RoleRef' (by applying it's required fields, if any)
mkV1RoleRef
  :: Text -- ^ 'v1RoleRefApiGroup': APIGroup is the group for the resource being referenced
  -> Text -- ^ 'v1RoleRefKind': Kind is the type of resource being referenced
  -> Text -- ^ 'v1RoleRefName': Name is the name of resource being referenced
  -> V1RoleRef
mkV1RoleRef :: Text -> Text -> Text -> V1RoleRef
mkV1RoleRef Text
v1RoleRefApiGroup Text
v1RoleRefKind Text
v1RoleRefName =
  V1RoleRef :: Text -> Text -> Text -> V1RoleRef
V1RoleRef
  { Text
v1RoleRefApiGroup :: Text
v1RoleRefApiGroup :: Text
v1RoleRefApiGroup
  , Text
v1RoleRefKind :: Text
v1RoleRefKind :: Text
v1RoleRefKind
  , Text
v1RoleRefName :: Text
v1RoleRefName :: Text
v1RoleRefName
  }

-- ** V1RollingUpdateDaemonSet
-- | V1RollingUpdateDaemonSet
-- Spec to control the desired behavior of daemon set rolling update.
data V1RollingUpdateDaemonSet = V1RollingUpdateDaemonSet
  { V1RollingUpdateDaemonSet -> Maybe IntOrString
v1RollingUpdateDaemonSetMaxUnavailable :: !(Maybe IntOrString) -- ^ "maxUnavailable"
  } deriving (Int -> V1RollingUpdateDaemonSet -> ShowS
[V1RollingUpdateDaemonSet] -> ShowS
V1RollingUpdateDaemonSet -> String
(Int -> V1RollingUpdateDaemonSet -> ShowS)
-> (V1RollingUpdateDaemonSet -> String)
-> ([V1RollingUpdateDaemonSet] -> ShowS)
-> Show V1RollingUpdateDaemonSet
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1RollingUpdateDaemonSet] -> ShowS
$cshowList :: [V1RollingUpdateDaemonSet] -> ShowS
show :: V1RollingUpdateDaemonSet -> String
$cshow :: V1RollingUpdateDaemonSet -> String
showsPrec :: Int -> V1RollingUpdateDaemonSet -> ShowS
$cshowsPrec :: Int -> V1RollingUpdateDaemonSet -> ShowS
P.Show, V1RollingUpdateDaemonSet -> V1RollingUpdateDaemonSet -> Bool
(V1RollingUpdateDaemonSet -> V1RollingUpdateDaemonSet -> Bool)
-> (V1RollingUpdateDaemonSet -> V1RollingUpdateDaemonSet -> Bool)
-> Eq V1RollingUpdateDaemonSet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1RollingUpdateDaemonSet -> V1RollingUpdateDaemonSet -> Bool
$c/= :: V1RollingUpdateDaemonSet -> V1RollingUpdateDaemonSet -> Bool
== :: V1RollingUpdateDaemonSet -> V1RollingUpdateDaemonSet -> Bool
$c== :: V1RollingUpdateDaemonSet -> V1RollingUpdateDaemonSet -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1RollingUpdateDaemonSet
instance A.FromJSON V1RollingUpdateDaemonSet where
  parseJSON :: Value -> Parser V1RollingUpdateDaemonSet
parseJSON = String
-> (Object -> Parser V1RollingUpdateDaemonSet)
-> Value
-> Parser V1RollingUpdateDaemonSet
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1RollingUpdateDaemonSet" ((Object -> Parser V1RollingUpdateDaemonSet)
 -> Value -> Parser V1RollingUpdateDaemonSet)
-> (Object -> Parser V1RollingUpdateDaemonSet)
-> Value
-> Parser V1RollingUpdateDaemonSet
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe IntOrString -> V1RollingUpdateDaemonSet
V1RollingUpdateDaemonSet
      (Maybe IntOrString -> V1RollingUpdateDaemonSet)
-> Parser (Maybe IntOrString) -> Parser V1RollingUpdateDaemonSet
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe IntOrString)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxUnavailable")

-- | ToJSON V1RollingUpdateDaemonSet
instance A.ToJSON V1RollingUpdateDaemonSet where
  toJSON :: V1RollingUpdateDaemonSet -> Value
toJSON V1RollingUpdateDaemonSet {Maybe IntOrString
v1RollingUpdateDaemonSetMaxUnavailable :: Maybe IntOrString
v1RollingUpdateDaemonSetMaxUnavailable :: V1RollingUpdateDaemonSet -> Maybe IntOrString
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"maxUnavailable" Text -> Maybe IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe IntOrString
v1RollingUpdateDaemonSetMaxUnavailable
      ]


-- | Construct a value of type 'V1RollingUpdateDaemonSet' (by applying it's required fields, if any)
mkV1RollingUpdateDaemonSet
  :: V1RollingUpdateDaemonSet
mkV1RollingUpdateDaemonSet :: V1RollingUpdateDaemonSet
mkV1RollingUpdateDaemonSet =
  V1RollingUpdateDaemonSet :: Maybe IntOrString -> V1RollingUpdateDaemonSet
V1RollingUpdateDaemonSet
  { v1RollingUpdateDaemonSetMaxUnavailable :: Maybe IntOrString
v1RollingUpdateDaemonSetMaxUnavailable = Maybe IntOrString
forall a. Maybe a
Nothing
  }

-- ** V1RollingUpdateDeployment
-- | V1RollingUpdateDeployment
-- Spec to control the desired behavior of rolling update.
data V1RollingUpdateDeployment = V1RollingUpdateDeployment
  { V1RollingUpdateDeployment -> Maybe IntOrString
v1RollingUpdateDeploymentMaxSurge :: !(Maybe IntOrString) -- ^ "maxSurge"
  , V1RollingUpdateDeployment -> Maybe IntOrString
v1RollingUpdateDeploymentMaxUnavailable :: !(Maybe IntOrString) -- ^ "maxUnavailable"
  } deriving (Int -> V1RollingUpdateDeployment -> ShowS
[V1RollingUpdateDeployment] -> ShowS
V1RollingUpdateDeployment -> String
(Int -> V1RollingUpdateDeployment -> ShowS)
-> (V1RollingUpdateDeployment -> String)
-> ([V1RollingUpdateDeployment] -> ShowS)
-> Show V1RollingUpdateDeployment
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1RollingUpdateDeployment] -> ShowS
$cshowList :: [V1RollingUpdateDeployment] -> ShowS
show :: V1RollingUpdateDeployment -> String
$cshow :: V1RollingUpdateDeployment -> String
showsPrec :: Int -> V1RollingUpdateDeployment -> ShowS
$cshowsPrec :: Int -> V1RollingUpdateDeployment -> ShowS
P.Show, V1RollingUpdateDeployment -> V1RollingUpdateDeployment -> Bool
(V1RollingUpdateDeployment -> V1RollingUpdateDeployment -> Bool)
-> (V1RollingUpdateDeployment -> V1RollingUpdateDeployment -> Bool)
-> Eq V1RollingUpdateDeployment
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1RollingUpdateDeployment -> V1RollingUpdateDeployment -> Bool
$c/= :: V1RollingUpdateDeployment -> V1RollingUpdateDeployment -> Bool
== :: V1RollingUpdateDeployment -> V1RollingUpdateDeployment -> Bool
$c== :: V1RollingUpdateDeployment -> V1RollingUpdateDeployment -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1RollingUpdateDeployment
instance A.FromJSON V1RollingUpdateDeployment where
  parseJSON :: Value -> Parser V1RollingUpdateDeployment
parseJSON = String
-> (Object -> Parser V1RollingUpdateDeployment)
-> Value
-> Parser V1RollingUpdateDeployment
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1RollingUpdateDeployment" ((Object -> Parser V1RollingUpdateDeployment)
 -> Value -> Parser V1RollingUpdateDeployment)
-> (Object -> Parser V1RollingUpdateDeployment)
-> Value
-> Parser V1RollingUpdateDeployment
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe IntOrString -> Maybe IntOrString -> V1RollingUpdateDeployment
V1RollingUpdateDeployment
      (Maybe IntOrString
 -> Maybe IntOrString -> V1RollingUpdateDeployment)
-> Parser (Maybe IntOrString)
-> Parser (Maybe IntOrString -> V1RollingUpdateDeployment)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe IntOrString)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxSurge")
      Parser (Maybe IntOrString -> V1RollingUpdateDeployment)
-> Parser (Maybe IntOrString) -> Parser V1RollingUpdateDeployment
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe IntOrString)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxUnavailable")

-- | ToJSON V1RollingUpdateDeployment
instance A.ToJSON V1RollingUpdateDeployment where
  toJSON :: V1RollingUpdateDeployment -> Value
toJSON V1RollingUpdateDeployment {Maybe IntOrString
v1RollingUpdateDeploymentMaxUnavailable :: Maybe IntOrString
v1RollingUpdateDeploymentMaxSurge :: Maybe IntOrString
v1RollingUpdateDeploymentMaxUnavailable :: V1RollingUpdateDeployment -> Maybe IntOrString
v1RollingUpdateDeploymentMaxSurge :: V1RollingUpdateDeployment -> Maybe IntOrString
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"maxSurge" Text -> Maybe IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe IntOrString
v1RollingUpdateDeploymentMaxSurge
      , Text
"maxUnavailable" Text -> Maybe IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe IntOrString
v1RollingUpdateDeploymentMaxUnavailable
      ]


-- | Construct a value of type 'V1RollingUpdateDeployment' (by applying it's required fields, if any)
mkV1RollingUpdateDeployment
  :: V1RollingUpdateDeployment
mkV1RollingUpdateDeployment :: V1RollingUpdateDeployment
mkV1RollingUpdateDeployment =
  V1RollingUpdateDeployment :: Maybe IntOrString -> Maybe IntOrString -> V1RollingUpdateDeployment
V1RollingUpdateDeployment
  { v1RollingUpdateDeploymentMaxSurge :: Maybe IntOrString
v1RollingUpdateDeploymentMaxSurge = Maybe IntOrString
forall a. Maybe a
Nothing
  , v1RollingUpdateDeploymentMaxUnavailable :: Maybe IntOrString
v1RollingUpdateDeploymentMaxUnavailable = Maybe IntOrString
forall a. Maybe a
Nothing
  }

-- ** V1RollingUpdateStatefulSetStrategy
-- | V1RollingUpdateStatefulSetStrategy
-- RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.
data V1RollingUpdateStatefulSetStrategy = V1RollingUpdateStatefulSetStrategy
  { V1RollingUpdateStatefulSetStrategy -> Maybe Int
v1RollingUpdateStatefulSetStrategyPartition :: !(Maybe Int) -- ^ "partition" - Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.
  } deriving (Int -> V1RollingUpdateStatefulSetStrategy -> ShowS
[V1RollingUpdateStatefulSetStrategy] -> ShowS
V1RollingUpdateStatefulSetStrategy -> String
(Int -> V1RollingUpdateStatefulSetStrategy -> ShowS)
-> (V1RollingUpdateStatefulSetStrategy -> String)
-> ([V1RollingUpdateStatefulSetStrategy] -> ShowS)
-> Show V1RollingUpdateStatefulSetStrategy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1RollingUpdateStatefulSetStrategy] -> ShowS
$cshowList :: [V1RollingUpdateStatefulSetStrategy] -> ShowS
show :: V1RollingUpdateStatefulSetStrategy -> String
$cshow :: V1RollingUpdateStatefulSetStrategy -> String
showsPrec :: Int -> V1RollingUpdateStatefulSetStrategy -> ShowS
$cshowsPrec :: Int -> V1RollingUpdateStatefulSetStrategy -> ShowS
P.Show, V1RollingUpdateStatefulSetStrategy
-> V1RollingUpdateStatefulSetStrategy -> Bool
(V1RollingUpdateStatefulSetStrategy
 -> V1RollingUpdateStatefulSetStrategy -> Bool)
-> (V1RollingUpdateStatefulSetStrategy
    -> V1RollingUpdateStatefulSetStrategy -> Bool)
-> Eq V1RollingUpdateStatefulSetStrategy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1RollingUpdateStatefulSetStrategy
-> V1RollingUpdateStatefulSetStrategy -> Bool
$c/= :: V1RollingUpdateStatefulSetStrategy
-> V1RollingUpdateStatefulSetStrategy -> Bool
== :: V1RollingUpdateStatefulSetStrategy
-> V1RollingUpdateStatefulSetStrategy -> Bool
$c== :: V1RollingUpdateStatefulSetStrategy
-> V1RollingUpdateStatefulSetStrategy -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1RollingUpdateStatefulSetStrategy
instance A.FromJSON V1RollingUpdateStatefulSetStrategy where
  parseJSON :: Value -> Parser V1RollingUpdateStatefulSetStrategy
parseJSON = String
-> (Object -> Parser V1RollingUpdateStatefulSetStrategy)
-> Value
-> Parser V1RollingUpdateStatefulSetStrategy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1RollingUpdateStatefulSetStrategy" ((Object -> Parser V1RollingUpdateStatefulSetStrategy)
 -> Value -> Parser V1RollingUpdateStatefulSetStrategy)
-> (Object -> Parser V1RollingUpdateStatefulSetStrategy)
-> Value
-> Parser V1RollingUpdateStatefulSetStrategy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int -> V1RollingUpdateStatefulSetStrategy
V1RollingUpdateStatefulSetStrategy
      (Maybe Int -> V1RollingUpdateStatefulSetStrategy)
-> Parser (Maybe Int) -> Parser V1RollingUpdateStatefulSetStrategy
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"partition")

-- | ToJSON V1RollingUpdateStatefulSetStrategy
instance A.ToJSON V1RollingUpdateStatefulSetStrategy where
  toJSON :: V1RollingUpdateStatefulSetStrategy -> Value
toJSON V1RollingUpdateStatefulSetStrategy {Maybe Int
v1RollingUpdateStatefulSetStrategyPartition :: Maybe Int
v1RollingUpdateStatefulSetStrategyPartition :: V1RollingUpdateStatefulSetStrategy -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"partition" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1RollingUpdateStatefulSetStrategyPartition
      ]


-- | Construct a value of type 'V1RollingUpdateStatefulSetStrategy' (by applying it's required fields, if any)
mkV1RollingUpdateStatefulSetStrategy
  :: V1RollingUpdateStatefulSetStrategy
mkV1RollingUpdateStatefulSetStrategy :: V1RollingUpdateStatefulSetStrategy
mkV1RollingUpdateStatefulSetStrategy =
  V1RollingUpdateStatefulSetStrategy :: Maybe Int -> V1RollingUpdateStatefulSetStrategy
V1RollingUpdateStatefulSetStrategy
  { v1RollingUpdateStatefulSetStrategyPartition :: Maybe Int
v1RollingUpdateStatefulSetStrategyPartition = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1RuleWithOperations
-- | V1RuleWithOperations
-- RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.
data V1RuleWithOperations = V1RuleWithOperations
  { V1RuleWithOperations -> Maybe [Text]
v1RuleWithOperationsApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the API groups the resources belong to. &#39;*&#39; is all groups. If &#39;*&#39; is present, the length of the slice must be one. Required.
  , V1RuleWithOperations -> Maybe [Text]
v1RuleWithOperationsApiVersions :: !(Maybe [Text]) -- ^ "apiVersions" - APIVersions is the API versions the resources belong to. &#39;*&#39; is all versions. If &#39;*&#39; is present, the length of the slice must be one. Required.
  , V1RuleWithOperations -> Maybe [Text]
v1RuleWithOperationsOperations :: !(Maybe [Text]) -- ^ "operations" - Operations is the operations the admission hook cares about - CREATE, UPDATE, or * for all operations. If &#39;*&#39; is present, the length of the slice must be one. Required.
  , V1RuleWithOperations -> Maybe [Text]
v1RuleWithOperationsResources :: !(Maybe [Text]) -- ^ "resources" - Resources is a list of resources this rule applies to.  For example: &#39;pods&#39; means pods. &#39;pods/log&#39; means the log subresource of pods. &#39;*&#39; means all resources, but not subresources. &#39;pods/*&#39; means all subresources of pods. &#39;*/scale&#39; means all scale subresources. &#39;*/*&#39; means all resources and their subresources.  If wildcard is present, the validation rule will ensure resources do not overlap with each other.  Depending on the enclosing object, subresources might not be allowed. Required.
  , V1RuleWithOperations -> Maybe Text
v1RuleWithOperationsScope :: !(Maybe Text) -- ^ "scope" - scope specifies the scope of this rule. Valid values are \&quot;Cluster\&quot;, \&quot;Namespaced\&quot;, and \&quot;*\&quot; \&quot;Cluster\&quot; means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \&quot;Namespaced\&quot; means that only namespaced resources will match this rule. \&quot;*\&quot; means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \&quot;*\&quot;.
  } deriving (Int -> V1RuleWithOperations -> ShowS
[V1RuleWithOperations] -> ShowS
V1RuleWithOperations -> String
(Int -> V1RuleWithOperations -> ShowS)
-> (V1RuleWithOperations -> String)
-> ([V1RuleWithOperations] -> ShowS)
-> Show V1RuleWithOperations
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1RuleWithOperations] -> ShowS
$cshowList :: [V1RuleWithOperations] -> ShowS
show :: V1RuleWithOperations -> String
$cshow :: V1RuleWithOperations -> String
showsPrec :: Int -> V1RuleWithOperations -> ShowS
$cshowsPrec :: Int -> V1RuleWithOperations -> ShowS
P.Show, V1RuleWithOperations -> V1RuleWithOperations -> Bool
(V1RuleWithOperations -> V1RuleWithOperations -> Bool)
-> (V1RuleWithOperations -> V1RuleWithOperations -> Bool)
-> Eq V1RuleWithOperations
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1RuleWithOperations -> V1RuleWithOperations -> Bool
$c/= :: V1RuleWithOperations -> V1RuleWithOperations -> Bool
== :: V1RuleWithOperations -> V1RuleWithOperations -> Bool
$c== :: V1RuleWithOperations -> V1RuleWithOperations -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1RuleWithOperations
instance A.FromJSON V1RuleWithOperations where
  parseJSON :: Value -> Parser V1RuleWithOperations
parseJSON = String
-> (Object -> Parser V1RuleWithOperations)
-> Value
-> Parser V1RuleWithOperations
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1RuleWithOperations" ((Object -> Parser V1RuleWithOperations)
 -> Value -> Parser V1RuleWithOperations)
-> (Object -> Parser V1RuleWithOperations)
-> Value
-> Parser V1RuleWithOperations
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe Text
-> V1RuleWithOperations
V1RuleWithOperations
      (Maybe [Text]
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe Text
 -> V1RuleWithOperations)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Text
      -> V1RuleWithOperations)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiGroups")
      Parser
  (Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Text
   -> V1RuleWithOperations)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe [Text] -> Maybe Text -> V1RuleWithOperations)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersions")
      Parser
  (Maybe [Text]
   -> Maybe [Text] -> Maybe Text -> V1RuleWithOperations)
-> Parser (Maybe [Text])
-> Parser (Maybe [Text] -> Maybe Text -> V1RuleWithOperations)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"operations")
      Parser (Maybe [Text] -> Maybe Text -> V1RuleWithOperations)
-> Parser (Maybe [Text])
-> Parser (Maybe Text -> V1RuleWithOperations)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resources")
      Parser (Maybe Text -> V1RuleWithOperations)
-> Parser (Maybe Text) -> Parser V1RuleWithOperations
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"scope")

-- | ToJSON V1RuleWithOperations
instance A.ToJSON V1RuleWithOperations where
  toJSON :: V1RuleWithOperations -> Value
toJSON V1RuleWithOperations {Maybe [Text]
Maybe Text
v1RuleWithOperationsScope :: Maybe Text
v1RuleWithOperationsResources :: Maybe [Text]
v1RuleWithOperationsOperations :: Maybe [Text]
v1RuleWithOperationsApiVersions :: Maybe [Text]
v1RuleWithOperationsApiGroups :: Maybe [Text]
v1RuleWithOperationsScope :: V1RuleWithOperations -> Maybe Text
v1RuleWithOperationsResources :: V1RuleWithOperations -> Maybe [Text]
v1RuleWithOperationsOperations :: V1RuleWithOperations -> Maybe [Text]
v1RuleWithOperationsApiVersions :: V1RuleWithOperations -> Maybe [Text]
v1RuleWithOperationsApiGroups :: V1RuleWithOperations -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiGroups" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1RuleWithOperationsApiGroups
      , Text
"apiVersions" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1RuleWithOperationsApiVersions
      , Text
"operations" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1RuleWithOperationsOperations
      , Text
"resources" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1RuleWithOperationsResources
      , Text
"scope" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1RuleWithOperationsScope
      ]


-- | Construct a value of type 'V1RuleWithOperations' (by applying it's required fields, if any)
mkV1RuleWithOperations
  :: V1RuleWithOperations
mkV1RuleWithOperations :: V1RuleWithOperations
mkV1RuleWithOperations =
  V1RuleWithOperations :: Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe Text
-> V1RuleWithOperations
V1RuleWithOperations
  { v1RuleWithOperationsApiGroups :: Maybe [Text]
v1RuleWithOperationsApiGroups = Maybe [Text]
forall a. Maybe a
Nothing
  , v1RuleWithOperationsApiVersions :: Maybe [Text]
v1RuleWithOperationsApiVersions = Maybe [Text]
forall a. Maybe a
Nothing
  , v1RuleWithOperationsOperations :: Maybe [Text]
v1RuleWithOperationsOperations = Maybe [Text]
forall a. Maybe a
Nothing
  , v1RuleWithOperationsResources :: Maybe [Text]
v1RuleWithOperationsResources = Maybe [Text]
forall a. Maybe a
Nothing
  , v1RuleWithOperationsScope :: Maybe Text
v1RuleWithOperationsScope = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1SELinuxOptions
-- | V1SELinuxOptions
-- SELinuxOptions are the labels to be applied to the container
data V1SELinuxOptions = V1SELinuxOptions
  { V1SELinuxOptions -> Maybe Text
v1SELinuxOptionsLevel :: !(Maybe Text) -- ^ "level" - Level is SELinux level label that applies to the container.
  , V1SELinuxOptions -> Maybe Text
v1SELinuxOptionsRole :: !(Maybe Text) -- ^ "role" - Role is a SELinux role label that applies to the container.
  , V1SELinuxOptions -> Maybe Text
v1SELinuxOptionsType :: !(Maybe Text) -- ^ "type" - Type is a SELinux type label that applies to the container.
  , V1SELinuxOptions -> Maybe Text
v1SELinuxOptionsUser :: !(Maybe Text) -- ^ "user" - User is a SELinux user label that applies to the container.
  } deriving (Int -> V1SELinuxOptions -> ShowS
[V1SELinuxOptions] -> ShowS
V1SELinuxOptions -> String
(Int -> V1SELinuxOptions -> ShowS)
-> (V1SELinuxOptions -> String)
-> ([V1SELinuxOptions] -> ShowS)
-> Show V1SELinuxOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SELinuxOptions] -> ShowS
$cshowList :: [V1SELinuxOptions] -> ShowS
show :: V1SELinuxOptions -> String
$cshow :: V1SELinuxOptions -> String
showsPrec :: Int -> V1SELinuxOptions -> ShowS
$cshowsPrec :: Int -> V1SELinuxOptions -> ShowS
P.Show, V1SELinuxOptions -> V1SELinuxOptions -> Bool
(V1SELinuxOptions -> V1SELinuxOptions -> Bool)
-> (V1SELinuxOptions -> V1SELinuxOptions -> Bool)
-> Eq V1SELinuxOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SELinuxOptions -> V1SELinuxOptions -> Bool
$c/= :: V1SELinuxOptions -> V1SELinuxOptions -> Bool
== :: V1SELinuxOptions -> V1SELinuxOptions -> Bool
$c== :: V1SELinuxOptions -> V1SELinuxOptions -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SELinuxOptions
instance A.FromJSON V1SELinuxOptions where
  parseJSON :: Value -> Parser V1SELinuxOptions
parseJSON = String
-> (Object -> Parser V1SELinuxOptions)
-> Value
-> Parser V1SELinuxOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SELinuxOptions" ((Object -> Parser V1SELinuxOptions)
 -> Value -> Parser V1SELinuxOptions)
-> (Object -> Parser V1SELinuxOptions)
-> Value
-> Parser V1SELinuxOptions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text -> Maybe Text -> Maybe Text -> V1SELinuxOptions
V1SELinuxOptions
      (Maybe Text
 -> Maybe Text -> Maybe Text -> Maybe Text -> V1SELinuxOptions)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Text -> Maybe Text -> V1SELinuxOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"level")
      Parser (Maybe Text -> Maybe Text -> Maybe Text -> V1SELinuxOptions)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> V1SELinuxOptions)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"role")
      Parser (Maybe Text -> Maybe Text -> V1SELinuxOptions)
-> Parser (Maybe Text) -> Parser (Maybe Text -> V1SELinuxOptions)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")
      Parser (Maybe Text -> V1SELinuxOptions)
-> Parser (Maybe Text) -> Parser V1SELinuxOptions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"user")

-- | ToJSON V1SELinuxOptions
instance A.ToJSON V1SELinuxOptions where
  toJSON :: V1SELinuxOptions -> Value
toJSON V1SELinuxOptions {Maybe Text
v1SELinuxOptionsUser :: Maybe Text
v1SELinuxOptionsType :: Maybe Text
v1SELinuxOptionsRole :: Maybe Text
v1SELinuxOptionsLevel :: Maybe Text
v1SELinuxOptionsUser :: V1SELinuxOptions -> Maybe Text
v1SELinuxOptionsType :: V1SELinuxOptions -> Maybe Text
v1SELinuxOptionsRole :: V1SELinuxOptions -> Maybe Text
v1SELinuxOptionsLevel :: V1SELinuxOptions -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"level" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SELinuxOptionsLevel
      , Text
"role" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SELinuxOptionsRole
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SELinuxOptionsType
      , Text
"user" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SELinuxOptionsUser
      ]


-- | Construct a value of type 'V1SELinuxOptions' (by applying it's required fields, if any)
mkV1SELinuxOptions
  :: V1SELinuxOptions
mkV1SELinuxOptions :: V1SELinuxOptions
mkV1SELinuxOptions =
  V1SELinuxOptions :: Maybe Text
-> Maybe Text -> Maybe Text -> Maybe Text -> V1SELinuxOptions
V1SELinuxOptions
  { v1SELinuxOptionsLevel :: Maybe Text
v1SELinuxOptionsLevel = Maybe Text
forall a. Maybe a
Nothing
  , v1SELinuxOptionsRole :: Maybe Text
v1SELinuxOptionsRole = Maybe Text
forall a. Maybe a
Nothing
  , v1SELinuxOptionsType :: Maybe Text
v1SELinuxOptionsType = Maybe Text
forall a. Maybe a
Nothing
  , v1SELinuxOptionsUser :: Maybe Text
v1SELinuxOptionsUser = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1Scale
-- | V1Scale
-- Scale represents a scaling request for a resource.
data V1Scale = V1Scale
  { V1Scale -> Maybe Text
v1ScaleApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1Scale -> Maybe Text
v1ScaleKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1Scale -> Maybe V1ObjectMeta
v1ScaleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1Scale -> Maybe V1ScaleSpec
v1ScaleSpec :: !(Maybe V1ScaleSpec) -- ^ "spec"
  , V1Scale -> Maybe V1ScaleStatus
v1ScaleStatus :: !(Maybe V1ScaleStatus) -- ^ "status"
  } deriving (Int -> V1Scale -> ShowS
[V1Scale] -> ShowS
V1Scale -> String
(Int -> V1Scale -> ShowS)
-> (V1Scale -> String) -> ([V1Scale] -> ShowS) -> Show V1Scale
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Scale] -> ShowS
$cshowList :: [V1Scale] -> ShowS
show :: V1Scale -> String
$cshow :: V1Scale -> String
showsPrec :: Int -> V1Scale -> ShowS
$cshowsPrec :: Int -> V1Scale -> ShowS
P.Show, V1Scale -> V1Scale -> Bool
(V1Scale -> V1Scale -> Bool)
-> (V1Scale -> V1Scale -> Bool) -> Eq V1Scale
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Scale -> V1Scale -> Bool
$c/= :: V1Scale -> V1Scale -> Bool
== :: V1Scale -> V1Scale -> Bool
$c== :: V1Scale -> V1Scale -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Scale
instance A.FromJSON V1Scale where
  parseJSON :: Value -> Parser V1Scale
parseJSON = String -> (Object -> Parser V1Scale) -> Value -> Parser V1Scale
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Scale" ((Object -> Parser V1Scale) -> Value -> Parser V1Scale)
-> (Object -> Parser V1Scale) -> Value -> Parser V1Scale
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1ScaleSpec
-> Maybe V1ScaleStatus
-> V1Scale
V1Scale
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1ScaleSpec
 -> Maybe V1ScaleStatus
 -> V1Scale)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1ScaleSpec
      -> Maybe V1ScaleStatus
      -> V1Scale)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1ScaleSpec
   -> Maybe V1ScaleStatus
   -> V1Scale)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1ScaleSpec -> Maybe V1ScaleStatus -> V1Scale)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1ScaleSpec -> Maybe V1ScaleStatus -> V1Scale)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe V1ScaleSpec -> Maybe V1ScaleStatus -> V1Scale)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe V1ScaleSpec -> Maybe V1ScaleStatus -> V1Scale)
-> Parser (Maybe V1ScaleSpec)
-> Parser (Maybe V1ScaleStatus -> V1Scale)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ScaleSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1ScaleStatus -> V1Scale)
-> Parser (Maybe V1ScaleStatus) -> Parser V1Scale
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ScaleStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1Scale
instance A.ToJSON V1Scale where
  toJSON :: V1Scale -> Value
toJSON V1Scale {Maybe Text
Maybe V1ScaleStatus
Maybe V1ScaleSpec
Maybe V1ObjectMeta
v1ScaleStatus :: Maybe V1ScaleStatus
v1ScaleSpec :: Maybe V1ScaleSpec
v1ScaleMetadata :: Maybe V1ObjectMeta
v1ScaleKind :: Maybe Text
v1ScaleApiVersion :: Maybe Text
v1ScaleStatus :: V1Scale -> Maybe V1ScaleStatus
v1ScaleSpec :: V1Scale -> Maybe V1ScaleSpec
v1ScaleMetadata :: V1Scale -> Maybe V1ObjectMeta
v1ScaleKind :: V1Scale -> Maybe Text
v1ScaleApiVersion :: V1Scale -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ScaleApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ScaleKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1ScaleMetadata
      , Text
"spec" Text -> Maybe V1ScaleSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ScaleSpec
v1ScaleSpec
      , Text
"status" Text -> Maybe V1ScaleStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ScaleStatus
v1ScaleStatus
      ]


-- | Construct a value of type 'V1Scale' (by applying it's required fields, if any)
mkV1Scale
  :: V1Scale
mkV1Scale :: V1Scale
mkV1Scale =
  V1Scale :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1ScaleSpec
-> Maybe V1ScaleStatus
-> V1Scale
V1Scale
  { v1ScaleApiVersion :: Maybe Text
v1ScaleApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ScaleKind :: Maybe Text
v1ScaleKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ScaleMetadata :: Maybe V1ObjectMeta
v1ScaleMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1ScaleSpec :: Maybe V1ScaleSpec
v1ScaleSpec = Maybe V1ScaleSpec
forall a. Maybe a
Nothing
  , v1ScaleStatus :: Maybe V1ScaleStatus
v1ScaleStatus = Maybe V1ScaleStatus
forall a. Maybe a
Nothing
  }

-- ** V1ScaleIOPersistentVolumeSource
-- | V1ScaleIOPersistentVolumeSource
-- ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume
data V1ScaleIOPersistentVolumeSource = V1ScaleIOPersistentVolumeSource
  { V1ScaleIOPersistentVolumeSource -> Maybe Text
v1ScaleIOPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. Default is \&quot;xfs\&quot;
  , V1ScaleIOPersistentVolumeSource -> Text
v1ScaleIOPersistentVolumeSourceGateway :: !(Text) -- ^ /Required/ "gateway" - The host address of the ScaleIO API Gateway.
  , V1ScaleIOPersistentVolumeSource -> Maybe Text
v1ScaleIOPersistentVolumeSourceProtectionDomain :: !(Maybe Text) -- ^ "protectionDomain" - The name of the ScaleIO Protection Domain for the configured storage.
  , V1ScaleIOPersistentVolumeSource -> Maybe Bool
v1ScaleIOPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
  , V1ScaleIOPersistentVolumeSource -> V1SecretReference
v1ScaleIOPersistentVolumeSourceSecretRef :: !(V1SecretReference) -- ^ /Required/ "secretRef"
  , V1ScaleIOPersistentVolumeSource -> Maybe Bool
v1ScaleIOPersistentVolumeSourceSslEnabled :: !(Maybe Bool) -- ^ "sslEnabled" - Flag to enable/disable SSL communication with Gateway, default false
  , V1ScaleIOPersistentVolumeSource -> Maybe Text
v1ScaleIOPersistentVolumeSourceStorageMode :: !(Maybe Text) -- ^ "storageMode" - Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.
  , V1ScaleIOPersistentVolumeSource -> Maybe Text
v1ScaleIOPersistentVolumeSourceStoragePool :: !(Maybe Text) -- ^ "storagePool" - The ScaleIO Storage Pool associated with the protection domain.
  , V1ScaleIOPersistentVolumeSource -> Text
v1ScaleIOPersistentVolumeSourceSystem :: !(Text) -- ^ /Required/ "system" - The name of the storage system as configured in ScaleIO.
  , V1ScaleIOPersistentVolumeSource -> Maybe Text
v1ScaleIOPersistentVolumeSourceVolumeName :: !(Maybe Text) -- ^ "volumeName" - The name of a volume already created in the ScaleIO system that is associated with this volume source.
  } deriving (Int -> V1ScaleIOPersistentVolumeSource -> ShowS
[V1ScaleIOPersistentVolumeSource] -> ShowS
V1ScaleIOPersistentVolumeSource -> String
(Int -> V1ScaleIOPersistentVolumeSource -> ShowS)
-> (V1ScaleIOPersistentVolumeSource -> String)
-> ([V1ScaleIOPersistentVolumeSource] -> ShowS)
-> Show V1ScaleIOPersistentVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ScaleIOPersistentVolumeSource] -> ShowS
$cshowList :: [V1ScaleIOPersistentVolumeSource] -> ShowS
show :: V1ScaleIOPersistentVolumeSource -> String
$cshow :: V1ScaleIOPersistentVolumeSource -> String
showsPrec :: Int -> V1ScaleIOPersistentVolumeSource -> ShowS
$cshowsPrec :: Int -> V1ScaleIOPersistentVolumeSource -> ShowS
P.Show, V1ScaleIOPersistentVolumeSource
-> V1ScaleIOPersistentVolumeSource -> Bool
(V1ScaleIOPersistentVolumeSource
 -> V1ScaleIOPersistentVolumeSource -> Bool)
-> (V1ScaleIOPersistentVolumeSource
    -> V1ScaleIOPersistentVolumeSource -> Bool)
-> Eq V1ScaleIOPersistentVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ScaleIOPersistentVolumeSource
-> V1ScaleIOPersistentVolumeSource -> Bool
$c/= :: V1ScaleIOPersistentVolumeSource
-> V1ScaleIOPersistentVolumeSource -> Bool
== :: V1ScaleIOPersistentVolumeSource
-> V1ScaleIOPersistentVolumeSource -> Bool
$c== :: V1ScaleIOPersistentVolumeSource
-> V1ScaleIOPersistentVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ScaleIOPersistentVolumeSource
instance A.FromJSON V1ScaleIOPersistentVolumeSource where
  parseJSON :: Value -> Parser V1ScaleIOPersistentVolumeSource
parseJSON = String
-> (Object -> Parser V1ScaleIOPersistentVolumeSource)
-> Value
-> Parser V1ScaleIOPersistentVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ScaleIOPersistentVolumeSource" ((Object -> Parser V1ScaleIOPersistentVolumeSource)
 -> Value -> Parser V1ScaleIOPersistentVolumeSource)
-> (Object -> Parser V1ScaleIOPersistentVolumeSource)
-> Value
-> Parser V1ScaleIOPersistentVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Text
-> Maybe Text
-> Maybe Bool
-> V1SecretReference
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe Text
-> V1ScaleIOPersistentVolumeSource
V1ScaleIOPersistentVolumeSource
      (Maybe Text
 -> Text
 -> Maybe Text
 -> Maybe Bool
 -> V1SecretReference
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Maybe Text
 -> V1ScaleIOPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe Text
      -> Maybe Bool
      -> V1SecretReference
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> V1ScaleIOPersistentVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Text
   -> Maybe Text
   -> Maybe Bool
   -> V1SecretReference
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> V1ScaleIOPersistentVolumeSource)
-> Parser Text
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> V1SecretReference
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> V1ScaleIOPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"gateway")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> V1SecretReference
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> V1ScaleIOPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> V1SecretReference
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> V1ScaleIOPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"protectionDomain")
      Parser
  (Maybe Bool
   -> V1SecretReference
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> V1ScaleIOPersistentVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (V1SecretReference
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> V1ScaleIOPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser
  (V1SecretReference
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> V1ScaleIOPersistentVolumeSource)
-> Parser V1SecretReference
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> V1ScaleIOPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1SecretReference
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"secretRef")
      Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> V1ScaleIOPersistentVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> V1ScaleIOPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"sslEnabled")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> V1ScaleIOPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text -> Maybe Text -> V1ScaleIOPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"storageMode")
      Parser
  (Maybe Text
   -> Text -> Maybe Text -> V1ScaleIOPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser (Text -> Maybe Text -> V1ScaleIOPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"storagePool")
      Parser (Text -> Maybe Text -> V1ScaleIOPersistentVolumeSource)
-> Parser Text
-> Parser (Maybe Text -> V1ScaleIOPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"system")
      Parser (Maybe Text -> V1ScaleIOPersistentVolumeSource)
-> Parser (Maybe Text) -> Parser V1ScaleIOPersistentVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeName")

-- | ToJSON V1ScaleIOPersistentVolumeSource
instance A.ToJSON V1ScaleIOPersistentVolumeSource where
  toJSON :: V1ScaleIOPersistentVolumeSource -> Value
toJSON V1ScaleIOPersistentVolumeSource {Maybe Bool
Maybe Text
Text
V1SecretReference
v1ScaleIOPersistentVolumeSourceVolumeName :: Maybe Text
v1ScaleIOPersistentVolumeSourceSystem :: Text
v1ScaleIOPersistentVolumeSourceStoragePool :: Maybe Text
v1ScaleIOPersistentVolumeSourceStorageMode :: Maybe Text
v1ScaleIOPersistentVolumeSourceSslEnabled :: Maybe Bool
v1ScaleIOPersistentVolumeSourceSecretRef :: V1SecretReference
v1ScaleIOPersistentVolumeSourceReadOnly :: Maybe Bool
v1ScaleIOPersistentVolumeSourceProtectionDomain :: Maybe Text
v1ScaleIOPersistentVolumeSourceGateway :: Text
v1ScaleIOPersistentVolumeSourceFsType :: Maybe Text
v1ScaleIOPersistentVolumeSourceVolumeName :: V1ScaleIOPersistentVolumeSource -> Maybe Text
v1ScaleIOPersistentVolumeSourceSystem :: V1ScaleIOPersistentVolumeSource -> Text
v1ScaleIOPersistentVolumeSourceStoragePool :: V1ScaleIOPersistentVolumeSource -> Maybe Text
v1ScaleIOPersistentVolumeSourceStorageMode :: V1ScaleIOPersistentVolumeSource -> Maybe Text
v1ScaleIOPersistentVolumeSourceSslEnabled :: V1ScaleIOPersistentVolumeSource -> Maybe Bool
v1ScaleIOPersistentVolumeSourceSecretRef :: V1ScaleIOPersistentVolumeSource -> V1SecretReference
v1ScaleIOPersistentVolumeSourceReadOnly :: V1ScaleIOPersistentVolumeSource -> Maybe Bool
v1ScaleIOPersistentVolumeSourceProtectionDomain :: V1ScaleIOPersistentVolumeSource -> Maybe Text
v1ScaleIOPersistentVolumeSourceGateway :: V1ScaleIOPersistentVolumeSource -> Text
v1ScaleIOPersistentVolumeSourceFsType :: V1ScaleIOPersistentVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ScaleIOPersistentVolumeSourceFsType
      , Text
"gateway" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ScaleIOPersistentVolumeSourceGateway
      , Text
"protectionDomain" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ScaleIOPersistentVolumeSourceProtectionDomain
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ScaleIOPersistentVolumeSourceReadOnly
      , Text
"secretRef" Text -> V1SecretReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1SecretReference
v1ScaleIOPersistentVolumeSourceSecretRef
      , Text
"sslEnabled" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ScaleIOPersistentVolumeSourceSslEnabled
      , Text
"storageMode" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ScaleIOPersistentVolumeSourceStorageMode
      , Text
"storagePool" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ScaleIOPersistentVolumeSourceStoragePool
      , Text
"system" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ScaleIOPersistentVolumeSourceSystem
      , Text
"volumeName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ScaleIOPersistentVolumeSourceVolumeName
      ]


-- | Construct a value of type 'V1ScaleIOPersistentVolumeSource' (by applying it's required fields, if any)
mkV1ScaleIOPersistentVolumeSource
  :: Text -- ^ 'v1ScaleIOPersistentVolumeSourceGateway': The host address of the ScaleIO API Gateway.
  -> V1SecretReference -- ^ 'v1ScaleIOPersistentVolumeSourceSecretRef' 
  -> Text -- ^ 'v1ScaleIOPersistentVolumeSourceSystem': The name of the storage system as configured in ScaleIO.
  -> V1ScaleIOPersistentVolumeSource
mkV1ScaleIOPersistentVolumeSource :: Text
-> V1SecretReference -> Text -> V1ScaleIOPersistentVolumeSource
mkV1ScaleIOPersistentVolumeSource Text
v1ScaleIOPersistentVolumeSourceGateway V1SecretReference
v1ScaleIOPersistentVolumeSourceSecretRef Text
v1ScaleIOPersistentVolumeSourceSystem =
  V1ScaleIOPersistentVolumeSource :: Maybe Text
-> Text
-> Maybe Text
-> Maybe Bool
-> V1SecretReference
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe Text
-> V1ScaleIOPersistentVolumeSource
V1ScaleIOPersistentVolumeSource
  { v1ScaleIOPersistentVolumeSourceFsType :: Maybe Text
v1ScaleIOPersistentVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1ScaleIOPersistentVolumeSourceGateway :: Text
v1ScaleIOPersistentVolumeSourceGateway :: Text
v1ScaleIOPersistentVolumeSourceGateway
  , v1ScaleIOPersistentVolumeSourceProtectionDomain :: Maybe Text
v1ScaleIOPersistentVolumeSourceProtectionDomain = Maybe Text
forall a. Maybe a
Nothing
  , v1ScaleIOPersistentVolumeSourceReadOnly :: Maybe Bool
v1ScaleIOPersistentVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , V1SecretReference
v1ScaleIOPersistentVolumeSourceSecretRef :: V1SecretReference
v1ScaleIOPersistentVolumeSourceSecretRef :: V1SecretReference
v1ScaleIOPersistentVolumeSourceSecretRef
  , v1ScaleIOPersistentVolumeSourceSslEnabled :: Maybe Bool
v1ScaleIOPersistentVolumeSourceSslEnabled = Maybe Bool
forall a. Maybe a
Nothing
  , v1ScaleIOPersistentVolumeSourceStorageMode :: Maybe Text
v1ScaleIOPersistentVolumeSourceStorageMode = Maybe Text
forall a. Maybe a
Nothing
  , v1ScaleIOPersistentVolumeSourceStoragePool :: Maybe Text
v1ScaleIOPersistentVolumeSourceStoragePool = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1ScaleIOPersistentVolumeSourceSystem :: Text
v1ScaleIOPersistentVolumeSourceSystem :: Text
v1ScaleIOPersistentVolumeSourceSystem
  , v1ScaleIOPersistentVolumeSourceVolumeName :: Maybe Text
v1ScaleIOPersistentVolumeSourceVolumeName = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1ScaleIOVolumeSource
-- | V1ScaleIOVolumeSource
-- ScaleIOVolumeSource represents a persistent ScaleIO volume
data V1ScaleIOVolumeSource = V1ScaleIOVolumeSource
  { V1ScaleIOVolumeSource -> Maybe Text
v1ScaleIOVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. Default is \&quot;xfs\&quot;.
  , V1ScaleIOVolumeSource -> Text
v1ScaleIOVolumeSourceGateway :: !(Text) -- ^ /Required/ "gateway" - The host address of the ScaleIO API Gateway.
  , V1ScaleIOVolumeSource -> Maybe Text
v1ScaleIOVolumeSourceProtectionDomain :: !(Maybe Text) -- ^ "protectionDomain" - The name of the ScaleIO Protection Domain for the configured storage.
  , V1ScaleIOVolumeSource -> Maybe Bool
v1ScaleIOVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
  , V1ScaleIOVolumeSource -> V1LocalObjectReference
v1ScaleIOVolumeSourceSecretRef :: !(V1LocalObjectReference) -- ^ /Required/ "secretRef"
  , V1ScaleIOVolumeSource -> Maybe Bool
v1ScaleIOVolumeSourceSslEnabled :: !(Maybe Bool) -- ^ "sslEnabled" - Flag to enable/disable SSL communication with Gateway, default false
  , V1ScaleIOVolumeSource -> Maybe Text
v1ScaleIOVolumeSourceStorageMode :: !(Maybe Text) -- ^ "storageMode" - Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.
  , V1ScaleIOVolumeSource -> Maybe Text
v1ScaleIOVolumeSourceStoragePool :: !(Maybe Text) -- ^ "storagePool" - The ScaleIO Storage Pool associated with the protection domain.
  , V1ScaleIOVolumeSource -> Text
v1ScaleIOVolumeSourceSystem :: !(Text) -- ^ /Required/ "system" - The name of the storage system as configured in ScaleIO.
  , V1ScaleIOVolumeSource -> Maybe Text
v1ScaleIOVolumeSourceVolumeName :: !(Maybe Text) -- ^ "volumeName" - The name of a volume already created in the ScaleIO system that is associated with this volume source.
  } deriving (Int -> V1ScaleIOVolumeSource -> ShowS
[V1ScaleIOVolumeSource] -> ShowS
V1ScaleIOVolumeSource -> String
(Int -> V1ScaleIOVolumeSource -> ShowS)
-> (V1ScaleIOVolumeSource -> String)
-> ([V1ScaleIOVolumeSource] -> ShowS)
-> Show V1ScaleIOVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ScaleIOVolumeSource] -> ShowS
$cshowList :: [V1ScaleIOVolumeSource] -> ShowS
show :: V1ScaleIOVolumeSource -> String
$cshow :: V1ScaleIOVolumeSource -> String
showsPrec :: Int -> V1ScaleIOVolumeSource -> ShowS
$cshowsPrec :: Int -> V1ScaleIOVolumeSource -> ShowS
P.Show, V1ScaleIOVolumeSource -> V1ScaleIOVolumeSource -> Bool
(V1ScaleIOVolumeSource -> V1ScaleIOVolumeSource -> Bool)
-> (V1ScaleIOVolumeSource -> V1ScaleIOVolumeSource -> Bool)
-> Eq V1ScaleIOVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ScaleIOVolumeSource -> V1ScaleIOVolumeSource -> Bool
$c/= :: V1ScaleIOVolumeSource -> V1ScaleIOVolumeSource -> Bool
== :: V1ScaleIOVolumeSource -> V1ScaleIOVolumeSource -> Bool
$c== :: V1ScaleIOVolumeSource -> V1ScaleIOVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ScaleIOVolumeSource
instance A.FromJSON V1ScaleIOVolumeSource where
  parseJSON :: Value -> Parser V1ScaleIOVolumeSource
parseJSON = String
-> (Object -> Parser V1ScaleIOVolumeSource)
-> Value
-> Parser V1ScaleIOVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ScaleIOVolumeSource" ((Object -> Parser V1ScaleIOVolumeSource)
 -> Value -> Parser V1ScaleIOVolumeSource)
-> (Object -> Parser V1ScaleIOVolumeSource)
-> Value
-> Parser V1ScaleIOVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Text
-> Maybe Text
-> Maybe Bool
-> V1LocalObjectReference
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe Text
-> V1ScaleIOVolumeSource
V1ScaleIOVolumeSource
      (Maybe Text
 -> Text
 -> Maybe Text
 -> Maybe Bool
 -> V1LocalObjectReference
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Maybe Text
 -> V1ScaleIOVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe Text
      -> Maybe Bool
      -> V1LocalObjectReference
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> V1ScaleIOVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Text
   -> Maybe Text
   -> Maybe Bool
   -> V1LocalObjectReference
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> V1ScaleIOVolumeSource)
-> Parser Text
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> V1LocalObjectReference
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> V1ScaleIOVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"gateway")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> V1LocalObjectReference
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> V1ScaleIOVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> V1LocalObjectReference
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> V1ScaleIOVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"protectionDomain")
      Parser
  (Maybe Bool
   -> V1LocalObjectReference
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> V1ScaleIOVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (V1LocalObjectReference
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> V1ScaleIOVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser
  (V1LocalObjectReference
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> V1ScaleIOVolumeSource)
-> Parser V1LocalObjectReference
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> V1ScaleIOVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1LocalObjectReference
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"secretRef")
      Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> V1ScaleIOVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text -> Text -> Maybe Text -> V1ScaleIOVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"sslEnabled")
      Parser
  (Maybe Text
   -> Maybe Text -> Text -> Maybe Text -> V1ScaleIOVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Text -> Maybe Text -> V1ScaleIOVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"storageMode")
      Parser (Maybe Text -> Text -> Maybe Text -> V1ScaleIOVolumeSource)
-> Parser (Maybe Text)
-> Parser (Text -> Maybe Text -> V1ScaleIOVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"storagePool")
      Parser (Text -> Maybe Text -> V1ScaleIOVolumeSource)
-> Parser Text -> Parser (Maybe Text -> V1ScaleIOVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"system")
      Parser (Maybe Text -> V1ScaleIOVolumeSource)
-> Parser (Maybe Text) -> Parser V1ScaleIOVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeName")

-- | ToJSON V1ScaleIOVolumeSource
instance A.ToJSON V1ScaleIOVolumeSource where
  toJSON :: V1ScaleIOVolumeSource -> Value
toJSON V1ScaleIOVolumeSource {Maybe Bool
Maybe Text
Text
V1LocalObjectReference
v1ScaleIOVolumeSourceVolumeName :: Maybe Text
v1ScaleIOVolumeSourceSystem :: Text
v1ScaleIOVolumeSourceStoragePool :: Maybe Text
v1ScaleIOVolumeSourceStorageMode :: Maybe Text
v1ScaleIOVolumeSourceSslEnabled :: Maybe Bool
v1ScaleIOVolumeSourceSecretRef :: V1LocalObjectReference
v1ScaleIOVolumeSourceReadOnly :: Maybe Bool
v1ScaleIOVolumeSourceProtectionDomain :: Maybe Text
v1ScaleIOVolumeSourceGateway :: Text
v1ScaleIOVolumeSourceFsType :: Maybe Text
v1ScaleIOVolumeSourceVolumeName :: V1ScaleIOVolumeSource -> Maybe Text
v1ScaleIOVolumeSourceSystem :: V1ScaleIOVolumeSource -> Text
v1ScaleIOVolumeSourceStoragePool :: V1ScaleIOVolumeSource -> Maybe Text
v1ScaleIOVolumeSourceStorageMode :: V1ScaleIOVolumeSource -> Maybe Text
v1ScaleIOVolumeSourceSslEnabled :: V1ScaleIOVolumeSource -> Maybe Bool
v1ScaleIOVolumeSourceSecretRef :: V1ScaleIOVolumeSource -> V1LocalObjectReference
v1ScaleIOVolumeSourceReadOnly :: V1ScaleIOVolumeSource -> Maybe Bool
v1ScaleIOVolumeSourceProtectionDomain :: V1ScaleIOVolumeSource -> Maybe Text
v1ScaleIOVolumeSourceGateway :: V1ScaleIOVolumeSource -> Text
v1ScaleIOVolumeSourceFsType :: V1ScaleIOVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ScaleIOVolumeSourceFsType
      , Text
"gateway" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ScaleIOVolumeSourceGateway
      , Text
"protectionDomain" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ScaleIOVolumeSourceProtectionDomain
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ScaleIOVolumeSourceReadOnly
      , Text
"secretRef" Text -> V1LocalObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1LocalObjectReference
v1ScaleIOVolumeSourceSecretRef
      , Text
"sslEnabled" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ScaleIOVolumeSourceSslEnabled
      , Text
"storageMode" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ScaleIOVolumeSourceStorageMode
      , Text
"storagePool" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ScaleIOVolumeSourceStoragePool
      , Text
"system" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ScaleIOVolumeSourceSystem
      , Text
"volumeName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ScaleIOVolumeSourceVolumeName
      ]


-- | Construct a value of type 'V1ScaleIOVolumeSource' (by applying it's required fields, if any)
mkV1ScaleIOVolumeSource
  :: Text -- ^ 'v1ScaleIOVolumeSourceGateway': The host address of the ScaleIO API Gateway.
  -> V1LocalObjectReference -- ^ 'v1ScaleIOVolumeSourceSecretRef' 
  -> Text -- ^ 'v1ScaleIOVolumeSourceSystem': The name of the storage system as configured in ScaleIO.
  -> V1ScaleIOVolumeSource
mkV1ScaleIOVolumeSource :: Text -> V1LocalObjectReference -> Text -> V1ScaleIOVolumeSource
mkV1ScaleIOVolumeSource Text
v1ScaleIOVolumeSourceGateway V1LocalObjectReference
v1ScaleIOVolumeSourceSecretRef Text
v1ScaleIOVolumeSourceSystem =
  V1ScaleIOVolumeSource :: Maybe Text
-> Text
-> Maybe Text
-> Maybe Bool
-> V1LocalObjectReference
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe Text
-> V1ScaleIOVolumeSource
V1ScaleIOVolumeSource
  { v1ScaleIOVolumeSourceFsType :: Maybe Text
v1ScaleIOVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1ScaleIOVolumeSourceGateway :: Text
v1ScaleIOVolumeSourceGateway :: Text
v1ScaleIOVolumeSourceGateway
  , v1ScaleIOVolumeSourceProtectionDomain :: Maybe Text
v1ScaleIOVolumeSourceProtectionDomain = Maybe Text
forall a. Maybe a
Nothing
  , v1ScaleIOVolumeSourceReadOnly :: Maybe Bool
v1ScaleIOVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , V1LocalObjectReference
v1ScaleIOVolumeSourceSecretRef :: V1LocalObjectReference
v1ScaleIOVolumeSourceSecretRef :: V1LocalObjectReference
v1ScaleIOVolumeSourceSecretRef
  , v1ScaleIOVolumeSourceSslEnabled :: Maybe Bool
v1ScaleIOVolumeSourceSslEnabled = Maybe Bool
forall a. Maybe a
Nothing
  , v1ScaleIOVolumeSourceStorageMode :: Maybe Text
v1ScaleIOVolumeSourceStorageMode = Maybe Text
forall a. Maybe a
Nothing
  , v1ScaleIOVolumeSourceStoragePool :: Maybe Text
v1ScaleIOVolumeSourceStoragePool = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1ScaleIOVolumeSourceSystem :: Text
v1ScaleIOVolumeSourceSystem :: Text
v1ScaleIOVolumeSourceSystem
  , v1ScaleIOVolumeSourceVolumeName :: Maybe Text
v1ScaleIOVolumeSourceVolumeName = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1ScaleSpec
-- | V1ScaleSpec
-- ScaleSpec describes the attributes of a scale subresource.
data V1ScaleSpec = V1ScaleSpec
  { V1ScaleSpec -> Maybe Int
v1ScaleSpecReplicas :: !(Maybe Int) -- ^ "replicas" - desired number of instances for the scaled object.
  } deriving (Int -> V1ScaleSpec -> ShowS
[V1ScaleSpec] -> ShowS
V1ScaleSpec -> String
(Int -> V1ScaleSpec -> ShowS)
-> (V1ScaleSpec -> String)
-> ([V1ScaleSpec] -> ShowS)
-> Show V1ScaleSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ScaleSpec] -> ShowS
$cshowList :: [V1ScaleSpec] -> ShowS
show :: V1ScaleSpec -> String
$cshow :: V1ScaleSpec -> String
showsPrec :: Int -> V1ScaleSpec -> ShowS
$cshowsPrec :: Int -> V1ScaleSpec -> ShowS
P.Show, V1ScaleSpec -> V1ScaleSpec -> Bool
(V1ScaleSpec -> V1ScaleSpec -> Bool)
-> (V1ScaleSpec -> V1ScaleSpec -> Bool) -> Eq V1ScaleSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ScaleSpec -> V1ScaleSpec -> Bool
$c/= :: V1ScaleSpec -> V1ScaleSpec -> Bool
== :: V1ScaleSpec -> V1ScaleSpec -> Bool
$c== :: V1ScaleSpec -> V1ScaleSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ScaleSpec
instance A.FromJSON V1ScaleSpec where
  parseJSON :: Value -> Parser V1ScaleSpec
parseJSON = String
-> (Object -> Parser V1ScaleSpec) -> Value -> Parser V1ScaleSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ScaleSpec" ((Object -> Parser V1ScaleSpec) -> Value -> Parser V1ScaleSpec)
-> (Object -> Parser V1ScaleSpec) -> Value -> Parser V1ScaleSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int -> V1ScaleSpec
V1ScaleSpec
      (Maybe Int -> V1ScaleSpec)
-> Parser (Maybe Int) -> Parser V1ScaleSpec
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")

-- | ToJSON V1ScaleSpec
instance A.ToJSON V1ScaleSpec where
  toJSON :: V1ScaleSpec -> Value
toJSON V1ScaleSpec {Maybe Int
v1ScaleSpecReplicas :: Maybe Int
v1ScaleSpecReplicas :: V1ScaleSpec -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ScaleSpecReplicas
      ]


-- | Construct a value of type 'V1ScaleSpec' (by applying it's required fields, if any)
mkV1ScaleSpec
  :: V1ScaleSpec
mkV1ScaleSpec :: V1ScaleSpec
mkV1ScaleSpec =
  V1ScaleSpec :: Maybe Int -> V1ScaleSpec
V1ScaleSpec
  { v1ScaleSpecReplicas :: Maybe Int
v1ScaleSpecReplicas = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1ScaleStatus
-- | V1ScaleStatus
-- ScaleStatus represents the current status of a scale subresource.
data V1ScaleStatus = V1ScaleStatus
  { V1ScaleStatus -> Int
v1ScaleStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - actual number of observed instances of the scaled object.
  , V1ScaleStatus -> Maybe Text
v1ScaleStatusSelector :: !(Maybe Text) -- ^ "selector" - label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors
  } deriving (Int -> V1ScaleStatus -> ShowS
[V1ScaleStatus] -> ShowS
V1ScaleStatus -> String
(Int -> V1ScaleStatus -> ShowS)
-> (V1ScaleStatus -> String)
-> ([V1ScaleStatus] -> ShowS)
-> Show V1ScaleStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ScaleStatus] -> ShowS
$cshowList :: [V1ScaleStatus] -> ShowS
show :: V1ScaleStatus -> String
$cshow :: V1ScaleStatus -> String
showsPrec :: Int -> V1ScaleStatus -> ShowS
$cshowsPrec :: Int -> V1ScaleStatus -> ShowS
P.Show, V1ScaleStatus -> V1ScaleStatus -> Bool
(V1ScaleStatus -> V1ScaleStatus -> Bool)
-> (V1ScaleStatus -> V1ScaleStatus -> Bool) -> Eq V1ScaleStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ScaleStatus -> V1ScaleStatus -> Bool
$c/= :: V1ScaleStatus -> V1ScaleStatus -> Bool
== :: V1ScaleStatus -> V1ScaleStatus -> Bool
$c== :: V1ScaleStatus -> V1ScaleStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ScaleStatus
instance A.FromJSON V1ScaleStatus where
  parseJSON :: Value -> Parser V1ScaleStatus
parseJSON = String
-> (Object -> Parser V1ScaleStatus)
-> Value
-> Parser V1ScaleStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ScaleStatus" ((Object -> Parser V1ScaleStatus) -> Value -> Parser V1ScaleStatus)
-> (Object -> Parser V1ScaleStatus)
-> Value
-> Parser V1ScaleStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Int -> Maybe Text -> V1ScaleStatus
V1ScaleStatus
      (Int -> Maybe Text -> V1ScaleStatus)
-> Parser Int -> Parser (Maybe Text -> V1ScaleStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"replicas")
      Parser (Maybe Text -> V1ScaleStatus)
-> Parser (Maybe Text) -> Parser V1ScaleStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")

-- | ToJSON V1ScaleStatus
instance A.ToJSON V1ScaleStatus where
  toJSON :: V1ScaleStatus -> Value
toJSON V1ScaleStatus {Int
Maybe Text
v1ScaleStatusSelector :: Maybe Text
v1ScaleStatusReplicas :: Int
v1ScaleStatusSelector :: V1ScaleStatus -> Maybe Text
v1ScaleStatusReplicas :: V1ScaleStatus -> Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"replicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1ScaleStatusReplicas
      , Text
"selector" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ScaleStatusSelector
      ]


-- | Construct a value of type 'V1ScaleStatus' (by applying it's required fields, if any)
mkV1ScaleStatus
  :: Int -- ^ 'v1ScaleStatusReplicas': actual number of observed instances of the scaled object.
  -> V1ScaleStatus
mkV1ScaleStatus :: Int -> V1ScaleStatus
mkV1ScaleStatus Int
v1ScaleStatusReplicas =
  V1ScaleStatus :: Int -> Maybe Text -> V1ScaleStatus
V1ScaleStatus
  { Int
v1ScaleStatusReplicas :: Int
v1ScaleStatusReplicas :: Int
v1ScaleStatusReplicas
  , v1ScaleStatusSelector :: Maybe Text
v1ScaleStatusSelector = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1ScopeSelector
-- | V1ScopeSelector
-- A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.
data V1ScopeSelector = V1ScopeSelector
  { V1ScopeSelector -> Maybe [V1ScopedResourceSelectorRequirement]
v1ScopeSelectorMatchExpressions :: !(Maybe [V1ScopedResourceSelectorRequirement]) -- ^ "matchExpressions" - A list of scope selector requirements by scope of the resources.
  } deriving (Int -> V1ScopeSelector -> ShowS
[V1ScopeSelector] -> ShowS
V1ScopeSelector -> String
(Int -> V1ScopeSelector -> ShowS)
-> (V1ScopeSelector -> String)
-> ([V1ScopeSelector] -> ShowS)
-> Show V1ScopeSelector
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ScopeSelector] -> ShowS
$cshowList :: [V1ScopeSelector] -> ShowS
show :: V1ScopeSelector -> String
$cshow :: V1ScopeSelector -> String
showsPrec :: Int -> V1ScopeSelector -> ShowS
$cshowsPrec :: Int -> V1ScopeSelector -> ShowS
P.Show, V1ScopeSelector -> V1ScopeSelector -> Bool
(V1ScopeSelector -> V1ScopeSelector -> Bool)
-> (V1ScopeSelector -> V1ScopeSelector -> Bool)
-> Eq V1ScopeSelector
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ScopeSelector -> V1ScopeSelector -> Bool
$c/= :: V1ScopeSelector -> V1ScopeSelector -> Bool
== :: V1ScopeSelector -> V1ScopeSelector -> Bool
$c== :: V1ScopeSelector -> V1ScopeSelector -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ScopeSelector
instance A.FromJSON V1ScopeSelector where
  parseJSON :: Value -> Parser V1ScopeSelector
parseJSON = String
-> (Object -> Parser V1ScopeSelector)
-> Value
-> Parser V1ScopeSelector
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ScopeSelector" ((Object -> Parser V1ScopeSelector)
 -> Value -> Parser V1ScopeSelector)
-> (Object -> Parser V1ScopeSelector)
-> Value
-> Parser V1ScopeSelector
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1ScopedResourceSelectorRequirement] -> V1ScopeSelector
V1ScopeSelector
      (Maybe [V1ScopedResourceSelectorRequirement] -> V1ScopeSelector)
-> Parser (Maybe [V1ScopedResourceSelectorRequirement])
-> Parser V1ScopeSelector
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object
-> Text -> Parser (Maybe [V1ScopedResourceSelectorRequirement])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"matchExpressions")

-- | ToJSON V1ScopeSelector
instance A.ToJSON V1ScopeSelector where
  toJSON :: V1ScopeSelector -> Value
toJSON V1ScopeSelector {Maybe [V1ScopedResourceSelectorRequirement]
v1ScopeSelectorMatchExpressions :: Maybe [V1ScopedResourceSelectorRequirement]
v1ScopeSelectorMatchExpressions :: V1ScopeSelector -> Maybe [V1ScopedResourceSelectorRequirement]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"matchExpressions" Text
-> Maybe [V1ScopedResourceSelectorRequirement] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ScopedResourceSelectorRequirement]
v1ScopeSelectorMatchExpressions
      ]


-- | Construct a value of type 'V1ScopeSelector' (by applying it's required fields, if any)
mkV1ScopeSelector
  :: V1ScopeSelector
mkV1ScopeSelector :: V1ScopeSelector
mkV1ScopeSelector =
  V1ScopeSelector :: Maybe [V1ScopedResourceSelectorRequirement] -> V1ScopeSelector
V1ScopeSelector
  { v1ScopeSelectorMatchExpressions :: Maybe [V1ScopedResourceSelectorRequirement]
v1ScopeSelectorMatchExpressions = Maybe [V1ScopedResourceSelectorRequirement]
forall a. Maybe a
Nothing
  }

-- ** V1ScopedResourceSelectorRequirement
-- | V1ScopedResourceSelectorRequirement
-- A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.
data V1ScopedResourceSelectorRequirement = V1ScopedResourceSelectorRequirement
  { V1ScopedResourceSelectorRequirement -> Text
v1ScopedResourceSelectorRequirementOperator :: !(Text) -- ^ /Required/ "operator" - Represents a scope&#39;s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.
  , V1ScopedResourceSelectorRequirement -> Text
v1ScopedResourceSelectorRequirementScopeName :: !(Text) -- ^ /Required/ "scopeName" - The name of the scope that the selector applies to.
  , V1ScopedResourceSelectorRequirement -> Maybe [Text]
v1ScopedResourceSelectorRequirementValues :: !(Maybe [Text]) -- ^ "values" - An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  } deriving (Int -> V1ScopedResourceSelectorRequirement -> ShowS
[V1ScopedResourceSelectorRequirement] -> ShowS
V1ScopedResourceSelectorRequirement -> String
(Int -> V1ScopedResourceSelectorRequirement -> ShowS)
-> (V1ScopedResourceSelectorRequirement -> String)
-> ([V1ScopedResourceSelectorRequirement] -> ShowS)
-> Show V1ScopedResourceSelectorRequirement
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ScopedResourceSelectorRequirement] -> ShowS
$cshowList :: [V1ScopedResourceSelectorRequirement] -> ShowS
show :: V1ScopedResourceSelectorRequirement -> String
$cshow :: V1ScopedResourceSelectorRequirement -> String
showsPrec :: Int -> V1ScopedResourceSelectorRequirement -> ShowS
$cshowsPrec :: Int -> V1ScopedResourceSelectorRequirement -> ShowS
P.Show, V1ScopedResourceSelectorRequirement
-> V1ScopedResourceSelectorRequirement -> Bool
(V1ScopedResourceSelectorRequirement
 -> V1ScopedResourceSelectorRequirement -> Bool)
-> (V1ScopedResourceSelectorRequirement
    -> V1ScopedResourceSelectorRequirement -> Bool)
-> Eq V1ScopedResourceSelectorRequirement
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ScopedResourceSelectorRequirement
-> V1ScopedResourceSelectorRequirement -> Bool
$c/= :: V1ScopedResourceSelectorRequirement
-> V1ScopedResourceSelectorRequirement -> Bool
== :: V1ScopedResourceSelectorRequirement
-> V1ScopedResourceSelectorRequirement -> Bool
$c== :: V1ScopedResourceSelectorRequirement
-> V1ScopedResourceSelectorRequirement -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ScopedResourceSelectorRequirement
instance A.FromJSON V1ScopedResourceSelectorRequirement where
  parseJSON :: Value -> Parser V1ScopedResourceSelectorRequirement
parseJSON = String
-> (Object -> Parser V1ScopedResourceSelectorRequirement)
-> Value
-> Parser V1ScopedResourceSelectorRequirement
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ScopedResourceSelectorRequirement" ((Object -> Parser V1ScopedResourceSelectorRequirement)
 -> Value -> Parser V1ScopedResourceSelectorRequirement)
-> (Object -> Parser V1ScopedResourceSelectorRequirement)
-> Value
-> Parser V1ScopedResourceSelectorRequirement
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> Maybe [Text] -> V1ScopedResourceSelectorRequirement
V1ScopedResourceSelectorRequirement
      (Text
 -> Text -> Maybe [Text] -> V1ScopedResourceSelectorRequirement)
-> Parser Text
-> Parser
     (Text -> Maybe [Text] -> V1ScopedResourceSelectorRequirement)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"operator")
      Parser
  (Text -> Maybe [Text] -> V1ScopedResourceSelectorRequirement)
-> Parser Text
-> Parser (Maybe [Text] -> V1ScopedResourceSelectorRequirement)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"scopeName")
      Parser (Maybe [Text] -> V1ScopedResourceSelectorRequirement)
-> Parser (Maybe [Text])
-> Parser V1ScopedResourceSelectorRequirement
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"values")

-- | ToJSON V1ScopedResourceSelectorRequirement
instance A.ToJSON V1ScopedResourceSelectorRequirement where
  toJSON :: V1ScopedResourceSelectorRequirement -> Value
toJSON V1ScopedResourceSelectorRequirement {Maybe [Text]
Text
v1ScopedResourceSelectorRequirementValues :: Maybe [Text]
v1ScopedResourceSelectorRequirementScopeName :: Text
v1ScopedResourceSelectorRequirementOperator :: Text
v1ScopedResourceSelectorRequirementValues :: V1ScopedResourceSelectorRequirement -> Maybe [Text]
v1ScopedResourceSelectorRequirementScopeName :: V1ScopedResourceSelectorRequirement -> Text
v1ScopedResourceSelectorRequirementOperator :: V1ScopedResourceSelectorRequirement -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"operator" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ScopedResourceSelectorRequirementOperator
      , Text
"scopeName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ScopedResourceSelectorRequirementScopeName
      , Text
"values" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1ScopedResourceSelectorRequirementValues
      ]


-- | Construct a value of type 'V1ScopedResourceSelectorRequirement' (by applying it's required fields, if any)
mkV1ScopedResourceSelectorRequirement
  :: Text -- ^ 'v1ScopedResourceSelectorRequirementOperator': Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.
  -> Text -- ^ 'v1ScopedResourceSelectorRequirementScopeName': The name of the scope that the selector applies to.
  -> V1ScopedResourceSelectorRequirement
mkV1ScopedResourceSelectorRequirement :: Text -> Text -> V1ScopedResourceSelectorRequirement
mkV1ScopedResourceSelectorRequirement Text
v1ScopedResourceSelectorRequirementOperator Text
v1ScopedResourceSelectorRequirementScopeName =
  V1ScopedResourceSelectorRequirement :: Text -> Text -> Maybe [Text] -> V1ScopedResourceSelectorRequirement
V1ScopedResourceSelectorRequirement
  { Text
v1ScopedResourceSelectorRequirementOperator :: Text
v1ScopedResourceSelectorRequirementOperator :: Text
v1ScopedResourceSelectorRequirementOperator
  , Text
v1ScopedResourceSelectorRequirementScopeName :: Text
v1ScopedResourceSelectorRequirementScopeName :: Text
v1ScopedResourceSelectorRequirementScopeName
  , v1ScopedResourceSelectorRequirementValues :: Maybe [Text]
v1ScopedResourceSelectorRequirementValues = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1Secret
-- | V1Secret
-- Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.
data V1Secret = V1Secret
  { V1Secret -> Maybe Text
v1SecretApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1Secret -> Maybe (Map String ByteArray)
v1SecretData :: !(Maybe (Map.Map String ByteArray)) -- ^ "data" - Data contains the secret data. Each key must consist of alphanumeric characters, &#39;-&#39;, &#39;_&#39; or &#39;.&#39;. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
  , V1Secret -> Maybe Text
v1SecretKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1Secret -> Maybe V1ObjectMeta
v1SecretMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1Secret -> Maybe (Map String Text)
v1SecretStringData :: !(Maybe (Map.Map String Text)) -- ^ "stringData" - stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API.
  , V1Secret -> Maybe Text
v1SecretType :: !(Maybe Text) -- ^ "type" - Used to facilitate programmatic handling of secret data.
  } deriving (Int -> V1Secret -> ShowS
[V1Secret] -> ShowS
V1Secret -> String
(Int -> V1Secret -> ShowS)
-> (V1Secret -> String) -> ([V1Secret] -> ShowS) -> Show V1Secret
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Secret] -> ShowS
$cshowList :: [V1Secret] -> ShowS
show :: V1Secret -> String
$cshow :: V1Secret -> String
showsPrec :: Int -> V1Secret -> ShowS
$cshowsPrec :: Int -> V1Secret -> ShowS
P.Show, V1Secret -> V1Secret -> Bool
(V1Secret -> V1Secret -> Bool)
-> (V1Secret -> V1Secret -> Bool) -> Eq V1Secret
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Secret -> V1Secret -> Bool
$c/= :: V1Secret -> V1Secret -> Bool
== :: V1Secret -> V1Secret -> Bool
$c== :: V1Secret -> V1Secret -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Secret
instance A.FromJSON V1Secret where
  parseJSON :: Value -> Parser V1Secret
parseJSON = String -> (Object -> Parser V1Secret) -> Value -> Parser V1Secret
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Secret" ((Object -> Parser V1Secret) -> Value -> Parser V1Secret)
-> (Object -> Parser V1Secret) -> Value -> Parser V1Secret
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe (Map String ByteArray)
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe (Map String Text)
-> Maybe Text
-> V1Secret
V1Secret
      (Maybe Text
 -> Maybe (Map String ByteArray)
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe (Map String Text)
 -> Maybe Text
 -> V1Secret)
-> Parser (Maybe Text)
-> Parser
     (Maybe (Map String ByteArray)
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe (Map String Text)
      -> Maybe Text
      -> V1Secret)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe (Map String ByteArray)
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe (Map String Text)
   -> Maybe Text
   -> V1Secret)
-> Parser (Maybe (Map String ByteArray))
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe (Map String Text)
      -> Maybe Text
      -> V1Secret)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String ByteArray))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"data")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe (Map String Text)
   -> Maybe Text
   -> V1Secret)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe (Map String Text) -> Maybe Text -> V1Secret)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe (Map String Text) -> Maybe Text -> V1Secret)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe (Map String Text) -> Maybe Text -> V1Secret)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe (Map String Text) -> Maybe Text -> V1Secret)
-> Parser (Maybe (Map String Text))
-> Parser (Maybe Text -> V1Secret)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"stringData")
      Parser (Maybe Text -> V1Secret)
-> Parser (Maybe Text) -> Parser V1Secret
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")

-- | ToJSON V1Secret
instance A.ToJSON V1Secret where
  toJSON :: V1Secret -> Value
toJSON V1Secret {Maybe Text
Maybe (Map String Text)
Maybe (Map String ByteArray)
Maybe V1ObjectMeta
v1SecretType :: Maybe Text
v1SecretStringData :: Maybe (Map String Text)
v1SecretMetadata :: Maybe V1ObjectMeta
v1SecretKind :: Maybe Text
v1SecretData :: Maybe (Map String ByteArray)
v1SecretApiVersion :: Maybe Text
v1SecretType :: V1Secret -> Maybe Text
v1SecretStringData :: V1Secret -> Maybe (Map String Text)
v1SecretMetadata :: V1Secret -> Maybe V1ObjectMeta
v1SecretKind :: V1Secret -> Maybe Text
v1SecretData :: V1Secret -> Maybe (Map String ByteArray)
v1SecretApiVersion :: V1Secret -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SecretApiVersion
      , Text
"data" Text -> Maybe (Map String ByteArray) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String ByteArray)
v1SecretData
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SecretKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1SecretMetadata
      , Text
"stringData" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1SecretStringData
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SecretType
      ]


-- | Construct a value of type 'V1Secret' (by applying it's required fields, if any)
mkV1Secret
  :: V1Secret
mkV1Secret :: V1Secret
mkV1Secret =
  V1Secret :: Maybe Text
-> Maybe (Map String ByteArray)
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe (Map String Text)
-> Maybe Text
-> V1Secret
V1Secret
  { v1SecretApiVersion :: Maybe Text
v1SecretApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1SecretData :: Maybe (Map String ByteArray)
v1SecretData = Maybe (Map String ByteArray)
forall a. Maybe a
Nothing
  , v1SecretKind :: Maybe Text
v1SecretKind = Maybe Text
forall a. Maybe a
Nothing
  , v1SecretMetadata :: Maybe V1ObjectMeta
v1SecretMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1SecretStringData :: Maybe (Map String Text)
v1SecretStringData = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , v1SecretType :: Maybe Text
v1SecretType = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1SecretEnvSource
-- | V1SecretEnvSource
-- SecretEnvSource selects a Secret to populate the environment variables with.  The contents of the target Secret's Data field will represent the key-value pairs as environment variables.
data V1SecretEnvSource = V1SecretEnvSource
  { V1SecretEnvSource -> Maybe Text
v1SecretEnvSourceName :: !(Maybe Text) -- ^ "name" - Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  , V1SecretEnvSource -> Maybe Bool
v1SecretEnvSourceOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the Secret must be defined
  } deriving (Int -> V1SecretEnvSource -> ShowS
[V1SecretEnvSource] -> ShowS
V1SecretEnvSource -> String
(Int -> V1SecretEnvSource -> ShowS)
-> (V1SecretEnvSource -> String)
-> ([V1SecretEnvSource] -> ShowS)
-> Show V1SecretEnvSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SecretEnvSource] -> ShowS
$cshowList :: [V1SecretEnvSource] -> ShowS
show :: V1SecretEnvSource -> String
$cshow :: V1SecretEnvSource -> String
showsPrec :: Int -> V1SecretEnvSource -> ShowS
$cshowsPrec :: Int -> V1SecretEnvSource -> ShowS
P.Show, V1SecretEnvSource -> V1SecretEnvSource -> Bool
(V1SecretEnvSource -> V1SecretEnvSource -> Bool)
-> (V1SecretEnvSource -> V1SecretEnvSource -> Bool)
-> Eq V1SecretEnvSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SecretEnvSource -> V1SecretEnvSource -> Bool
$c/= :: V1SecretEnvSource -> V1SecretEnvSource -> Bool
== :: V1SecretEnvSource -> V1SecretEnvSource -> Bool
$c== :: V1SecretEnvSource -> V1SecretEnvSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SecretEnvSource
instance A.FromJSON V1SecretEnvSource where
  parseJSON :: Value -> Parser V1SecretEnvSource
parseJSON = String
-> (Object -> Parser V1SecretEnvSource)
-> Value
-> Parser V1SecretEnvSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SecretEnvSource" ((Object -> Parser V1SecretEnvSource)
 -> Value -> Parser V1SecretEnvSource)
-> (Object -> Parser V1SecretEnvSource)
-> Value
-> Parser V1SecretEnvSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Bool -> V1SecretEnvSource
V1SecretEnvSource
      (Maybe Text -> Maybe Bool -> V1SecretEnvSource)
-> Parser (Maybe Text) -> Parser (Maybe Bool -> V1SecretEnvSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser (Maybe Bool -> V1SecretEnvSource)
-> Parser (Maybe Bool) -> Parser V1SecretEnvSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"optional")

-- | ToJSON V1SecretEnvSource
instance A.ToJSON V1SecretEnvSource where
  toJSON :: V1SecretEnvSource -> Value
toJSON V1SecretEnvSource {Maybe Bool
Maybe Text
v1SecretEnvSourceOptional :: Maybe Bool
v1SecretEnvSourceName :: Maybe Text
v1SecretEnvSourceOptional :: V1SecretEnvSource -> Maybe Bool
v1SecretEnvSourceName :: V1SecretEnvSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SecretEnvSourceName
      , Text
"optional" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1SecretEnvSourceOptional
      ]


-- | Construct a value of type 'V1SecretEnvSource' (by applying it's required fields, if any)
mkV1SecretEnvSource
  :: V1SecretEnvSource
mkV1SecretEnvSource :: V1SecretEnvSource
mkV1SecretEnvSource =
  V1SecretEnvSource :: Maybe Text -> Maybe Bool -> V1SecretEnvSource
V1SecretEnvSource
  { v1SecretEnvSourceName :: Maybe Text
v1SecretEnvSourceName = Maybe Text
forall a. Maybe a
Nothing
  , v1SecretEnvSourceOptional :: Maybe Bool
v1SecretEnvSourceOptional = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1SecretKeySelector
-- | V1SecretKeySelector
-- SecretKeySelector selects a key of a Secret.
data V1SecretKeySelector = V1SecretKeySelector
  { V1SecretKeySelector -> Text
v1SecretKeySelectorKey :: !(Text) -- ^ /Required/ "key" - The key of the secret to select from.  Must be a valid secret key.
  , V1SecretKeySelector -> Maybe Text
v1SecretKeySelectorName :: !(Maybe Text) -- ^ "name" - Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  , V1SecretKeySelector -> Maybe Bool
v1SecretKeySelectorOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the Secret or its key must be defined
  } deriving (Int -> V1SecretKeySelector -> ShowS
[V1SecretKeySelector] -> ShowS
V1SecretKeySelector -> String
(Int -> V1SecretKeySelector -> ShowS)
-> (V1SecretKeySelector -> String)
-> ([V1SecretKeySelector] -> ShowS)
-> Show V1SecretKeySelector
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SecretKeySelector] -> ShowS
$cshowList :: [V1SecretKeySelector] -> ShowS
show :: V1SecretKeySelector -> String
$cshow :: V1SecretKeySelector -> String
showsPrec :: Int -> V1SecretKeySelector -> ShowS
$cshowsPrec :: Int -> V1SecretKeySelector -> ShowS
P.Show, V1SecretKeySelector -> V1SecretKeySelector -> Bool
(V1SecretKeySelector -> V1SecretKeySelector -> Bool)
-> (V1SecretKeySelector -> V1SecretKeySelector -> Bool)
-> Eq V1SecretKeySelector
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SecretKeySelector -> V1SecretKeySelector -> Bool
$c/= :: V1SecretKeySelector -> V1SecretKeySelector -> Bool
== :: V1SecretKeySelector -> V1SecretKeySelector -> Bool
$c== :: V1SecretKeySelector -> V1SecretKeySelector -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SecretKeySelector
instance A.FromJSON V1SecretKeySelector where
  parseJSON :: Value -> Parser V1SecretKeySelector
parseJSON = String
-> (Object -> Parser V1SecretKeySelector)
-> Value
-> Parser V1SecretKeySelector
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SecretKeySelector" ((Object -> Parser V1SecretKeySelector)
 -> Value -> Parser V1SecretKeySelector)
-> (Object -> Parser V1SecretKeySelector)
-> Value
-> Parser V1SecretKeySelector
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Maybe Text -> Maybe Bool -> V1SecretKeySelector
V1SecretKeySelector
      (Text -> Maybe Text -> Maybe Bool -> V1SecretKeySelector)
-> Parser Text
-> Parser (Maybe Text -> Maybe Bool -> V1SecretKeySelector)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"key")
      Parser (Maybe Text -> Maybe Bool -> V1SecretKeySelector)
-> Parser (Maybe Text)
-> Parser (Maybe Bool -> V1SecretKeySelector)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser (Maybe Bool -> V1SecretKeySelector)
-> Parser (Maybe Bool) -> Parser V1SecretKeySelector
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"optional")

-- | ToJSON V1SecretKeySelector
instance A.ToJSON V1SecretKeySelector where
  toJSON :: V1SecretKeySelector -> Value
toJSON V1SecretKeySelector {Maybe Bool
Maybe Text
Text
v1SecretKeySelectorOptional :: Maybe Bool
v1SecretKeySelectorName :: Maybe Text
v1SecretKeySelectorKey :: Text
v1SecretKeySelectorOptional :: V1SecretKeySelector -> Maybe Bool
v1SecretKeySelectorName :: V1SecretKeySelector -> Maybe Text
v1SecretKeySelectorKey :: V1SecretKeySelector -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"key" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1SecretKeySelectorKey
      , Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SecretKeySelectorName
      , Text
"optional" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1SecretKeySelectorOptional
      ]


-- | Construct a value of type 'V1SecretKeySelector' (by applying it's required fields, if any)
mkV1SecretKeySelector
  :: Text -- ^ 'v1SecretKeySelectorKey': The key of the secret to select from.  Must be a valid secret key.
  -> V1SecretKeySelector
mkV1SecretKeySelector :: Text -> V1SecretKeySelector
mkV1SecretKeySelector Text
v1SecretKeySelectorKey =
  V1SecretKeySelector :: Text -> Maybe Text -> Maybe Bool -> V1SecretKeySelector
V1SecretKeySelector
  { Text
v1SecretKeySelectorKey :: Text
v1SecretKeySelectorKey :: Text
v1SecretKeySelectorKey
  , v1SecretKeySelectorName :: Maybe Text
v1SecretKeySelectorName = Maybe Text
forall a. Maybe a
Nothing
  , v1SecretKeySelectorOptional :: Maybe Bool
v1SecretKeySelectorOptional = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1SecretList
-- | V1SecretList
-- SecretList is a list of Secret.
data V1SecretList = V1SecretList
  { V1SecretList -> Maybe Text
v1SecretListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1SecretList -> [V1Secret]
v1SecretListItems :: !([V1Secret]) -- ^ /Required/ "items" - Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret
  , V1SecretList -> Maybe Text
v1SecretListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1SecretList -> Maybe V1ListMeta
v1SecretListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1SecretList -> ShowS
[V1SecretList] -> ShowS
V1SecretList -> String
(Int -> V1SecretList -> ShowS)
-> (V1SecretList -> String)
-> ([V1SecretList] -> ShowS)
-> Show V1SecretList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SecretList] -> ShowS
$cshowList :: [V1SecretList] -> ShowS
show :: V1SecretList -> String
$cshow :: V1SecretList -> String
showsPrec :: Int -> V1SecretList -> ShowS
$cshowsPrec :: Int -> V1SecretList -> ShowS
P.Show, V1SecretList -> V1SecretList -> Bool
(V1SecretList -> V1SecretList -> Bool)
-> (V1SecretList -> V1SecretList -> Bool) -> Eq V1SecretList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SecretList -> V1SecretList -> Bool
$c/= :: V1SecretList -> V1SecretList -> Bool
== :: V1SecretList -> V1SecretList -> Bool
$c== :: V1SecretList -> V1SecretList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SecretList
instance A.FromJSON V1SecretList where
  parseJSON :: Value -> Parser V1SecretList
parseJSON = String
-> (Object -> Parser V1SecretList) -> Value -> Parser V1SecretList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SecretList" ((Object -> Parser V1SecretList) -> Value -> Parser V1SecretList)
-> (Object -> Parser V1SecretList) -> Value -> Parser V1SecretList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1Secret] -> Maybe Text -> Maybe V1ListMeta -> V1SecretList
V1SecretList
      (Maybe Text
 -> [V1Secret] -> Maybe Text -> Maybe V1ListMeta -> V1SecretList)
-> Parser (Maybe Text)
-> Parser
     ([V1Secret] -> Maybe Text -> Maybe V1ListMeta -> V1SecretList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1Secret] -> Maybe Text -> Maybe V1ListMeta -> V1SecretList)
-> Parser [V1Secret]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1SecretList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1Secret]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1SecretList)
-> Parser (Maybe Text) -> Parser (Maybe V1ListMeta -> V1SecretList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1SecretList)
-> Parser (Maybe V1ListMeta) -> Parser V1SecretList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1SecretList
instance A.ToJSON V1SecretList where
  toJSON :: V1SecretList -> Value
toJSON V1SecretList {[V1Secret]
Maybe Text
Maybe V1ListMeta
v1SecretListMetadata :: Maybe V1ListMeta
v1SecretListKind :: Maybe Text
v1SecretListItems :: [V1Secret]
v1SecretListApiVersion :: Maybe Text
v1SecretListMetadata :: V1SecretList -> Maybe V1ListMeta
v1SecretListKind :: V1SecretList -> Maybe Text
v1SecretListItems :: V1SecretList -> [V1Secret]
v1SecretListApiVersion :: V1SecretList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SecretListApiVersion
      , Text
"items" Text -> [V1Secret] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1Secret]
v1SecretListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SecretListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1SecretListMetadata
      ]


-- | Construct a value of type 'V1SecretList' (by applying it's required fields, if any)
mkV1SecretList
  :: [V1Secret] -- ^ 'v1SecretListItems': Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret
  -> V1SecretList
mkV1SecretList :: [V1Secret] -> V1SecretList
mkV1SecretList [V1Secret]
v1SecretListItems =
  V1SecretList :: Maybe Text
-> [V1Secret] -> Maybe Text -> Maybe V1ListMeta -> V1SecretList
V1SecretList
  { v1SecretListApiVersion :: Maybe Text
v1SecretListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1Secret]
v1SecretListItems :: [V1Secret]
v1SecretListItems :: [V1Secret]
v1SecretListItems
  , v1SecretListKind :: Maybe Text
v1SecretListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1SecretListMetadata :: Maybe V1ListMeta
v1SecretListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1SecretProjection
-- | V1SecretProjection
-- Adapts a secret into a projected volume.  The contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.
data V1SecretProjection = V1SecretProjection
  { V1SecretProjection -> Maybe [V1KeyToPath]
v1SecretProjectionItems :: !(Maybe [V1KeyToPath]) -- ^ "items" - If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the &#39;..&#39; path or start with &#39;..&#39;.
  , V1SecretProjection -> Maybe Text
v1SecretProjectionName :: !(Maybe Text) -- ^ "name" - Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  , V1SecretProjection -> Maybe Bool
v1SecretProjectionOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the Secret or its key must be defined
  } deriving (Int -> V1SecretProjection -> ShowS
[V1SecretProjection] -> ShowS
V1SecretProjection -> String
(Int -> V1SecretProjection -> ShowS)
-> (V1SecretProjection -> String)
-> ([V1SecretProjection] -> ShowS)
-> Show V1SecretProjection
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SecretProjection] -> ShowS
$cshowList :: [V1SecretProjection] -> ShowS
show :: V1SecretProjection -> String
$cshow :: V1SecretProjection -> String
showsPrec :: Int -> V1SecretProjection -> ShowS
$cshowsPrec :: Int -> V1SecretProjection -> ShowS
P.Show, V1SecretProjection -> V1SecretProjection -> Bool
(V1SecretProjection -> V1SecretProjection -> Bool)
-> (V1SecretProjection -> V1SecretProjection -> Bool)
-> Eq V1SecretProjection
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SecretProjection -> V1SecretProjection -> Bool
$c/= :: V1SecretProjection -> V1SecretProjection -> Bool
== :: V1SecretProjection -> V1SecretProjection -> Bool
$c== :: V1SecretProjection -> V1SecretProjection -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SecretProjection
instance A.FromJSON V1SecretProjection where
  parseJSON :: Value -> Parser V1SecretProjection
parseJSON = String
-> (Object -> Parser V1SecretProjection)
-> Value
-> Parser V1SecretProjection
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SecretProjection" ((Object -> Parser V1SecretProjection)
 -> Value -> Parser V1SecretProjection)
-> (Object -> Parser V1SecretProjection)
-> Value
-> Parser V1SecretProjection
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1KeyToPath]
-> Maybe Text -> Maybe Bool -> V1SecretProjection
V1SecretProjection
      (Maybe [V1KeyToPath]
 -> Maybe Text -> Maybe Bool -> V1SecretProjection)
-> Parser (Maybe [V1KeyToPath])
-> Parser (Maybe Text -> Maybe Bool -> V1SecretProjection)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1KeyToPath])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"items")
      Parser (Maybe Text -> Maybe Bool -> V1SecretProjection)
-> Parser (Maybe Text) -> Parser (Maybe Bool -> V1SecretProjection)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser (Maybe Bool -> V1SecretProjection)
-> Parser (Maybe Bool) -> Parser V1SecretProjection
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"optional")

-- | ToJSON V1SecretProjection
instance A.ToJSON V1SecretProjection where
  toJSON :: V1SecretProjection -> Value
toJSON V1SecretProjection {Maybe Bool
Maybe [V1KeyToPath]
Maybe Text
v1SecretProjectionOptional :: Maybe Bool
v1SecretProjectionName :: Maybe Text
v1SecretProjectionItems :: Maybe [V1KeyToPath]
v1SecretProjectionOptional :: V1SecretProjection -> Maybe Bool
v1SecretProjectionName :: V1SecretProjection -> Maybe Text
v1SecretProjectionItems :: V1SecretProjection -> Maybe [V1KeyToPath]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"items" Text -> Maybe [V1KeyToPath] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1KeyToPath]
v1SecretProjectionItems
      , Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SecretProjectionName
      , Text
"optional" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1SecretProjectionOptional
      ]


-- | Construct a value of type 'V1SecretProjection' (by applying it's required fields, if any)
mkV1SecretProjection
  :: V1SecretProjection
mkV1SecretProjection :: V1SecretProjection
mkV1SecretProjection =
  V1SecretProjection :: Maybe [V1KeyToPath]
-> Maybe Text -> Maybe Bool -> V1SecretProjection
V1SecretProjection
  { v1SecretProjectionItems :: Maybe [V1KeyToPath]
v1SecretProjectionItems = Maybe [V1KeyToPath]
forall a. Maybe a
Nothing
  , v1SecretProjectionName :: Maybe Text
v1SecretProjectionName = Maybe Text
forall a. Maybe a
Nothing
  , v1SecretProjectionOptional :: Maybe Bool
v1SecretProjectionOptional = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1SecretReference
-- | V1SecretReference
-- SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace
data V1SecretReference = V1SecretReference
  { V1SecretReference -> Maybe Text
v1SecretReferenceName :: !(Maybe Text) -- ^ "name" - Name is unique within a namespace to reference a secret resource.
  , V1SecretReference -> Maybe Text
v1SecretReferenceNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace defines the space within which the secret name must be unique.
  } deriving (Int -> V1SecretReference -> ShowS
[V1SecretReference] -> ShowS
V1SecretReference -> String
(Int -> V1SecretReference -> ShowS)
-> (V1SecretReference -> String)
-> ([V1SecretReference] -> ShowS)
-> Show V1SecretReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SecretReference] -> ShowS
$cshowList :: [V1SecretReference] -> ShowS
show :: V1SecretReference -> String
$cshow :: V1SecretReference -> String
showsPrec :: Int -> V1SecretReference -> ShowS
$cshowsPrec :: Int -> V1SecretReference -> ShowS
P.Show, V1SecretReference -> V1SecretReference -> Bool
(V1SecretReference -> V1SecretReference -> Bool)
-> (V1SecretReference -> V1SecretReference -> Bool)
-> Eq V1SecretReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SecretReference -> V1SecretReference -> Bool
$c/= :: V1SecretReference -> V1SecretReference -> Bool
== :: V1SecretReference -> V1SecretReference -> Bool
$c== :: V1SecretReference -> V1SecretReference -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SecretReference
instance A.FromJSON V1SecretReference where
  parseJSON :: Value -> Parser V1SecretReference
parseJSON = String
-> (Object -> Parser V1SecretReference)
-> Value
-> Parser V1SecretReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SecretReference" ((Object -> Parser V1SecretReference)
 -> Value -> Parser V1SecretReference)
-> (Object -> Parser V1SecretReference)
-> Value
-> Parser V1SecretReference
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Text -> V1SecretReference
V1SecretReference
      (Maybe Text -> Maybe Text -> V1SecretReference)
-> Parser (Maybe Text) -> Parser (Maybe Text -> V1SecretReference)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser (Maybe Text -> V1SecretReference)
-> Parser (Maybe Text) -> Parser V1SecretReference
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespace")

-- | ToJSON V1SecretReference
instance A.ToJSON V1SecretReference where
  toJSON :: V1SecretReference -> Value
toJSON V1SecretReference {Maybe Text
v1SecretReferenceNamespace :: Maybe Text
v1SecretReferenceName :: Maybe Text
v1SecretReferenceNamespace :: V1SecretReference -> Maybe Text
v1SecretReferenceName :: V1SecretReference -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SecretReferenceName
      , Text
"namespace" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SecretReferenceNamespace
      ]


-- | Construct a value of type 'V1SecretReference' (by applying it's required fields, if any)
mkV1SecretReference
  :: V1SecretReference
mkV1SecretReference :: V1SecretReference
mkV1SecretReference =
  V1SecretReference :: Maybe Text -> Maybe Text -> V1SecretReference
V1SecretReference
  { v1SecretReferenceName :: Maybe Text
v1SecretReferenceName = Maybe Text
forall a. Maybe a
Nothing
  , v1SecretReferenceNamespace :: Maybe Text
v1SecretReferenceNamespace = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1SecretVolumeSource
-- | V1SecretVolumeSource
-- Adapts a Secret into a volume.  The contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.
data V1SecretVolumeSource = V1SecretVolumeSource
  { V1SecretVolumeSource -> Maybe Int
v1SecretVolumeSourceDefaultMode :: !(Maybe Int) -- ^ "defaultMode" - Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
  , V1SecretVolumeSource -> Maybe [V1KeyToPath]
v1SecretVolumeSourceItems :: !(Maybe [V1KeyToPath]) -- ^ "items" - If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the &#39;..&#39; path or start with &#39;..&#39;.
  , V1SecretVolumeSource -> Maybe Bool
v1SecretVolumeSourceOptional :: !(Maybe Bool) -- ^ "optional" - Specify whether the Secret or its keys must be defined
  , V1SecretVolumeSource -> Maybe Text
v1SecretVolumeSourceSecretName :: !(Maybe Text) -- ^ "secretName" - Name of the secret in the pod&#39;s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
  } deriving (Int -> V1SecretVolumeSource -> ShowS
[V1SecretVolumeSource] -> ShowS
V1SecretVolumeSource -> String
(Int -> V1SecretVolumeSource -> ShowS)
-> (V1SecretVolumeSource -> String)
-> ([V1SecretVolumeSource] -> ShowS)
-> Show V1SecretVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SecretVolumeSource] -> ShowS
$cshowList :: [V1SecretVolumeSource] -> ShowS
show :: V1SecretVolumeSource -> String
$cshow :: V1SecretVolumeSource -> String
showsPrec :: Int -> V1SecretVolumeSource -> ShowS
$cshowsPrec :: Int -> V1SecretVolumeSource -> ShowS
P.Show, V1SecretVolumeSource -> V1SecretVolumeSource -> Bool
(V1SecretVolumeSource -> V1SecretVolumeSource -> Bool)
-> (V1SecretVolumeSource -> V1SecretVolumeSource -> Bool)
-> Eq V1SecretVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SecretVolumeSource -> V1SecretVolumeSource -> Bool
$c/= :: V1SecretVolumeSource -> V1SecretVolumeSource -> Bool
== :: V1SecretVolumeSource -> V1SecretVolumeSource -> Bool
$c== :: V1SecretVolumeSource -> V1SecretVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SecretVolumeSource
instance A.FromJSON V1SecretVolumeSource where
  parseJSON :: Value -> Parser V1SecretVolumeSource
parseJSON = String
-> (Object -> Parser V1SecretVolumeSource)
-> Value
-> Parser V1SecretVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SecretVolumeSource" ((Object -> Parser V1SecretVolumeSource)
 -> Value -> Parser V1SecretVolumeSource)
-> (Object -> Parser V1SecretVolumeSource)
-> Value
-> Parser V1SecretVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe [V1KeyToPath]
-> Maybe Bool
-> Maybe Text
-> V1SecretVolumeSource
V1SecretVolumeSource
      (Maybe Int
 -> Maybe [V1KeyToPath]
 -> Maybe Bool
 -> Maybe Text
 -> V1SecretVolumeSource)
-> Parser (Maybe Int)
-> Parser
     (Maybe [V1KeyToPath]
      -> Maybe Bool -> Maybe Text -> V1SecretVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"defaultMode")
      Parser
  (Maybe [V1KeyToPath]
   -> Maybe Bool -> Maybe Text -> V1SecretVolumeSource)
-> Parser (Maybe [V1KeyToPath])
-> Parser (Maybe Bool -> Maybe Text -> V1SecretVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1KeyToPath])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"items")
      Parser (Maybe Bool -> Maybe Text -> V1SecretVolumeSource)
-> Parser (Maybe Bool)
-> Parser (Maybe Text -> V1SecretVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"optional")
      Parser (Maybe Text -> V1SecretVolumeSource)
-> Parser (Maybe Text) -> Parser V1SecretVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretName")

-- | ToJSON V1SecretVolumeSource
instance A.ToJSON V1SecretVolumeSource where
  toJSON :: V1SecretVolumeSource -> Value
toJSON V1SecretVolumeSource {Maybe Bool
Maybe Int
Maybe [V1KeyToPath]
Maybe Text
v1SecretVolumeSourceSecretName :: Maybe Text
v1SecretVolumeSourceOptional :: Maybe Bool
v1SecretVolumeSourceItems :: Maybe [V1KeyToPath]
v1SecretVolumeSourceDefaultMode :: Maybe Int
v1SecretVolumeSourceSecretName :: V1SecretVolumeSource -> Maybe Text
v1SecretVolumeSourceOptional :: V1SecretVolumeSource -> Maybe Bool
v1SecretVolumeSourceItems :: V1SecretVolumeSource -> Maybe [V1KeyToPath]
v1SecretVolumeSourceDefaultMode :: V1SecretVolumeSource -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"defaultMode" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1SecretVolumeSourceDefaultMode
      , Text
"items" Text -> Maybe [V1KeyToPath] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1KeyToPath]
v1SecretVolumeSourceItems
      , Text
"optional" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1SecretVolumeSourceOptional
      , Text
"secretName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SecretVolumeSourceSecretName
      ]


-- | Construct a value of type 'V1SecretVolumeSource' (by applying it's required fields, if any)
mkV1SecretVolumeSource
  :: V1SecretVolumeSource
mkV1SecretVolumeSource :: V1SecretVolumeSource
mkV1SecretVolumeSource =
  V1SecretVolumeSource :: Maybe Int
-> Maybe [V1KeyToPath]
-> Maybe Bool
-> Maybe Text
-> V1SecretVolumeSource
V1SecretVolumeSource
  { v1SecretVolumeSourceDefaultMode :: Maybe Int
v1SecretVolumeSourceDefaultMode = Maybe Int
forall a. Maybe a
Nothing
  , v1SecretVolumeSourceItems :: Maybe [V1KeyToPath]
v1SecretVolumeSourceItems = Maybe [V1KeyToPath]
forall a. Maybe a
Nothing
  , v1SecretVolumeSourceOptional :: Maybe Bool
v1SecretVolumeSourceOptional = Maybe Bool
forall a. Maybe a
Nothing
  , v1SecretVolumeSourceSecretName :: Maybe Text
v1SecretVolumeSourceSecretName = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1SecurityContext
-- | V1SecurityContext
-- SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext.  When both are set, the values in SecurityContext take precedence.
data V1SecurityContext = V1SecurityContext
  { V1SecurityContext -> Maybe Bool
v1SecurityContextAllowPrivilegeEscalation :: !(Maybe Bool) -- ^ "allowPrivilegeEscalation" - AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN
  , V1SecurityContext -> Maybe V1Capabilities
v1SecurityContextCapabilities :: !(Maybe V1Capabilities) -- ^ "capabilities"
  , V1SecurityContext -> Maybe Bool
v1SecurityContextPrivileged :: !(Maybe Bool) -- ^ "privileged" - Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.
  , V1SecurityContext -> Maybe Text
v1SecurityContextProcMount :: !(Maybe Text) -- ^ "procMount" - procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled.
  , V1SecurityContext -> Maybe Bool
v1SecurityContextReadOnlyRootFilesystem :: !(Maybe Bool) -- ^ "readOnlyRootFilesystem" - Whether this container has a read-only root filesystem. Default is false.
  , V1SecurityContext -> Maybe Integer
v1SecurityContextRunAsGroup :: !(Maybe Integer) -- ^ "runAsGroup" - The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
  , V1SecurityContext -> Maybe Bool
v1SecurityContextRunAsNonRoot :: !(Maybe Bool) -- ^ "runAsNonRoot" - Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
  , V1SecurityContext -> Maybe Integer
v1SecurityContextRunAsUser :: !(Maybe Integer) -- ^ "runAsUser" - The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
  , V1SecurityContext -> Maybe V1SELinuxOptions
v1SecurityContextSeLinuxOptions :: !(Maybe V1SELinuxOptions) -- ^ "seLinuxOptions"
  , V1SecurityContext -> Maybe V1WindowsSecurityContextOptions
v1SecurityContextWindowsOptions :: !(Maybe V1WindowsSecurityContextOptions) -- ^ "windowsOptions"
  } deriving (Int -> V1SecurityContext -> ShowS
[V1SecurityContext] -> ShowS
V1SecurityContext -> String
(Int -> V1SecurityContext -> ShowS)
-> (V1SecurityContext -> String)
-> ([V1SecurityContext] -> ShowS)
-> Show V1SecurityContext
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SecurityContext] -> ShowS
$cshowList :: [V1SecurityContext] -> ShowS
show :: V1SecurityContext -> String
$cshow :: V1SecurityContext -> String
showsPrec :: Int -> V1SecurityContext -> ShowS
$cshowsPrec :: Int -> V1SecurityContext -> ShowS
P.Show, V1SecurityContext -> V1SecurityContext -> Bool
(V1SecurityContext -> V1SecurityContext -> Bool)
-> (V1SecurityContext -> V1SecurityContext -> Bool)
-> Eq V1SecurityContext
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SecurityContext -> V1SecurityContext -> Bool
$c/= :: V1SecurityContext -> V1SecurityContext -> Bool
== :: V1SecurityContext -> V1SecurityContext -> Bool
$c== :: V1SecurityContext -> V1SecurityContext -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SecurityContext
instance A.FromJSON V1SecurityContext where
  parseJSON :: Value -> Parser V1SecurityContext
parseJSON = String
-> (Object -> Parser V1SecurityContext)
-> Value
-> Parser V1SecurityContext
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SecurityContext" ((Object -> Parser V1SecurityContext)
 -> Value -> Parser V1SecurityContext)
-> (Object -> Parser V1SecurityContext)
-> Value
-> Parser V1SecurityContext
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Bool
-> Maybe V1Capabilities
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Integer
-> Maybe Bool
-> Maybe Integer
-> Maybe V1SELinuxOptions
-> Maybe V1WindowsSecurityContextOptions
-> V1SecurityContext
V1SecurityContext
      (Maybe Bool
 -> Maybe V1Capabilities
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Integer
 -> Maybe Bool
 -> Maybe Integer
 -> Maybe V1SELinuxOptions
 -> Maybe V1WindowsSecurityContextOptions
 -> V1SecurityContext)
-> Parser (Maybe Bool)
-> Parser
     (Maybe V1Capabilities
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Integer
      -> Maybe Bool
      -> Maybe Integer
      -> Maybe V1SELinuxOptions
      -> Maybe V1WindowsSecurityContextOptions
      -> V1SecurityContext)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowPrivilegeEscalation")
      Parser
  (Maybe V1Capabilities
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Integer
   -> Maybe Bool
   -> Maybe Integer
   -> Maybe V1SELinuxOptions
   -> Maybe V1WindowsSecurityContextOptions
   -> V1SecurityContext)
-> Parser (Maybe V1Capabilities)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Integer
      -> Maybe Bool
      -> Maybe Integer
      -> Maybe V1SELinuxOptions
      -> Maybe V1WindowsSecurityContextOptions
      -> V1SecurityContext)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1Capabilities)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"capabilities")
      Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Integer
   -> Maybe Bool
   -> Maybe Integer
   -> Maybe V1SELinuxOptions
   -> Maybe V1WindowsSecurityContextOptions
   -> V1SecurityContext)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Integer
      -> Maybe Bool
      -> Maybe Integer
      -> Maybe V1SELinuxOptions
      -> Maybe V1WindowsSecurityContextOptions
      -> V1SecurityContext)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"privileged")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Integer
   -> Maybe Bool
   -> Maybe Integer
   -> Maybe V1SELinuxOptions
   -> Maybe V1WindowsSecurityContextOptions
   -> V1SecurityContext)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Integer
      -> Maybe Bool
      -> Maybe Integer
      -> Maybe V1SELinuxOptions
      -> Maybe V1WindowsSecurityContextOptions
      -> V1SecurityContext)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"procMount")
      Parser
  (Maybe Bool
   -> Maybe Integer
   -> Maybe Bool
   -> Maybe Integer
   -> Maybe V1SELinuxOptions
   -> Maybe V1WindowsSecurityContextOptions
   -> V1SecurityContext)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Integer
      -> Maybe Bool
      -> Maybe Integer
      -> Maybe V1SELinuxOptions
      -> Maybe V1WindowsSecurityContextOptions
      -> V1SecurityContext)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnlyRootFilesystem")
      Parser
  (Maybe Integer
   -> Maybe Bool
   -> Maybe Integer
   -> Maybe V1SELinuxOptions
   -> Maybe V1WindowsSecurityContextOptions
   -> V1SecurityContext)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Bool
      -> Maybe Integer
      -> Maybe V1SELinuxOptions
      -> Maybe V1WindowsSecurityContextOptions
      -> V1SecurityContext)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"runAsGroup")
      Parser
  (Maybe Bool
   -> Maybe Integer
   -> Maybe V1SELinuxOptions
   -> Maybe V1WindowsSecurityContextOptions
   -> V1SecurityContext)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Integer
      -> Maybe V1SELinuxOptions
      -> Maybe V1WindowsSecurityContextOptions
      -> V1SecurityContext)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"runAsNonRoot")
      Parser
  (Maybe Integer
   -> Maybe V1SELinuxOptions
   -> Maybe V1WindowsSecurityContextOptions
   -> V1SecurityContext)
-> Parser (Maybe Integer)
-> Parser
     (Maybe V1SELinuxOptions
      -> Maybe V1WindowsSecurityContextOptions -> V1SecurityContext)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"runAsUser")
      Parser
  (Maybe V1SELinuxOptions
   -> Maybe V1WindowsSecurityContextOptions -> V1SecurityContext)
-> Parser (Maybe V1SELinuxOptions)
-> Parser
     (Maybe V1WindowsSecurityContextOptions -> V1SecurityContext)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SELinuxOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"seLinuxOptions")
      Parser (Maybe V1WindowsSecurityContextOptions -> V1SecurityContext)
-> Parser (Maybe V1WindowsSecurityContextOptions)
-> Parser V1SecurityContext
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1WindowsSecurityContextOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"windowsOptions")

-- | ToJSON V1SecurityContext
instance A.ToJSON V1SecurityContext where
  toJSON :: V1SecurityContext -> Value
toJSON V1SecurityContext {Maybe Bool
Maybe Integer
Maybe Text
Maybe V1WindowsSecurityContextOptions
Maybe V1SELinuxOptions
Maybe V1Capabilities
v1SecurityContextWindowsOptions :: Maybe V1WindowsSecurityContextOptions
v1SecurityContextSeLinuxOptions :: Maybe V1SELinuxOptions
v1SecurityContextRunAsUser :: Maybe Integer
v1SecurityContextRunAsNonRoot :: Maybe Bool
v1SecurityContextRunAsGroup :: Maybe Integer
v1SecurityContextReadOnlyRootFilesystem :: Maybe Bool
v1SecurityContextProcMount :: Maybe Text
v1SecurityContextPrivileged :: Maybe Bool
v1SecurityContextCapabilities :: Maybe V1Capabilities
v1SecurityContextAllowPrivilegeEscalation :: Maybe Bool
v1SecurityContextWindowsOptions :: V1SecurityContext -> Maybe V1WindowsSecurityContextOptions
v1SecurityContextSeLinuxOptions :: V1SecurityContext -> Maybe V1SELinuxOptions
v1SecurityContextRunAsUser :: V1SecurityContext -> Maybe Integer
v1SecurityContextRunAsNonRoot :: V1SecurityContext -> Maybe Bool
v1SecurityContextRunAsGroup :: V1SecurityContext -> Maybe Integer
v1SecurityContextReadOnlyRootFilesystem :: V1SecurityContext -> Maybe Bool
v1SecurityContextProcMount :: V1SecurityContext -> Maybe Text
v1SecurityContextPrivileged :: V1SecurityContext -> Maybe Bool
v1SecurityContextCapabilities :: V1SecurityContext -> Maybe V1Capabilities
v1SecurityContextAllowPrivilegeEscalation :: V1SecurityContext -> Maybe Bool
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"allowPrivilegeEscalation" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1SecurityContextAllowPrivilegeEscalation
      , Text
"capabilities" Text -> Maybe V1Capabilities -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1Capabilities
v1SecurityContextCapabilities
      , Text
"privileged" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1SecurityContextPrivileged
      , Text
"procMount" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SecurityContextProcMount
      , Text
"readOnlyRootFilesystem" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1SecurityContextReadOnlyRootFilesystem
      , Text
"runAsGroup" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1SecurityContextRunAsGroup
      , Text
"runAsNonRoot" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1SecurityContextRunAsNonRoot
      , Text
"runAsUser" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1SecurityContextRunAsUser
      , Text
"seLinuxOptions" Text -> Maybe V1SELinuxOptions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SELinuxOptions
v1SecurityContextSeLinuxOptions
      , Text
"windowsOptions" Text -> Maybe V1WindowsSecurityContextOptions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1WindowsSecurityContextOptions
v1SecurityContextWindowsOptions
      ]


-- | Construct a value of type 'V1SecurityContext' (by applying it's required fields, if any)
mkV1SecurityContext
  :: V1SecurityContext
mkV1SecurityContext :: V1SecurityContext
mkV1SecurityContext =
  V1SecurityContext :: Maybe Bool
-> Maybe V1Capabilities
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Integer
-> Maybe Bool
-> Maybe Integer
-> Maybe V1SELinuxOptions
-> Maybe V1WindowsSecurityContextOptions
-> V1SecurityContext
V1SecurityContext
  { v1SecurityContextAllowPrivilegeEscalation :: Maybe Bool
v1SecurityContextAllowPrivilegeEscalation = Maybe Bool
forall a. Maybe a
Nothing
  , v1SecurityContextCapabilities :: Maybe V1Capabilities
v1SecurityContextCapabilities = Maybe V1Capabilities
forall a. Maybe a
Nothing
  , v1SecurityContextPrivileged :: Maybe Bool
v1SecurityContextPrivileged = Maybe Bool
forall a. Maybe a
Nothing
  , v1SecurityContextProcMount :: Maybe Text
v1SecurityContextProcMount = Maybe Text
forall a. Maybe a
Nothing
  , v1SecurityContextReadOnlyRootFilesystem :: Maybe Bool
v1SecurityContextReadOnlyRootFilesystem = Maybe Bool
forall a. Maybe a
Nothing
  , v1SecurityContextRunAsGroup :: Maybe Integer
v1SecurityContextRunAsGroup = Maybe Integer
forall a. Maybe a
Nothing
  , v1SecurityContextRunAsNonRoot :: Maybe Bool
v1SecurityContextRunAsNonRoot = Maybe Bool
forall a. Maybe a
Nothing
  , v1SecurityContextRunAsUser :: Maybe Integer
v1SecurityContextRunAsUser = Maybe Integer
forall a. Maybe a
Nothing
  , v1SecurityContextSeLinuxOptions :: Maybe V1SELinuxOptions
v1SecurityContextSeLinuxOptions = Maybe V1SELinuxOptions
forall a. Maybe a
Nothing
  , v1SecurityContextWindowsOptions :: Maybe V1WindowsSecurityContextOptions
v1SecurityContextWindowsOptions = Maybe V1WindowsSecurityContextOptions
forall a. Maybe a
Nothing
  }

-- ** V1SelfSubjectAccessReview
-- | V1SelfSubjectAccessReview
-- SelfSubjectAccessReview checks whether or the current user can perform an action.  Not filling in a spec.namespace means \"in all namespaces\".  Self is a special case, because users should always be able to check whether they can perform an action
data V1SelfSubjectAccessReview = V1SelfSubjectAccessReview
  { V1SelfSubjectAccessReview -> Maybe Text
v1SelfSubjectAccessReviewApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1SelfSubjectAccessReview -> Maybe Text
v1SelfSubjectAccessReviewKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1SelfSubjectAccessReview -> Maybe V1ObjectMeta
v1SelfSubjectAccessReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1SelfSubjectAccessReview -> V1SelfSubjectAccessReviewSpec
v1SelfSubjectAccessReviewSpec :: !(V1SelfSubjectAccessReviewSpec) -- ^ /Required/ "spec"
  , V1SelfSubjectAccessReview -> Maybe V1SubjectAccessReviewStatus
v1SelfSubjectAccessReviewStatus :: !(Maybe V1SubjectAccessReviewStatus) -- ^ "status"
  } deriving (Int -> V1SelfSubjectAccessReview -> ShowS
[V1SelfSubjectAccessReview] -> ShowS
V1SelfSubjectAccessReview -> String
(Int -> V1SelfSubjectAccessReview -> ShowS)
-> (V1SelfSubjectAccessReview -> String)
-> ([V1SelfSubjectAccessReview] -> ShowS)
-> Show V1SelfSubjectAccessReview
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SelfSubjectAccessReview] -> ShowS
$cshowList :: [V1SelfSubjectAccessReview] -> ShowS
show :: V1SelfSubjectAccessReview -> String
$cshow :: V1SelfSubjectAccessReview -> String
showsPrec :: Int -> V1SelfSubjectAccessReview -> ShowS
$cshowsPrec :: Int -> V1SelfSubjectAccessReview -> ShowS
P.Show, V1SelfSubjectAccessReview -> V1SelfSubjectAccessReview -> Bool
(V1SelfSubjectAccessReview -> V1SelfSubjectAccessReview -> Bool)
-> (V1SelfSubjectAccessReview -> V1SelfSubjectAccessReview -> Bool)
-> Eq V1SelfSubjectAccessReview
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SelfSubjectAccessReview -> V1SelfSubjectAccessReview -> Bool
$c/= :: V1SelfSubjectAccessReview -> V1SelfSubjectAccessReview -> Bool
== :: V1SelfSubjectAccessReview -> V1SelfSubjectAccessReview -> Bool
$c== :: V1SelfSubjectAccessReview -> V1SelfSubjectAccessReview -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SelfSubjectAccessReview
instance A.FromJSON V1SelfSubjectAccessReview where
  parseJSON :: Value -> Parser V1SelfSubjectAccessReview
parseJSON = String
-> (Object -> Parser V1SelfSubjectAccessReview)
-> Value
-> Parser V1SelfSubjectAccessReview
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SelfSubjectAccessReview" ((Object -> Parser V1SelfSubjectAccessReview)
 -> Value -> Parser V1SelfSubjectAccessReview)
-> (Object -> Parser V1SelfSubjectAccessReview)
-> Value
-> Parser V1SelfSubjectAccessReview
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1SelfSubjectAccessReviewSpec
-> Maybe V1SubjectAccessReviewStatus
-> V1SelfSubjectAccessReview
V1SelfSubjectAccessReview
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1SelfSubjectAccessReviewSpec
 -> Maybe V1SubjectAccessReviewStatus
 -> V1SelfSubjectAccessReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1SelfSubjectAccessReviewSpec
      -> Maybe V1SubjectAccessReviewStatus
      -> V1SelfSubjectAccessReview)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1SelfSubjectAccessReviewSpec
   -> Maybe V1SubjectAccessReviewStatus
   -> V1SelfSubjectAccessReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1SelfSubjectAccessReviewSpec
      -> Maybe V1SubjectAccessReviewStatus
      -> V1SelfSubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1SelfSubjectAccessReviewSpec
   -> Maybe V1SubjectAccessReviewStatus
   -> V1SelfSubjectAccessReview)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1SelfSubjectAccessReviewSpec
      -> Maybe V1SubjectAccessReviewStatus -> V1SelfSubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1SelfSubjectAccessReviewSpec
   -> Maybe V1SubjectAccessReviewStatus -> V1SelfSubjectAccessReview)
-> Parser V1SelfSubjectAccessReviewSpec
-> Parser
     (Maybe V1SubjectAccessReviewStatus -> V1SelfSubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1SelfSubjectAccessReviewSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")
      Parser
  (Maybe V1SubjectAccessReviewStatus -> V1SelfSubjectAccessReview)
-> Parser (Maybe V1SubjectAccessReviewStatus)
-> Parser V1SelfSubjectAccessReview
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SubjectAccessReviewStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1SelfSubjectAccessReview
instance A.ToJSON V1SelfSubjectAccessReview where
  toJSON :: V1SelfSubjectAccessReview -> Value
toJSON V1SelfSubjectAccessReview {Maybe Text
Maybe V1SubjectAccessReviewStatus
Maybe V1ObjectMeta
V1SelfSubjectAccessReviewSpec
v1SelfSubjectAccessReviewStatus :: Maybe V1SubjectAccessReviewStatus
v1SelfSubjectAccessReviewSpec :: V1SelfSubjectAccessReviewSpec
v1SelfSubjectAccessReviewMetadata :: Maybe V1ObjectMeta
v1SelfSubjectAccessReviewKind :: Maybe Text
v1SelfSubjectAccessReviewApiVersion :: Maybe Text
v1SelfSubjectAccessReviewStatus :: V1SelfSubjectAccessReview -> Maybe V1SubjectAccessReviewStatus
v1SelfSubjectAccessReviewSpec :: V1SelfSubjectAccessReview -> V1SelfSubjectAccessReviewSpec
v1SelfSubjectAccessReviewMetadata :: V1SelfSubjectAccessReview -> Maybe V1ObjectMeta
v1SelfSubjectAccessReviewKind :: V1SelfSubjectAccessReview -> Maybe Text
v1SelfSubjectAccessReviewApiVersion :: V1SelfSubjectAccessReview -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SelfSubjectAccessReviewApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SelfSubjectAccessReviewKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1SelfSubjectAccessReviewMetadata
      , Text
"spec" Text -> V1SelfSubjectAccessReviewSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1SelfSubjectAccessReviewSpec
v1SelfSubjectAccessReviewSpec
      , Text
"status" Text -> Maybe V1SubjectAccessReviewStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SubjectAccessReviewStatus
v1SelfSubjectAccessReviewStatus
      ]


-- | Construct a value of type 'V1SelfSubjectAccessReview' (by applying it's required fields, if any)
mkV1SelfSubjectAccessReview
  :: V1SelfSubjectAccessReviewSpec -- ^ 'v1SelfSubjectAccessReviewSpec' 
  -> V1SelfSubjectAccessReview
mkV1SelfSubjectAccessReview :: V1SelfSubjectAccessReviewSpec -> V1SelfSubjectAccessReview
mkV1SelfSubjectAccessReview V1SelfSubjectAccessReviewSpec
v1SelfSubjectAccessReviewSpec =
  V1SelfSubjectAccessReview :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1SelfSubjectAccessReviewSpec
-> Maybe V1SubjectAccessReviewStatus
-> V1SelfSubjectAccessReview
V1SelfSubjectAccessReview
  { v1SelfSubjectAccessReviewApiVersion :: Maybe Text
v1SelfSubjectAccessReviewApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1SelfSubjectAccessReviewKind :: Maybe Text
v1SelfSubjectAccessReviewKind = Maybe Text
forall a. Maybe a
Nothing
  , v1SelfSubjectAccessReviewMetadata :: Maybe V1ObjectMeta
v1SelfSubjectAccessReviewMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1SelfSubjectAccessReviewSpec
v1SelfSubjectAccessReviewSpec :: V1SelfSubjectAccessReviewSpec
v1SelfSubjectAccessReviewSpec :: V1SelfSubjectAccessReviewSpec
v1SelfSubjectAccessReviewSpec
  , v1SelfSubjectAccessReviewStatus :: Maybe V1SubjectAccessReviewStatus
v1SelfSubjectAccessReviewStatus = Maybe V1SubjectAccessReviewStatus
forall a. Maybe a
Nothing
  }

-- ** V1SelfSubjectAccessReviewSpec
-- | V1SelfSubjectAccessReviewSpec
-- SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set
data V1SelfSubjectAccessReviewSpec = V1SelfSubjectAccessReviewSpec
  { V1SelfSubjectAccessReviewSpec -> Maybe V1NonResourceAttributes
v1SelfSubjectAccessReviewSpecNonResourceAttributes :: !(Maybe V1NonResourceAttributes) -- ^ "nonResourceAttributes"
  , V1SelfSubjectAccessReviewSpec -> Maybe V1ResourceAttributes
v1SelfSubjectAccessReviewSpecResourceAttributes :: !(Maybe V1ResourceAttributes) -- ^ "resourceAttributes"
  } deriving (Int -> V1SelfSubjectAccessReviewSpec -> ShowS
[V1SelfSubjectAccessReviewSpec] -> ShowS
V1SelfSubjectAccessReviewSpec -> String
(Int -> V1SelfSubjectAccessReviewSpec -> ShowS)
-> (V1SelfSubjectAccessReviewSpec -> String)
-> ([V1SelfSubjectAccessReviewSpec] -> ShowS)
-> Show V1SelfSubjectAccessReviewSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SelfSubjectAccessReviewSpec] -> ShowS
$cshowList :: [V1SelfSubjectAccessReviewSpec] -> ShowS
show :: V1SelfSubjectAccessReviewSpec -> String
$cshow :: V1SelfSubjectAccessReviewSpec -> String
showsPrec :: Int -> V1SelfSubjectAccessReviewSpec -> ShowS
$cshowsPrec :: Int -> V1SelfSubjectAccessReviewSpec -> ShowS
P.Show, V1SelfSubjectAccessReviewSpec
-> V1SelfSubjectAccessReviewSpec -> Bool
(V1SelfSubjectAccessReviewSpec
 -> V1SelfSubjectAccessReviewSpec -> Bool)
-> (V1SelfSubjectAccessReviewSpec
    -> V1SelfSubjectAccessReviewSpec -> Bool)
-> Eq V1SelfSubjectAccessReviewSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SelfSubjectAccessReviewSpec
-> V1SelfSubjectAccessReviewSpec -> Bool
$c/= :: V1SelfSubjectAccessReviewSpec
-> V1SelfSubjectAccessReviewSpec -> Bool
== :: V1SelfSubjectAccessReviewSpec
-> V1SelfSubjectAccessReviewSpec -> Bool
$c== :: V1SelfSubjectAccessReviewSpec
-> V1SelfSubjectAccessReviewSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SelfSubjectAccessReviewSpec
instance A.FromJSON V1SelfSubjectAccessReviewSpec where
  parseJSON :: Value -> Parser V1SelfSubjectAccessReviewSpec
parseJSON = String
-> (Object -> Parser V1SelfSubjectAccessReviewSpec)
-> Value
-> Parser V1SelfSubjectAccessReviewSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SelfSubjectAccessReviewSpec" ((Object -> Parser V1SelfSubjectAccessReviewSpec)
 -> Value -> Parser V1SelfSubjectAccessReviewSpec)
-> (Object -> Parser V1SelfSubjectAccessReviewSpec)
-> Value
-> Parser V1SelfSubjectAccessReviewSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1NonResourceAttributes
-> Maybe V1ResourceAttributes -> V1SelfSubjectAccessReviewSpec
V1SelfSubjectAccessReviewSpec
      (Maybe V1NonResourceAttributes
 -> Maybe V1ResourceAttributes -> V1SelfSubjectAccessReviewSpec)
-> Parser (Maybe V1NonResourceAttributes)
-> Parser
     (Maybe V1ResourceAttributes -> V1SelfSubjectAccessReviewSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1NonResourceAttributes)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nonResourceAttributes")
      Parser
  (Maybe V1ResourceAttributes -> V1SelfSubjectAccessReviewSpec)
-> Parser (Maybe V1ResourceAttributes)
-> Parser V1SelfSubjectAccessReviewSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ResourceAttributes)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resourceAttributes")

-- | ToJSON V1SelfSubjectAccessReviewSpec
instance A.ToJSON V1SelfSubjectAccessReviewSpec where
  toJSON :: V1SelfSubjectAccessReviewSpec -> Value
toJSON V1SelfSubjectAccessReviewSpec {Maybe V1ResourceAttributes
Maybe V1NonResourceAttributes
v1SelfSubjectAccessReviewSpecResourceAttributes :: Maybe V1ResourceAttributes
v1SelfSubjectAccessReviewSpecNonResourceAttributes :: Maybe V1NonResourceAttributes
v1SelfSubjectAccessReviewSpecResourceAttributes :: V1SelfSubjectAccessReviewSpec -> Maybe V1ResourceAttributes
v1SelfSubjectAccessReviewSpecNonResourceAttributes :: V1SelfSubjectAccessReviewSpec -> Maybe V1NonResourceAttributes
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"nonResourceAttributes" Text -> Maybe V1NonResourceAttributes -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NonResourceAttributes
v1SelfSubjectAccessReviewSpecNonResourceAttributes
      , Text
"resourceAttributes" Text -> Maybe V1ResourceAttributes -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ResourceAttributes
v1SelfSubjectAccessReviewSpecResourceAttributes
      ]


-- | Construct a value of type 'V1SelfSubjectAccessReviewSpec' (by applying it's required fields, if any)
mkV1SelfSubjectAccessReviewSpec
  :: V1SelfSubjectAccessReviewSpec
mkV1SelfSubjectAccessReviewSpec :: V1SelfSubjectAccessReviewSpec
mkV1SelfSubjectAccessReviewSpec =
  V1SelfSubjectAccessReviewSpec :: Maybe V1NonResourceAttributes
-> Maybe V1ResourceAttributes -> V1SelfSubjectAccessReviewSpec
V1SelfSubjectAccessReviewSpec
  { v1SelfSubjectAccessReviewSpecNonResourceAttributes :: Maybe V1NonResourceAttributes
v1SelfSubjectAccessReviewSpecNonResourceAttributes = Maybe V1NonResourceAttributes
forall a. Maybe a
Nothing
  , v1SelfSubjectAccessReviewSpecResourceAttributes :: Maybe V1ResourceAttributes
v1SelfSubjectAccessReviewSpecResourceAttributes = Maybe V1ResourceAttributes
forall a. Maybe a
Nothing
  }

-- ** V1SelfSubjectRulesReview
-- | V1SelfSubjectRulesReview
-- SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.
data V1SelfSubjectRulesReview = V1SelfSubjectRulesReview
  { V1SelfSubjectRulesReview -> Maybe Text
v1SelfSubjectRulesReviewApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1SelfSubjectRulesReview -> Maybe Text
v1SelfSubjectRulesReviewKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1SelfSubjectRulesReview -> Maybe V1ObjectMeta
v1SelfSubjectRulesReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1SelfSubjectRulesReview -> V1SelfSubjectRulesReviewSpec
v1SelfSubjectRulesReviewSpec :: !(V1SelfSubjectRulesReviewSpec) -- ^ /Required/ "spec"
  , V1SelfSubjectRulesReview -> Maybe V1SubjectRulesReviewStatus
v1SelfSubjectRulesReviewStatus :: !(Maybe V1SubjectRulesReviewStatus) -- ^ "status"
  } deriving (Int -> V1SelfSubjectRulesReview -> ShowS
[V1SelfSubjectRulesReview] -> ShowS
V1SelfSubjectRulesReview -> String
(Int -> V1SelfSubjectRulesReview -> ShowS)
-> (V1SelfSubjectRulesReview -> String)
-> ([V1SelfSubjectRulesReview] -> ShowS)
-> Show V1SelfSubjectRulesReview
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SelfSubjectRulesReview] -> ShowS
$cshowList :: [V1SelfSubjectRulesReview] -> ShowS
show :: V1SelfSubjectRulesReview -> String
$cshow :: V1SelfSubjectRulesReview -> String
showsPrec :: Int -> V1SelfSubjectRulesReview -> ShowS
$cshowsPrec :: Int -> V1SelfSubjectRulesReview -> ShowS
P.Show, V1SelfSubjectRulesReview -> V1SelfSubjectRulesReview -> Bool
(V1SelfSubjectRulesReview -> V1SelfSubjectRulesReview -> Bool)
-> (V1SelfSubjectRulesReview -> V1SelfSubjectRulesReview -> Bool)
-> Eq V1SelfSubjectRulesReview
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SelfSubjectRulesReview -> V1SelfSubjectRulesReview -> Bool
$c/= :: V1SelfSubjectRulesReview -> V1SelfSubjectRulesReview -> Bool
== :: V1SelfSubjectRulesReview -> V1SelfSubjectRulesReview -> Bool
$c== :: V1SelfSubjectRulesReview -> V1SelfSubjectRulesReview -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SelfSubjectRulesReview
instance A.FromJSON V1SelfSubjectRulesReview where
  parseJSON :: Value -> Parser V1SelfSubjectRulesReview
parseJSON = String
-> (Object -> Parser V1SelfSubjectRulesReview)
-> Value
-> Parser V1SelfSubjectRulesReview
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SelfSubjectRulesReview" ((Object -> Parser V1SelfSubjectRulesReview)
 -> Value -> Parser V1SelfSubjectRulesReview)
-> (Object -> Parser V1SelfSubjectRulesReview)
-> Value
-> Parser V1SelfSubjectRulesReview
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1SelfSubjectRulesReviewSpec
-> Maybe V1SubjectRulesReviewStatus
-> V1SelfSubjectRulesReview
V1SelfSubjectRulesReview
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1SelfSubjectRulesReviewSpec
 -> Maybe V1SubjectRulesReviewStatus
 -> V1SelfSubjectRulesReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1SelfSubjectRulesReviewSpec
      -> Maybe V1SubjectRulesReviewStatus
      -> V1SelfSubjectRulesReview)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1SelfSubjectRulesReviewSpec
   -> Maybe V1SubjectRulesReviewStatus
   -> V1SelfSubjectRulesReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1SelfSubjectRulesReviewSpec
      -> Maybe V1SubjectRulesReviewStatus
      -> V1SelfSubjectRulesReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1SelfSubjectRulesReviewSpec
   -> Maybe V1SubjectRulesReviewStatus
   -> V1SelfSubjectRulesReview)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1SelfSubjectRulesReviewSpec
      -> Maybe V1SubjectRulesReviewStatus -> V1SelfSubjectRulesReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1SelfSubjectRulesReviewSpec
   -> Maybe V1SubjectRulesReviewStatus -> V1SelfSubjectRulesReview)
-> Parser V1SelfSubjectRulesReviewSpec
-> Parser
     (Maybe V1SubjectRulesReviewStatus -> V1SelfSubjectRulesReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1SelfSubjectRulesReviewSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")
      Parser
  (Maybe V1SubjectRulesReviewStatus -> V1SelfSubjectRulesReview)
-> Parser (Maybe V1SubjectRulesReviewStatus)
-> Parser V1SelfSubjectRulesReview
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SubjectRulesReviewStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1SelfSubjectRulesReview
instance A.ToJSON V1SelfSubjectRulesReview where
  toJSON :: V1SelfSubjectRulesReview -> Value
toJSON V1SelfSubjectRulesReview {Maybe Text
Maybe V1SubjectRulesReviewStatus
Maybe V1ObjectMeta
V1SelfSubjectRulesReviewSpec
v1SelfSubjectRulesReviewStatus :: Maybe V1SubjectRulesReviewStatus
v1SelfSubjectRulesReviewSpec :: V1SelfSubjectRulesReviewSpec
v1SelfSubjectRulesReviewMetadata :: Maybe V1ObjectMeta
v1SelfSubjectRulesReviewKind :: Maybe Text
v1SelfSubjectRulesReviewApiVersion :: Maybe Text
v1SelfSubjectRulesReviewStatus :: V1SelfSubjectRulesReview -> Maybe V1SubjectRulesReviewStatus
v1SelfSubjectRulesReviewSpec :: V1SelfSubjectRulesReview -> V1SelfSubjectRulesReviewSpec
v1SelfSubjectRulesReviewMetadata :: V1SelfSubjectRulesReview -> Maybe V1ObjectMeta
v1SelfSubjectRulesReviewKind :: V1SelfSubjectRulesReview -> Maybe Text
v1SelfSubjectRulesReviewApiVersion :: V1SelfSubjectRulesReview -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SelfSubjectRulesReviewApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SelfSubjectRulesReviewKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1SelfSubjectRulesReviewMetadata
      , Text
"spec" Text -> V1SelfSubjectRulesReviewSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1SelfSubjectRulesReviewSpec
v1SelfSubjectRulesReviewSpec
      , Text
"status" Text -> Maybe V1SubjectRulesReviewStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SubjectRulesReviewStatus
v1SelfSubjectRulesReviewStatus
      ]


-- | Construct a value of type 'V1SelfSubjectRulesReview' (by applying it's required fields, if any)
mkV1SelfSubjectRulesReview
  :: V1SelfSubjectRulesReviewSpec -- ^ 'v1SelfSubjectRulesReviewSpec' 
  -> V1SelfSubjectRulesReview
mkV1SelfSubjectRulesReview :: V1SelfSubjectRulesReviewSpec -> V1SelfSubjectRulesReview
mkV1SelfSubjectRulesReview V1SelfSubjectRulesReviewSpec
v1SelfSubjectRulesReviewSpec =
  V1SelfSubjectRulesReview :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1SelfSubjectRulesReviewSpec
-> Maybe V1SubjectRulesReviewStatus
-> V1SelfSubjectRulesReview
V1SelfSubjectRulesReview
  { v1SelfSubjectRulesReviewApiVersion :: Maybe Text
v1SelfSubjectRulesReviewApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1SelfSubjectRulesReviewKind :: Maybe Text
v1SelfSubjectRulesReviewKind = Maybe Text
forall a. Maybe a
Nothing
  , v1SelfSubjectRulesReviewMetadata :: Maybe V1ObjectMeta
v1SelfSubjectRulesReviewMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1SelfSubjectRulesReviewSpec
v1SelfSubjectRulesReviewSpec :: V1SelfSubjectRulesReviewSpec
v1SelfSubjectRulesReviewSpec :: V1SelfSubjectRulesReviewSpec
v1SelfSubjectRulesReviewSpec
  , v1SelfSubjectRulesReviewStatus :: Maybe V1SubjectRulesReviewStatus
v1SelfSubjectRulesReviewStatus = Maybe V1SubjectRulesReviewStatus
forall a. Maybe a
Nothing
  }

-- ** V1SelfSubjectRulesReviewSpec
-- | V1SelfSubjectRulesReviewSpec
data V1SelfSubjectRulesReviewSpec = V1SelfSubjectRulesReviewSpec
  { V1SelfSubjectRulesReviewSpec -> Maybe Text
v1SelfSubjectRulesReviewSpecNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace to evaluate rules for. Required.
  } deriving (Int -> V1SelfSubjectRulesReviewSpec -> ShowS
[V1SelfSubjectRulesReviewSpec] -> ShowS
V1SelfSubjectRulesReviewSpec -> String
(Int -> V1SelfSubjectRulesReviewSpec -> ShowS)
-> (V1SelfSubjectRulesReviewSpec -> String)
-> ([V1SelfSubjectRulesReviewSpec] -> ShowS)
-> Show V1SelfSubjectRulesReviewSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SelfSubjectRulesReviewSpec] -> ShowS
$cshowList :: [V1SelfSubjectRulesReviewSpec] -> ShowS
show :: V1SelfSubjectRulesReviewSpec -> String
$cshow :: V1SelfSubjectRulesReviewSpec -> String
showsPrec :: Int -> V1SelfSubjectRulesReviewSpec -> ShowS
$cshowsPrec :: Int -> V1SelfSubjectRulesReviewSpec -> ShowS
P.Show, V1SelfSubjectRulesReviewSpec
-> V1SelfSubjectRulesReviewSpec -> Bool
(V1SelfSubjectRulesReviewSpec
 -> V1SelfSubjectRulesReviewSpec -> Bool)
-> (V1SelfSubjectRulesReviewSpec
    -> V1SelfSubjectRulesReviewSpec -> Bool)
-> Eq V1SelfSubjectRulesReviewSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SelfSubjectRulesReviewSpec
-> V1SelfSubjectRulesReviewSpec -> Bool
$c/= :: V1SelfSubjectRulesReviewSpec
-> V1SelfSubjectRulesReviewSpec -> Bool
== :: V1SelfSubjectRulesReviewSpec
-> V1SelfSubjectRulesReviewSpec -> Bool
$c== :: V1SelfSubjectRulesReviewSpec
-> V1SelfSubjectRulesReviewSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SelfSubjectRulesReviewSpec
instance A.FromJSON V1SelfSubjectRulesReviewSpec where
  parseJSON :: Value -> Parser V1SelfSubjectRulesReviewSpec
parseJSON = String
-> (Object -> Parser V1SelfSubjectRulesReviewSpec)
-> Value
-> Parser V1SelfSubjectRulesReviewSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SelfSubjectRulesReviewSpec" ((Object -> Parser V1SelfSubjectRulesReviewSpec)
 -> Value -> Parser V1SelfSubjectRulesReviewSpec)
-> (Object -> Parser V1SelfSubjectRulesReviewSpec)
-> Value
-> Parser V1SelfSubjectRulesReviewSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> V1SelfSubjectRulesReviewSpec
V1SelfSubjectRulesReviewSpec
      (Maybe Text -> V1SelfSubjectRulesReviewSpec)
-> Parser (Maybe Text) -> Parser V1SelfSubjectRulesReviewSpec
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespace")

-- | ToJSON V1SelfSubjectRulesReviewSpec
instance A.ToJSON V1SelfSubjectRulesReviewSpec where
  toJSON :: V1SelfSubjectRulesReviewSpec -> Value
toJSON V1SelfSubjectRulesReviewSpec {Maybe Text
v1SelfSubjectRulesReviewSpecNamespace :: Maybe Text
v1SelfSubjectRulesReviewSpecNamespace :: V1SelfSubjectRulesReviewSpec -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"namespace" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SelfSubjectRulesReviewSpecNamespace
      ]


-- | Construct a value of type 'V1SelfSubjectRulesReviewSpec' (by applying it's required fields, if any)
mkV1SelfSubjectRulesReviewSpec
  :: V1SelfSubjectRulesReviewSpec
mkV1SelfSubjectRulesReviewSpec :: V1SelfSubjectRulesReviewSpec
mkV1SelfSubjectRulesReviewSpec =
  V1SelfSubjectRulesReviewSpec :: Maybe Text -> V1SelfSubjectRulesReviewSpec
V1SelfSubjectRulesReviewSpec
  { v1SelfSubjectRulesReviewSpecNamespace :: Maybe Text
v1SelfSubjectRulesReviewSpecNamespace = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1ServerAddressByClientCIDR
-- | V1ServerAddressByClientCIDR
-- ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.
data V1ServerAddressByClientCIDR = V1ServerAddressByClientCIDR
  { V1ServerAddressByClientCIDR -> Text
v1ServerAddressByClientCIDRClientCidr :: !(Text) -- ^ /Required/ "clientCIDR" - The CIDR with which clients can match their IP to figure out the server address that they should use.
  , V1ServerAddressByClientCIDR -> Text
v1ServerAddressByClientCIDRServerAddress :: !(Text) -- ^ /Required/ "serverAddress" - Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.
  } deriving (Int -> V1ServerAddressByClientCIDR -> ShowS
[V1ServerAddressByClientCIDR] -> ShowS
V1ServerAddressByClientCIDR -> String
(Int -> V1ServerAddressByClientCIDR -> ShowS)
-> (V1ServerAddressByClientCIDR -> String)
-> ([V1ServerAddressByClientCIDR] -> ShowS)
-> Show V1ServerAddressByClientCIDR
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ServerAddressByClientCIDR] -> ShowS
$cshowList :: [V1ServerAddressByClientCIDR] -> ShowS
show :: V1ServerAddressByClientCIDR -> String
$cshow :: V1ServerAddressByClientCIDR -> String
showsPrec :: Int -> V1ServerAddressByClientCIDR -> ShowS
$cshowsPrec :: Int -> V1ServerAddressByClientCIDR -> ShowS
P.Show, V1ServerAddressByClientCIDR -> V1ServerAddressByClientCIDR -> Bool
(V1ServerAddressByClientCIDR
 -> V1ServerAddressByClientCIDR -> Bool)
-> (V1ServerAddressByClientCIDR
    -> V1ServerAddressByClientCIDR -> Bool)
-> Eq V1ServerAddressByClientCIDR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ServerAddressByClientCIDR -> V1ServerAddressByClientCIDR -> Bool
$c/= :: V1ServerAddressByClientCIDR -> V1ServerAddressByClientCIDR -> Bool
== :: V1ServerAddressByClientCIDR -> V1ServerAddressByClientCIDR -> Bool
$c== :: V1ServerAddressByClientCIDR -> V1ServerAddressByClientCIDR -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ServerAddressByClientCIDR
instance A.FromJSON V1ServerAddressByClientCIDR where
  parseJSON :: Value -> Parser V1ServerAddressByClientCIDR
parseJSON = String
-> (Object -> Parser V1ServerAddressByClientCIDR)
-> Value
-> Parser V1ServerAddressByClientCIDR
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ServerAddressByClientCIDR" ((Object -> Parser V1ServerAddressByClientCIDR)
 -> Value -> Parser V1ServerAddressByClientCIDR)
-> (Object -> Parser V1ServerAddressByClientCIDR)
-> Value
-> Parser V1ServerAddressByClientCIDR
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> V1ServerAddressByClientCIDR
V1ServerAddressByClientCIDR
      (Text -> Text -> V1ServerAddressByClientCIDR)
-> Parser Text -> Parser (Text -> V1ServerAddressByClientCIDR)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"clientCIDR")
      Parser (Text -> V1ServerAddressByClientCIDR)
-> Parser Text -> Parser V1ServerAddressByClientCIDR
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"serverAddress")

-- | ToJSON V1ServerAddressByClientCIDR
instance A.ToJSON V1ServerAddressByClientCIDR where
  toJSON :: V1ServerAddressByClientCIDR -> Value
toJSON V1ServerAddressByClientCIDR {Text
v1ServerAddressByClientCIDRServerAddress :: Text
v1ServerAddressByClientCIDRClientCidr :: Text
v1ServerAddressByClientCIDRServerAddress :: V1ServerAddressByClientCIDR -> Text
v1ServerAddressByClientCIDRClientCidr :: V1ServerAddressByClientCIDR -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"clientCIDR" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ServerAddressByClientCIDRClientCidr
      , Text
"serverAddress" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ServerAddressByClientCIDRServerAddress
      ]


-- | Construct a value of type 'V1ServerAddressByClientCIDR' (by applying it's required fields, if any)
mkV1ServerAddressByClientCIDR
  :: Text -- ^ 'v1ServerAddressByClientCIDRClientCidr': The CIDR with which clients can match their IP to figure out the server address that they should use.
  -> Text -- ^ 'v1ServerAddressByClientCIDRServerAddress': Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.
  -> V1ServerAddressByClientCIDR
mkV1ServerAddressByClientCIDR :: Text -> Text -> V1ServerAddressByClientCIDR
mkV1ServerAddressByClientCIDR Text
v1ServerAddressByClientCIDRClientCidr Text
v1ServerAddressByClientCIDRServerAddress =
  V1ServerAddressByClientCIDR :: Text -> Text -> V1ServerAddressByClientCIDR
V1ServerAddressByClientCIDR
  { Text
v1ServerAddressByClientCIDRClientCidr :: Text
v1ServerAddressByClientCIDRClientCidr :: Text
v1ServerAddressByClientCIDRClientCidr
  , Text
v1ServerAddressByClientCIDRServerAddress :: Text
v1ServerAddressByClientCIDRServerAddress :: Text
v1ServerAddressByClientCIDRServerAddress
  }

-- ** V1Service
-- | V1Service
-- Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.
data V1Service = V1Service
  { V1Service -> Maybe Text
v1ServiceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1Service -> Maybe Text
v1ServiceKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1Service -> Maybe V1ObjectMeta
v1ServiceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1Service -> Maybe V1ServiceSpec
v1ServiceSpec :: !(Maybe V1ServiceSpec) -- ^ "spec"
  , V1Service -> Maybe V1ServiceStatus
v1ServiceStatus :: !(Maybe V1ServiceStatus) -- ^ "status"
  } deriving (Int -> V1Service -> ShowS
[V1Service] -> ShowS
V1Service -> String
(Int -> V1Service -> ShowS)
-> (V1Service -> String)
-> ([V1Service] -> ShowS)
-> Show V1Service
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Service] -> ShowS
$cshowList :: [V1Service] -> ShowS
show :: V1Service -> String
$cshow :: V1Service -> String
showsPrec :: Int -> V1Service -> ShowS
$cshowsPrec :: Int -> V1Service -> ShowS
P.Show, V1Service -> V1Service -> Bool
(V1Service -> V1Service -> Bool)
-> (V1Service -> V1Service -> Bool) -> Eq V1Service
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Service -> V1Service -> Bool
$c/= :: V1Service -> V1Service -> Bool
== :: V1Service -> V1Service -> Bool
$c== :: V1Service -> V1Service -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Service
instance A.FromJSON V1Service where
  parseJSON :: Value -> Parser V1Service
parseJSON = String -> (Object -> Parser V1Service) -> Value -> Parser V1Service
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Service" ((Object -> Parser V1Service) -> Value -> Parser V1Service)
-> (Object -> Parser V1Service) -> Value -> Parser V1Service
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1ServiceSpec
-> Maybe V1ServiceStatus
-> V1Service
V1Service
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1ServiceSpec
 -> Maybe V1ServiceStatus
 -> V1Service)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1ServiceSpec
      -> Maybe V1ServiceStatus
      -> V1Service)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1ServiceSpec
   -> Maybe V1ServiceStatus
   -> V1Service)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1ServiceSpec -> Maybe V1ServiceStatus -> V1Service)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1ServiceSpec -> Maybe V1ServiceStatus -> V1Service)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1ServiceSpec -> Maybe V1ServiceStatus -> V1Service)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe V1ServiceSpec -> Maybe V1ServiceStatus -> V1Service)
-> Parser (Maybe V1ServiceSpec)
-> Parser (Maybe V1ServiceStatus -> V1Service)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ServiceSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1ServiceStatus -> V1Service)
-> Parser (Maybe V1ServiceStatus) -> Parser V1Service
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ServiceStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1Service
instance A.ToJSON V1Service where
  toJSON :: V1Service -> Value
toJSON V1Service {Maybe Text
Maybe V1ServiceStatus
Maybe V1ServiceSpec
Maybe V1ObjectMeta
v1ServiceStatus :: Maybe V1ServiceStatus
v1ServiceSpec :: Maybe V1ServiceSpec
v1ServiceMetadata :: Maybe V1ObjectMeta
v1ServiceKind :: Maybe Text
v1ServiceApiVersion :: Maybe Text
v1ServiceStatus :: V1Service -> Maybe V1ServiceStatus
v1ServiceSpec :: V1Service -> Maybe V1ServiceSpec
v1ServiceMetadata :: V1Service -> Maybe V1ObjectMeta
v1ServiceKind :: V1Service -> Maybe Text
v1ServiceApiVersion :: V1Service -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServiceApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServiceKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1ServiceMetadata
      , Text
"spec" Text -> Maybe V1ServiceSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ServiceSpec
v1ServiceSpec
      , Text
"status" Text -> Maybe V1ServiceStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ServiceStatus
v1ServiceStatus
      ]


-- | Construct a value of type 'V1Service' (by applying it's required fields, if any)
mkV1Service
  :: V1Service
mkV1Service :: V1Service
mkV1Service =
  V1Service :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1ServiceSpec
-> Maybe V1ServiceStatus
-> V1Service
V1Service
  { v1ServiceApiVersion :: Maybe Text
v1ServiceApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ServiceKind :: Maybe Text
v1ServiceKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ServiceMetadata :: Maybe V1ObjectMeta
v1ServiceMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1ServiceSpec :: Maybe V1ServiceSpec
v1ServiceSpec = Maybe V1ServiceSpec
forall a. Maybe a
Nothing
  , v1ServiceStatus :: Maybe V1ServiceStatus
v1ServiceStatus = Maybe V1ServiceStatus
forall a. Maybe a
Nothing
  }

-- ** V1ServiceAccount
-- | V1ServiceAccount
-- ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets
data V1ServiceAccount = V1ServiceAccount
  { V1ServiceAccount -> Maybe Text
v1ServiceAccountApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ServiceAccount -> Maybe Bool
v1ServiceAccountAutomountServiceAccountToken :: !(Maybe Bool) -- ^ "automountServiceAccountToken" - AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.
  , V1ServiceAccount -> Maybe [V1LocalObjectReference]
v1ServiceAccountImagePullSecrets :: !(Maybe [V1LocalObjectReference]) -- ^ "imagePullSecrets" - ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
  , V1ServiceAccount -> Maybe Text
v1ServiceAccountKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ServiceAccount -> Maybe V1ObjectMeta
v1ServiceAccountMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1ServiceAccount -> Maybe [V1ObjectReference]
v1ServiceAccountSecrets :: !(Maybe [V1ObjectReference]) -- ^ "secrets" - Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount. More info: https://kubernetes.io/docs/concepts/configuration/secret
  } deriving (Int -> V1ServiceAccount -> ShowS
[V1ServiceAccount] -> ShowS
V1ServiceAccount -> String
(Int -> V1ServiceAccount -> ShowS)
-> (V1ServiceAccount -> String)
-> ([V1ServiceAccount] -> ShowS)
-> Show V1ServiceAccount
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ServiceAccount] -> ShowS
$cshowList :: [V1ServiceAccount] -> ShowS
show :: V1ServiceAccount -> String
$cshow :: V1ServiceAccount -> String
showsPrec :: Int -> V1ServiceAccount -> ShowS
$cshowsPrec :: Int -> V1ServiceAccount -> ShowS
P.Show, V1ServiceAccount -> V1ServiceAccount -> Bool
(V1ServiceAccount -> V1ServiceAccount -> Bool)
-> (V1ServiceAccount -> V1ServiceAccount -> Bool)
-> Eq V1ServiceAccount
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ServiceAccount -> V1ServiceAccount -> Bool
$c/= :: V1ServiceAccount -> V1ServiceAccount -> Bool
== :: V1ServiceAccount -> V1ServiceAccount -> Bool
$c== :: V1ServiceAccount -> V1ServiceAccount -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ServiceAccount
instance A.FromJSON V1ServiceAccount where
  parseJSON :: Value -> Parser V1ServiceAccount
parseJSON = String
-> (Object -> Parser V1ServiceAccount)
-> Value
-> Parser V1ServiceAccount
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ServiceAccount" ((Object -> Parser V1ServiceAccount)
 -> Value -> Parser V1ServiceAccount)
-> (Object -> Parser V1ServiceAccount)
-> Value
-> Parser V1ServiceAccount
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Bool
-> Maybe [V1LocalObjectReference]
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1ObjectReference]
-> V1ServiceAccount
V1ServiceAccount
      (Maybe Text
 -> Maybe Bool
 -> Maybe [V1LocalObjectReference]
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe [V1ObjectReference]
 -> V1ServiceAccount)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe [V1LocalObjectReference]
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [V1ObjectReference]
      -> V1ServiceAccount)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Bool
   -> Maybe [V1LocalObjectReference]
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [V1ObjectReference]
   -> V1ServiceAccount)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [V1LocalObjectReference]
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [V1ObjectReference]
      -> V1ServiceAccount)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"automountServiceAccountToken")
      Parser
  (Maybe [V1LocalObjectReference]
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [V1ObjectReference]
   -> V1ServiceAccount)
-> Parser (Maybe [V1LocalObjectReference])
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [V1ObjectReference]
      -> V1ServiceAccount)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1LocalObjectReference])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"imagePullSecrets")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [V1ObjectReference]
   -> V1ServiceAccount)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe [V1ObjectReference] -> V1ServiceAccount)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe [V1ObjectReference] -> V1ServiceAccount)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe [V1ObjectReference] -> V1ServiceAccount)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe [V1ObjectReference] -> V1ServiceAccount)
-> Parser (Maybe [V1ObjectReference]) -> Parser V1ServiceAccount
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1ObjectReference])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secrets")

-- | ToJSON V1ServiceAccount
instance A.ToJSON V1ServiceAccount where
  toJSON :: V1ServiceAccount -> Value
toJSON V1ServiceAccount {Maybe Bool
Maybe [V1ObjectReference]
Maybe [V1LocalObjectReference]
Maybe Text
Maybe V1ObjectMeta
v1ServiceAccountSecrets :: Maybe [V1ObjectReference]
v1ServiceAccountMetadata :: Maybe V1ObjectMeta
v1ServiceAccountKind :: Maybe Text
v1ServiceAccountImagePullSecrets :: Maybe [V1LocalObjectReference]
v1ServiceAccountAutomountServiceAccountToken :: Maybe Bool
v1ServiceAccountApiVersion :: Maybe Text
v1ServiceAccountSecrets :: V1ServiceAccount -> Maybe [V1ObjectReference]
v1ServiceAccountMetadata :: V1ServiceAccount -> Maybe V1ObjectMeta
v1ServiceAccountKind :: V1ServiceAccount -> Maybe Text
v1ServiceAccountImagePullSecrets :: V1ServiceAccount -> Maybe [V1LocalObjectReference]
v1ServiceAccountAutomountServiceAccountToken :: V1ServiceAccount -> Maybe Bool
v1ServiceAccountApiVersion :: V1ServiceAccount -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServiceAccountApiVersion
      , Text
"automountServiceAccountToken" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ServiceAccountAutomountServiceAccountToken
      , Text
"imagePullSecrets" Text -> Maybe [V1LocalObjectReference] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1LocalObjectReference]
v1ServiceAccountImagePullSecrets
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServiceAccountKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1ServiceAccountMetadata
      , Text
"secrets" Text -> Maybe [V1ObjectReference] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ObjectReference]
v1ServiceAccountSecrets
      ]


-- | Construct a value of type 'V1ServiceAccount' (by applying it's required fields, if any)
mkV1ServiceAccount
  :: V1ServiceAccount
mkV1ServiceAccount :: V1ServiceAccount
mkV1ServiceAccount =
  V1ServiceAccount :: Maybe Text
-> Maybe Bool
-> Maybe [V1LocalObjectReference]
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1ObjectReference]
-> V1ServiceAccount
V1ServiceAccount
  { v1ServiceAccountApiVersion :: Maybe Text
v1ServiceAccountApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ServiceAccountAutomountServiceAccountToken :: Maybe Bool
v1ServiceAccountAutomountServiceAccountToken = Maybe Bool
forall a. Maybe a
Nothing
  , v1ServiceAccountImagePullSecrets :: Maybe [V1LocalObjectReference]
v1ServiceAccountImagePullSecrets = Maybe [V1LocalObjectReference]
forall a. Maybe a
Nothing
  , v1ServiceAccountKind :: Maybe Text
v1ServiceAccountKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ServiceAccountMetadata :: Maybe V1ObjectMeta
v1ServiceAccountMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1ServiceAccountSecrets :: Maybe [V1ObjectReference]
v1ServiceAccountSecrets = Maybe [V1ObjectReference]
forall a. Maybe a
Nothing
  }

-- ** V1ServiceAccountList
-- | V1ServiceAccountList
-- ServiceAccountList is a list of ServiceAccount objects
data V1ServiceAccountList = V1ServiceAccountList
  { V1ServiceAccountList -> Maybe Text
v1ServiceAccountListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ServiceAccountList -> [V1ServiceAccount]
v1ServiceAccountListItems :: !([V1ServiceAccount]) -- ^ /Required/ "items" - List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  , V1ServiceAccountList -> Maybe Text
v1ServiceAccountListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ServiceAccountList -> Maybe V1ListMeta
v1ServiceAccountListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1ServiceAccountList -> ShowS
[V1ServiceAccountList] -> ShowS
V1ServiceAccountList -> String
(Int -> V1ServiceAccountList -> ShowS)
-> (V1ServiceAccountList -> String)
-> ([V1ServiceAccountList] -> ShowS)
-> Show V1ServiceAccountList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ServiceAccountList] -> ShowS
$cshowList :: [V1ServiceAccountList] -> ShowS
show :: V1ServiceAccountList -> String
$cshow :: V1ServiceAccountList -> String
showsPrec :: Int -> V1ServiceAccountList -> ShowS
$cshowsPrec :: Int -> V1ServiceAccountList -> ShowS
P.Show, V1ServiceAccountList -> V1ServiceAccountList -> Bool
(V1ServiceAccountList -> V1ServiceAccountList -> Bool)
-> (V1ServiceAccountList -> V1ServiceAccountList -> Bool)
-> Eq V1ServiceAccountList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ServiceAccountList -> V1ServiceAccountList -> Bool
$c/= :: V1ServiceAccountList -> V1ServiceAccountList -> Bool
== :: V1ServiceAccountList -> V1ServiceAccountList -> Bool
$c== :: V1ServiceAccountList -> V1ServiceAccountList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ServiceAccountList
instance A.FromJSON V1ServiceAccountList where
  parseJSON :: Value -> Parser V1ServiceAccountList
parseJSON = String
-> (Object -> Parser V1ServiceAccountList)
-> Value
-> Parser V1ServiceAccountList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ServiceAccountList" ((Object -> Parser V1ServiceAccountList)
 -> Value -> Parser V1ServiceAccountList)
-> (Object -> Parser V1ServiceAccountList)
-> Value
-> Parser V1ServiceAccountList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1ServiceAccount]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ServiceAccountList
V1ServiceAccountList
      (Maybe Text
 -> [V1ServiceAccount]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1ServiceAccountList)
-> Parser (Maybe Text)
-> Parser
     ([V1ServiceAccount]
      -> Maybe Text -> Maybe V1ListMeta -> V1ServiceAccountList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1ServiceAccount]
   -> Maybe Text -> Maybe V1ListMeta -> V1ServiceAccountList)
-> Parser [V1ServiceAccount]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1ServiceAccountList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1ServiceAccount]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1ServiceAccountList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1ServiceAccountList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1ServiceAccountList)
-> Parser (Maybe V1ListMeta) -> Parser V1ServiceAccountList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1ServiceAccountList
instance A.ToJSON V1ServiceAccountList where
  toJSON :: V1ServiceAccountList -> Value
toJSON V1ServiceAccountList {[V1ServiceAccount]
Maybe Text
Maybe V1ListMeta
v1ServiceAccountListMetadata :: Maybe V1ListMeta
v1ServiceAccountListKind :: Maybe Text
v1ServiceAccountListItems :: [V1ServiceAccount]
v1ServiceAccountListApiVersion :: Maybe Text
v1ServiceAccountListMetadata :: V1ServiceAccountList -> Maybe V1ListMeta
v1ServiceAccountListKind :: V1ServiceAccountList -> Maybe Text
v1ServiceAccountListItems :: V1ServiceAccountList -> [V1ServiceAccount]
v1ServiceAccountListApiVersion :: V1ServiceAccountList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServiceAccountListApiVersion
      , Text
"items" Text -> [V1ServiceAccount] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1ServiceAccount]
v1ServiceAccountListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServiceAccountListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1ServiceAccountListMetadata
      ]


-- | Construct a value of type 'V1ServiceAccountList' (by applying it's required fields, if any)
mkV1ServiceAccountList
  :: [V1ServiceAccount] -- ^ 'v1ServiceAccountListItems': List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  -> V1ServiceAccountList
mkV1ServiceAccountList :: [V1ServiceAccount] -> V1ServiceAccountList
mkV1ServiceAccountList [V1ServiceAccount]
v1ServiceAccountListItems =
  V1ServiceAccountList :: Maybe Text
-> [V1ServiceAccount]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ServiceAccountList
V1ServiceAccountList
  { v1ServiceAccountListApiVersion :: Maybe Text
v1ServiceAccountListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1ServiceAccount]
v1ServiceAccountListItems :: [V1ServiceAccount]
v1ServiceAccountListItems :: [V1ServiceAccount]
v1ServiceAccountListItems
  , v1ServiceAccountListKind :: Maybe Text
v1ServiceAccountListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ServiceAccountListMetadata :: Maybe V1ListMeta
v1ServiceAccountListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1ServiceAccountTokenProjection
-- | V1ServiceAccountTokenProjection
-- ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).
data V1ServiceAccountTokenProjection = V1ServiceAccountTokenProjection
  { V1ServiceAccountTokenProjection -> Maybe Text
v1ServiceAccountTokenProjectionAudience :: !(Maybe Text) -- ^ "audience" - Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
  , V1ServiceAccountTokenProjection -> Maybe Integer
v1ServiceAccountTokenProjectionExpirationSeconds :: !(Maybe Integer) -- ^ "expirationSeconds" - ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
  , V1ServiceAccountTokenProjection -> Text
v1ServiceAccountTokenProjectionPath :: !(Text) -- ^ /Required/ "path" - Path is the path relative to the mount point of the file to project the token into.
  } deriving (Int -> V1ServiceAccountTokenProjection -> ShowS
[V1ServiceAccountTokenProjection] -> ShowS
V1ServiceAccountTokenProjection -> String
(Int -> V1ServiceAccountTokenProjection -> ShowS)
-> (V1ServiceAccountTokenProjection -> String)
-> ([V1ServiceAccountTokenProjection] -> ShowS)
-> Show V1ServiceAccountTokenProjection
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ServiceAccountTokenProjection] -> ShowS
$cshowList :: [V1ServiceAccountTokenProjection] -> ShowS
show :: V1ServiceAccountTokenProjection -> String
$cshow :: V1ServiceAccountTokenProjection -> String
showsPrec :: Int -> V1ServiceAccountTokenProjection -> ShowS
$cshowsPrec :: Int -> V1ServiceAccountTokenProjection -> ShowS
P.Show, V1ServiceAccountTokenProjection
-> V1ServiceAccountTokenProjection -> Bool
(V1ServiceAccountTokenProjection
 -> V1ServiceAccountTokenProjection -> Bool)
-> (V1ServiceAccountTokenProjection
    -> V1ServiceAccountTokenProjection -> Bool)
-> Eq V1ServiceAccountTokenProjection
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ServiceAccountTokenProjection
-> V1ServiceAccountTokenProjection -> Bool
$c/= :: V1ServiceAccountTokenProjection
-> V1ServiceAccountTokenProjection -> Bool
== :: V1ServiceAccountTokenProjection
-> V1ServiceAccountTokenProjection -> Bool
$c== :: V1ServiceAccountTokenProjection
-> V1ServiceAccountTokenProjection -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ServiceAccountTokenProjection
instance A.FromJSON V1ServiceAccountTokenProjection where
  parseJSON :: Value -> Parser V1ServiceAccountTokenProjection
parseJSON = String
-> (Object -> Parser V1ServiceAccountTokenProjection)
-> Value
-> Parser V1ServiceAccountTokenProjection
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ServiceAccountTokenProjection" ((Object -> Parser V1ServiceAccountTokenProjection)
 -> Value -> Parser V1ServiceAccountTokenProjection)
-> (Object -> Parser V1ServiceAccountTokenProjection)
-> Value
-> Parser V1ServiceAccountTokenProjection
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Integer -> Text -> V1ServiceAccountTokenProjection
V1ServiceAccountTokenProjection
      (Maybe Text
 -> Maybe Integer -> Text -> V1ServiceAccountTokenProjection)
-> Parser (Maybe Text)
-> Parser
     (Maybe Integer -> Text -> V1ServiceAccountTokenProjection)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"audience")
      Parser (Maybe Integer -> Text -> V1ServiceAccountTokenProjection)
-> Parser (Maybe Integer)
-> Parser (Text -> V1ServiceAccountTokenProjection)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"expirationSeconds")
      Parser (Text -> V1ServiceAccountTokenProjection)
-> Parser Text -> Parser V1ServiceAccountTokenProjection
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"path")

-- | ToJSON V1ServiceAccountTokenProjection
instance A.ToJSON V1ServiceAccountTokenProjection where
  toJSON :: V1ServiceAccountTokenProjection -> Value
toJSON V1ServiceAccountTokenProjection {Maybe Integer
Maybe Text
Text
v1ServiceAccountTokenProjectionPath :: Text
v1ServiceAccountTokenProjectionExpirationSeconds :: Maybe Integer
v1ServiceAccountTokenProjectionAudience :: Maybe Text
v1ServiceAccountTokenProjectionPath :: V1ServiceAccountTokenProjection -> Text
v1ServiceAccountTokenProjectionExpirationSeconds :: V1ServiceAccountTokenProjection -> Maybe Integer
v1ServiceAccountTokenProjectionAudience :: V1ServiceAccountTokenProjection -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"audience" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServiceAccountTokenProjectionAudience
      , Text
"expirationSeconds" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1ServiceAccountTokenProjectionExpirationSeconds
      , Text
"path" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ServiceAccountTokenProjectionPath
      ]


-- | Construct a value of type 'V1ServiceAccountTokenProjection' (by applying it's required fields, if any)
mkV1ServiceAccountTokenProjection
  :: Text -- ^ 'v1ServiceAccountTokenProjectionPath': Path is the path relative to the mount point of the file to project the token into.
  -> V1ServiceAccountTokenProjection
mkV1ServiceAccountTokenProjection :: Text -> V1ServiceAccountTokenProjection
mkV1ServiceAccountTokenProjection Text
v1ServiceAccountTokenProjectionPath =
  V1ServiceAccountTokenProjection :: Maybe Text
-> Maybe Integer -> Text -> V1ServiceAccountTokenProjection
V1ServiceAccountTokenProjection
  { v1ServiceAccountTokenProjectionAudience :: Maybe Text
v1ServiceAccountTokenProjectionAudience = Maybe Text
forall a. Maybe a
Nothing
  , v1ServiceAccountTokenProjectionExpirationSeconds :: Maybe Integer
v1ServiceAccountTokenProjectionExpirationSeconds = Maybe Integer
forall a. Maybe a
Nothing
  , Text
v1ServiceAccountTokenProjectionPath :: Text
v1ServiceAccountTokenProjectionPath :: Text
v1ServiceAccountTokenProjectionPath
  }

-- ** V1ServiceList
-- | V1ServiceList
-- ServiceList holds a list of services.
data V1ServiceList = V1ServiceList
  { V1ServiceList -> Maybe Text
v1ServiceListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ServiceList -> [V1Service]
v1ServiceListItems :: !([V1Service]) -- ^ /Required/ "items" - List of services
  , V1ServiceList -> Maybe Text
v1ServiceListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ServiceList -> Maybe V1ListMeta
v1ServiceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1ServiceList -> ShowS
[V1ServiceList] -> ShowS
V1ServiceList -> String
(Int -> V1ServiceList -> ShowS)
-> (V1ServiceList -> String)
-> ([V1ServiceList] -> ShowS)
-> Show V1ServiceList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ServiceList] -> ShowS
$cshowList :: [V1ServiceList] -> ShowS
show :: V1ServiceList -> String
$cshow :: V1ServiceList -> String
showsPrec :: Int -> V1ServiceList -> ShowS
$cshowsPrec :: Int -> V1ServiceList -> ShowS
P.Show, V1ServiceList -> V1ServiceList -> Bool
(V1ServiceList -> V1ServiceList -> Bool)
-> (V1ServiceList -> V1ServiceList -> Bool) -> Eq V1ServiceList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ServiceList -> V1ServiceList -> Bool
$c/= :: V1ServiceList -> V1ServiceList -> Bool
== :: V1ServiceList -> V1ServiceList -> Bool
$c== :: V1ServiceList -> V1ServiceList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ServiceList
instance A.FromJSON V1ServiceList where
  parseJSON :: Value -> Parser V1ServiceList
parseJSON = String
-> (Object -> Parser V1ServiceList)
-> Value
-> Parser V1ServiceList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ServiceList" ((Object -> Parser V1ServiceList) -> Value -> Parser V1ServiceList)
-> (Object -> Parser V1ServiceList)
-> Value
-> Parser V1ServiceList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1Service] -> Maybe Text -> Maybe V1ListMeta -> V1ServiceList
V1ServiceList
      (Maybe Text
 -> [V1Service] -> Maybe Text -> Maybe V1ListMeta -> V1ServiceList)
-> Parser (Maybe Text)
-> Parser
     ([V1Service] -> Maybe Text -> Maybe V1ListMeta -> V1ServiceList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1Service] -> Maybe Text -> Maybe V1ListMeta -> V1ServiceList)
-> Parser [V1Service]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1ServiceList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1Service]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1ServiceList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1ServiceList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1ServiceList)
-> Parser (Maybe V1ListMeta) -> Parser V1ServiceList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1ServiceList
instance A.ToJSON V1ServiceList where
  toJSON :: V1ServiceList -> Value
toJSON V1ServiceList {[V1Service]
Maybe Text
Maybe V1ListMeta
v1ServiceListMetadata :: Maybe V1ListMeta
v1ServiceListKind :: Maybe Text
v1ServiceListItems :: [V1Service]
v1ServiceListApiVersion :: Maybe Text
v1ServiceListMetadata :: V1ServiceList -> Maybe V1ListMeta
v1ServiceListKind :: V1ServiceList -> Maybe Text
v1ServiceListItems :: V1ServiceList -> [V1Service]
v1ServiceListApiVersion :: V1ServiceList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServiceListApiVersion
      , Text
"items" Text -> [V1Service] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1Service]
v1ServiceListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServiceListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1ServiceListMetadata
      ]


-- | Construct a value of type 'V1ServiceList' (by applying it's required fields, if any)
mkV1ServiceList
  :: [V1Service] -- ^ 'v1ServiceListItems': List of services
  -> V1ServiceList
mkV1ServiceList :: [V1Service] -> V1ServiceList
mkV1ServiceList [V1Service]
v1ServiceListItems =
  V1ServiceList :: Maybe Text
-> [V1Service] -> Maybe Text -> Maybe V1ListMeta -> V1ServiceList
V1ServiceList
  { v1ServiceListApiVersion :: Maybe Text
v1ServiceListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1Service]
v1ServiceListItems :: [V1Service]
v1ServiceListItems :: [V1Service]
v1ServiceListItems
  , v1ServiceListKind :: Maybe Text
v1ServiceListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ServiceListMetadata :: Maybe V1ListMeta
v1ServiceListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1ServicePort
-- | V1ServicePort
-- ServicePort contains information on service's port.
data V1ServicePort = V1ServicePort
  { V1ServicePort -> Maybe Text
v1ServicePortName :: !(Maybe Text) -- ^ "name" - The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the &#39;name&#39; field in the EndpointPort. Optional if only one ServicePort is defined on this service.
  , V1ServicePort -> Maybe Int
v1ServicePortNodePort :: !(Maybe Int) -- ^ "nodePort" - The port on each node on which this service is exposed when type&#x3D;NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
  , V1ServicePort -> Int
v1ServicePortPort :: !(Int) -- ^ /Required/ "port" - The port that will be exposed by this service.
  , V1ServicePort -> Maybe Text
v1ServicePortProtocol :: !(Maybe Text) -- ^ "protocol" - The IP protocol for this port. Supports \&quot;TCP\&quot;, \&quot;UDP\&quot;, and \&quot;SCTP\&quot;. Default is TCP.
  , V1ServicePort -> Maybe IntOrString
v1ServicePortTargetPort :: !(Maybe IntOrString) -- ^ "targetPort"
  } deriving (Int -> V1ServicePort -> ShowS
[V1ServicePort] -> ShowS
V1ServicePort -> String
(Int -> V1ServicePort -> ShowS)
-> (V1ServicePort -> String)
-> ([V1ServicePort] -> ShowS)
-> Show V1ServicePort
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ServicePort] -> ShowS
$cshowList :: [V1ServicePort] -> ShowS
show :: V1ServicePort -> String
$cshow :: V1ServicePort -> String
showsPrec :: Int -> V1ServicePort -> ShowS
$cshowsPrec :: Int -> V1ServicePort -> ShowS
P.Show, V1ServicePort -> V1ServicePort -> Bool
(V1ServicePort -> V1ServicePort -> Bool)
-> (V1ServicePort -> V1ServicePort -> Bool) -> Eq V1ServicePort
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ServicePort -> V1ServicePort -> Bool
$c/= :: V1ServicePort -> V1ServicePort -> Bool
== :: V1ServicePort -> V1ServicePort -> Bool
$c== :: V1ServicePort -> V1ServicePort -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ServicePort
instance A.FromJSON V1ServicePort where
  parseJSON :: Value -> Parser V1ServicePort
parseJSON = String
-> (Object -> Parser V1ServicePort)
-> Value
-> Parser V1ServicePort
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ServicePort" ((Object -> Parser V1ServicePort) -> Value -> Parser V1ServicePort)
-> (Object -> Parser V1ServicePort)
-> Value
-> Parser V1ServicePort
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Int
-> Int
-> Maybe Text
-> Maybe IntOrString
-> V1ServicePort
V1ServicePort
      (Maybe Text
 -> Maybe Int
 -> Int
 -> Maybe Text
 -> Maybe IntOrString
 -> V1ServicePort)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Int -> Maybe Text -> Maybe IntOrString -> V1ServicePort)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser
  (Maybe Int
   -> Int -> Maybe Text -> Maybe IntOrString -> V1ServicePort)
-> Parser (Maybe Int)
-> Parser (Int -> Maybe Text -> Maybe IntOrString -> V1ServicePort)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nodePort")
      Parser (Int -> Maybe Text -> Maybe IntOrString -> V1ServicePort)
-> Parser Int
-> Parser (Maybe Text -> Maybe IntOrString -> V1ServicePort)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"port")
      Parser (Maybe Text -> Maybe IntOrString -> V1ServicePort)
-> Parser (Maybe Text)
-> Parser (Maybe IntOrString -> V1ServicePort)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"protocol")
      Parser (Maybe IntOrString -> V1ServicePort)
-> Parser (Maybe IntOrString) -> Parser V1ServicePort
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe IntOrString)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"targetPort")

-- | ToJSON V1ServicePort
instance A.ToJSON V1ServicePort where
  toJSON :: V1ServicePort -> Value
toJSON V1ServicePort {Int
Maybe Int
Maybe Text
Maybe IntOrString
v1ServicePortTargetPort :: Maybe IntOrString
v1ServicePortProtocol :: Maybe Text
v1ServicePortPort :: Int
v1ServicePortNodePort :: Maybe Int
v1ServicePortName :: Maybe Text
v1ServicePortTargetPort :: V1ServicePort -> Maybe IntOrString
v1ServicePortProtocol :: V1ServicePort -> Maybe Text
v1ServicePortPort :: V1ServicePort -> Int
v1ServicePortNodePort :: V1ServicePort -> Maybe Int
v1ServicePortName :: V1ServicePort -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServicePortName
      , Text
"nodePort" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ServicePortNodePort
      , Text
"port" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1ServicePortPort
      , Text
"protocol" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServicePortProtocol
      , Text
"targetPort" Text -> Maybe IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe IntOrString
v1ServicePortTargetPort
      ]


-- | Construct a value of type 'V1ServicePort' (by applying it's required fields, if any)
mkV1ServicePort
  :: Int -- ^ 'v1ServicePortPort': The port that will be exposed by this service.
  -> V1ServicePort
mkV1ServicePort :: Int -> V1ServicePort
mkV1ServicePort Int
v1ServicePortPort =
  V1ServicePort :: Maybe Text
-> Maybe Int
-> Int
-> Maybe Text
-> Maybe IntOrString
-> V1ServicePort
V1ServicePort
  { v1ServicePortName :: Maybe Text
v1ServicePortName = Maybe Text
forall a. Maybe a
Nothing
  , v1ServicePortNodePort :: Maybe Int
v1ServicePortNodePort = Maybe Int
forall a. Maybe a
Nothing
  , Int
v1ServicePortPort :: Int
v1ServicePortPort :: Int
v1ServicePortPort
  , v1ServicePortProtocol :: Maybe Text
v1ServicePortProtocol = Maybe Text
forall a. Maybe a
Nothing
  , v1ServicePortTargetPort :: Maybe IntOrString
v1ServicePortTargetPort = Maybe IntOrString
forall a. Maybe a
Nothing
  }

-- ** V1ServiceSpec
-- | V1ServiceSpec
-- ServiceSpec describes the attributes that a user creates on a service.
data V1ServiceSpec = V1ServiceSpec
  { V1ServiceSpec -> Maybe Text
v1ServiceSpecClusterIp :: !(Maybe Text) -- ^ "clusterIP" - clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are \&quot;None\&quot;, empty string (\&quot;\&quot;), or a valid IP address. \&quot;None\&quot; can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
  , V1ServiceSpec -> Maybe [Text]
v1ServiceSpecExternalIPs :: !(Maybe [Text]) -- ^ "externalIPs" - externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service.  These IPs are not managed by Kubernetes.  The user is responsible for ensuring that traffic arrives at a node with this IP.  A common example is external load-balancers that are not part of the Kubernetes system.
  , V1ServiceSpec -> Maybe Text
v1ServiceSpecExternalName :: !(Maybe Text) -- ^ "externalName" - externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be ExternalName.
  , V1ServiceSpec -> Maybe Text
v1ServiceSpecExternalTrafficPolicy :: !(Maybe Text) -- ^ "externalTrafficPolicy" - externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \&quot;Local\&quot; preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \&quot;Cluster\&quot; obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.
  , V1ServiceSpec -> Maybe Int
v1ServiceSpecHealthCheckNodePort :: !(Maybe Int) -- ^ "healthCheckNodePort" - healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.
  , V1ServiceSpec -> Maybe Text
v1ServiceSpecIpFamily :: !(Maybe Text) -- ^ "ipFamily" - ipFamily specifies whether this Service has a preference for a particular IP family (e.g. IPv4 vs. IPv6).  If a specific IP family is requested, the clusterIP field will be allocated from that family, if it is available in the cluster.  If no IP family is requested, the cluster&#39;s primary IP family will be used. Other IP fields (loadBalancerIP, loadBalancerSourceRanges, externalIPs) and controllers which allocate external load-balancers should use the same IP family.  Endpoints for this Service will be of this family.  This field is immutable after creation. Assigning a ServiceIPFamily not available in the cluster (e.g. IPv6 in IPv4 only cluster) is an error condition and will fail during clusterIP assignment.
  , V1ServiceSpec -> Maybe Text
v1ServiceSpecLoadBalancerIp :: !(Maybe Text) -- ^ "loadBalancerIP" - Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.
  , V1ServiceSpec -> Maybe [Text]
v1ServiceSpecLoadBalancerSourceRanges :: !(Maybe [Text]) -- ^ "loadBalancerSourceRanges" - If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\&quot; More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
  , V1ServiceSpec -> Maybe [V1ServicePort]
v1ServiceSpecPorts :: !(Maybe [V1ServicePort]) -- ^ "ports" - The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
  , V1ServiceSpec -> Maybe Bool
v1ServiceSpecPublishNotReadyAddresses :: !(Maybe Bool) -- ^ "publishNotReadyAddresses" - publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet&#39;s Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery.
  , V1ServiceSpec -> Maybe (Map String Text)
v1ServiceSpecSelector :: !(Maybe (Map.Map String Text)) -- ^ "selector" - Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/
  , V1ServiceSpec -> Maybe Text
v1ServiceSpecSessionAffinity :: !(Maybe Text) -- ^ "sessionAffinity" - Supports \&quot;ClientIP\&quot; and \&quot;None\&quot;. Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
  , V1ServiceSpec -> Maybe V1SessionAffinityConfig
v1ServiceSpecSessionAffinityConfig :: !(Maybe V1SessionAffinityConfig) -- ^ "sessionAffinityConfig"
  , V1ServiceSpec -> Maybe Text
v1ServiceSpecType :: !(Maybe Text) -- ^ "type" - type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \&quot;ExternalName\&quot; maps to the specified externalName. \&quot;ClusterIP\&quot; allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is \&quot;None\&quot;, no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. \&quot;NodePort\&quot; builds on ClusterIP and allocates a port on every node which routes to the clusterIP. \&quot;LoadBalancer\&quot; builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
  } deriving (Int -> V1ServiceSpec -> ShowS
[V1ServiceSpec] -> ShowS
V1ServiceSpec -> String
(Int -> V1ServiceSpec -> ShowS)
-> (V1ServiceSpec -> String)
-> ([V1ServiceSpec] -> ShowS)
-> Show V1ServiceSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ServiceSpec] -> ShowS
$cshowList :: [V1ServiceSpec] -> ShowS
show :: V1ServiceSpec -> String
$cshow :: V1ServiceSpec -> String
showsPrec :: Int -> V1ServiceSpec -> ShowS
$cshowsPrec :: Int -> V1ServiceSpec -> ShowS
P.Show, V1ServiceSpec -> V1ServiceSpec -> Bool
(V1ServiceSpec -> V1ServiceSpec -> Bool)
-> (V1ServiceSpec -> V1ServiceSpec -> Bool) -> Eq V1ServiceSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ServiceSpec -> V1ServiceSpec -> Bool
$c/= :: V1ServiceSpec -> V1ServiceSpec -> Bool
== :: V1ServiceSpec -> V1ServiceSpec -> Bool
$c== :: V1ServiceSpec -> V1ServiceSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ServiceSpec
instance A.FromJSON V1ServiceSpec where
  parseJSON :: Value -> Parser V1ServiceSpec
parseJSON = String
-> (Object -> Parser V1ServiceSpec)
-> Value
-> Parser V1ServiceSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ServiceSpec" ((Object -> Parser V1ServiceSpec) -> Value -> Parser V1ServiceSpec)
-> (Object -> Parser V1ServiceSpec)
-> Value
-> Parser V1ServiceSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe [V1ServicePort]
-> Maybe Bool
-> Maybe (Map String Text)
-> Maybe Text
-> Maybe V1SessionAffinityConfig
-> Maybe Text
-> V1ServiceSpec
V1ServiceSpec
      (Maybe Text
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe [V1ServicePort]
 -> Maybe Bool
 -> Maybe (Map String Text)
 -> Maybe Text
 -> Maybe V1SessionAffinityConfig
 -> Maybe Text
 -> V1ServiceSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [V1ServicePort]
      -> Maybe Bool
      -> Maybe (Map String Text)
      -> Maybe Text
      -> Maybe V1SessionAffinityConfig
      -> Maybe Text
      -> V1ServiceSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"clusterIP")
      Parser
  (Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [V1ServicePort]
   -> Maybe Bool
   -> Maybe (Map String Text)
   -> Maybe Text
   -> Maybe V1SessionAffinityConfig
   -> Maybe Text
   -> V1ServiceSpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [V1ServicePort]
      -> Maybe Bool
      -> Maybe (Map String Text)
      -> Maybe Text
      -> Maybe V1SessionAffinityConfig
      -> Maybe Text
      -> V1ServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"externalIPs")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [V1ServicePort]
   -> Maybe Bool
   -> Maybe (Map String Text)
   -> Maybe Text
   -> Maybe V1SessionAffinityConfig
   -> Maybe Text
   -> V1ServiceSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [V1ServicePort]
      -> Maybe Bool
      -> Maybe (Map String Text)
      -> Maybe Text
      -> Maybe V1SessionAffinityConfig
      -> Maybe Text
      -> V1ServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"externalName")
      Parser
  (Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [V1ServicePort]
   -> Maybe Bool
   -> Maybe (Map String Text)
   -> Maybe Text
   -> Maybe V1SessionAffinityConfig
   -> Maybe Text
   -> V1ServiceSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [V1ServicePort]
      -> Maybe Bool
      -> Maybe (Map String Text)
      -> Maybe Text
      -> Maybe V1SessionAffinityConfig
      -> Maybe Text
      -> V1ServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"externalTrafficPolicy")
      Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [V1ServicePort]
   -> Maybe Bool
   -> Maybe (Map String Text)
   -> Maybe Text
   -> Maybe V1SessionAffinityConfig
   -> Maybe Text
   -> V1ServiceSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe [V1ServicePort]
      -> Maybe Bool
      -> Maybe (Map String Text)
      -> Maybe Text
      -> Maybe V1SessionAffinityConfig
      -> Maybe Text
      -> V1ServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"healthCheckNodePort")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe [V1ServicePort]
   -> Maybe Bool
   -> Maybe (Map String Text)
   -> Maybe Text
   -> Maybe V1SessionAffinityConfig
   -> Maybe Text
   -> V1ServiceSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe [Text]
      -> Maybe [V1ServicePort]
      -> Maybe Bool
      -> Maybe (Map String Text)
      -> Maybe Text
      -> Maybe V1SessionAffinityConfig
      -> Maybe Text
      -> V1ServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ipFamily")
      Parser
  (Maybe Text
   -> Maybe [Text]
   -> Maybe [V1ServicePort]
   -> Maybe Bool
   -> Maybe (Map String Text)
   -> Maybe Text
   -> Maybe V1SessionAffinityConfig
   -> Maybe Text
   -> V1ServiceSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Text]
      -> Maybe [V1ServicePort]
      -> Maybe Bool
      -> Maybe (Map String Text)
      -> Maybe Text
      -> Maybe V1SessionAffinityConfig
      -> Maybe Text
      -> V1ServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"loadBalancerIP")
      Parser
  (Maybe [Text]
   -> Maybe [V1ServicePort]
   -> Maybe Bool
   -> Maybe (Map String Text)
   -> Maybe Text
   -> Maybe V1SessionAffinityConfig
   -> Maybe Text
   -> V1ServiceSpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [V1ServicePort]
      -> Maybe Bool
      -> Maybe (Map String Text)
      -> Maybe Text
      -> Maybe V1SessionAffinityConfig
      -> Maybe Text
      -> V1ServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"loadBalancerSourceRanges")
      Parser
  (Maybe [V1ServicePort]
   -> Maybe Bool
   -> Maybe (Map String Text)
   -> Maybe Text
   -> Maybe V1SessionAffinityConfig
   -> Maybe Text
   -> V1ServiceSpec)
-> Parser (Maybe [V1ServicePort])
-> Parser
     (Maybe Bool
      -> Maybe (Map String Text)
      -> Maybe Text
      -> Maybe V1SessionAffinityConfig
      -> Maybe Text
      -> V1ServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1ServicePort])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ports")
      Parser
  (Maybe Bool
   -> Maybe (Map String Text)
   -> Maybe Text
   -> Maybe V1SessionAffinityConfig
   -> Maybe Text
   -> V1ServiceSpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe (Map String Text)
      -> Maybe Text
      -> Maybe V1SessionAffinityConfig
      -> Maybe Text
      -> V1ServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"publishNotReadyAddresses")
      Parser
  (Maybe (Map String Text)
   -> Maybe Text
   -> Maybe V1SessionAffinityConfig
   -> Maybe Text
   -> V1ServiceSpec)
-> Parser (Maybe (Map String Text))
-> Parser
     (Maybe Text
      -> Maybe V1SessionAffinityConfig -> Maybe Text -> V1ServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")
      Parser
  (Maybe Text
   -> Maybe V1SessionAffinityConfig -> Maybe Text -> V1ServiceSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1SessionAffinityConfig -> Maybe Text -> V1ServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"sessionAffinity")
      Parser
  (Maybe V1SessionAffinityConfig -> Maybe Text -> V1ServiceSpec)
-> Parser (Maybe V1SessionAffinityConfig)
-> Parser (Maybe Text -> V1ServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SessionAffinityConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"sessionAffinityConfig")
      Parser (Maybe Text -> V1ServiceSpec)
-> Parser (Maybe Text) -> Parser V1ServiceSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")

-- | ToJSON V1ServiceSpec
instance A.ToJSON V1ServiceSpec where
  toJSON :: V1ServiceSpec -> Value
toJSON V1ServiceSpec {Maybe Bool
Maybe Int
Maybe [Text]
Maybe [V1ServicePort]
Maybe Text
Maybe (Map String Text)
Maybe V1SessionAffinityConfig
v1ServiceSpecType :: Maybe Text
v1ServiceSpecSessionAffinityConfig :: Maybe V1SessionAffinityConfig
v1ServiceSpecSessionAffinity :: Maybe Text
v1ServiceSpecSelector :: Maybe (Map String Text)
v1ServiceSpecPublishNotReadyAddresses :: Maybe Bool
v1ServiceSpecPorts :: Maybe [V1ServicePort]
v1ServiceSpecLoadBalancerSourceRanges :: Maybe [Text]
v1ServiceSpecLoadBalancerIp :: Maybe Text
v1ServiceSpecIpFamily :: Maybe Text
v1ServiceSpecHealthCheckNodePort :: Maybe Int
v1ServiceSpecExternalTrafficPolicy :: Maybe Text
v1ServiceSpecExternalName :: Maybe Text
v1ServiceSpecExternalIPs :: Maybe [Text]
v1ServiceSpecClusterIp :: Maybe Text
v1ServiceSpecType :: V1ServiceSpec -> Maybe Text
v1ServiceSpecSessionAffinityConfig :: V1ServiceSpec -> Maybe V1SessionAffinityConfig
v1ServiceSpecSessionAffinity :: V1ServiceSpec -> Maybe Text
v1ServiceSpecSelector :: V1ServiceSpec -> Maybe (Map String Text)
v1ServiceSpecPublishNotReadyAddresses :: V1ServiceSpec -> Maybe Bool
v1ServiceSpecPorts :: V1ServiceSpec -> Maybe [V1ServicePort]
v1ServiceSpecLoadBalancerSourceRanges :: V1ServiceSpec -> Maybe [Text]
v1ServiceSpecLoadBalancerIp :: V1ServiceSpec -> Maybe Text
v1ServiceSpecIpFamily :: V1ServiceSpec -> Maybe Text
v1ServiceSpecHealthCheckNodePort :: V1ServiceSpec -> Maybe Int
v1ServiceSpecExternalTrafficPolicy :: V1ServiceSpec -> Maybe Text
v1ServiceSpecExternalName :: V1ServiceSpec -> Maybe Text
v1ServiceSpecExternalIPs :: V1ServiceSpec -> Maybe [Text]
v1ServiceSpecClusterIp :: V1ServiceSpec -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"clusterIP" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServiceSpecClusterIp
      , Text
"externalIPs" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1ServiceSpecExternalIPs
      , Text
"externalName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServiceSpecExternalName
      , Text
"externalTrafficPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServiceSpecExternalTrafficPolicy
      , Text
"healthCheckNodePort" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ServiceSpecHealthCheckNodePort
      , Text
"ipFamily" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServiceSpecIpFamily
      , Text
"loadBalancerIP" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServiceSpecLoadBalancerIp
      , Text
"loadBalancerSourceRanges" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1ServiceSpecLoadBalancerSourceRanges
      , Text
"ports" Text -> Maybe [V1ServicePort] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ServicePort]
v1ServiceSpecPorts
      , Text
"publishNotReadyAddresses" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1ServiceSpecPublishNotReadyAddresses
      , Text
"selector" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1ServiceSpecSelector
      , Text
"sessionAffinity" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServiceSpecSessionAffinity
      , Text
"sessionAffinityConfig" Text -> Maybe V1SessionAffinityConfig -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SessionAffinityConfig
v1ServiceSpecSessionAffinityConfig
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ServiceSpecType
      ]


-- | Construct a value of type 'V1ServiceSpec' (by applying it's required fields, if any)
mkV1ServiceSpec
  :: V1ServiceSpec
mkV1ServiceSpec :: V1ServiceSpec
mkV1ServiceSpec =
  V1ServiceSpec :: Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe [V1ServicePort]
-> Maybe Bool
-> Maybe (Map String Text)
-> Maybe Text
-> Maybe V1SessionAffinityConfig
-> Maybe Text
-> V1ServiceSpec
V1ServiceSpec
  { v1ServiceSpecClusterIp :: Maybe Text
v1ServiceSpecClusterIp = Maybe Text
forall a. Maybe a
Nothing
  , v1ServiceSpecExternalIPs :: Maybe [Text]
v1ServiceSpecExternalIPs = Maybe [Text]
forall a. Maybe a
Nothing
  , v1ServiceSpecExternalName :: Maybe Text
v1ServiceSpecExternalName = Maybe Text
forall a. Maybe a
Nothing
  , v1ServiceSpecExternalTrafficPolicy :: Maybe Text
v1ServiceSpecExternalTrafficPolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1ServiceSpecHealthCheckNodePort :: Maybe Int
v1ServiceSpecHealthCheckNodePort = Maybe Int
forall a. Maybe a
Nothing
  , v1ServiceSpecIpFamily :: Maybe Text
v1ServiceSpecIpFamily = Maybe Text
forall a. Maybe a
Nothing
  , v1ServiceSpecLoadBalancerIp :: Maybe Text
v1ServiceSpecLoadBalancerIp = Maybe Text
forall a. Maybe a
Nothing
  , v1ServiceSpecLoadBalancerSourceRanges :: Maybe [Text]
v1ServiceSpecLoadBalancerSourceRanges = Maybe [Text]
forall a. Maybe a
Nothing
  , v1ServiceSpecPorts :: Maybe [V1ServicePort]
v1ServiceSpecPorts = Maybe [V1ServicePort]
forall a. Maybe a
Nothing
  , v1ServiceSpecPublishNotReadyAddresses :: Maybe Bool
v1ServiceSpecPublishNotReadyAddresses = Maybe Bool
forall a. Maybe a
Nothing
  , v1ServiceSpecSelector :: Maybe (Map String Text)
v1ServiceSpecSelector = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , v1ServiceSpecSessionAffinity :: Maybe Text
v1ServiceSpecSessionAffinity = Maybe Text
forall a. Maybe a
Nothing
  , v1ServiceSpecSessionAffinityConfig :: Maybe V1SessionAffinityConfig
v1ServiceSpecSessionAffinityConfig = Maybe V1SessionAffinityConfig
forall a. Maybe a
Nothing
  , v1ServiceSpecType :: Maybe Text
v1ServiceSpecType = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1ServiceStatus
-- | V1ServiceStatus
-- ServiceStatus represents the current status of a service.
data V1ServiceStatus = V1ServiceStatus
  { V1ServiceStatus -> Maybe V1LoadBalancerStatus
v1ServiceStatusLoadBalancer :: !(Maybe V1LoadBalancerStatus) -- ^ "loadBalancer"
  } deriving (Int -> V1ServiceStatus -> ShowS
[V1ServiceStatus] -> ShowS
V1ServiceStatus -> String
(Int -> V1ServiceStatus -> ShowS)
-> (V1ServiceStatus -> String)
-> ([V1ServiceStatus] -> ShowS)
-> Show V1ServiceStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ServiceStatus] -> ShowS
$cshowList :: [V1ServiceStatus] -> ShowS
show :: V1ServiceStatus -> String
$cshow :: V1ServiceStatus -> String
showsPrec :: Int -> V1ServiceStatus -> ShowS
$cshowsPrec :: Int -> V1ServiceStatus -> ShowS
P.Show, V1ServiceStatus -> V1ServiceStatus -> Bool
(V1ServiceStatus -> V1ServiceStatus -> Bool)
-> (V1ServiceStatus -> V1ServiceStatus -> Bool)
-> Eq V1ServiceStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ServiceStatus -> V1ServiceStatus -> Bool
$c/= :: V1ServiceStatus -> V1ServiceStatus -> Bool
== :: V1ServiceStatus -> V1ServiceStatus -> Bool
$c== :: V1ServiceStatus -> V1ServiceStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ServiceStatus
instance A.FromJSON V1ServiceStatus where
  parseJSON :: Value -> Parser V1ServiceStatus
parseJSON = String
-> (Object -> Parser V1ServiceStatus)
-> Value
-> Parser V1ServiceStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ServiceStatus" ((Object -> Parser V1ServiceStatus)
 -> Value -> Parser V1ServiceStatus)
-> (Object -> Parser V1ServiceStatus)
-> Value
-> Parser V1ServiceStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1LoadBalancerStatus -> V1ServiceStatus
V1ServiceStatus
      (Maybe V1LoadBalancerStatus -> V1ServiceStatus)
-> Parser (Maybe V1LoadBalancerStatus) -> Parser V1ServiceStatus
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1LoadBalancerStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"loadBalancer")

-- | ToJSON V1ServiceStatus
instance A.ToJSON V1ServiceStatus where
  toJSON :: V1ServiceStatus -> Value
toJSON V1ServiceStatus {Maybe V1LoadBalancerStatus
v1ServiceStatusLoadBalancer :: Maybe V1LoadBalancerStatus
v1ServiceStatusLoadBalancer :: V1ServiceStatus -> Maybe V1LoadBalancerStatus
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"loadBalancer" Text -> Maybe V1LoadBalancerStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LoadBalancerStatus
v1ServiceStatusLoadBalancer
      ]


-- | Construct a value of type 'V1ServiceStatus' (by applying it's required fields, if any)
mkV1ServiceStatus
  :: V1ServiceStatus
mkV1ServiceStatus :: V1ServiceStatus
mkV1ServiceStatus =
  V1ServiceStatus :: Maybe V1LoadBalancerStatus -> V1ServiceStatus
V1ServiceStatus
  { v1ServiceStatusLoadBalancer :: Maybe V1LoadBalancerStatus
v1ServiceStatusLoadBalancer = Maybe V1LoadBalancerStatus
forall a. Maybe a
Nothing
  }

-- ** V1SessionAffinityConfig
-- | V1SessionAffinityConfig
-- SessionAffinityConfig represents the configurations of session affinity.
data V1SessionAffinityConfig = V1SessionAffinityConfig
  { V1SessionAffinityConfig -> Maybe V1ClientIPConfig
v1SessionAffinityConfigClientIp :: !(Maybe V1ClientIPConfig) -- ^ "clientIP"
  } deriving (Int -> V1SessionAffinityConfig -> ShowS
[V1SessionAffinityConfig] -> ShowS
V1SessionAffinityConfig -> String
(Int -> V1SessionAffinityConfig -> ShowS)
-> (V1SessionAffinityConfig -> String)
-> ([V1SessionAffinityConfig] -> ShowS)
-> Show V1SessionAffinityConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SessionAffinityConfig] -> ShowS
$cshowList :: [V1SessionAffinityConfig] -> ShowS
show :: V1SessionAffinityConfig -> String
$cshow :: V1SessionAffinityConfig -> String
showsPrec :: Int -> V1SessionAffinityConfig -> ShowS
$cshowsPrec :: Int -> V1SessionAffinityConfig -> ShowS
P.Show, V1SessionAffinityConfig -> V1SessionAffinityConfig -> Bool
(V1SessionAffinityConfig -> V1SessionAffinityConfig -> Bool)
-> (V1SessionAffinityConfig -> V1SessionAffinityConfig -> Bool)
-> Eq V1SessionAffinityConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SessionAffinityConfig -> V1SessionAffinityConfig -> Bool
$c/= :: V1SessionAffinityConfig -> V1SessionAffinityConfig -> Bool
== :: V1SessionAffinityConfig -> V1SessionAffinityConfig -> Bool
$c== :: V1SessionAffinityConfig -> V1SessionAffinityConfig -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SessionAffinityConfig
instance A.FromJSON V1SessionAffinityConfig where
  parseJSON :: Value -> Parser V1SessionAffinityConfig
parseJSON = String
-> (Object -> Parser V1SessionAffinityConfig)
-> Value
-> Parser V1SessionAffinityConfig
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SessionAffinityConfig" ((Object -> Parser V1SessionAffinityConfig)
 -> Value -> Parser V1SessionAffinityConfig)
-> (Object -> Parser V1SessionAffinityConfig)
-> Value
-> Parser V1SessionAffinityConfig
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1ClientIPConfig -> V1SessionAffinityConfig
V1SessionAffinityConfig
      (Maybe V1ClientIPConfig -> V1SessionAffinityConfig)
-> Parser (Maybe V1ClientIPConfig)
-> Parser V1SessionAffinityConfig
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1ClientIPConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"clientIP")

-- | ToJSON V1SessionAffinityConfig
instance A.ToJSON V1SessionAffinityConfig where
  toJSON :: V1SessionAffinityConfig -> Value
toJSON V1SessionAffinityConfig {Maybe V1ClientIPConfig
v1SessionAffinityConfigClientIp :: Maybe V1ClientIPConfig
v1SessionAffinityConfigClientIp :: V1SessionAffinityConfig -> Maybe V1ClientIPConfig
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"clientIP" Text -> Maybe V1ClientIPConfig -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ClientIPConfig
v1SessionAffinityConfigClientIp
      ]


-- | Construct a value of type 'V1SessionAffinityConfig' (by applying it's required fields, if any)
mkV1SessionAffinityConfig
  :: V1SessionAffinityConfig
mkV1SessionAffinityConfig :: V1SessionAffinityConfig
mkV1SessionAffinityConfig =
  V1SessionAffinityConfig :: Maybe V1ClientIPConfig -> V1SessionAffinityConfig
V1SessionAffinityConfig
  { v1SessionAffinityConfigClientIp :: Maybe V1ClientIPConfig
v1SessionAffinityConfigClientIp = Maybe V1ClientIPConfig
forall a. Maybe a
Nothing
  }

-- ** V1StatefulSet
-- | V1StatefulSet
-- StatefulSet represents a set of pods with consistent identities. Identities are defined as:  - Network: A single stable DNS and hostname.  - Storage: As many VolumeClaims as requested. The StatefulSet guarantees that a given network identity will always map to the same storage identity.
data V1StatefulSet = V1StatefulSet
  { V1StatefulSet -> Maybe Text
v1StatefulSetApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1StatefulSet -> Maybe Text
v1StatefulSetKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1StatefulSet -> Maybe V1ObjectMeta
v1StatefulSetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1StatefulSet -> Maybe V1StatefulSetSpec
v1StatefulSetSpec :: !(Maybe V1StatefulSetSpec) -- ^ "spec"
  , V1StatefulSet -> Maybe V1StatefulSetStatus
v1StatefulSetStatus :: !(Maybe V1StatefulSetStatus) -- ^ "status"
  } deriving (Int -> V1StatefulSet -> ShowS
[V1StatefulSet] -> ShowS
V1StatefulSet -> String
(Int -> V1StatefulSet -> ShowS)
-> (V1StatefulSet -> String)
-> ([V1StatefulSet] -> ShowS)
-> Show V1StatefulSet
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1StatefulSet] -> ShowS
$cshowList :: [V1StatefulSet] -> ShowS
show :: V1StatefulSet -> String
$cshow :: V1StatefulSet -> String
showsPrec :: Int -> V1StatefulSet -> ShowS
$cshowsPrec :: Int -> V1StatefulSet -> ShowS
P.Show, V1StatefulSet -> V1StatefulSet -> Bool
(V1StatefulSet -> V1StatefulSet -> Bool)
-> (V1StatefulSet -> V1StatefulSet -> Bool) -> Eq V1StatefulSet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1StatefulSet -> V1StatefulSet -> Bool
$c/= :: V1StatefulSet -> V1StatefulSet -> Bool
== :: V1StatefulSet -> V1StatefulSet -> Bool
$c== :: V1StatefulSet -> V1StatefulSet -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1StatefulSet
instance A.FromJSON V1StatefulSet where
  parseJSON :: Value -> Parser V1StatefulSet
parseJSON = String
-> (Object -> Parser V1StatefulSet)
-> Value
-> Parser V1StatefulSet
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1StatefulSet" ((Object -> Parser V1StatefulSet) -> Value -> Parser V1StatefulSet)
-> (Object -> Parser V1StatefulSet)
-> Value
-> Parser V1StatefulSet
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1StatefulSetSpec
-> Maybe V1StatefulSetStatus
-> V1StatefulSet
V1StatefulSet
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1StatefulSetSpec
 -> Maybe V1StatefulSetStatus
 -> V1StatefulSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1StatefulSetSpec
      -> Maybe V1StatefulSetStatus
      -> V1StatefulSet)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1StatefulSetSpec
   -> Maybe V1StatefulSetStatus
   -> V1StatefulSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1StatefulSetSpec
      -> Maybe V1StatefulSetStatus
      -> V1StatefulSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1StatefulSetSpec
   -> Maybe V1StatefulSetStatus
   -> V1StatefulSet)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1StatefulSetSpec
      -> Maybe V1StatefulSetStatus -> V1StatefulSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1StatefulSetSpec
   -> Maybe V1StatefulSetStatus -> V1StatefulSet)
-> Parser (Maybe V1StatefulSetSpec)
-> Parser (Maybe V1StatefulSetStatus -> V1StatefulSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1StatefulSetSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1StatefulSetStatus -> V1StatefulSet)
-> Parser (Maybe V1StatefulSetStatus) -> Parser V1StatefulSet
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1StatefulSetStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1StatefulSet
instance A.ToJSON V1StatefulSet where
  toJSON :: V1StatefulSet -> Value
toJSON V1StatefulSet {Maybe Text
Maybe V1StatefulSetStatus
Maybe V1StatefulSetSpec
Maybe V1ObjectMeta
v1StatefulSetStatus :: Maybe V1StatefulSetStatus
v1StatefulSetSpec :: Maybe V1StatefulSetSpec
v1StatefulSetMetadata :: Maybe V1ObjectMeta
v1StatefulSetKind :: Maybe Text
v1StatefulSetApiVersion :: Maybe Text
v1StatefulSetStatus :: V1StatefulSet -> Maybe V1StatefulSetStatus
v1StatefulSetSpec :: V1StatefulSet -> Maybe V1StatefulSetSpec
v1StatefulSetMetadata :: V1StatefulSet -> Maybe V1ObjectMeta
v1StatefulSetKind :: V1StatefulSet -> Maybe Text
v1StatefulSetApiVersion :: V1StatefulSet -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatefulSetApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatefulSetKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1StatefulSetMetadata
      , Text
"spec" Text -> Maybe V1StatefulSetSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1StatefulSetSpec
v1StatefulSetSpec
      , Text
"status" Text -> Maybe V1StatefulSetStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1StatefulSetStatus
v1StatefulSetStatus
      ]


-- | Construct a value of type 'V1StatefulSet' (by applying it's required fields, if any)
mkV1StatefulSet
  :: V1StatefulSet
mkV1StatefulSet :: V1StatefulSet
mkV1StatefulSet =
  V1StatefulSet :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1StatefulSetSpec
-> Maybe V1StatefulSetStatus
-> V1StatefulSet
V1StatefulSet
  { v1StatefulSetApiVersion :: Maybe Text
v1StatefulSetApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1StatefulSetKind :: Maybe Text
v1StatefulSetKind = Maybe Text
forall a. Maybe a
Nothing
  , v1StatefulSetMetadata :: Maybe V1ObjectMeta
v1StatefulSetMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1StatefulSetSpec :: Maybe V1StatefulSetSpec
v1StatefulSetSpec = Maybe V1StatefulSetSpec
forall a. Maybe a
Nothing
  , v1StatefulSetStatus :: Maybe V1StatefulSetStatus
v1StatefulSetStatus = Maybe V1StatefulSetStatus
forall a. Maybe a
Nothing
  }

-- ** V1StatefulSetCondition
-- | V1StatefulSetCondition
-- StatefulSetCondition describes the state of a statefulset at a certain point.
data V1StatefulSetCondition = V1StatefulSetCondition
  { V1StatefulSetCondition -> Maybe DateTime
v1StatefulSetConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.
  , V1StatefulSetCondition -> Maybe Text
v1StatefulSetConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.
  , V1StatefulSetCondition -> Maybe Text
v1StatefulSetConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition&#39;s last transition.
  , V1StatefulSetCondition -> Text
v1StatefulSetConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , V1StatefulSetCondition -> Text
v1StatefulSetConditionType :: !(Text) -- ^ /Required/ "type" - Type of statefulset condition.
  } deriving (Int -> V1StatefulSetCondition -> ShowS
[V1StatefulSetCondition] -> ShowS
V1StatefulSetCondition -> String
(Int -> V1StatefulSetCondition -> ShowS)
-> (V1StatefulSetCondition -> String)
-> ([V1StatefulSetCondition] -> ShowS)
-> Show V1StatefulSetCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1StatefulSetCondition] -> ShowS
$cshowList :: [V1StatefulSetCondition] -> ShowS
show :: V1StatefulSetCondition -> String
$cshow :: V1StatefulSetCondition -> String
showsPrec :: Int -> V1StatefulSetCondition -> ShowS
$cshowsPrec :: Int -> V1StatefulSetCondition -> ShowS
P.Show, V1StatefulSetCondition -> V1StatefulSetCondition -> Bool
(V1StatefulSetCondition -> V1StatefulSetCondition -> Bool)
-> (V1StatefulSetCondition -> V1StatefulSetCondition -> Bool)
-> Eq V1StatefulSetCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1StatefulSetCondition -> V1StatefulSetCondition -> Bool
$c/= :: V1StatefulSetCondition -> V1StatefulSetCondition -> Bool
== :: V1StatefulSetCondition -> V1StatefulSetCondition -> Bool
$c== :: V1StatefulSetCondition -> V1StatefulSetCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1StatefulSetCondition
instance A.FromJSON V1StatefulSetCondition where
  parseJSON :: Value -> Parser V1StatefulSetCondition
parseJSON = String
-> (Object -> Parser V1StatefulSetCondition)
-> Value
-> Parser V1StatefulSetCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1StatefulSetCondition" ((Object -> Parser V1StatefulSetCondition)
 -> Value -> Parser V1StatefulSetCondition)
-> (Object -> Parser V1StatefulSetCondition)
-> Value
-> Parser V1StatefulSetCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1StatefulSetCondition
V1StatefulSetCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1StatefulSetCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text -> Text -> Text -> V1StatefulSetCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text
   -> Maybe Text -> Text -> Text -> V1StatefulSetCondition)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Text -> Text -> V1StatefulSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1StatefulSetCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1StatefulSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1StatefulSetCondition)
-> Parser Text -> Parser (Text -> V1StatefulSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1StatefulSetCondition)
-> Parser Text -> Parser V1StatefulSetCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1StatefulSetCondition
instance A.ToJSON V1StatefulSetCondition where
  toJSON :: V1StatefulSetCondition -> Value
toJSON V1StatefulSetCondition {Maybe Text
Maybe DateTime
Text
v1StatefulSetConditionType :: Text
v1StatefulSetConditionStatus :: Text
v1StatefulSetConditionReason :: Maybe Text
v1StatefulSetConditionMessage :: Maybe Text
v1StatefulSetConditionLastTransitionTime :: Maybe DateTime
v1StatefulSetConditionType :: V1StatefulSetCondition -> Text
v1StatefulSetConditionStatus :: V1StatefulSetCondition -> Text
v1StatefulSetConditionReason :: V1StatefulSetCondition -> Maybe Text
v1StatefulSetConditionMessage :: V1StatefulSetCondition -> Maybe Text
v1StatefulSetConditionLastTransitionTime :: V1StatefulSetCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1StatefulSetConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatefulSetConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatefulSetConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1StatefulSetConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1StatefulSetConditionType
      ]


-- | Construct a value of type 'V1StatefulSetCondition' (by applying it's required fields, if any)
mkV1StatefulSetCondition
  :: Text -- ^ 'v1StatefulSetConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'v1StatefulSetConditionType': Type of statefulset condition.
  -> V1StatefulSetCondition
mkV1StatefulSetCondition :: Text -> Text -> V1StatefulSetCondition
mkV1StatefulSetCondition Text
v1StatefulSetConditionStatus Text
v1StatefulSetConditionType =
  V1StatefulSetCondition :: Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1StatefulSetCondition
V1StatefulSetCondition
  { v1StatefulSetConditionLastTransitionTime :: Maybe DateTime
v1StatefulSetConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1StatefulSetConditionMessage :: Maybe Text
v1StatefulSetConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1StatefulSetConditionReason :: Maybe Text
v1StatefulSetConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1StatefulSetConditionStatus :: Text
v1StatefulSetConditionStatus :: Text
v1StatefulSetConditionStatus
  , Text
v1StatefulSetConditionType :: Text
v1StatefulSetConditionType :: Text
v1StatefulSetConditionType
  }

-- ** V1StatefulSetList
-- | V1StatefulSetList
-- StatefulSetList is a collection of StatefulSets.
data V1StatefulSetList = V1StatefulSetList
  { V1StatefulSetList -> Maybe Text
v1StatefulSetListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1StatefulSetList -> [V1StatefulSet]
v1StatefulSetListItems :: !([V1StatefulSet]) -- ^ /Required/ "items"
  , V1StatefulSetList -> Maybe Text
v1StatefulSetListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1StatefulSetList -> Maybe V1ListMeta
v1StatefulSetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1StatefulSetList -> ShowS
[V1StatefulSetList] -> ShowS
V1StatefulSetList -> String
(Int -> V1StatefulSetList -> ShowS)
-> (V1StatefulSetList -> String)
-> ([V1StatefulSetList] -> ShowS)
-> Show V1StatefulSetList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1StatefulSetList] -> ShowS
$cshowList :: [V1StatefulSetList] -> ShowS
show :: V1StatefulSetList -> String
$cshow :: V1StatefulSetList -> String
showsPrec :: Int -> V1StatefulSetList -> ShowS
$cshowsPrec :: Int -> V1StatefulSetList -> ShowS
P.Show, V1StatefulSetList -> V1StatefulSetList -> Bool
(V1StatefulSetList -> V1StatefulSetList -> Bool)
-> (V1StatefulSetList -> V1StatefulSetList -> Bool)
-> Eq V1StatefulSetList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1StatefulSetList -> V1StatefulSetList -> Bool
$c/= :: V1StatefulSetList -> V1StatefulSetList -> Bool
== :: V1StatefulSetList -> V1StatefulSetList -> Bool
$c== :: V1StatefulSetList -> V1StatefulSetList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1StatefulSetList
instance A.FromJSON V1StatefulSetList where
  parseJSON :: Value -> Parser V1StatefulSetList
parseJSON = String
-> (Object -> Parser V1StatefulSetList)
-> Value
-> Parser V1StatefulSetList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1StatefulSetList" ((Object -> Parser V1StatefulSetList)
 -> Value -> Parser V1StatefulSetList)
-> (Object -> Parser V1StatefulSetList)
-> Value
-> Parser V1StatefulSetList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1StatefulSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1StatefulSetList
V1StatefulSetList
      (Maybe Text
 -> [V1StatefulSet]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1StatefulSetList)
-> Parser (Maybe Text)
-> Parser
     ([V1StatefulSet]
      -> Maybe Text -> Maybe V1ListMeta -> V1StatefulSetList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1StatefulSet]
   -> Maybe Text -> Maybe V1ListMeta -> V1StatefulSetList)
-> Parser [V1StatefulSet]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1StatefulSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1StatefulSet]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1StatefulSetList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1StatefulSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1StatefulSetList)
-> Parser (Maybe V1ListMeta) -> Parser V1StatefulSetList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1StatefulSetList
instance A.ToJSON V1StatefulSetList where
  toJSON :: V1StatefulSetList -> Value
toJSON V1StatefulSetList {[V1StatefulSet]
Maybe Text
Maybe V1ListMeta
v1StatefulSetListMetadata :: Maybe V1ListMeta
v1StatefulSetListKind :: Maybe Text
v1StatefulSetListItems :: [V1StatefulSet]
v1StatefulSetListApiVersion :: Maybe Text
v1StatefulSetListMetadata :: V1StatefulSetList -> Maybe V1ListMeta
v1StatefulSetListKind :: V1StatefulSetList -> Maybe Text
v1StatefulSetListItems :: V1StatefulSetList -> [V1StatefulSet]
v1StatefulSetListApiVersion :: V1StatefulSetList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatefulSetListApiVersion
      , Text
"items" Text -> [V1StatefulSet] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1StatefulSet]
v1StatefulSetListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatefulSetListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1StatefulSetListMetadata
      ]


-- | Construct a value of type 'V1StatefulSetList' (by applying it's required fields, if any)
mkV1StatefulSetList
  :: [V1StatefulSet] -- ^ 'v1StatefulSetListItems' 
  -> V1StatefulSetList
mkV1StatefulSetList :: [V1StatefulSet] -> V1StatefulSetList
mkV1StatefulSetList [V1StatefulSet]
v1StatefulSetListItems =
  V1StatefulSetList :: Maybe Text
-> [V1StatefulSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1StatefulSetList
V1StatefulSetList
  { v1StatefulSetListApiVersion :: Maybe Text
v1StatefulSetListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1StatefulSet]
v1StatefulSetListItems :: [V1StatefulSet]
v1StatefulSetListItems :: [V1StatefulSet]
v1StatefulSetListItems
  , v1StatefulSetListKind :: Maybe Text
v1StatefulSetListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1StatefulSetListMetadata :: Maybe V1ListMeta
v1StatefulSetListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1StatefulSetSpec
-- | V1StatefulSetSpec
-- A StatefulSetSpec is the specification of a StatefulSet.
data V1StatefulSetSpec = V1StatefulSetSpec
  { V1StatefulSetSpec -> Maybe Text
v1StatefulSetSpecPodManagementPolicy :: !(Maybe Text) -- ^ "podManagementPolicy" - podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is &#x60;OrderedReady&#x60;, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is &#x60;Parallel&#x60; which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.
  , V1StatefulSetSpec -> Maybe Int
v1StatefulSetSpecReplicas :: !(Maybe Int) -- ^ "replicas" - replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.
  , V1StatefulSetSpec -> Maybe Int
v1StatefulSetSpecRevisionHistoryLimit :: !(Maybe Int) -- ^ "revisionHistoryLimit" - revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet&#39;s revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.
  , V1StatefulSetSpec -> V1LabelSelector
v1StatefulSetSpecSelector :: !(V1LabelSelector) -- ^ /Required/ "selector"
  , V1StatefulSetSpec -> Text
v1StatefulSetSpecServiceName :: !(Text) -- ^ /Required/ "serviceName" - serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \&quot;pod-specific-string\&quot; is managed by the StatefulSet controller.
  , V1StatefulSetSpec -> V1PodTemplateSpec
v1StatefulSetSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"
  , V1StatefulSetSpec -> Maybe V1StatefulSetUpdateStrategy
v1StatefulSetSpecUpdateStrategy :: !(Maybe V1StatefulSetUpdateStrategy) -- ^ "updateStrategy"
  , V1StatefulSetSpec -> Maybe [V1PersistentVolumeClaim]
v1StatefulSetSpecVolumeClaimTemplates :: !(Maybe [V1PersistentVolumeClaim]) -- ^ "volumeClaimTemplates" - volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.
  } deriving (Int -> V1StatefulSetSpec -> ShowS
[V1StatefulSetSpec] -> ShowS
V1StatefulSetSpec -> String
(Int -> V1StatefulSetSpec -> ShowS)
-> (V1StatefulSetSpec -> String)
-> ([V1StatefulSetSpec] -> ShowS)
-> Show V1StatefulSetSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1StatefulSetSpec] -> ShowS
$cshowList :: [V1StatefulSetSpec] -> ShowS
show :: V1StatefulSetSpec -> String
$cshow :: V1StatefulSetSpec -> String
showsPrec :: Int -> V1StatefulSetSpec -> ShowS
$cshowsPrec :: Int -> V1StatefulSetSpec -> ShowS
P.Show, V1StatefulSetSpec -> V1StatefulSetSpec -> Bool
(V1StatefulSetSpec -> V1StatefulSetSpec -> Bool)
-> (V1StatefulSetSpec -> V1StatefulSetSpec -> Bool)
-> Eq V1StatefulSetSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1StatefulSetSpec -> V1StatefulSetSpec -> Bool
$c/= :: V1StatefulSetSpec -> V1StatefulSetSpec -> Bool
== :: V1StatefulSetSpec -> V1StatefulSetSpec -> Bool
$c== :: V1StatefulSetSpec -> V1StatefulSetSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1StatefulSetSpec
instance A.FromJSON V1StatefulSetSpec where
  parseJSON :: Value -> Parser V1StatefulSetSpec
parseJSON = String
-> (Object -> Parser V1StatefulSetSpec)
-> Value
-> Parser V1StatefulSetSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1StatefulSetSpec" ((Object -> Parser V1StatefulSetSpec)
 -> Value -> Parser V1StatefulSetSpec)
-> (Object -> Parser V1StatefulSetSpec)
-> Value
-> Parser V1StatefulSetSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Int
-> Maybe Int
-> V1LabelSelector
-> Text
-> V1PodTemplateSpec
-> Maybe V1StatefulSetUpdateStrategy
-> Maybe [V1PersistentVolumeClaim]
-> V1StatefulSetSpec
V1StatefulSetSpec
      (Maybe Text
 -> Maybe Int
 -> Maybe Int
 -> V1LabelSelector
 -> Text
 -> V1PodTemplateSpec
 -> Maybe V1StatefulSetUpdateStrategy
 -> Maybe [V1PersistentVolumeClaim]
 -> V1StatefulSetSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> V1LabelSelector
      -> Text
      -> V1PodTemplateSpec
      -> Maybe V1StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim]
      -> V1StatefulSetSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"podManagementPolicy")
      Parser
  (Maybe Int
   -> Maybe Int
   -> V1LabelSelector
   -> Text
   -> V1PodTemplateSpec
   -> Maybe V1StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim]
   -> V1StatefulSetSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> V1LabelSelector
      -> Text
      -> V1PodTemplateSpec
      -> Maybe V1StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim]
      -> V1StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")
      Parser
  (Maybe Int
   -> V1LabelSelector
   -> Text
   -> V1PodTemplateSpec
   -> Maybe V1StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim]
   -> V1StatefulSetSpec)
-> Parser (Maybe Int)
-> Parser
     (V1LabelSelector
      -> Text
      -> V1PodTemplateSpec
      -> Maybe V1StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim]
      -> V1StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"revisionHistoryLimit")
      Parser
  (V1LabelSelector
   -> Text
   -> V1PodTemplateSpec
   -> Maybe V1StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim]
   -> V1StatefulSetSpec)
-> Parser V1LabelSelector
-> Parser
     (Text
      -> V1PodTemplateSpec
      -> Maybe V1StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim]
      -> V1StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1LabelSelector
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"selector")
      Parser
  (Text
   -> V1PodTemplateSpec
   -> Maybe V1StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim]
   -> V1StatefulSetSpec)
-> Parser Text
-> Parser
     (V1PodTemplateSpec
      -> Maybe V1StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim]
      -> V1StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"serviceName")
      Parser
  (V1PodTemplateSpec
   -> Maybe V1StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim]
   -> V1StatefulSetSpec)
-> Parser V1PodTemplateSpec
-> Parser
     (Maybe V1StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim] -> V1StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1PodTemplateSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"template")
      Parser
  (Maybe V1StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim] -> V1StatefulSetSpec)
-> Parser (Maybe V1StatefulSetUpdateStrategy)
-> Parser (Maybe [V1PersistentVolumeClaim] -> V1StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1StatefulSetUpdateStrategy)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updateStrategy")
      Parser (Maybe [V1PersistentVolumeClaim] -> V1StatefulSetSpec)
-> Parser (Maybe [V1PersistentVolumeClaim])
-> Parser V1StatefulSetSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1PersistentVolumeClaim])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeClaimTemplates")

-- | ToJSON V1StatefulSetSpec
instance A.ToJSON V1StatefulSetSpec where
  toJSON :: V1StatefulSetSpec -> Value
toJSON V1StatefulSetSpec {Maybe Int
Maybe [V1PersistentVolumeClaim]
Maybe Text
Maybe V1StatefulSetUpdateStrategy
Text
V1PodTemplateSpec
V1LabelSelector
v1StatefulSetSpecVolumeClaimTemplates :: Maybe [V1PersistentVolumeClaim]
v1StatefulSetSpecUpdateStrategy :: Maybe V1StatefulSetUpdateStrategy
v1StatefulSetSpecTemplate :: V1PodTemplateSpec
v1StatefulSetSpecServiceName :: Text
v1StatefulSetSpecSelector :: V1LabelSelector
v1StatefulSetSpecRevisionHistoryLimit :: Maybe Int
v1StatefulSetSpecReplicas :: Maybe Int
v1StatefulSetSpecPodManagementPolicy :: Maybe Text
v1StatefulSetSpecVolumeClaimTemplates :: V1StatefulSetSpec -> Maybe [V1PersistentVolumeClaim]
v1StatefulSetSpecUpdateStrategy :: V1StatefulSetSpec -> Maybe V1StatefulSetUpdateStrategy
v1StatefulSetSpecTemplate :: V1StatefulSetSpec -> V1PodTemplateSpec
v1StatefulSetSpecServiceName :: V1StatefulSetSpec -> Text
v1StatefulSetSpecSelector :: V1StatefulSetSpec -> V1LabelSelector
v1StatefulSetSpecRevisionHistoryLimit :: V1StatefulSetSpec -> Maybe Int
v1StatefulSetSpecReplicas :: V1StatefulSetSpec -> Maybe Int
v1StatefulSetSpecPodManagementPolicy :: V1StatefulSetSpec -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"podManagementPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatefulSetSpecPodManagementPolicy
      , Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1StatefulSetSpecReplicas
      , Text
"revisionHistoryLimit" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1StatefulSetSpecRevisionHistoryLimit
      , Text
"selector" Text -> V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1LabelSelector
v1StatefulSetSpecSelector
      , Text
"serviceName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1StatefulSetSpecServiceName
      , Text
"template" Text -> V1PodTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1PodTemplateSpec
v1StatefulSetSpecTemplate
      , Text
"updateStrategy" Text -> Maybe V1StatefulSetUpdateStrategy -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1StatefulSetUpdateStrategy
v1StatefulSetSpecUpdateStrategy
      , Text
"volumeClaimTemplates" Text -> Maybe [V1PersistentVolumeClaim] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1PersistentVolumeClaim]
v1StatefulSetSpecVolumeClaimTemplates
      ]


-- | Construct a value of type 'V1StatefulSetSpec' (by applying it's required fields, if any)
mkV1StatefulSetSpec
  :: V1LabelSelector -- ^ 'v1StatefulSetSpecSelector' 
  -> Text -- ^ 'v1StatefulSetSpecServiceName': serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.
  -> V1PodTemplateSpec -- ^ 'v1StatefulSetSpecTemplate' 
  -> V1StatefulSetSpec
mkV1StatefulSetSpec :: V1LabelSelector -> Text -> V1PodTemplateSpec -> V1StatefulSetSpec
mkV1StatefulSetSpec V1LabelSelector
v1StatefulSetSpecSelector Text
v1StatefulSetSpecServiceName V1PodTemplateSpec
v1StatefulSetSpecTemplate =
  V1StatefulSetSpec :: Maybe Text
-> Maybe Int
-> Maybe Int
-> V1LabelSelector
-> Text
-> V1PodTemplateSpec
-> Maybe V1StatefulSetUpdateStrategy
-> Maybe [V1PersistentVolumeClaim]
-> V1StatefulSetSpec
V1StatefulSetSpec
  { v1StatefulSetSpecPodManagementPolicy :: Maybe Text
v1StatefulSetSpecPodManagementPolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1StatefulSetSpecReplicas :: Maybe Int
v1StatefulSetSpecReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1StatefulSetSpecRevisionHistoryLimit :: Maybe Int
v1StatefulSetSpecRevisionHistoryLimit = Maybe Int
forall a. Maybe a
Nothing
  , V1LabelSelector
v1StatefulSetSpecSelector :: V1LabelSelector
v1StatefulSetSpecSelector :: V1LabelSelector
v1StatefulSetSpecSelector
  , Text
v1StatefulSetSpecServiceName :: Text
v1StatefulSetSpecServiceName :: Text
v1StatefulSetSpecServiceName
  , V1PodTemplateSpec
v1StatefulSetSpecTemplate :: V1PodTemplateSpec
v1StatefulSetSpecTemplate :: V1PodTemplateSpec
v1StatefulSetSpecTemplate
  , v1StatefulSetSpecUpdateStrategy :: Maybe V1StatefulSetUpdateStrategy
v1StatefulSetSpecUpdateStrategy = Maybe V1StatefulSetUpdateStrategy
forall a. Maybe a
Nothing
  , v1StatefulSetSpecVolumeClaimTemplates :: Maybe [V1PersistentVolumeClaim]
v1StatefulSetSpecVolumeClaimTemplates = Maybe [V1PersistentVolumeClaim]
forall a. Maybe a
Nothing
  }

-- ** V1StatefulSetStatus
-- | V1StatefulSetStatus
-- StatefulSetStatus represents the current state of a StatefulSet.
data V1StatefulSetStatus = V1StatefulSetStatus
  { V1StatefulSetStatus -> Maybe Int
v1StatefulSetStatusCollisionCount :: !(Maybe Int) -- ^ "collisionCount" - collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.
  , V1StatefulSetStatus -> Maybe [V1StatefulSetCondition]
v1StatefulSetStatusConditions :: !(Maybe [V1StatefulSetCondition]) -- ^ "conditions" - Represents the latest available observations of a statefulset&#39;s current state.
  , V1StatefulSetStatus -> Maybe Int
v1StatefulSetStatusCurrentReplicas :: !(Maybe Int) -- ^ "currentReplicas" - currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.
  , V1StatefulSetStatus -> Maybe Text
v1StatefulSetStatusCurrentRevision :: !(Maybe Text) -- ^ "currentRevision" - currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).
  , V1StatefulSetStatus -> Maybe Integer
v1StatefulSetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet&#39;s generation, which is updated on mutation by the API Server.
  , V1StatefulSetStatus -> Maybe Int
v1StatefulSetStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.
  , V1StatefulSetStatus -> Int
v1StatefulSetStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - replicas is the number of Pods created by the StatefulSet controller.
  , V1StatefulSetStatus -> Maybe Text
v1StatefulSetStatusUpdateRevision :: !(Maybe Text) -- ^ "updateRevision" - updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)
  , V1StatefulSetStatus -> Maybe Int
v1StatefulSetStatusUpdatedReplicas :: !(Maybe Int) -- ^ "updatedReplicas" - updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.
  } deriving (Int -> V1StatefulSetStatus -> ShowS
[V1StatefulSetStatus] -> ShowS
V1StatefulSetStatus -> String
(Int -> V1StatefulSetStatus -> ShowS)
-> (V1StatefulSetStatus -> String)
-> ([V1StatefulSetStatus] -> ShowS)
-> Show V1StatefulSetStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1StatefulSetStatus] -> ShowS
$cshowList :: [V1StatefulSetStatus] -> ShowS
show :: V1StatefulSetStatus -> String
$cshow :: V1StatefulSetStatus -> String
showsPrec :: Int -> V1StatefulSetStatus -> ShowS
$cshowsPrec :: Int -> V1StatefulSetStatus -> ShowS
P.Show, V1StatefulSetStatus -> V1StatefulSetStatus -> Bool
(V1StatefulSetStatus -> V1StatefulSetStatus -> Bool)
-> (V1StatefulSetStatus -> V1StatefulSetStatus -> Bool)
-> Eq V1StatefulSetStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1StatefulSetStatus -> V1StatefulSetStatus -> Bool
$c/= :: V1StatefulSetStatus -> V1StatefulSetStatus -> Bool
== :: V1StatefulSetStatus -> V1StatefulSetStatus -> Bool
$c== :: V1StatefulSetStatus -> V1StatefulSetStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1StatefulSetStatus
instance A.FromJSON V1StatefulSetStatus where
  parseJSON :: Value -> Parser V1StatefulSetStatus
parseJSON = String
-> (Object -> Parser V1StatefulSetStatus)
-> Value
-> Parser V1StatefulSetStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1StatefulSetStatus" ((Object -> Parser V1StatefulSetStatus)
 -> Value -> Parser V1StatefulSetStatus)
-> (Object -> Parser V1StatefulSetStatus)
-> Value
-> Parser V1StatefulSetStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe [V1StatefulSetCondition]
-> Maybe Int
-> Maybe Text
-> Maybe Integer
-> Maybe Int
-> Int
-> Maybe Text
-> Maybe Int
-> V1StatefulSetStatus
V1StatefulSetStatus
      (Maybe Int
 -> Maybe [V1StatefulSetCondition]
 -> Maybe Int
 -> Maybe Text
 -> Maybe Integer
 -> Maybe Int
 -> Int
 -> Maybe Text
 -> Maybe Int
 -> V1StatefulSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe [V1StatefulSetCondition]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Int
      -> Maybe Text
      -> Maybe Int
      -> V1StatefulSetStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"collisionCount")
      Parser
  (Maybe [V1StatefulSetCondition]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Int
   -> Maybe Text
   -> Maybe Int
   -> V1StatefulSetStatus)
-> Parser (Maybe [V1StatefulSetCondition])
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Int
      -> Maybe Text
      -> Maybe Int
      -> V1StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1StatefulSetCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Int
   -> Maybe Text
   -> Maybe Int
   -> V1StatefulSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Int
      -> Maybe Text
      -> Maybe Int
      -> V1StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"currentReplicas")
      Parser
  (Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Int
   -> Maybe Text
   -> Maybe Int
   -> V1StatefulSetStatus)
-> Parser (Maybe Text)
-> Parser
     (Maybe Integer
      -> Maybe Int
      -> Int
      -> Maybe Text
      -> Maybe Int
      -> V1StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"currentRevision")
      Parser
  (Maybe Integer
   -> Maybe Int
   -> Int
   -> Maybe Text
   -> Maybe Int
   -> V1StatefulSetStatus)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Int
      -> Int -> Maybe Text -> Maybe Int -> V1StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")
      Parser
  (Maybe Int
   -> Int -> Maybe Text -> Maybe Int -> V1StatefulSetStatus)
-> Parser (Maybe Int)
-> Parser (Int -> Maybe Text -> Maybe Int -> V1StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readyReplicas")
      Parser (Int -> Maybe Text -> Maybe Int -> V1StatefulSetStatus)
-> Parser Int
-> Parser (Maybe Text -> Maybe Int -> V1StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"replicas")
      Parser (Maybe Text -> Maybe Int -> V1StatefulSetStatus)
-> Parser (Maybe Text) -> Parser (Maybe Int -> V1StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updateRevision")
      Parser (Maybe Int -> V1StatefulSetStatus)
-> Parser (Maybe Int) -> Parser V1StatefulSetStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updatedReplicas")

-- | ToJSON V1StatefulSetStatus
instance A.ToJSON V1StatefulSetStatus where
  toJSON :: V1StatefulSetStatus -> Value
toJSON V1StatefulSetStatus {Int
Maybe Int
Maybe Integer
Maybe [V1StatefulSetCondition]
Maybe Text
v1StatefulSetStatusUpdatedReplicas :: Maybe Int
v1StatefulSetStatusUpdateRevision :: Maybe Text
v1StatefulSetStatusReplicas :: Int
v1StatefulSetStatusReadyReplicas :: Maybe Int
v1StatefulSetStatusObservedGeneration :: Maybe Integer
v1StatefulSetStatusCurrentRevision :: Maybe Text
v1StatefulSetStatusCurrentReplicas :: Maybe Int
v1StatefulSetStatusConditions :: Maybe [V1StatefulSetCondition]
v1StatefulSetStatusCollisionCount :: Maybe Int
v1StatefulSetStatusUpdatedReplicas :: V1StatefulSetStatus -> Maybe Int
v1StatefulSetStatusUpdateRevision :: V1StatefulSetStatus -> Maybe Text
v1StatefulSetStatusReplicas :: V1StatefulSetStatus -> Int
v1StatefulSetStatusReadyReplicas :: V1StatefulSetStatus -> Maybe Int
v1StatefulSetStatusObservedGeneration :: V1StatefulSetStatus -> Maybe Integer
v1StatefulSetStatusCurrentRevision :: V1StatefulSetStatus -> Maybe Text
v1StatefulSetStatusCurrentReplicas :: V1StatefulSetStatus -> Maybe Int
v1StatefulSetStatusConditions :: V1StatefulSetStatus -> Maybe [V1StatefulSetCondition]
v1StatefulSetStatusCollisionCount :: V1StatefulSetStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"collisionCount" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1StatefulSetStatusCollisionCount
      , Text
"conditions" Text -> Maybe [V1StatefulSetCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1StatefulSetCondition]
v1StatefulSetStatusConditions
      , Text
"currentReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1StatefulSetStatusCurrentReplicas
      , Text
"currentRevision" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatefulSetStatusCurrentRevision
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1StatefulSetStatusObservedGeneration
      , Text
"readyReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1StatefulSetStatusReadyReplicas
      , Text
"replicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1StatefulSetStatusReplicas
      , Text
"updateRevision" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatefulSetStatusUpdateRevision
      , Text
"updatedReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1StatefulSetStatusUpdatedReplicas
      ]


-- | Construct a value of type 'V1StatefulSetStatus' (by applying it's required fields, if any)
mkV1StatefulSetStatus
  :: Int -- ^ 'v1StatefulSetStatusReplicas': replicas is the number of Pods created by the StatefulSet controller.
  -> V1StatefulSetStatus
mkV1StatefulSetStatus :: Int -> V1StatefulSetStatus
mkV1StatefulSetStatus Int
v1StatefulSetStatusReplicas =
  V1StatefulSetStatus :: Maybe Int
-> Maybe [V1StatefulSetCondition]
-> Maybe Int
-> Maybe Text
-> Maybe Integer
-> Maybe Int
-> Int
-> Maybe Text
-> Maybe Int
-> V1StatefulSetStatus
V1StatefulSetStatus
  { v1StatefulSetStatusCollisionCount :: Maybe Int
v1StatefulSetStatusCollisionCount = Maybe Int
forall a. Maybe a
Nothing
  , v1StatefulSetStatusConditions :: Maybe [V1StatefulSetCondition]
v1StatefulSetStatusConditions = Maybe [V1StatefulSetCondition]
forall a. Maybe a
Nothing
  , v1StatefulSetStatusCurrentReplicas :: Maybe Int
v1StatefulSetStatusCurrentReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1StatefulSetStatusCurrentRevision :: Maybe Text
v1StatefulSetStatusCurrentRevision = Maybe Text
forall a. Maybe a
Nothing
  , v1StatefulSetStatusObservedGeneration :: Maybe Integer
v1StatefulSetStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  , v1StatefulSetStatusReadyReplicas :: Maybe Int
v1StatefulSetStatusReadyReplicas = Maybe Int
forall a. Maybe a
Nothing
  , Int
v1StatefulSetStatusReplicas :: Int
v1StatefulSetStatusReplicas :: Int
v1StatefulSetStatusReplicas
  , v1StatefulSetStatusUpdateRevision :: Maybe Text
v1StatefulSetStatusUpdateRevision = Maybe Text
forall a. Maybe a
Nothing
  , v1StatefulSetStatusUpdatedReplicas :: Maybe Int
v1StatefulSetStatusUpdatedReplicas = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1StatefulSetUpdateStrategy
-- | V1StatefulSetUpdateStrategy
-- StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.
data V1StatefulSetUpdateStrategy = V1StatefulSetUpdateStrategy
  { V1StatefulSetUpdateStrategy
-> Maybe V1RollingUpdateStatefulSetStrategy
v1StatefulSetUpdateStrategyRollingUpdate :: !(Maybe V1RollingUpdateStatefulSetStrategy) -- ^ "rollingUpdate"
  , V1StatefulSetUpdateStrategy -> Maybe Text
v1StatefulSetUpdateStrategyType :: !(Maybe Text) -- ^ "type" - Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.
  } deriving (Int -> V1StatefulSetUpdateStrategy -> ShowS
[V1StatefulSetUpdateStrategy] -> ShowS
V1StatefulSetUpdateStrategy -> String
(Int -> V1StatefulSetUpdateStrategy -> ShowS)
-> (V1StatefulSetUpdateStrategy -> String)
-> ([V1StatefulSetUpdateStrategy] -> ShowS)
-> Show V1StatefulSetUpdateStrategy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1StatefulSetUpdateStrategy] -> ShowS
$cshowList :: [V1StatefulSetUpdateStrategy] -> ShowS
show :: V1StatefulSetUpdateStrategy -> String
$cshow :: V1StatefulSetUpdateStrategy -> String
showsPrec :: Int -> V1StatefulSetUpdateStrategy -> ShowS
$cshowsPrec :: Int -> V1StatefulSetUpdateStrategy -> ShowS
P.Show, V1StatefulSetUpdateStrategy -> V1StatefulSetUpdateStrategy -> Bool
(V1StatefulSetUpdateStrategy
 -> V1StatefulSetUpdateStrategy -> Bool)
-> (V1StatefulSetUpdateStrategy
    -> V1StatefulSetUpdateStrategy -> Bool)
-> Eq V1StatefulSetUpdateStrategy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1StatefulSetUpdateStrategy -> V1StatefulSetUpdateStrategy -> Bool
$c/= :: V1StatefulSetUpdateStrategy -> V1StatefulSetUpdateStrategy -> Bool
== :: V1StatefulSetUpdateStrategy -> V1StatefulSetUpdateStrategy -> Bool
$c== :: V1StatefulSetUpdateStrategy -> V1StatefulSetUpdateStrategy -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1StatefulSetUpdateStrategy
instance A.FromJSON V1StatefulSetUpdateStrategy where
  parseJSON :: Value -> Parser V1StatefulSetUpdateStrategy
parseJSON = String
-> (Object -> Parser V1StatefulSetUpdateStrategy)
-> Value
-> Parser V1StatefulSetUpdateStrategy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1StatefulSetUpdateStrategy" ((Object -> Parser V1StatefulSetUpdateStrategy)
 -> Value -> Parser V1StatefulSetUpdateStrategy)
-> (Object -> Parser V1StatefulSetUpdateStrategy)
-> Value
-> Parser V1StatefulSetUpdateStrategy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1RollingUpdateStatefulSetStrategy
-> Maybe Text -> V1StatefulSetUpdateStrategy
V1StatefulSetUpdateStrategy
      (Maybe V1RollingUpdateStatefulSetStrategy
 -> Maybe Text -> V1StatefulSetUpdateStrategy)
-> Parser (Maybe V1RollingUpdateStatefulSetStrategy)
-> Parser (Maybe Text -> V1StatefulSetUpdateStrategy)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1RollingUpdateStatefulSetStrategy)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rollingUpdate")
      Parser (Maybe Text -> V1StatefulSetUpdateStrategy)
-> Parser (Maybe Text) -> Parser V1StatefulSetUpdateStrategy
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")

-- | ToJSON V1StatefulSetUpdateStrategy
instance A.ToJSON V1StatefulSetUpdateStrategy where
  toJSON :: V1StatefulSetUpdateStrategy -> Value
toJSON V1StatefulSetUpdateStrategy {Maybe Text
Maybe V1RollingUpdateStatefulSetStrategy
v1StatefulSetUpdateStrategyType :: Maybe Text
v1StatefulSetUpdateStrategyRollingUpdate :: Maybe V1RollingUpdateStatefulSetStrategy
v1StatefulSetUpdateStrategyType :: V1StatefulSetUpdateStrategy -> Maybe Text
v1StatefulSetUpdateStrategyRollingUpdate :: V1StatefulSetUpdateStrategy
-> Maybe V1RollingUpdateStatefulSetStrategy
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"rollingUpdate" Text -> Maybe V1RollingUpdateStatefulSetStrategy -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1RollingUpdateStatefulSetStrategy
v1StatefulSetUpdateStrategyRollingUpdate
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatefulSetUpdateStrategyType
      ]


-- | Construct a value of type 'V1StatefulSetUpdateStrategy' (by applying it's required fields, if any)
mkV1StatefulSetUpdateStrategy
  :: V1StatefulSetUpdateStrategy
mkV1StatefulSetUpdateStrategy :: V1StatefulSetUpdateStrategy
mkV1StatefulSetUpdateStrategy =
  V1StatefulSetUpdateStrategy :: Maybe V1RollingUpdateStatefulSetStrategy
-> Maybe Text -> V1StatefulSetUpdateStrategy
V1StatefulSetUpdateStrategy
  { v1StatefulSetUpdateStrategyRollingUpdate :: Maybe V1RollingUpdateStatefulSetStrategy
v1StatefulSetUpdateStrategyRollingUpdate = Maybe V1RollingUpdateStatefulSetStrategy
forall a. Maybe a
Nothing
  , v1StatefulSetUpdateStrategyType :: Maybe Text
v1StatefulSetUpdateStrategyType = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1Status
-- | V1Status
-- Status is a return value for calls that don't return other objects.
data V1Status = V1Status
  { V1Status -> Maybe Text
v1StatusApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1Status -> Maybe Int
v1StatusCode :: !(Maybe Int) -- ^ "code" - Suggested HTTP return code for this status, 0 if not set.
  , V1Status -> Maybe V1StatusDetails
v1StatusDetails :: !(Maybe V1StatusDetails) -- ^ "details"
  , V1Status -> Maybe Text
v1StatusKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1Status -> Maybe Text
v1StatusMessage :: !(Maybe Text) -- ^ "message" - A human-readable description of the status of this operation.
  , V1Status -> Maybe V1ListMeta
v1StatusMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  , V1Status -> Maybe Text
v1StatusReason :: !(Maybe Text) -- ^ "reason" - A machine-readable description of why this operation is in the \&quot;Failure\&quot; status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.
  , V1Status -> Maybe Text
v1StatusStatus :: !(Maybe Text) -- ^ "status" - Status of the operation. One of: \&quot;Success\&quot; or \&quot;Failure\&quot;. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  } deriving (Int -> V1Status -> ShowS
[V1Status] -> ShowS
V1Status -> String
(Int -> V1Status -> ShowS)
-> (V1Status -> String) -> ([V1Status] -> ShowS) -> Show V1Status
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Status] -> ShowS
$cshowList :: [V1Status] -> ShowS
show :: V1Status -> String
$cshow :: V1Status -> String
showsPrec :: Int -> V1Status -> ShowS
$cshowsPrec :: Int -> V1Status -> ShowS
P.Show, V1Status -> V1Status -> Bool
(V1Status -> V1Status -> Bool)
-> (V1Status -> V1Status -> Bool) -> Eq V1Status
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Status -> V1Status -> Bool
$c/= :: V1Status -> V1Status -> Bool
== :: V1Status -> V1Status -> Bool
$c== :: V1Status -> V1Status -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Status
instance A.FromJSON V1Status where
  parseJSON :: Value -> Parser V1Status
parseJSON = String -> (Object -> Parser V1Status) -> Value -> Parser V1Status
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Status" ((Object -> Parser V1Status) -> Value -> Parser V1Status)
-> (Object -> Parser V1Status) -> Value -> Parser V1Status
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Int
-> Maybe V1StatusDetails
-> Maybe Text
-> Maybe Text
-> Maybe V1ListMeta
-> Maybe Text
-> Maybe Text
-> V1Status
V1Status
      (Maybe Text
 -> Maybe Int
 -> Maybe V1StatusDetails
 -> Maybe Text
 -> Maybe Text
 -> Maybe V1ListMeta
 -> Maybe Text
 -> Maybe Text
 -> V1Status)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe V1StatusDetails
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1ListMeta
      -> Maybe Text
      -> Maybe Text
      -> V1Status)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Int
   -> Maybe V1StatusDetails
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1ListMeta
   -> Maybe Text
   -> Maybe Text
   -> V1Status)
-> Parser (Maybe Int)
-> Parser
     (Maybe V1StatusDetails
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1ListMeta
      -> Maybe Text
      -> Maybe Text
      -> V1Status)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"code")
      Parser
  (Maybe V1StatusDetails
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1ListMeta
   -> Maybe Text
   -> Maybe Text
   -> V1Status)
-> Parser (Maybe V1StatusDetails)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe V1ListMeta
      -> Maybe Text
      -> Maybe Text
      -> V1Status)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1StatusDetails)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"details")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe V1ListMeta
   -> Maybe Text
   -> Maybe Text
   -> V1Status)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ListMeta -> Maybe Text -> Maybe Text -> V1Status)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe Text
   -> Maybe V1ListMeta -> Maybe Text -> Maybe Text -> V1Status)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ListMeta -> Maybe Text -> Maybe Text -> V1Status)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe V1ListMeta -> Maybe Text -> Maybe Text -> V1Status)
-> Parser (Maybe V1ListMeta)
-> Parser (Maybe Text -> Maybe Text -> V1Status)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe Text -> Maybe Text -> V1Status)
-> Parser (Maybe Text) -> Parser (Maybe Text -> V1Status)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Maybe Text -> V1Status)
-> Parser (Maybe Text) -> Parser V1Status
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1Status
instance A.ToJSON V1Status where
  toJSON :: V1Status -> Value
toJSON V1Status {Maybe Int
Maybe Text
Maybe V1StatusDetails
Maybe V1ListMeta
v1StatusStatus :: Maybe Text
v1StatusReason :: Maybe Text
v1StatusMetadata :: Maybe V1ListMeta
v1StatusMessage :: Maybe Text
v1StatusKind :: Maybe Text
v1StatusDetails :: Maybe V1StatusDetails
v1StatusCode :: Maybe Int
v1StatusApiVersion :: Maybe Text
v1StatusStatus :: V1Status -> Maybe Text
v1StatusReason :: V1Status -> Maybe Text
v1StatusMetadata :: V1Status -> Maybe V1ListMeta
v1StatusMessage :: V1Status -> Maybe Text
v1StatusKind :: V1Status -> Maybe Text
v1StatusDetails :: V1Status -> Maybe V1StatusDetails
v1StatusCode :: V1Status -> Maybe Int
v1StatusApiVersion :: V1Status -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatusApiVersion
      , Text
"code" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1StatusCode
      , Text
"details" Text -> Maybe V1StatusDetails -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1StatusDetails
v1StatusDetails
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatusKind
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatusMessage
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1StatusMetadata
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatusReason
      , Text
"status" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatusStatus
      ]


-- | Construct a value of type 'V1Status' (by applying it's required fields, if any)
mkV1Status
  :: V1Status
mkV1Status :: V1Status
mkV1Status =
  V1Status :: Maybe Text
-> Maybe Int
-> Maybe V1StatusDetails
-> Maybe Text
-> Maybe Text
-> Maybe V1ListMeta
-> Maybe Text
-> Maybe Text
-> V1Status
V1Status
  { v1StatusApiVersion :: Maybe Text
v1StatusApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1StatusCode :: Maybe Int
v1StatusCode = Maybe Int
forall a. Maybe a
Nothing
  , v1StatusDetails :: Maybe V1StatusDetails
v1StatusDetails = Maybe V1StatusDetails
forall a. Maybe a
Nothing
  , v1StatusKind :: Maybe Text
v1StatusKind = Maybe Text
forall a. Maybe a
Nothing
  , v1StatusMessage :: Maybe Text
v1StatusMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1StatusMetadata :: Maybe V1ListMeta
v1StatusMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  , v1StatusReason :: Maybe Text
v1StatusReason = Maybe Text
forall a. Maybe a
Nothing
  , v1StatusStatus :: Maybe Text
v1StatusStatus = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1StatusCause
-- | V1StatusCause
-- StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.
data V1StatusCause = V1StatusCause
  { V1StatusCause -> Maybe Text
v1StatusCauseField :: !(Maybe Text) -- ^ "field" - The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed.  Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.  Examples:   \&quot;name\&quot; - the field \&quot;name\&quot; on the current resource   \&quot;items[0].name\&quot; - the field \&quot;name\&quot; on the first array entry in \&quot;items\&quot;
  , V1StatusCause -> Maybe Text
v1StatusCauseMessage :: !(Maybe Text) -- ^ "message" - A human-readable description of the cause of the error.  This field may be presented as-is to a reader.
  , V1StatusCause -> Maybe Text
v1StatusCauseReason :: !(Maybe Text) -- ^ "reason" - A machine-readable description of the cause of the error. If this value is empty there is no information available.
  } deriving (Int -> V1StatusCause -> ShowS
[V1StatusCause] -> ShowS
V1StatusCause -> String
(Int -> V1StatusCause -> ShowS)
-> (V1StatusCause -> String)
-> ([V1StatusCause] -> ShowS)
-> Show V1StatusCause
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1StatusCause] -> ShowS
$cshowList :: [V1StatusCause] -> ShowS
show :: V1StatusCause -> String
$cshow :: V1StatusCause -> String
showsPrec :: Int -> V1StatusCause -> ShowS
$cshowsPrec :: Int -> V1StatusCause -> ShowS
P.Show, V1StatusCause -> V1StatusCause -> Bool
(V1StatusCause -> V1StatusCause -> Bool)
-> (V1StatusCause -> V1StatusCause -> Bool) -> Eq V1StatusCause
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1StatusCause -> V1StatusCause -> Bool
$c/= :: V1StatusCause -> V1StatusCause -> Bool
== :: V1StatusCause -> V1StatusCause -> Bool
$c== :: V1StatusCause -> V1StatusCause -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1StatusCause
instance A.FromJSON V1StatusCause where
  parseJSON :: Value -> Parser V1StatusCause
parseJSON = String
-> (Object -> Parser V1StatusCause)
-> Value
-> Parser V1StatusCause
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1StatusCause" ((Object -> Parser V1StatusCause) -> Value -> Parser V1StatusCause)
-> (Object -> Parser V1StatusCause)
-> Value
-> Parser V1StatusCause
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Text -> Maybe Text -> V1StatusCause
V1StatusCause
      (Maybe Text -> Maybe Text -> Maybe Text -> V1StatusCause)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> V1StatusCause)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"field")
      Parser (Maybe Text -> Maybe Text -> V1StatusCause)
-> Parser (Maybe Text) -> Parser (Maybe Text -> V1StatusCause)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> V1StatusCause)
-> Parser (Maybe Text) -> Parser V1StatusCause
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")

-- | ToJSON V1StatusCause
instance A.ToJSON V1StatusCause where
  toJSON :: V1StatusCause -> Value
toJSON V1StatusCause {Maybe Text
v1StatusCauseReason :: Maybe Text
v1StatusCauseMessage :: Maybe Text
v1StatusCauseField :: Maybe Text
v1StatusCauseReason :: V1StatusCause -> Maybe Text
v1StatusCauseMessage :: V1StatusCause -> Maybe Text
v1StatusCauseField :: V1StatusCause -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"field" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatusCauseField
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatusCauseMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatusCauseReason
      ]


-- | Construct a value of type 'V1StatusCause' (by applying it's required fields, if any)
mkV1StatusCause
  :: V1StatusCause
mkV1StatusCause :: V1StatusCause
mkV1StatusCause =
  V1StatusCause :: Maybe Text -> Maybe Text -> Maybe Text -> V1StatusCause
V1StatusCause
  { v1StatusCauseField :: Maybe Text
v1StatusCauseField = Maybe Text
forall a. Maybe a
Nothing
  , v1StatusCauseMessage :: Maybe Text
v1StatusCauseMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1StatusCauseReason :: Maybe Text
v1StatusCauseReason = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1StatusDetails
-- | V1StatusDetails
-- StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.
data V1StatusDetails = V1StatusDetails
  { V1StatusDetails -> Maybe [V1StatusCause]
v1StatusDetailsCauses :: !(Maybe [V1StatusCause]) -- ^ "causes" - The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.
  , V1StatusDetails -> Maybe Text
v1StatusDetailsGroup :: !(Maybe Text) -- ^ "group" - The group attribute of the resource associated with the status StatusReason.
  , V1StatusDetails -> Maybe Text
v1StatusDetailsKind :: !(Maybe Text) -- ^ "kind" - The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1StatusDetails -> Maybe Text
v1StatusDetailsName :: !(Maybe Text) -- ^ "name" - The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).
  , V1StatusDetails -> Maybe Int
v1StatusDetailsRetryAfterSeconds :: !(Maybe Int) -- ^ "retryAfterSeconds" - If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.
  , V1StatusDetails -> Maybe Text
v1StatusDetailsUid :: !(Maybe Text) -- ^ "uid" - UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids
  } deriving (Int -> V1StatusDetails -> ShowS
[V1StatusDetails] -> ShowS
V1StatusDetails -> String
(Int -> V1StatusDetails -> ShowS)
-> (V1StatusDetails -> String)
-> ([V1StatusDetails] -> ShowS)
-> Show V1StatusDetails
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1StatusDetails] -> ShowS
$cshowList :: [V1StatusDetails] -> ShowS
show :: V1StatusDetails -> String
$cshow :: V1StatusDetails -> String
showsPrec :: Int -> V1StatusDetails -> ShowS
$cshowsPrec :: Int -> V1StatusDetails -> ShowS
P.Show, V1StatusDetails -> V1StatusDetails -> Bool
(V1StatusDetails -> V1StatusDetails -> Bool)
-> (V1StatusDetails -> V1StatusDetails -> Bool)
-> Eq V1StatusDetails
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1StatusDetails -> V1StatusDetails -> Bool
$c/= :: V1StatusDetails -> V1StatusDetails -> Bool
== :: V1StatusDetails -> V1StatusDetails -> Bool
$c== :: V1StatusDetails -> V1StatusDetails -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1StatusDetails
instance A.FromJSON V1StatusDetails where
  parseJSON :: Value -> Parser V1StatusDetails
parseJSON = String
-> (Object -> Parser V1StatusDetails)
-> Value
-> Parser V1StatusDetails
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1StatusDetails" ((Object -> Parser V1StatusDetails)
 -> Value -> Parser V1StatusDetails)
-> (Object -> Parser V1StatusDetails)
-> Value
-> Parser V1StatusDetails
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1StatusCause]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> V1StatusDetails
V1StatusDetails
      (Maybe [V1StatusCause]
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> V1StatusDetails)
-> Parser (Maybe [V1StatusCause])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> V1StatusDetails)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1StatusCause])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"causes")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> V1StatusDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Int -> Maybe Text -> V1StatusDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"group")
      Parser
  (Maybe Text
   -> Maybe Text -> Maybe Int -> Maybe Text -> V1StatusDetails)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Int -> Maybe Text -> V1StatusDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe Text -> Maybe Int -> Maybe Text -> V1StatusDetails)
-> Parser (Maybe Text)
-> Parser (Maybe Int -> Maybe Text -> V1StatusDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser (Maybe Int -> Maybe Text -> V1StatusDetails)
-> Parser (Maybe Int) -> Parser (Maybe Text -> V1StatusDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"retryAfterSeconds")
      Parser (Maybe Text -> V1StatusDetails)
-> Parser (Maybe Text) -> Parser V1StatusDetails
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"uid")

-- | ToJSON V1StatusDetails
instance A.ToJSON V1StatusDetails where
  toJSON :: V1StatusDetails -> Value
toJSON V1StatusDetails {Maybe Int
Maybe [V1StatusCause]
Maybe Text
v1StatusDetailsUid :: Maybe Text
v1StatusDetailsRetryAfterSeconds :: Maybe Int
v1StatusDetailsName :: Maybe Text
v1StatusDetailsKind :: Maybe Text
v1StatusDetailsGroup :: Maybe Text
v1StatusDetailsCauses :: Maybe [V1StatusCause]
v1StatusDetailsUid :: V1StatusDetails -> Maybe Text
v1StatusDetailsRetryAfterSeconds :: V1StatusDetails -> Maybe Int
v1StatusDetailsName :: V1StatusDetails -> Maybe Text
v1StatusDetailsKind :: V1StatusDetails -> Maybe Text
v1StatusDetailsGroup :: V1StatusDetails -> Maybe Text
v1StatusDetailsCauses :: V1StatusDetails -> Maybe [V1StatusCause]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"causes" Text -> Maybe [V1StatusCause] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1StatusCause]
v1StatusDetailsCauses
      , Text
"group" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatusDetailsGroup
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatusDetailsKind
      , Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatusDetailsName
      , Text
"retryAfterSeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1StatusDetailsRetryAfterSeconds
      , Text
"uid" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StatusDetailsUid
      ]


-- | Construct a value of type 'V1StatusDetails' (by applying it's required fields, if any)
mkV1StatusDetails
  :: V1StatusDetails
mkV1StatusDetails :: V1StatusDetails
mkV1StatusDetails =
  V1StatusDetails :: Maybe [V1StatusCause]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> V1StatusDetails
V1StatusDetails
  { v1StatusDetailsCauses :: Maybe [V1StatusCause]
v1StatusDetailsCauses = Maybe [V1StatusCause]
forall a. Maybe a
Nothing
  , v1StatusDetailsGroup :: Maybe Text
v1StatusDetailsGroup = Maybe Text
forall a. Maybe a
Nothing
  , v1StatusDetailsKind :: Maybe Text
v1StatusDetailsKind = Maybe Text
forall a. Maybe a
Nothing
  , v1StatusDetailsName :: Maybe Text
v1StatusDetailsName = Maybe Text
forall a. Maybe a
Nothing
  , v1StatusDetailsRetryAfterSeconds :: Maybe Int
v1StatusDetailsRetryAfterSeconds = Maybe Int
forall a. Maybe a
Nothing
  , v1StatusDetailsUid :: Maybe Text
v1StatusDetailsUid = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1StorageClass
-- | V1StorageClass
-- StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.  StorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.
data V1StorageClass = V1StorageClass
  { V1StorageClass -> Maybe Bool
v1StorageClassAllowVolumeExpansion :: !(Maybe Bool) -- ^ "allowVolumeExpansion" - AllowVolumeExpansion shows whether the storage class allow volume expand
  , V1StorageClass -> Maybe [V1TopologySelectorTerm]
v1StorageClassAllowedTopologies :: !(Maybe [V1TopologySelectorTerm]) -- ^ "allowedTopologies" - Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.
  , V1StorageClass -> Maybe Text
v1StorageClassApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1StorageClass -> Maybe Text
v1StorageClassKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1StorageClass -> Maybe V1ObjectMeta
v1StorageClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1StorageClass -> Maybe [Text]
v1StorageClassMountOptions :: !(Maybe [Text]) -- ^ "mountOptions" - Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\&quot;ro\&quot;, \&quot;soft\&quot;]. Not validated - mount of the PVs will simply fail if one is invalid.
  , V1StorageClass -> Maybe (Map String Text)
v1StorageClassParameters :: !(Maybe (Map.Map String Text)) -- ^ "parameters" - Parameters holds the parameters for the provisioner that should create volumes of this storage class.
  , V1StorageClass -> Text
v1StorageClassProvisioner :: !(Text) -- ^ /Required/ "provisioner" - Provisioner indicates the type of the provisioner.
  , V1StorageClass -> Maybe Text
v1StorageClassReclaimPolicy :: !(Maybe Text) -- ^ "reclaimPolicy" - Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.
  , V1StorageClass -> Maybe Text
v1StorageClassVolumeBindingMode :: !(Maybe Text) -- ^ "volumeBindingMode" - VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound.  When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.
  } deriving (Int -> V1StorageClass -> ShowS
[V1StorageClass] -> ShowS
V1StorageClass -> String
(Int -> V1StorageClass -> ShowS)
-> (V1StorageClass -> String)
-> ([V1StorageClass] -> ShowS)
-> Show V1StorageClass
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1StorageClass] -> ShowS
$cshowList :: [V1StorageClass] -> ShowS
show :: V1StorageClass -> String
$cshow :: V1StorageClass -> String
showsPrec :: Int -> V1StorageClass -> ShowS
$cshowsPrec :: Int -> V1StorageClass -> ShowS
P.Show, V1StorageClass -> V1StorageClass -> Bool
(V1StorageClass -> V1StorageClass -> Bool)
-> (V1StorageClass -> V1StorageClass -> Bool) -> Eq V1StorageClass
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1StorageClass -> V1StorageClass -> Bool
$c/= :: V1StorageClass -> V1StorageClass -> Bool
== :: V1StorageClass -> V1StorageClass -> Bool
$c== :: V1StorageClass -> V1StorageClass -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1StorageClass
instance A.FromJSON V1StorageClass where
  parseJSON :: Value -> Parser V1StorageClass
parseJSON = String
-> (Object -> Parser V1StorageClass)
-> Value
-> Parser V1StorageClass
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1StorageClass" ((Object -> Parser V1StorageClass)
 -> Value -> Parser V1StorageClass)
-> (Object -> Parser V1StorageClass)
-> Value
-> Parser V1StorageClass
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Bool
-> Maybe [V1TopologySelectorTerm]
-> Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [Text]
-> Maybe (Map String Text)
-> Text
-> Maybe Text
-> Maybe Text
-> V1StorageClass
V1StorageClass
      (Maybe Bool
 -> Maybe [V1TopologySelectorTerm]
 -> Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe [Text]
 -> Maybe (Map String Text)
 -> Text
 -> Maybe Text
 -> Maybe Text
 -> V1StorageClass)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [V1TopologySelectorTerm]
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [Text]
      -> Maybe (Map String Text)
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> V1StorageClass)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowVolumeExpansion")
      Parser
  (Maybe [V1TopologySelectorTerm]
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [Text]
   -> Maybe (Map String Text)
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> V1StorageClass)
-> Parser (Maybe [V1TopologySelectorTerm])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [Text]
      -> Maybe (Map String Text)
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> V1StorageClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1TopologySelectorTerm])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowedTopologies")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [Text]
   -> Maybe (Map String Text)
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> V1StorageClass)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [Text]
      -> Maybe (Map String Text)
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> V1StorageClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [Text]
   -> Maybe (Map String Text)
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> V1StorageClass)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe [Text]
      -> Maybe (Map String Text)
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> V1StorageClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe [Text]
   -> Maybe (Map String Text)
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> V1StorageClass)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe [Text]
      -> Maybe (Map String Text)
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> V1StorageClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe [Text]
   -> Maybe (Map String Text)
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> V1StorageClass)
-> Parser (Maybe [Text])
-> Parser
     (Maybe (Map String Text)
      -> Text -> Maybe Text -> Maybe Text -> V1StorageClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"mountOptions")
      Parser
  (Maybe (Map String Text)
   -> Text -> Maybe Text -> Maybe Text -> V1StorageClass)
-> Parser (Maybe (Map String Text))
-> Parser (Text -> Maybe Text -> Maybe Text -> V1StorageClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"parameters")
      Parser (Text -> Maybe Text -> Maybe Text -> V1StorageClass)
-> Parser Text
-> Parser (Maybe Text -> Maybe Text -> V1StorageClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"provisioner")
      Parser (Maybe Text -> Maybe Text -> V1StorageClass)
-> Parser (Maybe Text) -> Parser (Maybe Text -> V1StorageClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reclaimPolicy")
      Parser (Maybe Text -> V1StorageClass)
-> Parser (Maybe Text) -> Parser V1StorageClass
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeBindingMode")

-- | ToJSON V1StorageClass
instance A.ToJSON V1StorageClass where
  toJSON :: V1StorageClass -> Value
toJSON V1StorageClass {Maybe Bool
Maybe [Text]
Maybe [V1TopologySelectorTerm]
Maybe Text
Maybe (Map String Text)
Maybe V1ObjectMeta
Text
v1StorageClassVolumeBindingMode :: Maybe Text
v1StorageClassReclaimPolicy :: Maybe Text
v1StorageClassProvisioner :: Text
v1StorageClassParameters :: Maybe (Map String Text)
v1StorageClassMountOptions :: Maybe [Text]
v1StorageClassMetadata :: Maybe V1ObjectMeta
v1StorageClassKind :: Maybe Text
v1StorageClassApiVersion :: Maybe Text
v1StorageClassAllowedTopologies :: Maybe [V1TopologySelectorTerm]
v1StorageClassAllowVolumeExpansion :: Maybe Bool
v1StorageClassVolumeBindingMode :: V1StorageClass -> Maybe Text
v1StorageClassReclaimPolicy :: V1StorageClass -> Maybe Text
v1StorageClassProvisioner :: V1StorageClass -> Text
v1StorageClassParameters :: V1StorageClass -> Maybe (Map String Text)
v1StorageClassMountOptions :: V1StorageClass -> Maybe [Text]
v1StorageClassMetadata :: V1StorageClass -> Maybe V1ObjectMeta
v1StorageClassKind :: V1StorageClass -> Maybe Text
v1StorageClassApiVersion :: V1StorageClass -> Maybe Text
v1StorageClassAllowedTopologies :: V1StorageClass -> Maybe [V1TopologySelectorTerm]
v1StorageClassAllowVolumeExpansion :: V1StorageClass -> Maybe Bool
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"allowVolumeExpansion" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1StorageClassAllowVolumeExpansion
      , Text
"allowedTopologies" Text -> Maybe [V1TopologySelectorTerm] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1TopologySelectorTerm]
v1StorageClassAllowedTopologies
      , Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StorageClassApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StorageClassKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1StorageClassMetadata
      , Text
"mountOptions" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1StorageClassMountOptions
      , Text
"parameters" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1StorageClassParameters
      , Text
"provisioner" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1StorageClassProvisioner
      , Text
"reclaimPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StorageClassReclaimPolicy
      , Text
"volumeBindingMode" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StorageClassVolumeBindingMode
      ]


-- | Construct a value of type 'V1StorageClass' (by applying it's required fields, if any)
mkV1StorageClass
  :: Text -- ^ 'v1StorageClassProvisioner': Provisioner indicates the type of the provisioner.
  -> V1StorageClass
mkV1StorageClass :: Text -> V1StorageClass
mkV1StorageClass Text
v1StorageClassProvisioner =
  V1StorageClass :: Maybe Bool
-> Maybe [V1TopologySelectorTerm]
-> Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [Text]
-> Maybe (Map String Text)
-> Text
-> Maybe Text
-> Maybe Text
-> V1StorageClass
V1StorageClass
  { v1StorageClassAllowVolumeExpansion :: Maybe Bool
v1StorageClassAllowVolumeExpansion = Maybe Bool
forall a. Maybe a
Nothing
  , v1StorageClassAllowedTopologies :: Maybe [V1TopologySelectorTerm]
v1StorageClassAllowedTopologies = Maybe [V1TopologySelectorTerm]
forall a. Maybe a
Nothing
  , v1StorageClassApiVersion :: Maybe Text
v1StorageClassApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1StorageClassKind :: Maybe Text
v1StorageClassKind = Maybe Text
forall a. Maybe a
Nothing
  , v1StorageClassMetadata :: Maybe V1ObjectMeta
v1StorageClassMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1StorageClassMountOptions :: Maybe [Text]
v1StorageClassMountOptions = Maybe [Text]
forall a. Maybe a
Nothing
  , v1StorageClassParameters :: Maybe (Map String Text)
v1StorageClassParameters = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , Text
v1StorageClassProvisioner :: Text
v1StorageClassProvisioner :: Text
v1StorageClassProvisioner
  , v1StorageClassReclaimPolicy :: Maybe Text
v1StorageClassReclaimPolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1StorageClassVolumeBindingMode :: Maybe Text
v1StorageClassVolumeBindingMode = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1StorageClassList
-- | V1StorageClassList
-- StorageClassList is a collection of storage classes.
data V1StorageClassList = V1StorageClassList
  { V1StorageClassList -> Maybe Text
v1StorageClassListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1StorageClassList -> [V1StorageClass]
v1StorageClassListItems :: !([V1StorageClass]) -- ^ /Required/ "items" - Items is the list of StorageClasses
  , V1StorageClassList -> Maybe Text
v1StorageClassListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1StorageClassList -> Maybe V1ListMeta
v1StorageClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1StorageClassList -> ShowS
[V1StorageClassList] -> ShowS
V1StorageClassList -> String
(Int -> V1StorageClassList -> ShowS)
-> (V1StorageClassList -> String)
-> ([V1StorageClassList] -> ShowS)
-> Show V1StorageClassList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1StorageClassList] -> ShowS
$cshowList :: [V1StorageClassList] -> ShowS
show :: V1StorageClassList -> String
$cshow :: V1StorageClassList -> String
showsPrec :: Int -> V1StorageClassList -> ShowS
$cshowsPrec :: Int -> V1StorageClassList -> ShowS
P.Show, V1StorageClassList -> V1StorageClassList -> Bool
(V1StorageClassList -> V1StorageClassList -> Bool)
-> (V1StorageClassList -> V1StorageClassList -> Bool)
-> Eq V1StorageClassList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1StorageClassList -> V1StorageClassList -> Bool
$c/= :: V1StorageClassList -> V1StorageClassList -> Bool
== :: V1StorageClassList -> V1StorageClassList -> Bool
$c== :: V1StorageClassList -> V1StorageClassList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1StorageClassList
instance A.FromJSON V1StorageClassList where
  parseJSON :: Value -> Parser V1StorageClassList
parseJSON = String
-> (Object -> Parser V1StorageClassList)
-> Value
-> Parser V1StorageClassList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1StorageClassList" ((Object -> Parser V1StorageClassList)
 -> Value -> Parser V1StorageClassList)
-> (Object -> Parser V1StorageClassList)
-> Value
-> Parser V1StorageClassList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1StorageClass]
-> Maybe Text
-> Maybe V1ListMeta
-> V1StorageClassList
V1StorageClassList
      (Maybe Text
 -> [V1StorageClass]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1StorageClassList)
-> Parser (Maybe Text)
-> Parser
     ([V1StorageClass]
      -> Maybe Text -> Maybe V1ListMeta -> V1StorageClassList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1StorageClass]
   -> Maybe Text -> Maybe V1ListMeta -> V1StorageClassList)
-> Parser [V1StorageClass]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1StorageClassList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1StorageClass]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1StorageClassList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1StorageClassList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1StorageClassList)
-> Parser (Maybe V1ListMeta) -> Parser V1StorageClassList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1StorageClassList
instance A.ToJSON V1StorageClassList where
  toJSON :: V1StorageClassList -> Value
toJSON V1StorageClassList {[V1StorageClass]
Maybe Text
Maybe V1ListMeta
v1StorageClassListMetadata :: Maybe V1ListMeta
v1StorageClassListKind :: Maybe Text
v1StorageClassListItems :: [V1StorageClass]
v1StorageClassListApiVersion :: Maybe Text
v1StorageClassListMetadata :: V1StorageClassList -> Maybe V1ListMeta
v1StorageClassListKind :: V1StorageClassList -> Maybe Text
v1StorageClassListItems :: V1StorageClassList -> [V1StorageClass]
v1StorageClassListApiVersion :: V1StorageClassList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StorageClassListApiVersion
      , Text
"items" Text -> [V1StorageClass] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1StorageClass]
v1StorageClassListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StorageClassListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1StorageClassListMetadata
      ]


-- | Construct a value of type 'V1StorageClassList' (by applying it's required fields, if any)
mkV1StorageClassList
  :: [V1StorageClass] -- ^ 'v1StorageClassListItems': Items is the list of StorageClasses
  -> V1StorageClassList
mkV1StorageClassList :: [V1StorageClass] -> V1StorageClassList
mkV1StorageClassList [V1StorageClass]
v1StorageClassListItems =
  V1StorageClassList :: Maybe Text
-> [V1StorageClass]
-> Maybe Text
-> Maybe V1ListMeta
-> V1StorageClassList
V1StorageClassList
  { v1StorageClassListApiVersion :: Maybe Text
v1StorageClassListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1StorageClass]
v1StorageClassListItems :: [V1StorageClass]
v1StorageClassListItems :: [V1StorageClass]
v1StorageClassListItems
  , v1StorageClassListKind :: Maybe Text
v1StorageClassListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1StorageClassListMetadata :: Maybe V1ListMeta
v1StorageClassListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1StorageOSPersistentVolumeSource
-- | V1StorageOSPersistentVolumeSource
-- Represents a StorageOS persistent volume resource.
data V1StorageOSPersistentVolumeSource = V1StorageOSPersistentVolumeSource
  { V1StorageOSPersistentVolumeSource -> Maybe Text
v1StorageOSPersistentVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. Implicitly inferred to be \&quot;ext4\&quot; if unspecified.
  , V1StorageOSPersistentVolumeSource -> Maybe Bool
v1StorageOSPersistentVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
  , V1StorageOSPersistentVolumeSource -> Maybe V1ObjectReference
v1StorageOSPersistentVolumeSourceSecretRef :: !(Maybe V1ObjectReference) -- ^ "secretRef"
  , V1StorageOSPersistentVolumeSource -> Maybe Text
v1StorageOSPersistentVolumeSourceVolumeName :: !(Maybe Text) -- ^ "volumeName" - VolumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.
  , V1StorageOSPersistentVolumeSource -> Maybe Text
v1StorageOSPersistentVolumeSourceVolumeNamespace :: !(Maybe Text) -- ^ "volumeNamespace" - VolumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod&#39;s namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \&quot;default\&quot; if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.
  } deriving (Int -> V1StorageOSPersistentVolumeSource -> ShowS
[V1StorageOSPersistentVolumeSource] -> ShowS
V1StorageOSPersistentVolumeSource -> String
(Int -> V1StorageOSPersistentVolumeSource -> ShowS)
-> (V1StorageOSPersistentVolumeSource -> String)
-> ([V1StorageOSPersistentVolumeSource] -> ShowS)
-> Show V1StorageOSPersistentVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1StorageOSPersistentVolumeSource] -> ShowS
$cshowList :: [V1StorageOSPersistentVolumeSource] -> ShowS
show :: V1StorageOSPersistentVolumeSource -> String
$cshow :: V1StorageOSPersistentVolumeSource -> String
showsPrec :: Int -> V1StorageOSPersistentVolumeSource -> ShowS
$cshowsPrec :: Int -> V1StorageOSPersistentVolumeSource -> ShowS
P.Show, V1StorageOSPersistentVolumeSource
-> V1StorageOSPersistentVolumeSource -> Bool
(V1StorageOSPersistentVolumeSource
 -> V1StorageOSPersistentVolumeSource -> Bool)
-> (V1StorageOSPersistentVolumeSource
    -> V1StorageOSPersistentVolumeSource -> Bool)
-> Eq V1StorageOSPersistentVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1StorageOSPersistentVolumeSource
-> V1StorageOSPersistentVolumeSource -> Bool
$c/= :: V1StorageOSPersistentVolumeSource
-> V1StorageOSPersistentVolumeSource -> Bool
== :: V1StorageOSPersistentVolumeSource
-> V1StorageOSPersistentVolumeSource -> Bool
$c== :: V1StorageOSPersistentVolumeSource
-> V1StorageOSPersistentVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1StorageOSPersistentVolumeSource
instance A.FromJSON V1StorageOSPersistentVolumeSource where
  parseJSON :: Value -> Parser V1StorageOSPersistentVolumeSource
parseJSON = String
-> (Object -> Parser V1StorageOSPersistentVolumeSource)
-> Value
-> Parser V1StorageOSPersistentVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1StorageOSPersistentVolumeSource" ((Object -> Parser V1StorageOSPersistentVolumeSource)
 -> Value -> Parser V1StorageOSPersistentVolumeSource)
-> (Object -> Parser V1StorageOSPersistentVolumeSource)
-> Value
-> Parser V1StorageOSPersistentVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Bool
-> Maybe V1ObjectReference
-> Maybe Text
-> Maybe Text
-> V1StorageOSPersistentVolumeSource
V1StorageOSPersistentVolumeSource
      (Maybe Text
 -> Maybe Bool
 -> Maybe V1ObjectReference
 -> Maybe Text
 -> Maybe Text
 -> V1StorageOSPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> V1StorageOSPersistentVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Maybe Bool
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> V1StorageOSPersistentVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe V1ObjectReference
      -> Maybe Text -> Maybe Text -> V1StorageOSPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser
  (Maybe V1ObjectReference
   -> Maybe Text -> Maybe Text -> V1StorageOSPersistentVolumeSource)
-> Parser (Maybe V1ObjectReference)
-> Parser
     (Maybe Text -> Maybe Text -> V1StorageOSPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretRef")
      Parser
  (Maybe Text -> Maybe Text -> V1StorageOSPersistentVolumeSource)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1StorageOSPersistentVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeName")
      Parser (Maybe Text -> V1StorageOSPersistentVolumeSource)
-> Parser (Maybe Text) -> Parser V1StorageOSPersistentVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeNamespace")

-- | ToJSON V1StorageOSPersistentVolumeSource
instance A.ToJSON V1StorageOSPersistentVolumeSource where
  toJSON :: V1StorageOSPersistentVolumeSource -> Value
toJSON V1StorageOSPersistentVolumeSource {Maybe Bool
Maybe Text
Maybe V1ObjectReference
v1StorageOSPersistentVolumeSourceVolumeNamespace :: Maybe Text
v1StorageOSPersistentVolumeSourceVolumeName :: Maybe Text
v1StorageOSPersistentVolumeSourceSecretRef :: Maybe V1ObjectReference
v1StorageOSPersistentVolumeSourceReadOnly :: Maybe Bool
v1StorageOSPersistentVolumeSourceFsType :: Maybe Text
v1StorageOSPersistentVolumeSourceVolumeNamespace :: V1StorageOSPersistentVolumeSource -> Maybe Text
v1StorageOSPersistentVolumeSourceVolumeName :: V1StorageOSPersistentVolumeSource -> Maybe Text
v1StorageOSPersistentVolumeSourceSecretRef :: V1StorageOSPersistentVolumeSource -> Maybe V1ObjectReference
v1StorageOSPersistentVolumeSourceReadOnly :: V1StorageOSPersistentVolumeSource -> Maybe Bool
v1StorageOSPersistentVolumeSourceFsType :: V1StorageOSPersistentVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StorageOSPersistentVolumeSourceFsType
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1StorageOSPersistentVolumeSourceReadOnly
      , Text
"secretRef" Text -> Maybe V1ObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectReference
v1StorageOSPersistentVolumeSourceSecretRef
      , Text
"volumeName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StorageOSPersistentVolumeSourceVolumeName
      , Text
"volumeNamespace" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StorageOSPersistentVolumeSourceVolumeNamespace
      ]


-- | Construct a value of type 'V1StorageOSPersistentVolumeSource' (by applying it's required fields, if any)
mkV1StorageOSPersistentVolumeSource
  :: V1StorageOSPersistentVolumeSource
mkV1StorageOSPersistentVolumeSource :: V1StorageOSPersistentVolumeSource
mkV1StorageOSPersistentVolumeSource =
  V1StorageOSPersistentVolumeSource :: Maybe Text
-> Maybe Bool
-> Maybe V1ObjectReference
-> Maybe Text
-> Maybe Text
-> V1StorageOSPersistentVolumeSource
V1StorageOSPersistentVolumeSource
  { v1StorageOSPersistentVolumeSourceFsType :: Maybe Text
v1StorageOSPersistentVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , v1StorageOSPersistentVolumeSourceReadOnly :: Maybe Bool
v1StorageOSPersistentVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , v1StorageOSPersistentVolumeSourceSecretRef :: Maybe V1ObjectReference
v1StorageOSPersistentVolumeSourceSecretRef = Maybe V1ObjectReference
forall a. Maybe a
Nothing
  , v1StorageOSPersistentVolumeSourceVolumeName :: Maybe Text
v1StorageOSPersistentVolumeSourceVolumeName = Maybe Text
forall a. Maybe a
Nothing
  , v1StorageOSPersistentVolumeSourceVolumeNamespace :: Maybe Text
v1StorageOSPersistentVolumeSourceVolumeNamespace = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1StorageOSVolumeSource
-- | V1StorageOSVolumeSource
-- Represents a StorageOS persistent volume resource.
data V1StorageOSVolumeSource = V1StorageOSVolumeSource
  { V1StorageOSVolumeSource -> Maybe Text
v1StorageOSVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. Implicitly inferred to be \&quot;ext4\&quot; if unspecified.
  , V1StorageOSVolumeSource -> Maybe Bool
v1StorageOSVolumeSourceReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
  , V1StorageOSVolumeSource -> Maybe V1LocalObjectReference
v1StorageOSVolumeSourceSecretRef :: !(Maybe V1LocalObjectReference) -- ^ "secretRef"
  , V1StorageOSVolumeSource -> Maybe Text
v1StorageOSVolumeSourceVolumeName :: !(Maybe Text) -- ^ "volumeName" - VolumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.
  , V1StorageOSVolumeSource -> Maybe Text
v1StorageOSVolumeSourceVolumeNamespace :: !(Maybe Text) -- ^ "volumeNamespace" - VolumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod&#39;s namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \&quot;default\&quot; if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.
  } deriving (Int -> V1StorageOSVolumeSource -> ShowS
[V1StorageOSVolumeSource] -> ShowS
V1StorageOSVolumeSource -> String
(Int -> V1StorageOSVolumeSource -> ShowS)
-> (V1StorageOSVolumeSource -> String)
-> ([V1StorageOSVolumeSource] -> ShowS)
-> Show V1StorageOSVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1StorageOSVolumeSource] -> ShowS
$cshowList :: [V1StorageOSVolumeSource] -> ShowS
show :: V1StorageOSVolumeSource -> String
$cshow :: V1StorageOSVolumeSource -> String
showsPrec :: Int -> V1StorageOSVolumeSource -> ShowS
$cshowsPrec :: Int -> V1StorageOSVolumeSource -> ShowS
P.Show, V1StorageOSVolumeSource -> V1StorageOSVolumeSource -> Bool
(V1StorageOSVolumeSource -> V1StorageOSVolumeSource -> Bool)
-> (V1StorageOSVolumeSource -> V1StorageOSVolumeSource -> Bool)
-> Eq V1StorageOSVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1StorageOSVolumeSource -> V1StorageOSVolumeSource -> Bool
$c/= :: V1StorageOSVolumeSource -> V1StorageOSVolumeSource -> Bool
== :: V1StorageOSVolumeSource -> V1StorageOSVolumeSource -> Bool
$c== :: V1StorageOSVolumeSource -> V1StorageOSVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1StorageOSVolumeSource
instance A.FromJSON V1StorageOSVolumeSource where
  parseJSON :: Value -> Parser V1StorageOSVolumeSource
parseJSON = String
-> (Object -> Parser V1StorageOSVolumeSource)
-> Value
-> Parser V1StorageOSVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1StorageOSVolumeSource" ((Object -> Parser V1StorageOSVolumeSource)
 -> Value -> Parser V1StorageOSVolumeSource)
-> (Object -> Parser V1StorageOSVolumeSource)
-> Value
-> Parser V1StorageOSVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Bool
-> Maybe V1LocalObjectReference
-> Maybe Text
-> Maybe Text
-> V1StorageOSVolumeSource
V1StorageOSVolumeSource
      (Maybe Text
 -> Maybe Bool
 -> Maybe V1LocalObjectReference
 -> Maybe Text
 -> Maybe Text
 -> V1StorageOSVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe V1LocalObjectReference
      -> Maybe Text
      -> Maybe Text
      -> V1StorageOSVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Maybe Bool
   -> Maybe V1LocalObjectReference
   -> Maybe Text
   -> Maybe Text
   -> V1StorageOSVolumeSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe V1LocalObjectReference
      -> Maybe Text -> Maybe Text -> V1StorageOSVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser
  (Maybe V1LocalObjectReference
   -> Maybe Text -> Maybe Text -> V1StorageOSVolumeSource)
-> Parser (Maybe V1LocalObjectReference)
-> Parser (Maybe Text -> Maybe Text -> V1StorageOSVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LocalObjectReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secretRef")
      Parser (Maybe Text -> Maybe Text -> V1StorageOSVolumeSource)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1StorageOSVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeName")
      Parser (Maybe Text -> V1StorageOSVolumeSource)
-> Parser (Maybe Text) -> Parser V1StorageOSVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeNamespace")

-- | ToJSON V1StorageOSVolumeSource
instance A.ToJSON V1StorageOSVolumeSource where
  toJSON :: V1StorageOSVolumeSource -> Value
toJSON V1StorageOSVolumeSource {Maybe Bool
Maybe Text
Maybe V1LocalObjectReference
v1StorageOSVolumeSourceVolumeNamespace :: Maybe Text
v1StorageOSVolumeSourceVolumeName :: Maybe Text
v1StorageOSVolumeSourceSecretRef :: Maybe V1LocalObjectReference
v1StorageOSVolumeSourceReadOnly :: Maybe Bool
v1StorageOSVolumeSourceFsType :: Maybe Text
v1StorageOSVolumeSourceVolumeNamespace :: V1StorageOSVolumeSource -> Maybe Text
v1StorageOSVolumeSourceVolumeName :: V1StorageOSVolumeSource -> Maybe Text
v1StorageOSVolumeSourceSecretRef :: V1StorageOSVolumeSource -> Maybe V1LocalObjectReference
v1StorageOSVolumeSourceReadOnly :: V1StorageOSVolumeSource -> Maybe Bool
v1StorageOSVolumeSourceFsType :: V1StorageOSVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StorageOSVolumeSourceFsType
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1StorageOSVolumeSourceReadOnly
      , Text
"secretRef" Text -> Maybe V1LocalObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LocalObjectReference
v1StorageOSVolumeSourceSecretRef
      , Text
"volumeName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StorageOSVolumeSourceVolumeName
      , Text
"volumeNamespace" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1StorageOSVolumeSourceVolumeNamespace
      ]


-- | Construct a value of type 'V1StorageOSVolumeSource' (by applying it's required fields, if any)
mkV1StorageOSVolumeSource
  :: V1StorageOSVolumeSource
mkV1StorageOSVolumeSource :: V1StorageOSVolumeSource
mkV1StorageOSVolumeSource =
  V1StorageOSVolumeSource :: Maybe Text
-> Maybe Bool
-> Maybe V1LocalObjectReference
-> Maybe Text
-> Maybe Text
-> V1StorageOSVolumeSource
V1StorageOSVolumeSource
  { v1StorageOSVolumeSourceFsType :: Maybe Text
v1StorageOSVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , v1StorageOSVolumeSourceReadOnly :: Maybe Bool
v1StorageOSVolumeSourceReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , v1StorageOSVolumeSourceSecretRef :: Maybe V1LocalObjectReference
v1StorageOSVolumeSourceSecretRef = Maybe V1LocalObjectReference
forall a. Maybe a
Nothing
  , v1StorageOSVolumeSourceVolumeName :: Maybe Text
v1StorageOSVolumeSourceVolumeName = Maybe Text
forall a. Maybe a
Nothing
  , v1StorageOSVolumeSourceVolumeNamespace :: Maybe Text
v1StorageOSVolumeSourceVolumeNamespace = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1Subject
-- | V1Subject
-- Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference, or a value for non-objects such as user and group names.
data V1Subject = V1Subject
  { V1Subject -> Maybe Text
v1SubjectApiGroup :: !(Maybe Text) -- ^ "apiGroup" - APIGroup holds the API group of the referenced subject. Defaults to \&quot;\&quot; for ServiceAccount subjects. Defaults to \&quot;rbac.authorization.k8s.io\&quot; for User and Group subjects.
  , V1Subject -> Text
v1SubjectKind :: !(Text) -- ^ /Required/ "kind" - Kind of object being referenced. Values defined by this API group are \&quot;User\&quot;, \&quot;Group\&quot;, and \&quot;ServiceAccount\&quot;. If the Authorizer does not recognized the kind value, the Authorizer should report an error.
  , V1Subject -> Text
v1SubjectName :: !(Text) -- ^ /Required/ "name" - Name of the object being referenced.
  , V1Subject -> Maybe Text
v1SubjectNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace of the referenced object.  If the object kind is non-namespace, such as \&quot;User\&quot; or \&quot;Group\&quot;, and this value is not empty the Authorizer should report an error.
  } deriving (Int -> V1Subject -> ShowS
[V1Subject] -> ShowS
V1Subject -> String
(Int -> V1Subject -> ShowS)
-> (V1Subject -> String)
-> ([V1Subject] -> ShowS)
-> Show V1Subject
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Subject] -> ShowS
$cshowList :: [V1Subject] -> ShowS
show :: V1Subject -> String
$cshow :: V1Subject -> String
showsPrec :: Int -> V1Subject -> ShowS
$cshowsPrec :: Int -> V1Subject -> ShowS
P.Show, V1Subject -> V1Subject -> Bool
(V1Subject -> V1Subject -> Bool)
-> (V1Subject -> V1Subject -> Bool) -> Eq V1Subject
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Subject -> V1Subject -> Bool
$c/= :: V1Subject -> V1Subject -> Bool
== :: V1Subject -> V1Subject -> Bool
$c== :: V1Subject -> V1Subject -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Subject
instance A.FromJSON V1Subject where
  parseJSON :: Value -> Parser V1Subject
parseJSON = String -> (Object -> Parser V1Subject) -> Value -> Parser V1Subject
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Subject" ((Object -> Parser V1Subject) -> Value -> Parser V1Subject)
-> (Object -> Parser V1Subject) -> Value -> Parser V1Subject
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Text -> Text -> Maybe Text -> V1Subject
V1Subject
      (Maybe Text -> Text -> Text -> Maybe Text -> V1Subject)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> Maybe Text -> V1Subject)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiGroup")
      Parser (Text -> Text -> Maybe Text -> V1Subject)
-> Parser Text -> Parser (Text -> Maybe Text -> V1Subject)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kind")
      Parser (Text -> Maybe Text -> V1Subject)
-> Parser Text -> Parser (Maybe Text -> V1Subject)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser (Maybe Text -> V1Subject)
-> Parser (Maybe Text) -> Parser V1Subject
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespace")

-- | ToJSON V1Subject
instance A.ToJSON V1Subject where
  toJSON :: V1Subject -> Value
toJSON V1Subject {Maybe Text
Text
v1SubjectNamespace :: Maybe Text
v1SubjectName :: Text
v1SubjectKind :: Text
v1SubjectApiGroup :: Maybe Text
v1SubjectNamespace :: V1Subject -> Maybe Text
v1SubjectName :: V1Subject -> Text
v1SubjectKind :: V1Subject -> Text
v1SubjectApiGroup :: V1Subject -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiGroup" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SubjectApiGroup
      , Text
"kind" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1SubjectKind
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1SubjectName
      , Text
"namespace" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SubjectNamespace
      ]


-- | Construct a value of type 'V1Subject' (by applying it's required fields, if any)
mkV1Subject
  :: Text -- ^ 'v1SubjectKind': Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.
  -> Text -- ^ 'v1SubjectName': Name of the object being referenced.
  -> V1Subject
mkV1Subject :: Text -> Text -> V1Subject
mkV1Subject Text
v1SubjectKind Text
v1SubjectName =
  V1Subject :: Maybe Text -> Text -> Text -> Maybe Text -> V1Subject
V1Subject
  { v1SubjectApiGroup :: Maybe Text
v1SubjectApiGroup = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1SubjectKind :: Text
v1SubjectKind :: Text
v1SubjectKind
  , Text
v1SubjectName :: Text
v1SubjectName :: Text
v1SubjectName
  , v1SubjectNamespace :: Maybe Text
v1SubjectNamespace = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1SubjectAccessReview
-- | V1SubjectAccessReview
-- SubjectAccessReview checks whether or not a user or group can perform an action.
data V1SubjectAccessReview = V1SubjectAccessReview
  { V1SubjectAccessReview -> Maybe Text
v1SubjectAccessReviewApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1SubjectAccessReview -> Maybe Text
v1SubjectAccessReviewKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1SubjectAccessReview -> Maybe V1ObjectMeta
v1SubjectAccessReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1SubjectAccessReview -> V1SubjectAccessReviewSpec
v1SubjectAccessReviewSpec :: !(V1SubjectAccessReviewSpec) -- ^ /Required/ "spec"
  , V1SubjectAccessReview -> Maybe V1SubjectAccessReviewStatus
v1SubjectAccessReviewStatus :: !(Maybe V1SubjectAccessReviewStatus) -- ^ "status"
  } deriving (Int -> V1SubjectAccessReview -> ShowS
[V1SubjectAccessReview] -> ShowS
V1SubjectAccessReview -> String
(Int -> V1SubjectAccessReview -> ShowS)
-> (V1SubjectAccessReview -> String)
-> ([V1SubjectAccessReview] -> ShowS)
-> Show V1SubjectAccessReview
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SubjectAccessReview] -> ShowS
$cshowList :: [V1SubjectAccessReview] -> ShowS
show :: V1SubjectAccessReview -> String
$cshow :: V1SubjectAccessReview -> String
showsPrec :: Int -> V1SubjectAccessReview -> ShowS
$cshowsPrec :: Int -> V1SubjectAccessReview -> ShowS
P.Show, V1SubjectAccessReview -> V1SubjectAccessReview -> Bool
(V1SubjectAccessReview -> V1SubjectAccessReview -> Bool)
-> (V1SubjectAccessReview -> V1SubjectAccessReview -> Bool)
-> Eq V1SubjectAccessReview
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SubjectAccessReview -> V1SubjectAccessReview -> Bool
$c/= :: V1SubjectAccessReview -> V1SubjectAccessReview -> Bool
== :: V1SubjectAccessReview -> V1SubjectAccessReview -> Bool
$c== :: V1SubjectAccessReview -> V1SubjectAccessReview -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SubjectAccessReview
instance A.FromJSON V1SubjectAccessReview where
  parseJSON :: Value -> Parser V1SubjectAccessReview
parseJSON = String
-> (Object -> Parser V1SubjectAccessReview)
-> Value
-> Parser V1SubjectAccessReview
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SubjectAccessReview" ((Object -> Parser V1SubjectAccessReview)
 -> Value -> Parser V1SubjectAccessReview)
-> (Object -> Parser V1SubjectAccessReview)
-> Value
-> Parser V1SubjectAccessReview
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1SubjectAccessReviewSpec
-> Maybe V1SubjectAccessReviewStatus
-> V1SubjectAccessReview
V1SubjectAccessReview
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1SubjectAccessReviewSpec
 -> Maybe V1SubjectAccessReviewStatus
 -> V1SubjectAccessReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1SubjectAccessReviewSpec
      -> Maybe V1SubjectAccessReviewStatus
      -> V1SubjectAccessReview)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1SubjectAccessReviewSpec
   -> Maybe V1SubjectAccessReviewStatus
   -> V1SubjectAccessReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1SubjectAccessReviewSpec
      -> Maybe V1SubjectAccessReviewStatus
      -> V1SubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1SubjectAccessReviewSpec
   -> Maybe V1SubjectAccessReviewStatus
   -> V1SubjectAccessReview)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1SubjectAccessReviewSpec
      -> Maybe V1SubjectAccessReviewStatus -> V1SubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1SubjectAccessReviewSpec
   -> Maybe V1SubjectAccessReviewStatus -> V1SubjectAccessReview)
-> Parser V1SubjectAccessReviewSpec
-> Parser
     (Maybe V1SubjectAccessReviewStatus -> V1SubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1SubjectAccessReviewSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")
      Parser (Maybe V1SubjectAccessReviewStatus -> V1SubjectAccessReview)
-> Parser (Maybe V1SubjectAccessReviewStatus)
-> Parser V1SubjectAccessReview
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SubjectAccessReviewStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1SubjectAccessReview
instance A.ToJSON V1SubjectAccessReview where
  toJSON :: V1SubjectAccessReview -> Value
toJSON V1SubjectAccessReview {Maybe Text
Maybe V1SubjectAccessReviewStatus
Maybe V1ObjectMeta
V1SubjectAccessReviewSpec
v1SubjectAccessReviewStatus :: Maybe V1SubjectAccessReviewStatus
v1SubjectAccessReviewSpec :: V1SubjectAccessReviewSpec
v1SubjectAccessReviewMetadata :: Maybe V1ObjectMeta
v1SubjectAccessReviewKind :: Maybe Text
v1SubjectAccessReviewApiVersion :: Maybe Text
v1SubjectAccessReviewStatus :: V1SubjectAccessReview -> Maybe V1SubjectAccessReviewStatus
v1SubjectAccessReviewSpec :: V1SubjectAccessReview -> V1SubjectAccessReviewSpec
v1SubjectAccessReviewMetadata :: V1SubjectAccessReview -> Maybe V1ObjectMeta
v1SubjectAccessReviewKind :: V1SubjectAccessReview -> Maybe Text
v1SubjectAccessReviewApiVersion :: V1SubjectAccessReview -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SubjectAccessReviewApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SubjectAccessReviewKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1SubjectAccessReviewMetadata
      , Text
"spec" Text -> V1SubjectAccessReviewSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1SubjectAccessReviewSpec
v1SubjectAccessReviewSpec
      , Text
"status" Text -> Maybe V1SubjectAccessReviewStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SubjectAccessReviewStatus
v1SubjectAccessReviewStatus
      ]


-- | Construct a value of type 'V1SubjectAccessReview' (by applying it's required fields, if any)
mkV1SubjectAccessReview
  :: V1SubjectAccessReviewSpec -- ^ 'v1SubjectAccessReviewSpec' 
  -> V1SubjectAccessReview
mkV1SubjectAccessReview :: V1SubjectAccessReviewSpec -> V1SubjectAccessReview
mkV1SubjectAccessReview V1SubjectAccessReviewSpec
v1SubjectAccessReviewSpec =
  V1SubjectAccessReview :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1SubjectAccessReviewSpec
-> Maybe V1SubjectAccessReviewStatus
-> V1SubjectAccessReview
V1SubjectAccessReview
  { v1SubjectAccessReviewApiVersion :: Maybe Text
v1SubjectAccessReviewApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1SubjectAccessReviewKind :: Maybe Text
v1SubjectAccessReviewKind = Maybe Text
forall a. Maybe a
Nothing
  , v1SubjectAccessReviewMetadata :: Maybe V1ObjectMeta
v1SubjectAccessReviewMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1SubjectAccessReviewSpec
v1SubjectAccessReviewSpec :: V1SubjectAccessReviewSpec
v1SubjectAccessReviewSpec :: V1SubjectAccessReviewSpec
v1SubjectAccessReviewSpec
  , v1SubjectAccessReviewStatus :: Maybe V1SubjectAccessReviewStatus
v1SubjectAccessReviewStatus = Maybe V1SubjectAccessReviewStatus
forall a. Maybe a
Nothing
  }

-- ** V1SubjectAccessReviewSpec
-- | V1SubjectAccessReviewSpec
-- SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set
data V1SubjectAccessReviewSpec = V1SubjectAccessReviewSpec
  { V1SubjectAccessReviewSpec -> Maybe (Map String [Text])
v1SubjectAccessReviewSpecExtra :: !(Maybe (Map.Map String [Text])) -- ^ "extra" - Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer it needs a reflection here.
  , V1SubjectAccessReviewSpec -> Maybe [Text]
v1SubjectAccessReviewSpecGroups :: !(Maybe [Text]) -- ^ "groups" - Groups is the groups you&#39;re testing for.
  , V1SubjectAccessReviewSpec -> Maybe V1NonResourceAttributes
v1SubjectAccessReviewSpecNonResourceAttributes :: !(Maybe V1NonResourceAttributes) -- ^ "nonResourceAttributes"
  , V1SubjectAccessReviewSpec -> Maybe V1ResourceAttributes
v1SubjectAccessReviewSpecResourceAttributes :: !(Maybe V1ResourceAttributes) -- ^ "resourceAttributes"
  , V1SubjectAccessReviewSpec -> Maybe Text
v1SubjectAccessReviewSpecUid :: !(Maybe Text) -- ^ "uid" - UID information about the requesting user.
  , V1SubjectAccessReviewSpec -> Maybe Text
v1SubjectAccessReviewSpecUser :: !(Maybe Text) -- ^ "user" - User is the user you&#39;re testing for. If you specify \&quot;User\&quot; but not \&quot;Groups\&quot;, then is it interpreted as \&quot;What if User were not a member of any groups
  } deriving (Int -> V1SubjectAccessReviewSpec -> ShowS
[V1SubjectAccessReviewSpec] -> ShowS
V1SubjectAccessReviewSpec -> String
(Int -> V1SubjectAccessReviewSpec -> ShowS)
-> (V1SubjectAccessReviewSpec -> String)
-> ([V1SubjectAccessReviewSpec] -> ShowS)
-> Show V1SubjectAccessReviewSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SubjectAccessReviewSpec] -> ShowS
$cshowList :: [V1SubjectAccessReviewSpec] -> ShowS
show :: V1SubjectAccessReviewSpec -> String
$cshow :: V1SubjectAccessReviewSpec -> String
showsPrec :: Int -> V1SubjectAccessReviewSpec -> ShowS
$cshowsPrec :: Int -> V1SubjectAccessReviewSpec -> ShowS
P.Show, V1SubjectAccessReviewSpec -> V1SubjectAccessReviewSpec -> Bool
(V1SubjectAccessReviewSpec -> V1SubjectAccessReviewSpec -> Bool)
-> (V1SubjectAccessReviewSpec -> V1SubjectAccessReviewSpec -> Bool)
-> Eq V1SubjectAccessReviewSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SubjectAccessReviewSpec -> V1SubjectAccessReviewSpec -> Bool
$c/= :: V1SubjectAccessReviewSpec -> V1SubjectAccessReviewSpec -> Bool
== :: V1SubjectAccessReviewSpec -> V1SubjectAccessReviewSpec -> Bool
$c== :: V1SubjectAccessReviewSpec -> V1SubjectAccessReviewSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SubjectAccessReviewSpec
instance A.FromJSON V1SubjectAccessReviewSpec where
  parseJSON :: Value -> Parser V1SubjectAccessReviewSpec
parseJSON = String
-> (Object -> Parser V1SubjectAccessReviewSpec)
-> Value
-> Parser V1SubjectAccessReviewSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SubjectAccessReviewSpec" ((Object -> Parser V1SubjectAccessReviewSpec)
 -> Value -> Parser V1SubjectAccessReviewSpec)
-> (Object -> Parser V1SubjectAccessReviewSpec)
-> Value
-> Parser V1SubjectAccessReviewSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe (Map String [Text])
-> Maybe [Text]
-> Maybe V1NonResourceAttributes
-> Maybe V1ResourceAttributes
-> Maybe Text
-> Maybe Text
-> V1SubjectAccessReviewSpec
V1SubjectAccessReviewSpec
      (Maybe (Map String [Text])
 -> Maybe [Text]
 -> Maybe V1NonResourceAttributes
 -> Maybe V1ResourceAttributes
 -> Maybe Text
 -> Maybe Text
 -> V1SubjectAccessReviewSpec)
-> Parser (Maybe (Map String [Text]))
-> Parser
     (Maybe [Text]
      -> Maybe V1NonResourceAttributes
      -> Maybe V1ResourceAttributes
      -> Maybe Text
      -> Maybe Text
      -> V1SubjectAccessReviewSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe (Map String [Text]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"extra")
      Parser
  (Maybe [Text]
   -> Maybe V1NonResourceAttributes
   -> Maybe V1ResourceAttributes
   -> Maybe Text
   -> Maybe Text
   -> V1SubjectAccessReviewSpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe V1NonResourceAttributes
      -> Maybe V1ResourceAttributes
      -> Maybe Text
      -> Maybe Text
      -> V1SubjectAccessReviewSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"groups")
      Parser
  (Maybe V1NonResourceAttributes
   -> Maybe V1ResourceAttributes
   -> Maybe Text
   -> Maybe Text
   -> V1SubjectAccessReviewSpec)
-> Parser (Maybe V1NonResourceAttributes)
-> Parser
     (Maybe V1ResourceAttributes
      -> Maybe Text -> Maybe Text -> V1SubjectAccessReviewSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1NonResourceAttributes)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nonResourceAttributes")
      Parser
  (Maybe V1ResourceAttributes
   -> Maybe Text -> Maybe Text -> V1SubjectAccessReviewSpec)
-> Parser (Maybe V1ResourceAttributes)
-> Parser (Maybe Text -> Maybe Text -> V1SubjectAccessReviewSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ResourceAttributes)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resourceAttributes")
      Parser (Maybe Text -> Maybe Text -> V1SubjectAccessReviewSpec)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1SubjectAccessReviewSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"uid")
      Parser (Maybe Text -> V1SubjectAccessReviewSpec)
-> Parser (Maybe Text) -> Parser V1SubjectAccessReviewSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"user")

-- | ToJSON V1SubjectAccessReviewSpec
instance A.ToJSON V1SubjectAccessReviewSpec where
  toJSON :: V1SubjectAccessReviewSpec -> Value
toJSON V1SubjectAccessReviewSpec {Maybe [Text]
Maybe Text
Maybe (Map String [Text])
Maybe V1ResourceAttributes
Maybe V1NonResourceAttributes
v1SubjectAccessReviewSpecUser :: Maybe Text
v1SubjectAccessReviewSpecUid :: Maybe Text
v1SubjectAccessReviewSpecResourceAttributes :: Maybe V1ResourceAttributes
v1SubjectAccessReviewSpecNonResourceAttributes :: Maybe V1NonResourceAttributes
v1SubjectAccessReviewSpecGroups :: Maybe [Text]
v1SubjectAccessReviewSpecExtra :: Maybe (Map String [Text])
v1SubjectAccessReviewSpecUser :: V1SubjectAccessReviewSpec -> Maybe Text
v1SubjectAccessReviewSpecUid :: V1SubjectAccessReviewSpec -> Maybe Text
v1SubjectAccessReviewSpecResourceAttributes :: V1SubjectAccessReviewSpec -> Maybe V1ResourceAttributes
v1SubjectAccessReviewSpecNonResourceAttributes :: V1SubjectAccessReviewSpec -> Maybe V1NonResourceAttributes
v1SubjectAccessReviewSpecGroups :: V1SubjectAccessReviewSpec -> Maybe [Text]
v1SubjectAccessReviewSpecExtra :: V1SubjectAccessReviewSpec -> Maybe (Map String [Text])
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"extra" Text -> Maybe (Map String [Text]) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String [Text])
v1SubjectAccessReviewSpecExtra
      , Text
"groups" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1SubjectAccessReviewSpecGroups
      , Text
"nonResourceAttributes" Text -> Maybe V1NonResourceAttributes -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NonResourceAttributes
v1SubjectAccessReviewSpecNonResourceAttributes
      , Text
"resourceAttributes" Text -> Maybe V1ResourceAttributes -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ResourceAttributes
v1SubjectAccessReviewSpecResourceAttributes
      , Text
"uid" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SubjectAccessReviewSpecUid
      , Text
"user" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SubjectAccessReviewSpecUser
      ]


-- | Construct a value of type 'V1SubjectAccessReviewSpec' (by applying it's required fields, if any)
mkV1SubjectAccessReviewSpec
  :: V1SubjectAccessReviewSpec
mkV1SubjectAccessReviewSpec :: V1SubjectAccessReviewSpec
mkV1SubjectAccessReviewSpec =
  V1SubjectAccessReviewSpec :: Maybe (Map String [Text])
-> Maybe [Text]
-> Maybe V1NonResourceAttributes
-> Maybe V1ResourceAttributes
-> Maybe Text
-> Maybe Text
-> V1SubjectAccessReviewSpec
V1SubjectAccessReviewSpec
  { v1SubjectAccessReviewSpecExtra :: Maybe (Map String [Text])
v1SubjectAccessReviewSpecExtra = Maybe (Map String [Text])
forall a. Maybe a
Nothing
  , v1SubjectAccessReviewSpecGroups :: Maybe [Text]
v1SubjectAccessReviewSpecGroups = Maybe [Text]
forall a. Maybe a
Nothing
  , v1SubjectAccessReviewSpecNonResourceAttributes :: Maybe V1NonResourceAttributes
v1SubjectAccessReviewSpecNonResourceAttributes = Maybe V1NonResourceAttributes
forall a. Maybe a
Nothing
  , v1SubjectAccessReviewSpecResourceAttributes :: Maybe V1ResourceAttributes
v1SubjectAccessReviewSpecResourceAttributes = Maybe V1ResourceAttributes
forall a. Maybe a
Nothing
  , v1SubjectAccessReviewSpecUid :: Maybe Text
v1SubjectAccessReviewSpecUid = Maybe Text
forall a. Maybe a
Nothing
  , v1SubjectAccessReviewSpecUser :: Maybe Text
v1SubjectAccessReviewSpecUser = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1SubjectAccessReviewStatus
-- | V1SubjectAccessReviewStatus
-- SubjectAccessReviewStatus
data V1SubjectAccessReviewStatus = V1SubjectAccessReviewStatus
  { V1SubjectAccessReviewStatus -> Bool
v1SubjectAccessReviewStatusAllowed :: !(Bool) -- ^ /Required/ "allowed" - Allowed is required. True if the action would be allowed, false otherwise.
  , V1SubjectAccessReviewStatus -> Maybe Bool
v1SubjectAccessReviewStatusDenied :: !(Maybe Bool) -- ^ "denied" - Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.
  , V1SubjectAccessReviewStatus -> Maybe Text
v1SubjectAccessReviewStatusEvaluationError :: !(Maybe Text) -- ^ "evaluationError" - EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.
  , V1SubjectAccessReviewStatus -> Maybe Text
v1SubjectAccessReviewStatusReason :: !(Maybe Text) -- ^ "reason" - Reason is optional.  It indicates why a request was allowed or denied.
  } deriving (Int -> V1SubjectAccessReviewStatus -> ShowS
[V1SubjectAccessReviewStatus] -> ShowS
V1SubjectAccessReviewStatus -> String
(Int -> V1SubjectAccessReviewStatus -> ShowS)
-> (V1SubjectAccessReviewStatus -> String)
-> ([V1SubjectAccessReviewStatus] -> ShowS)
-> Show V1SubjectAccessReviewStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SubjectAccessReviewStatus] -> ShowS
$cshowList :: [V1SubjectAccessReviewStatus] -> ShowS
show :: V1SubjectAccessReviewStatus -> String
$cshow :: V1SubjectAccessReviewStatus -> String
showsPrec :: Int -> V1SubjectAccessReviewStatus -> ShowS
$cshowsPrec :: Int -> V1SubjectAccessReviewStatus -> ShowS
P.Show, V1SubjectAccessReviewStatus -> V1SubjectAccessReviewStatus -> Bool
(V1SubjectAccessReviewStatus
 -> V1SubjectAccessReviewStatus -> Bool)
-> (V1SubjectAccessReviewStatus
    -> V1SubjectAccessReviewStatus -> Bool)
-> Eq V1SubjectAccessReviewStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SubjectAccessReviewStatus -> V1SubjectAccessReviewStatus -> Bool
$c/= :: V1SubjectAccessReviewStatus -> V1SubjectAccessReviewStatus -> Bool
== :: V1SubjectAccessReviewStatus -> V1SubjectAccessReviewStatus -> Bool
$c== :: V1SubjectAccessReviewStatus -> V1SubjectAccessReviewStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SubjectAccessReviewStatus
instance A.FromJSON V1SubjectAccessReviewStatus where
  parseJSON :: Value -> Parser V1SubjectAccessReviewStatus
parseJSON = String
-> (Object -> Parser V1SubjectAccessReviewStatus)
-> Value
-> Parser V1SubjectAccessReviewStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SubjectAccessReviewStatus" ((Object -> Parser V1SubjectAccessReviewStatus)
 -> Value -> Parser V1SubjectAccessReviewStatus)
-> (Object -> Parser V1SubjectAccessReviewStatus)
-> Value
-> Parser V1SubjectAccessReviewStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> V1SubjectAccessReviewStatus
V1SubjectAccessReviewStatus
      (Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> V1SubjectAccessReviewStatus)
-> Parser Bool
-> Parser
     (Maybe Bool
      -> Maybe Text -> Maybe Text -> V1SubjectAccessReviewStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"allowed")
      Parser
  (Maybe Bool
   -> Maybe Text -> Maybe Text -> V1SubjectAccessReviewStatus)
-> Parser (Maybe Bool)
-> Parser (Maybe Text -> Maybe Text -> V1SubjectAccessReviewStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"denied")
      Parser (Maybe Text -> Maybe Text -> V1SubjectAccessReviewStatus)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1SubjectAccessReviewStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"evaluationError")
      Parser (Maybe Text -> V1SubjectAccessReviewStatus)
-> Parser (Maybe Text) -> Parser V1SubjectAccessReviewStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")

-- | ToJSON V1SubjectAccessReviewStatus
instance A.ToJSON V1SubjectAccessReviewStatus where
  toJSON :: V1SubjectAccessReviewStatus -> Value
toJSON V1SubjectAccessReviewStatus {Bool
Maybe Bool
Maybe Text
v1SubjectAccessReviewStatusReason :: Maybe Text
v1SubjectAccessReviewStatusEvaluationError :: Maybe Text
v1SubjectAccessReviewStatusDenied :: Maybe Bool
v1SubjectAccessReviewStatusAllowed :: Bool
v1SubjectAccessReviewStatusReason :: V1SubjectAccessReviewStatus -> Maybe Text
v1SubjectAccessReviewStatusEvaluationError :: V1SubjectAccessReviewStatus -> Maybe Text
v1SubjectAccessReviewStatusDenied :: V1SubjectAccessReviewStatus -> Maybe Bool
v1SubjectAccessReviewStatusAllowed :: V1SubjectAccessReviewStatus -> Bool
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"allowed" Text -> Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Bool
v1SubjectAccessReviewStatusAllowed
      , Text
"denied" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1SubjectAccessReviewStatusDenied
      , Text
"evaluationError" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SubjectAccessReviewStatusEvaluationError
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SubjectAccessReviewStatusReason
      ]


-- | Construct a value of type 'V1SubjectAccessReviewStatus' (by applying it's required fields, if any)
mkV1SubjectAccessReviewStatus
  :: Bool -- ^ 'v1SubjectAccessReviewStatusAllowed': Allowed is required. True if the action would be allowed, false otherwise.
  -> V1SubjectAccessReviewStatus
mkV1SubjectAccessReviewStatus :: Bool -> V1SubjectAccessReviewStatus
mkV1SubjectAccessReviewStatus Bool
v1SubjectAccessReviewStatusAllowed =
  V1SubjectAccessReviewStatus :: Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> V1SubjectAccessReviewStatus
V1SubjectAccessReviewStatus
  { Bool
v1SubjectAccessReviewStatusAllowed :: Bool
v1SubjectAccessReviewStatusAllowed :: Bool
v1SubjectAccessReviewStatusAllowed
  , v1SubjectAccessReviewStatusDenied :: Maybe Bool
v1SubjectAccessReviewStatusDenied = Maybe Bool
forall a. Maybe a
Nothing
  , v1SubjectAccessReviewStatusEvaluationError :: Maybe Text
v1SubjectAccessReviewStatusEvaluationError = Maybe Text
forall a. Maybe a
Nothing
  , v1SubjectAccessReviewStatusReason :: Maybe Text
v1SubjectAccessReviewStatusReason = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1SubjectRulesReviewStatus
-- | V1SubjectRulesReviewStatus
-- SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.
data V1SubjectRulesReviewStatus = V1SubjectRulesReviewStatus
  { V1SubjectRulesReviewStatus -> Maybe Text
v1SubjectRulesReviewStatusEvaluationError :: !(Maybe Text) -- ^ "evaluationError" - EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn&#39;t support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.
  , V1SubjectRulesReviewStatus -> Bool
v1SubjectRulesReviewStatusIncomplete :: !(Bool) -- ^ /Required/ "incomplete" - Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn&#39;t support rules evaluation.
  , V1SubjectRulesReviewStatus -> [V1NonResourceRule]
v1SubjectRulesReviewStatusNonResourceRules :: !([V1NonResourceRule]) -- ^ /Required/ "nonResourceRules" - NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn&#39;t significant, may contain duplicates, and possibly be incomplete.
  , V1SubjectRulesReviewStatus -> [V1ResourceRule]
v1SubjectRulesReviewStatusResourceRules :: !([V1ResourceRule]) -- ^ /Required/ "resourceRules" - ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn&#39;t significant, may contain duplicates, and possibly be incomplete.
  } deriving (Int -> V1SubjectRulesReviewStatus -> ShowS
[V1SubjectRulesReviewStatus] -> ShowS
V1SubjectRulesReviewStatus -> String
(Int -> V1SubjectRulesReviewStatus -> ShowS)
-> (V1SubjectRulesReviewStatus -> String)
-> ([V1SubjectRulesReviewStatus] -> ShowS)
-> Show V1SubjectRulesReviewStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1SubjectRulesReviewStatus] -> ShowS
$cshowList :: [V1SubjectRulesReviewStatus] -> ShowS
show :: V1SubjectRulesReviewStatus -> String
$cshow :: V1SubjectRulesReviewStatus -> String
showsPrec :: Int -> V1SubjectRulesReviewStatus -> ShowS
$cshowsPrec :: Int -> V1SubjectRulesReviewStatus -> ShowS
P.Show, V1SubjectRulesReviewStatus -> V1SubjectRulesReviewStatus -> Bool
(V1SubjectRulesReviewStatus -> V1SubjectRulesReviewStatus -> Bool)
-> (V1SubjectRulesReviewStatus
    -> V1SubjectRulesReviewStatus -> Bool)
-> Eq V1SubjectRulesReviewStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1SubjectRulesReviewStatus -> V1SubjectRulesReviewStatus -> Bool
$c/= :: V1SubjectRulesReviewStatus -> V1SubjectRulesReviewStatus -> Bool
== :: V1SubjectRulesReviewStatus -> V1SubjectRulesReviewStatus -> Bool
$c== :: V1SubjectRulesReviewStatus -> V1SubjectRulesReviewStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1SubjectRulesReviewStatus
instance A.FromJSON V1SubjectRulesReviewStatus where
  parseJSON :: Value -> Parser V1SubjectRulesReviewStatus
parseJSON = String
-> (Object -> Parser V1SubjectRulesReviewStatus)
-> Value
-> Parser V1SubjectRulesReviewStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1SubjectRulesReviewStatus" ((Object -> Parser V1SubjectRulesReviewStatus)
 -> Value -> Parser V1SubjectRulesReviewStatus)
-> (Object -> Parser V1SubjectRulesReviewStatus)
-> Value
-> Parser V1SubjectRulesReviewStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Bool
-> [V1NonResourceRule]
-> [V1ResourceRule]
-> V1SubjectRulesReviewStatus
V1SubjectRulesReviewStatus
      (Maybe Text
 -> Bool
 -> [V1NonResourceRule]
 -> [V1ResourceRule]
 -> V1SubjectRulesReviewStatus)
-> Parser (Maybe Text)
-> Parser
     (Bool
      -> [V1NonResourceRule]
      -> [V1ResourceRule]
      -> V1SubjectRulesReviewStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"evaluationError")
      Parser
  (Bool
   -> [V1NonResourceRule]
   -> [V1ResourceRule]
   -> V1SubjectRulesReviewStatus)
-> Parser Bool
-> Parser
     ([V1NonResourceRule]
      -> [V1ResourceRule] -> V1SubjectRulesReviewStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"incomplete")
      Parser
  ([V1NonResourceRule]
   -> [V1ResourceRule] -> V1SubjectRulesReviewStatus)
-> Parser [V1NonResourceRule]
-> Parser ([V1ResourceRule] -> V1SubjectRulesReviewStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1NonResourceRule]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"nonResourceRules")
      Parser ([V1ResourceRule] -> V1SubjectRulesReviewStatus)
-> Parser [V1ResourceRule] -> Parser V1SubjectRulesReviewStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1ResourceRule]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"resourceRules")

-- | ToJSON V1SubjectRulesReviewStatus
instance A.ToJSON V1SubjectRulesReviewStatus where
  toJSON :: V1SubjectRulesReviewStatus -> Value
toJSON V1SubjectRulesReviewStatus {Bool
[V1ResourceRule]
[V1NonResourceRule]
Maybe Text
v1SubjectRulesReviewStatusResourceRules :: [V1ResourceRule]
v1SubjectRulesReviewStatusNonResourceRules :: [V1NonResourceRule]
v1SubjectRulesReviewStatusIncomplete :: Bool
v1SubjectRulesReviewStatusEvaluationError :: Maybe Text
v1SubjectRulesReviewStatusResourceRules :: V1SubjectRulesReviewStatus -> [V1ResourceRule]
v1SubjectRulesReviewStatusNonResourceRules :: V1SubjectRulesReviewStatus -> [V1NonResourceRule]
v1SubjectRulesReviewStatusIncomplete :: V1SubjectRulesReviewStatus -> Bool
v1SubjectRulesReviewStatusEvaluationError :: V1SubjectRulesReviewStatus -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"evaluationError" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1SubjectRulesReviewStatusEvaluationError
      , Text
"incomplete" Text -> Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Bool
v1SubjectRulesReviewStatusIncomplete
      , Text
"nonResourceRules" Text -> [V1NonResourceRule] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1NonResourceRule]
v1SubjectRulesReviewStatusNonResourceRules
      , Text
"resourceRules" Text -> [V1ResourceRule] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1ResourceRule]
v1SubjectRulesReviewStatusResourceRules
      ]


-- | Construct a value of type 'V1SubjectRulesReviewStatus' (by applying it's required fields, if any)
mkV1SubjectRulesReviewStatus
  :: Bool -- ^ 'v1SubjectRulesReviewStatusIncomplete': Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.
  -> [V1NonResourceRule] -- ^ 'v1SubjectRulesReviewStatusNonResourceRules': NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.
  -> [V1ResourceRule] -- ^ 'v1SubjectRulesReviewStatusResourceRules': ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.
  -> V1SubjectRulesReviewStatus
mkV1SubjectRulesReviewStatus :: Bool
-> [V1NonResourceRule]
-> [V1ResourceRule]
-> V1SubjectRulesReviewStatus
mkV1SubjectRulesReviewStatus Bool
v1SubjectRulesReviewStatusIncomplete [V1NonResourceRule]
v1SubjectRulesReviewStatusNonResourceRules [V1ResourceRule]
v1SubjectRulesReviewStatusResourceRules =
  V1SubjectRulesReviewStatus :: Maybe Text
-> Bool
-> [V1NonResourceRule]
-> [V1ResourceRule]
-> V1SubjectRulesReviewStatus
V1SubjectRulesReviewStatus
  { v1SubjectRulesReviewStatusEvaluationError :: Maybe Text
v1SubjectRulesReviewStatusEvaluationError = Maybe Text
forall a. Maybe a
Nothing
  , Bool
v1SubjectRulesReviewStatusIncomplete :: Bool
v1SubjectRulesReviewStatusIncomplete :: Bool
v1SubjectRulesReviewStatusIncomplete
  , [V1NonResourceRule]
v1SubjectRulesReviewStatusNonResourceRules :: [V1NonResourceRule]
v1SubjectRulesReviewStatusNonResourceRules :: [V1NonResourceRule]
v1SubjectRulesReviewStatusNonResourceRules
  , [V1ResourceRule]
v1SubjectRulesReviewStatusResourceRules :: [V1ResourceRule]
v1SubjectRulesReviewStatusResourceRules :: [V1ResourceRule]
v1SubjectRulesReviewStatusResourceRules
  }

-- ** V1Sysctl
-- | V1Sysctl
-- Sysctl defines a kernel parameter to be set
data V1Sysctl = V1Sysctl
  { V1Sysctl -> Text
v1SysctlName :: !(Text) -- ^ /Required/ "name" - Name of a property to set
  , V1Sysctl -> Text
v1SysctlValue :: !(Text) -- ^ /Required/ "value" - Value of a property to set
  } deriving (Int -> V1Sysctl -> ShowS
[V1Sysctl] -> ShowS
V1Sysctl -> String
(Int -> V1Sysctl -> ShowS)
-> (V1Sysctl -> String) -> ([V1Sysctl] -> ShowS) -> Show V1Sysctl
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Sysctl] -> ShowS
$cshowList :: [V1Sysctl] -> ShowS
show :: V1Sysctl -> String
$cshow :: V1Sysctl -> String
showsPrec :: Int -> V1Sysctl -> ShowS
$cshowsPrec :: Int -> V1Sysctl -> ShowS
P.Show, V1Sysctl -> V1Sysctl -> Bool
(V1Sysctl -> V1Sysctl -> Bool)
-> (V1Sysctl -> V1Sysctl -> Bool) -> Eq V1Sysctl
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Sysctl -> V1Sysctl -> Bool
$c/= :: V1Sysctl -> V1Sysctl -> Bool
== :: V1Sysctl -> V1Sysctl -> Bool
$c== :: V1Sysctl -> V1Sysctl -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Sysctl
instance A.FromJSON V1Sysctl where
  parseJSON :: Value -> Parser V1Sysctl
parseJSON = String -> (Object -> Parser V1Sysctl) -> Value -> Parser V1Sysctl
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Sysctl" ((Object -> Parser V1Sysctl) -> Value -> Parser V1Sysctl)
-> (Object -> Parser V1Sysctl) -> Value -> Parser V1Sysctl
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> V1Sysctl
V1Sysctl
      (Text -> Text -> V1Sysctl)
-> Parser Text -> Parser (Text -> V1Sysctl)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser (Text -> V1Sysctl) -> Parser Text -> Parser V1Sysctl
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"value")

-- | ToJSON V1Sysctl
instance A.ToJSON V1Sysctl where
  toJSON :: V1Sysctl -> Value
toJSON V1Sysctl {Text
v1SysctlValue :: Text
v1SysctlName :: Text
v1SysctlValue :: V1Sysctl -> Text
v1SysctlName :: V1Sysctl -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1SysctlName
      , Text
"value" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1SysctlValue
      ]


-- | Construct a value of type 'V1Sysctl' (by applying it's required fields, if any)
mkV1Sysctl
  :: Text -- ^ 'v1SysctlName': Name of a property to set
  -> Text -- ^ 'v1SysctlValue': Value of a property to set
  -> V1Sysctl
mkV1Sysctl :: Text -> Text -> V1Sysctl
mkV1Sysctl Text
v1SysctlName Text
v1SysctlValue =
  V1Sysctl :: Text -> Text -> V1Sysctl
V1Sysctl
  { Text
v1SysctlName :: Text
v1SysctlName :: Text
v1SysctlName
  , Text
v1SysctlValue :: Text
v1SysctlValue :: Text
v1SysctlValue
  }

-- ** V1TCPSocketAction
-- | V1TCPSocketAction
-- TCPSocketAction describes an action based on opening a socket
data V1TCPSocketAction = V1TCPSocketAction
  { V1TCPSocketAction -> Maybe Text
v1TCPSocketActionHost :: !(Maybe Text) -- ^ "host" - Optional: Host name to connect to, defaults to the pod IP.
  , V1TCPSocketAction -> IntOrString
v1TCPSocketActionPort :: !(IntOrString) -- ^ /Required/ "port"
  } deriving (Int -> V1TCPSocketAction -> ShowS
[V1TCPSocketAction] -> ShowS
V1TCPSocketAction -> String
(Int -> V1TCPSocketAction -> ShowS)
-> (V1TCPSocketAction -> String)
-> ([V1TCPSocketAction] -> ShowS)
-> Show V1TCPSocketAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1TCPSocketAction] -> ShowS
$cshowList :: [V1TCPSocketAction] -> ShowS
show :: V1TCPSocketAction -> String
$cshow :: V1TCPSocketAction -> String
showsPrec :: Int -> V1TCPSocketAction -> ShowS
$cshowsPrec :: Int -> V1TCPSocketAction -> ShowS
P.Show, V1TCPSocketAction -> V1TCPSocketAction -> Bool
(V1TCPSocketAction -> V1TCPSocketAction -> Bool)
-> (V1TCPSocketAction -> V1TCPSocketAction -> Bool)
-> Eq V1TCPSocketAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1TCPSocketAction -> V1TCPSocketAction -> Bool
$c/= :: V1TCPSocketAction -> V1TCPSocketAction -> Bool
== :: V1TCPSocketAction -> V1TCPSocketAction -> Bool
$c== :: V1TCPSocketAction -> V1TCPSocketAction -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1TCPSocketAction
instance A.FromJSON V1TCPSocketAction where
  parseJSON :: Value -> Parser V1TCPSocketAction
parseJSON = String
-> (Object -> Parser V1TCPSocketAction)
-> Value
-> Parser V1TCPSocketAction
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1TCPSocketAction" ((Object -> Parser V1TCPSocketAction)
 -> Value -> Parser V1TCPSocketAction)
-> (Object -> Parser V1TCPSocketAction)
-> Value
-> Parser V1TCPSocketAction
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> IntOrString -> V1TCPSocketAction
V1TCPSocketAction
      (Maybe Text -> IntOrString -> V1TCPSocketAction)
-> Parser (Maybe Text) -> Parser (IntOrString -> V1TCPSocketAction)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"host")
      Parser (IntOrString -> V1TCPSocketAction)
-> Parser IntOrString -> Parser V1TCPSocketAction
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser IntOrString
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"port")

-- | ToJSON V1TCPSocketAction
instance A.ToJSON V1TCPSocketAction where
  toJSON :: V1TCPSocketAction -> Value
toJSON V1TCPSocketAction {Maybe Text
IntOrString
v1TCPSocketActionPort :: IntOrString
v1TCPSocketActionHost :: Maybe Text
v1TCPSocketActionPort :: V1TCPSocketAction -> IntOrString
v1TCPSocketActionHost :: V1TCPSocketAction -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"host" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1TCPSocketActionHost
      , Text
"port" Text -> IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= IntOrString
v1TCPSocketActionPort
      ]


-- | Construct a value of type 'V1TCPSocketAction' (by applying it's required fields, if any)
mkV1TCPSocketAction
  :: IntOrString -- ^ 'v1TCPSocketActionPort' 
  -> V1TCPSocketAction
mkV1TCPSocketAction :: IntOrString -> V1TCPSocketAction
mkV1TCPSocketAction IntOrString
v1TCPSocketActionPort =
  V1TCPSocketAction :: Maybe Text -> IntOrString -> V1TCPSocketAction
V1TCPSocketAction
  { v1TCPSocketActionHost :: Maybe Text
v1TCPSocketActionHost = Maybe Text
forall a. Maybe a
Nothing
  , IntOrString
v1TCPSocketActionPort :: IntOrString
v1TCPSocketActionPort :: IntOrString
v1TCPSocketActionPort
  }

-- ** V1Taint
-- | V1Taint
-- The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.
data V1Taint = V1Taint
  { V1Taint -> Text
v1TaintEffect :: !(Text) -- ^ /Required/ "effect" - Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
  , V1Taint -> Text
v1TaintKey :: !(Text) -- ^ /Required/ "key" - Required. The taint key to be applied to a node.
  , V1Taint -> Maybe DateTime
v1TaintTimeAdded :: !(Maybe DateTime) -- ^ "timeAdded" - TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.
  , V1Taint -> Maybe Text
v1TaintValue :: !(Maybe Text) -- ^ "value" - Required. The taint value corresponding to the taint key.
  } deriving (Int -> V1Taint -> ShowS
[V1Taint] -> ShowS
V1Taint -> String
(Int -> V1Taint -> ShowS)
-> (V1Taint -> String) -> ([V1Taint] -> ShowS) -> Show V1Taint
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Taint] -> ShowS
$cshowList :: [V1Taint] -> ShowS
show :: V1Taint -> String
$cshow :: V1Taint -> String
showsPrec :: Int -> V1Taint -> ShowS
$cshowsPrec :: Int -> V1Taint -> ShowS
P.Show, V1Taint -> V1Taint -> Bool
(V1Taint -> V1Taint -> Bool)
-> (V1Taint -> V1Taint -> Bool) -> Eq V1Taint
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Taint -> V1Taint -> Bool
$c/= :: V1Taint -> V1Taint -> Bool
== :: V1Taint -> V1Taint -> Bool
$c== :: V1Taint -> V1Taint -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Taint
instance A.FromJSON V1Taint where
  parseJSON :: Value -> Parser V1Taint
parseJSON = String -> (Object -> Parser V1Taint) -> Value -> Parser V1Taint
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Taint" ((Object -> Parser V1Taint) -> Value -> Parser V1Taint)
-> (Object -> Parser V1Taint) -> Value -> Parser V1Taint
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> Maybe DateTime -> Maybe Text -> V1Taint
V1Taint
      (Text -> Text -> Maybe DateTime -> Maybe Text -> V1Taint)
-> Parser Text
-> Parser (Text -> Maybe DateTime -> Maybe Text -> V1Taint)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"effect")
      Parser (Text -> Maybe DateTime -> Maybe Text -> V1Taint)
-> Parser Text -> Parser (Maybe DateTime -> Maybe Text -> V1Taint)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"key")
      Parser (Maybe DateTime -> Maybe Text -> V1Taint)
-> Parser (Maybe DateTime) -> Parser (Maybe Text -> V1Taint)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"timeAdded")
      Parser (Maybe Text -> V1Taint)
-> Parser (Maybe Text) -> Parser V1Taint
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"value")

-- | ToJSON V1Taint
instance A.ToJSON V1Taint where
  toJSON :: V1Taint -> Value
toJSON V1Taint {Maybe Text
Maybe DateTime
Text
v1TaintValue :: Maybe Text
v1TaintTimeAdded :: Maybe DateTime
v1TaintKey :: Text
v1TaintEffect :: Text
v1TaintValue :: V1Taint -> Maybe Text
v1TaintTimeAdded :: V1Taint -> Maybe DateTime
v1TaintKey :: V1Taint -> Text
v1TaintEffect :: V1Taint -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"effect" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1TaintEffect
      , Text
"key" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1TaintKey
      , Text
"timeAdded" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1TaintTimeAdded
      , Text
"value" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1TaintValue
      ]


-- | Construct a value of type 'V1Taint' (by applying it's required fields, if any)
mkV1Taint
  :: Text -- ^ 'v1TaintEffect': Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
  -> Text -- ^ 'v1TaintKey': Required. The taint key to be applied to a node.
  -> V1Taint
mkV1Taint :: Text -> Text -> V1Taint
mkV1Taint Text
v1TaintEffect Text
v1TaintKey =
  V1Taint :: Text -> Text -> Maybe DateTime -> Maybe Text -> V1Taint
V1Taint
  { Text
v1TaintEffect :: Text
v1TaintEffect :: Text
v1TaintEffect
  , Text
v1TaintKey :: Text
v1TaintKey :: Text
v1TaintKey
  , v1TaintTimeAdded :: Maybe DateTime
v1TaintTimeAdded = Maybe DateTime
forall a. Maybe a
Nothing
  , v1TaintValue :: Maybe Text
v1TaintValue = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1TokenRequest
-- | V1TokenRequest
-- TokenRequest requests a token for a given service account.
data V1TokenRequest = V1TokenRequest
  { V1TokenRequest -> Maybe Text
v1TokenRequestApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1TokenRequest -> Maybe Text
v1TokenRequestKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1TokenRequest -> Maybe V1ObjectMeta
v1TokenRequestMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1TokenRequest -> V1TokenRequestSpec
v1TokenRequestSpec :: !(V1TokenRequestSpec) -- ^ /Required/ "spec"
  , V1TokenRequest -> Maybe V1TokenRequestStatus
v1TokenRequestStatus :: !(Maybe V1TokenRequestStatus) -- ^ "status"
  } deriving (Int -> V1TokenRequest -> ShowS
[V1TokenRequest] -> ShowS
V1TokenRequest -> String
(Int -> V1TokenRequest -> ShowS)
-> (V1TokenRequest -> String)
-> ([V1TokenRequest] -> ShowS)
-> Show V1TokenRequest
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1TokenRequest] -> ShowS
$cshowList :: [V1TokenRequest] -> ShowS
show :: V1TokenRequest -> String
$cshow :: V1TokenRequest -> String
showsPrec :: Int -> V1TokenRequest -> ShowS
$cshowsPrec :: Int -> V1TokenRequest -> ShowS
P.Show, V1TokenRequest -> V1TokenRequest -> Bool
(V1TokenRequest -> V1TokenRequest -> Bool)
-> (V1TokenRequest -> V1TokenRequest -> Bool) -> Eq V1TokenRequest
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1TokenRequest -> V1TokenRequest -> Bool
$c/= :: V1TokenRequest -> V1TokenRequest -> Bool
== :: V1TokenRequest -> V1TokenRequest -> Bool
$c== :: V1TokenRequest -> V1TokenRequest -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1TokenRequest
instance A.FromJSON V1TokenRequest where
  parseJSON :: Value -> Parser V1TokenRequest
parseJSON = String
-> (Object -> Parser V1TokenRequest)
-> Value
-> Parser V1TokenRequest
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1TokenRequest" ((Object -> Parser V1TokenRequest)
 -> Value -> Parser V1TokenRequest)
-> (Object -> Parser V1TokenRequest)
-> Value
-> Parser V1TokenRequest
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1TokenRequestSpec
-> Maybe V1TokenRequestStatus
-> V1TokenRequest
V1TokenRequest
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1TokenRequestSpec
 -> Maybe V1TokenRequestStatus
 -> V1TokenRequest)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1TokenRequestSpec
      -> Maybe V1TokenRequestStatus
      -> V1TokenRequest)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1TokenRequestSpec
   -> Maybe V1TokenRequestStatus
   -> V1TokenRequest)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1TokenRequestSpec
      -> Maybe V1TokenRequestStatus
      -> V1TokenRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1TokenRequestSpec
   -> Maybe V1TokenRequestStatus
   -> V1TokenRequest)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1TokenRequestSpec
      -> Maybe V1TokenRequestStatus -> V1TokenRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1TokenRequestSpec
   -> Maybe V1TokenRequestStatus -> V1TokenRequest)
-> Parser V1TokenRequestSpec
-> Parser (Maybe V1TokenRequestStatus -> V1TokenRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1TokenRequestSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")
      Parser (Maybe V1TokenRequestStatus -> V1TokenRequest)
-> Parser (Maybe V1TokenRequestStatus) -> Parser V1TokenRequest
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1TokenRequestStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1TokenRequest
instance A.ToJSON V1TokenRequest where
  toJSON :: V1TokenRequest -> Value
toJSON V1TokenRequest {Maybe Text
Maybe V1TokenRequestStatus
Maybe V1ObjectMeta
V1TokenRequestSpec
v1TokenRequestStatus :: Maybe V1TokenRequestStatus
v1TokenRequestSpec :: V1TokenRequestSpec
v1TokenRequestMetadata :: Maybe V1ObjectMeta
v1TokenRequestKind :: Maybe Text
v1TokenRequestApiVersion :: Maybe Text
v1TokenRequestStatus :: V1TokenRequest -> Maybe V1TokenRequestStatus
v1TokenRequestSpec :: V1TokenRequest -> V1TokenRequestSpec
v1TokenRequestMetadata :: V1TokenRequest -> Maybe V1ObjectMeta
v1TokenRequestKind :: V1TokenRequest -> Maybe Text
v1TokenRequestApiVersion :: V1TokenRequest -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1TokenRequestApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1TokenRequestKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1TokenRequestMetadata
      , Text
"spec" Text -> V1TokenRequestSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1TokenRequestSpec
v1TokenRequestSpec
      , Text
"status" Text -> Maybe V1TokenRequestStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1TokenRequestStatus
v1TokenRequestStatus
      ]


-- | Construct a value of type 'V1TokenRequest' (by applying it's required fields, if any)
mkV1TokenRequest
  :: V1TokenRequestSpec -- ^ 'v1TokenRequestSpec' 
  -> V1TokenRequest
mkV1TokenRequest :: V1TokenRequestSpec -> V1TokenRequest
mkV1TokenRequest V1TokenRequestSpec
v1TokenRequestSpec =
  V1TokenRequest :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1TokenRequestSpec
-> Maybe V1TokenRequestStatus
-> V1TokenRequest
V1TokenRequest
  { v1TokenRequestApiVersion :: Maybe Text
v1TokenRequestApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1TokenRequestKind :: Maybe Text
v1TokenRequestKind = Maybe Text
forall a. Maybe a
Nothing
  , v1TokenRequestMetadata :: Maybe V1ObjectMeta
v1TokenRequestMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1TokenRequestSpec
v1TokenRequestSpec :: V1TokenRequestSpec
v1TokenRequestSpec :: V1TokenRequestSpec
v1TokenRequestSpec
  , v1TokenRequestStatus :: Maybe V1TokenRequestStatus
v1TokenRequestStatus = Maybe V1TokenRequestStatus
forall a. Maybe a
Nothing
  }

-- ** V1TokenRequestSpec
-- | V1TokenRequestSpec
-- TokenRequestSpec contains client provided parameters of a token request.
data V1TokenRequestSpec = V1TokenRequestSpec
  { V1TokenRequestSpec -> [Text]
v1TokenRequestSpecAudiences :: !([Text]) -- ^ /Required/ "audiences" - Audiences are the intendend audiences of the token. A recipient of a token must identitfy themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences.
  , V1TokenRequestSpec -> Maybe V1BoundObjectReference
v1TokenRequestSpecBoundObjectRef :: !(Maybe V1BoundObjectReference) -- ^ "boundObjectRef"
  , V1TokenRequestSpec -> Maybe Integer
v1TokenRequestSpecExpirationSeconds :: !(Maybe Integer) -- ^ "expirationSeconds" - ExpirationSeconds is the requested duration of validity of the request. The token issuer may return a token with a different validity duration so a client needs to check the &#39;expiration&#39; field in a response.
  } deriving (Int -> V1TokenRequestSpec -> ShowS
[V1TokenRequestSpec] -> ShowS
V1TokenRequestSpec -> String
(Int -> V1TokenRequestSpec -> ShowS)
-> (V1TokenRequestSpec -> String)
-> ([V1TokenRequestSpec] -> ShowS)
-> Show V1TokenRequestSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1TokenRequestSpec] -> ShowS
$cshowList :: [V1TokenRequestSpec] -> ShowS
show :: V1TokenRequestSpec -> String
$cshow :: V1TokenRequestSpec -> String
showsPrec :: Int -> V1TokenRequestSpec -> ShowS
$cshowsPrec :: Int -> V1TokenRequestSpec -> ShowS
P.Show, V1TokenRequestSpec -> V1TokenRequestSpec -> Bool
(V1TokenRequestSpec -> V1TokenRequestSpec -> Bool)
-> (V1TokenRequestSpec -> V1TokenRequestSpec -> Bool)
-> Eq V1TokenRequestSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1TokenRequestSpec -> V1TokenRequestSpec -> Bool
$c/= :: V1TokenRequestSpec -> V1TokenRequestSpec -> Bool
== :: V1TokenRequestSpec -> V1TokenRequestSpec -> Bool
$c== :: V1TokenRequestSpec -> V1TokenRequestSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1TokenRequestSpec
instance A.FromJSON V1TokenRequestSpec where
  parseJSON :: Value -> Parser V1TokenRequestSpec
parseJSON = String
-> (Object -> Parser V1TokenRequestSpec)
-> Value
-> Parser V1TokenRequestSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1TokenRequestSpec" ((Object -> Parser V1TokenRequestSpec)
 -> Value -> Parser V1TokenRequestSpec)
-> (Object -> Parser V1TokenRequestSpec)
-> Value
-> Parser V1TokenRequestSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    [Text]
-> Maybe V1BoundObjectReference
-> Maybe Integer
-> V1TokenRequestSpec
V1TokenRequestSpec
      ([Text]
 -> Maybe V1BoundObjectReference
 -> Maybe Integer
 -> V1TokenRequestSpec)
-> Parser [Text]
-> Parser
     (Maybe V1BoundObjectReference
      -> Maybe Integer -> V1TokenRequestSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"audiences")
      Parser
  (Maybe V1BoundObjectReference
   -> Maybe Integer -> V1TokenRequestSpec)
-> Parser (Maybe V1BoundObjectReference)
-> Parser (Maybe Integer -> V1TokenRequestSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1BoundObjectReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"boundObjectRef")
      Parser (Maybe Integer -> V1TokenRequestSpec)
-> Parser (Maybe Integer) -> Parser V1TokenRequestSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"expirationSeconds")

-- | ToJSON V1TokenRequestSpec
instance A.ToJSON V1TokenRequestSpec where
  toJSON :: V1TokenRequestSpec -> Value
toJSON V1TokenRequestSpec {[Text]
Maybe Integer
Maybe V1BoundObjectReference
v1TokenRequestSpecExpirationSeconds :: Maybe Integer
v1TokenRequestSpecBoundObjectRef :: Maybe V1BoundObjectReference
v1TokenRequestSpecAudiences :: [Text]
v1TokenRequestSpecExpirationSeconds :: V1TokenRequestSpec -> Maybe Integer
v1TokenRequestSpecBoundObjectRef :: V1TokenRequestSpec -> Maybe V1BoundObjectReference
v1TokenRequestSpecAudiences :: V1TokenRequestSpec -> [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"audiences" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1TokenRequestSpecAudiences
      , Text
"boundObjectRef" Text -> Maybe V1BoundObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1BoundObjectReference
v1TokenRequestSpecBoundObjectRef
      , Text
"expirationSeconds" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1TokenRequestSpecExpirationSeconds
      ]


-- | Construct a value of type 'V1TokenRequestSpec' (by applying it's required fields, if any)
mkV1TokenRequestSpec
  :: [Text] -- ^ 'v1TokenRequestSpecAudiences': Audiences are the intendend audiences of the token. A recipient of a token must identitfy themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences.
  -> V1TokenRequestSpec
mkV1TokenRequestSpec :: [Text] -> V1TokenRequestSpec
mkV1TokenRequestSpec [Text]
v1TokenRequestSpecAudiences =
  V1TokenRequestSpec :: [Text]
-> Maybe V1BoundObjectReference
-> Maybe Integer
-> V1TokenRequestSpec
V1TokenRequestSpec
  { [Text]
v1TokenRequestSpecAudiences :: [Text]
v1TokenRequestSpecAudiences :: [Text]
v1TokenRequestSpecAudiences
  , v1TokenRequestSpecBoundObjectRef :: Maybe V1BoundObjectReference
v1TokenRequestSpecBoundObjectRef = Maybe V1BoundObjectReference
forall a. Maybe a
Nothing
  , v1TokenRequestSpecExpirationSeconds :: Maybe Integer
v1TokenRequestSpecExpirationSeconds = Maybe Integer
forall a. Maybe a
Nothing
  }

-- ** V1TokenRequestStatus
-- | V1TokenRequestStatus
-- TokenRequestStatus is the result of a token request.
data V1TokenRequestStatus = V1TokenRequestStatus
  { V1TokenRequestStatus -> DateTime
v1TokenRequestStatusExpirationTimestamp :: !(DateTime) -- ^ /Required/ "expirationTimestamp" - ExpirationTimestamp is the time of expiration of the returned token.
  , V1TokenRequestStatus -> Text
v1TokenRequestStatusToken :: !(Text) -- ^ /Required/ "token" - Token is the opaque bearer token.
  } deriving (Int -> V1TokenRequestStatus -> ShowS
[V1TokenRequestStatus] -> ShowS
V1TokenRequestStatus -> String
(Int -> V1TokenRequestStatus -> ShowS)
-> (V1TokenRequestStatus -> String)
-> ([V1TokenRequestStatus] -> ShowS)
-> Show V1TokenRequestStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1TokenRequestStatus] -> ShowS
$cshowList :: [V1TokenRequestStatus] -> ShowS
show :: V1TokenRequestStatus -> String
$cshow :: V1TokenRequestStatus -> String
showsPrec :: Int -> V1TokenRequestStatus -> ShowS
$cshowsPrec :: Int -> V1TokenRequestStatus -> ShowS
P.Show, V1TokenRequestStatus -> V1TokenRequestStatus -> Bool
(V1TokenRequestStatus -> V1TokenRequestStatus -> Bool)
-> (V1TokenRequestStatus -> V1TokenRequestStatus -> Bool)
-> Eq V1TokenRequestStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1TokenRequestStatus -> V1TokenRequestStatus -> Bool
$c/= :: V1TokenRequestStatus -> V1TokenRequestStatus -> Bool
== :: V1TokenRequestStatus -> V1TokenRequestStatus -> Bool
$c== :: V1TokenRequestStatus -> V1TokenRequestStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1TokenRequestStatus
instance A.FromJSON V1TokenRequestStatus where
  parseJSON :: Value -> Parser V1TokenRequestStatus
parseJSON = String
-> (Object -> Parser V1TokenRequestStatus)
-> Value
-> Parser V1TokenRequestStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1TokenRequestStatus" ((Object -> Parser V1TokenRequestStatus)
 -> Value -> Parser V1TokenRequestStatus)
-> (Object -> Parser V1TokenRequestStatus)
-> Value
-> Parser V1TokenRequestStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    DateTime -> Text -> V1TokenRequestStatus
V1TokenRequestStatus
      (DateTime -> Text -> V1TokenRequestStatus)
-> Parser DateTime -> Parser (Text -> V1TokenRequestStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser DateTime
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"expirationTimestamp")
      Parser (Text -> V1TokenRequestStatus)
-> Parser Text -> Parser V1TokenRequestStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"token")

-- | ToJSON V1TokenRequestStatus
instance A.ToJSON V1TokenRequestStatus where
  toJSON :: V1TokenRequestStatus -> Value
toJSON V1TokenRequestStatus {Text
DateTime
v1TokenRequestStatusToken :: Text
v1TokenRequestStatusExpirationTimestamp :: DateTime
v1TokenRequestStatusToken :: V1TokenRequestStatus -> Text
v1TokenRequestStatusExpirationTimestamp :: V1TokenRequestStatus -> DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"expirationTimestamp" Text -> DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= DateTime
v1TokenRequestStatusExpirationTimestamp
      , Text
"token" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1TokenRequestStatusToken
      ]


-- | Construct a value of type 'V1TokenRequestStatus' (by applying it's required fields, if any)
mkV1TokenRequestStatus
  :: DateTime -- ^ 'v1TokenRequestStatusExpirationTimestamp': ExpirationTimestamp is the time of expiration of the returned token.
  -> Text -- ^ 'v1TokenRequestStatusToken': Token is the opaque bearer token.
  -> V1TokenRequestStatus
mkV1TokenRequestStatus :: DateTime -> Text -> V1TokenRequestStatus
mkV1TokenRequestStatus DateTime
v1TokenRequestStatusExpirationTimestamp Text
v1TokenRequestStatusToken =
  V1TokenRequestStatus :: DateTime -> Text -> V1TokenRequestStatus
V1TokenRequestStatus
  { DateTime
v1TokenRequestStatusExpirationTimestamp :: DateTime
v1TokenRequestStatusExpirationTimestamp :: DateTime
v1TokenRequestStatusExpirationTimestamp
  , Text
v1TokenRequestStatusToken :: Text
v1TokenRequestStatusToken :: Text
v1TokenRequestStatusToken
  }

-- ** V1TokenReview
-- | V1TokenReview
-- TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.
data V1TokenReview = V1TokenReview
  { V1TokenReview -> Maybe Text
v1TokenReviewApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1TokenReview -> Maybe Text
v1TokenReviewKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1TokenReview -> Maybe V1ObjectMeta
v1TokenReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1TokenReview -> V1TokenReviewSpec
v1TokenReviewSpec :: !(V1TokenReviewSpec) -- ^ /Required/ "spec"
  , V1TokenReview -> Maybe V1TokenReviewStatus
v1TokenReviewStatus :: !(Maybe V1TokenReviewStatus) -- ^ "status"
  } deriving (Int -> V1TokenReview -> ShowS
[V1TokenReview] -> ShowS
V1TokenReview -> String
(Int -> V1TokenReview -> ShowS)
-> (V1TokenReview -> String)
-> ([V1TokenReview] -> ShowS)
-> Show V1TokenReview
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1TokenReview] -> ShowS
$cshowList :: [V1TokenReview] -> ShowS
show :: V1TokenReview -> String
$cshow :: V1TokenReview -> String
showsPrec :: Int -> V1TokenReview -> ShowS
$cshowsPrec :: Int -> V1TokenReview -> ShowS
P.Show, V1TokenReview -> V1TokenReview -> Bool
(V1TokenReview -> V1TokenReview -> Bool)
-> (V1TokenReview -> V1TokenReview -> Bool) -> Eq V1TokenReview
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1TokenReview -> V1TokenReview -> Bool
$c/= :: V1TokenReview -> V1TokenReview -> Bool
== :: V1TokenReview -> V1TokenReview -> Bool
$c== :: V1TokenReview -> V1TokenReview -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1TokenReview
instance A.FromJSON V1TokenReview where
  parseJSON :: Value -> Parser V1TokenReview
parseJSON = String
-> (Object -> Parser V1TokenReview)
-> Value
-> Parser V1TokenReview
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1TokenReview" ((Object -> Parser V1TokenReview) -> Value -> Parser V1TokenReview)
-> (Object -> Parser V1TokenReview)
-> Value
-> Parser V1TokenReview
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1TokenReviewSpec
-> Maybe V1TokenReviewStatus
-> V1TokenReview
V1TokenReview
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1TokenReviewSpec
 -> Maybe V1TokenReviewStatus
 -> V1TokenReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1TokenReviewSpec
      -> Maybe V1TokenReviewStatus
      -> V1TokenReview)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1TokenReviewSpec
   -> Maybe V1TokenReviewStatus
   -> V1TokenReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1TokenReviewSpec -> Maybe V1TokenReviewStatus -> V1TokenReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1TokenReviewSpec -> Maybe V1TokenReviewStatus -> V1TokenReview)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1TokenReviewSpec -> Maybe V1TokenReviewStatus -> V1TokenReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1TokenReviewSpec -> Maybe V1TokenReviewStatus -> V1TokenReview)
-> Parser V1TokenReviewSpec
-> Parser (Maybe V1TokenReviewStatus -> V1TokenReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1TokenReviewSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")
      Parser (Maybe V1TokenReviewStatus -> V1TokenReview)
-> Parser (Maybe V1TokenReviewStatus) -> Parser V1TokenReview
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1TokenReviewStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1TokenReview
instance A.ToJSON V1TokenReview where
  toJSON :: V1TokenReview -> Value
toJSON V1TokenReview {Maybe Text
Maybe V1TokenReviewStatus
Maybe V1ObjectMeta
V1TokenReviewSpec
v1TokenReviewStatus :: Maybe V1TokenReviewStatus
v1TokenReviewSpec :: V1TokenReviewSpec
v1TokenReviewMetadata :: Maybe V1ObjectMeta
v1TokenReviewKind :: Maybe Text
v1TokenReviewApiVersion :: Maybe Text
v1TokenReviewStatus :: V1TokenReview -> Maybe V1TokenReviewStatus
v1TokenReviewSpec :: V1TokenReview -> V1TokenReviewSpec
v1TokenReviewMetadata :: V1TokenReview -> Maybe V1ObjectMeta
v1TokenReviewKind :: V1TokenReview -> Maybe Text
v1TokenReviewApiVersion :: V1TokenReview -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1TokenReviewApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1TokenReviewKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1TokenReviewMetadata
      , Text
"spec" Text -> V1TokenReviewSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1TokenReviewSpec
v1TokenReviewSpec
      , Text
"status" Text -> Maybe V1TokenReviewStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1TokenReviewStatus
v1TokenReviewStatus
      ]


-- | Construct a value of type 'V1TokenReview' (by applying it's required fields, if any)
mkV1TokenReview
  :: V1TokenReviewSpec -- ^ 'v1TokenReviewSpec' 
  -> V1TokenReview
mkV1TokenReview :: V1TokenReviewSpec -> V1TokenReview
mkV1TokenReview V1TokenReviewSpec
v1TokenReviewSpec =
  V1TokenReview :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1TokenReviewSpec
-> Maybe V1TokenReviewStatus
-> V1TokenReview
V1TokenReview
  { v1TokenReviewApiVersion :: Maybe Text
v1TokenReviewApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1TokenReviewKind :: Maybe Text
v1TokenReviewKind = Maybe Text
forall a. Maybe a
Nothing
  , v1TokenReviewMetadata :: Maybe V1ObjectMeta
v1TokenReviewMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1TokenReviewSpec
v1TokenReviewSpec :: V1TokenReviewSpec
v1TokenReviewSpec :: V1TokenReviewSpec
v1TokenReviewSpec
  , v1TokenReviewStatus :: Maybe V1TokenReviewStatus
v1TokenReviewStatus = Maybe V1TokenReviewStatus
forall a. Maybe a
Nothing
  }

-- ** V1TokenReviewSpec
-- | V1TokenReviewSpec
-- TokenReviewSpec is a description of the token authentication request.
data V1TokenReviewSpec = V1TokenReviewSpec
  { V1TokenReviewSpec -> Maybe [Text]
v1TokenReviewSpecAudiences :: !(Maybe [Text]) -- ^ "audiences" - Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.
  , V1TokenReviewSpec -> Maybe Text
v1TokenReviewSpecToken :: !(Maybe Text) -- ^ "token" - Token is the opaque bearer token.
  } deriving (Int -> V1TokenReviewSpec -> ShowS
[V1TokenReviewSpec] -> ShowS
V1TokenReviewSpec -> String
(Int -> V1TokenReviewSpec -> ShowS)
-> (V1TokenReviewSpec -> String)
-> ([V1TokenReviewSpec] -> ShowS)
-> Show V1TokenReviewSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1TokenReviewSpec] -> ShowS
$cshowList :: [V1TokenReviewSpec] -> ShowS
show :: V1TokenReviewSpec -> String
$cshow :: V1TokenReviewSpec -> String
showsPrec :: Int -> V1TokenReviewSpec -> ShowS
$cshowsPrec :: Int -> V1TokenReviewSpec -> ShowS
P.Show, V1TokenReviewSpec -> V1TokenReviewSpec -> Bool
(V1TokenReviewSpec -> V1TokenReviewSpec -> Bool)
-> (V1TokenReviewSpec -> V1TokenReviewSpec -> Bool)
-> Eq V1TokenReviewSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1TokenReviewSpec -> V1TokenReviewSpec -> Bool
$c/= :: V1TokenReviewSpec -> V1TokenReviewSpec -> Bool
== :: V1TokenReviewSpec -> V1TokenReviewSpec -> Bool
$c== :: V1TokenReviewSpec -> V1TokenReviewSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1TokenReviewSpec
instance A.FromJSON V1TokenReviewSpec where
  parseJSON :: Value -> Parser V1TokenReviewSpec
parseJSON = String
-> (Object -> Parser V1TokenReviewSpec)
-> Value
-> Parser V1TokenReviewSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1TokenReviewSpec" ((Object -> Parser V1TokenReviewSpec)
 -> Value -> Parser V1TokenReviewSpec)
-> (Object -> Parser V1TokenReviewSpec)
-> Value
-> Parser V1TokenReviewSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text] -> Maybe Text -> V1TokenReviewSpec
V1TokenReviewSpec
      (Maybe [Text] -> Maybe Text -> V1TokenReviewSpec)
-> Parser (Maybe [Text])
-> Parser (Maybe Text -> V1TokenReviewSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"audiences")
      Parser (Maybe Text -> V1TokenReviewSpec)
-> Parser (Maybe Text) -> Parser V1TokenReviewSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"token")

-- | ToJSON V1TokenReviewSpec
instance A.ToJSON V1TokenReviewSpec where
  toJSON :: V1TokenReviewSpec -> Value
toJSON V1TokenReviewSpec {Maybe [Text]
Maybe Text
v1TokenReviewSpecToken :: Maybe Text
v1TokenReviewSpecAudiences :: Maybe [Text]
v1TokenReviewSpecToken :: V1TokenReviewSpec -> Maybe Text
v1TokenReviewSpecAudiences :: V1TokenReviewSpec -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"audiences" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1TokenReviewSpecAudiences
      , Text
"token" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1TokenReviewSpecToken
      ]


-- | Construct a value of type 'V1TokenReviewSpec' (by applying it's required fields, if any)
mkV1TokenReviewSpec
  :: V1TokenReviewSpec
mkV1TokenReviewSpec :: V1TokenReviewSpec
mkV1TokenReviewSpec =
  V1TokenReviewSpec :: Maybe [Text] -> Maybe Text -> V1TokenReviewSpec
V1TokenReviewSpec
  { v1TokenReviewSpecAudiences :: Maybe [Text]
v1TokenReviewSpecAudiences = Maybe [Text]
forall a. Maybe a
Nothing
  , v1TokenReviewSpecToken :: Maybe Text
v1TokenReviewSpecToken = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1TokenReviewStatus
-- | V1TokenReviewStatus
-- TokenReviewStatus is the result of the token authentication request.
data V1TokenReviewStatus = V1TokenReviewStatus
  { V1TokenReviewStatus -> Maybe [Text]
v1TokenReviewStatusAudiences :: !(Maybe [Text]) -- ^ "audiences" - Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token&#39;s audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \&quot;true\&quot;, the token is valid against the audience of the Kubernetes API server.
  , V1TokenReviewStatus -> Maybe Bool
v1TokenReviewStatusAuthenticated :: !(Maybe Bool) -- ^ "authenticated" - Authenticated indicates that the token was associated with a known user.
  , V1TokenReviewStatus -> Maybe Text
v1TokenReviewStatusError :: !(Maybe Text) -- ^ "error" - Error indicates that the token couldn&#39;t be checked
  , V1TokenReviewStatus -> Maybe V1UserInfo
v1TokenReviewStatusUser :: !(Maybe V1UserInfo) -- ^ "user"
  } deriving (Int -> V1TokenReviewStatus -> ShowS
[V1TokenReviewStatus] -> ShowS
V1TokenReviewStatus -> String
(Int -> V1TokenReviewStatus -> ShowS)
-> (V1TokenReviewStatus -> String)
-> ([V1TokenReviewStatus] -> ShowS)
-> Show V1TokenReviewStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1TokenReviewStatus] -> ShowS
$cshowList :: [V1TokenReviewStatus] -> ShowS
show :: V1TokenReviewStatus -> String
$cshow :: V1TokenReviewStatus -> String
showsPrec :: Int -> V1TokenReviewStatus -> ShowS
$cshowsPrec :: Int -> V1TokenReviewStatus -> ShowS
P.Show, V1TokenReviewStatus -> V1TokenReviewStatus -> Bool
(V1TokenReviewStatus -> V1TokenReviewStatus -> Bool)
-> (V1TokenReviewStatus -> V1TokenReviewStatus -> Bool)
-> Eq V1TokenReviewStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1TokenReviewStatus -> V1TokenReviewStatus -> Bool
$c/= :: V1TokenReviewStatus -> V1TokenReviewStatus -> Bool
== :: V1TokenReviewStatus -> V1TokenReviewStatus -> Bool
$c== :: V1TokenReviewStatus -> V1TokenReviewStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1TokenReviewStatus
instance A.FromJSON V1TokenReviewStatus where
  parseJSON :: Value -> Parser V1TokenReviewStatus
parseJSON = String
-> (Object -> Parser V1TokenReviewStatus)
-> Value
-> Parser V1TokenReviewStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1TokenReviewStatus" ((Object -> Parser V1TokenReviewStatus)
 -> Value -> Parser V1TokenReviewStatus)
-> (Object -> Parser V1TokenReviewStatus)
-> Value
-> Parser V1TokenReviewStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Maybe Bool
-> Maybe Text
-> Maybe V1UserInfo
-> V1TokenReviewStatus
V1TokenReviewStatus
      (Maybe [Text]
 -> Maybe Bool
 -> Maybe Text
 -> Maybe V1UserInfo
 -> V1TokenReviewStatus)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Bool
      -> Maybe Text -> Maybe V1UserInfo -> V1TokenReviewStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"audiences")
      Parser
  (Maybe Bool
   -> Maybe Text -> Maybe V1UserInfo -> V1TokenReviewStatus)
-> Parser (Maybe Bool)
-> Parser (Maybe Text -> Maybe V1UserInfo -> V1TokenReviewStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"authenticated")
      Parser (Maybe Text -> Maybe V1UserInfo -> V1TokenReviewStatus)
-> Parser (Maybe Text)
-> Parser (Maybe V1UserInfo -> V1TokenReviewStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"error")
      Parser (Maybe V1UserInfo -> V1TokenReviewStatus)
-> Parser (Maybe V1UserInfo) -> Parser V1TokenReviewStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1UserInfo)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"user")

-- | ToJSON V1TokenReviewStatus
instance A.ToJSON V1TokenReviewStatus where
  toJSON :: V1TokenReviewStatus -> Value
toJSON V1TokenReviewStatus {Maybe Bool
Maybe [Text]
Maybe Text
Maybe V1UserInfo
v1TokenReviewStatusUser :: Maybe V1UserInfo
v1TokenReviewStatusError :: Maybe Text
v1TokenReviewStatusAuthenticated :: Maybe Bool
v1TokenReviewStatusAudiences :: Maybe [Text]
v1TokenReviewStatusUser :: V1TokenReviewStatus -> Maybe V1UserInfo
v1TokenReviewStatusError :: V1TokenReviewStatus -> Maybe Text
v1TokenReviewStatusAuthenticated :: V1TokenReviewStatus -> Maybe Bool
v1TokenReviewStatusAudiences :: V1TokenReviewStatus -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"audiences" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1TokenReviewStatusAudiences
      , Text
"authenticated" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1TokenReviewStatusAuthenticated
      , Text
"error" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1TokenReviewStatusError
      , Text
"user" Text -> Maybe V1UserInfo -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1UserInfo
v1TokenReviewStatusUser
      ]


-- | Construct a value of type 'V1TokenReviewStatus' (by applying it's required fields, if any)
mkV1TokenReviewStatus
  :: V1TokenReviewStatus
mkV1TokenReviewStatus :: V1TokenReviewStatus
mkV1TokenReviewStatus =
  V1TokenReviewStatus :: Maybe [Text]
-> Maybe Bool
-> Maybe Text
-> Maybe V1UserInfo
-> V1TokenReviewStatus
V1TokenReviewStatus
  { v1TokenReviewStatusAudiences :: Maybe [Text]
v1TokenReviewStatusAudiences = Maybe [Text]
forall a. Maybe a
Nothing
  , v1TokenReviewStatusAuthenticated :: Maybe Bool
v1TokenReviewStatusAuthenticated = Maybe Bool
forall a. Maybe a
Nothing
  , v1TokenReviewStatusError :: Maybe Text
v1TokenReviewStatusError = Maybe Text
forall a. Maybe a
Nothing
  , v1TokenReviewStatusUser :: Maybe V1UserInfo
v1TokenReviewStatusUser = Maybe V1UserInfo
forall a. Maybe a
Nothing
  }

-- ** V1Toleration
-- | V1Toleration
-- The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
data V1Toleration = V1Toleration
  { V1Toleration -> Maybe Text
v1TolerationEffect :: !(Maybe Text) -- ^ "effect" - Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  , V1Toleration -> Maybe Text
v1TolerationKey :: !(Maybe Text) -- ^ "key" - Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  , V1Toleration -> Maybe Text
v1TolerationOperator :: !(Maybe Text) -- ^ "operator" - Operator represents a key&#39;s relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  , V1Toleration -> Maybe Integer
v1TolerationTolerationSeconds :: !(Maybe Integer) -- ^ "tolerationSeconds" - TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  , V1Toleration -> Maybe Text
v1TolerationValue :: !(Maybe Text) -- ^ "value" - Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  } deriving (Int -> V1Toleration -> ShowS
[V1Toleration] -> ShowS
V1Toleration -> String
(Int -> V1Toleration -> ShowS)
-> (V1Toleration -> String)
-> ([V1Toleration] -> ShowS)
-> Show V1Toleration
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Toleration] -> ShowS
$cshowList :: [V1Toleration] -> ShowS
show :: V1Toleration -> String
$cshow :: V1Toleration -> String
showsPrec :: Int -> V1Toleration -> ShowS
$cshowsPrec :: Int -> V1Toleration -> ShowS
P.Show, V1Toleration -> V1Toleration -> Bool
(V1Toleration -> V1Toleration -> Bool)
-> (V1Toleration -> V1Toleration -> Bool) -> Eq V1Toleration
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Toleration -> V1Toleration -> Bool
$c/= :: V1Toleration -> V1Toleration -> Bool
== :: V1Toleration -> V1Toleration -> Bool
$c== :: V1Toleration -> V1Toleration -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Toleration
instance A.FromJSON V1Toleration where
  parseJSON :: Value -> Parser V1Toleration
parseJSON = String
-> (Object -> Parser V1Toleration) -> Value -> Parser V1Toleration
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Toleration" ((Object -> Parser V1Toleration) -> Value -> Parser V1Toleration)
-> (Object -> Parser V1Toleration) -> Value -> Parser V1Toleration
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Integer
-> Maybe Text
-> V1Toleration
V1Toleration
      (Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Integer
 -> Maybe Text
 -> V1Toleration)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Integer -> Maybe Text -> V1Toleration)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"effect")
      Parser
  (Maybe Text
   -> Maybe Text -> Maybe Integer -> Maybe Text -> V1Toleration)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Integer -> Maybe Text -> V1Toleration)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"key")
      Parser (Maybe Text -> Maybe Integer -> Maybe Text -> V1Toleration)
-> Parser (Maybe Text)
-> Parser (Maybe Integer -> Maybe Text -> V1Toleration)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"operator")
      Parser (Maybe Integer -> Maybe Text -> V1Toleration)
-> Parser (Maybe Integer) -> Parser (Maybe Text -> V1Toleration)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"tolerationSeconds")
      Parser (Maybe Text -> V1Toleration)
-> Parser (Maybe Text) -> Parser V1Toleration
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"value")

-- | ToJSON V1Toleration
instance A.ToJSON V1Toleration where
  toJSON :: V1Toleration -> Value
toJSON V1Toleration {Maybe Integer
Maybe Text
v1TolerationValue :: Maybe Text
v1TolerationTolerationSeconds :: Maybe Integer
v1TolerationOperator :: Maybe Text
v1TolerationKey :: Maybe Text
v1TolerationEffect :: Maybe Text
v1TolerationValue :: V1Toleration -> Maybe Text
v1TolerationTolerationSeconds :: V1Toleration -> Maybe Integer
v1TolerationOperator :: V1Toleration -> Maybe Text
v1TolerationKey :: V1Toleration -> Maybe Text
v1TolerationEffect :: V1Toleration -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"effect" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1TolerationEffect
      , Text
"key" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1TolerationKey
      , Text
"operator" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1TolerationOperator
      , Text
"tolerationSeconds" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1TolerationTolerationSeconds
      , Text
"value" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1TolerationValue
      ]


-- | Construct a value of type 'V1Toleration' (by applying it's required fields, if any)
mkV1Toleration
  :: V1Toleration
mkV1Toleration :: V1Toleration
mkV1Toleration =
  V1Toleration :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Integer
-> Maybe Text
-> V1Toleration
V1Toleration
  { v1TolerationEffect :: Maybe Text
v1TolerationEffect = Maybe Text
forall a. Maybe a
Nothing
  , v1TolerationKey :: Maybe Text
v1TolerationKey = Maybe Text
forall a. Maybe a
Nothing
  , v1TolerationOperator :: Maybe Text
v1TolerationOperator = Maybe Text
forall a. Maybe a
Nothing
  , v1TolerationTolerationSeconds :: Maybe Integer
v1TolerationTolerationSeconds = Maybe Integer
forall a. Maybe a
Nothing
  , v1TolerationValue :: Maybe Text
v1TolerationValue = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1TopologySelectorLabelRequirement
-- | V1TopologySelectorLabelRequirement
-- A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.
data V1TopologySelectorLabelRequirement = V1TopologySelectorLabelRequirement
  { V1TopologySelectorLabelRequirement -> Text
v1TopologySelectorLabelRequirementKey :: !(Text) -- ^ /Required/ "key" - The label key that the selector applies to.
  , V1TopologySelectorLabelRequirement -> [Text]
v1TopologySelectorLabelRequirementValues :: !([Text]) -- ^ /Required/ "values" - An array of string values. One value must match the label to be selected. Each entry in Values is ORed.
  } deriving (Int -> V1TopologySelectorLabelRequirement -> ShowS
[V1TopologySelectorLabelRequirement] -> ShowS
V1TopologySelectorLabelRequirement -> String
(Int -> V1TopologySelectorLabelRequirement -> ShowS)
-> (V1TopologySelectorLabelRequirement -> String)
-> ([V1TopologySelectorLabelRequirement] -> ShowS)
-> Show V1TopologySelectorLabelRequirement
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1TopologySelectorLabelRequirement] -> ShowS
$cshowList :: [V1TopologySelectorLabelRequirement] -> ShowS
show :: V1TopologySelectorLabelRequirement -> String
$cshow :: V1TopologySelectorLabelRequirement -> String
showsPrec :: Int -> V1TopologySelectorLabelRequirement -> ShowS
$cshowsPrec :: Int -> V1TopologySelectorLabelRequirement -> ShowS
P.Show, V1TopologySelectorLabelRequirement
-> V1TopologySelectorLabelRequirement -> Bool
(V1TopologySelectorLabelRequirement
 -> V1TopologySelectorLabelRequirement -> Bool)
-> (V1TopologySelectorLabelRequirement
    -> V1TopologySelectorLabelRequirement -> Bool)
-> Eq V1TopologySelectorLabelRequirement
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1TopologySelectorLabelRequirement
-> V1TopologySelectorLabelRequirement -> Bool
$c/= :: V1TopologySelectorLabelRequirement
-> V1TopologySelectorLabelRequirement -> Bool
== :: V1TopologySelectorLabelRequirement
-> V1TopologySelectorLabelRequirement -> Bool
$c== :: V1TopologySelectorLabelRequirement
-> V1TopologySelectorLabelRequirement -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1TopologySelectorLabelRequirement
instance A.FromJSON V1TopologySelectorLabelRequirement where
  parseJSON :: Value -> Parser V1TopologySelectorLabelRequirement
parseJSON = String
-> (Object -> Parser V1TopologySelectorLabelRequirement)
-> Value
-> Parser V1TopologySelectorLabelRequirement
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1TopologySelectorLabelRequirement" ((Object -> Parser V1TopologySelectorLabelRequirement)
 -> Value -> Parser V1TopologySelectorLabelRequirement)
-> (Object -> Parser V1TopologySelectorLabelRequirement)
-> Value
-> Parser V1TopologySelectorLabelRequirement
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> [Text] -> V1TopologySelectorLabelRequirement
V1TopologySelectorLabelRequirement
      (Text -> [Text] -> V1TopologySelectorLabelRequirement)
-> Parser Text
-> Parser ([Text] -> V1TopologySelectorLabelRequirement)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"key")
      Parser ([Text] -> V1TopologySelectorLabelRequirement)
-> Parser [Text] -> Parser V1TopologySelectorLabelRequirement
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"values")

-- | ToJSON V1TopologySelectorLabelRequirement
instance A.ToJSON V1TopologySelectorLabelRequirement where
  toJSON :: V1TopologySelectorLabelRequirement -> Value
toJSON V1TopologySelectorLabelRequirement {[Text]
Text
v1TopologySelectorLabelRequirementValues :: [Text]
v1TopologySelectorLabelRequirementKey :: Text
v1TopologySelectorLabelRequirementValues :: V1TopologySelectorLabelRequirement -> [Text]
v1TopologySelectorLabelRequirementKey :: V1TopologySelectorLabelRequirement -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"key" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1TopologySelectorLabelRequirementKey
      , Text
"values" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1TopologySelectorLabelRequirementValues
      ]


-- | Construct a value of type 'V1TopologySelectorLabelRequirement' (by applying it's required fields, if any)
mkV1TopologySelectorLabelRequirement
  :: Text -- ^ 'v1TopologySelectorLabelRequirementKey': The label key that the selector applies to.
  -> [Text] -- ^ 'v1TopologySelectorLabelRequirementValues': An array of string values. One value must match the label to be selected. Each entry in Values is ORed.
  -> V1TopologySelectorLabelRequirement
mkV1TopologySelectorLabelRequirement :: Text -> [Text] -> V1TopologySelectorLabelRequirement
mkV1TopologySelectorLabelRequirement Text
v1TopologySelectorLabelRequirementKey [Text]
v1TopologySelectorLabelRequirementValues =
  V1TopologySelectorLabelRequirement :: Text -> [Text] -> V1TopologySelectorLabelRequirement
V1TopologySelectorLabelRequirement
  { Text
v1TopologySelectorLabelRequirementKey :: Text
v1TopologySelectorLabelRequirementKey :: Text
v1TopologySelectorLabelRequirementKey
  , [Text]
v1TopologySelectorLabelRequirementValues :: [Text]
v1TopologySelectorLabelRequirementValues :: [Text]
v1TopologySelectorLabelRequirementValues
  }

-- ** V1TopologySelectorTerm
-- | V1TopologySelectorTerm
-- A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.
data V1TopologySelectorTerm = V1TopologySelectorTerm
  { V1TopologySelectorTerm
-> Maybe [V1TopologySelectorLabelRequirement]
v1TopologySelectorTermMatchLabelExpressions :: !(Maybe [V1TopologySelectorLabelRequirement]) -- ^ "matchLabelExpressions" - A list of topology selector requirements by labels.
  } deriving (Int -> V1TopologySelectorTerm -> ShowS
[V1TopologySelectorTerm] -> ShowS
V1TopologySelectorTerm -> String
(Int -> V1TopologySelectorTerm -> ShowS)
-> (V1TopologySelectorTerm -> String)
-> ([V1TopologySelectorTerm] -> ShowS)
-> Show V1TopologySelectorTerm
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1TopologySelectorTerm] -> ShowS
$cshowList :: [V1TopologySelectorTerm] -> ShowS
show :: V1TopologySelectorTerm -> String
$cshow :: V1TopologySelectorTerm -> String
showsPrec :: Int -> V1TopologySelectorTerm -> ShowS
$cshowsPrec :: Int -> V1TopologySelectorTerm -> ShowS
P.Show, V1TopologySelectorTerm -> V1TopologySelectorTerm -> Bool
(V1TopologySelectorTerm -> V1TopologySelectorTerm -> Bool)
-> (V1TopologySelectorTerm -> V1TopologySelectorTerm -> Bool)
-> Eq V1TopologySelectorTerm
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1TopologySelectorTerm -> V1TopologySelectorTerm -> Bool
$c/= :: V1TopologySelectorTerm -> V1TopologySelectorTerm -> Bool
== :: V1TopologySelectorTerm -> V1TopologySelectorTerm -> Bool
$c== :: V1TopologySelectorTerm -> V1TopologySelectorTerm -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1TopologySelectorTerm
instance A.FromJSON V1TopologySelectorTerm where
  parseJSON :: Value -> Parser V1TopologySelectorTerm
parseJSON = String
-> (Object -> Parser V1TopologySelectorTerm)
-> Value
-> Parser V1TopologySelectorTerm
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1TopologySelectorTerm" ((Object -> Parser V1TopologySelectorTerm)
 -> Value -> Parser V1TopologySelectorTerm)
-> (Object -> Parser V1TopologySelectorTerm)
-> Value
-> Parser V1TopologySelectorTerm
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1TopologySelectorLabelRequirement]
-> V1TopologySelectorTerm
V1TopologySelectorTerm
      (Maybe [V1TopologySelectorLabelRequirement]
 -> V1TopologySelectorTerm)
-> Parser (Maybe [V1TopologySelectorLabelRequirement])
-> Parser V1TopologySelectorTerm
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object
-> Text -> Parser (Maybe [V1TopologySelectorLabelRequirement])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"matchLabelExpressions")

-- | ToJSON V1TopologySelectorTerm
instance A.ToJSON V1TopologySelectorTerm where
  toJSON :: V1TopologySelectorTerm -> Value
toJSON V1TopologySelectorTerm {Maybe [V1TopologySelectorLabelRequirement]
v1TopologySelectorTermMatchLabelExpressions :: Maybe [V1TopologySelectorLabelRequirement]
v1TopologySelectorTermMatchLabelExpressions :: V1TopologySelectorTerm
-> Maybe [V1TopologySelectorLabelRequirement]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"matchLabelExpressions" Text -> Maybe [V1TopologySelectorLabelRequirement] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1TopologySelectorLabelRequirement]
v1TopologySelectorTermMatchLabelExpressions
      ]


-- | Construct a value of type 'V1TopologySelectorTerm' (by applying it's required fields, if any)
mkV1TopologySelectorTerm
  :: V1TopologySelectorTerm
mkV1TopologySelectorTerm :: V1TopologySelectorTerm
mkV1TopologySelectorTerm =
  V1TopologySelectorTerm :: Maybe [V1TopologySelectorLabelRequirement]
-> V1TopologySelectorTerm
V1TopologySelectorTerm
  { v1TopologySelectorTermMatchLabelExpressions :: Maybe [V1TopologySelectorLabelRequirement]
v1TopologySelectorTermMatchLabelExpressions = Maybe [V1TopologySelectorLabelRequirement]
forall a. Maybe a
Nothing
  }

-- ** V1TopologySpreadConstraint
-- | V1TopologySpreadConstraint
-- TopologySpreadConstraint specifies how to spread matching pods among the given topology.
data V1TopologySpreadConstraint = V1TopologySpreadConstraint
  { V1TopologySpreadConstraint -> Maybe V1LabelSelector
v1TopologySpreadConstraintLabelSelector :: !(Maybe V1LabelSelector) -- ^ "labelSelector"
  , V1TopologySpreadConstraint -> Int
v1TopologySpreadConstraintMaxSkew :: !(Int) -- ^ /Required/ "maxSkew" - MaxSkew describes the degree to which pods may be unevenly distributed. It&#39;s the maximum permitted difference between the number of matching pods in any two topology domains of a given topology type. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 1/1/0: | zone1 | zone2 | zone3 | |   P   |   P   |       | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1; scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. It&#39;s a required field. Default value is 1 and 0 is not allowed.
  , V1TopologySpreadConstraint -> Text
v1TopologySpreadConstraintTopologyKey :: !(Text) -- ^ /Required/ "topologyKey" - TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each &lt;key, value&gt; as a \&quot;bucket\&quot;, and try to put balanced number of pods into each bucket. It&#39;s a required field.
  , V1TopologySpreadConstraint -> Text
v1TopologySpreadConstraintWhenUnsatisfiable :: !(Text) -- ^ /Required/ "whenUnsatisfiable" - WhenUnsatisfiable indicates how to deal with a pod if it doesn&#39;t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it - ScheduleAnyway tells the scheduler to still schedule it It&#39;s considered as \&quot;Unsatisfiable\&quot; if and only if placing incoming pod on any topology violates \&quot;MaxSkew\&quot;. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P |   P   |   P   | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won&#39;t make it *more* imbalanced. It&#39;s a required field.
  } deriving (Int -> V1TopologySpreadConstraint -> ShowS
[V1TopologySpreadConstraint] -> ShowS
V1TopologySpreadConstraint -> String
(Int -> V1TopologySpreadConstraint -> ShowS)
-> (V1TopologySpreadConstraint -> String)
-> ([V1TopologySpreadConstraint] -> ShowS)
-> Show V1TopologySpreadConstraint
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1TopologySpreadConstraint] -> ShowS
$cshowList :: [V1TopologySpreadConstraint] -> ShowS
show :: V1TopologySpreadConstraint -> String
$cshow :: V1TopologySpreadConstraint -> String
showsPrec :: Int -> V1TopologySpreadConstraint -> ShowS
$cshowsPrec :: Int -> V1TopologySpreadConstraint -> ShowS
P.Show, V1TopologySpreadConstraint -> V1TopologySpreadConstraint -> Bool
(V1TopologySpreadConstraint -> V1TopologySpreadConstraint -> Bool)
-> (V1TopologySpreadConstraint
    -> V1TopologySpreadConstraint -> Bool)
-> Eq V1TopologySpreadConstraint
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1TopologySpreadConstraint -> V1TopologySpreadConstraint -> Bool
$c/= :: V1TopologySpreadConstraint -> V1TopologySpreadConstraint -> Bool
== :: V1TopologySpreadConstraint -> V1TopologySpreadConstraint -> Bool
$c== :: V1TopologySpreadConstraint -> V1TopologySpreadConstraint -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1TopologySpreadConstraint
instance A.FromJSON V1TopologySpreadConstraint where
  parseJSON :: Value -> Parser V1TopologySpreadConstraint
parseJSON = String
-> (Object -> Parser V1TopologySpreadConstraint)
-> Value
-> Parser V1TopologySpreadConstraint
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1TopologySpreadConstraint" ((Object -> Parser V1TopologySpreadConstraint)
 -> Value -> Parser V1TopologySpreadConstraint)
-> (Object -> Parser V1TopologySpreadConstraint)
-> Value
-> Parser V1TopologySpreadConstraint
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1LabelSelector
-> Int -> Text -> Text -> V1TopologySpreadConstraint
V1TopologySpreadConstraint
      (Maybe V1LabelSelector
 -> Int -> Text -> Text -> V1TopologySpreadConstraint)
-> Parser (Maybe V1LabelSelector)
-> Parser (Int -> Text -> Text -> V1TopologySpreadConstraint)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"labelSelector")
      Parser (Int -> Text -> Text -> V1TopologySpreadConstraint)
-> Parser Int
-> Parser (Text -> Text -> V1TopologySpreadConstraint)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"maxSkew")
      Parser (Text -> Text -> V1TopologySpreadConstraint)
-> Parser Text -> Parser (Text -> V1TopologySpreadConstraint)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"topologyKey")
      Parser (Text -> V1TopologySpreadConstraint)
-> Parser Text -> Parser V1TopologySpreadConstraint
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"whenUnsatisfiable")

-- | ToJSON V1TopologySpreadConstraint
instance A.ToJSON V1TopologySpreadConstraint where
  toJSON :: V1TopologySpreadConstraint -> Value
toJSON V1TopologySpreadConstraint {Int
Maybe V1LabelSelector
Text
v1TopologySpreadConstraintWhenUnsatisfiable :: Text
v1TopologySpreadConstraintTopologyKey :: Text
v1TopologySpreadConstraintMaxSkew :: Int
v1TopologySpreadConstraintLabelSelector :: Maybe V1LabelSelector
v1TopologySpreadConstraintWhenUnsatisfiable :: V1TopologySpreadConstraint -> Text
v1TopologySpreadConstraintTopologyKey :: V1TopologySpreadConstraint -> Text
v1TopologySpreadConstraintMaxSkew :: V1TopologySpreadConstraint -> Int
v1TopologySpreadConstraintLabelSelector :: V1TopologySpreadConstraint -> Maybe V1LabelSelector
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"labelSelector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1TopologySpreadConstraintLabelSelector
      , Text
"maxSkew" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1TopologySpreadConstraintMaxSkew
      , Text
"topologyKey" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1TopologySpreadConstraintTopologyKey
      , Text
"whenUnsatisfiable" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1TopologySpreadConstraintWhenUnsatisfiable
      ]


-- | Construct a value of type 'V1TopologySpreadConstraint' (by applying it's required fields, if any)
mkV1TopologySpreadConstraint
  :: Int -- ^ 'v1TopologySpreadConstraintMaxSkew': MaxSkew describes the degree to which pods may be unevenly distributed. It's the maximum permitted difference between the number of matching pods in any two topology domains of a given topology type. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 1/1/0: | zone1 | zone2 | zone3 | |   P   |   P   |       | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1; scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. It's a required field. Default value is 1 and 0 is not allowed.
  -> Text -- ^ 'v1TopologySpreadConstraintTopologyKey': TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a \"bucket\", and try to put balanced number of pods into each bucket. It's a required field.
  -> Text -- ^ 'v1TopologySpreadConstraintWhenUnsatisfiable': WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it - ScheduleAnyway tells the scheduler to still schedule it It's considered as \"Unsatisfiable\" if and only if placing incoming pod on any topology violates \"MaxSkew\". For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P |   P   |   P   | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.
  -> V1TopologySpreadConstraint
mkV1TopologySpreadConstraint :: Int -> Text -> Text -> V1TopologySpreadConstraint
mkV1TopologySpreadConstraint Int
v1TopologySpreadConstraintMaxSkew Text
v1TopologySpreadConstraintTopologyKey Text
v1TopologySpreadConstraintWhenUnsatisfiable =
  V1TopologySpreadConstraint :: Maybe V1LabelSelector
-> Int -> Text -> Text -> V1TopologySpreadConstraint
V1TopologySpreadConstraint
  { v1TopologySpreadConstraintLabelSelector :: Maybe V1LabelSelector
v1TopologySpreadConstraintLabelSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , Int
v1TopologySpreadConstraintMaxSkew :: Int
v1TopologySpreadConstraintMaxSkew :: Int
v1TopologySpreadConstraintMaxSkew
  , Text
v1TopologySpreadConstraintTopologyKey :: Text
v1TopologySpreadConstraintTopologyKey :: Text
v1TopologySpreadConstraintTopologyKey
  , Text
v1TopologySpreadConstraintWhenUnsatisfiable :: Text
v1TopologySpreadConstraintWhenUnsatisfiable :: Text
v1TopologySpreadConstraintWhenUnsatisfiable
  }

-- ** V1TypedLocalObjectReference
-- | V1TypedLocalObjectReference
-- TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.
data V1TypedLocalObjectReference = V1TypedLocalObjectReference
  { V1TypedLocalObjectReference -> Maybe Text
v1TypedLocalObjectReferenceApiGroup :: !(Maybe Text) -- ^ "apiGroup" - APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
  , V1TypedLocalObjectReference -> Text
v1TypedLocalObjectReferenceKind :: !(Text) -- ^ /Required/ "kind" - Kind is the type of resource being referenced
  , V1TypedLocalObjectReference -> Text
v1TypedLocalObjectReferenceName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced
  } deriving (Int -> V1TypedLocalObjectReference -> ShowS
[V1TypedLocalObjectReference] -> ShowS
V1TypedLocalObjectReference -> String
(Int -> V1TypedLocalObjectReference -> ShowS)
-> (V1TypedLocalObjectReference -> String)
-> ([V1TypedLocalObjectReference] -> ShowS)
-> Show V1TypedLocalObjectReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1TypedLocalObjectReference] -> ShowS
$cshowList :: [V1TypedLocalObjectReference] -> ShowS
show :: V1TypedLocalObjectReference -> String
$cshow :: V1TypedLocalObjectReference -> String
showsPrec :: Int -> V1TypedLocalObjectReference -> ShowS
$cshowsPrec :: Int -> V1TypedLocalObjectReference -> ShowS
P.Show, V1TypedLocalObjectReference -> V1TypedLocalObjectReference -> Bool
(V1TypedLocalObjectReference
 -> V1TypedLocalObjectReference -> Bool)
-> (V1TypedLocalObjectReference
    -> V1TypedLocalObjectReference -> Bool)
-> Eq V1TypedLocalObjectReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1TypedLocalObjectReference -> V1TypedLocalObjectReference -> Bool
$c/= :: V1TypedLocalObjectReference -> V1TypedLocalObjectReference -> Bool
== :: V1TypedLocalObjectReference -> V1TypedLocalObjectReference -> Bool
$c== :: V1TypedLocalObjectReference -> V1TypedLocalObjectReference -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1TypedLocalObjectReference
instance A.FromJSON V1TypedLocalObjectReference where
  parseJSON :: Value -> Parser V1TypedLocalObjectReference
parseJSON = String
-> (Object -> Parser V1TypedLocalObjectReference)
-> Value
-> Parser V1TypedLocalObjectReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1TypedLocalObjectReference" ((Object -> Parser V1TypedLocalObjectReference)
 -> Value -> Parser V1TypedLocalObjectReference)
-> (Object -> Parser V1TypedLocalObjectReference)
-> Value
-> Parser V1TypedLocalObjectReference
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Text -> Text -> V1TypedLocalObjectReference
V1TypedLocalObjectReference
      (Maybe Text -> Text -> Text -> V1TypedLocalObjectReference)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1TypedLocalObjectReference)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiGroup")
      Parser (Text -> Text -> V1TypedLocalObjectReference)
-> Parser Text -> Parser (Text -> V1TypedLocalObjectReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kind")
      Parser (Text -> V1TypedLocalObjectReference)
-> Parser Text -> Parser V1TypedLocalObjectReference
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")

-- | ToJSON V1TypedLocalObjectReference
instance A.ToJSON V1TypedLocalObjectReference where
  toJSON :: V1TypedLocalObjectReference -> Value
toJSON V1TypedLocalObjectReference {Maybe Text
Text
v1TypedLocalObjectReferenceName :: Text
v1TypedLocalObjectReferenceKind :: Text
v1TypedLocalObjectReferenceApiGroup :: Maybe Text
v1TypedLocalObjectReferenceName :: V1TypedLocalObjectReference -> Text
v1TypedLocalObjectReferenceKind :: V1TypedLocalObjectReference -> Text
v1TypedLocalObjectReferenceApiGroup :: V1TypedLocalObjectReference -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiGroup" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1TypedLocalObjectReferenceApiGroup
      , Text
"kind" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1TypedLocalObjectReferenceKind
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1TypedLocalObjectReferenceName
      ]


-- | Construct a value of type 'V1TypedLocalObjectReference' (by applying it's required fields, if any)
mkV1TypedLocalObjectReference
  :: Text -- ^ 'v1TypedLocalObjectReferenceKind': Kind is the type of resource being referenced
  -> Text -- ^ 'v1TypedLocalObjectReferenceName': Name is the name of resource being referenced
  -> V1TypedLocalObjectReference
mkV1TypedLocalObjectReference :: Text -> Text -> V1TypedLocalObjectReference
mkV1TypedLocalObjectReference Text
v1TypedLocalObjectReferenceKind Text
v1TypedLocalObjectReferenceName =
  V1TypedLocalObjectReference :: Maybe Text -> Text -> Text -> V1TypedLocalObjectReference
V1TypedLocalObjectReference
  { v1TypedLocalObjectReferenceApiGroup :: Maybe Text
v1TypedLocalObjectReferenceApiGroup = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1TypedLocalObjectReferenceKind :: Text
v1TypedLocalObjectReferenceKind :: Text
v1TypedLocalObjectReferenceKind
  , Text
v1TypedLocalObjectReferenceName :: Text
v1TypedLocalObjectReferenceName :: Text
v1TypedLocalObjectReferenceName
  }

-- ** V1UserInfo
-- | V1UserInfo
-- UserInfo holds the information about the user needed to implement the user.Info interface.
data V1UserInfo = V1UserInfo
  { V1UserInfo -> Maybe (Map String [Text])
v1UserInfoExtra :: !(Maybe (Map.Map String [Text])) -- ^ "extra" - Any additional information provided by the authenticator.
  , V1UserInfo -> Maybe [Text]
v1UserInfoGroups :: !(Maybe [Text]) -- ^ "groups" - The names of groups this user is a part of.
  , V1UserInfo -> Maybe Text
v1UserInfoUid :: !(Maybe Text) -- ^ "uid" - A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.
  , V1UserInfo -> Maybe Text
v1UserInfoUsername :: !(Maybe Text) -- ^ "username" - The name that uniquely identifies this user among all active users.
  } deriving (Int -> V1UserInfo -> ShowS
[V1UserInfo] -> ShowS
V1UserInfo -> String
(Int -> V1UserInfo -> ShowS)
-> (V1UserInfo -> String)
-> ([V1UserInfo] -> ShowS)
-> Show V1UserInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1UserInfo] -> ShowS
$cshowList :: [V1UserInfo] -> ShowS
show :: V1UserInfo -> String
$cshow :: V1UserInfo -> String
showsPrec :: Int -> V1UserInfo -> ShowS
$cshowsPrec :: Int -> V1UserInfo -> ShowS
P.Show, V1UserInfo -> V1UserInfo -> Bool
(V1UserInfo -> V1UserInfo -> Bool)
-> (V1UserInfo -> V1UserInfo -> Bool) -> Eq V1UserInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1UserInfo -> V1UserInfo -> Bool
$c/= :: V1UserInfo -> V1UserInfo -> Bool
== :: V1UserInfo -> V1UserInfo -> Bool
$c== :: V1UserInfo -> V1UserInfo -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1UserInfo
instance A.FromJSON V1UserInfo where
  parseJSON :: Value -> Parser V1UserInfo
parseJSON = String
-> (Object -> Parser V1UserInfo) -> Value -> Parser V1UserInfo
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1UserInfo" ((Object -> Parser V1UserInfo) -> Value -> Parser V1UserInfo)
-> (Object -> Parser V1UserInfo) -> Value -> Parser V1UserInfo
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe (Map String [Text])
-> Maybe [Text] -> Maybe Text -> Maybe Text -> V1UserInfo
V1UserInfo
      (Maybe (Map String [Text])
 -> Maybe [Text] -> Maybe Text -> Maybe Text -> V1UserInfo)
-> Parser (Maybe (Map String [Text]))
-> Parser (Maybe [Text] -> Maybe Text -> Maybe Text -> V1UserInfo)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe (Map String [Text]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"extra")
      Parser (Maybe [Text] -> Maybe Text -> Maybe Text -> V1UserInfo)
-> Parser (Maybe [Text])
-> Parser (Maybe Text -> Maybe Text -> V1UserInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"groups")
      Parser (Maybe Text -> Maybe Text -> V1UserInfo)
-> Parser (Maybe Text) -> Parser (Maybe Text -> V1UserInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"uid")
      Parser (Maybe Text -> V1UserInfo)
-> Parser (Maybe Text) -> Parser V1UserInfo
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"username")

-- | ToJSON V1UserInfo
instance A.ToJSON V1UserInfo where
  toJSON :: V1UserInfo -> Value
toJSON V1UserInfo {Maybe [Text]
Maybe Text
Maybe (Map String [Text])
v1UserInfoUsername :: Maybe Text
v1UserInfoUid :: Maybe Text
v1UserInfoGroups :: Maybe [Text]
v1UserInfoExtra :: Maybe (Map String [Text])
v1UserInfoUsername :: V1UserInfo -> Maybe Text
v1UserInfoUid :: V1UserInfo -> Maybe Text
v1UserInfoGroups :: V1UserInfo -> Maybe [Text]
v1UserInfoExtra :: V1UserInfo -> Maybe (Map String [Text])
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"extra" Text -> Maybe (Map String [Text]) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String [Text])
v1UserInfoExtra
      , Text
"groups" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1UserInfoGroups
      , Text
"uid" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1UserInfoUid
      , Text
"username" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1UserInfoUsername
      ]


-- | Construct a value of type 'V1UserInfo' (by applying it's required fields, if any)
mkV1UserInfo
  :: V1UserInfo
mkV1UserInfo :: V1UserInfo
mkV1UserInfo =
  V1UserInfo :: Maybe (Map String [Text])
-> Maybe [Text] -> Maybe Text -> Maybe Text -> V1UserInfo
V1UserInfo
  { v1UserInfoExtra :: Maybe (Map String [Text])
v1UserInfoExtra = Maybe (Map String [Text])
forall a. Maybe a
Nothing
  , v1UserInfoGroups :: Maybe [Text]
v1UserInfoGroups = Maybe [Text]
forall a. Maybe a
Nothing
  , v1UserInfoUid :: Maybe Text
v1UserInfoUid = Maybe Text
forall a. Maybe a
Nothing
  , v1UserInfoUsername :: Maybe Text
v1UserInfoUsername = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1ValidatingWebhook
-- | V1ValidatingWebhook
-- ValidatingWebhook describes an admission webhook and the resources and operations it applies to.
data V1ValidatingWebhook = V1ValidatingWebhook
  { V1ValidatingWebhook -> [Text]
v1ValidatingWebhookAdmissionReviewVersions :: !([Text]) -- ^ /Required/ "admissionReviewVersions" - AdmissionReviewVersions is an ordered list of preferred &#x60;AdmissionReview&#x60; versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.
  , V1ValidatingWebhook -> AdmissionregistrationV1WebhookClientConfig
v1ValidatingWebhookClientConfig :: !(AdmissionregistrationV1WebhookClientConfig) -- ^ /Required/ "clientConfig"
  , V1ValidatingWebhook -> Maybe Text
v1ValidatingWebhookFailurePolicy :: !(Maybe Text) -- ^ "failurePolicy" - FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.
  , V1ValidatingWebhook -> Maybe Text
v1ValidatingWebhookMatchPolicy :: !(Maybe Text) -- ^ "matchPolicy" - matchPolicy defines how the \&quot;rules\&quot; list is used to match incoming requests. Allowed values are \&quot;Exact\&quot; or \&quot;Equivalent\&quot;.  - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \&quot;rules\&quot; only included &#x60;apiGroups:[\&quot;apps\&quot;], apiVersions:[\&quot;v1\&quot;], resources: [\&quot;deployments\&quot;]&#x60;, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.  - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \&quot;rules\&quot; only included &#x60;apiGroups:[\&quot;apps\&quot;], apiVersions:[\&quot;v1\&quot;], resources: [\&quot;deployments\&quot;]&#x60;, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.  Defaults to \&quot;Equivalent\&quot;
  , V1ValidatingWebhook -> Text
v1ValidatingWebhookName :: !(Text) -- ^ /Required/ "name" - The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \&quot;imagepolicy\&quot; is the name of the webhook, and kubernetes.io is the name of the organization. Required.
  , V1ValidatingWebhook -> Maybe V1LabelSelector
v1ValidatingWebhookNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"
  , V1ValidatingWebhook -> Maybe V1LabelSelector
v1ValidatingWebhookObjectSelector :: !(Maybe V1LabelSelector) -- ^ "objectSelector"
  , V1ValidatingWebhook -> Maybe [V1RuleWithOperations]
v1ValidatingWebhookRules :: !(Maybe [V1RuleWithOperations]) -- ^ "rules" - Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.
  , V1ValidatingWebhook -> Text
v1ValidatingWebhookSideEffects :: !(Text) -- ^ /Required/ "sideEffects" - SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects &#x3D;&#x3D; Unknown or Some.
  , V1ValidatingWebhook -> Maybe Int
v1ValidatingWebhookTimeoutSeconds :: !(Maybe Int) -- ^ "timeoutSeconds" - TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.
  } deriving (Int -> V1ValidatingWebhook -> ShowS
[V1ValidatingWebhook] -> ShowS
V1ValidatingWebhook -> String
(Int -> V1ValidatingWebhook -> ShowS)
-> (V1ValidatingWebhook -> String)
-> ([V1ValidatingWebhook] -> ShowS)
-> Show V1ValidatingWebhook
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ValidatingWebhook] -> ShowS
$cshowList :: [V1ValidatingWebhook] -> ShowS
show :: V1ValidatingWebhook -> String
$cshow :: V1ValidatingWebhook -> String
showsPrec :: Int -> V1ValidatingWebhook -> ShowS
$cshowsPrec :: Int -> V1ValidatingWebhook -> ShowS
P.Show, V1ValidatingWebhook -> V1ValidatingWebhook -> Bool
(V1ValidatingWebhook -> V1ValidatingWebhook -> Bool)
-> (V1ValidatingWebhook -> V1ValidatingWebhook -> Bool)
-> Eq V1ValidatingWebhook
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ValidatingWebhook -> V1ValidatingWebhook -> Bool
$c/= :: V1ValidatingWebhook -> V1ValidatingWebhook -> Bool
== :: V1ValidatingWebhook -> V1ValidatingWebhook -> Bool
$c== :: V1ValidatingWebhook -> V1ValidatingWebhook -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ValidatingWebhook
instance A.FromJSON V1ValidatingWebhook where
  parseJSON :: Value -> Parser V1ValidatingWebhook
parseJSON = String
-> (Object -> Parser V1ValidatingWebhook)
-> Value
-> Parser V1ValidatingWebhook
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ValidatingWebhook" ((Object -> Parser V1ValidatingWebhook)
 -> Value -> Parser V1ValidatingWebhook)
-> (Object -> Parser V1ValidatingWebhook)
-> Value
-> Parser V1ValidatingWebhook
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    [Text]
-> AdmissionregistrationV1WebhookClientConfig
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe V1LabelSelector
-> Maybe V1LabelSelector
-> Maybe [V1RuleWithOperations]
-> Text
-> Maybe Int
-> V1ValidatingWebhook
V1ValidatingWebhook
      ([Text]
 -> AdmissionregistrationV1WebhookClientConfig
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Maybe V1LabelSelector
 -> Maybe V1LabelSelector
 -> Maybe [V1RuleWithOperations]
 -> Text
 -> Maybe Int
 -> V1ValidatingWebhook)
-> Parser [Text]
-> Parser
     (AdmissionregistrationV1WebhookClientConfig
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe [V1RuleWithOperations]
      -> Text
      -> Maybe Int
      -> V1ValidatingWebhook)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"admissionReviewVersions")
      Parser
  (AdmissionregistrationV1WebhookClientConfig
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe [V1RuleWithOperations]
   -> Text
   -> Maybe Int
   -> V1ValidatingWebhook)
-> Parser AdmissionregistrationV1WebhookClientConfig
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe [V1RuleWithOperations]
      -> Text
      -> Maybe Int
      -> V1ValidatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser AdmissionregistrationV1WebhookClientConfig
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"clientConfig")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe [V1RuleWithOperations]
   -> Text
   -> Maybe Int
   -> V1ValidatingWebhook)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text
      -> Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe [V1RuleWithOperations]
      -> Text
      -> Maybe Int
      -> V1ValidatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"failurePolicy")
      Parser
  (Maybe Text
   -> Text
   -> Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe [V1RuleWithOperations]
   -> Text
   -> Maybe Int
   -> V1ValidatingWebhook)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe [V1RuleWithOperations]
      -> Text
      -> Maybe Int
      -> V1ValidatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"matchPolicy")
      Parser
  (Text
   -> Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe [V1RuleWithOperations]
   -> Text
   -> Maybe Int
   -> V1ValidatingWebhook)
-> Parser Text
-> Parser
     (Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe [V1RuleWithOperations]
      -> Text
      -> Maybe Int
      -> V1ValidatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe [V1RuleWithOperations]
   -> Text
   -> Maybe Int
   -> V1ValidatingWebhook)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (Maybe V1LabelSelector
      -> Maybe [V1RuleWithOperations]
      -> Text
      -> Maybe Int
      -> V1ValidatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespaceSelector")
      Parser
  (Maybe V1LabelSelector
   -> Maybe [V1RuleWithOperations]
   -> Text
   -> Maybe Int
   -> V1ValidatingWebhook)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (Maybe [V1RuleWithOperations]
      -> Text -> Maybe Int -> V1ValidatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"objectSelector")
      Parser
  (Maybe [V1RuleWithOperations]
   -> Text -> Maybe Int -> V1ValidatingWebhook)
-> Parser (Maybe [V1RuleWithOperations])
-> Parser (Text -> Maybe Int -> V1ValidatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1RuleWithOperations])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rules")
      Parser (Text -> Maybe Int -> V1ValidatingWebhook)
-> Parser Text -> Parser (Maybe Int -> V1ValidatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"sideEffects")
      Parser (Maybe Int -> V1ValidatingWebhook)
-> Parser (Maybe Int) -> Parser V1ValidatingWebhook
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"timeoutSeconds")

-- | ToJSON V1ValidatingWebhook
instance A.ToJSON V1ValidatingWebhook where
  toJSON :: V1ValidatingWebhook -> Value
toJSON V1ValidatingWebhook {[Text]
Maybe Int
Maybe [V1RuleWithOperations]
Maybe Text
Maybe V1LabelSelector
Text
AdmissionregistrationV1WebhookClientConfig
v1ValidatingWebhookTimeoutSeconds :: Maybe Int
v1ValidatingWebhookSideEffects :: Text
v1ValidatingWebhookRules :: Maybe [V1RuleWithOperations]
v1ValidatingWebhookObjectSelector :: Maybe V1LabelSelector
v1ValidatingWebhookNamespaceSelector :: Maybe V1LabelSelector
v1ValidatingWebhookName :: Text
v1ValidatingWebhookMatchPolicy :: Maybe Text
v1ValidatingWebhookFailurePolicy :: Maybe Text
v1ValidatingWebhookClientConfig :: AdmissionregistrationV1WebhookClientConfig
v1ValidatingWebhookAdmissionReviewVersions :: [Text]
v1ValidatingWebhookTimeoutSeconds :: V1ValidatingWebhook -> Maybe Int
v1ValidatingWebhookSideEffects :: V1ValidatingWebhook -> Text
v1ValidatingWebhookRules :: V1ValidatingWebhook -> Maybe [V1RuleWithOperations]
v1ValidatingWebhookObjectSelector :: V1ValidatingWebhook -> Maybe V1LabelSelector
v1ValidatingWebhookNamespaceSelector :: V1ValidatingWebhook -> Maybe V1LabelSelector
v1ValidatingWebhookName :: V1ValidatingWebhook -> Text
v1ValidatingWebhookMatchPolicy :: V1ValidatingWebhook -> Maybe Text
v1ValidatingWebhookFailurePolicy :: V1ValidatingWebhook -> Maybe Text
v1ValidatingWebhookClientConfig :: V1ValidatingWebhook -> AdmissionregistrationV1WebhookClientConfig
v1ValidatingWebhookAdmissionReviewVersions :: V1ValidatingWebhook -> [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"admissionReviewVersions" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1ValidatingWebhookAdmissionReviewVersions
      , Text
"clientConfig" Text -> AdmissionregistrationV1WebhookClientConfig -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= AdmissionregistrationV1WebhookClientConfig
v1ValidatingWebhookClientConfig
      , Text
"failurePolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ValidatingWebhookFailurePolicy
      , Text
"matchPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ValidatingWebhookMatchPolicy
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ValidatingWebhookName
      , Text
"namespaceSelector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1ValidatingWebhookNamespaceSelector
      , Text
"objectSelector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1ValidatingWebhookObjectSelector
      , Text
"rules" Text -> Maybe [V1RuleWithOperations] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1RuleWithOperations]
v1ValidatingWebhookRules
      , Text
"sideEffects" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1ValidatingWebhookSideEffects
      , Text
"timeoutSeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1ValidatingWebhookTimeoutSeconds
      ]


-- | Construct a value of type 'V1ValidatingWebhook' (by applying it's required fields, if any)
mkV1ValidatingWebhook
  :: [Text] -- ^ 'v1ValidatingWebhookAdmissionReviewVersions': AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.
  -> AdmissionregistrationV1WebhookClientConfig -- ^ 'v1ValidatingWebhookClientConfig' 
  -> Text -- ^ 'v1ValidatingWebhookName': The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.
  -> Text -- ^ 'v1ValidatingWebhookSideEffects': SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.
  -> V1ValidatingWebhook
mkV1ValidatingWebhook :: [Text]
-> AdmissionregistrationV1WebhookClientConfig
-> Text
-> Text
-> V1ValidatingWebhook
mkV1ValidatingWebhook [Text]
v1ValidatingWebhookAdmissionReviewVersions AdmissionregistrationV1WebhookClientConfig
v1ValidatingWebhookClientConfig Text
v1ValidatingWebhookName Text
v1ValidatingWebhookSideEffects =
  V1ValidatingWebhook :: [Text]
-> AdmissionregistrationV1WebhookClientConfig
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe V1LabelSelector
-> Maybe V1LabelSelector
-> Maybe [V1RuleWithOperations]
-> Text
-> Maybe Int
-> V1ValidatingWebhook
V1ValidatingWebhook
  { [Text]
v1ValidatingWebhookAdmissionReviewVersions :: [Text]
v1ValidatingWebhookAdmissionReviewVersions :: [Text]
v1ValidatingWebhookAdmissionReviewVersions
  , AdmissionregistrationV1WebhookClientConfig
v1ValidatingWebhookClientConfig :: AdmissionregistrationV1WebhookClientConfig
v1ValidatingWebhookClientConfig :: AdmissionregistrationV1WebhookClientConfig
v1ValidatingWebhookClientConfig
  , v1ValidatingWebhookFailurePolicy :: Maybe Text
v1ValidatingWebhookFailurePolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1ValidatingWebhookMatchPolicy :: Maybe Text
v1ValidatingWebhookMatchPolicy = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1ValidatingWebhookName :: Text
v1ValidatingWebhookName :: Text
v1ValidatingWebhookName
  , v1ValidatingWebhookNamespaceSelector :: Maybe V1LabelSelector
v1ValidatingWebhookNamespaceSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , v1ValidatingWebhookObjectSelector :: Maybe V1LabelSelector
v1ValidatingWebhookObjectSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , v1ValidatingWebhookRules :: Maybe [V1RuleWithOperations]
v1ValidatingWebhookRules = Maybe [V1RuleWithOperations]
forall a. Maybe a
Nothing
  , Text
v1ValidatingWebhookSideEffects :: Text
v1ValidatingWebhookSideEffects :: Text
v1ValidatingWebhookSideEffects
  , v1ValidatingWebhookTimeoutSeconds :: Maybe Int
v1ValidatingWebhookTimeoutSeconds = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1ValidatingWebhookConfiguration
-- | V1ValidatingWebhookConfiguration
-- ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.
data V1ValidatingWebhookConfiguration = V1ValidatingWebhookConfiguration
  { V1ValidatingWebhookConfiguration -> Maybe Text
v1ValidatingWebhookConfigurationApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ValidatingWebhookConfiguration -> Maybe Text
v1ValidatingWebhookConfigurationKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ValidatingWebhookConfiguration -> Maybe V1ObjectMeta
v1ValidatingWebhookConfigurationMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1ValidatingWebhookConfiguration -> Maybe [V1ValidatingWebhook]
v1ValidatingWebhookConfigurationWebhooks :: !(Maybe [V1ValidatingWebhook]) -- ^ "webhooks" - Webhooks is a list of webhooks and the affected resources and operations.
  } deriving (Int -> V1ValidatingWebhookConfiguration -> ShowS
[V1ValidatingWebhookConfiguration] -> ShowS
V1ValidatingWebhookConfiguration -> String
(Int -> V1ValidatingWebhookConfiguration -> ShowS)
-> (V1ValidatingWebhookConfiguration -> String)
-> ([V1ValidatingWebhookConfiguration] -> ShowS)
-> Show V1ValidatingWebhookConfiguration
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ValidatingWebhookConfiguration] -> ShowS
$cshowList :: [V1ValidatingWebhookConfiguration] -> ShowS
show :: V1ValidatingWebhookConfiguration -> String
$cshow :: V1ValidatingWebhookConfiguration -> String
showsPrec :: Int -> V1ValidatingWebhookConfiguration -> ShowS
$cshowsPrec :: Int -> V1ValidatingWebhookConfiguration -> ShowS
P.Show, V1ValidatingWebhookConfiguration
-> V1ValidatingWebhookConfiguration -> Bool
(V1ValidatingWebhookConfiguration
 -> V1ValidatingWebhookConfiguration -> Bool)
-> (V1ValidatingWebhookConfiguration
    -> V1ValidatingWebhookConfiguration -> Bool)
-> Eq V1ValidatingWebhookConfiguration
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ValidatingWebhookConfiguration
-> V1ValidatingWebhookConfiguration -> Bool
$c/= :: V1ValidatingWebhookConfiguration
-> V1ValidatingWebhookConfiguration -> Bool
== :: V1ValidatingWebhookConfiguration
-> V1ValidatingWebhookConfiguration -> Bool
$c== :: V1ValidatingWebhookConfiguration
-> V1ValidatingWebhookConfiguration -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ValidatingWebhookConfiguration
instance A.FromJSON V1ValidatingWebhookConfiguration where
  parseJSON :: Value -> Parser V1ValidatingWebhookConfiguration
parseJSON = String
-> (Object -> Parser V1ValidatingWebhookConfiguration)
-> Value
-> Parser V1ValidatingWebhookConfiguration
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ValidatingWebhookConfiguration" ((Object -> Parser V1ValidatingWebhookConfiguration)
 -> Value -> Parser V1ValidatingWebhookConfiguration)
-> (Object -> Parser V1ValidatingWebhookConfiguration)
-> Value
-> Parser V1ValidatingWebhookConfiguration
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1ValidatingWebhook]
-> V1ValidatingWebhookConfiguration
V1ValidatingWebhookConfiguration
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe [V1ValidatingWebhook]
 -> V1ValidatingWebhookConfiguration)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [V1ValidatingWebhook]
      -> V1ValidatingWebhookConfiguration)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [V1ValidatingWebhook]
   -> V1ValidatingWebhookConfiguration)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe [V1ValidatingWebhook] -> V1ValidatingWebhookConfiguration)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe [V1ValidatingWebhook] -> V1ValidatingWebhookConfiguration)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe [V1ValidatingWebhook] -> V1ValidatingWebhookConfiguration)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe [V1ValidatingWebhook] -> V1ValidatingWebhookConfiguration)
-> Parser (Maybe [V1ValidatingWebhook])
-> Parser V1ValidatingWebhookConfiguration
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1ValidatingWebhook])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"webhooks")

-- | ToJSON V1ValidatingWebhookConfiguration
instance A.ToJSON V1ValidatingWebhookConfiguration where
  toJSON :: V1ValidatingWebhookConfiguration -> Value
toJSON V1ValidatingWebhookConfiguration {Maybe [V1ValidatingWebhook]
Maybe Text
Maybe V1ObjectMeta
v1ValidatingWebhookConfigurationWebhooks :: Maybe [V1ValidatingWebhook]
v1ValidatingWebhookConfigurationMetadata :: Maybe V1ObjectMeta
v1ValidatingWebhookConfigurationKind :: Maybe Text
v1ValidatingWebhookConfigurationApiVersion :: Maybe Text
v1ValidatingWebhookConfigurationWebhooks :: V1ValidatingWebhookConfiguration -> Maybe [V1ValidatingWebhook]
v1ValidatingWebhookConfigurationMetadata :: V1ValidatingWebhookConfiguration -> Maybe V1ObjectMeta
v1ValidatingWebhookConfigurationKind :: V1ValidatingWebhookConfiguration -> Maybe Text
v1ValidatingWebhookConfigurationApiVersion :: V1ValidatingWebhookConfiguration -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ValidatingWebhookConfigurationApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ValidatingWebhookConfigurationKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1ValidatingWebhookConfigurationMetadata
      , Text
"webhooks" Text -> Maybe [V1ValidatingWebhook] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ValidatingWebhook]
v1ValidatingWebhookConfigurationWebhooks
      ]


-- | Construct a value of type 'V1ValidatingWebhookConfiguration' (by applying it's required fields, if any)
mkV1ValidatingWebhookConfiguration
  :: V1ValidatingWebhookConfiguration
mkV1ValidatingWebhookConfiguration :: V1ValidatingWebhookConfiguration
mkV1ValidatingWebhookConfiguration =
  V1ValidatingWebhookConfiguration :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1ValidatingWebhook]
-> V1ValidatingWebhookConfiguration
V1ValidatingWebhookConfiguration
  { v1ValidatingWebhookConfigurationApiVersion :: Maybe Text
v1ValidatingWebhookConfigurationApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1ValidatingWebhookConfigurationKind :: Maybe Text
v1ValidatingWebhookConfigurationKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ValidatingWebhookConfigurationMetadata :: Maybe V1ObjectMeta
v1ValidatingWebhookConfigurationMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1ValidatingWebhookConfigurationWebhooks :: Maybe [V1ValidatingWebhook]
v1ValidatingWebhookConfigurationWebhooks = Maybe [V1ValidatingWebhook]
forall a. Maybe a
Nothing
  }

-- ** V1ValidatingWebhookConfigurationList
-- | V1ValidatingWebhookConfigurationList
-- ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.
data V1ValidatingWebhookConfigurationList = V1ValidatingWebhookConfigurationList
  { V1ValidatingWebhookConfigurationList -> Maybe Text
v1ValidatingWebhookConfigurationListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1ValidatingWebhookConfigurationList
-> [V1ValidatingWebhookConfiguration]
v1ValidatingWebhookConfigurationListItems :: !([V1ValidatingWebhookConfiguration]) -- ^ /Required/ "items" - List of ValidatingWebhookConfiguration.
  , V1ValidatingWebhookConfigurationList -> Maybe Text
v1ValidatingWebhookConfigurationListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1ValidatingWebhookConfigurationList -> Maybe V1ListMeta
v1ValidatingWebhookConfigurationListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1ValidatingWebhookConfigurationList -> ShowS
[V1ValidatingWebhookConfigurationList] -> ShowS
V1ValidatingWebhookConfigurationList -> String
(Int -> V1ValidatingWebhookConfigurationList -> ShowS)
-> (V1ValidatingWebhookConfigurationList -> String)
-> ([V1ValidatingWebhookConfigurationList] -> ShowS)
-> Show V1ValidatingWebhookConfigurationList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1ValidatingWebhookConfigurationList] -> ShowS
$cshowList :: [V1ValidatingWebhookConfigurationList] -> ShowS
show :: V1ValidatingWebhookConfigurationList -> String
$cshow :: V1ValidatingWebhookConfigurationList -> String
showsPrec :: Int -> V1ValidatingWebhookConfigurationList -> ShowS
$cshowsPrec :: Int -> V1ValidatingWebhookConfigurationList -> ShowS
P.Show, V1ValidatingWebhookConfigurationList
-> V1ValidatingWebhookConfigurationList -> Bool
(V1ValidatingWebhookConfigurationList
 -> V1ValidatingWebhookConfigurationList -> Bool)
-> (V1ValidatingWebhookConfigurationList
    -> V1ValidatingWebhookConfigurationList -> Bool)
-> Eq V1ValidatingWebhookConfigurationList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1ValidatingWebhookConfigurationList
-> V1ValidatingWebhookConfigurationList -> Bool
$c/= :: V1ValidatingWebhookConfigurationList
-> V1ValidatingWebhookConfigurationList -> Bool
== :: V1ValidatingWebhookConfigurationList
-> V1ValidatingWebhookConfigurationList -> Bool
$c== :: V1ValidatingWebhookConfigurationList
-> V1ValidatingWebhookConfigurationList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1ValidatingWebhookConfigurationList
instance A.FromJSON V1ValidatingWebhookConfigurationList where
  parseJSON :: Value -> Parser V1ValidatingWebhookConfigurationList
parseJSON = String
-> (Object -> Parser V1ValidatingWebhookConfigurationList)
-> Value
-> Parser V1ValidatingWebhookConfigurationList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1ValidatingWebhookConfigurationList" ((Object -> Parser V1ValidatingWebhookConfigurationList)
 -> Value -> Parser V1ValidatingWebhookConfigurationList)
-> (Object -> Parser V1ValidatingWebhookConfigurationList)
-> Value
-> Parser V1ValidatingWebhookConfigurationList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1ValidatingWebhookConfiguration]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ValidatingWebhookConfigurationList
V1ValidatingWebhookConfigurationList
      (Maybe Text
 -> [V1ValidatingWebhookConfiguration]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1ValidatingWebhookConfigurationList)
-> Parser (Maybe Text)
-> Parser
     ([V1ValidatingWebhookConfiguration]
      -> Maybe Text
      -> Maybe V1ListMeta
      -> V1ValidatingWebhookConfigurationList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1ValidatingWebhookConfiguration]
   -> Maybe Text
   -> Maybe V1ListMeta
   -> V1ValidatingWebhookConfigurationList)
-> Parser [V1ValidatingWebhookConfiguration]
-> Parser
     (Maybe Text
      -> Maybe V1ListMeta -> V1ValidatingWebhookConfigurationList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1ValidatingWebhookConfiguration]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text
   -> Maybe V1ListMeta -> V1ValidatingWebhookConfigurationList)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ListMeta -> V1ValidatingWebhookConfigurationList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1ValidatingWebhookConfigurationList)
-> Parser (Maybe V1ListMeta)
-> Parser V1ValidatingWebhookConfigurationList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1ValidatingWebhookConfigurationList
instance A.ToJSON V1ValidatingWebhookConfigurationList where
  toJSON :: V1ValidatingWebhookConfigurationList -> Value
toJSON V1ValidatingWebhookConfigurationList {[V1ValidatingWebhookConfiguration]
Maybe Text
Maybe V1ListMeta
v1ValidatingWebhookConfigurationListMetadata :: Maybe V1ListMeta
v1ValidatingWebhookConfigurationListKind :: Maybe Text
v1ValidatingWebhookConfigurationListItems :: [V1ValidatingWebhookConfiguration]
v1ValidatingWebhookConfigurationListApiVersion :: Maybe Text
v1ValidatingWebhookConfigurationListMetadata :: V1ValidatingWebhookConfigurationList -> Maybe V1ListMeta
v1ValidatingWebhookConfigurationListKind :: V1ValidatingWebhookConfigurationList -> Maybe Text
v1ValidatingWebhookConfigurationListItems :: V1ValidatingWebhookConfigurationList
-> [V1ValidatingWebhookConfiguration]
v1ValidatingWebhookConfigurationListApiVersion :: V1ValidatingWebhookConfigurationList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ValidatingWebhookConfigurationListApiVersion
      , Text
"items" Text -> [V1ValidatingWebhookConfiguration] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1ValidatingWebhookConfiguration]
v1ValidatingWebhookConfigurationListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1ValidatingWebhookConfigurationListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1ValidatingWebhookConfigurationListMetadata
      ]


-- | Construct a value of type 'V1ValidatingWebhookConfigurationList' (by applying it's required fields, if any)
mkV1ValidatingWebhookConfigurationList
  :: [V1ValidatingWebhookConfiguration] -- ^ 'v1ValidatingWebhookConfigurationListItems': List of ValidatingWebhookConfiguration.
  -> V1ValidatingWebhookConfigurationList
mkV1ValidatingWebhookConfigurationList :: [V1ValidatingWebhookConfiguration]
-> V1ValidatingWebhookConfigurationList
mkV1ValidatingWebhookConfigurationList [V1ValidatingWebhookConfiguration]
v1ValidatingWebhookConfigurationListItems =
  V1ValidatingWebhookConfigurationList :: Maybe Text
-> [V1ValidatingWebhookConfiguration]
-> Maybe Text
-> Maybe V1ListMeta
-> V1ValidatingWebhookConfigurationList
V1ValidatingWebhookConfigurationList
  { v1ValidatingWebhookConfigurationListApiVersion :: Maybe Text
v1ValidatingWebhookConfigurationListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1ValidatingWebhookConfiguration]
v1ValidatingWebhookConfigurationListItems :: [V1ValidatingWebhookConfiguration]
v1ValidatingWebhookConfigurationListItems :: [V1ValidatingWebhookConfiguration]
v1ValidatingWebhookConfigurationListItems
  , v1ValidatingWebhookConfigurationListKind :: Maybe Text
v1ValidatingWebhookConfigurationListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1ValidatingWebhookConfigurationListMetadata :: Maybe V1ListMeta
v1ValidatingWebhookConfigurationListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1Volume
-- | V1Volume
-- Volume represents a named volume in a pod that may be accessed by any container in the pod.
data V1Volume = V1Volume
  { V1Volume -> Maybe V1AWSElasticBlockStoreVolumeSource
v1VolumeAwsElasticBlockStore :: !(Maybe V1AWSElasticBlockStoreVolumeSource) -- ^ "awsElasticBlockStore"
  , V1Volume -> Maybe V1AzureDiskVolumeSource
v1VolumeAzureDisk :: !(Maybe V1AzureDiskVolumeSource) -- ^ "azureDisk"
  , V1Volume -> Maybe V1AzureFileVolumeSource
v1VolumeAzureFile :: !(Maybe V1AzureFileVolumeSource) -- ^ "azureFile"
  , V1Volume -> Maybe V1CephFSVolumeSource
v1VolumeCephfs :: !(Maybe V1CephFSVolumeSource) -- ^ "cephfs"
  , V1Volume -> Maybe V1CinderVolumeSource
v1VolumeCinder :: !(Maybe V1CinderVolumeSource) -- ^ "cinder"
  , V1Volume -> Maybe V1ConfigMapVolumeSource
v1VolumeConfigMap :: !(Maybe V1ConfigMapVolumeSource) -- ^ "configMap"
  , V1Volume -> Maybe V1CSIVolumeSource
v1VolumeCsi :: !(Maybe V1CSIVolumeSource) -- ^ "csi"
  , V1Volume -> Maybe V1DownwardAPIVolumeSource
v1VolumeDownwardApi :: !(Maybe V1DownwardAPIVolumeSource) -- ^ "downwardAPI"
  , V1Volume -> Maybe V1EmptyDirVolumeSource
v1VolumeEmptyDir :: !(Maybe V1EmptyDirVolumeSource) -- ^ "emptyDir"
  , V1Volume -> Maybe V1FCVolumeSource
v1VolumeFc :: !(Maybe V1FCVolumeSource) -- ^ "fc"
  , V1Volume -> Maybe V1FlexVolumeSource
v1VolumeFlexVolume :: !(Maybe V1FlexVolumeSource) -- ^ "flexVolume"
  , V1Volume -> Maybe V1FlockerVolumeSource
v1VolumeFlocker :: !(Maybe V1FlockerVolumeSource) -- ^ "flocker"
  , V1Volume -> Maybe V1GCEPersistentDiskVolumeSource
v1VolumeGcePersistentDisk :: !(Maybe V1GCEPersistentDiskVolumeSource) -- ^ "gcePersistentDisk"
  , V1Volume -> Maybe V1GitRepoVolumeSource
v1VolumeGitRepo :: !(Maybe V1GitRepoVolumeSource) -- ^ "gitRepo"
  , V1Volume -> Maybe V1GlusterfsVolumeSource
v1VolumeGlusterfs :: !(Maybe V1GlusterfsVolumeSource) -- ^ "glusterfs"
  , V1Volume -> Maybe V1HostPathVolumeSource
v1VolumeHostPath :: !(Maybe V1HostPathVolumeSource) -- ^ "hostPath"
  , V1Volume -> Maybe V1ISCSIVolumeSource
v1VolumeIscsi :: !(Maybe V1ISCSIVolumeSource) -- ^ "iscsi"
  , V1Volume -> Text
v1VolumeName :: !(Text) -- ^ /Required/ "name" - Volume&#39;s name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  , V1Volume -> Maybe V1NFSVolumeSource
v1VolumeNfs :: !(Maybe V1NFSVolumeSource) -- ^ "nfs"
  , V1Volume -> Maybe V1PersistentVolumeClaimVolumeSource
v1VolumePersistentVolumeClaim :: !(Maybe V1PersistentVolumeClaimVolumeSource) -- ^ "persistentVolumeClaim"
  , V1Volume -> Maybe V1PhotonPersistentDiskVolumeSource
v1VolumePhotonPersistentDisk :: !(Maybe V1PhotonPersistentDiskVolumeSource) -- ^ "photonPersistentDisk"
  , V1Volume -> Maybe V1PortworxVolumeSource
v1VolumePortworxVolume :: !(Maybe V1PortworxVolumeSource) -- ^ "portworxVolume"
  , V1Volume -> Maybe V1ProjectedVolumeSource
v1VolumeProjected :: !(Maybe V1ProjectedVolumeSource) -- ^ "projected"
  , V1Volume -> Maybe V1QuobyteVolumeSource
v1VolumeQuobyte :: !(Maybe V1QuobyteVolumeSource) -- ^ "quobyte"
  , V1Volume -> Maybe V1RBDVolumeSource
v1VolumeRbd :: !(Maybe V1RBDVolumeSource) -- ^ "rbd"
  , V1Volume -> Maybe V1ScaleIOVolumeSource
v1VolumeScaleIo :: !(Maybe V1ScaleIOVolumeSource) -- ^ "scaleIO"
  , V1Volume -> Maybe V1SecretVolumeSource
v1VolumeSecret :: !(Maybe V1SecretVolumeSource) -- ^ "secret"
  , V1Volume -> Maybe V1StorageOSVolumeSource
v1VolumeStorageos :: !(Maybe V1StorageOSVolumeSource) -- ^ "storageos"
  , V1Volume -> Maybe V1VsphereVirtualDiskVolumeSource
v1VolumeVsphereVolume :: !(Maybe V1VsphereVirtualDiskVolumeSource) -- ^ "vsphereVolume"
  } deriving (Int -> V1Volume -> ShowS
[V1Volume] -> ShowS
V1Volume -> String
(Int -> V1Volume -> ShowS)
-> (V1Volume -> String) -> ([V1Volume] -> ShowS) -> Show V1Volume
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1Volume] -> ShowS
$cshowList :: [V1Volume] -> ShowS
show :: V1Volume -> String
$cshow :: V1Volume -> String
showsPrec :: Int -> V1Volume -> ShowS
$cshowsPrec :: Int -> V1Volume -> ShowS
P.Show, V1Volume -> V1Volume -> Bool
(V1Volume -> V1Volume -> Bool)
-> (V1Volume -> V1Volume -> Bool) -> Eq V1Volume
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1Volume -> V1Volume -> Bool
$c/= :: V1Volume -> V1Volume -> Bool
== :: V1Volume -> V1Volume -> Bool
$c== :: V1Volume -> V1Volume -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1Volume
instance A.FromJSON V1Volume where
  parseJSON :: Value -> Parser V1Volume
parseJSON = String -> (Object -> Parser V1Volume) -> Value -> Parser V1Volume
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1Volume" ((Object -> Parser V1Volume) -> Value -> Parser V1Volume)
-> (Object -> Parser V1Volume) -> Value -> Parser V1Volume
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1AWSElasticBlockStoreVolumeSource
-> Maybe V1AzureDiskVolumeSource
-> Maybe V1AzureFileVolumeSource
-> Maybe V1CephFSVolumeSource
-> Maybe V1CinderVolumeSource
-> Maybe V1ConfigMapVolumeSource
-> Maybe V1CSIVolumeSource
-> Maybe V1DownwardAPIVolumeSource
-> Maybe V1EmptyDirVolumeSource
-> Maybe V1FCVolumeSource
-> Maybe V1FlexVolumeSource
-> Maybe V1FlockerVolumeSource
-> Maybe V1GCEPersistentDiskVolumeSource
-> Maybe V1GitRepoVolumeSource
-> Maybe V1GlusterfsVolumeSource
-> Maybe V1HostPathVolumeSource
-> Maybe V1ISCSIVolumeSource
-> Text
-> Maybe V1NFSVolumeSource
-> Maybe V1PersistentVolumeClaimVolumeSource
-> Maybe V1PhotonPersistentDiskVolumeSource
-> Maybe V1PortworxVolumeSource
-> Maybe V1ProjectedVolumeSource
-> Maybe V1QuobyteVolumeSource
-> Maybe V1RBDVolumeSource
-> Maybe V1ScaleIOVolumeSource
-> Maybe V1SecretVolumeSource
-> Maybe V1StorageOSVolumeSource
-> Maybe V1VsphereVirtualDiskVolumeSource
-> V1Volume
V1Volume
      (Maybe V1AWSElasticBlockStoreVolumeSource
 -> Maybe V1AzureDiskVolumeSource
 -> Maybe V1AzureFileVolumeSource
 -> Maybe V1CephFSVolumeSource
 -> Maybe V1CinderVolumeSource
 -> Maybe V1ConfigMapVolumeSource
 -> Maybe V1CSIVolumeSource
 -> Maybe V1DownwardAPIVolumeSource
 -> Maybe V1EmptyDirVolumeSource
 -> Maybe V1FCVolumeSource
 -> Maybe V1FlexVolumeSource
 -> Maybe V1FlockerVolumeSource
 -> Maybe V1GCEPersistentDiskVolumeSource
 -> Maybe V1GitRepoVolumeSource
 -> Maybe V1GlusterfsVolumeSource
 -> Maybe V1HostPathVolumeSource
 -> Maybe V1ISCSIVolumeSource
 -> Text
 -> Maybe V1NFSVolumeSource
 -> Maybe V1PersistentVolumeClaimVolumeSource
 -> Maybe V1PhotonPersistentDiskVolumeSource
 -> Maybe V1PortworxVolumeSource
 -> Maybe V1ProjectedVolumeSource
 -> Maybe V1QuobyteVolumeSource
 -> Maybe V1RBDVolumeSource
 -> Maybe V1ScaleIOVolumeSource
 -> Maybe V1SecretVolumeSource
 -> Maybe V1StorageOSVolumeSource
 -> Maybe V1VsphereVirtualDiskVolumeSource
 -> V1Volume)
-> Parser (Maybe V1AWSElasticBlockStoreVolumeSource)
-> Parser
     (Maybe V1AzureDiskVolumeSource
      -> Maybe V1AzureFileVolumeSource
      -> Maybe V1CephFSVolumeSource
      -> Maybe V1CinderVolumeSource
      -> Maybe V1ConfigMapVolumeSource
      -> Maybe V1CSIVolumeSource
      -> Maybe V1DownwardAPIVolumeSource
      -> Maybe V1EmptyDirVolumeSource
      -> Maybe V1FCVolumeSource
      -> Maybe V1FlexVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GitRepoVolumeSource
      -> Maybe V1GlusterfsVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIVolumeSource
      -> Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1AWSElasticBlockStoreVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"awsElasticBlockStore")
      Parser
  (Maybe V1AzureDiskVolumeSource
   -> Maybe V1AzureFileVolumeSource
   -> Maybe V1CephFSVolumeSource
   -> Maybe V1CinderVolumeSource
   -> Maybe V1ConfigMapVolumeSource
   -> Maybe V1CSIVolumeSource
   -> Maybe V1DownwardAPIVolumeSource
   -> Maybe V1EmptyDirVolumeSource
   -> Maybe V1FCVolumeSource
   -> Maybe V1FlexVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GitRepoVolumeSource
   -> Maybe V1GlusterfsVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIVolumeSource
   -> Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1AzureDiskVolumeSource)
-> Parser
     (Maybe V1AzureFileVolumeSource
      -> Maybe V1CephFSVolumeSource
      -> Maybe V1CinderVolumeSource
      -> Maybe V1ConfigMapVolumeSource
      -> Maybe V1CSIVolumeSource
      -> Maybe V1DownwardAPIVolumeSource
      -> Maybe V1EmptyDirVolumeSource
      -> Maybe V1FCVolumeSource
      -> Maybe V1FlexVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GitRepoVolumeSource
      -> Maybe V1GlusterfsVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIVolumeSource
      -> Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1AzureDiskVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"azureDisk")
      Parser
  (Maybe V1AzureFileVolumeSource
   -> Maybe V1CephFSVolumeSource
   -> Maybe V1CinderVolumeSource
   -> Maybe V1ConfigMapVolumeSource
   -> Maybe V1CSIVolumeSource
   -> Maybe V1DownwardAPIVolumeSource
   -> Maybe V1EmptyDirVolumeSource
   -> Maybe V1FCVolumeSource
   -> Maybe V1FlexVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GitRepoVolumeSource
   -> Maybe V1GlusterfsVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIVolumeSource
   -> Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1AzureFileVolumeSource)
-> Parser
     (Maybe V1CephFSVolumeSource
      -> Maybe V1CinderVolumeSource
      -> Maybe V1ConfigMapVolumeSource
      -> Maybe V1CSIVolumeSource
      -> Maybe V1DownwardAPIVolumeSource
      -> Maybe V1EmptyDirVolumeSource
      -> Maybe V1FCVolumeSource
      -> Maybe V1FlexVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GitRepoVolumeSource
      -> Maybe V1GlusterfsVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIVolumeSource
      -> Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1AzureFileVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"azureFile")
      Parser
  (Maybe V1CephFSVolumeSource
   -> Maybe V1CinderVolumeSource
   -> Maybe V1ConfigMapVolumeSource
   -> Maybe V1CSIVolumeSource
   -> Maybe V1DownwardAPIVolumeSource
   -> Maybe V1EmptyDirVolumeSource
   -> Maybe V1FCVolumeSource
   -> Maybe V1FlexVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GitRepoVolumeSource
   -> Maybe V1GlusterfsVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIVolumeSource
   -> Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1CephFSVolumeSource)
-> Parser
     (Maybe V1CinderVolumeSource
      -> Maybe V1ConfigMapVolumeSource
      -> Maybe V1CSIVolumeSource
      -> Maybe V1DownwardAPIVolumeSource
      -> Maybe V1EmptyDirVolumeSource
      -> Maybe V1FCVolumeSource
      -> Maybe V1FlexVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GitRepoVolumeSource
      -> Maybe V1GlusterfsVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIVolumeSource
      -> Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1CephFSVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"cephfs")
      Parser
  (Maybe V1CinderVolumeSource
   -> Maybe V1ConfigMapVolumeSource
   -> Maybe V1CSIVolumeSource
   -> Maybe V1DownwardAPIVolumeSource
   -> Maybe V1EmptyDirVolumeSource
   -> Maybe V1FCVolumeSource
   -> Maybe V1FlexVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GitRepoVolumeSource
   -> Maybe V1GlusterfsVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIVolumeSource
   -> Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1CinderVolumeSource)
-> Parser
     (Maybe V1ConfigMapVolumeSource
      -> Maybe V1CSIVolumeSource
      -> Maybe V1DownwardAPIVolumeSource
      -> Maybe V1EmptyDirVolumeSource
      -> Maybe V1FCVolumeSource
      -> Maybe V1FlexVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GitRepoVolumeSource
      -> Maybe V1GlusterfsVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIVolumeSource
      -> Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1CinderVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"cinder")
      Parser
  (Maybe V1ConfigMapVolumeSource
   -> Maybe V1CSIVolumeSource
   -> Maybe V1DownwardAPIVolumeSource
   -> Maybe V1EmptyDirVolumeSource
   -> Maybe V1FCVolumeSource
   -> Maybe V1FlexVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GitRepoVolumeSource
   -> Maybe V1GlusterfsVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIVolumeSource
   -> Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1ConfigMapVolumeSource)
-> Parser
     (Maybe V1CSIVolumeSource
      -> Maybe V1DownwardAPIVolumeSource
      -> Maybe V1EmptyDirVolumeSource
      -> Maybe V1FCVolumeSource
      -> Maybe V1FlexVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GitRepoVolumeSource
      -> Maybe V1GlusterfsVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIVolumeSource
      -> Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ConfigMapVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"configMap")
      Parser
  (Maybe V1CSIVolumeSource
   -> Maybe V1DownwardAPIVolumeSource
   -> Maybe V1EmptyDirVolumeSource
   -> Maybe V1FCVolumeSource
   -> Maybe V1FlexVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GitRepoVolumeSource
   -> Maybe V1GlusterfsVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIVolumeSource
   -> Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1CSIVolumeSource)
-> Parser
     (Maybe V1DownwardAPIVolumeSource
      -> Maybe V1EmptyDirVolumeSource
      -> Maybe V1FCVolumeSource
      -> Maybe V1FlexVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GitRepoVolumeSource
      -> Maybe V1GlusterfsVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIVolumeSource
      -> Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1CSIVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"csi")
      Parser
  (Maybe V1DownwardAPIVolumeSource
   -> Maybe V1EmptyDirVolumeSource
   -> Maybe V1FCVolumeSource
   -> Maybe V1FlexVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GitRepoVolumeSource
   -> Maybe V1GlusterfsVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIVolumeSource
   -> Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1DownwardAPIVolumeSource)
-> Parser
     (Maybe V1EmptyDirVolumeSource
      -> Maybe V1FCVolumeSource
      -> Maybe V1FlexVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GitRepoVolumeSource
      -> Maybe V1GlusterfsVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIVolumeSource
      -> Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1DownwardAPIVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"downwardAPI")
      Parser
  (Maybe V1EmptyDirVolumeSource
   -> Maybe V1FCVolumeSource
   -> Maybe V1FlexVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GitRepoVolumeSource
   -> Maybe V1GlusterfsVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIVolumeSource
   -> Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1EmptyDirVolumeSource)
-> Parser
     (Maybe V1FCVolumeSource
      -> Maybe V1FlexVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GitRepoVolumeSource
      -> Maybe V1GlusterfsVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIVolumeSource
      -> Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1EmptyDirVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"emptyDir")
      Parser
  (Maybe V1FCVolumeSource
   -> Maybe V1FlexVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GitRepoVolumeSource
   -> Maybe V1GlusterfsVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIVolumeSource
   -> Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1FCVolumeSource)
-> Parser
     (Maybe V1FlexVolumeSource
      -> Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GitRepoVolumeSource
      -> Maybe V1GlusterfsVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIVolumeSource
      -> Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1FCVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fc")
      Parser
  (Maybe V1FlexVolumeSource
   -> Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GitRepoVolumeSource
   -> Maybe V1GlusterfsVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIVolumeSource
   -> Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1FlexVolumeSource)
-> Parser
     (Maybe V1FlockerVolumeSource
      -> Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GitRepoVolumeSource
      -> Maybe V1GlusterfsVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIVolumeSource
      -> Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1FlexVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"flexVolume")
      Parser
  (Maybe V1FlockerVolumeSource
   -> Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GitRepoVolumeSource
   -> Maybe V1GlusterfsVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIVolumeSource
   -> Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1FlockerVolumeSource)
-> Parser
     (Maybe V1GCEPersistentDiskVolumeSource
      -> Maybe V1GitRepoVolumeSource
      -> Maybe V1GlusterfsVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIVolumeSource
      -> Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1FlockerVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"flocker")
      Parser
  (Maybe V1GCEPersistentDiskVolumeSource
   -> Maybe V1GitRepoVolumeSource
   -> Maybe V1GlusterfsVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIVolumeSource
   -> Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1GCEPersistentDiskVolumeSource)
-> Parser
     (Maybe V1GitRepoVolumeSource
      -> Maybe V1GlusterfsVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIVolumeSource
      -> Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1GCEPersistentDiskVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"gcePersistentDisk")
      Parser
  (Maybe V1GitRepoVolumeSource
   -> Maybe V1GlusterfsVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIVolumeSource
   -> Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1GitRepoVolumeSource)
-> Parser
     (Maybe V1GlusterfsVolumeSource
      -> Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIVolumeSource
      -> Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1GitRepoVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"gitRepo")
      Parser
  (Maybe V1GlusterfsVolumeSource
   -> Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIVolumeSource
   -> Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1GlusterfsVolumeSource)
-> Parser
     (Maybe V1HostPathVolumeSource
      -> Maybe V1ISCSIVolumeSource
      -> Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1GlusterfsVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"glusterfs")
      Parser
  (Maybe V1HostPathVolumeSource
   -> Maybe V1ISCSIVolumeSource
   -> Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1HostPathVolumeSource)
-> Parser
     (Maybe V1ISCSIVolumeSource
      -> Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1HostPathVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostPath")
      Parser
  (Maybe V1ISCSIVolumeSource
   -> Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1ISCSIVolumeSource)
-> Parser
     (Text
      -> Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ISCSIVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"iscsi")
      Parser
  (Text
   -> Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser Text
-> Parser
     (Maybe V1NFSVolumeSource
      -> Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Maybe V1NFSVolumeSource
   -> Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1NFSVolumeSource)
-> Parser
     (Maybe V1PersistentVolumeClaimVolumeSource
      -> Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1NFSVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nfs")
      Parser
  (Maybe V1PersistentVolumeClaimVolumeSource
   -> Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1PersistentVolumeClaimVolumeSource)
-> Parser
     (Maybe V1PhotonPersistentDiskVolumeSource
      -> Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe V1PersistentVolumeClaimVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"persistentVolumeClaim")
      Parser
  (Maybe V1PhotonPersistentDiskVolumeSource
   -> Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1PhotonPersistentDiskVolumeSource)
-> Parser
     (Maybe V1PortworxVolumeSource
      -> Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PhotonPersistentDiskVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"photonPersistentDisk")
      Parser
  (Maybe V1PortworxVolumeSource
   -> Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1PortworxVolumeSource)
-> Parser
     (Maybe V1ProjectedVolumeSource
      -> Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PortworxVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"portworxVolume")
      Parser
  (Maybe V1ProjectedVolumeSource
   -> Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1ProjectedVolumeSource)
-> Parser
     (Maybe V1QuobyteVolumeSource
      -> Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ProjectedVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"projected")
      Parser
  (Maybe V1QuobyteVolumeSource
   -> Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1QuobyteVolumeSource)
-> Parser
     (Maybe V1RBDVolumeSource
      -> Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1QuobyteVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"quobyte")
      Parser
  (Maybe V1RBDVolumeSource
   -> Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1RBDVolumeSource)
-> Parser
     (Maybe V1ScaleIOVolumeSource
      -> Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1RBDVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rbd")
      Parser
  (Maybe V1ScaleIOVolumeSource
   -> Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1ScaleIOVolumeSource)
-> Parser
     (Maybe V1SecretVolumeSource
      -> Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource
      -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ScaleIOVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"scaleIO")
      Parser
  (Maybe V1SecretVolumeSource
   -> Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource
   -> V1Volume)
-> Parser (Maybe V1SecretVolumeSource)
-> Parser
     (Maybe V1StorageOSVolumeSource
      -> Maybe V1VsphereVirtualDiskVolumeSource -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SecretVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secret")
      Parser
  (Maybe V1StorageOSVolumeSource
   -> Maybe V1VsphereVirtualDiskVolumeSource -> V1Volume)
-> Parser (Maybe V1StorageOSVolumeSource)
-> Parser (Maybe V1VsphereVirtualDiskVolumeSource -> V1Volume)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1StorageOSVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"storageos")
      Parser (Maybe V1VsphereVirtualDiskVolumeSource -> V1Volume)
-> Parser (Maybe V1VsphereVirtualDiskVolumeSource)
-> Parser V1Volume
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1VsphereVirtualDiskVolumeSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"vsphereVolume")

-- | ToJSON V1Volume
instance A.ToJSON V1Volume where
  toJSON :: V1Volume -> Value
toJSON V1Volume {Maybe V1VsphereVirtualDiskVolumeSource
Maybe V1StorageOSVolumeSource
Maybe V1SecretVolumeSource
Maybe V1ScaleIOVolumeSource
Maybe V1RBDVolumeSource
Maybe V1QuobyteVolumeSource
Maybe V1ProjectedVolumeSource
Maybe V1PortworxVolumeSource
Maybe V1PhotonPersistentDiskVolumeSource
Maybe V1PersistentVolumeClaimVolumeSource
Maybe V1NFSVolumeSource
Maybe V1ISCSIVolumeSource
Maybe V1HostPathVolumeSource
Maybe V1GlusterfsVolumeSource
Maybe V1GitRepoVolumeSource
Maybe V1GCEPersistentDiskVolumeSource
Maybe V1FlockerVolumeSource
Maybe V1FlexVolumeSource
Maybe V1FCVolumeSource
Maybe V1EmptyDirVolumeSource
Maybe V1DownwardAPIVolumeSource
Maybe V1ConfigMapVolumeSource
Maybe V1CinderVolumeSource
Maybe V1CephFSVolumeSource
Maybe V1CSIVolumeSource
Maybe V1AzureFileVolumeSource
Maybe V1AzureDiskVolumeSource
Maybe V1AWSElasticBlockStoreVolumeSource
Text
v1VolumeVsphereVolume :: Maybe V1VsphereVirtualDiskVolumeSource
v1VolumeStorageos :: Maybe V1StorageOSVolumeSource
v1VolumeSecret :: Maybe V1SecretVolumeSource
v1VolumeScaleIo :: Maybe V1ScaleIOVolumeSource
v1VolumeRbd :: Maybe V1RBDVolumeSource
v1VolumeQuobyte :: Maybe V1QuobyteVolumeSource
v1VolumeProjected :: Maybe V1ProjectedVolumeSource
v1VolumePortworxVolume :: Maybe V1PortworxVolumeSource
v1VolumePhotonPersistentDisk :: Maybe V1PhotonPersistentDiskVolumeSource
v1VolumePersistentVolumeClaim :: Maybe V1PersistentVolumeClaimVolumeSource
v1VolumeNfs :: Maybe V1NFSVolumeSource
v1VolumeName :: Text
v1VolumeIscsi :: Maybe V1ISCSIVolumeSource
v1VolumeHostPath :: Maybe V1HostPathVolumeSource
v1VolumeGlusterfs :: Maybe V1GlusterfsVolumeSource
v1VolumeGitRepo :: Maybe V1GitRepoVolumeSource
v1VolumeGcePersistentDisk :: Maybe V1GCEPersistentDiskVolumeSource
v1VolumeFlocker :: Maybe V1FlockerVolumeSource
v1VolumeFlexVolume :: Maybe V1FlexVolumeSource
v1VolumeFc :: Maybe V1FCVolumeSource
v1VolumeEmptyDir :: Maybe V1EmptyDirVolumeSource
v1VolumeDownwardApi :: Maybe V1DownwardAPIVolumeSource
v1VolumeCsi :: Maybe V1CSIVolumeSource
v1VolumeConfigMap :: Maybe V1ConfigMapVolumeSource
v1VolumeCinder :: Maybe V1CinderVolumeSource
v1VolumeCephfs :: Maybe V1CephFSVolumeSource
v1VolumeAzureFile :: Maybe V1AzureFileVolumeSource
v1VolumeAzureDisk :: Maybe V1AzureDiskVolumeSource
v1VolumeAwsElasticBlockStore :: Maybe V1AWSElasticBlockStoreVolumeSource
v1VolumeVsphereVolume :: V1Volume -> Maybe V1VsphereVirtualDiskVolumeSource
v1VolumeStorageos :: V1Volume -> Maybe V1StorageOSVolumeSource
v1VolumeSecret :: V1Volume -> Maybe V1SecretVolumeSource
v1VolumeScaleIo :: V1Volume -> Maybe V1ScaleIOVolumeSource
v1VolumeRbd :: V1Volume -> Maybe V1RBDVolumeSource
v1VolumeQuobyte :: V1Volume -> Maybe V1QuobyteVolumeSource
v1VolumeProjected :: V1Volume -> Maybe V1ProjectedVolumeSource
v1VolumePortworxVolume :: V1Volume -> Maybe V1PortworxVolumeSource
v1VolumePhotonPersistentDisk :: V1Volume -> Maybe V1PhotonPersistentDiskVolumeSource
v1VolumePersistentVolumeClaim :: V1Volume -> Maybe V1PersistentVolumeClaimVolumeSource
v1VolumeNfs :: V1Volume -> Maybe V1NFSVolumeSource
v1VolumeName :: V1Volume -> Text
v1VolumeIscsi :: V1Volume -> Maybe V1ISCSIVolumeSource
v1VolumeHostPath :: V1Volume -> Maybe V1HostPathVolumeSource
v1VolumeGlusterfs :: V1Volume -> Maybe V1GlusterfsVolumeSource
v1VolumeGitRepo :: V1Volume -> Maybe V1GitRepoVolumeSource
v1VolumeGcePersistentDisk :: V1Volume -> Maybe V1GCEPersistentDiskVolumeSource
v1VolumeFlocker :: V1Volume -> Maybe V1FlockerVolumeSource
v1VolumeFlexVolume :: V1Volume -> Maybe V1FlexVolumeSource
v1VolumeFc :: V1Volume -> Maybe V1FCVolumeSource
v1VolumeEmptyDir :: V1Volume -> Maybe V1EmptyDirVolumeSource
v1VolumeDownwardApi :: V1Volume -> Maybe V1DownwardAPIVolumeSource
v1VolumeCsi :: V1Volume -> Maybe V1CSIVolumeSource
v1VolumeConfigMap :: V1Volume -> Maybe V1ConfigMapVolumeSource
v1VolumeCinder :: V1Volume -> Maybe V1CinderVolumeSource
v1VolumeCephfs :: V1Volume -> Maybe V1CephFSVolumeSource
v1VolumeAzureFile :: V1Volume -> Maybe V1AzureFileVolumeSource
v1VolumeAzureDisk :: V1Volume -> Maybe V1AzureDiskVolumeSource
v1VolumeAwsElasticBlockStore :: V1Volume -> Maybe V1AWSElasticBlockStoreVolumeSource
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"awsElasticBlockStore" Text -> Maybe V1AWSElasticBlockStoreVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1AWSElasticBlockStoreVolumeSource
v1VolumeAwsElasticBlockStore
      , Text
"azureDisk" Text -> Maybe V1AzureDiskVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1AzureDiskVolumeSource
v1VolumeAzureDisk
      , Text
"azureFile" Text -> Maybe V1AzureFileVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1AzureFileVolumeSource
v1VolumeAzureFile
      , Text
"cephfs" Text -> Maybe V1CephFSVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1CephFSVolumeSource
v1VolumeCephfs
      , Text
"cinder" Text -> Maybe V1CinderVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1CinderVolumeSource
v1VolumeCinder
      , Text
"configMap" Text -> Maybe V1ConfigMapVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ConfigMapVolumeSource
v1VolumeConfigMap
      , Text
"csi" Text -> Maybe V1CSIVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1CSIVolumeSource
v1VolumeCsi
      , Text
"downwardAPI" Text -> Maybe V1DownwardAPIVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1DownwardAPIVolumeSource
v1VolumeDownwardApi
      , Text
"emptyDir" Text -> Maybe V1EmptyDirVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1EmptyDirVolumeSource
v1VolumeEmptyDir
      , Text
"fc" Text -> Maybe V1FCVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1FCVolumeSource
v1VolumeFc
      , Text
"flexVolume" Text -> Maybe V1FlexVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1FlexVolumeSource
v1VolumeFlexVolume
      , Text
"flocker" Text -> Maybe V1FlockerVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1FlockerVolumeSource
v1VolumeFlocker
      , Text
"gcePersistentDisk" Text -> Maybe V1GCEPersistentDiskVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1GCEPersistentDiskVolumeSource
v1VolumeGcePersistentDisk
      , Text
"gitRepo" Text -> Maybe V1GitRepoVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1GitRepoVolumeSource
v1VolumeGitRepo
      , Text
"glusterfs" Text -> Maybe V1GlusterfsVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1GlusterfsVolumeSource
v1VolumeGlusterfs
      , Text
"hostPath" Text -> Maybe V1HostPathVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1HostPathVolumeSource
v1VolumeHostPath
      , Text
"iscsi" Text -> Maybe V1ISCSIVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ISCSIVolumeSource
v1VolumeIscsi
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1VolumeName
      , Text
"nfs" Text -> Maybe V1NFSVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NFSVolumeSource
v1VolumeNfs
      , Text
"persistentVolumeClaim" Text -> Maybe V1PersistentVolumeClaimVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PersistentVolumeClaimVolumeSource
v1VolumePersistentVolumeClaim
      , Text
"photonPersistentDisk" Text -> Maybe V1PhotonPersistentDiskVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PhotonPersistentDiskVolumeSource
v1VolumePhotonPersistentDisk
      , Text
"portworxVolume" Text -> Maybe V1PortworxVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PortworxVolumeSource
v1VolumePortworxVolume
      , Text
"projected" Text -> Maybe V1ProjectedVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ProjectedVolumeSource
v1VolumeProjected
      , Text
"quobyte" Text -> Maybe V1QuobyteVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1QuobyteVolumeSource
v1VolumeQuobyte
      , Text
"rbd" Text -> Maybe V1RBDVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1RBDVolumeSource
v1VolumeRbd
      , Text
"scaleIO" Text -> Maybe V1ScaleIOVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ScaleIOVolumeSource
v1VolumeScaleIo
      , Text
"secret" Text -> Maybe V1SecretVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SecretVolumeSource
v1VolumeSecret
      , Text
"storageos" Text -> Maybe V1StorageOSVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1StorageOSVolumeSource
v1VolumeStorageos
      , Text
"vsphereVolume" Text -> Maybe V1VsphereVirtualDiskVolumeSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1VsphereVirtualDiskVolumeSource
v1VolumeVsphereVolume
      ]


-- | Construct a value of type 'V1Volume' (by applying it's required fields, if any)
mkV1Volume
  :: Text -- ^ 'v1VolumeName': Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
  -> V1Volume
mkV1Volume :: Text -> V1Volume
mkV1Volume Text
v1VolumeName =
  V1Volume :: Maybe V1AWSElasticBlockStoreVolumeSource
-> Maybe V1AzureDiskVolumeSource
-> Maybe V1AzureFileVolumeSource
-> Maybe V1CephFSVolumeSource
-> Maybe V1CinderVolumeSource
-> Maybe V1ConfigMapVolumeSource
-> Maybe V1CSIVolumeSource
-> Maybe V1DownwardAPIVolumeSource
-> Maybe V1EmptyDirVolumeSource
-> Maybe V1FCVolumeSource
-> Maybe V1FlexVolumeSource
-> Maybe V1FlockerVolumeSource
-> Maybe V1GCEPersistentDiskVolumeSource
-> Maybe V1GitRepoVolumeSource
-> Maybe V1GlusterfsVolumeSource
-> Maybe V1HostPathVolumeSource
-> Maybe V1ISCSIVolumeSource
-> Text
-> Maybe V1NFSVolumeSource
-> Maybe V1PersistentVolumeClaimVolumeSource
-> Maybe V1PhotonPersistentDiskVolumeSource
-> Maybe V1PortworxVolumeSource
-> Maybe V1ProjectedVolumeSource
-> Maybe V1QuobyteVolumeSource
-> Maybe V1RBDVolumeSource
-> Maybe V1ScaleIOVolumeSource
-> Maybe V1SecretVolumeSource
-> Maybe V1StorageOSVolumeSource
-> Maybe V1VsphereVirtualDiskVolumeSource
-> V1Volume
V1Volume
  { v1VolumeAwsElasticBlockStore :: Maybe V1AWSElasticBlockStoreVolumeSource
v1VolumeAwsElasticBlockStore = Maybe V1AWSElasticBlockStoreVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeAzureDisk :: Maybe V1AzureDiskVolumeSource
v1VolumeAzureDisk = Maybe V1AzureDiskVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeAzureFile :: Maybe V1AzureFileVolumeSource
v1VolumeAzureFile = Maybe V1AzureFileVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeCephfs :: Maybe V1CephFSVolumeSource
v1VolumeCephfs = Maybe V1CephFSVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeCinder :: Maybe V1CinderVolumeSource
v1VolumeCinder = Maybe V1CinderVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeConfigMap :: Maybe V1ConfigMapVolumeSource
v1VolumeConfigMap = Maybe V1ConfigMapVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeCsi :: Maybe V1CSIVolumeSource
v1VolumeCsi = Maybe V1CSIVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeDownwardApi :: Maybe V1DownwardAPIVolumeSource
v1VolumeDownwardApi = Maybe V1DownwardAPIVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeEmptyDir :: Maybe V1EmptyDirVolumeSource
v1VolumeEmptyDir = Maybe V1EmptyDirVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeFc :: Maybe V1FCVolumeSource
v1VolumeFc = Maybe V1FCVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeFlexVolume :: Maybe V1FlexVolumeSource
v1VolumeFlexVolume = Maybe V1FlexVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeFlocker :: Maybe V1FlockerVolumeSource
v1VolumeFlocker = Maybe V1FlockerVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeGcePersistentDisk :: Maybe V1GCEPersistentDiskVolumeSource
v1VolumeGcePersistentDisk = Maybe V1GCEPersistentDiskVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeGitRepo :: Maybe V1GitRepoVolumeSource
v1VolumeGitRepo = Maybe V1GitRepoVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeGlusterfs :: Maybe V1GlusterfsVolumeSource
v1VolumeGlusterfs = Maybe V1GlusterfsVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeHostPath :: Maybe V1HostPathVolumeSource
v1VolumeHostPath = Maybe V1HostPathVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeIscsi :: Maybe V1ISCSIVolumeSource
v1VolumeIscsi = Maybe V1ISCSIVolumeSource
forall a. Maybe a
Nothing
  , Text
v1VolumeName :: Text
v1VolumeName :: Text
v1VolumeName
  , v1VolumeNfs :: Maybe V1NFSVolumeSource
v1VolumeNfs = Maybe V1NFSVolumeSource
forall a. Maybe a
Nothing
  , v1VolumePersistentVolumeClaim :: Maybe V1PersistentVolumeClaimVolumeSource
v1VolumePersistentVolumeClaim = Maybe V1PersistentVolumeClaimVolumeSource
forall a. Maybe a
Nothing
  , v1VolumePhotonPersistentDisk :: Maybe V1PhotonPersistentDiskVolumeSource
v1VolumePhotonPersistentDisk = Maybe V1PhotonPersistentDiskVolumeSource
forall a. Maybe a
Nothing
  , v1VolumePortworxVolume :: Maybe V1PortworxVolumeSource
v1VolumePortworxVolume = Maybe V1PortworxVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeProjected :: Maybe V1ProjectedVolumeSource
v1VolumeProjected = Maybe V1ProjectedVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeQuobyte :: Maybe V1QuobyteVolumeSource
v1VolumeQuobyte = Maybe V1QuobyteVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeRbd :: Maybe V1RBDVolumeSource
v1VolumeRbd = Maybe V1RBDVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeScaleIo :: Maybe V1ScaleIOVolumeSource
v1VolumeScaleIo = Maybe V1ScaleIOVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeSecret :: Maybe V1SecretVolumeSource
v1VolumeSecret = Maybe V1SecretVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeStorageos :: Maybe V1StorageOSVolumeSource
v1VolumeStorageos = Maybe V1StorageOSVolumeSource
forall a. Maybe a
Nothing
  , v1VolumeVsphereVolume :: Maybe V1VsphereVirtualDiskVolumeSource
v1VolumeVsphereVolume = Maybe V1VsphereVirtualDiskVolumeSource
forall a. Maybe a
Nothing
  }

-- ** V1VolumeAttachment
-- | V1VolumeAttachment
-- VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.  VolumeAttachment objects are non-namespaced.
data V1VolumeAttachment = V1VolumeAttachment
  { V1VolumeAttachment -> Maybe Text
v1VolumeAttachmentApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1VolumeAttachment -> Maybe Text
v1VolumeAttachmentKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1VolumeAttachment -> Maybe V1ObjectMeta
v1VolumeAttachmentMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1VolumeAttachment -> V1VolumeAttachmentSpec
v1VolumeAttachmentSpec :: !(V1VolumeAttachmentSpec) -- ^ /Required/ "spec"
  , V1VolumeAttachment -> Maybe V1VolumeAttachmentStatus
v1VolumeAttachmentStatus :: !(Maybe V1VolumeAttachmentStatus) -- ^ "status"
  } deriving (Int -> V1VolumeAttachment -> ShowS
[V1VolumeAttachment] -> ShowS
V1VolumeAttachment -> String
(Int -> V1VolumeAttachment -> ShowS)
-> (V1VolumeAttachment -> String)
-> ([V1VolumeAttachment] -> ShowS)
-> Show V1VolumeAttachment
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1VolumeAttachment] -> ShowS
$cshowList :: [V1VolumeAttachment] -> ShowS
show :: V1VolumeAttachment -> String
$cshow :: V1VolumeAttachment -> String
showsPrec :: Int -> V1VolumeAttachment -> ShowS
$cshowsPrec :: Int -> V1VolumeAttachment -> ShowS
P.Show, V1VolumeAttachment -> V1VolumeAttachment -> Bool
(V1VolumeAttachment -> V1VolumeAttachment -> Bool)
-> (V1VolumeAttachment -> V1VolumeAttachment -> Bool)
-> Eq V1VolumeAttachment
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1VolumeAttachment -> V1VolumeAttachment -> Bool
$c/= :: V1VolumeAttachment -> V1VolumeAttachment -> Bool
== :: V1VolumeAttachment -> V1VolumeAttachment -> Bool
$c== :: V1VolumeAttachment -> V1VolumeAttachment -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1VolumeAttachment
instance A.FromJSON V1VolumeAttachment where
  parseJSON :: Value -> Parser V1VolumeAttachment
parseJSON = String
-> (Object -> Parser V1VolumeAttachment)
-> Value
-> Parser V1VolumeAttachment
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1VolumeAttachment" ((Object -> Parser V1VolumeAttachment)
 -> Value -> Parser V1VolumeAttachment)
-> (Object -> Parser V1VolumeAttachment)
-> Value
-> Parser V1VolumeAttachment
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1VolumeAttachmentSpec
-> Maybe V1VolumeAttachmentStatus
-> V1VolumeAttachment
V1VolumeAttachment
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1VolumeAttachmentSpec
 -> Maybe V1VolumeAttachmentStatus
 -> V1VolumeAttachment)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1VolumeAttachmentSpec
      -> Maybe V1VolumeAttachmentStatus
      -> V1VolumeAttachment)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1VolumeAttachmentSpec
   -> Maybe V1VolumeAttachmentStatus
   -> V1VolumeAttachment)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1VolumeAttachmentSpec
      -> Maybe V1VolumeAttachmentStatus
      -> V1VolumeAttachment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1VolumeAttachmentSpec
   -> Maybe V1VolumeAttachmentStatus
   -> V1VolumeAttachment)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1VolumeAttachmentSpec
      -> Maybe V1VolumeAttachmentStatus -> V1VolumeAttachment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1VolumeAttachmentSpec
   -> Maybe V1VolumeAttachmentStatus -> V1VolumeAttachment)
-> Parser V1VolumeAttachmentSpec
-> Parser (Maybe V1VolumeAttachmentStatus -> V1VolumeAttachment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1VolumeAttachmentSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")
      Parser (Maybe V1VolumeAttachmentStatus -> V1VolumeAttachment)
-> Parser (Maybe V1VolumeAttachmentStatus)
-> Parser V1VolumeAttachment
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1VolumeAttachmentStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1VolumeAttachment
instance A.ToJSON V1VolumeAttachment where
  toJSON :: V1VolumeAttachment -> Value
toJSON V1VolumeAttachment {Maybe Text
Maybe V1VolumeAttachmentStatus
Maybe V1ObjectMeta
V1VolumeAttachmentSpec
v1VolumeAttachmentStatus :: Maybe V1VolumeAttachmentStatus
v1VolumeAttachmentSpec :: V1VolumeAttachmentSpec
v1VolumeAttachmentMetadata :: Maybe V1ObjectMeta
v1VolumeAttachmentKind :: Maybe Text
v1VolumeAttachmentApiVersion :: Maybe Text
v1VolumeAttachmentStatus :: V1VolumeAttachment -> Maybe V1VolumeAttachmentStatus
v1VolumeAttachmentSpec :: V1VolumeAttachment -> V1VolumeAttachmentSpec
v1VolumeAttachmentMetadata :: V1VolumeAttachment -> Maybe V1ObjectMeta
v1VolumeAttachmentKind :: V1VolumeAttachment -> Maybe Text
v1VolumeAttachmentApiVersion :: V1VolumeAttachment -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1VolumeAttachmentApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1VolumeAttachmentKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1VolumeAttachmentMetadata
      , Text
"spec" Text -> V1VolumeAttachmentSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1VolumeAttachmentSpec
v1VolumeAttachmentSpec
      , Text
"status" Text -> Maybe V1VolumeAttachmentStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1VolumeAttachmentStatus
v1VolumeAttachmentStatus
      ]


-- | Construct a value of type 'V1VolumeAttachment' (by applying it's required fields, if any)
mkV1VolumeAttachment
  :: V1VolumeAttachmentSpec -- ^ 'v1VolumeAttachmentSpec' 
  -> V1VolumeAttachment
mkV1VolumeAttachment :: V1VolumeAttachmentSpec -> V1VolumeAttachment
mkV1VolumeAttachment V1VolumeAttachmentSpec
v1VolumeAttachmentSpec =
  V1VolumeAttachment :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1VolumeAttachmentSpec
-> Maybe V1VolumeAttachmentStatus
-> V1VolumeAttachment
V1VolumeAttachment
  { v1VolumeAttachmentApiVersion :: Maybe Text
v1VolumeAttachmentApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1VolumeAttachmentKind :: Maybe Text
v1VolumeAttachmentKind = Maybe Text
forall a. Maybe a
Nothing
  , v1VolumeAttachmentMetadata :: Maybe V1ObjectMeta
v1VolumeAttachmentMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1VolumeAttachmentSpec
v1VolumeAttachmentSpec :: V1VolumeAttachmentSpec
v1VolumeAttachmentSpec :: V1VolumeAttachmentSpec
v1VolumeAttachmentSpec
  , v1VolumeAttachmentStatus :: Maybe V1VolumeAttachmentStatus
v1VolumeAttachmentStatus = Maybe V1VolumeAttachmentStatus
forall a. Maybe a
Nothing
  }

-- ** V1VolumeAttachmentList
-- | V1VolumeAttachmentList
-- VolumeAttachmentList is a collection of VolumeAttachment objects.
data V1VolumeAttachmentList = V1VolumeAttachmentList
  { V1VolumeAttachmentList -> Maybe Text
v1VolumeAttachmentListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1VolumeAttachmentList -> [V1VolumeAttachment]
v1VolumeAttachmentListItems :: !([V1VolumeAttachment]) -- ^ /Required/ "items" - Items is the list of VolumeAttachments
  , V1VolumeAttachmentList -> Maybe Text
v1VolumeAttachmentListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1VolumeAttachmentList -> Maybe V1ListMeta
v1VolumeAttachmentListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1VolumeAttachmentList -> ShowS
[V1VolumeAttachmentList] -> ShowS
V1VolumeAttachmentList -> String
(Int -> V1VolumeAttachmentList -> ShowS)
-> (V1VolumeAttachmentList -> String)
-> ([V1VolumeAttachmentList] -> ShowS)
-> Show V1VolumeAttachmentList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1VolumeAttachmentList] -> ShowS
$cshowList :: [V1VolumeAttachmentList] -> ShowS
show :: V1VolumeAttachmentList -> String
$cshow :: V1VolumeAttachmentList -> String
showsPrec :: Int -> V1VolumeAttachmentList -> ShowS
$cshowsPrec :: Int -> V1VolumeAttachmentList -> ShowS
P.Show, V1VolumeAttachmentList -> V1VolumeAttachmentList -> Bool
(V1VolumeAttachmentList -> V1VolumeAttachmentList -> Bool)
-> (V1VolumeAttachmentList -> V1VolumeAttachmentList -> Bool)
-> Eq V1VolumeAttachmentList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1VolumeAttachmentList -> V1VolumeAttachmentList -> Bool
$c/= :: V1VolumeAttachmentList -> V1VolumeAttachmentList -> Bool
== :: V1VolumeAttachmentList -> V1VolumeAttachmentList -> Bool
$c== :: V1VolumeAttachmentList -> V1VolumeAttachmentList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1VolumeAttachmentList
instance A.FromJSON V1VolumeAttachmentList where
  parseJSON :: Value -> Parser V1VolumeAttachmentList
parseJSON = String
-> (Object -> Parser V1VolumeAttachmentList)
-> Value
-> Parser V1VolumeAttachmentList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1VolumeAttachmentList" ((Object -> Parser V1VolumeAttachmentList)
 -> Value -> Parser V1VolumeAttachmentList)
-> (Object -> Parser V1VolumeAttachmentList)
-> Value
-> Parser V1VolumeAttachmentList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1VolumeAttachment]
-> Maybe Text
-> Maybe V1ListMeta
-> V1VolumeAttachmentList
V1VolumeAttachmentList
      (Maybe Text
 -> [V1VolumeAttachment]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1VolumeAttachmentList)
-> Parser (Maybe Text)
-> Parser
     ([V1VolumeAttachment]
      -> Maybe Text -> Maybe V1ListMeta -> V1VolumeAttachmentList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1VolumeAttachment]
   -> Maybe Text -> Maybe V1ListMeta -> V1VolumeAttachmentList)
-> Parser [V1VolumeAttachment]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1VolumeAttachmentList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1VolumeAttachment]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1VolumeAttachmentList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1VolumeAttachmentList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1VolumeAttachmentList)
-> Parser (Maybe V1ListMeta) -> Parser V1VolumeAttachmentList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1VolumeAttachmentList
instance A.ToJSON V1VolumeAttachmentList where
  toJSON :: V1VolumeAttachmentList -> Value
toJSON V1VolumeAttachmentList {[V1VolumeAttachment]
Maybe Text
Maybe V1ListMeta
v1VolumeAttachmentListMetadata :: Maybe V1ListMeta
v1VolumeAttachmentListKind :: Maybe Text
v1VolumeAttachmentListItems :: [V1VolumeAttachment]
v1VolumeAttachmentListApiVersion :: Maybe Text
v1VolumeAttachmentListMetadata :: V1VolumeAttachmentList -> Maybe V1ListMeta
v1VolumeAttachmentListKind :: V1VolumeAttachmentList -> Maybe Text
v1VolumeAttachmentListItems :: V1VolumeAttachmentList -> [V1VolumeAttachment]
v1VolumeAttachmentListApiVersion :: V1VolumeAttachmentList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1VolumeAttachmentListApiVersion
      , Text
"items" Text -> [V1VolumeAttachment] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1VolumeAttachment]
v1VolumeAttachmentListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1VolumeAttachmentListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1VolumeAttachmentListMetadata
      ]


-- | Construct a value of type 'V1VolumeAttachmentList' (by applying it's required fields, if any)
mkV1VolumeAttachmentList
  :: [V1VolumeAttachment] -- ^ 'v1VolumeAttachmentListItems': Items is the list of VolumeAttachments
  -> V1VolumeAttachmentList
mkV1VolumeAttachmentList :: [V1VolumeAttachment] -> V1VolumeAttachmentList
mkV1VolumeAttachmentList [V1VolumeAttachment]
v1VolumeAttachmentListItems =
  V1VolumeAttachmentList :: Maybe Text
-> [V1VolumeAttachment]
-> Maybe Text
-> Maybe V1ListMeta
-> V1VolumeAttachmentList
V1VolumeAttachmentList
  { v1VolumeAttachmentListApiVersion :: Maybe Text
v1VolumeAttachmentListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1VolumeAttachment]
v1VolumeAttachmentListItems :: [V1VolumeAttachment]
v1VolumeAttachmentListItems :: [V1VolumeAttachment]
v1VolumeAttachmentListItems
  , v1VolumeAttachmentListKind :: Maybe Text
v1VolumeAttachmentListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1VolumeAttachmentListMetadata :: Maybe V1ListMeta
v1VolumeAttachmentListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1VolumeAttachmentSource
-- | V1VolumeAttachmentSource
-- VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.
data V1VolumeAttachmentSource = V1VolumeAttachmentSource
  { V1VolumeAttachmentSource -> Maybe V1PersistentVolumeSpec
v1VolumeAttachmentSourceInlineVolumeSpec :: !(Maybe V1PersistentVolumeSpec) -- ^ "inlineVolumeSpec"
  , V1VolumeAttachmentSource -> Maybe Text
v1VolumeAttachmentSourcePersistentVolumeName :: !(Maybe Text) -- ^ "persistentVolumeName" - Name of the persistent volume to attach.
  } deriving (Int -> V1VolumeAttachmentSource -> ShowS
[V1VolumeAttachmentSource] -> ShowS
V1VolumeAttachmentSource -> String
(Int -> V1VolumeAttachmentSource -> ShowS)
-> (V1VolumeAttachmentSource -> String)
-> ([V1VolumeAttachmentSource] -> ShowS)
-> Show V1VolumeAttachmentSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1VolumeAttachmentSource] -> ShowS
$cshowList :: [V1VolumeAttachmentSource] -> ShowS
show :: V1VolumeAttachmentSource -> String
$cshow :: V1VolumeAttachmentSource -> String
showsPrec :: Int -> V1VolumeAttachmentSource -> ShowS
$cshowsPrec :: Int -> V1VolumeAttachmentSource -> ShowS
P.Show, V1VolumeAttachmentSource -> V1VolumeAttachmentSource -> Bool
(V1VolumeAttachmentSource -> V1VolumeAttachmentSource -> Bool)
-> (V1VolumeAttachmentSource -> V1VolumeAttachmentSource -> Bool)
-> Eq V1VolumeAttachmentSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1VolumeAttachmentSource -> V1VolumeAttachmentSource -> Bool
$c/= :: V1VolumeAttachmentSource -> V1VolumeAttachmentSource -> Bool
== :: V1VolumeAttachmentSource -> V1VolumeAttachmentSource -> Bool
$c== :: V1VolumeAttachmentSource -> V1VolumeAttachmentSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1VolumeAttachmentSource
instance A.FromJSON V1VolumeAttachmentSource where
  parseJSON :: Value -> Parser V1VolumeAttachmentSource
parseJSON = String
-> (Object -> Parser V1VolumeAttachmentSource)
-> Value
-> Parser V1VolumeAttachmentSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1VolumeAttachmentSource" ((Object -> Parser V1VolumeAttachmentSource)
 -> Value -> Parser V1VolumeAttachmentSource)
-> (Object -> Parser V1VolumeAttachmentSource)
-> Value
-> Parser V1VolumeAttachmentSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1PersistentVolumeSpec
-> Maybe Text -> V1VolumeAttachmentSource
V1VolumeAttachmentSource
      (Maybe V1PersistentVolumeSpec
 -> Maybe Text -> V1VolumeAttachmentSource)
-> Parser (Maybe V1PersistentVolumeSpec)
-> Parser (Maybe Text -> V1VolumeAttachmentSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1PersistentVolumeSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"inlineVolumeSpec")
      Parser (Maybe Text -> V1VolumeAttachmentSource)
-> Parser (Maybe Text) -> Parser V1VolumeAttachmentSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"persistentVolumeName")

-- | ToJSON V1VolumeAttachmentSource
instance A.ToJSON V1VolumeAttachmentSource where
  toJSON :: V1VolumeAttachmentSource -> Value
toJSON V1VolumeAttachmentSource {Maybe Text
Maybe V1PersistentVolumeSpec
v1VolumeAttachmentSourcePersistentVolumeName :: Maybe Text
v1VolumeAttachmentSourceInlineVolumeSpec :: Maybe V1PersistentVolumeSpec
v1VolumeAttachmentSourcePersistentVolumeName :: V1VolumeAttachmentSource -> Maybe Text
v1VolumeAttachmentSourceInlineVolumeSpec :: V1VolumeAttachmentSource -> Maybe V1PersistentVolumeSpec
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"inlineVolumeSpec" Text -> Maybe V1PersistentVolumeSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PersistentVolumeSpec
v1VolumeAttachmentSourceInlineVolumeSpec
      , Text
"persistentVolumeName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1VolumeAttachmentSourcePersistentVolumeName
      ]


-- | Construct a value of type 'V1VolumeAttachmentSource' (by applying it's required fields, if any)
mkV1VolumeAttachmentSource
  :: V1VolumeAttachmentSource
mkV1VolumeAttachmentSource :: V1VolumeAttachmentSource
mkV1VolumeAttachmentSource =
  V1VolumeAttachmentSource :: Maybe V1PersistentVolumeSpec
-> Maybe Text -> V1VolumeAttachmentSource
V1VolumeAttachmentSource
  { v1VolumeAttachmentSourceInlineVolumeSpec :: Maybe V1PersistentVolumeSpec
v1VolumeAttachmentSourceInlineVolumeSpec = Maybe V1PersistentVolumeSpec
forall a. Maybe a
Nothing
  , v1VolumeAttachmentSourcePersistentVolumeName :: Maybe Text
v1VolumeAttachmentSourcePersistentVolumeName = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1VolumeAttachmentSpec
-- | V1VolumeAttachmentSpec
-- VolumeAttachmentSpec is the specification of a VolumeAttachment request.
data V1VolumeAttachmentSpec = V1VolumeAttachmentSpec
  { V1VolumeAttachmentSpec -> Text
v1VolumeAttachmentSpecAttacher :: !(Text) -- ^ /Required/ "attacher" - Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().
  , V1VolumeAttachmentSpec -> Text
v1VolumeAttachmentSpecNodeName :: !(Text) -- ^ /Required/ "nodeName" - The node that the volume should be attached to.
  , V1VolumeAttachmentSpec -> V1VolumeAttachmentSource
v1VolumeAttachmentSpecSource :: !(V1VolumeAttachmentSource) -- ^ /Required/ "source"
  } deriving (Int -> V1VolumeAttachmentSpec -> ShowS
[V1VolumeAttachmentSpec] -> ShowS
V1VolumeAttachmentSpec -> String
(Int -> V1VolumeAttachmentSpec -> ShowS)
-> (V1VolumeAttachmentSpec -> String)
-> ([V1VolumeAttachmentSpec] -> ShowS)
-> Show V1VolumeAttachmentSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1VolumeAttachmentSpec] -> ShowS
$cshowList :: [V1VolumeAttachmentSpec] -> ShowS
show :: V1VolumeAttachmentSpec -> String
$cshow :: V1VolumeAttachmentSpec -> String
showsPrec :: Int -> V1VolumeAttachmentSpec -> ShowS
$cshowsPrec :: Int -> V1VolumeAttachmentSpec -> ShowS
P.Show, V1VolumeAttachmentSpec -> V1VolumeAttachmentSpec -> Bool
(V1VolumeAttachmentSpec -> V1VolumeAttachmentSpec -> Bool)
-> (V1VolumeAttachmentSpec -> V1VolumeAttachmentSpec -> Bool)
-> Eq V1VolumeAttachmentSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1VolumeAttachmentSpec -> V1VolumeAttachmentSpec -> Bool
$c/= :: V1VolumeAttachmentSpec -> V1VolumeAttachmentSpec -> Bool
== :: V1VolumeAttachmentSpec -> V1VolumeAttachmentSpec -> Bool
$c== :: V1VolumeAttachmentSpec -> V1VolumeAttachmentSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1VolumeAttachmentSpec
instance A.FromJSON V1VolumeAttachmentSpec where
  parseJSON :: Value -> Parser V1VolumeAttachmentSpec
parseJSON = String
-> (Object -> Parser V1VolumeAttachmentSpec)
-> Value
-> Parser V1VolumeAttachmentSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1VolumeAttachmentSpec" ((Object -> Parser V1VolumeAttachmentSpec)
 -> Value -> Parser V1VolumeAttachmentSpec)
-> (Object -> Parser V1VolumeAttachmentSpec)
-> Value
-> Parser V1VolumeAttachmentSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> V1VolumeAttachmentSource -> V1VolumeAttachmentSpec
V1VolumeAttachmentSpec
      (Text
 -> Text -> V1VolumeAttachmentSource -> V1VolumeAttachmentSpec)
-> Parser Text
-> Parser
     (Text -> V1VolumeAttachmentSource -> V1VolumeAttachmentSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"attacher")
      Parser (Text -> V1VolumeAttachmentSource -> V1VolumeAttachmentSpec)
-> Parser Text
-> Parser (V1VolumeAttachmentSource -> V1VolumeAttachmentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"nodeName")
      Parser (V1VolumeAttachmentSource -> V1VolumeAttachmentSpec)
-> Parser V1VolumeAttachmentSource -> Parser V1VolumeAttachmentSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1VolumeAttachmentSource
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"source")

-- | ToJSON V1VolumeAttachmentSpec
instance A.ToJSON V1VolumeAttachmentSpec where
  toJSON :: V1VolumeAttachmentSpec -> Value
toJSON V1VolumeAttachmentSpec {Text
V1VolumeAttachmentSource
v1VolumeAttachmentSpecSource :: V1VolumeAttachmentSource
v1VolumeAttachmentSpecNodeName :: Text
v1VolumeAttachmentSpecAttacher :: Text
v1VolumeAttachmentSpecSource :: V1VolumeAttachmentSpec -> V1VolumeAttachmentSource
v1VolumeAttachmentSpecNodeName :: V1VolumeAttachmentSpec -> Text
v1VolumeAttachmentSpecAttacher :: V1VolumeAttachmentSpec -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"attacher" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1VolumeAttachmentSpecAttacher
      , Text
"nodeName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1VolumeAttachmentSpecNodeName
      , Text
"source" Text -> V1VolumeAttachmentSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1VolumeAttachmentSource
v1VolumeAttachmentSpecSource
      ]


-- | Construct a value of type 'V1VolumeAttachmentSpec' (by applying it's required fields, if any)
mkV1VolumeAttachmentSpec
  :: Text -- ^ 'v1VolumeAttachmentSpecAttacher': Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().
  -> Text -- ^ 'v1VolumeAttachmentSpecNodeName': The node that the volume should be attached to.
  -> V1VolumeAttachmentSource -- ^ 'v1VolumeAttachmentSpecSource' 
  -> V1VolumeAttachmentSpec
mkV1VolumeAttachmentSpec :: Text -> Text -> V1VolumeAttachmentSource -> V1VolumeAttachmentSpec
mkV1VolumeAttachmentSpec Text
v1VolumeAttachmentSpecAttacher Text
v1VolumeAttachmentSpecNodeName V1VolumeAttachmentSource
v1VolumeAttachmentSpecSource =
  V1VolumeAttachmentSpec :: Text -> Text -> V1VolumeAttachmentSource -> V1VolumeAttachmentSpec
V1VolumeAttachmentSpec
  { Text
v1VolumeAttachmentSpecAttacher :: Text
v1VolumeAttachmentSpecAttacher :: Text
v1VolumeAttachmentSpecAttacher
  , Text
v1VolumeAttachmentSpecNodeName :: Text
v1VolumeAttachmentSpecNodeName :: Text
v1VolumeAttachmentSpecNodeName
  , V1VolumeAttachmentSource
v1VolumeAttachmentSpecSource :: V1VolumeAttachmentSource
v1VolumeAttachmentSpecSource :: V1VolumeAttachmentSource
v1VolumeAttachmentSpecSource
  }

-- ** V1VolumeAttachmentStatus
-- | V1VolumeAttachmentStatus
-- VolumeAttachmentStatus is the status of a VolumeAttachment request.
data V1VolumeAttachmentStatus = V1VolumeAttachmentStatus
  { V1VolumeAttachmentStatus -> Maybe V1VolumeError
v1VolumeAttachmentStatusAttachError :: !(Maybe V1VolumeError) -- ^ "attachError"
  , V1VolumeAttachmentStatus -> Bool
v1VolumeAttachmentStatusAttached :: !(Bool) -- ^ /Required/ "attached" - Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.
  , V1VolumeAttachmentStatus -> Maybe (Map String Text)
v1VolumeAttachmentStatusAttachmentMetadata :: !(Maybe (Map.Map String Text)) -- ^ "attachmentMetadata" - Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.
  , V1VolumeAttachmentStatus -> Maybe V1VolumeError
v1VolumeAttachmentStatusDetachError :: !(Maybe V1VolumeError) -- ^ "detachError"
  } deriving (Int -> V1VolumeAttachmentStatus -> ShowS
[V1VolumeAttachmentStatus] -> ShowS
V1VolumeAttachmentStatus -> String
(Int -> V1VolumeAttachmentStatus -> ShowS)
-> (V1VolumeAttachmentStatus -> String)
-> ([V1VolumeAttachmentStatus] -> ShowS)
-> Show V1VolumeAttachmentStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1VolumeAttachmentStatus] -> ShowS
$cshowList :: [V1VolumeAttachmentStatus] -> ShowS
show :: V1VolumeAttachmentStatus -> String
$cshow :: V1VolumeAttachmentStatus -> String
showsPrec :: Int -> V1VolumeAttachmentStatus -> ShowS
$cshowsPrec :: Int -> V1VolumeAttachmentStatus -> ShowS
P.Show, V1VolumeAttachmentStatus -> V1VolumeAttachmentStatus -> Bool
(V1VolumeAttachmentStatus -> V1VolumeAttachmentStatus -> Bool)
-> (V1VolumeAttachmentStatus -> V1VolumeAttachmentStatus -> Bool)
-> Eq V1VolumeAttachmentStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1VolumeAttachmentStatus -> V1VolumeAttachmentStatus -> Bool
$c/= :: V1VolumeAttachmentStatus -> V1VolumeAttachmentStatus -> Bool
== :: V1VolumeAttachmentStatus -> V1VolumeAttachmentStatus -> Bool
$c== :: V1VolumeAttachmentStatus -> V1VolumeAttachmentStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1VolumeAttachmentStatus
instance A.FromJSON V1VolumeAttachmentStatus where
  parseJSON :: Value -> Parser V1VolumeAttachmentStatus
parseJSON = String
-> (Object -> Parser V1VolumeAttachmentStatus)
-> Value
-> Parser V1VolumeAttachmentStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1VolumeAttachmentStatus" ((Object -> Parser V1VolumeAttachmentStatus)
 -> Value -> Parser V1VolumeAttachmentStatus)
-> (Object -> Parser V1VolumeAttachmentStatus)
-> Value
-> Parser V1VolumeAttachmentStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1VolumeError
-> Bool
-> Maybe (Map String Text)
-> Maybe V1VolumeError
-> V1VolumeAttachmentStatus
V1VolumeAttachmentStatus
      (Maybe V1VolumeError
 -> Bool
 -> Maybe (Map String Text)
 -> Maybe V1VolumeError
 -> V1VolumeAttachmentStatus)
-> Parser (Maybe V1VolumeError)
-> Parser
     (Bool
      -> Maybe (Map String Text)
      -> Maybe V1VolumeError
      -> V1VolumeAttachmentStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1VolumeError)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"attachError")
      Parser
  (Bool
   -> Maybe (Map String Text)
   -> Maybe V1VolumeError
   -> V1VolumeAttachmentStatus)
-> Parser Bool
-> Parser
     (Maybe (Map String Text)
      -> Maybe V1VolumeError -> V1VolumeAttachmentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"attached")
      Parser
  (Maybe (Map String Text)
   -> Maybe V1VolumeError -> V1VolumeAttachmentStatus)
-> Parser (Maybe (Map String Text))
-> Parser (Maybe V1VolumeError -> V1VolumeAttachmentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"attachmentMetadata")
      Parser (Maybe V1VolumeError -> V1VolumeAttachmentStatus)
-> Parser (Maybe V1VolumeError) -> Parser V1VolumeAttachmentStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1VolumeError)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"detachError")

-- | ToJSON V1VolumeAttachmentStatus
instance A.ToJSON V1VolumeAttachmentStatus where
  toJSON :: V1VolumeAttachmentStatus -> Value
toJSON V1VolumeAttachmentStatus {Bool
Maybe (Map String Text)
Maybe V1VolumeError
v1VolumeAttachmentStatusDetachError :: Maybe V1VolumeError
v1VolumeAttachmentStatusAttachmentMetadata :: Maybe (Map String Text)
v1VolumeAttachmentStatusAttached :: Bool
v1VolumeAttachmentStatusAttachError :: Maybe V1VolumeError
v1VolumeAttachmentStatusDetachError :: V1VolumeAttachmentStatus -> Maybe V1VolumeError
v1VolumeAttachmentStatusAttachmentMetadata :: V1VolumeAttachmentStatus -> Maybe (Map String Text)
v1VolumeAttachmentStatusAttached :: V1VolumeAttachmentStatus -> Bool
v1VolumeAttachmentStatusAttachError :: V1VolumeAttachmentStatus -> Maybe V1VolumeError
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"attachError" Text -> Maybe V1VolumeError -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1VolumeError
v1VolumeAttachmentStatusAttachError
      , Text
"attached" Text -> Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Bool
v1VolumeAttachmentStatusAttached
      , Text
"attachmentMetadata" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1VolumeAttachmentStatusAttachmentMetadata
      , Text
"detachError" Text -> Maybe V1VolumeError -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1VolumeError
v1VolumeAttachmentStatusDetachError
      ]


-- | Construct a value of type 'V1VolumeAttachmentStatus' (by applying it's required fields, if any)
mkV1VolumeAttachmentStatus
  :: Bool -- ^ 'v1VolumeAttachmentStatusAttached': Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.
  -> V1VolumeAttachmentStatus
mkV1VolumeAttachmentStatus :: Bool -> V1VolumeAttachmentStatus
mkV1VolumeAttachmentStatus Bool
v1VolumeAttachmentStatusAttached =
  V1VolumeAttachmentStatus :: Maybe V1VolumeError
-> Bool
-> Maybe (Map String Text)
-> Maybe V1VolumeError
-> V1VolumeAttachmentStatus
V1VolumeAttachmentStatus
  { v1VolumeAttachmentStatusAttachError :: Maybe V1VolumeError
v1VolumeAttachmentStatusAttachError = Maybe V1VolumeError
forall a. Maybe a
Nothing
  , Bool
v1VolumeAttachmentStatusAttached :: Bool
v1VolumeAttachmentStatusAttached :: Bool
v1VolumeAttachmentStatusAttached
  , v1VolumeAttachmentStatusAttachmentMetadata :: Maybe (Map String Text)
v1VolumeAttachmentStatusAttachmentMetadata = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , v1VolumeAttachmentStatusDetachError :: Maybe V1VolumeError
v1VolumeAttachmentStatusDetachError = Maybe V1VolumeError
forall a. Maybe a
Nothing
  }

-- ** V1VolumeDevice
-- | V1VolumeDevice
-- volumeDevice describes a mapping of a raw block device within a container.
data V1VolumeDevice = V1VolumeDevice
  { V1VolumeDevice -> Text
v1VolumeDeviceDevicePath :: !(Text) -- ^ /Required/ "devicePath" - devicePath is the path inside of the container that the device will be mapped to.
  , V1VolumeDevice -> Text
v1VolumeDeviceName :: !(Text) -- ^ /Required/ "name" - name must match the name of a persistentVolumeClaim in the pod
  } deriving (Int -> V1VolumeDevice -> ShowS
[V1VolumeDevice] -> ShowS
V1VolumeDevice -> String
(Int -> V1VolumeDevice -> ShowS)
-> (V1VolumeDevice -> String)
-> ([V1VolumeDevice] -> ShowS)
-> Show V1VolumeDevice
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1VolumeDevice] -> ShowS
$cshowList :: [V1VolumeDevice] -> ShowS
show :: V1VolumeDevice -> String
$cshow :: V1VolumeDevice -> String
showsPrec :: Int -> V1VolumeDevice -> ShowS
$cshowsPrec :: Int -> V1VolumeDevice -> ShowS
P.Show, V1VolumeDevice -> V1VolumeDevice -> Bool
(V1VolumeDevice -> V1VolumeDevice -> Bool)
-> (V1VolumeDevice -> V1VolumeDevice -> Bool) -> Eq V1VolumeDevice
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1VolumeDevice -> V1VolumeDevice -> Bool
$c/= :: V1VolumeDevice -> V1VolumeDevice -> Bool
== :: V1VolumeDevice -> V1VolumeDevice -> Bool
$c== :: V1VolumeDevice -> V1VolumeDevice -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1VolumeDevice
instance A.FromJSON V1VolumeDevice where
  parseJSON :: Value -> Parser V1VolumeDevice
parseJSON = String
-> (Object -> Parser V1VolumeDevice)
-> Value
-> Parser V1VolumeDevice
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1VolumeDevice" ((Object -> Parser V1VolumeDevice)
 -> Value -> Parser V1VolumeDevice)
-> (Object -> Parser V1VolumeDevice)
-> Value
-> Parser V1VolumeDevice
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> V1VolumeDevice
V1VolumeDevice
      (Text -> Text -> V1VolumeDevice)
-> Parser Text -> Parser (Text -> V1VolumeDevice)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"devicePath")
      Parser (Text -> V1VolumeDevice)
-> Parser Text -> Parser V1VolumeDevice
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")

-- | ToJSON V1VolumeDevice
instance A.ToJSON V1VolumeDevice where
  toJSON :: V1VolumeDevice -> Value
toJSON V1VolumeDevice {Text
v1VolumeDeviceName :: Text
v1VolumeDeviceDevicePath :: Text
v1VolumeDeviceName :: V1VolumeDevice -> Text
v1VolumeDeviceDevicePath :: V1VolumeDevice -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"devicePath" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1VolumeDeviceDevicePath
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1VolumeDeviceName
      ]


-- | Construct a value of type 'V1VolumeDevice' (by applying it's required fields, if any)
mkV1VolumeDevice
  :: Text -- ^ 'v1VolumeDeviceDevicePath': devicePath is the path inside of the container that the device will be mapped to.
  -> Text -- ^ 'v1VolumeDeviceName': name must match the name of a persistentVolumeClaim in the pod
  -> V1VolumeDevice
mkV1VolumeDevice :: Text -> Text -> V1VolumeDevice
mkV1VolumeDevice Text
v1VolumeDeviceDevicePath Text
v1VolumeDeviceName =
  V1VolumeDevice :: Text -> Text -> V1VolumeDevice
V1VolumeDevice
  { Text
v1VolumeDeviceDevicePath :: Text
v1VolumeDeviceDevicePath :: Text
v1VolumeDeviceDevicePath
  , Text
v1VolumeDeviceName :: Text
v1VolumeDeviceName :: Text
v1VolumeDeviceName
  }

-- ** V1VolumeError
-- | V1VolumeError
-- VolumeError captures an error encountered during a volume operation.
data V1VolumeError = V1VolumeError
  { V1VolumeError -> Maybe Text
v1VolumeErrorMessage :: !(Maybe Text) -- ^ "message" - String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.
  , V1VolumeError -> Maybe DateTime
v1VolumeErrorTime :: !(Maybe DateTime) -- ^ "time" - Time the error was encountered.
  } deriving (Int -> V1VolumeError -> ShowS
[V1VolumeError] -> ShowS
V1VolumeError -> String
(Int -> V1VolumeError -> ShowS)
-> (V1VolumeError -> String)
-> ([V1VolumeError] -> ShowS)
-> Show V1VolumeError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1VolumeError] -> ShowS
$cshowList :: [V1VolumeError] -> ShowS
show :: V1VolumeError -> String
$cshow :: V1VolumeError -> String
showsPrec :: Int -> V1VolumeError -> ShowS
$cshowsPrec :: Int -> V1VolumeError -> ShowS
P.Show, V1VolumeError -> V1VolumeError -> Bool
(V1VolumeError -> V1VolumeError -> Bool)
-> (V1VolumeError -> V1VolumeError -> Bool) -> Eq V1VolumeError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1VolumeError -> V1VolumeError -> Bool
$c/= :: V1VolumeError -> V1VolumeError -> Bool
== :: V1VolumeError -> V1VolumeError -> Bool
$c== :: V1VolumeError -> V1VolumeError -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1VolumeError
instance A.FromJSON V1VolumeError where
  parseJSON :: Value -> Parser V1VolumeError
parseJSON = String
-> (Object -> Parser V1VolumeError)
-> Value
-> Parser V1VolumeError
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1VolumeError" ((Object -> Parser V1VolumeError) -> Value -> Parser V1VolumeError)
-> (Object -> Parser V1VolumeError)
-> Value
-> Parser V1VolumeError
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe DateTime -> V1VolumeError
V1VolumeError
      (Maybe Text -> Maybe DateTime -> V1VolumeError)
-> Parser (Maybe Text) -> Parser (Maybe DateTime -> V1VolumeError)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe DateTime -> V1VolumeError)
-> Parser (Maybe DateTime) -> Parser V1VolumeError
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"time")

-- | ToJSON V1VolumeError
instance A.ToJSON V1VolumeError where
  toJSON :: V1VolumeError -> Value
toJSON V1VolumeError {Maybe Text
Maybe DateTime
v1VolumeErrorTime :: Maybe DateTime
v1VolumeErrorMessage :: Maybe Text
v1VolumeErrorTime :: V1VolumeError -> Maybe DateTime
v1VolumeErrorMessage :: V1VolumeError -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1VolumeErrorMessage
      , Text
"time" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1VolumeErrorTime
      ]


-- | Construct a value of type 'V1VolumeError' (by applying it's required fields, if any)
mkV1VolumeError
  :: V1VolumeError
mkV1VolumeError :: V1VolumeError
mkV1VolumeError =
  V1VolumeError :: Maybe Text -> Maybe DateTime -> V1VolumeError
V1VolumeError
  { v1VolumeErrorMessage :: Maybe Text
v1VolumeErrorMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1VolumeErrorTime :: Maybe DateTime
v1VolumeErrorTime = Maybe DateTime
forall a. Maybe a
Nothing
  }

-- ** V1VolumeMount
-- | V1VolumeMount
-- VolumeMount describes a mounting of a Volume within a container.
data V1VolumeMount = V1VolumeMount
  { V1VolumeMount -> Text
v1VolumeMountMountPath :: !(Text) -- ^ /Required/ "mountPath" - Path within the container at which the volume should be mounted.  Must not contain &#39;:&#39;.
  , V1VolumeMount -> Maybe Text
v1VolumeMountMountPropagation :: !(Maybe Text) -- ^ "mountPropagation" - mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.
  , V1VolumeMount -> Text
v1VolumeMountName :: !(Text) -- ^ /Required/ "name" - This must match the Name of a Volume.
  , V1VolumeMount -> Maybe Bool
v1VolumeMountReadOnly :: !(Maybe Bool) -- ^ "readOnly" - Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.
  , V1VolumeMount -> Maybe Text
v1VolumeMountSubPath :: !(Maybe Text) -- ^ "subPath" - Path within the volume from which the container&#39;s volume should be mounted. Defaults to \&quot;\&quot; (volume&#39;s root).
  , V1VolumeMount -> Maybe Text
v1VolumeMountSubPathExpr :: !(Maybe Text) -- ^ "subPathExpr" - Expanded path within the volume from which the container&#39;s volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container&#39;s environment. Defaults to \&quot;\&quot; (volume&#39;s root). SubPathExpr and SubPath are mutually exclusive. This field is beta in 1.15.
  } deriving (Int -> V1VolumeMount -> ShowS
[V1VolumeMount] -> ShowS
V1VolumeMount -> String
(Int -> V1VolumeMount -> ShowS)
-> (V1VolumeMount -> String)
-> ([V1VolumeMount] -> ShowS)
-> Show V1VolumeMount
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1VolumeMount] -> ShowS
$cshowList :: [V1VolumeMount] -> ShowS
show :: V1VolumeMount -> String
$cshow :: V1VolumeMount -> String
showsPrec :: Int -> V1VolumeMount -> ShowS
$cshowsPrec :: Int -> V1VolumeMount -> ShowS
P.Show, V1VolumeMount -> V1VolumeMount -> Bool
(V1VolumeMount -> V1VolumeMount -> Bool)
-> (V1VolumeMount -> V1VolumeMount -> Bool) -> Eq V1VolumeMount
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1VolumeMount -> V1VolumeMount -> Bool
$c/= :: V1VolumeMount -> V1VolumeMount -> Bool
== :: V1VolumeMount -> V1VolumeMount -> Bool
$c== :: V1VolumeMount -> V1VolumeMount -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1VolumeMount
instance A.FromJSON V1VolumeMount where
  parseJSON :: Value -> Parser V1VolumeMount
parseJSON = String
-> (Object -> Parser V1VolumeMount)
-> Value
-> Parser V1VolumeMount
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1VolumeMount" ((Object -> Parser V1VolumeMount) -> Value -> Parser V1VolumeMount)
-> (Object -> Parser V1VolumeMount)
-> Value
-> Parser V1VolumeMount
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Maybe Text
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> V1VolumeMount
V1VolumeMount
      (Text
 -> Maybe Text
 -> Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> V1VolumeMount)
-> Parser Text
-> Parser
     (Maybe Text
      -> Text -> Maybe Bool -> Maybe Text -> Maybe Text -> V1VolumeMount)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"mountPath")
      Parser
  (Maybe Text
   -> Text -> Maybe Bool -> Maybe Text -> Maybe Text -> V1VolumeMount)
-> Parser (Maybe Text)
-> Parser
     (Text -> Maybe Bool -> Maybe Text -> Maybe Text -> V1VolumeMount)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"mountPropagation")
      Parser
  (Text -> Maybe Bool -> Maybe Text -> Maybe Text -> V1VolumeMount)
-> Parser Text
-> Parser (Maybe Bool -> Maybe Text -> Maybe Text -> V1VolumeMount)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser (Maybe Bool -> Maybe Text -> Maybe Text -> V1VolumeMount)
-> Parser (Maybe Bool)
-> Parser (Maybe Text -> Maybe Text -> V1VolumeMount)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readOnly")
      Parser (Maybe Text -> Maybe Text -> V1VolumeMount)
-> Parser (Maybe Text) -> Parser (Maybe Text -> V1VolumeMount)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"subPath")
      Parser (Maybe Text -> V1VolumeMount)
-> Parser (Maybe Text) -> Parser V1VolumeMount
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"subPathExpr")

-- | ToJSON V1VolumeMount
instance A.ToJSON V1VolumeMount where
  toJSON :: V1VolumeMount -> Value
toJSON V1VolumeMount {Maybe Bool
Maybe Text
Text
v1VolumeMountSubPathExpr :: Maybe Text
v1VolumeMountSubPath :: Maybe Text
v1VolumeMountReadOnly :: Maybe Bool
v1VolumeMountName :: Text
v1VolumeMountMountPropagation :: Maybe Text
v1VolumeMountMountPath :: Text
v1VolumeMountSubPathExpr :: V1VolumeMount -> Maybe Text
v1VolumeMountSubPath :: V1VolumeMount -> Maybe Text
v1VolumeMountReadOnly :: V1VolumeMount -> Maybe Bool
v1VolumeMountName :: V1VolumeMount -> Text
v1VolumeMountMountPropagation :: V1VolumeMount -> Maybe Text
v1VolumeMountMountPath :: V1VolumeMount -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"mountPath" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1VolumeMountMountPath
      , Text
"mountPropagation" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1VolumeMountMountPropagation
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1VolumeMountName
      , Text
"readOnly" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1VolumeMountReadOnly
      , Text
"subPath" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1VolumeMountSubPath
      , Text
"subPathExpr" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1VolumeMountSubPathExpr
      ]


-- | Construct a value of type 'V1VolumeMount' (by applying it's required fields, if any)
mkV1VolumeMount
  :: Text -- ^ 'v1VolumeMountMountPath': Path within the container at which the volume should be mounted.  Must not contain ':'.
  -> Text -- ^ 'v1VolumeMountName': This must match the Name of a Volume.
  -> V1VolumeMount
mkV1VolumeMount :: Text -> Text -> V1VolumeMount
mkV1VolumeMount Text
v1VolumeMountMountPath Text
v1VolumeMountName =
  V1VolumeMount :: Text
-> Maybe Text
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> V1VolumeMount
V1VolumeMount
  { Text
v1VolumeMountMountPath :: Text
v1VolumeMountMountPath :: Text
v1VolumeMountMountPath
  , v1VolumeMountMountPropagation :: Maybe Text
v1VolumeMountMountPropagation = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1VolumeMountName :: Text
v1VolumeMountName :: Text
v1VolumeMountName
  , v1VolumeMountReadOnly :: Maybe Bool
v1VolumeMountReadOnly = Maybe Bool
forall a. Maybe a
Nothing
  , v1VolumeMountSubPath :: Maybe Text
v1VolumeMountSubPath = Maybe Text
forall a. Maybe a
Nothing
  , v1VolumeMountSubPathExpr :: Maybe Text
v1VolumeMountSubPathExpr = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1VolumeNodeAffinity
-- | V1VolumeNodeAffinity
-- VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.
data V1VolumeNodeAffinity = V1VolumeNodeAffinity
  { V1VolumeNodeAffinity -> Maybe V1NodeSelector
v1VolumeNodeAffinityRequired :: !(Maybe V1NodeSelector) -- ^ "required"
  } deriving (Int -> V1VolumeNodeAffinity -> ShowS
[V1VolumeNodeAffinity] -> ShowS
V1VolumeNodeAffinity -> String
(Int -> V1VolumeNodeAffinity -> ShowS)
-> (V1VolumeNodeAffinity -> String)
-> ([V1VolumeNodeAffinity] -> ShowS)
-> Show V1VolumeNodeAffinity
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1VolumeNodeAffinity] -> ShowS
$cshowList :: [V1VolumeNodeAffinity] -> ShowS
show :: V1VolumeNodeAffinity -> String
$cshow :: V1VolumeNodeAffinity -> String
showsPrec :: Int -> V1VolumeNodeAffinity -> ShowS
$cshowsPrec :: Int -> V1VolumeNodeAffinity -> ShowS
P.Show, V1VolumeNodeAffinity -> V1VolumeNodeAffinity -> Bool
(V1VolumeNodeAffinity -> V1VolumeNodeAffinity -> Bool)
-> (V1VolumeNodeAffinity -> V1VolumeNodeAffinity -> Bool)
-> Eq V1VolumeNodeAffinity
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1VolumeNodeAffinity -> V1VolumeNodeAffinity -> Bool
$c/= :: V1VolumeNodeAffinity -> V1VolumeNodeAffinity -> Bool
== :: V1VolumeNodeAffinity -> V1VolumeNodeAffinity -> Bool
$c== :: V1VolumeNodeAffinity -> V1VolumeNodeAffinity -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1VolumeNodeAffinity
instance A.FromJSON V1VolumeNodeAffinity where
  parseJSON :: Value -> Parser V1VolumeNodeAffinity
parseJSON = String
-> (Object -> Parser V1VolumeNodeAffinity)
-> Value
-> Parser V1VolumeNodeAffinity
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1VolumeNodeAffinity" ((Object -> Parser V1VolumeNodeAffinity)
 -> Value -> Parser V1VolumeNodeAffinity)
-> (Object -> Parser V1VolumeNodeAffinity)
-> Value
-> Parser V1VolumeNodeAffinity
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1NodeSelector -> V1VolumeNodeAffinity
V1VolumeNodeAffinity
      (Maybe V1NodeSelector -> V1VolumeNodeAffinity)
-> Parser (Maybe V1NodeSelector) -> Parser V1VolumeNodeAffinity
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1NodeSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"required")

-- | ToJSON V1VolumeNodeAffinity
instance A.ToJSON V1VolumeNodeAffinity where
  toJSON :: V1VolumeNodeAffinity -> Value
toJSON V1VolumeNodeAffinity {Maybe V1NodeSelector
v1VolumeNodeAffinityRequired :: Maybe V1NodeSelector
v1VolumeNodeAffinityRequired :: V1VolumeNodeAffinity -> Maybe V1NodeSelector
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"required" Text -> Maybe V1NodeSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1NodeSelector
v1VolumeNodeAffinityRequired
      ]


-- | Construct a value of type 'V1VolumeNodeAffinity' (by applying it's required fields, if any)
mkV1VolumeNodeAffinity
  :: V1VolumeNodeAffinity
mkV1VolumeNodeAffinity :: V1VolumeNodeAffinity
mkV1VolumeNodeAffinity =
  V1VolumeNodeAffinity :: Maybe V1NodeSelector -> V1VolumeNodeAffinity
V1VolumeNodeAffinity
  { v1VolumeNodeAffinityRequired :: Maybe V1NodeSelector
v1VolumeNodeAffinityRequired = Maybe V1NodeSelector
forall a. Maybe a
Nothing
  }

-- ** V1VolumeProjection
-- | V1VolumeProjection
-- Projection that may be projected along with other supported volume types
data V1VolumeProjection = V1VolumeProjection
  { V1VolumeProjection -> Maybe V1ConfigMapProjection
v1VolumeProjectionConfigMap :: !(Maybe V1ConfigMapProjection) -- ^ "configMap"
  , V1VolumeProjection -> Maybe V1DownwardAPIProjection
v1VolumeProjectionDownwardApi :: !(Maybe V1DownwardAPIProjection) -- ^ "downwardAPI"
  , V1VolumeProjection -> Maybe V1SecretProjection
v1VolumeProjectionSecret :: !(Maybe V1SecretProjection) -- ^ "secret"
  , V1VolumeProjection -> Maybe V1ServiceAccountTokenProjection
v1VolumeProjectionServiceAccountToken :: !(Maybe V1ServiceAccountTokenProjection) -- ^ "serviceAccountToken"
  } deriving (Int -> V1VolumeProjection -> ShowS
[V1VolumeProjection] -> ShowS
V1VolumeProjection -> String
(Int -> V1VolumeProjection -> ShowS)
-> (V1VolumeProjection -> String)
-> ([V1VolumeProjection] -> ShowS)
-> Show V1VolumeProjection
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1VolumeProjection] -> ShowS
$cshowList :: [V1VolumeProjection] -> ShowS
show :: V1VolumeProjection -> String
$cshow :: V1VolumeProjection -> String
showsPrec :: Int -> V1VolumeProjection -> ShowS
$cshowsPrec :: Int -> V1VolumeProjection -> ShowS
P.Show, V1VolumeProjection -> V1VolumeProjection -> Bool
(V1VolumeProjection -> V1VolumeProjection -> Bool)
-> (V1VolumeProjection -> V1VolumeProjection -> Bool)
-> Eq V1VolumeProjection
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1VolumeProjection -> V1VolumeProjection -> Bool
$c/= :: V1VolumeProjection -> V1VolumeProjection -> Bool
== :: V1VolumeProjection -> V1VolumeProjection -> Bool
$c== :: V1VolumeProjection -> V1VolumeProjection -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1VolumeProjection
instance A.FromJSON V1VolumeProjection where
  parseJSON :: Value -> Parser V1VolumeProjection
parseJSON = String
-> (Object -> Parser V1VolumeProjection)
-> Value
-> Parser V1VolumeProjection
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1VolumeProjection" ((Object -> Parser V1VolumeProjection)
 -> Value -> Parser V1VolumeProjection)
-> (Object -> Parser V1VolumeProjection)
-> Value
-> Parser V1VolumeProjection
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1ConfigMapProjection
-> Maybe V1DownwardAPIProjection
-> Maybe V1SecretProjection
-> Maybe V1ServiceAccountTokenProjection
-> V1VolumeProjection
V1VolumeProjection
      (Maybe V1ConfigMapProjection
 -> Maybe V1DownwardAPIProjection
 -> Maybe V1SecretProjection
 -> Maybe V1ServiceAccountTokenProjection
 -> V1VolumeProjection)
-> Parser (Maybe V1ConfigMapProjection)
-> Parser
     (Maybe V1DownwardAPIProjection
      -> Maybe V1SecretProjection
      -> Maybe V1ServiceAccountTokenProjection
      -> V1VolumeProjection)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1ConfigMapProjection)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"configMap")
      Parser
  (Maybe V1DownwardAPIProjection
   -> Maybe V1SecretProjection
   -> Maybe V1ServiceAccountTokenProjection
   -> V1VolumeProjection)
-> Parser (Maybe V1DownwardAPIProjection)
-> Parser
     (Maybe V1SecretProjection
      -> Maybe V1ServiceAccountTokenProjection -> V1VolumeProjection)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1DownwardAPIProjection)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"downwardAPI")
      Parser
  (Maybe V1SecretProjection
   -> Maybe V1ServiceAccountTokenProjection -> V1VolumeProjection)
-> Parser (Maybe V1SecretProjection)
-> Parser
     (Maybe V1ServiceAccountTokenProjection -> V1VolumeProjection)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1SecretProjection)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"secret")
      Parser
  (Maybe V1ServiceAccountTokenProjection -> V1VolumeProjection)
-> Parser (Maybe V1ServiceAccountTokenProjection)
-> Parser V1VolumeProjection
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ServiceAccountTokenProjection)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"serviceAccountToken")

-- | ToJSON V1VolumeProjection
instance A.ToJSON V1VolumeProjection where
  toJSON :: V1VolumeProjection -> Value
toJSON V1VolumeProjection {Maybe V1ServiceAccountTokenProjection
Maybe V1SecretProjection
Maybe V1DownwardAPIProjection
Maybe V1ConfigMapProjection
v1VolumeProjectionServiceAccountToken :: Maybe V1ServiceAccountTokenProjection
v1VolumeProjectionSecret :: Maybe V1SecretProjection
v1VolumeProjectionDownwardApi :: Maybe V1DownwardAPIProjection
v1VolumeProjectionConfigMap :: Maybe V1ConfigMapProjection
v1VolumeProjectionServiceAccountToken :: V1VolumeProjection -> Maybe V1ServiceAccountTokenProjection
v1VolumeProjectionSecret :: V1VolumeProjection -> Maybe V1SecretProjection
v1VolumeProjectionDownwardApi :: V1VolumeProjection -> Maybe V1DownwardAPIProjection
v1VolumeProjectionConfigMap :: V1VolumeProjection -> Maybe V1ConfigMapProjection
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"configMap" Text -> Maybe V1ConfigMapProjection -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ConfigMapProjection
v1VolumeProjectionConfigMap
      , Text
"downwardAPI" Text -> Maybe V1DownwardAPIProjection -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1DownwardAPIProjection
v1VolumeProjectionDownwardApi
      , Text
"secret" Text -> Maybe V1SecretProjection -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1SecretProjection
v1VolumeProjectionSecret
      , Text
"serviceAccountToken" Text -> Maybe V1ServiceAccountTokenProjection -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ServiceAccountTokenProjection
v1VolumeProjectionServiceAccountToken
      ]


-- | Construct a value of type 'V1VolumeProjection' (by applying it's required fields, if any)
mkV1VolumeProjection
  :: V1VolumeProjection
mkV1VolumeProjection :: V1VolumeProjection
mkV1VolumeProjection =
  V1VolumeProjection :: Maybe V1ConfigMapProjection
-> Maybe V1DownwardAPIProjection
-> Maybe V1SecretProjection
-> Maybe V1ServiceAccountTokenProjection
-> V1VolumeProjection
V1VolumeProjection
  { v1VolumeProjectionConfigMap :: Maybe V1ConfigMapProjection
v1VolumeProjectionConfigMap = Maybe V1ConfigMapProjection
forall a. Maybe a
Nothing
  , v1VolumeProjectionDownwardApi :: Maybe V1DownwardAPIProjection
v1VolumeProjectionDownwardApi = Maybe V1DownwardAPIProjection
forall a. Maybe a
Nothing
  , v1VolumeProjectionSecret :: Maybe V1SecretProjection
v1VolumeProjectionSecret = Maybe V1SecretProjection
forall a. Maybe a
Nothing
  , v1VolumeProjectionServiceAccountToken :: Maybe V1ServiceAccountTokenProjection
v1VolumeProjectionServiceAccountToken = Maybe V1ServiceAccountTokenProjection
forall a. Maybe a
Nothing
  }

-- ** V1VsphereVirtualDiskVolumeSource
-- | V1VsphereVirtualDiskVolumeSource
-- Represents a vSphere volume resource.
data V1VsphereVirtualDiskVolumeSource = V1VsphereVirtualDiskVolumeSource
  { V1VsphereVirtualDiskVolumeSource -> Maybe Text
v1VsphereVirtualDiskVolumeSourceFsType :: !(Maybe Text) -- ^ "fsType" - Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \&quot;ext4\&quot;, \&quot;xfs\&quot;, \&quot;ntfs\&quot;. Implicitly inferred to be \&quot;ext4\&quot; if unspecified.
  , V1VsphereVirtualDiskVolumeSource -> Maybe Text
v1VsphereVirtualDiskVolumeSourceStoragePolicyId :: !(Maybe Text) -- ^ "storagePolicyID" - Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
  , V1VsphereVirtualDiskVolumeSource -> Maybe Text
v1VsphereVirtualDiskVolumeSourceStoragePolicyName :: !(Maybe Text) -- ^ "storagePolicyName" - Storage Policy Based Management (SPBM) profile name.
  , V1VsphereVirtualDiskVolumeSource -> Text
v1VsphereVirtualDiskVolumeSourceVolumePath :: !(Text) -- ^ /Required/ "volumePath" - Path that identifies vSphere volume vmdk
  } deriving (Int -> V1VsphereVirtualDiskVolumeSource -> ShowS
[V1VsphereVirtualDiskVolumeSource] -> ShowS
V1VsphereVirtualDiskVolumeSource -> String
(Int -> V1VsphereVirtualDiskVolumeSource -> ShowS)
-> (V1VsphereVirtualDiskVolumeSource -> String)
-> ([V1VsphereVirtualDiskVolumeSource] -> ShowS)
-> Show V1VsphereVirtualDiskVolumeSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1VsphereVirtualDiskVolumeSource] -> ShowS
$cshowList :: [V1VsphereVirtualDiskVolumeSource] -> ShowS
show :: V1VsphereVirtualDiskVolumeSource -> String
$cshow :: V1VsphereVirtualDiskVolumeSource -> String
showsPrec :: Int -> V1VsphereVirtualDiskVolumeSource -> ShowS
$cshowsPrec :: Int -> V1VsphereVirtualDiskVolumeSource -> ShowS
P.Show, V1VsphereVirtualDiskVolumeSource
-> V1VsphereVirtualDiskVolumeSource -> Bool
(V1VsphereVirtualDiskVolumeSource
 -> V1VsphereVirtualDiskVolumeSource -> Bool)
-> (V1VsphereVirtualDiskVolumeSource
    -> V1VsphereVirtualDiskVolumeSource -> Bool)
-> Eq V1VsphereVirtualDiskVolumeSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1VsphereVirtualDiskVolumeSource
-> V1VsphereVirtualDiskVolumeSource -> Bool
$c/= :: V1VsphereVirtualDiskVolumeSource
-> V1VsphereVirtualDiskVolumeSource -> Bool
== :: V1VsphereVirtualDiskVolumeSource
-> V1VsphereVirtualDiskVolumeSource -> Bool
$c== :: V1VsphereVirtualDiskVolumeSource
-> V1VsphereVirtualDiskVolumeSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1VsphereVirtualDiskVolumeSource
instance A.FromJSON V1VsphereVirtualDiskVolumeSource where
  parseJSON :: Value -> Parser V1VsphereVirtualDiskVolumeSource
parseJSON = String
-> (Object -> Parser V1VsphereVirtualDiskVolumeSource)
-> Value
-> Parser V1VsphereVirtualDiskVolumeSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1VsphereVirtualDiskVolumeSource" ((Object -> Parser V1VsphereVirtualDiskVolumeSource)
 -> Value -> Parser V1VsphereVirtualDiskVolumeSource)
-> (Object -> Parser V1VsphereVirtualDiskVolumeSource)
-> Value
-> Parser V1VsphereVirtualDiskVolumeSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe Text
-> Text
-> V1VsphereVirtualDiskVolumeSource
V1VsphereVirtualDiskVolumeSource
      (Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> V1VsphereVirtualDiskVolumeSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text -> Text -> V1VsphereVirtualDiskVolumeSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fsType")
      Parser
  (Maybe Text
   -> Maybe Text -> Text -> V1VsphereVirtualDiskVolumeSource)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Text -> V1VsphereVirtualDiskVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"storagePolicyID")
      Parser (Maybe Text -> Text -> V1VsphereVirtualDiskVolumeSource)
-> Parser (Maybe Text)
-> Parser (Text -> V1VsphereVirtualDiskVolumeSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"storagePolicyName")
      Parser (Text -> V1VsphereVirtualDiskVolumeSource)
-> Parser Text -> Parser V1VsphereVirtualDiskVolumeSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"volumePath")

-- | ToJSON V1VsphereVirtualDiskVolumeSource
instance A.ToJSON V1VsphereVirtualDiskVolumeSource where
  toJSON :: V1VsphereVirtualDiskVolumeSource -> Value
toJSON V1VsphereVirtualDiskVolumeSource {Maybe Text
Text
v1VsphereVirtualDiskVolumeSourceVolumePath :: Text
v1VsphereVirtualDiskVolumeSourceStoragePolicyName :: Maybe Text
v1VsphereVirtualDiskVolumeSourceStoragePolicyId :: Maybe Text
v1VsphereVirtualDiskVolumeSourceFsType :: Maybe Text
v1VsphereVirtualDiskVolumeSourceVolumePath :: V1VsphereVirtualDiskVolumeSource -> Text
v1VsphereVirtualDiskVolumeSourceStoragePolicyName :: V1VsphereVirtualDiskVolumeSource -> Maybe Text
v1VsphereVirtualDiskVolumeSourceStoragePolicyId :: V1VsphereVirtualDiskVolumeSource -> Maybe Text
v1VsphereVirtualDiskVolumeSourceFsType :: V1VsphereVirtualDiskVolumeSource -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"fsType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1VsphereVirtualDiskVolumeSourceFsType
      , Text
"storagePolicyID" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1VsphereVirtualDiskVolumeSourceStoragePolicyId
      , Text
"storagePolicyName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1VsphereVirtualDiskVolumeSourceStoragePolicyName
      , Text
"volumePath" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1VsphereVirtualDiskVolumeSourceVolumePath
      ]


-- | Construct a value of type 'V1VsphereVirtualDiskVolumeSource' (by applying it's required fields, if any)
mkV1VsphereVirtualDiskVolumeSource
  :: Text -- ^ 'v1VsphereVirtualDiskVolumeSourceVolumePath': Path that identifies vSphere volume vmdk
  -> V1VsphereVirtualDiskVolumeSource
mkV1VsphereVirtualDiskVolumeSource :: Text -> V1VsphereVirtualDiskVolumeSource
mkV1VsphereVirtualDiskVolumeSource Text
v1VsphereVirtualDiskVolumeSourceVolumePath =
  V1VsphereVirtualDiskVolumeSource :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Text
-> V1VsphereVirtualDiskVolumeSource
V1VsphereVirtualDiskVolumeSource
  { v1VsphereVirtualDiskVolumeSourceFsType :: Maybe Text
v1VsphereVirtualDiskVolumeSourceFsType = Maybe Text
forall a. Maybe a
Nothing
  , v1VsphereVirtualDiskVolumeSourceStoragePolicyId :: Maybe Text
v1VsphereVirtualDiskVolumeSourceStoragePolicyId = Maybe Text
forall a. Maybe a
Nothing
  , v1VsphereVirtualDiskVolumeSourceStoragePolicyName :: Maybe Text
v1VsphereVirtualDiskVolumeSourceStoragePolicyName = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1VsphereVirtualDiskVolumeSourceVolumePath :: Text
v1VsphereVirtualDiskVolumeSourceVolumePath :: Text
v1VsphereVirtualDiskVolumeSourceVolumePath
  }

-- ** V1WatchEvent
-- | V1WatchEvent
-- Event represents a single event to a watched resource.
data V1WatchEvent = V1WatchEvent
  { V1WatchEvent -> Value
v1WatchEventObject :: !(A.Value) -- ^ /Required/ "object" - Object is:  * If Type is Added or Modified: the new state of the object.  * If Type is Deleted: the state of the object immediately before deletion.  * If Type is Error: *Status is recommended; other types may make sense    depending on context.
  , V1WatchEvent -> Text
v1WatchEventType :: !(Text) -- ^ /Required/ "type"
  } deriving (Int -> V1WatchEvent -> ShowS
[V1WatchEvent] -> ShowS
V1WatchEvent -> String
(Int -> V1WatchEvent -> ShowS)
-> (V1WatchEvent -> String)
-> ([V1WatchEvent] -> ShowS)
-> Show V1WatchEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1WatchEvent] -> ShowS
$cshowList :: [V1WatchEvent] -> ShowS
show :: V1WatchEvent -> String
$cshow :: V1WatchEvent -> String
showsPrec :: Int -> V1WatchEvent -> ShowS
$cshowsPrec :: Int -> V1WatchEvent -> ShowS
P.Show, V1WatchEvent -> V1WatchEvent -> Bool
(V1WatchEvent -> V1WatchEvent -> Bool)
-> (V1WatchEvent -> V1WatchEvent -> Bool) -> Eq V1WatchEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1WatchEvent -> V1WatchEvent -> Bool
$c/= :: V1WatchEvent -> V1WatchEvent -> Bool
== :: V1WatchEvent -> V1WatchEvent -> Bool
$c== :: V1WatchEvent -> V1WatchEvent -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1WatchEvent
instance A.FromJSON V1WatchEvent where
  parseJSON :: Value -> Parser V1WatchEvent
parseJSON = String
-> (Object -> Parser V1WatchEvent) -> Value -> Parser V1WatchEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1WatchEvent" ((Object -> Parser V1WatchEvent) -> Value -> Parser V1WatchEvent)
-> (Object -> Parser V1WatchEvent) -> Value -> Parser V1WatchEvent
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Value -> Text -> V1WatchEvent
V1WatchEvent
      (Value -> Text -> V1WatchEvent)
-> Parser Value -> Parser (Text -> V1WatchEvent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Value
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"object")
      Parser (Text -> V1WatchEvent) -> Parser Text -> Parser V1WatchEvent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1WatchEvent
instance A.ToJSON V1WatchEvent where
  toJSON :: V1WatchEvent -> Value
toJSON V1WatchEvent {Text
Value
v1WatchEventType :: Text
v1WatchEventObject :: Value
v1WatchEventType :: V1WatchEvent -> Text
v1WatchEventObject :: V1WatchEvent -> Value
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"object" Text -> Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Value
v1WatchEventObject
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1WatchEventType
      ]


-- | Construct a value of type 'V1WatchEvent' (by applying it's required fields, if any)
mkV1WatchEvent
  :: A.Value -- ^ 'v1WatchEventObject': Object is:  * If Type is Added or Modified: the new state of the object.  * If Type is Deleted: the state of the object immediately before deletion.  * If Type is Error: *Status is recommended; other types may make sense    depending on context.
  -> Text -- ^ 'v1WatchEventType' 
  -> V1WatchEvent
mkV1WatchEvent :: Value -> Text -> V1WatchEvent
mkV1WatchEvent Value
v1WatchEventObject Text
v1WatchEventType =
  V1WatchEvent :: Value -> Text -> V1WatchEvent
V1WatchEvent
  { Value
v1WatchEventObject :: Value
v1WatchEventObject :: Value
v1WatchEventObject
  , Text
v1WatchEventType :: Text
v1WatchEventType :: Text
v1WatchEventType
  }

-- ** V1WebhookConversion
-- | V1WebhookConversion
-- WebhookConversion describes how to call a conversion webhook
data V1WebhookConversion = V1WebhookConversion
  { V1WebhookConversion -> Maybe ApiextensionsV1WebhookClientConfig
v1WebhookConversionClientConfig :: !(Maybe ApiextensionsV1WebhookClientConfig) -- ^ "clientConfig"
  , V1WebhookConversion -> [Text]
v1WebhookConversionConversionReviewVersions :: !([Text]) -- ^ /Required/ "conversionReviewVersions" - conversionReviewVersions is an ordered list of preferred &#x60;ConversionReview&#x60; versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail.
  } deriving (Int -> V1WebhookConversion -> ShowS
[V1WebhookConversion] -> ShowS
V1WebhookConversion -> String
(Int -> V1WebhookConversion -> ShowS)
-> (V1WebhookConversion -> String)
-> ([V1WebhookConversion] -> ShowS)
-> Show V1WebhookConversion
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1WebhookConversion] -> ShowS
$cshowList :: [V1WebhookConversion] -> ShowS
show :: V1WebhookConversion -> String
$cshow :: V1WebhookConversion -> String
showsPrec :: Int -> V1WebhookConversion -> ShowS
$cshowsPrec :: Int -> V1WebhookConversion -> ShowS
P.Show, V1WebhookConversion -> V1WebhookConversion -> Bool
(V1WebhookConversion -> V1WebhookConversion -> Bool)
-> (V1WebhookConversion -> V1WebhookConversion -> Bool)
-> Eq V1WebhookConversion
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1WebhookConversion -> V1WebhookConversion -> Bool
$c/= :: V1WebhookConversion -> V1WebhookConversion -> Bool
== :: V1WebhookConversion -> V1WebhookConversion -> Bool
$c== :: V1WebhookConversion -> V1WebhookConversion -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1WebhookConversion
instance A.FromJSON V1WebhookConversion where
  parseJSON :: Value -> Parser V1WebhookConversion
parseJSON = String
-> (Object -> Parser V1WebhookConversion)
-> Value
-> Parser V1WebhookConversion
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1WebhookConversion" ((Object -> Parser V1WebhookConversion)
 -> Value -> Parser V1WebhookConversion)
-> (Object -> Parser V1WebhookConversion)
-> Value
-> Parser V1WebhookConversion
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe ApiextensionsV1WebhookClientConfig
-> [Text] -> V1WebhookConversion
V1WebhookConversion
      (Maybe ApiextensionsV1WebhookClientConfig
 -> [Text] -> V1WebhookConversion)
-> Parser (Maybe ApiextensionsV1WebhookClientConfig)
-> Parser ([Text] -> V1WebhookConversion)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe ApiextensionsV1WebhookClientConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"clientConfig")
      Parser ([Text] -> V1WebhookConversion)
-> Parser [Text] -> Parser V1WebhookConversion
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"conversionReviewVersions")

-- | ToJSON V1WebhookConversion
instance A.ToJSON V1WebhookConversion where
  toJSON :: V1WebhookConversion -> Value
toJSON V1WebhookConversion {[Text]
Maybe ApiextensionsV1WebhookClientConfig
v1WebhookConversionConversionReviewVersions :: [Text]
v1WebhookConversionClientConfig :: Maybe ApiextensionsV1WebhookClientConfig
v1WebhookConversionConversionReviewVersions :: V1WebhookConversion -> [Text]
v1WebhookConversionClientConfig :: V1WebhookConversion -> Maybe ApiextensionsV1WebhookClientConfig
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"clientConfig" Text -> Maybe ApiextensionsV1WebhookClientConfig -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ApiextensionsV1WebhookClientConfig
v1WebhookConversionClientConfig
      , Text
"conversionReviewVersions" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1WebhookConversionConversionReviewVersions
      ]


-- | Construct a value of type 'V1WebhookConversion' (by applying it's required fields, if any)
mkV1WebhookConversion
  :: [Text] -- ^ 'v1WebhookConversionConversionReviewVersions': conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail.
  -> V1WebhookConversion
mkV1WebhookConversion :: [Text] -> V1WebhookConversion
mkV1WebhookConversion [Text]
v1WebhookConversionConversionReviewVersions =
  V1WebhookConversion :: Maybe ApiextensionsV1WebhookClientConfig
-> [Text] -> V1WebhookConversion
V1WebhookConversion
  { v1WebhookConversionClientConfig :: Maybe ApiextensionsV1WebhookClientConfig
v1WebhookConversionClientConfig = Maybe ApiextensionsV1WebhookClientConfig
forall a. Maybe a
Nothing
  , [Text]
v1WebhookConversionConversionReviewVersions :: [Text]
v1WebhookConversionConversionReviewVersions :: [Text]
v1WebhookConversionConversionReviewVersions
  }

-- ** V1WeightedPodAffinityTerm
-- | V1WeightedPodAffinityTerm
-- The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
data V1WeightedPodAffinityTerm = V1WeightedPodAffinityTerm
  { V1WeightedPodAffinityTerm -> V1PodAffinityTerm
v1WeightedPodAffinityTermPodAffinityTerm :: !(V1PodAffinityTerm) -- ^ /Required/ "podAffinityTerm"
  , V1WeightedPodAffinityTerm -> Int
v1WeightedPodAffinityTermWeight :: !(Int) -- ^ /Required/ "weight" - weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  } deriving (Int -> V1WeightedPodAffinityTerm -> ShowS
[V1WeightedPodAffinityTerm] -> ShowS
V1WeightedPodAffinityTerm -> String
(Int -> V1WeightedPodAffinityTerm -> ShowS)
-> (V1WeightedPodAffinityTerm -> String)
-> ([V1WeightedPodAffinityTerm] -> ShowS)
-> Show V1WeightedPodAffinityTerm
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1WeightedPodAffinityTerm] -> ShowS
$cshowList :: [V1WeightedPodAffinityTerm] -> ShowS
show :: V1WeightedPodAffinityTerm -> String
$cshow :: V1WeightedPodAffinityTerm -> String
showsPrec :: Int -> V1WeightedPodAffinityTerm -> ShowS
$cshowsPrec :: Int -> V1WeightedPodAffinityTerm -> ShowS
P.Show, V1WeightedPodAffinityTerm -> V1WeightedPodAffinityTerm -> Bool
(V1WeightedPodAffinityTerm -> V1WeightedPodAffinityTerm -> Bool)
-> (V1WeightedPodAffinityTerm -> V1WeightedPodAffinityTerm -> Bool)
-> Eq V1WeightedPodAffinityTerm
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1WeightedPodAffinityTerm -> V1WeightedPodAffinityTerm -> Bool
$c/= :: V1WeightedPodAffinityTerm -> V1WeightedPodAffinityTerm -> Bool
== :: V1WeightedPodAffinityTerm -> V1WeightedPodAffinityTerm -> Bool
$c== :: V1WeightedPodAffinityTerm -> V1WeightedPodAffinityTerm -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1WeightedPodAffinityTerm
instance A.FromJSON V1WeightedPodAffinityTerm where
  parseJSON :: Value -> Parser V1WeightedPodAffinityTerm
parseJSON = String
-> (Object -> Parser V1WeightedPodAffinityTerm)
-> Value
-> Parser V1WeightedPodAffinityTerm
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1WeightedPodAffinityTerm" ((Object -> Parser V1WeightedPodAffinityTerm)
 -> Value -> Parser V1WeightedPodAffinityTerm)
-> (Object -> Parser V1WeightedPodAffinityTerm)
-> Value
-> Parser V1WeightedPodAffinityTerm
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    V1PodAffinityTerm -> Int -> V1WeightedPodAffinityTerm
V1WeightedPodAffinityTerm
      (V1PodAffinityTerm -> Int -> V1WeightedPodAffinityTerm)
-> Parser V1PodAffinityTerm
-> Parser (Int -> V1WeightedPodAffinityTerm)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser V1PodAffinityTerm
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"podAffinityTerm")
      Parser (Int -> V1WeightedPodAffinityTerm)
-> Parser Int -> Parser V1WeightedPodAffinityTerm
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"weight")

-- | ToJSON V1WeightedPodAffinityTerm
instance A.ToJSON V1WeightedPodAffinityTerm where
  toJSON :: V1WeightedPodAffinityTerm -> Value
toJSON V1WeightedPodAffinityTerm {Int
V1PodAffinityTerm
v1WeightedPodAffinityTermWeight :: Int
v1WeightedPodAffinityTermPodAffinityTerm :: V1PodAffinityTerm
v1WeightedPodAffinityTermWeight :: V1WeightedPodAffinityTerm -> Int
v1WeightedPodAffinityTermPodAffinityTerm :: V1WeightedPodAffinityTerm -> V1PodAffinityTerm
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"podAffinityTerm" Text -> V1PodAffinityTerm -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1PodAffinityTerm
v1WeightedPodAffinityTermPodAffinityTerm
      , Text
"weight" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1WeightedPodAffinityTermWeight
      ]


-- | Construct a value of type 'V1WeightedPodAffinityTerm' (by applying it's required fields, if any)
mkV1WeightedPodAffinityTerm
  :: V1PodAffinityTerm -- ^ 'v1WeightedPodAffinityTermPodAffinityTerm' 
  -> Int -- ^ 'v1WeightedPodAffinityTermWeight': weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  -> V1WeightedPodAffinityTerm
mkV1WeightedPodAffinityTerm :: V1PodAffinityTerm -> Int -> V1WeightedPodAffinityTerm
mkV1WeightedPodAffinityTerm V1PodAffinityTerm
v1WeightedPodAffinityTermPodAffinityTerm Int
v1WeightedPodAffinityTermWeight =
  V1WeightedPodAffinityTerm :: V1PodAffinityTerm -> Int -> V1WeightedPodAffinityTerm
V1WeightedPodAffinityTerm
  { V1PodAffinityTerm
v1WeightedPodAffinityTermPodAffinityTerm :: V1PodAffinityTerm
v1WeightedPodAffinityTermPodAffinityTerm :: V1PodAffinityTerm
v1WeightedPodAffinityTermPodAffinityTerm
  , Int
v1WeightedPodAffinityTermWeight :: Int
v1WeightedPodAffinityTermWeight :: Int
v1WeightedPodAffinityTermWeight
  }

-- ** V1WindowsSecurityContextOptions
-- | V1WindowsSecurityContextOptions
-- WindowsSecurityContextOptions contain Windows-specific options and credentials.
data V1WindowsSecurityContextOptions = V1WindowsSecurityContextOptions
  { V1WindowsSecurityContextOptions -> Maybe Text
v1WindowsSecurityContextOptionsGmsaCredentialSpec :: !(Maybe Text) -- ^ "gmsaCredentialSpec" - GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.
  , V1WindowsSecurityContextOptions -> Maybe Text
v1WindowsSecurityContextOptionsGmsaCredentialSpecName :: !(Maybe Text) -- ^ "gmsaCredentialSpecName" - GMSACredentialSpecName is the name of the GMSA credential spec to use. This field is alpha-level and is only honored by servers that enable the WindowsGMSA feature flag.
  , V1WindowsSecurityContextOptions -> Maybe Text
v1WindowsSecurityContextOptionsRunAsUserName :: !(Maybe Text) -- ^ "runAsUserName" - The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. This field is alpha-level and it is only honored by servers that enable the WindowsRunAsUserName feature flag.
  } deriving (Int -> V1WindowsSecurityContextOptions -> ShowS
[V1WindowsSecurityContextOptions] -> ShowS
V1WindowsSecurityContextOptions -> String
(Int -> V1WindowsSecurityContextOptions -> ShowS)
-> (V1WindowsSecurityContextOptions -> String)
-> ([V1WindowsSecurityContextOptions] -> ShowS)
-> Show V1WindowsSecurityContextOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1WindowsSecurityContextOptions] -> ShowS
$cshowList :: [V1WindowsSecurityContextOptions] -> ShowS
show :: V1WindowsSecurityContextOptions -> String
$cshow :: V1WindowsSecurityContextOptions -> String
showsPrec :: Int -> V1WindowsSecurityContextOptions -> ShowS
$cshowsPrec :: Int -> V1WindowsSecurityContextOptions -> ShowS
P.Show, V1WindowsSecurityContextOptions
-> V1WindowsSecurityContextOptions -> Bool
(V1WindowsSecurityContextOptions
 -> V1WindowsSecurityContextOptions -> Bool)
-> (V1WindowsSecurityContextOptions
    -> V1WindowsSecurityContextOptions -> Bool)
-> Eq V1WindowsSecurityContextOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1WindowsSecurityContextOptions
-> V1WindowsSecurityContextOptions -> Bool
$c/= :: V1WindowsSecurityContextOptions
-> V1WindowsSecurityContextOptions -> Bool
== :: V1WindowsSecurityContextOptions
-> V1WindowsSecurityContextOptions -> Bool
$c== :: V1WindowsSecurityContextOptions
-> V1WindowsSecurityContextOptions -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1WindowsSecurityContextOptions
instance A.FromJSON V1WindowsSecurityContextOptions where
  parseJSON :: Value -> Parser V1WindowsSecurityContextOptions
parseJSON = String
-> (Object -> Parser V1WindowsSecurityContextOptions)
-> Value
-> Parser V1WindowsSecurityContextOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1WindowsSecurityContextOptions" ((Object -> Parser V1WindowsSecurityContextOptions)
 -> Value -> Parser V1WindowsSecurityContextOptions)
-> (Object -> Parser V1WindowsSecurityContextOptions)
-> Value
-> Parser V1WindowsSecurityContextOptions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text -> Maybe Text -> V1WindowsSecurityContextOptions
V1WindowsSecurityContextOptions
      (Maybe Text
 -> Maybe Text -> Maybe Text -> V1WindowsSecurityContextOptions)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Text -> V1WindowsSecurityContextOptions)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"gmsaCredentialSpec")
      Parser
  (Maybe Text -> Maybe Text -> V1WindowsSecurityContextOptions)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1WindowsSecurityContextOptions)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"gmsaCredentialSpecName")
      Parser (Maybe Text -> V1WindowsSecurityContextOptions)
-> Parser (Maybe Text) -> Parser V1WindowsSecurityContextOptions
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"runAsUserName")

-- | ToJSON V1WindowsSecurityContextOptions
instance A.ToJSON V1WindowsSecurityContextOptions where
  toJSON :: V1WindowsSecurityContextOptions -> Value
toJSON V1WindowsSecurityContextOptions {Maybe Text
v1WindowsSecurityContextOptionsRunAsUserName :: Maybe Text
v1WindowsSecurityContextOptionsGmsaCredentialSpecName :: Maybe Text
v1WindowsSecurityContextOptionsGmsaCredentialSpec :: Maybe Text
v1WindowsSecurityContextOptionsRunAsUserName :: V1WindowsSecurityContextOptions -> Maybe Text
v1WindowsSecurityContextOptionsGmsaCredentialSpecName :: V1WindowsSecurityContextOptions -> Maybe Text
v1WindowsSecurityContextOptionsGmsaCredentialSpec :: V1WindowsSecurityContextOptions -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"gmsaCredentialSpec" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1WindowsSecurityContextOptionsGmsaCredentialSpec
      , Text
"gmsaCredentialSpecName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1WindowsSecurityContextOptionsGmsaCredentialSpecName
      , Text
"runAsUserName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1WindowsSecurityContextOptionsRunAsUserName
      ]


-- | Construct a value of type 'V1WindowsSecurityContextOptions' (by applying it's required fields, if any)
mkV1WindowsSecurityContextOptions
  :: V1WindowsSecurityContextOptions
mkV1WindowsSecurityContextOptions :: V1WindowsSecurityContextOptions
mkV1WindowsSecurityContextOptions =
  V1WindowsSecurityContextOptions :: Maybe Text
-> Maybe Text -> Maybe Text -> V1WindowsSecurityContextOptions
V1WindowsSecurityContextOptions
  { v1WindowsSecurityContextOptionsGmsaCredentialSpec :: Maybe Text
v1WindowsSecurityContextOptionsGmsaCredentialSpec = Maybe Text
forall a. Maybe a
Nothing
  , v1WindowsSecurityContextOptionsGmsaCredentialSpecName :: Maybe Text
v1WindowsSecurityContextOptionsGmsaCredentialSpecName = Maybe Text
forall a. Maybe a
Nothing
  , v1WindowsSecurityContextOptionsRunAsUserName :: Maybe Text
v1WindowsSecurityContextOptionsRunAsUserName = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1alpha1AggregationRule
-- | V1alpha1AggregationRule
-- AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole
data V1alpha1AggregationRule = V1alpha1AggregationRule
  { V1alpha1AggregationRule -> Maybe [V1LabelSelector]
v1alpha1AggregationRuleClusterRoleSelectors :: !(Maybe [V1LabelSelector]) -- ^ "clusterRoleSelectors" - ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole&#39;s permissions will be added
  } deriving (Int -> V1alpha1AggregationRule -> ShowS
[V1alpha1AggregationRule] -> ShowS
V1alpha1AggregationRule -> String
(Int -> V1alpha1AggregationRule -> ShowS)
-> (V1alpha1AggregationRule -> String)
-> ([V1alpha1AggregationRule] -> ShowS)
-> Show V1alpha1AggregationRule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1AggregationRule] -> ShowS
$cshowList :: [V1alpha1AggregationRule] -> ShowS
show :: V1alpha1AggregationRule -> String
$cshow :: V1alpha1AggregationRule -> String
showsPrec :: Int -> V1alpha1AggregationRule -> ShowS
$cshowsPrec :: Int -> V1alpha1AggregationRule -> ShowS
P.Show, V1alpha1AggregationRule -> V1alpha1AggregationRule -> Bool
(V1alpha1AggregationRule -> V1alpha1AggregationRule -> Bool)
-> (V1alpha1AggregationRule -> V1alpha1AggregationRule -> Bool)
-> Eq V1alpha1AggregationRule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1AggregationRule -> V1alpha1AggregationRule -> Bool
$c/= :: V1alpha1AggregationRule -> V1alpha1AggregationRule -> Bool
== :: V1alpha1AggregationRule -> V1alpha1AggregationRule -> Bool
$c== :: V1alpha1AggregationRule -> V1alpha1AggregationRule -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1AggregationRule
instance A.FromJSON V1alpha1AggregationRule where
  parseJSON :: Value -> Parser V1alpha1AggregationRule
parseJSON = String
-> (Object -> Parser V1alpha1AggregationRule)
-> Value
-> Parser V1alpha1AggregationRule
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1AggregationRule" ((Object -> Parser V1alpha1AggregationRule)
 -> Value -> Parser V1alpha1AggregationRule)
-> (Object -> Parser V1alpha1AggregationRule)
-> Value
-> Parser V1alpha1AggregationRule
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1LabelSelector] -> V1alpha1AggregationRule
V1alpha1AggregationRule
      (Maybe [V1LabelSelector] -> V1alpha1AggregationRule)
-> Parser (Maybe [V1LabelSelector])
-> Parser V1alpha1AggregationRule
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1LabelSelector])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"clusterRoleSelectors")

-- | ToJSON V1alpha1AggregationRule
instance A.ToJSON V1alpha1AggregationRule where
  toJSON :: V1alpha1AggregationRule -> Value
toJSON V1alpha1AggregationRule {Maybe [V1LabelSelector]
v1alpha1AggregationRuleClusterRoleSelectors :: Maybe [V1LabelSelector]
v1alpha1AggregationRuleClusterRoleSelectors :: V1alpha1AggregationRule -> Maybe [V1LabelSelector]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"clusterRoleSelectors" Text -> Maybe [V1LabelSelector] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1LabelSelector]
v1alpha1AggregationRuleClusterRoleSelectors
      ]


-- | Construct a value of type 'V1alpha1AggregationRule' (by applying it's required fields, if any)
mkV1alpha1AggregationRule
  :: V1alpha1AggregationRule
mkV1alpha1AggregationRule :: V1alpha1AggregationRule
mkV1alpha1AggregationRule =
  V1alpha1AggregationRule :: Maybe [V1LabelSelector] -> V1alpha1AggregationRule
V1alpha1AggregationRule
  { v1alpha1AggregationRuleClusterRoleSelectors :: Maybe [V1LabelSelector]
v1alpha1AggregationRuleClusterRoleSelectors = Maybe [V1LabelSelector]
forall a. Maybe a
Nothing
  }

-- ** V1alpha1AuditSink
-- | V1alpha1AuditSink
-- AuditSink represents a cluster level audit sink
data V1alpha1AuditSink = V1alpha1AuditSink
  { V1alpha1AuditSink -> Maybe Text
v1alpha1AuditSinkApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1AuditSink -> Maybe Text
v1alpha1AuditSinkKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1AuditSink -> Maybe V1ObjectMeta
v1alpha1AuditSinkMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1alpha1AuditSink -> Maybe V1alpha1AuditSinkSpec
v1alpha1AuditSinkSpec :: !(Maybe V1alpha1AuditSinkSpec) -- ^ "spec"
  } deriving (Int -> V1alpha1AuditSink -> ShowS
[V1alpha1AuditSink] -> ShowS
V1alpha1AuditSink -> String
(Int -> V1alpha1AuditSink -> ShowS)
-> (V1alpha1AuditSink -> String)
-> ([V1alpha1AuditSink] -> ShowS)
-> Show V1alpha1AuditSink
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1AuditSink] -> ShowS
$cshowList :: [V1alpha1AuditSink] -> ShowS
show :: V1alpha1AuditSink -> String
$cshow :: V1alpha1AuditSink -> String
showsPrec :: Int -> V1alpha1AuditSink -> ShowS
$cshowsPrec :: Int -> V1alpha1AuditSink -> ShowS
P.Show, V1alpha1AuditSink -> V1alpha1AuditSink -> Bool
(V1alpha1AuditSink -> V1alpha1AuditSink -> Bool)
-> (V1alpha1AuditSink -> V1alpha1AuditSink -> Bool)
-> Eq V1alpha1AuditSink
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1AuditSink -> V1alpha1AuditSink -> Bool
$c/= :: V1alpha1AuditSink -> V1alpha1AuditSink -> Bool
== :: V1alpha1AuditSink -> V1alpha1AuditSink -> Bool
$c== :: V1alpha1AuditSink -> V1alpha1AuditSink -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1AuditSink
instance A.FromJSON V1alpha1AuditSink where
  parseJSON :: Value -> Parser V1alpha1AuditSink
parseJSON = String
-> (Object -> Parser V1alpha1AuditSink)
-> Value
-> Parser V1alpha1AuditSink
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1AuditSink" ((Object -> Parser V1alpha1AuditSink)
 -> Value -> Parser V1alpha1AuditSink)
-> (Object -> Parser V1alpha1AuditSink)
-> Value
-> Parser V1alpha1AuditSink
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1alpha1AuditSinkSpec
-> V1alpha1AuditSink
V1alpha1AuditSink
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1alpha1AuditSinkSpec
 -> V1alpha1AuditSink)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1alpha1AuditSinkSpec
      -> V1alpha1AuditSink)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1alpha1AuditSinkSpec
   -> V1alpha1AuditSink)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1alpha1AuditSinkSpec -> V1alpha1AuditSink)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1alpha1AuditSinkSpec -> V1alpha1AuditSink)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe V1alpha1AuditSinkSpec -> V1alpha1AuditSink)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe V1alpha1AuditSinkSpec -> V1alpha1AuditSink)
-> Parser (Maybe V1alpha1AuditSinkSpec) -> Parser V1alpha1AuditSink
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1alpha1AuditSinkSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")

-- | ToJSON V1alpha1AuditSink
instance A.ToJSON V1alpha1AuditSink where
  toJSON :: V1alpha1AuditSink -> Value
toJSON V1alpha1AuditSink {Maybe Text
Maybe V1alpha1AuditSinkSpec
Maybe V1ObjectMeta
v1alpha1AuditSinkSpec :: Maybe V1alpha1AuditSinkSpec
v1alpha1AuditSinkMetadata :: Maybe V1ObjectMeta
v1alpha1AuditSinkKind :: Maybe Text
v1alpha1AuditSinkApiVersion :: Maybe Text
v1alpha1AuditSinkSpec :: V1alpha1AuditSink -> Maybe V1alpha1AuditSinkSpec
v1alpha1AuditSinkMetadata :: V1alpha1AuditSink -> Maybe V1ObjectMeta
v1alpha1AuditSinkKind :: V1alpha1AuditSink -> Maybe Text
v1alpha1AuditSinkApiVersion :: V1alpha1AuditSink -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1AuditSinkApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1AuditSinkKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1alpha1AuditSinkMetadata
      , Text
"spec" Text -> Maybe V1alpha1AuditSinkSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1alpha1AuditSinkSpec
v1alpha1AuditSinkSpec
      ]


-- | Construct a value of type 'V1alpha1AuditSink' (by applying it's required fields, if any)
mkV1alpha1AuditSink
  :: V1alpha1AuditSink
mkV1alpha1AuditSink :: V1alpha1AuditSink
mkV1alpha1AuditSink =
  V1alpha1AuditSink :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1alpha1AuditSinkSpec
-> V1alpha1AuditSink
V1alpha1AuditSink
  { v1alpha1AuditSinkApiVersion :: Maybe Text
v1alpha1AuditSinkApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1AuditSinkKind :: Maybe Text
v1alpha1AuditSinkKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1AuditSinkMetadata :: Maybe V1ObjectMeta
v1alpha1AuditSinkMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1alpha1AuditSinkSpec :: Maybe V1alpha1AuditSinkSpec
v1alpha1AuditSinkSpec = Maybe V1alpha1AuditSinkSpec
forall a. Maybe a
Nothing
  }

-- ** V1alpha1AuditSinkList
-- | V1alpha1AuditSinkList
-- AuditSinkList is a list of AuditSink items.
data V1alpha1AuditSinkList = V1alpha1AuditSinkList
  { V1alpha1AuditSinkList -> Maybe Text
v1alpha1AuditSinkListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1AuditSinkList -> [V1alpha1AuditSink]
v1alpha1AuditSinkListItems :: !([V1alpha1AuditSink]) -- ^ /Required/ "items" - List of audit configurations.
  , V1alpha1AuditSinkList -> Maybe Text
v1alpha1AuditSinkListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1AuditSinkList -> Maybe V1ListMeta
v1alpha1AuditSinkListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1alpha1AuditSinkList -> ShowS
[V1alpha1AuditSinkList] -> ShowS
V1alpha1AuditSinkList -> String
(Int -> V1alpha1AuditSinkList -> ShowS)
-> (V1alpha1AuditSinkList -> String)
-> ([V1alpha1AuditSinkList] -> ShowS)
-> Show V1alpha1AuditSinkList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1AuditSinkList] -> ShowS
$cshowList :: [V1alpha1AuditSinkList] -> ShowS
show :: V1alpha1AuditSinkList -> String
$cshow :: V1alpha1AuditSinkList -> String
showsPrec :: Int -> V1alpha1AuditSinkList -> ShowS
$cshowsPrec :: Int -> V1alpha1AuditSinkList -> ShowS
P.Show, V1alpha1AuditSinkList -> V1alpha1AuditSinkList -> Bool
(V1alpha1AuditSinkList -> V1alpha1AuditSinkList -> Bool)
-> (V1alpha1AuditSinkList -> V1alpha1AuditSinkList -> Bool)
-> Eq V1alpha1AuditSinkList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1AuditSinkList -> V1alpha1AuditSinkList -> Bool
$c/= :: V1alpha1AuditSinkList -> V1alpha1AuditSinkList -> Bool
== :: V1alpha1AuditSinkList -> V1alpha1AuditSinkList -> Bool
$c== :: V1alpha1AuditSinkList -> V1alpha1AuditSinkList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1AuditSinkList
instance A.FromJSON V1alpha1AuditSinkList where
  parseJSON :: Value -> Parser V1alpha1AuditSinkList
parseJSON = String
-> (Object -> Parser V1alpha1AuditSinkList)
-> Value
-> Parser V1alpha1AuditSinkList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1AuditSinkList" ((Object -> Parser V1alpha1AuditSinkList)
 -> Value -> Parser V1alpha1AuditSinkList)
-> (Object -> Parser V1alpha1AuditSinkList)
-> Value
-> Parser V1alpha1AuditSinkList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1alpha1AuditSink]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1AuditSinkList
V1alpha1AuditSinkList
      (Maybe Text
 -> [V1alpha1AuditSink]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1alpha1AuditSinkList)
-> Parser (Maybe Text)
-> Parser
     ([V1alpha1AuditSink]
      -> Maybe Text -> Maybe V1ListMeta -> V1alpha1AuditSinkList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1alpha1AuditSink]
   -> Maybe Text -> Maybe V1ListMeta -> V1alpha1AuditSinkList)
-> Parser [V1alpha1AuditSink]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1alpha1AuditSinkList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1alpha1AuditSink]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1alpha1AuditSinkList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1alpha1AuditSinkList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1alpha1AuditSinkList)
-> Parser (Maybe V1ListMeta) -> Parser V1alpha1AuditSinkList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1alpha1AuditSinkList
instance A.ToJSON V1alpha1AuditSinkList where
  toJSON :: V1alpha1AuditSinkList -> Value
toJSON V1alpha1AuditSinkList {[V1alpha1AuditSink]
Maybe Text
Maybe V1ListMeta
v1alpha1AuditSinkListMetadata :: Maybe V1ListMeta
v1alpha1AuditSinkListKind :: Maybe Text
v1alpha1AuditSinkListItems :: [V1alpha1AuditSink]
v1alpha1AuditSinkListApiVersion :: Maybe Text
v1alpha1AuditSinkListMetadata :: V1alpha1AuditSinkList -> Maybe V1ListMeta
v1alpha1AuditSinkListKind :: V1alpha1AuditSinkList -> Maybe Text
v1alpha1AuditSinkListItems :: V1alpha1AuditSinkList -> [V1alpha1AuditSink]
v1alpha1AuditSinkListApiVersion :: V1alpha1AuditSinkList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1AuditSinkListApiVersion
      , Text
"items" Text -> [V1alpha1AuditSink] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1alpha1AuditSink]
v1alpha1AuditSinkListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1AuditSinkListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1alpha1AuditSinkListMetadata
      ]


-- | Construct a value of type 'V1alpha1AuditSinkList' (by applying it's required fields, if any)
mkV1alpha1AuditSinkList
  :: [V1alpha1AuditSink] -- ^ 'v1alpha1AuditSinkListItems': List of audit configurations.
  -> V1alpha1AuditSinkList
mkV1alpha1AuditSinkList :: [V1alpha1AuditSink] -> V1alpha1AuditSinkList
mkV1alpha1AuditSinkList [V1alpha1AuditSink]
v1alpha1AuditSinkListItems =
  V1alpha1AuditSinkList :: Maybe Text
-> [V1alpha1AuditSink]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1AuditSinkList
V1alpha1AuditSinkList
  { v1alpha1AuditSinkListApiVersion :: Maybe Text
v1alpha1AuditSinkListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1alpha1AuditSink]
v1alpha1AuditSinkListItems :: [V1alpha1AuditSink]
v1alpha1AuditSinkListItems :: [V1alpha1AuditSink]
v1alpha1AuditSinkListItems
  , v1alpha1AuditSinkListKind :: Maybe Text
v1alpha1AuditSinkListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1AuditSinkListMetadata :: Maybe V1ListMeta
v1alpha1AuditSinkListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1alpha1AuditSinkSpec
-- | V1alpha1AuditSinkSpec
-- AuditSinkSpec holds the spec for the audit sink
data V1alpha1AuditSinkSpec = V1alpha1AuditSinkSpec
  { V1alpha1AuditSinkSpec -> V1alpha1Policy
v1alpha1AuditSinkSpecPolicy :: !(V1alpha1Policy) -- ^ /Required/ "policy"
  , V1alpha1AuditSinkSpec -> V1alpha1Webhook
v1alpha1AuditSinkSpecWebhook :: !(V1alpha1Webhook) -- ^ /Required/ "webhook"
  } deriving (Int -> V1alpha1AuditSinkSpec -> ShowS
[V1alpha1AuditSinkSpec] -> ShowS
V1alpha1AuditSinkSpec -> String
(Int -> V1alpha1AuditSinkSpec -> ShowS)
-> (V1alpha1AuditSinkSpec -> String)
-> ([V1alpha1AuditSinkSpec] -> ShowS)
-> Show V1alpha1AuditSinkSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1AuditSinkSpec] -> ShowS
$cshowList :: [V1alpha1AuditSinkSpec] -> ShowS
show :: V1alpha1AuditSinkSpec -> String
$cshow :: V1alpha1AuditSinkSpec -> String
showsPrec :: Int -> V1alpha1AuditSinkSpec -> ShowS
$cshowsPrec :: Int -> V1alpha1AuditSinkSpec -> ShowS
P.Show, V1alpha1AuditSinkSpec -> V1alpha1AuditSinkSpec -> Bool
(V1alpha1AuditSinkSpec -> V1alpha1AuditSinkSpec -> Bool)
-> (V1alpha1AuditSinkSpec -> V1alpha1AuditSinkSpec -> Bool)
-> Eq V1alpha1AuditSinkSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1AuditSinkSpec -> V1alpha1AuditSinkSpec -> Bool
$c/= :: V1alpha1AuditSinkSpec -> V1alpha1AuditSinkSpec -> Bool
== :: V1alpha1AuditSinkSpec -> V1alpha1AuditSinkSpec -> Bool
$c== :: V1alpha1AuditSinkSpec -> V1alpha1AuditSinkSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1AuditSinkSpec
instance A.FromJSON V1alpha1AuditSinkSpec where
  parseJSON :: Value -> Parser V1alpha1AuditSinkSpec
parseJSON = String
-> (Object -> Parser V1alpha1AuditSinkSpec)
-> Value
-> Parser V1alpha1AuditSinkSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1AuditSinkSpec" ((Object -> Parser V1alpha1AuditSinkSpec)
 -> Value -> Parser V1alpha1AuditSinkSpec)
-> (Object -> Parser V1alpha1AuditSinkSpec)
-> Value
-> Parser V1alpha1AuditSinkSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    V1alpha1Policy -> V1alpha1Webhook -> V1alpha1AuditSinkSpec
V1alpha1AuditSinkSpec
      (V1alpha1Policy -> V1alpha1Webhook -> V1alpha1AuditSinkSpec)
-> Parser V1alpha1Policy
-> Parser (V1alpha1Webhook -> V1alpha1AuditSinkSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser V1alpha1Policy
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"policy")
      Parser (V1alpha1Webhook -> V1alpha1AuditSinkSpec)
-> Parser V1alpha1Webhook -> Parser V1alpha1AuditSinkSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1alpha1Webhook
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"webhook")

-- | ToJSON V1alpha1AuditSinkSpec
instance A.ToJSON V1alpha1AuditSinkSpec where
  toJSON :: V1alpha1AuditSinkSpec -> Value
toJSON V1alpha1AuditSinkSpec {V1alpha1Webhook
V1alpha1Policy
v1alpha1AuditSinkSpecWebhook :: V1alpha1Webhook
v1alpha1AuditSinkSpecPolicy :: V1alpha1Policy
v1alpha1AuditSinkSpecWebhook :: V1alpha1AuditSinkSpec -> V1alpha1Webhook
v1alpha1AuditSinkSpecPolicy :: V1alpha1AuditSinkSpec -> V1alpha1Policy
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"policy" Text -> V1alpha1Policy -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1alpha1Policy
v1alpha1AuditSinkSpecPolicy
      , Text
"webhook" Text -> V1alpha1Webhook -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1alpha1Webhook
v1alpha1AuditSinkSpecWebhook
      ]


-- | Construct a value of type 'V1alpha1AuditSinkSpec' (by applying it's required fields, if any)
mkV1alpha1AuditSinkSpec
  :: V1alpha1Policy -- ^ 'v1alpha1AuditSinkSpecPolicy' 
  -> V1alpha1Webhook -- ^ 'v1alpha1AuditSinkSpecWebhook' 
  -> V1alpha1AuditSinkSpec
mkV1alpha1AuditSinkSpec :: V1alpha1Policy -> V1alpha1Webhook -> V1alpha1AuditSinkSpec
mkV1alpha1AuditSinkSpec V1alpha1Policy
v1alpha1AuditSinkSpecPolicy V1alpha1Webhook
v1alpha1AuditSinkSpecWebhook =
  V1alpha1AuditSinkSpec :: V1alpha1Policy -> V1alpha1Webhook -> V1alpha1AuditSinkSpec
V1alpha1AuditSinkSpec
  { V1alpha1Policy
v1alpha1AuditSinkSpecPolicy :: V1alpha1Policy
v1alpha1AuditSinkSpecPolicy :: V1alpha1Policy
v1alpha1AuditSinkSpecPolicy
  , V1alpha1Webhook
v1alpha1AuditSinkSpecWebhook :: V1alpha1Webhook
v1alpha1AuditSinkSpecWebhook :: V1alpha1Webhook
v1alpha1AuditSinkSpecWebhook
  }

-- ** V1alpha1ClusterRole
-- | V1alpha1ClusterRole
-- ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.
data V1alpha1ClusterRole = V1alpha1ClusterRole
  { V1alpha1ClusterRole -> Maybe V1alpha1AggregationRule
v1alpha1ClusterRoleAggregationRule :: !(Maybe V1alpha1AggregationRule) -- ^ "aggregationRule"
  , V1alpha1ClusterRole -> Maybe Text
v1alpha1ClusterRoleApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1ClusterRole -> Maybe Text
v1alpha1ClusterRoleKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1ClusterRole -> Maybe V1ObjectMeta
v1alpha1ClusterRoleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1alpha1ClusterRole -> Maybe [V1alpha1PolicyRule]
v1alpha1ClusterRoleRules :: !(Maybe [V1alpha1PolicyRule]) -- ^ "rules" - Rules holds all the PolicyRules for this ClusterRole
  } deriving (Int -> V1alpha1ClusterRole -> ShowS
[V1alpha1ClusterRole] -> ShowS
V1alpha1ClusterRole -> String
(Int -> V1alpha1ClusterRole -> ShowS)
-> (V1alpha1ClusterRole -> String)
-> ([V1alpha1ClusterRole] -> ShowS)
-> Show V1alpha1ClusterRole
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1ClusterRole] -> ShowS
$cshowList :: [V1alpha1ClusterRole] -> ShowS
show :: V1alpha1ClusterRole -> String
$cshow :: V1alpha1ClusterRole -> String
showsPrec :: Int -> V1alpha1ClusterRole -> ShowS
$cshowsPrec :: Int -> V1alpha1ClusterRole -> ShowS
P.Show, V1alpha1ClusterRole -> V1alpha1ClusterRole -> Bool
(V1alpha1ClusterRole -> V1alpha1ClusterRole -> Bool)
-> (V1alpha1ClusterRole -> V1alpha1ClusterRole -> Bool)
-> Eq V1alpha1ClusterRole
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1ClusterRole -> V1alpha1ClusterRole -> Bool
$c/= :: V1alpha1ClusterRole -> V1alpha1ClusterRole -> Bool
== :: V1alpha1ClusterRole -> V1alpha1ClusterRole -> Bool
$c== :: V1alpha1ClusterRole -> V1alpha1ClusterRole -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1ClusterRole
instance A.FromJSON V1alpha1ClusterRole where
  parseJSON :: Value -> Parser V1alpha1ClusterRole
parseJSON = String
-> (Object -> Parser V1alpha1ClusterRole)
-> Value
-> Parser V1alpha1ClusterRole
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1ClusterRole" ((Object -> Parser V1alpha1ClusterRole)
 -> Value -> Parser V1alpha1ClusterRole)
-> (Object -> Parser V1alpha1ClusterRole)
-> Value
-> Parser V1alpha1ClusterRole
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1alpha1AggregationRule
-> Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1alpha1PolicyRule]
-> V1alpha1ClusterRole
V1alpha1ClusterRole
      (Maybe V1alpha1AggregationRule
 -> Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe [V1alpha1PolicyRule]
 -> V1alpha1ClusterRole)
-> Parser (Maybe V1alpha1AggregationRule)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [V1alpha1PolicyRule]
      -> V1alpha1ClusterRole)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1alpha1AggregationRule)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"aggregationRule")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [V1alpha1PolicyRule]
   -> V1alpha1ClusterRole)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [V1alpha1PolicyRule]
      -> V1alpha1ClusterRole)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [V1alpha1PolicyRule]
   -> V1alpha1ClusterRole)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe [V1alpha1PolicyRule] -> V1alpha1ClusterRole)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe [V1alpha1PolicyRule] -> V1alpha1ClusterRole)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe [V1alpha1PolicyRule] -> V1alpha1ClusterRole)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe [V1alpha1PolicyRule] -> V1alpha1ClusterRole)
-> Parser (Maybe [V1alpha1PolicyRule])
-> Parser V1alpha1ClusterRole
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1alpha1PolicyRule])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rules")

-- | ToJSON V1alpha1ClusterRole
instance A.ToJSON V1alpha1ClusterRole where
  toJSON :: V1alpha1ClusterRole -> Value
toJSON V1alpha1ClusterRole {Maybe [V1alpha1PolicyRule]
Maybe Text
Maybe V1alpha1AggregationRule
Maybe V1ObjectMeta
v1alpha1ClusterRoleRules :: Maybe [V1alpha1PolicyRule]
v1alpha1ClusterRoleMetadata :: Maybe V1ObjectMeta
v1alpha1ClusterRoleKind :: Maybe Text
v1alpha1ClusterRoleApiVersion :: Maybe Text
v1alpha1ClusterRoleAggregationRule :: Maybe V1alpha1AggregationRule
v1alpha1ClusterRoleRules :: V1alpha1ClusterRole -> Maybe [V1alpha1PolicyRule]
v1alpha1ClusterRoleMetadata :: V1alpha1ClusterRole -> Maybe V1ObjectMeta
v1alpha1ClusterRoleKind :: V1alpha1ClusterRole -> Maybe Text
v1alpha1ClusterRoleApiVersion :: V1alpha1ClusterRole -> Maybe Text
v1alpha1ClusterRoleAggregationRule :: V1alpha1ClusterRole -> Maybe V1alpha1AggregationRule
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"aggregationRule" Text -> Maybe V1alpha1AggregationRule -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1alpha1AggregationRule
v1alpha1ClusterRoleAggregationRule
      , Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1ClusterRoleApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1ClusterRoleKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1alpha1ClusterRoleMetadata
      , Text
"rules" Text -> Maybe [V1alpha1PolicyRule] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1alpha1PolicyRule]
v1alpha1ClusterRoleRules
      ]


-- | Construct a value of type 'V1alpha1ClusterRole' (by applying it's required fields, if any)
mkV1alpha1ClusterRole
  :: V1alpha1ClusterRole
mkV1alpha1ClusterRole :: V1alpha1ClusterRole
mkV1alpha1ClusterRole =
  V1alpha1ClusterRole :: Maybe V1alpha1AggregationRule
-> Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1alpha1PolicyRule]
-> V1alpha1ClusterRole
V1alpha1ClusterRole
  { v1alpha1ClusterRoleAggregationRule :: Maybe V1alpha1AggregationRule
v1alpha1ClusterRoleAggregationRule = Maybe V1alpha1AggregationRule
forall a. Maybe a
Nothing
  , v1alpha1ClusterRoleApiVersion :: Maybe Text
v1alpha1ClusterRoleApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1ClusterRoleKind :: Maybe Text
v1alpha1ClusterRoleKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1ClusterRoleMetadata :: Maybe V1ObjectMeta
v1alpha1ClusterRoleMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1alpha1ClusterRoleRules :: Maybe [V1alpha1PolicyRule]
v1alpha1ClusterRoleRules = Maybe [V1alpha1PolicyRule]
forall a. Maybe a
Nothing
  }

-- ** V1alpha1ClusterRoleBinding
-- | V1alpha1ClusterRoleBinding
-- ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace, and adds who information via Subject.
data V1alpha1ClusterRoleBinding = V1alpha1ClusterRoleBinding
  { V1alpha1ClusterRoleBinding -> Maybe Text
v1alpha1ClusterRoleBindingApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1ClusterRoleBinding -> Maybe Text
v1alpha1ClusterRoleBindingKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1ClusterRoleBinding -> Maybe V1ObjectMeta
v1alpha1ClusterRoleBindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1alpha1ClusterRoleBinding -> V1alpha1RoleRef
v1alpha1ClusterRoleBindingRoleRef :: !(V1alpha1RoleRef) -- ^ /Required/ "roleRef"
  , V1alpha1ClusterRoleBinding -> Maybe [V1alpha1Subject]
v1alpha1ClusterRoleBindingSubjects :: !(Maybe [V1alpha1Subject]) -- ^ "subjects" - Subjects holds references to the objects the role applies to.
  } deriving (Int -> V1alpha1ClusterRoleBinding -> ShowS
[V1alpha1ClusterRoleBinding] -> ShowS
V1alpha1ClusterRoleBinding -> String
(Int -> V1alpha1ClusterRoleBinding -> ShowS)
-> (V1alpha1ClusterRoleBinding -> String)
-> ([V1alpha1ClusterRoleBinding] -> ShowS)
-> Show V1alpha1ClusterRoleBinding
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1ClusterRoleBinding] -> ShowS
$cshowList :: [V1alpha1ClusterRoleBinding] -> ShowS
show :: V1alpha1ClusterRoleBinding -> String
$cshow :: V1alpha1ClusterRoleBinding -> String
showsPrec :: Int -> V1alpha1ClusterRoleBinding -> ShowS
$cshowsPrec :: Int -> V1alpha1ClusterRoleBinding -> ShowS
P.Show, V1alpha1ClusterRoleBinding -> V1alpha1ClusterRoleBinding -> Bool
(V1alpha1ClusterRoleBinding -> V1alpha1ClusterRoleBinding -> Bool)
-> (V1alpha1ClusterRoleBinding
    -> V1alpha1ClusterRoleBinding -> Bool)
-> Eq V1alpha1ClusterRoleBinding
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1ClusterRoleBinding -> V1alpha1ClusterRoleBinding -> Bool
$c/= :: V1alpha1ClusterRoleBinding -> V1alpha1ClusterRoleBinding -> Bool
== :: V1alpha1ClusterRoleBinding -> V1alpha1ClusterRoleBinding -> Bool
$c== :: V1alpha1ClusterRoleBinding -> V1alpha1ClusterRoleBinding -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1ClusterRoleBinding
instance A.FromJSON V1alpha1ClusterRoleBinding where
  parseJSON :: Value -> Parser V1alpha1ClusterRoleBinding
parseJSON = String
-> (Object -> Parser V1alpha1ClusterRoleBinding)
-> Value
-> Parser V1alpha1ClusterRoleBinding
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1ClusterRoleBinding" ((Object -> Parser V1alpha1ClusterRoleBinding)
 -> Value -> Parser V1alpha1ClusterRoleBinding)
-> (Object -> Parser V1alpha1ClusterRoleBinding)
-> Value
-> Parser V1alpha1ClusterRoleBinding
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1alpha1RoleRef
-> Maybe [V1alpha1Subject]
-> V1alpha1ClusterRoleBinding
V1alpha1ClusterRoleBinding
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1alpha1RoleRef
 -> Maybe [V1alpha1Subject]
 -> V1alpha1ClusterRoleBinding)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1alpha1RoleRef
      -> Maybe [V1alpha1Subject]
      -> V1alpha1ClusterRoleBinding)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1alpha1RoleRef
   -> Maybe [V1alpha1Subject]
   -> V1alpha1ClusterRoleBinding)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1alpha1RoleRef
      -> Maybe [V1alpha1Subject]
      -> V1alpha1ClusterRoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1alpha1RoleRef
   -> Maybe [V1alpha1Subject]
   -> V1alpha1ClusterRoleBinding)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1alpha1RoleRef
      -> Maybe [V1alpha1Subject] -> V1alpha1ClusterRoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1alpha1RoleRef
   -> Maybe [V1alpha1Subject] -> V1alpha1ClusterRoleBinding)
-> Parser V1alpha1RoleRef
-> Parser (Maybe [V1alpha1Subject] -> V1alpha1ClusterRoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1alpha1RoleRef
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"roleRef")
      Parser (Maybe [V1alpha1Subject] -> V1alpha1ClusterRoleBinding)
-> Parser (Maybe [V1alpha1Subject])
-> Parser V1alpha1ClusterRoleBinding
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1alpha1Subject])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"subjects")

-- | ToJSON V1alpha1ClusterRoleBinding
instance A.ToJSON V1alpha1ClusterRoleBinding where
  toJSON :: V1alpha1ClusterRoleBinding -> Value
toJSON V1alpha1ClusterRoleBinding {Maybe [V1alpha1Subject]
Maybe Text
Maybe V1ObjectMeta
V1alpha1RoleRef
v1alpha1ClusterRoleBindingSubjects :: Maybe [V1alpha1Subject]
v1alpha1ClusterRoleBindingRoleRef :: V1alpha1RoleRef
v1alpha1ClusterRoleBindingMetadata :: Maybe V1ObjectMeta
v1alpha1ClusterRoleBindingKind :: Maybe Text
v1alpha1ClusterRoleBindingApiVersion :: Maybe Text
v1alpha1ClusterRoleBindingSubjects :: V1alpha1ClusterRoleBinding -> Maybe [V1alpha1Subject]
v1alpha1ClusterRoleBindingRoleRef :: V1alpha1ClusterRoleBinding -> V1alpha1RoleRef
v1alpha1ClusterRoleBindingMetadata :: V1alpha1ClusterRoleBinding -> Maybe V1ObjectMeta
v1alpha1ClusterRoleBindingKind :: V1alpha1ClusterRoleBinding -> Maybe Text
v1alpha1ClusterRoleBindingApiVersion :: V1alpha1ClusterRoleBinding -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1ClusterRoleBindingApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1ClusterRoleBindingKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1alpha1ClusterRoleBindingMetadata
      , Text
"roleRef" Text -> V1alpha1RoleRef -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1alpha1RoleRef
v1alpha1ClusterRoleBindingRoleRef
      , Text
"subjects" Text -> Maybe [V1alpha1Subject] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1alpha1Subject]
v1alpha1ClusterRoleBindingSubjects
      ]


-- | Construct a value of type 'V1alpha1ClusterRoleBinding' (by applying it's required fields, if any)
mkV1alpha1ClusterRoleBinding
  :: V1alpha1RoleRef -- ^ 'v1alpha1ClusterRoleBindingRoleRef' 
  -> V1alpha1ClusterRoleBinding
mkV1alpha1ClusterRoleBinding :: V1alpha1RoleRef -> V1alpha1ClusterRoleBinding
mkV1alpha1ClusterRoleBinding V1alpha1RoleRef
v1alpha1ClusterRoleBindingRoleRef =
  V1alpha1ClusterRoleBinding :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1alpha1RoleRef
-> Maybe [V1alpha1Subject]
-> V1alpha1ClusterRoleBinding
V1alpha1ClusterRoleBinding
  { v1alpha1ClusterRoleBindingApiVersion :: Maybe Text
v1alpha1ClusterRoleBindingApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1ClusterRoleBindingKind :: Maybe Text
v1alpha1ClusterRoleBindingKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1ClusterRoleBindingMetadata :: Maybe V1ObjectMeta
v1alpha1ClusterRoleBindingMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1alpha1RoleRef
v1alpha1ClusterRoleBindingRoleRef :: V1alpha1RoleRef
v1alpha1ClusterRoleBindingRoleRef :: V1alpha1RoleRef
v1alpha1ClusterRoleBindingRoleRef
  , v1alpha1ClusterRoleBindingSubjects :: Maybe [V1alpha1Subject]
v1alpha1ClusterRoleBindingSubjects = Maybe [V1alpha1Subject]
forall a. Maybe a
Nothing
  }

-- ** V1alpha1ClusterRoleBindingList
-- | V1alpha1ClusterRoleBindingList
-- ClusterRoleBindingList is a collection of ClusterRoleBindings
data V1alpha1ClusterRoleBindingList = V1alpha1ClusterRoleBindingList
  { V1alpha1ClusterRoleBindingList -> Maybe Text
v1alpha1ClusterRoleBindingListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1ClusterRoleBindingList -> [V1alpha1ClusterRoleBinding]
v1alpha1ClusterRoleBindingListItems :: !([V1alpha1ClusterRoleBinding]) -- ^ /Required/ "items" - Items is a list of ClusterRoleBindings
  , V1alpha1ClusterRoleBindingList -> Maybe Text
v1alpha1ClusterRoleBindingListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1ClusterRoleBindingList -> Maybe V1ListMeta
v1alpha1ClusterRoleBindingListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1alpha1ClusterRoleBindingList -> ShowS
[V1alpha1ClusterRoleBindingList] -> ShowS
V1alpha1ClusterRoleBindingList -> String
(Int -> V1alpha1ClusterRoleBindingList -> ShowS)
-> (V1alpha1ClusterRoleBindingList -> String)
-> ([V1alpha1ClusterRoleBindingList] -> ShowS)
-> Show V1alpha1ClusterRoleBindingList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1ClusterRoleBindingList] -> ShowS
$cshowList :: [V1alpha1ClusterRoleBindingList] -> ShowS
show :: V1alpha1ClusterRoleBindingList -> String
$cshow :: V1alpha1ClusterRoleBindingList -> String
showsPrec :: Int -> V1alpha1ClusterRoleBindingList -> ShowS
$cshowsPrec :: Int -> V1alpha1ClusterRoleBindingList -> ShowS
P.Show, V1alpha1ClusterRoleBindingList
-> V1alpha1ClusterRoleBindingList -> Bool
(V1alpha1ClusterRoleBindingList
 -> V1alpha1ClusterRoleBindingList -> Bool)
-> (V1alpha1ClusterRoleBindingList
    -> V1alpha1ClusterRoleBindingList -> Bool)
-> Eq V1alpha1ClusterRoleBindingList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1ClusterRoleBindingList
-> V1alpha1ClusterRoleBindingList -> Bool
$c/= :: V1alpha1ClusterRoleBindingList
-> V1alpha1ClusterRoleBindingList -> Bool
== :: V1alpha1ClusterRoleBindingList
-> V1alpha1ClusterRoleBindingList -> Bool
$c== :: V1alpha1ClusterRoleBindingList
-> V1alpha1ClusterRoleBindingList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1ClusterRoleBindingList
instance A.FromJSON V1alpha1ClusterRoleBindingList where
  parseJSON :: Value -> Parser V1alpha1ClusterRoleBindingList
parseJSON = String
-> (Object -> Parser V1alpha1ClusterRoleBindingList)
-> Value
-> Parser V1alpha1ClusterRoleBindingList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1ClusterRoleBindingList" ((Object -> Parser V1alpha1ClusterRoleBindingList)
 -> Value -> Parser V1alpha1ClusterRoleBindingList)
-> (Object -> Parser V1alpha1ClusterRoleBindingList)
-> Value
-> Parser V1alpha1ClusterRoleBindingList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1alpha1ClusterRoleBinding]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1ClusterRoleBindingList
V1alpha1ClusterRoleBindingList
      (Maybe Text
 -> [V1alpha1ClusterRoleBinding]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1alpha1ClusterRoleBindingList)
-> Parser (Maybe Text)
-> Parser
     ([V1alpha1ClusterRoleBinding]
      -> Maybe Text
      -> Maybe V1ListMeta
      -> V1alpha1ClusterRoleBindingList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1alpha1ClusterRoleBinding]
   -> Maybe Text
   -> Maybe V1ListMeta
   -> V1alpha1ClusterRoleBindingList)
-> Parser [V1alpha1ClusterRoleBinding]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1alpha1ClusterRoleBindingList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1alpha1ClusterRoleBinding]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> V1alpha1ClusterRoleBindingList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1alpha1ClusterRoleBindingList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1alpha1ClusterRoleBindingList)
-> Parser (Maybe V1ListMeta)
-> Parser V1alpha1ClusterRoleBindingList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1alpha1ClusterRoleBindingList
instance A.ToJSON V1alpha1ClusterRoleBindingList where
  toJSON :: V1alpha1ClusterRoleBindingList -> Value
toJSON V1alpha1ClusterRoleBindingList {[V1alpha1ClusterRoleBinding]
Maybe Text
Maybe V1ListMeta
v1alpha1ClusterRoleBindingListMetadata :: Maybe V1ListMeta
v1alpha1ClusterRoleBindingListKind :: Maybe Text
v1alpha1ClusterRoleBindingListItems :: [V1alpha1ClusterRoleBinding]
v1alpha1ClusterRoleBindingListApiVersion :: Maybe Text
v1alpha1ClusterRoleBindingListMetadata :: V1alpha1ClusterRoleBindingList -> Maybe V1ListMeta
v1alpha1ClusterRoleBindingListKind :: V1alpha1ClusterRoleBindingList -> Maybe Text
v1alpha1ClusterRoleBindingListItems :: V1alpha1ClusterRoleBindingList -> [V1alpha1ClusterRoleBinding]
v1alpha1ClusterRoleBindingListApiVersion :: V1alpha1ClusterRoleBindingList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1ClusterRoleBindingListApiVersion
      , Text
"items" Text -> [V1alpha1ClusterRoleBinding] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1alpha1ClusterRoleBinding]
v1alpha1ClusterRoleBindingListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1ClusterRoleBindingListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1alpha1ClusterRoleBindingListMetadata
      ]


-- | Construct a value of type 'V1alpha1ClusterRoleBindingList' (by applying it's required fields, if any)
mkV1alpha1ClusterRoleBindingList
  :: [V1alpha1ClusterRoleBinding] -- ^ 'v1alpha1ClusterRoleBindingListItems': Items is a list of ClusterRoleBindings
  -> V1alpha1ClusterRoleBindingList
mkV1alpha1ClusterRoleBindingList :: [V1alpha1ClusterRoleBinding] -> V1alpha1ClusterRoleBindingList
mkV1alpha1ClusterRoleBindingList [V1alpha1ClusterRoleBinding]
v1alpha1ClusterRoleBindingListItems =
  V1alpha1ClusterRoleBindingList :: Maybe Text
-> [V1alpha1ClusterRoleBinding]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1ClusterRoleBindingList
V1alpha1ClusterRoleBindingList
  { v1alpha1ClusterRoleBindingListApiVersion :: Maybe Text
v1alpha1ClusterRoleBindingListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1alpha1ClusterRoleBinding]
v1alpha1ClusterRoleBindingListItems :: [V1alpha1ClusterRoleBinding]
v1alpha1ClusterRoleBindingListItems :: [V1alpha1ClusterRoleBinding]
v1alpha1ClusterRoleBindingListItems
  , v1alpha1ClusterRoleBindingListKind :: Maybe Text
v1alpha1ClusterRoleBindingListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1ClusterRoleBindingListMetadata :: Maybe V1ListMeta
v1alpha1ClusterRoleBindingListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1alpha1ClusterRoleList
-- | V1alpha1ClusterRoleList
-- ClusterRoleList is a collection of ClusterRoles
data V1alpha1ClusterRoleList = V1alpha1ClusterRoleList
  { V1alpha1ClusterRoleList -> Maybe Text
v1alpha1ClusterRoleListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1ClusterRoleList -> [V1alpha1ClusterRole]
v1alpha1ClusterRoleListItems :: !([V1alpha1ClusterRole]) -- ^ /Required/ "items" - Items is a list of ClusterRoles
  , V1alpha1ClusterRoleList -> Maybe Text
v1alpha1ClusterRoleListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1ClusterRoleList -> Maybe V1ListMeta
v1alpha1ClusterRoleListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1alpha1ClusterRoleList -> ShowS
[V1alpha1ClusterRoleList] -> ShowS
V1alpha1ClusterRoleList -> String
(Int -> V1alpha1ClusterRoleList -> ShowS)
-> (V1alpha1ClusterRoleList -> String)
-> ([V1alpha1ClusterRoleList] -> ShowS)
-> Show V1alpha1ClusterRoleList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1ClusterRoleList] -> ShowS
$cshowList :: [V1alpha1ClusterRoleList] -> ShowS
show :: V1alpha1ClusterRoleList -> String
$cshow :: V1alpha1ClusterRoleList -> String
showsPrec :: Int -> V1alpha1ClusterRoleList -> ShowS
$cshowsPrec :: Int -> V1alpha1ClusterRoleList -> ShowS
P.Show, V1alpha1ClusterRoleList -> V1alpha1ClusterRoleList -> Bool
(V1alpha1ClusterRoleList -> V1alpha1ClusterRoleList -> Bool)
-> (V1alpha1ClusterRoleList -> V1alpha1ClusterRoleList -> Bool)
-> Eq V1alpha1ClusterRoleList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1ClusterRoleList -> V1alpha1ClusterRoleList -> Bool
$c/= :: V1alpha1ClusterRoleList -> V1alpha1ClusterRoleList -> Bool
== :: V1alpha1ClusterRoleList -> V1alpha1ClusterRoleList -> Bool
$c== :: V1alpha1ClusterRoleList -> V1alpha1ClusterRoleList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1ClusterRoleList
instance A.FromJSON V1alpha1ClusterRoleList where
  parseJSON :: Value -> Parser V1alpha1ClusterRoleList
parseJSON = String
-> (Object -> Parser V1alpha1ClusterRoleList)
-> Value
-> Parser V1alpha1ClusterRoleList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1ClusterRoleList" ((Object -> Parser V1alpha1ClusterRoleList)
 -> Value -> Parser V1alpha1ClusterRoleList)
-> (Object -> Parser V1alpha1ClusterRoleList)
-> Value
-> Parser V1alpha1ClusterRoleList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1alpha1ClusterRole]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1ClusterRoleList
V1alpha1ClusterRoleList
      (Maybe Text
 -> [V1alpha1ClusterRole]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1alpha1ClusterRoleList)
-> Parser (Maybe Text)
-> Parser
     ([V1alpha1ClusterRole]
      -> Maybe Text -> Maybe V1ListMeta -> V1alpha1ClusterRoleList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1alpha1ClusterRole]
   -> Maybe Text -> Maybe V1ListMeta -> V1alpha1ClusterRoleList)
-> Parser [V1alpha1ClusterRole]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1alpha1ClusterRoleList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1alpha1ClusterRole]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1alpha1ClusterRoleList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1alpha1ClusterRoleList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1alpha1ClusterRoleList)
-> Parser (Maybe V1ListMeta) -> Parser V1alpha1ClusterRoleList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1alpha1ClusterRoleList
instance A.ToJSON V1alpha1ClusterRoleList where
  toJSON :: V1alpha1ClusterRoleList -> Value
toJSON V1alpha1ClusterRoleList {[V1alpha1ClusterRole]
Maybe Text
Maybe V1ListMeta
v1alpha1ClusterRoleListMetadata :: Maybe V1ListMeta
v1alpha1ClusterRoleListKind :: Maybe Text
v1alpha1ClusterRoleListItems :: [V1alpha1ClusterRole]
v1alpha1ClusterRoleListApiVersion :: Maybe Text
v1alpha1ClusterRoleListMetadata :: V1alpha1ClusterRoleList -> Maybe V1ListMeta
v1alpha1ClusterRoleListKind :: V1alpha1ClusterRoleList -> Maybe Text
v1alpha1ClusterRoleListItems :: V1alpha1ClusterRoleList -> [V1alpha1ClusterRole]
v1alpha1ClusterRoleListApiVersion :: V1alpha1ClusterRoleList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1ClusterRoleListApiVersion
      , Text
"items" Text -> [V1alpha1ClusterRole] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1alpha1ClusterRole]
v1alpha1ClusterRoleListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1ClusterRoleListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1alpha1ClusterRoleListMetadata
      ]


-- | Construct a value of type 'V1alpha1ClusterRoleList' (by applying it's required fields, if any)
mkV1alpha1ClusterRoleList
  :: [V1alpha1ClusterRole] -- ^ 'v1alpha1ClusterRoleListItems': Items is a list of ClusterRoles
  -> V1alpha1ClusterRoleList
mkV1alpha1ClusterRoleList :: [V1alpha1ClusterRole] -> V1alpha1ClusterRoleList
mkV1alpha1ClusterRoleList [V1alpha1ClusterRole]
v1alpha1ClusterRoleListItems =
  V1alpha1ClusterRoleList :: Maybe Text
-> [V1alpha1ClusterRole]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1ClusterRoleList
V1alpha1ClusterRoleList
  { v1alpha1ClusterRoleListApiVersion :: Maybe Text
v1alpha1ClusterRoleListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1alpha1ClusterRole]
v1alpha1ClusterRoleListItems :: [V1alpha1ClusterRole]
v1alpha1ClusterRoleListItems :: [V1alpha1ClusterRole]
v1alpha1ClusterRoleListItems
  , v1alpha1ClusterRoleListKind :: Maybe Text
v1alpha1ClusterRoleListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1ClusterRoleListMetadata :: Maybe V1ListMeta
v1alpha1ClusterRoleListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1alpha1Endpoint
-- | V1alpha1Endpoint
-- Endpoint represents a single logical \"backend\" implementing a service.
data V1alpha1Endpoint = V1alpha1Endpoint
  { V1alpha1Endpoint -> [Text]
v1alpha1EndpointAddresses :: !([Text]) -- ^ /Required/ "addresses" - addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. This allows for cases like dual-stack (IPv4 and IPv6) networking. Consumers (e.g. kube-proxy) must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100.
  , V1alpha1Endpoint -> Maybe V1alpha1EndpointConditions
v1alpha1EndpointConditions :: !(Maybe V1alpha1EndpointConditions) -- ^ "conditions"
  , V1alpha1Endpoint -> Maybe Text
v1alpha1EndpointHostname :: !(Maybe Text) -- ^ "hostname" - hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must pass DNS Label (RFC 1123) validation.
  , V1alpha1Endpoint -> Maybe V1ObjectReference
v1alpha1EndpointTargetRef :: !(Maybe V1ObjectReference) -- ^ "targetRef"
  , V1alpha1Endpoint -> Maybe (Map String Text)
v1alpha1EndpointTopology :: !(Maybe (Map.Map String Text)) -- ^ "topology" - topology contains arbitrary topology information associated with the endpoint. These key/value pairs must conform with the label format. https://kubernetes.io/docs/concepts/overview/working-with-objects/labels Topology may include a maximum of 16 key/value pairs. This includes, but is not limited to the following well known keys: * kubernetes.io/hostname: the value indicates the hostname of the node   where the endpoint is located. This should match the corresponding   node label. * topology.kubernetes.io/zone: the value indicates the zone where the   endpoint is located. This should match the corresponding node label. * topology.kubernetes.io/region: the value indicates the region where the   endpoint is located. This should match the corresponding node label.
  } deriving (Int -> V1alpha1Endpoint -> ShowS
[V1alpha1Endpoint] -> ShowS
V1alpha1Endpoint -> String
(Int -> V1alpha1Endpoint -> ShowS)
-> (V1alpha1Endpoint -> String)
-> ([V1alpha1Endpoint] -> ShowS)
-> Show V1alpha1Endpoint
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1Endpoint] -> ShowS
$cshowList :: [V1alpha1Endpoint] -> ShowS
show :: V1alpha1Endpoint -> String
$cshow :: V1alpha1Endpoint -> String
showsPrec :: Int -> V1alpha1Endpoint -> ShowS
$cshowsPrec :: Int -> V1alpha1Endpoint -> ShowS
P.Show, V1alpha1Endpoint -> V1alpha1Endpoint -> Bool
(V1alpha1Endpoint -> V1alpha1Endpoint -> Bool)
-> (V1alpha1Endpoint -> V1alpha1Endpoint -> Bool)
-> Eq V1alpha1Endpoint
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1Endpoint -> V1alpha1Endpoint -> Bool
$c/= :: V1alpha1Endpoint -> V1alpha1Endpoint -> Bool
== :: V1alpha1Endpoint -> V1alpha1Endpoint -> Bool
$c== :: V1alpha1Endpoint -> V1alpha1Endpoint -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1Endpoint
instance A.FromJSON V1alpha1Endpoint where
  parseJSON :: Value -> Parser V1alpha1Endpoint
parseJSON = String
-> (Object -> Parser V1alpha1Endpoint)
-> Value
-> Parser V1alpha1Endpoint
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1Endpoint" ((Object -> Parser V1alpha1Endpoint)
 -> Value -> Parser V1alpha1Endpoint)
-> (Object -> Parser V1alpha1Endpoint)
-> Value
-> Parser V1alpha1Endpoint
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    [Text]
-> Maybe V1alpha1EndpointConditions
-> Maybe Text
-> Maybe V1ObjectReference
-> Maybe (Map String Text)
-> V1alpha1Endpoint
V1alpha1Endpoint
      ([Text]
 -> Maybe V1alpha1EndpointConditions
 -> Maybe Text
 -> Maybe V1ObjectReference
 -> Maybe (Map String Text)
 -> V1alpha1Endpoint)
-> Parser [Text]
-> Parser
     (Maybe V1alpha1EndpointConditions
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe (Map String Text)
      -> V1alpha1Endpoint)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"addresses")
      Parser
  (Maybe V1alpha1EndpointConditions
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe (Map String Text)
   -> V1alpha1Endpoint)
-> Parser (Maybe V1alpha1EndpointConditions)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe (Map String Text)
      -> V1alpha1Endpoint)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1alpha1EndpointConditions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe (Map String Text)
   -> V1alpha1Endpoint)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectReference
      -> Maybe (Map String Text) -> V1alpha1Endpoint)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"hostname")
      Parser
  (Maybe V1ObjectReference
   -> Maybe (Map String Text) -> V1alpha1Endpoint)
-> Parser (Maybe V1ObjectReference)
-> Parser (Maybe (Map String Text) -> V1alpha1Endpoint)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"targetRef")
      Parser (Maybe (Map String Text) -> V1alpha1Endpoint)
-> Parser (Maybe (Map String Text)) -> Parser V1alpha1Endpoint
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"topology")

-- | ToJSON V1alpha1Endpoint
instance A.ToJSON V1alpha1Endpoint where
  toJSON :: V1alpha1Endpoint -> Value
toJSON V1alpha1Endpoint {[Text]
Maybe Text
Maybe (Map String Text)
Maybe V1alpha1EndpointConditions
Maybe V1ObjectReference
v1alpha1EndpointTopology :: Maybe (Map String Text)
v1alpha1EndpointTargetRef :: Maybe V1ObjectReference
v1alpha1EndpointHostname :: Maybe Text
v1alpha1EndpointConditions :: Maybe V1alpha1EndpointConditions
v1alpha1EndpointAddresses :: [Text]
v1alpha1EndpointTopology :: V1alpha1Endpoint -> Maybe (Map String Text)
v1alpha1EndpointTargetRef :: V1alpha1Endpoint -> Maybe V1ObjectReference
v1alpha1EndpointHostname :: V1alpha1Endpoint -> Maybe Text
v1alpha1EndpointConditions :: V1alpha1Endpoint -> Maybe V1alpha1EndpointConditions
v1alpha1EndpointAddresses :: V1alpha1Endpoint -> [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"addresses" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1alpha1EndpointAddresses
      , Text
"conditions" Text -> Maybe V1alpha1EndpointConditions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1alpha1EndpointConditions
v1alpha1EndpointConditions
      , Text
"hostname" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1EndpointHostname
      , Text
"targetRef" Text -> Maybe V1ObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectReference
v1alpha1EndpointTargetRef
      , Text
"topology" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1alpha1EndpointTopology
      ]


-- | Construct a value of type 'V1alpha1Endpoint' (by applying it's required fields, if any)
mkV1alpha1Endpoint
  :: [Text] -- ^ 'v1alpha1EndpointAddresses': addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. This allows for cases like dual-stack (IPv4 and IPv6) networking. Consumers (e.g. kube-proxy) must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100.
  -> V1alpha1Endpoint
mkV1alpha1Endpoint :: [Text] -> V1alpha1Endpoint
mkV1alpha1Endpoint [Text]
v1alpha1EndpointAddresses =
  V1alpha1Endpoint :: [Text]
-> Maybe V1alpha1EndpointConditions
-> Maybe Text
-> Maybe V1ObjectReference
-> Maybe (Map String Text)
-> V1alpha1Endpoint
V1alpha1Endpoint
  { [Text]
v1alpha1EndpointAddresses :: [Text]
v1alpha1EndpointAddresses :: [Text]
v1alpha1EndpointAddresses
  , v1alpha1EndpointConditions :: Maybe V1alpha1EndpointConditions
v1alpha1EndpointConditions = Maybe V1alpha1EndpointConditions
forall a. Maybe a
Nothing
  , v1alpha1EndpointHostname :: Maybe Text
v1alpha1EndpointHostname = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1EndpointTargetRef :: Maybe V1ObjectReference
v1alpha1EndpointTargetRef = Maybe V1ObjectReference
forall a. Maybe a
Nothing
  , v1alpha1EndpointTopology :: Maybe (Map String Text)
v1alpha1EndpointTopology = Maybe (Map String Text)
forall a. Maybe a
Nothing
  }

-- ** V1alpha1EndpointConditions
-- | V1alpha1EndpointConditions
-- EndpointConditions represents the current condition of an endpoint.
data V1alpha1EndpointConditions = V1alpha1EndpointConditions
  { V1alpha1EndpointConditions -> Maybe Bool
v1alpha1EndpointConditionsReady :: !(Maybe Bool) -- ^ "ready" - ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready.
  } deriving (Int -> V1alpha1EndpointConditions -> ShowS
[V1alpha1EndpointConditions] -> ShowS
V1alpha1EndpointConditions -> String
(Int -> V1alpha1EndpointConditions -> ShowS)
-> (V1alpha1EndpointConditions -> String)
-> ([V1alpha1EndpointConditions] -> ShowS)
-> Show V1alpha1EndpointConditions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1EndpointConditions] -> ShowS
$cshowList :: [V1alpha1EndpointConditions] -> ShowS
show :: V1alpha1EndpointConditions -> String
$cshow :: V1alpha1EndpointConditions -> String
showsPrec :: Int -> V1alpha1EndpointConditions -> ShowS
$cshowsPrec :: Int -> V1alpha1EndpointConditions -> ShowS
P.Show, V1alpha1EndpointConditions -> V1alpha1EndpointConditions -> Bool
(V1alpha1EndpointConditions -> V1alpha1EndpointConditions -> Bool)
-> (V1alpha1EndpointConditions
    -> V1alpha1EndpointConditions -> Bool)
-> Eq V1alpha1EndpointConditions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1EndpointConditions -> V1alpha1EndpointConditions -> Bool
$c/= :: V1alpha1EndpointConditions -> V1alpha1EndpointConditions -> Bool
== :: V1alpha1EndpointConditions -> V1alpha1EndpointConditions -> Bool
$c== :: V1alpha1EndpointConditions -> V1alpha1EndpointConditions -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1EndpointConditions
instance A.FromJSON V1alpha1EndpointConditions where
  parseJSON :: Value -> Parser V1alpha1EndpointConditions
parseJSON = String
-> (Object -> Parser V1alpha1EndpointConditions)
-> Value
-> Parser V1alpha1EndpointConditions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1EndpointConditions" ((Object -> Parser V1alpha1EndpointConditions)
 -> Value -> Parser V1alpha1EndpointConditions)
-> (Object -> Parser V1alpha1EndpointConditions)
-> Value
-> Parser V1alpha1EndpointConditions
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Bool -> V1alpha1EndpointConditions
V1alpha1EndpointConditions
      (Maybe Bool -> V1alpha1EndpointConditions)
-> Parser (Maybe Bool) -> Parser V1alpha1EndpointConditions
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ready")

-- | ToJSON V1alpha1EndpointConditions
instance A.ToJSON V1alpha1EndpointConditions where
  toJSON :: V1alpha1EndpointConditions -> Value
toJSON V1alpha1EndpointConditions {Maybe Bool
v1alpha1EndpointConditionsReady :: Maybe Bool
v1alpha1EndpointConditionsReady :: V1alpha1EndpointConditions -> Maybe Bool
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"ready" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1alpha1EndpointConditionsReady
      ]


-- | Construct a value of type 'V1alpha1EndpointConditions' (by applying it's required fields, if any)
mkV1alpha1EndpointConditions
  :: V1alpha1EndpointConditions
mkV1alpha1EndpointConditions :: V1alpha1EndpointConditions
mkV1alpha1EndpointConditions =
  V1alpha1EndpointConditions :: Maybe Bool -> V1alpha1EndpointConditions
V1alpha1EndpointConditions
  { v1alpha1EndpointConditionsReady :: Maybe Bool
v1alpha1EndpointConditionsReady = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1alpha1EndpointPort
-- | V1alpha1EndpointPort
-- EndpointPort represents a Port used by an EndpointSlice
data V1alpha1EndpointPort = V1alpha1EndpointPort
  { V1alpha1EndpointPort -> Maybe Text
v1alpha1EndpointPortName :: !(Maybe Text) -- ^ "name" - The name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass IANA_SVC_NAME validation: * must be no more than 15 characters long * may contain only [-a-z0-9] * must contain at least one letter [a-z] * it must not start or end with a hyphen, nor contain adjacent hyphens Default is empty string.
  , V1alpha1EndpointPort -> Maybe Int
v1alpha1EndpointPortPort :: !(Maybe Int) -- ^ "port" - The port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer.
  , V1alpha1EndpointPort -> Maybe Text
v1alpha1EndpointPortProtocol :: !(Maybe Text) -- ^ "protocol" - The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.
  } deriving (Int -> V1alpha1EndpointPort -> ShowS
[V1alpha1EndpointPort] -> ShowS
V1alpha1EndpointPort -> String
(Int -> V1alpha1EndpointPort -> ShowS)
-> (V1alpha1EndpointPort -> String)
-> ([V1alpha1EndpointPort] -> ShowS)
-> Show V1alpha1EndpointPort
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1EndpointPort] -> ShowS
$cshowList :: [V1alpha1EndpointPort] -> ShowS
show :: V1alpha1EndpointPort -> String
$cshow :: V1alpha1EndpointPort -> String
showsPrec :: Int -> V1alpha1EndpointPort -> ShowS
$cshowsPrec :: Int -> V1alpha1EndpointPort -> ShowS
P.Show, V1alpha1EndpointPort -> V1alpha1EndpointPort -> Bool
(V1alpha1EndpointPort -> V1alpha1EndpointPort -> Bool)
-> (V1alpha1EndpointPort -> V1alpha1EndpointPort -> Bool)
-> Eq V1alpha1EndpointPort
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1EndpointPort -> V1alpha1EndpointPort -> Bool
$c/= :: V1alpha1EndpointPort -> V1alpha1EndpointPort -> Bool
== :: V1alpha1EndpointPort -> V1alpha1EndpointPort -> Bool
$c== :: V1alpha1EndpointPort -> V1alpha1EndpointPort -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1EndpointPort
instance A.FromJSON V1alpha1EndpointPort where
  parseJSON :: Value -> Parser V1alpha1EndpointPort
parseJSON = String
-> (Object -> Parser V1alpha1EndpointPort)
-> Value
-> Parser V1alpha1EndpointPort
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1EndpointPort" ((Object -> Parser V1alpha1EndpointPort)
 -> Value -> Parser V1alpha1EndpointPort)
-> (Object -> Parser V1alpha1EndpointPort)
-> Value
-> Parser V1alpha1EndpointPort
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Int -> Maybe Text -> V1alpha1EndpointPort
V1alpha1EndpointPort
      (Maybe Text -> Maybe Int -> Maybe Text -> V1alpha1EndpointPort)
-> Parser (Maybe Text)
-> Parser (Maybe Int -> Maybe Text -> V1alpha1EndpointPort)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser (Maybe Int -> Maybe Text -> V1alpha1EndpointPort)
-> Parser (Maybe Int)
-> Parser (Maybe Text -> V1alpha1EndpointPort)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"port")
      Parser (Maybe Text -> V1alpha1EndpointPort)
-> Parser (Maybe Text) -> Parser V1alpha1EndpointPort
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"protocol")

-- | ToJSON V1alpha1EndpointPort
instance A.ToJSON V1alpha1EndpointPort where
  toJSON :: V1alpha1EndpointPort -> Value
toJSON V1alpha1EndpointPort {Maybe Int
Maybe Text
v1alpha1EndpointPortProtocol :: Maybe Text
v1alpha1EndpointPortPort :: Maybe Int
v1alpha1EndpointPortName :: Maybe Text
v1alpha1EndpointPortProtocol :: V1alpha1EndpointPort -> Maybe Text
v1alpha1EndpointPortPort :: V1alpha1EndpointPort -> Maybe Int
v1alpha1EndpointPortName :: V1alpha1EndpointPort -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1EndpointPortName
      , Text
"port" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1alpha1EndpointPortPort
      , Text
"protocol" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1EndpointPortProtocol
      ]


-- | Construct a value of type 'V1alpha1EndpointPort' (by applying it's required fields, if any)
mkV1alpha1EndpointPort
  :: V1alpha1EndpointPort
mkV1alpha1EndpointPort :: V1alpha1EndpointPort
mkV1alpha1EndpointPort =
  V1alpha1EndpointPort :: Maybe Text -> Maybe Int -> Maybe Text -> V1alpha1EndpointPort
V1alpha1EndpointPort
  { v1alpha1EndpointPortName :: Maybe Text
v1alpha1EndpointPortName = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1EndpointPortPort :: Maybe Int
v1alpha1EndpointPortPort = Maybe Int
forall a. Maybe a
Nothing
  , v1alpha1EndpointPortProtocol :: Maybe Text
v1alpha1EndpointPortProtocol = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1alpha1EndpointSlice
-- | V1alpha1EndpointSlice
-- EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints.
data V1alpha1EndpointSlice = V1alpha1EndpointSlice
  { V1alpha1EndpointSlice -> Maybe Text
v1alpha1EndpointSliceAddressType :: !(Maybe Text) -- ^ "addressType" - addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. Default is IP
  , V1alpha1EndpointSlice -> Maybe Text
v1alpha1EndpointSliceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1EndpointSlice -> [V1alpha1Endpoint]
v1alpha1EndpointSliceEndpoints :: !([V1alpha1Endpoint]) -- ^ /Required/ "endpoints" - endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.
  , V1alpha1EndpointSlice -> Maybe Text
v1alpha1EndpointSliceKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1EndpointSlice -> Maybe V1ObjectMeta
v1alpha1EndpointSliceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1alpha1EndpointSlice -> Maybe [V1alpha1EndpointPort]
v1alpha1EndpointSlicePorts :: !(Maybe [V1alpha1EndpointPort]) -- ^ "ports" - ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates \&quot;all ports\&quot;. Each slice may include a maximum of 100 ports.
  } deriving (Int -> V1alpha1EndpointSlice -> ShowS
[V1alpha1EndpointSlice] -> ShowS
V1alpha1EndpointSlice -> String
(Int -> V1alpha1EndpointSlice -> ShowS)
-> (V1alpha1EndpointSlice -> String)
-> ([V1alpha1EndpointSlice] -> ShowS)
-> Show V1alpha1EndpointSlice
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1EndpointSlice] -> ShowS
$cshowList :: [V1alpha1EndpointSlice] -> ShowS
show :: V1alpha1EndpointSlice -> String
$cshow :: V1alpha1EndpointSlice -> String
showsPrec :: Int -> V1alpha1EndpointSlice -> ShowS
$cshowsPrec :: Int -> V1alpha1EndpointSlice -> ShowS
P.Show, V1alpha1EndpointSlice -> V1alpha1EndpointSlice -> Bool
(V1alpha1EndpointSlice -> V1alpha1EndpointSlice -> Bool)
-> (V1alpha1EndpointSlice -> V1alpha1EndpointSlice -> Bool)
-> Eq V1alpha1EndpointSlice
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1EndpointSlice -> V1alpha1EndpointSlice -> Bool
$c/= :: V1alpha1EndpointSlice -> V1alpha1EndpointSlice -> Bool
== :: V1alpha1EndpointSlice -> V1alpha1EndpointSlice -> Bool
$c== :: V1alpha1EndpointSlice -> V1alpha1EndpointSlice -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1EndpointSlice
instance A.FromJSON V1alpha1EndpointSlice where
  parseJSON :: Value -> Parser V1alpha1EndpointSlice
parseJSON = String
-> (Object -> Parser V1alpha1EndpointSlice)
-> Value
-> Parser V1alpha1EndpointSlice
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1EndpointSlice" ((Object -> Parser V1alpha1EndpointSlice)
 -> Value -> Parser V1alpha1EndpointSlice)
-> (Object -> Parser V1alpha1EndpointSlice)
-> Value
-> Parser V1alpha1EndpointSlice
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> [V1alpha1Endpoint]
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1alpha1EndpointPort]
-> V1alpha1EndpointSlice
V1alpha1EndpointSlice
      (Maybe Text
 -> Maybe Text
 -> [V1alpha1Endpoint]
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe [V1alpha1EndpointPort]
 -> V1alpha1EndpointSlice)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> [V1alpha1Endpoint]
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [V1alpha1EndpointPort]
      -> V1alpha1EndpointSlice)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"addressType")
      Parser
  (Maybe Text
   -> [V1alpha1Endpoint]
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [V1alpha1EndpointPort]
   -> V1alpha1EndpointSlice)
-> Parser (Maybe Text)
-> Parser
     ([V1alpha1Endpoint]
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [V1alpha1EndpointPort]
      -> V1alpha1EndpointSlice)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1alpha1Endpoint]
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [V1alpha1EndpointPort]
   -> V1alpha1EndpointSlice)
-> Parser [V1alpha1Endpoint]
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [V1alpha1EndpointPort]
      -> V1alpha1EndpointSlice)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1alpha1Endpoint]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"endpoints")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [V1alpha1EndpointPort]
   -> V1alpha1EndpointSlice)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe [V1alpha1EndpointPort] -> V1alpha1EndpointSlice)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe [V1alpha1EndpointPort] -> V1alpha1EndpointSlice)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe [V1alpha1EndpointPort] -> V1alpha1EndpointSlice)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe [V1alpha1EndpointPort] -> V1alpha1EndpointSlice)
-> Parser (Maybe [V1alpha1EndpointPort])
-> Parser V1alpha1EndpointSlice
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1alpha1EndpointPort])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ports")

-- | ToJSON V1alpha1EndpointSlice
instance A.ToJSON V1alpha1EndpointSlice where
  toJSON :: V1alpha1EndpointSlice -> Value
toJSON V1alpha1EndpointSlice {[V1alpha1Endpoint]
Maybe [V1alpha1EndpointPort]
Maybe Text
Maybe V1ObjectMeta
v1alpha1EndpointSlicePorts :: Maybe [V1alpha1EndpointPort]
v1alpha1EndpointSliceMetadata :: Maybe V1ObjectMeta
v1alpha1EndpointSliceKind :: Maybe Text
v1alpha1EndpointSliceEndpoints :: [V1alpha1Endpoint]
v1alpha1EndpointSliceApiVersion :: Maybe Text
v1alpha1EndpointSliceAddressType :: Maybe Text
v1alpha1EndpointSlicePorts :: V1alpha1EndpointSlice -> Maybe [V1alpha1EndpointPort]
v1alpha1EndpointSliceMetadata :: V1alpha1EndpointSlice -> Maybe V1ObjectMeta
v1alpha1EndpointSliceKind :: V1alpha1EndpointSlice -> Maybe Text
v1alpha1EndpointSliceEndpoints :: V1alpha1EndpointSlice -> [V1alpha1Endpoint]
v1alpha1EndpointSliceApiVersion :: V1alpha1EndpointSlice -> Maybe Text
v1alpha1EndpointSliceAddressType :: V1alpha1EndpointSlice -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"addressType" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1EndpointSliceAddressType
      , Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1EndpointSliceApiVersion
      , Text
"endpoints" Text -> [V1alpha1Endpoint] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1alpha1Endpoint]
v1alpha1EndpointSliceEndpoints
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1EndpointSliceKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1alpha1EndpointSliceMetadata
      , Text
"ports" Text -> Maybe [V1alpha1EndpointPort] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1alpha1EndpointPort]
v1alpha1EndpointSlicePorts
      ]


-- | Construct a value of type 'V1alpha1EndpointSlice' (by applying it's required fields, if any)
mkV1alpha1EndpointSlice
  :: [V1alpha1Endpoint] -- ^ 'v1alpha1EndpointSliceEndpoints': endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.
  -> V1alpha1EndpointSlice
mkV1alpha1EndpointSlice :: [V1alpha1Endpoint] -> V1alpha1EndpointSlice
mkV1alpha1EndpointSlice [V1alpha1Endpoint]
v1alpha1EndpointSliceEndpoints =
  V1alpha1EndpointSlice :: Maybe Text
-> Maybe Text
-> [V1alpha1Endpoint]
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1alpha1EndpointPort]
-> V1alpha1EndpointSlice
V1alpha1EndpointSlice
  { v1alpha1EndpointSliceAddressType :: Maybe Text
v1alpha1EndpointSliceAddressType = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1EndpointSliceApiVersion :: Maybe Text
v1alpha1EndpointSliceApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1alpha1Endpoint]
v1alpha1EndpointSliceEndpoints :: [V1alpha1Endpoint]
v1alpha1EndpointSliceEndpoints :: [V1alpha1Endpoint]
v1alpha1EndpointSliceEndpoints
  , v1alpha1EndpointSliceKind :: Maybe Text
v1alpha1EndpointSliceKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1EndpointSliceMetadata :: Maybe V1ObjectMeta
v1alpha1EndpointSliceMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1alpha1EndpointSlicePorts :: Maybe [V1alpha1EndpointPort]
v1alpha1EndpointSlicePorts = Maybe [V1alpha1EndpointPort]
forall a. Maybe a
Nothing
  }

-- ** V1alpha1EndpointSliceList
-- | V1alpha1EndpointSliceList
-- EndpointSliceList represents a list of endpoint slices
data V1alpha1EndpointSliceList = V1alpha1EndpointSliceList
  { V1alpha1EndpointSliceList -> Maybe Text
v1alpha1EndpointSliceListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1EndpointSliceList -> [V1alpha1EndpointSlice]
v1alpha1EndpointSliceListItems :: !([V1alpha1EndpointSlice]) -- ^ /Required/ "items" - List of endpoint slices
  , V1alpha1EndpointSliceList -> Maybe Text
v1alpha1EndpointSliceListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1EndpointSliceList -> Maybe V1ListMeta
v1alpha1EndpointSliceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1alpha1EndpointSliceList -> ShowS
[V1alpha1EndpointSliceList] -> ShowS
V1alpha1EndpointSliceList -> String
(Int -> V1alpha1EndpointSliceList -> ShowS)
-> (V1alpha1EndpointSliceList -> String)
-> ([V1alpha1EndpointSliceList] -> ShowS)
-> Show V1alpha1EndpointSliceList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1EndpointSliceList] -> ShowS
$cshowList :: [V1alpha1EndpointSliceList] -> ShowS
show :: V1alpha1EndpointSliceList -> String
$cshow :: V1alpha1EndpointSliceList -> String
showsPrec :: Int -> V1alpha1EndpointSliceList -> ShowS
$cshowsPrec :: Int -> V1alpha1EndpointSliceList -> ShowS
P.Show, V1alpha1EndpointSliceList -> V1alpha1EndpointSliceList -> Bool
(V1alpha1EndpointSliceList -> V1alpha1EndpointSliceList -> Bool)
-> (V1alpha1EndpointSliceList -> V1alpha1EndpointSliceList -> Bool)
-> Eq V1alpha1EndpointSliceList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1EndpointSliceList -> V1alpha1EndpointSliceList -> Bool
$c/= :: V1alpha1EndpointSliceList -> V1alpha1EndpointSliceList -> Bool
== :: V1alpha1EndpointSliceList -> V1alpha1EndpointSliceList -> Bool
$c== :: V1alpha1EndpointSliceList -> V1alpha1EndpointSliceList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1EndpointSliceList
instance A.FromJSON V1alpha1EndpointSliceList where
  parseJSON :: Value -> Parser V1alpha1EndpointSliceList
parseJSON = String
-> (Object -> Parser V1alpha1EndpointSliceList)
-> Value
-> Parser V1alpha1EndpointSliceList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1EndpointSliceList" ((Object -> Parser V1alpha1EndpointSliceList)
 -> Value -> Parser V1alpha1EndpointSliceList)
-> (Object -> Parser V1alpha1EndpointSliceList)
-> Value
-> Parser V1alpha1EndpointSliceList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1alpha1EndpointSlice]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1EndpointSliceList
V1alpha1EndpointSliceList
      (Maybe Text
 -> [V1alpha1EndpointSlice]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1alpha1EndpointSliceList)
-> Parser (Maybe Text)
-> Parser
     ([V1alpha1EndpointSlice]
      -> Maybe Text -> Maybe V1ListMeta -> V1alpha1EndpointSliceList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1alpha1EndpointSlice]
   -> Maybe Text -> Maybe V1ListMeta -> V1alpha1EndpointSliceList)
-> Parser [V1alpha1EndpointSlice]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1alpha1EndpointSliceList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1alpha1EndpointSlice]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> V1alpha1EndpointSliceList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1alpha1EndpointSliceList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1alpha1EndpointSliceList)
-> Parser (Maybe V1ListMeta) -> Parser V1alpha1EndpointSliceList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1alpha1EndpointSliceList
instance A.ToJSON V1alpha1EndpointSliceList where
  toJSON :: V1alpha1EndpointSliceList -> Value
toJSON V1alpha1EndpointSliceList {[V1alpha1EndpointSlice]
Maybe Text
Maybe V1ListMeta
v1alpha1EndpointSliceListMetadata :: Maybe V1ListMeta
v1alpha1EndpointSliceListKind :: Maybe Text
v1alpha1EndpointSliceListItems :: [V1alpha1EndpointSlice]
v1alpha1EndpointSliceListApiVersion :: Maybe Text
v1alpha1EndpointSliceListMetadata :: V1alpha1EndpointSliceList -> Maybe V1ListMeta
v1alpha1EndpointSliceListKind :: V1alpha1EndpointSliceList -> Maybe Text
v1alpha1EndpointSliceListItems :: V1alpha1EndpointSliceList -> [V1alpha1EndpointSlice]
v1alpha1EndpointSliceListApiVersion :: V1alpha1EndpointSliceList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1EndpointSliceListApiVersion
      , Text
"items" Text -> [V1alpha1EndpointSlice] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1alpha1EndpointSlice]
v1alpha1EndpointSliceListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1EndpointSliceListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1alpha1EndpointSliceListMetadata
      ]


-- | Construct a value of type 'V1alpha1EndpointSliceList' (by applying it's required fields, if any)
mkV1alpha1EndpointSliceList
  :: [V1alpha1EndpointSlice] -- ^ 'v1alpha1EndpointSliceListItems': List of endpoint slices
  -> V1alpha1EndpointSliceList
mkV1alpha1EndpointSliceList :: [V1alpha1EndpointSlice] -> V1alpha1EndpointSliceList
mkV1alpha1EndpointSliceList [V1alpha1EndpointSlice]
v1alpha1EndpointSliceListItems =
  V1alpha1EndpointSliceList :: Maybe Text
-> [V1alpha1EndpointSlice]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1EndpointSliceList
V1alpha1EndpointSliceList
  { v1alpha1EndpointSliceListApiVersion :: Maybe Text
v1alpha1EndpointSliceListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1alpha1EndpointSlice]
v1alpha1EndpointSliceListItems :: [V1alpha1EndpointSlice]
v1alpha1EndpointSliceListItems :: [V1alpha1EndpointSlice]
v1alpha1EndpointSliceListItems
  , v1alpha1EndpointSliceListKind :: Maybe Text
v1alpha1EndpointSliceListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1EndpointSliceListMetadata :: Maybe V1ListMeta
v1alpha1EndpointSliceListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1alpha1Overhead
-- | V1alpha1Overhead
-- Overhead structure represents the resource overhead associated with running a pod.
data V1alpha1Overhead = V1alpha1Overhead
  { V1alpha1Overhead -> Maybe (Map String Quantity)
v1alpha1OverheadPodFixed :: !(Maybe (Map.Map String Quantity)) -- ^ "podFixed" - PodFixed represents the fixed resource overhead associated with running a pod.
  } deriving (Int -> V1alpha1Overhead -> ShowS
[V1alpha1Overhead] -> ShowS
V1alpha1Overhead -> String
(Int -> V1alpha1Overhead -> ShowS)
-> (V1alpha1Overhead -> String)
-> ([V1alpha1Overhead] -> ShowS)
-> Show V1alpha1Overhead
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1Overhead] -> ShowS
$cshowList :: [V1alpha1Overhead] -> ShowS
show :: V1alpha1Overhead -> String
$cshow :: V1alpha1Overhead -> String
showsPrec :: Int -> V1alpha1Overhead -> ShowS
$cshowsPrec :: Int -> V1alpha1Overhead -> ShowS
P.Show, V1alpha1Overhead -> V1alpha1Overhead -> Bool
(V1alpha1Overhead -> V1alpha1Overhead -> Bool)
-> (V1alpha1Overhead -> V1alpha1Overhead -> Bool)
-> Eq V1alpha1Overhead
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1Overhead -> V1alpha1Overhead -> Bool
$c/= :: V1alpha1Overhead -> V1alpha1Overhead -> Bool
== :: V1alpha1Overhead -> V1alpha1Overhead -> Bool
$c== :: V1alpha1Overhead -> V1alpha1Overhead -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1Overhead
instance A.FromJSON V1alpha1Overhead where
  parseJSON :: Value -> Parser V1alpha1Overhead
parseJSON = String
-> (Object -> Parser V1alpha1Overhead)
-> Value
-> Parser V1alpha1Overhead
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1Overhead" ((Object -> Parser V1alpha1Overhead)
 -> Value -> Parser V1alpha1Overhead)
-> (Object -> Parser V1alpha1Overhead)
-> Value
-> Parser V1alpha1Overhead
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe (Map String Quantity) -> V1alpha1Overhead
V1alpha1Overhead
      (Maybe (Map String Quantity) -> V1alpha1Overhead)
-> Parser (Maybe (Map String Quantity)) -> Parser V1alpha1Overhead
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"podFixed")

-- | ToJSON V1alpha1Overhead
instance A.ToJSON V1alpha1Overhead where
  toJSON :: V1alpha1Overhead -> Value
toJSON V1alpha1Overhead {Maybe (Map String Quantity)
v1alpha1OverheadPodFixed :: Maybe (Map String Quantity)
v1alpha1OverheadPodFixed :: V1alpha1Overhead -> Maybe (Map String Quantity)
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"podFixed" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1alpha1OverheadPodFixed
      ]


-- | Construct a value of type 'V1alpha1Overhead' (by applying it's required fields, if any)
mkV1alpha1Overhead
  :: V1alpha1Overhead
mkV1alpha1Overhead :: V1alpha1Overhead
mkV1alpha1Overhead =
  V1alpha1Overhead :: Maybe (Map String Quantity) -> V1alpha1Overhead
V1alpha1Overhead
  { v1alpha1OverheadPodFixed :: Maybe (Map String Quantity)
v1alpha1OverheadPodFixed = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  }

-- ** V1alpha1PodPreset
-- | V1alpha1PodPreset
-- PodPreset is a policy resource that defines additional runtime requirements for a Pod.
data V1alpha1PodPreset = V1alpha1PodPreset
  { V1alpha1PodPreset -> Maybe Text
v1alpha1PodPresetApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1PodPreset -> Maybe Text
v1alpha1PodPresetKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1PodPreset -> Maybe V1ObjectMeta
v1alpha1PodPresetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1alpha1PodPreset -> Maybe V1alpha1PodPresetSpec
v1alpha1PodPresetSpec :: !(Maybe V1alpha1PodPresetSpec) -- ^ "spec"
  } deriving (Int -> V1alpha1PodPreset -> ShowS
[V1alpha1PodPreset] -> ShowS
V1alpha1PodPreset -> String
(Int -> V1alpha1PodPreset -> ShowS)
-> (V1alpha1PodPreset -> String)
-> ([V1alpha1PodPreset] -> ShowS)
-> Show V1alpha1PodPreset
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1PodPreset] -> ShowS
$cshowList :: [V1alpha1PodPreset] -> ShowS
show :: V1alpha1PodPreset -> String
$cshow :: V1alpha1PodPreset -> String
showsPrec :: Int -> V1alpha1PodPreset -> ShowS
$cshowsPrec :: Int -> V1alpha1PodPreset -> ShowS
P.Show, V1alpha1PodPreset -> V1alpha1PodPreset -> Bool
(V1alpha1PodPreset -> V1alpha1PodPreset -> Bool)
-> (V1alpha1PodPreset -> V1alpha1PodPreset -> Bool)
-> Eq V1alpha1PodPreset
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1PodPreset -> V1alpha1PodPreset -> Bool
$c/= :: V1alpha1PodPreset -> V1alpha1PodPreset -> Bool
== :: V1alpha1PodPreset -> V1alpha1PodPreset -> Bool
$c== :: V1alpha1PodPreset -> V1alpha1PodPreset -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1PodPreset
instance A.FromJSON V1alpha1PodPreset where
  parseJSON :: Value -> Parser V1alpha1PodPreset
parseJSON = String
-> (Object -> Parser V1alpha1PodPreset)
-> Value
-> Parser V1alpha1PodPreset
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1PodPreset" ((Object -> Parser V1alpha1PodPreset)
 -> Value -> Parser V1alpha1PodPreset)
-> (Object -> Parser V1alpha1PodPreset)
-> Value
-> Parser V1alpha1PodPreset
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1alpha1PodPresetSpec
-> V1alpha1PodPreset
V1alpha1PodPreset
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1alpha1PodPresetSpec
 -> V1alpha1PodPreset)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1alpha1PodPresetSpec
      -> V1alpha1PodPreset)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1alpha1PodPresetSpec
   -> V1alpha1PodPreset)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1alpha1PodPresetSpec -> V1alpha1PodPreset)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1alpha1PodPresetSpec -> V1alpha1PodPreset)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe V1alpha1PodPresetSpec -> V1alpha1PodPreset)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe V1alpha1PodPresetSpec -> V1alpha1PodPreset)
-> Parser (Maybe V1alpha1PodPresetSpec) -> Parser V1alpha1PodPreset
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1alpha1PodPresetSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")

-- | ToJSON V1alpha1PodPreset
instance A.ToJSON V1alpha1PodPreset where
  toJSON :: V1alpha1PodPreset -> Value
toJSON V1alpha1PodPreset {Maybe Text
Maybe V1alpha1PodPresetSpec
Maybe V1ObjectMeta
v1alpha1PodPresetSpec :: Maybe V1alpha1PodPresetSpec
v1alpha1PodPresetMetadata :: Maybe V1ObjectMeta
v1alpha1PodPresetKind :: Maybe Text
v1alpha1PodPresetApiVersion :: Maybe Text
v1alpha1PodPresetSpec :: V1alpha1PodPreset -> Maybe V1alpha1PodPresetSpec
v1alpha1PodPresetMetadata :: V1alpha1PodPreset -> Maybe V1ObjectMeta
v1alpha1PodPresetKind :: V1alpha1PodPreset -> Maybe Text
v1alpha1PodPresetApiVersion :: V1alpha1PodPreset -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1PodPresetApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1PodPresetKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1alpha1PodPresetMetadata
      , Text
"spec" Text -> Maybe V1alpha1PodPresetSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1alpha1PodPresetSpec
v1alpha1PodPresetSpec
      ]


-- | Construct a value of type 'V1alpha1PodPreset' (by applying it's required fields, if any)
mkV1alpha1PodPreset
  :: V1alpha1PodPreset
mkV1alpha1PodPreset :: V1alpha1PodPreset
mkV1alpha1PodPreset =
  V1alpha1PodPreset :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1alpha1PodPresetSpec
-> V1alpha1PodPreset
V1alpha1PodPreset
  { v1alpha1PodPresetApiVersion :: Maybe Text
v1alpha1PodPresetApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1PodPresetKind :: Maybe Text
v1alpha1PodPresetKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1PodPresetMetadata :: Maybe V1ObjectMeta
v1alpha1PodPresetMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1alpha1PodPresetSpec :: Maybe V1alpha1PodPresetSpec
v1alpha1PodPresetSpec = Maybe V1alpha1PodPresetSpec
forall a. Maybe a
Nothing
  }

-- ** V1alpha1PodPresetList
-- | V1alpha1PodPresetList
-- PodPresetList is a list of PodPreset objects.
data V1alpha1PodPresetList = V1alpha1PodPresetList
  { V1alpha1PodPresetList -> Maybe Text
v1alpha1PodPresetListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1PodPresetList -> [V1alpha1PodPreset]
v1alpha1PodPresetListItems :: !([V1alpha1PodPreset]) -- ^ /Required/ "items" - Items is a list of schema objects.
  , V1alpha1PodPresetList -> Maybe Text
v1alpha1PodPresetListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1PodPresetList -> Maybe V1ListMeta
v1alpha1PodPresetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1alpha1PodPresetList -> ShowS
[V1alpha1PodPresetList] -> ShowS
V1alpha1PodPresetList -> String
(Int -> V1alpha1PodPresetList -> ShowS)
-> (V1alpha1PodPresetList -> String)
-> ([V1alpha1PodPresetList] -> ShowS)
-> Show V1alpha1PodPresetList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1PodPresetList] -> ShowS
$cshowList :: [V1alpha1PodPresetList] -> ShowS
show :: V1alpha1PodPresetList -> String
$cshow :: V1alpha1PodPresetList -> String
showsPrec :: Int -> V1alpha1PodPresetList -> ShowS
$cshowsPrec :: Int -> V1alpha1PodPresetList -> ShowS
P.Show, V1alpha1PodPresetList -> V1alpha1PodPresetList -> Bool
(V1alpha1PodPresetList -> V1alpha1PodPresetList -> Bool)
-> (V1alpha1PodPresetList -> V1alpha1PodPresetList -> Bool)
-> Eq V1alpha1PodPresetList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1PodPresetList -> V1alpha1PodPresetList -> Bool
$c/= :: V1alpha1PodPresetList -> V1alpha1PodPresetList -> Bool
== :: V1alpha1PodPresetList -> V1alpha1PodPresetList -> Bool
$c== :: V1alpha1PodPresetList -> V1alpha1PodPresetList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1PodPresetList
instance A.FromJSON V1alpha1PodPresetList where
  parseJSON :: Value -> Parser V1alpha1PodPresetList
parseJSON = String
-> (Object -> Parser V1alpha1PodPresetList)
-> Value
-> Parser V1alpha1PodPresetList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1PodPresetList" ((Object -> Parser V1alpha1PodPresetList)
 -> Value -> Parser V1alpha1PodPresetList)
-> (Object -> Parser V1alpha1PodPresetList)
-> Value
-> Parser V1alpha1PodPresetList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1alpha1PodPreset]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1PodPresetList
V1alpha1PodPresetList
      (Maybe Text
 -> [V1alpha1PodPreset]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1alpha1PodPresetList)
-> Parser (Maybe Text)
-> Parser
     ([V1alpha1PodPreset]
      -> Maybe Text -> Maybe V1ListMeta -> V1alpha1PodPresetList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1alpha1PodPreset]
   -> Maybe Text -> Maybe V1ListMeta -> V1alpha1PodPresetList)
-> Parser [V1alpha1PodPreset]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1alpha1PodPresetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1alpha1PodPreset]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1alpha1PodPresetList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1alpha1PodPresetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1alpha1PodPresetList)
-> Parser (Maybe V1ListMeta) -> Parser V1alpha1PodPresetList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1alpha1PodPresetList
instance A.ToJSON V1alpha1PodPresetList where
  toJSON :: V1alpha1PodPresetList -> Value
toJSON V1alpha1PodPresetList {[V1alpha1PodPreset]
Maybe Text
Maybe V1ListMeta
v1alpha1PodPresetListMetadata :: Maybe V1ListMeta
v1alpha1PodPresetListKind :: Maybe Text
v1alpha1PodPresetListItems :: [V1alpha1PodPreset]
v1alpha1PodPresetListApiVersion :: Maybe Text
v1alpha1PodPresetListMetadata :: V1alpha1PodPresetList -> Maybe V1ListMeta
v1alpha1PodPresetListKind :: V1alpha1PodPresetList -> Maybe Text
v1alpha1PodPresetListItems :: V1alpha1PodPresetList -> [V1alpha1PodPreset]
v1alpha1PodPresetListApiVersion :: V1alpha1PodPresetList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1PodPresetListApiVersion
      , Text
"items" Text -> [V1alpha1PodPreset] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1alpha1PodPreset]
v1alpha1PodPresetListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1PodPresetListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1alpha1PodPresetListMetadata
      ]


-- | Construct a value of type 'V1alpha1PodPresetList' (by applying it's required fields, if any)
mkV1alpha1PodPresetList
  :: [V1alpha1PodPreset] -- ^ 'v1alpha1PodPresetListItems': Items is a list of schema objects.
  -> V1alpha1PodPresetList
mkV1alpha1PodPresetList :: [V1alpha1PodPreset] -> V1alpha1PodPresetList
mkV1alpha1PodPresetList [V1alpha1PodPreset]
v1alpha1PodPresetListItems =
  V1alpha1PodPresetList :: Maybe Text
-> [V1alpha1PodPreset]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1PodPresetList
V1alpha1PodPresetList
  { v1alpha1PodPresetListApiVersion :: Maybe Text
v1alpha1PodPresetListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1alpha1PodPreset]
v1alpha1PodPresetListItems :: [V1alpha1PodPreset]
v1alpha1PodPresetListItems :: [V1alpha1PodPreset]
v1alpha1PodPresetListItems
  , v1alpha1PodPresetListKind :: Maybe Text
v1alpha1PodPresetListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1PodPresetListMetadata :: Maybe V1ListMeta
v1alpha1PodPresetListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1alpha1PodPresetSpec
-- | V1alpha1PodPresetSpec
-- PodPresetSpec is a description of a pod preset.
data V1alpha1PodPresetSpec = V1alpha1PodPresetSpec
  { V1alpha1PodPresetSpec -> Maybe [V1EnvVar]
v1alpha1PodPresetSpecEnv :: !(Maybe [V1EnvVar]) -- ^ "env" - Env defines the collection of EnvVar to inject into containers.
  , V1alpha1PodPresetSpec -> Maybe [V1EnvFromSource]
v1alpha1PodPresetSpecEnvFrom :: !(Maybe [V1EnvFromSource]) -- ^ "envFrom" - EnvFrom defines the collection of EnvFromSource to inject into containers.
  , V1alpha1PodPresetSpec -> Maybe V1LabelSelector
v1alpha1PodPresetSpecSelector :: !(Maybe V1LabelSelector) -- ^ "selector"
  , V1alpha1PodPresetSpec -> Maybe [V1VolumeMount]
v1alpha1PodPresetSpecVolumeMounts :: !(Maybe [V1VolumeMount]) -- ^ "volumeMounts" - VolumeMounts defines the collection of VolumeMount to inject into containers.
  , V1alpha1PodPresetSpec -> Maybe [V1Volume]
v1alpha1PodPresetSpecVolumes :: !(Maybe [V1Volume]) -- ^ "volumes" - Volumes defines the collection of Volume to inject into the pod.
  } deriving (Int -> V1alpha1PodPresetSpec -> ShowS
[V1alpha1PodPresetSpec] -> ShowS
V1alpha1PodPresetSpec -> String
(Int -> V1alpha1PodPresetSpec -> ShowS)
-> (V1alpha1PodPresetSpec -> String)
-> ([V1alpha1PodPresetSpec] -> ShowS)
-> Show V1alpha1PodPresetSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1PodPresetSpec] -> ShowS
$cshowList :: [V1alpha1PodPresetSpec] -> ShowS
show :: V1alpha1PodPresetSpec -> String
$cshow :: V1alpha1PodPresetSpec -> String
showsPrec :: Int -> V1alpha1PodPresetSpec -> ShowS
$cshowsPrec :: Int -> V1alpha1PodPresetSpec -> ShowS
P.Show, V1alpha1PodPresetSpec -> V1alpha1PodPresetSpec -> Bool
(V1alpha1PodPresetSpec -> V1alpha1PodPresetSpec -> Bool)
-> (V1alpha1PodPresetSpec -> V1alpha1PodPresetSpec -> Bool)
-> Eq V1alpha1PodPresetSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1PodPresetSpec -> V1alpha1PodPresetSpec -> Bool
$c/= :: V1alpha1PodPresetSpec -> V1alpha1PodPresetSpec -> Bool
== :: V1alpha1PodPresetSpec -> V1alpha1PodPresetSpec -> Bool
$c== :: V1alpha1PodPresetSpec -> V1alpha1PodPresetSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1PodPresetSpec
instance A.FromJSON V1alpha1PodPresetSpec where
  parseJSON :: Value -> Parser V1alpha1PodPresetSpec
parseJSON = String
-> (Object -> Parser V1alpha1PodPresetSpec)
-> Value
-> Parser V1alpha1PodPresetSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1PodPresetSpec" ((Object -> Parser V1alpha1PodPresetSpec)
 -> Value -> Parser V1alpha1PodPresetSpec)
-> (Object -> Parser V1alpha1PodPresetSpec)
-> Value
-> Parser V1alpha1PodPresetSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1EnvVar]
-> Maybe [V1EnvFromSource]
-> Maybe V1LabelSelector
-> Maybe [V1VolumeMount]
-> Maybe [V1Volume]
-> V1alpha1PodPresetSpec
V1alpha1PodPresetSpec
      (Maybe [V1EnvVar]
 -> Maybe [V1EnvFromSource]
 -> Maybe V1LabelSelector
 -> Maybe [V1VolumeMount]
 -> Maybe [V1Volume]
 -> V1alpha1PodPresetSpec)
-> Parser (Maybe [V1EnvVar])
-> Parser
     (Maybe [V1EnvFromSource]
      -> Maybe V1LabelSelector
      -> Maybe [V1VolumeMount]
      -> Maybe [V1Volume]
      -> V1alpha1PodPresetSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1EnvVar])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"env")
      Parser
  (Maybe [V1EnvFromSource]
   -> Maybe V1LabelSelector
   -> Maybe [V1VolumeMount]
   -> Maybe [V1Volume]
   -> V1alpha1PodPresetSpec)
-> Parser (Maybe [V1EnvFromSource])
-> Parser
     (Maybe V1LabelSelector
      -> Maybe [V1VolumeMount]
      -> Maybe [V1Volume]
      -> V1alpha1PodPresetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1EnvFromSource])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"envFrom")
      Parser
  (Maybe V1LabelSelector
   -> Maybe [V1VolumeMount]
   -> Maybe [V1Volume]
   -> V1alpha1PodPresetSpec)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (Maybe [V1VolumeMount]
      -> Maybe [V1Volume] -> V1alpha1PodPresetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")
      Parser
  (Maybe [V1VolumeMount]
   -> Maybe [V1Volume] -> V1alpha1PodPresetSpec)
-> Parser (Maybe [V1VolumeMount])
-> Parser (Maybe [V1Volume] -> V1alpha1PodPresetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1VolumeMount])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeMounts")
      Parser (Maybe [V1Volume] -> V1alpha1PodPresetSpec)
-> Parser (Maybe [V1Volume]) -> Parser V1alpha1PodPresetSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1Volume])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumes")

-- | ToJSON V1alpha1PodPresetSpec
instance A.ToJSON V1alpha1PodPresetSpec where
  toJSON :: V1alpha1PodPresetSpec -> Value
toJSON V1alpha1PodPresetSpec {Maybe [V1VolumeMount]
Maybe [V1Volume]
Maybe [V1EnvVar]
Maybe [V1EnvFromSource]
Maybe V1LabelSelector
v1alpha1PodPresetSpecVolumes :: Maybe [V1Volume]
v1alpha1PodPresetSpecVolumeMounts :: Maybe [V1VolumeMount]
v1alpha1PodPresetSpecSelector :: Maybe V1LabelSelector
v1alpha1PodPresetSpecEnvFrom :: Maybe [V1EnvFromSource]
v1alpha1PodPresetSpecEnv :: Maybe [V1EnvVar]
v1alpha1PodPresetSpecVolumes :: V1alpha1PodPresetSpec -> Maybe [V1Volume]
v1alpha1PodPresetSpecVolumeMounts :: V1alpha1PodPresetSpec -> Maybe [V1VolumeMount]
v1alpha1PodPresetSpecSelector :: V1alpha1PodPresetSpec -> Maybe V1LabelSelector
v1alpha1PodPresetSpecEnvFrom :: V1alpha1PodPresetSpec -> Maybe [V1EnvFromSource]
v1alpha1PodPresetSpecEnv :: V1alpha1PodPresetSpec -> Maybe [V1EnvVar]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"env" Text -> Maybe [V1EnvVar] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1EnvVar]
v1alpha1PodPresetSpecEnv
      , Text
"envFrom" Text -> Maybe [V1EnvFromSource] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1EnvFromSource]
v1alpha1PodPresetSpecEnvFrom
      , Text
"selector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1alpha1PodPresetSpecSelector
      , Text
"volumeMounts" Text -> Maybe [V1VolumeMount] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1VolumeMount]
v1alpha1PodPresetSpecVolumeMounts
      , Text
"volumes" Text -> Maybe [V1Volume] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1Volume]
v1alpha1PodPresetSpecVolumes
      ]


-- | Construct a value of type 'V1alpha1PodPresetSpec' (by applying it's required fields, if any)
mkV1alpha1PodPresetSpec
  :: V1alpha1PodPresetSpec
mkV1alpha1PodPresetSpec :: V1alpha1PodPresetSpec
mkV1alpha1PodPresetSpec =
  V1alpha1PodPresetSpec :: Maybe [V1EnvVar]
-> Maybe [V1EnvFromSource]
-> Maybe V1LabelSelector
-> Maybe [V1VolumeMount]
-> Maybe [V1Volume]
-> V1alpha1PodPresetSpec
V1alpha1PodPresetSpec
  { v1alpha1PodPresetSpecEnv :: Maybe [V1EnvVar]
v1alpha1PodPresetSpecEnv = Maybe [V1EnvVar]
forall a. Maybe a
Nothing
  , v1alpha1PodPresetSpecEnvFrom :: Maybe [V1EnvFromSource]
v1alpha1PodPresetSpecEnvFrom = Maybe [V1EnvFromSource]
forall a. Maybe a
Nothing
  , v1alpha1PodPresetSpecSelector :: Maybe V1LabelSelector
v1alpha1PodPresetSpecSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , v1alpha1PodPresetSpecVolumeMounts :: Maybe [V1VolumeMount]
v1alpha1PodPresetSpecVolumeMounts = Maybe [V1VolumeMount]
forall a. Maybe a
Nothing
  , v1alpha1PodPresetSpecVolumes :: Maybe [V1Volume]
v1alpha1PodPresetSpecVolumes = Maybe [V1Volume]
forall a. Maybe a
Nothing
  }

-- ** V1alpha1Policy
-- | V1alpha1Policy
-- Policy defines the configuration of how audit events are logged
data V1alpha1Policy = V1alpha1Policy
  { V1alpha1Policy -> Text
v1alpha1PolicyLevel :: !(Text) -- ^ /Required/ "level" - The Level that all requests are recorded at. available options: None, Metadata, Request, RequestResponse required
  , V1alpha1Policy -> Maybe [Text]
v1alpha1PolicyStages :: !(Maybe [Text]) -- ^ "stages" - Stages is a list of stages for which events are created.
  } deriving (Int -> V1alpha1Policy -> ShowS
[V1alpha1Policy] -> ShowS
V1alpha1Policy -> String
(Int -> V1alpha1Policy -> ShowS)
-> (V1alpha1Policy -> String)
-> ([V1alpha1Policy] -> ShowS)
-> Show V1alpha1Policy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1Policy] -> ShowS
$cshowList :: [V1alpha1Policy] -> ShowS
show :: V1alpha1Policy -> String
$cshow :: V1alpha1Policy -> String
showsPrec :: Int -> V1alpha1Policy -> ShowS
$cshowsPrec :: Int -> V1alpha1Policy -> ShowS
P.Show, V1alpha1Policy -> V1alpha1Policy -> Bool
(V1alpha1Policy -> V1alpha1Policy -> Bool)
-> (V1alpha1Policy -> V1alpha1Policy -> Bool) -> Eq V1alpha1Policy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1Policy -> V1alpha1Policy -> Bool
$c/= :: V1alpha1Policy -> V1alpha1Policy -> Bool
== :: V1alpha1Policy -> V1alpha1Policy -> Bool
$c== :: V1alpha1Policy -> V1alpha1Policy -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1Policy
instance A.FromJSON V1alpha1Policy where
  parseJSON :: Value -> Parser V1alpha1Policy
parseJSON = String
-> (Object -> Parser V1alpha1Policy)
-> Value
-> Parser V1alpha1Policy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1Policy" ((Object -> Parser V1alpha1Policy)
 -> Value -> Parser V1alpha1Policy)
-> (Object -> Parser V1alpha1Policy)
-> Value
-> Parser V1alpha1Policy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Maybe [Text] -> V1alpha1Policy
V1alpha1Policy
      (Text -> Maybe [Text] -> V1alpha1Policy)
-> Parser Text -> Parser (Maybe [Text] -> V1alpha1Policy)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"level")
      Parser (Maybe [Text] -> V1alpha1Policy)
-> Parser (Maybe [Text]) -> Parser V1alpha1Policy
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"stages")

-- | ToJSON V1alpha1Policy
instance A.ToJSON V1alpha1Policy where
  toJSON :: V1alpha1Policy -> Value
toJSON V1alpha1Policy {Maybe [Text]
Text
v1alpha1PolicyStages :: Maybe [Text]
v1alpha1PolicyLevel :: Text
v1alpha1PolicyStages :: V1alpha1Policy -> Maybe [Text]
v1alpha1PolicyLevel :: V1alpha1Policy -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"level" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1alpha1PolicyLevel
      , Text
"stages" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1alpha1PolicyStages
      ]


-- | Construct a value of type 'V1alpha1Policy' (by applying it's required fields, if any)
mkV1alpha1Policy
  :: Text -- ^ 'v1alpha1PolicyLevel': The Level that all requests are recorded at. available options: None, Metadata, Request, RequestResponse required
  -> V1alpha1Policy
mkV1alpha1Policy :: Text -> V1alpha1Policy
mkV1alpha1Policy Text
v1alpha1PolicyLevel =
  V1alpha1Policy :: Text -> Maybe [Text] -> V1alpha1Policy
V1alpha1Policy
  { Text
v1alpha1PolicyLevel :: Text
v1alpha1PolicyLevel :: Text
v1alpha1PolicyLevel
  , v1alpha1PolicyStages :: Maybe [Text]
v1alpha1PolicyStages = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1alpha1PolicyRule
-- | V1alpha1PolicyRule
-- PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.
data V1alpha1PolicyRule = V1alpha1PolicyRule
  { V1alpha1PolicyRule -> Maybe [Text]
v1alpha1PolicyRuleApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.
  , V1alpha1PolicyRule -> Maybe [Text]
v1alpha1PolicyRuleNonResourceUrLs :: !(Maybe [Text]) -- ^ "nonResourceURLs" - NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path This name is intentionally different than the internal type so that the DefaultConvert works nicely and because the ordering may be different. Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \&quot;pods\&quot; or \&quot;secrets\&quot;) or non-resource URL paths (such as \&quot;/api\&quot;),  but not both.
  , V1alpha1PolicyRule -> Maybe [Text]
v1alpha1PolicyRuleResourceNames :: !(Maybe [Text]) -- ^ "resourceNames" - ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.
  , V1alpha1PolicyRule -> Maybe [Text]
v1alpha1PolicyRuleResources :: !(Maybe [Text]) -- ^ "resources" - Resources is a list of resources this rule applies to.  ResourceAll represents all resources.
  , V1alpha1PolicyRule -> [Text]
v1alpha1PolicyRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule.  VerbAll represents all kinds.
  } deriving (Int -> V1alpha1PolicyRule -> ShowS
[V1alpha1PolicyRule] -> ShowS
V1alpha1PolicyRule -> String
(Int -> V1alpha1PolicyRule -> ShowS)
-> (V1alpha1PolicyRule -> String)
-> ([V1alpha1PolicyRule] -> ShowS)
-> Show V1alpha1PolicyRule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1PolicyRule] -> ShowS
$cshowList :: [V1alpha1PolicyRule] -> ShowS
show :: V1alpha1PolicyRule -> String
$cshow :: V1alpha1PolicyRule -> String
showsPrec :: Int -> V1alpha1PolicyRule -> ShowS
$cshowsPrec :: Int -> V1alpha1PolicyRule -> ShowS
P.Show, V1alpha1PolicyRule -> V1alpha1PolicyRule -> Bool
(V1alpha1PolicyRule -> V1alpha1PolicyRule -> Bool)
-> (V1alpha1PolicyRule -> V1alpha1PolicyRule -> Bool)
-> Eq V1alpha1PolicyRule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1PolicyRule -> V1alpha1PolicyRule -> Bool
$c/= :: V1alpha1PolicyRule -> V1alpha1PolicyRule -> Bool
== :: V1alpha1PolicyRule -> V1alpha1PolicyRule -> Bool
$c== :: V1alpha1PolicyRule -> V1alpha1PolicyRule -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1PolicyRule
instance A.FromJSON V1alpha1PolicyRule where
  parseJSON :: Value -> Parser V1alpha1PolicyRule
parseJSON = String
-> (Object -> Parser V1alpha1PolicyRule)
-> Value
-> Parser V1alpha1PolicyRule
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1PolicyRule" ((Object -> Parser V1alpha1PolicyRule)
 -> Value -> Parser V1alpha1PolicyRule)
-> (Object -> Parser V1alpha1PolicyRule)
-> Value
-> Parser V1alpha1PolicyRule
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> [Text]
-> V1alpha1PolicyRule
V1alpha1PolicyRule
      (Maybe [Text]
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe [Text]
 -> [Text]
 -> V1alpha1PolicyRule)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe [Text] -> Maybe [Text] -> [Text] -> V1alpha1PolicyRule)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiGroups")
      Parser
  (Maybe [Text]
   -> Maybe [Text] -> Maybe [Text] -> [Text] -> V1alpha1PolicyRule)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text] -> Maybe [Text] -> [Text] -> V1alpha1PolicyRule)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nonResourceURLs")
      Parser
  (Maybe [Text] -> Maybe [Text] -> [Text] -> V1alpha1PolicyRule)
-> Parser (Maybe [Text])
-> Parser (Maybe [Text] -> [Text] -> V1alpha1PolicyRule)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resourceNames")
      Parser (Maybe [Text] -> [Text] -> V1alpha1PolicyRule)
-> Parser (Maybe [Text]) -> Parser ([Text] -> V1alpha1PolicyRule)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resources")
      Parser ([Text] -> V1alpha1PolicyRule)
-> Parser [Text] -> Parser V1alpha1PolicyRule
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"verbs")

-- | ToJSON V1alpha1PolicyRule
instance A.ToJSON V1alpha1PolicyRule where
  toJSON :: V1alpha1PolicyRule -> Value
toJSON V1alpha1PolicyRule {[Text]
Maybe [Text]
v1alpha1PolicyRuleVerbs :: [Text]
v1alpha1PolicyRuleResources :: Maybe [Text]
v1alpha1PolicyRuleResourceNames :: Maybe [Text]
v1alpha1PolicyRuleNonResourceUrLs :: Maybe [Text]
v1alpha1PolicyRuleApiGroups :: Maybe [Text]
v1alpha1PolicyRuleVerbs :: V1alpha1PolicyRule -> [Text]
v1alpha1PolicyRuleResources :: V1alpha1PolicyRule -> Maybe [Text]
v1alpha1PolicyRuleResourceNames :: V1alpha1PolicyRule -> Maybe [Text]
v1alpha1PolicyRuleNonResourceUrLs :: V1alpha1PolicyRule -> Maybe [Text]
v1alpha1PolicyRuleApiGroups :: V1alpha1PolicyRule -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiGroups" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1alpha1PolicyRuleApiGroups
      , Text
"nonResourceURLs" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1alpha1PolicyRuleNonResourceUrLs
      , Text
"resourceNames" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1alpha1PolicyRuleResourceNames
      , Text
"resources" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1alpha1PolicyRuleResources
      , Text
"verbs" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1alpha1PolicyRuleVerbs
      ]


-- | Construct a value of type 'V1alpha1PolicyRule' (by applying it's required fields, if any)
mkV1alpha1PolicyRule
  :: [Text] -- ^ 'v1alpha1PolicyRuleVerbs': Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule.  VerbAll represents all kinds.
  -> V1alpha1PolicyRule
mkV1alpha1PolicyRule :: [Text] -> V1alpha1PolicyRule
mkV1alpha1PolicyRule [Text]
v1alpha1PolicyRuleVerbs =
  V1alpha1PolicyRule :: Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> [Text]
-> V1alpha1PolicyRule
V1alpha1PolicyRule
  { v1alpha1PolicyRuleApiGroups :: Maybe [Text]
v1alpha1PolicyRuleApiGroups = Maybe [Text]
forall a. Maybe a
Nothing
  , v1alpha1PolicyRuleNonResourceUrLs :: Maybe [Text]
v1alpha1PolicyRuleNonResourceUrLs = Maybe [Text]
forall a. Maybe a
Nothing
  , v1alpha1PolicyRuleResourceNames :: Maybe [Text]
v1alpha1PolicyRuleResourceNames = Maybe [Text]
forall a. Maybe a
Nothing
  , v1alpha1PolicyRuleResources :: Maybe [Text]
v1alpha1PolicyRuleResources = Maybe [Text]
forall a. Maybe a
Nothing
  , [Text]
v1alpha1PolicyRuleVerbs :: [Text]
v1alpha1PolicyRuleVerbs :: [Text]
v1alpha1PolicyRuleVerbs
  }

-- ** V1alpha1PriorityClass
-- | V1alpha1PriorityClass
-- DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass. PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.
data V1alpha1PriorityClass = V1alpha1PriorityClass
  { V1alpha1PriorityClass -> Maybe Text
v1alpha1PriorityClassApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1PriorityClass -> Maybe Text
v1alpha1PriorityClassDescription :: !(Maybe Text) -- ^ "description" - description is an arbitrary string that usually provides guidelines on when this priority class should be used.
  , V1alpha1PriorityClass -> Maybe Bool
v1alpha1PriorityClassGlobalDefault :: !(Maybe Bool) -- ^ "globalDefault" - globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as &#x60;globalDefault&#x60;. However, if more than one PriorityClasses exists with their &#x60;globalDefault&#x60; field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.
  , V1alpha1PriorityClass -> Maybe Text
v1alpha1PriorityClassKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1PriorityClass -> Maybe V1ObjectMeta
v1alpha1PriorityClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1alpha1PriorityClass -> Maybe Text
v1alpha1PriorityClassPreemptionPolicy :: !(Maybe Text) -- ^ "preemptionPolicy" - PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.
  , V1alpha1PriorityClass -> Int
v1alpha1PriorityClassValue :: !(Int) -- ^ /Required/ "value" - The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.
  } deriving (Int -> V1alpha1PriorityClass -> ShowS
[V1alpha1PriorityClass] -> ShowS
V1alpha1PriorityClass -> String
(Int -> V1alpha1PriorityClass -> ShowS)
-> (V1alpha1PriorityClass -> String)
-> ([V1alpha1PriorityClass] -> ShowS)
-> Show V1alpha1PriorityClass
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1PriorityClass] -> ShowS
$cshowList :: [V1alpha1PriorityClass] -> ShowS
show :: V1alpha1PriorityClass -> String
$cshow :: V1alpha1PriorityClass -> String
showsPrec :: Int -> V1alpha1PriorityClass -> ShowS
$cshowsPrec :: Int -> V1alpha1PriorityClass -> ShowS
P.Show, V1alpha1PriorityClass -> V1alpha1PriorityClass -> Bool
(V1alpha1PriorityClass -> V1alpha1PriorityClass -> Bool)
-> (V1alpha1PriorityClass -> V1alpha1PriorityClass -> Bool)
-> Eq V1alpha1PriorityClass
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1PriorityClass -> V1alpha1PriorityClass -> Bool
$c/= :: V1alpha1PriorityClass -> V1alpha1PriorityClass -> Bool
== :: V1alpha1PriorityClass -> V1alpha1PriorityClass -> Bool
$c== :: V1alpha1PriorityClass -> V1alpha1PriorityClass -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1PriorityClass
instance A.FromJSON V1alpha1PriorityClass where
  parseJSON :: Value -> Parser V1alpha1PriorityClass
parseJSON = String
-> (Object -> Parser V1alpha1PriorityClass)
-> Value
-> Parser V1alpha1PriorityClass
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1PriorityClass" ((Object -> Parser V1alpha1PriorityClass)
 -> Value -> Parser V1alpha1PriorityClass)
-> (Object -> Parser V1alpha1PriorityClass)
-> Value
-> Parser V1alpha1PriorityClass
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe Text
-> Int
-> V1alpha1PriorityClass
V1alpha1PriorityClass
      (Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe Text
 -> Int
 -> V1alpha1PriorityClass)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe Text
      -> Int
      -> V1alpha1PriorityClass)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe Text
   -> Int
   -> V1alpha1PriorityClass)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe Text
      -> Int
      -> V1alpha1PriorityClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"description")
      Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe Text
   -> Int
   -> V1alpha1PriorityClass)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe Text
      -> Int
      -> V1alpha1PriorityClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"globalDefault")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe Text
   -> Int
   -> V1alpha1PriorityClass)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta -> Maybe Text -> Int -> V1alpha1PriorityClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta -> Maybe Text -> Int -> V1alpha1PriorityClass)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe Text -> Int -> V1alpha1PriorityClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe Text -> Int -> V1alpha1PriorityClass)
-> Parser (Maybe Text) -> Parser (Int -> V1alpha1PriorityClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"preemptionPolicy")
      Parser (Int -> V1alpha1PriorityClass)
-> Parser Int -> Parser V1alpha1PriorityClass
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"value")

-- | ToJSON V1alpha1PriorityClass
instance A.ToJSON V1alpha1PriorityClass where
  toJSON :: V1alpha1PriorityClass -> Value
toJSON V1alpha1PriorityClass {Int
Maybe Bool
Maybe Text
Maybe V1ObjectMeta
v1alpha1PriorityClassValue :: Int
v1alpha1PriorityClassPreemptionPolicy :: Maybe Text
v1alpha1PriorityClassMetadata :: Maybe V1ObjectMeta
v1alpha1PriorityClassKind :: Maybe Text
v1alpha1PriorityClassGlobalDefault :: Maybe Bool
v1alpha1PriorityClassDescription :: Maybe Text
v1alpha1PriorityClassApiVersion :: Maybe Text
v1alpha1PriorityClassValue :: V1alpha1PriorityClass -> Int
v1alpha1PriorityClassPreemptionPolicy :: V1alpha1PriorityClass -> Maybe Text
v1alpha1PriorityClassMetadata :: V1alpha1PriorityClass -> Maybe V1ObjectMeta
v1alpha1PriorityClassKind :: V1alpha1PriorityClass -> Maybe Text
v1alpha1PriorityClassGlobalDefault :: V1alpha1PriorityClass -> Maybe Bool
v1alpha1PriorityClassDescription :: V1alpha1PriorityClass -> Maybe Text
v1alpha1PriorityClassApiVersion :: V1alpha1PriorityClass -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1PriorityClassApiVersion
      , Text
"description" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1PriorityClassDescription
      , Text
"globalDefault" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1alpha1PriorityClassGlobalDefault
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1PriorityClassKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1alpha1PriorityClassMetadata
      , Text
"preemptionPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1PriorityClassPreemptionPolicy
      , Text
"value" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1alpha1PriorityClassValue
      ]


-- | Construct a value of type 'V1alpha1PriorityClass' (by applying it's required fields, if any)
mkV1alpha1PriorityClass
  :: Int -- ^ 'v1alpha1PriorityClassValue': The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.
  -> V1alpha1PriorityClass
mkV1alpha1PriorityClass :: Int -> V1alpha1PriorityClass
mkV1alpha1PriorityClass Int
v1alpha1PriorityClassValue =
  V1alpha1PriorityClass :: Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe Text
-> Int
-> V1alpha1PriorityClass
V1alpha1PriorityClass
  { v1alpha1PriorityClassApiVersion :: Maybe Text
v1alpha1PriorityClassApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1PriorityClassDescription :: Maybe Text
v1alpha1PriorityClassDescription = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1PriorityClassGlobalDefault :: Maybe Bool
v1alpha1PriorityClassGlobalDefault = Maybe Bool
forall a. Maybe a
Nothing
  , v1alpha1PriorityClassKind :: Maybe Text
v1alpha1PriorityClassKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1PriorityClassMetadata :: Maybe V1ObjectMeta
v1alpha1PriorityClassMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1alpha1PriorityClassPreemptionPolicy :: Maybe Text
v1alpha1PriorityClassPreemptionPolicy = Maybe Text
forall a. Maybe a
Nothing
  , Int
v1alpha1PriorityClassValue :: Int
v1alpha1PriorityClassValue :: Int
v1alpha1PriorityClassValue
  }

-- ** V1alpha1PriorityClassList
-- | V1alpha1PriorityClassList
-- PriorityClassList is a collection of priority classes.
data V1alpha1PriorityClassList = V1alpha1PriorityClassList
  { V1alpha1PriorityClassList -> Maybe Text
v1alpha1PriorityClassListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1PriorityClassList -> [V1alpha1PriorityClass]
v1alpha1PriorityClassListItems :: !([V1alpha1PriorityClass]) -- ^ /Required/ "items" - items is the list of PriorityClasses
  , V1alpha1PriorityClassList -> Maybe Text
v1alpha1PriorityClassListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1PriorityClassList -> Maybe V1ListMeta
v1alpha1PriorityClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1alpha1PriorityClassList -> ShowS
[V1alpha1PriorityClassList] -> ShowS
V1alpha1PriorityClassList -> String
(Int -> V1alpha1PriorityClassList -> ShowS)
-> (V1alpha1PriorityClassList -> String)
-> ([V1alpha1PriorityClassList] -> ShowS)
-> Show V1alpha1PriorityClassList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1PriorityClassList] -> ShowS
$cshowList :: [V1alpha1PriorityClassList] -> ShowS
show :: V1alpha1PriorityClassList -> String
$cshow :: V1alpha1PriorityClassList -> String
showsPrec :: Int -> V1alpha1PriorityClassList -> ShowS
$cshowsPrec :: Int -> V1alpha1PriorityClassList -> ShowS
P.Show, V1alpha1PriorityClassList -> V1alpha1PriorityClassList -> Bool
(V1alpha1PriorityClassList -> V1alpha1PriorityClassList -> Bool)
-> (V1alpha1PriorityClassList -> V1alpha1PriorityClassList -> Bool)
-> Eq V1alpha1PriorityClassList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1PriorityClassList -> V1alpha1PriorityClassList -> Bool
$c/= :: V1alpha1PriorityClassList -> V1alpha1PriorityClassList -> Bool
== :: V1alpha1PriorityClassList -> V1alpha1PriorityClassList -> Bool
$c== :: V1alpha1PriorityClassList -> V1alpha1PriorityClassList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1PriorityClassList
instance A.FromJSON V1alpha1PriorityClassList where
  parseJSON :: Value -> Parser V1alpha1PriorityClassList
parseJSON = String
-> (Object -> Parser V1alpha1PriorityClassList)
-> Value
-> Parser V1alpha1PriorityClassList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1PriorityClassList" ((Object -> Parser V1alpha1PriorityClassList)
 -> Value -> Parser V1alpha1PriorityClassList)
-> (Object -> Parser V1alpha1PriorityClassList)
-> Value
-> Parser V1alpha1PriorityClassList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1alpha1PriorityClass]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1PriorityClassList
V1alpha1PriorityClassList
      (Maybe Text
 -> [V1alpha1PriorityClass]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1alpha1PriorityClassList)
-> Parser (Maybe Text)
-> Parser
     ([V1alpha1PriorityClass]
      -> Maybe Text -> Maybe V1ListMeta -> V1alpha1PriorityClassList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1alpha1PriorityClass]
   -> Maybe Text -> Maybe V1ListMeta -> V1alpha1PriorityClassList)
-> Parser [V1alpha1PriorityClass]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1alpha1PriorityClassList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1alpha1PriorityClass]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> V1alpha1PriorityClassList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1alpha1PriorityClassList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1alpha1PriorityClassList)
-> Parser (Maybe V1ListMeta) -> Parser V1alpha1PriorityClassList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1alpha1PriorityClassList
instance A.ToJSON V1alpha1PriorityClassList where
  toJSON :: V1alpha1PriorityClassList -> Value
toJSON V1alpha1PriorityClassList {[V1alpha1PriorityClass]
Maybe Text
Maybe V1ListMeta
v1alpha1PriorityClassListMetadata :: Maybe V1ListMeta
v1alpha1PriorityClassListKind :: Maybe Text
v1alpha1PriorityClassListItems :: [V1alpha1PriorityClass]
v1alpha1PriorityClassListApiVersion :: Maybe Text
v1alpha1PriorityClassListMetadata :: V1alpha1PriorityClassList -> Maybe V1ListMeta
v1alpha1PriorityClassListKind :: V1alpha1PriorityClassList -> Maybe Text
v1alpha1PriorityClassListItems :: V1alpha1PriorityClassList -> [V1alpha1PriorityClass]
v1alpha1PriorityClassListApiVersion :: V1alpha1PriorityClassList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1PriorityClassListApiVersion
      , Text
"items" Text -> [V1alpha1PriorityClass] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1alpha1PriorityClass]
v1alpha1PriorityClassListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1PriorityClassListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1alpha1PriorityClassListMetadata
      ]


-- | Construct a value of type 'V1alpha1PriorityClassList' (by applying it's required fields, if any)
mkV1alpha1PriorityClassList
  :: [V1alpha1PriorityClass] -- ^ 'v1alpha1PriorityClassListItems': items is the list of PriorityClasses
  -> V1alpha1PriorityClassList
mkV1alpha1PriorityClassList :: [V1alpha1PriorityClass] -> V1alpha1PriorityClassList
mkV1alpha1PriorityClassList [V1alpha1PriorityClass]
v1alpha1PriorityClassListItems =
  V1alpha1PriorityClassList :: Maybe Text
-> [V1alpha1PriorityClass]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1PriorityClassList
V1alpha1PriorityClassList
  { v1alpha1PriorityClassListApiVersion :: Maybe Text
v1alpha1PriorityClassListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1alpha1PriorityClass]
v1alpha1PriorityClassListItems :: [V1alpha1PriorityClass]
v1alpha1PriorityClassListItems :: [V1alpha1PriorityClass]
v1alpha1PriorityClassListItems
  , v1alpha1PriorityClassListKind :: Maybe Text
v1alpha1PriorityClassListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1PriorityClassListMetadata :: Maybe V1ListMeta
v1alpha1PriorityClassListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1alpha1Role
-- | V1alpha1Role
-- Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.
data V1alpha1Role = V1alpha1Role
  { V1alpha1Role -> Maybe Text
v1alpha1RoleApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1Role -> Maybe Text
v1alpha1RoleKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1Role -> Maybe V1ObjectMeta
v1alpha1RoleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1alpha1Role -> Maybe [V1alpha1PolicyRule]
v1alpha1RoleRules :: !(Maybe [V1alpha1PolicyRule]) -- ^ "rules" - Rules holds all the PolicyRules for this Role
  } deriving (Int -> V1alpha1Role -> ShowS
[V1alpha1Role] -> ShowS
V1alpha1Role -> String
(Int -> V1alpha1Role -> ShowS)
-> (V1alpha1Role -> String)
-> ([V1alpha1Role] -> ShowS)
-> Show V1alpha1Role
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1Role] -> ShowS
$cshowList :: [V1alpha1Role] -> ShowS
show :: V1alpha1Role -> String
$cshow :: V1alpha1Role -> String
showsPrec :: Int -> V1alpha1Role -> ShowS
$cshowsPrec :: Int -> V1alpha1Role -> ShowS
P.Show, V1alpha1Role -> V1alpha1Role -> Bool
(V1alpha1Role -> V1alpha1Role -> Bool)
-> (V1alpha1Role -> V1alpha1Role -> Bool) -> Eq V1alpha1Role
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1Role -> V1alpha1Role -> Bool
$c/= :: V1alpha1Role -> V1alpha1Role -> Bool
== :: V1alpha1Role -> V1alpha1Role -> Bool
$c== :: V1alpha1Role -> V1alpha1Role -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1Role
instance A.FromJSON V1alpha1Role where
  parseJSON :: Value -> Parser V1alpha1Role
parseJSON = String
-> (Object -> Parser V1alpha1Role) -> Value -> Parser V1alpha1Role
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1Role" ((Object -> Parser V1alpha1Role) -> Value -> Parser V1alpha1Role)
-> (Object -> Parser V1alpha1Role) -> Value -> Parser V1alpha1Role
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1alpha1PolicyRule]
-> V1alpha1Role
V1alpha1Role
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe [V1alpha1PolicyRule]
 -> V1alpha1Role)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [V1alpha1PolicyRule]
      -> V1alpha1Role)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [V1alpha1PolicyRule]
   -> V1alpha1Role)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta -> Maybe [V1alpha1PolicyRule] -> V1alpha1Role)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta -> Maybe [V1alpha1PolicyRule] -> V1alpha1Role)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe [V1alpha1PolicyRule] -> V1alpha1Role)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe [V1alpha1PolicyRule] -> V1alpha1Role)
-> Parser (Maybe [V1alpha1PolicyRule]) -> Parser V1alpha1Role
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1alpha1PolicyRule])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rules")

-- | ToJSON V1alpha1Role
instance A.ToJSON V1alpha1Role where
  toJSON :: V1alpha1Role -> Value
toJSON V1alpha1Role {Maybe [V1alpha1PolicyRule]
Maybe Text
Maybe V1ObjectMeta
v1alpha1RoleRules :: Maybe [V1alpha1PolicyRule]
v1alpha1RoleMetadata :: Maybe V1ObjectMeta
v1alpha1RoleKind :: Maybe Text
v1alpha1RoleApiVersion :: Maybe Text
v1alpha1RoleRules :: V1alpha1Role -> Maybe [V1alpha1PolicyRule]
v1alpha1RoleMetadata :: V1alpha1Role -> Maybe V1ObjectMeta
v1alpha1RoleKind :: V1alpha1Role -> Maybe Text
v1alpha1RoleApiVersion :: V1alpha1Role -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1RoleApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1RoleKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1alpha1RoleMetadata
      , Text
"rules" Text -> Maybe [V1alpha1PolicyRule] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1alpha1PolicyRule]
v1alpha1RoleRules
      ]


-- | Construct a value of type 'V1alpha1Role' (by applying it's required fields, if any)
mkV1alpha1Role
  :: V1alpha1Role
mkV1alpha1Role :: V1alpha1Role
mkV1alpha1Role =
  V1alpha1Role :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1alpha1PolicyRule]
-> V1alpha1Role
V1alpha1Role
  { v1alpha1RoleApiVersion :: Maybe Text
v1alpha1RoleApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1RoleKind :: Maybe Text
v1alpha1RoleKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1RoleMetadata :: Maybe V1ObjectMeta
v1alpha1RoleMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1alpha1RoleRules :: Maybe [V1alpha1PolicyRule]
v1alpha1RoleRules = Maybe [V1alpha1PolicyRule]
forall a. Maybe a
Nothing
  }

-- ** V1alpha1RoleBinding
-- | V1alpha1RoleBinding
-- RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given namespace only have effect in that namespace.
data V1alpha1RoleBinding = V1alpha1RoleBinding
  { V1alpha1RoleBinding -> Maybe Text
v1alpha1RoleBindingApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1RoleBinding -> Maybe Text
v1alpha1RoleBindingKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1RoleBinding -> Maybe V1ObjectMeta
v1alpha1RoleBindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1alpha1RoleBinding -> V1alpha1RoleRef
v1alpha1RoleBindingRoleRef :: !(V1alpha1RoleRef) -- ^ /Required/ "roleRef"
  , V1alpha1RoleBinding -> Maybe [V1alpha1Subject]
v1alpha1RoleBindingSubjects :: !(Maybe [V1alpha1Subject]) -- ^ "subjects" - Subjects holds references to the objects the role applies to.
  } deriving (Int -> V1alpha1RoleBinding -> ShowS
[V1alpha1RoleBinding] -> ShowS
V1alpha1RoleBinding -> String
(Int -> V1alpha1RoleBinding -> ShowS)
-> (V1alpha1RoleBinding -> String)
-> ([V1alpha1RoleBinding] -> ShowS)
-> Show V1alpha1RoleBinding
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1RoleBinding] -> ShowS
$cshowList :: [V1alpha1RoleBinding] -> ShowS
show :: V1alpha1RoleBinding -> String
$cshow :: V1alpha1RoleBinding -> String
showsPrec :: Int -> V1alpha1RoleBinding -> ShowS
$cshowsPrec :: Int -> V1alpha1RoleBinding -> ShowS
P.Show, V1alpha1RoleBinding -> V1alpha1RoleBinding -> Bool
(V1alpha1RoleBinding -> V1alpha1RoleBinding -> Bool)
-> (V1alpha1RoleBinding -> V1alpha1RoleBinding -> Bool)
-> Eq V1alpha1RoleBinding
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1RoleBinding -> V1alpha1RoleBinding -> Bool
$c/= :: V1alpha1RoleBinding -> V1alpha1RoleBinding -> Bool
== :: V1alpha1RoleBinding -> V1alpha1RoleBinding -> Bool
$c== :: V1alpha1RoleBinding -> V1alpha1RoleBinding -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1RoleBinding
instance A.FromJSON V1alpha1RoleBinding where
  parseJSON :: Value -> Parser V1alpha1RoleBinding
parseJSON = String
-> (Object -> Parser V1alpha1RoleBinding)
-> Value
-> Parser V1alpha1RoleBinding
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1RoleBinding" ((Object -> Parser V1alpha1RoleBinding)
 -> Value -> Parser V1alpha1RoleBinding)
-> (Object -> Parser V1alpha1RoleBinding)
-> Value
-> Parser V1alpha1RoleBinding
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1alpha1RoleRef
-> Maybe [V1alpha1Subject]
-> V1alpha1RoleBinding
V1alpha1RoleBinding
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1alpha1RoleRef
 -> Maybe [V1alpha1Subject]
 -> V1alpha1RoleBinding)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1alpha1RoleRef
      -> Maybe [V1alpha1Subject]
      -> V1alpha1RoleBinding)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1alpha1RoleRef
   -> Maybe [V1alpha1Subject]
   -> V1alpha1RoleBinding)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1alpha1RoleRef
      -> Maybe [V1alpha1Subject]
      -> V1alpha1RoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1alpha1RoleRef
   -> Maybe [V1alpha1Subject]
   -> V1alpha1RoleBinding)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1alpha1RoleRef -> Maybe [V1alpha1Subject] -> V1alpha1RoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1alpha1RoleRef -> Maybe [V1alpha1Subject] -> V1alpha1RoleBinding)
-> Parser V1alpha1RoleRef
-> Parser (Maybe [V1alpha1Subject] -> V1alpha1RoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1alpha1RoleRef
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"roleRef")
      Parser (Maybe [V1alpha1Subject] -> V1alpha1RoleBinding)
-> Parser (Maybe [V1alpha1Subject]) -> Parser V1alpha1RoleBinding
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1alpha1Subject])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"subjects")

-- | ToJSON V1alpha1RoleBinding
instance A.ToJSON V1alpha1RoleBinding where
  toJSON :: V1alpha1RoleBinding -> Value
toJSON V1alpha1RoleBinding {Maybe [V1alpha1Subject]
Maybe Text
Maybe V1ObjectMeta
V1alpha1RoleRef
v1alpha1RoleBindingSubjects :: Maybe [V1alpha1Subject]
v1alpha1RoleBindingRoleRef :: V1alpha1RoleRef
v1alpha1RoleBindingMetadata :: Maybe V1ObjectMeta
v1alpha1RoleBindingKind :: Maybe Text
v1alpha1RoleBindingApiVersion :: Maybe Text
v1alpha1RoleBindingSubjects :: V1alpha1RoleBinding -> Maybe [V1alpha1Subject]
v1alpha1RoleBindingRoleRef :: V1alpha1RoleBinding -> V1alpha1RoleRef
v1alpha1RoleBindingMetadata :: V1alpha1RoleBinding -> Maybe V1ObjectMeta
v1alpha1RoleBindingKind :: V1alpha1RoleBinding -> Maybe Text
v1alpha1RoleBindingApiVersion :: V1alpha1RoleBinding -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1RoleBindingApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1RoleBindingKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1alpha1RoleBindingMetadata
      , Text
"roleRef" Text -> V1alpha1RoleRef -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1alpha1RoleRef
v1alpha1RoleBindingRoleRef
      , Text
"subjects" Text -> Maybe [V1alpha1Subject] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1alpha1Subject]
v1alpha1RoleBindingSubjects
      ]


-- | Construct a value of type 'V1alpha1RoleBinding' (by applying it's required fields, if any)
mkV1alpha1RoleBinding
  :: V1alpha1RoleRef -- ^ 'v1alpha1RoleBindingRoleRef' 
  -> V1alpha1RoleBinding
mkV1alpha1RoleBinding :: V1alpha1RoleRef -> V1alpha1RoleBinding
mkV1alpha1RoleBinding V1alpha1RoleRef
v1alpha1RoleBindingRoleRef =
  V1alpha1RoleBinding :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1alpha1RoleRef
-> Maybe [V1alpha1Subject]
-> V1alpha1RoleBinding
V1alpha1RoleBinding
  { v1alpha1RoleBindingApiVersion :: Maybe Text
v1alpha1RoleBindingApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1RoleBindingKind :: Maybe Text
v1alpha1RoleBindingKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1RoleBindingMetadata :: Maybe V1ObjectMeta
v1alpha1RoleBindingMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1alpha1RoleRef
v1alpha1RoleBindingRoleRef :: V1alpha1RoleRef
v1alpha1RoleBindingRoleRef :: V1alpha1RoleRef
v1alpha1RoleBindingRoleRef
  , v1alpha1RoleBindingSubjects :: Maybe [V1alpha1Subject]
v1alpha1RoleBindingSubjects = Maybe [V1alpha1Subject]
forall a. Maybe a
Nothing
  }

-- ** V1alpha1RoleBindingList
-- | V1alpha1RoleBindingList
-- RoleBindingList is a collection of RoleBindings
data V1alpha1RoleBindingList = V1alpha1RoleBindingList
  { V1alpha1RoleBindingList -> Maybe Text
v1alpha1RoleBindingListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1RoleBindingList -> [V1alpha1RoleBinding]
v1alpha1RoleBindingListItems :: !([V1alpha1RoleBinding]) -- ^ /Required/ "items" - Items is a list of RoleBindings
  , V1alpha1RoleBindingList -> Maybe Text
v1alpha1RoleBindingListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1RoleBindingList -> Maybe V1ListMeta
v1alpha1RoleBindingListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1alpha1RoleBindingList -> ShowS
[V1alpha1RoleBindingList] -> ShowS
V1alpha1RoleBindingList -> String
(Int -> V1alpha1RoleBindingList -> ShowS)
-> (V1alpha1RoleBindingList -> String)
-> ([V1alpha1RoleBindingList] -> ShowS)
-> Show V1alpha1RoleBindingList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1RoleBindingList] -> ShowS
$cshowList :: [V1alpha1RoleBindingList] -> ShowS
show :: V1alpha1RoleBindingList -> String
$cshow :: V1alpha1RoleBindingList -> String
showsPrec :: Int -> V1alpha1RoleBindingList -> ShowS
$cshowsPrec :: Int -> V1alpha1RoleBindingList -> ShowS
P.Show, V1alpha1RoleBindingList -> V1alpha1RoleBindingList -> Bool
(V1alpha1RoleBindingList -> V1alpha1RoleBindingList -> Bool)
-> (V1alpha1RoleBindingList -> V1alpha1RoleBindingList -> Bool)
-> Eq V1alpha1RoleBindingList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1RoleBindingList -> V1alpha1RoleBindingList -> Bool
$c/= :: V1alpha1RoleBindingList -> V1alpha1RoleBindingList -> Bool
== :: V1alpha1RoleBindingList -> V1alpha1RoleBindingList -> Bool
$c== :: V1alpha1RoleBindingList -> V1alpha1RoleBindingList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1RoleBindingList
instance A.FromJSON V1alpha1RoleBindingList where
  parseJSON :: Value -> Parser V1alpha1RoleBindingList
parseJSON = String
-> (Object -> Parser V1alpha1RoleBindingList)
-> Value
-> Parser V1alpha1RoleBindingList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1RoleBindingList" ((Object -> Parser V1alpha1RoleBindingList)
 -> Value -> Parser V1alpha1RoleBindingList)
-> (Object -> Parser V1alpha1RoleBindingList)
-> Value
-> Parser V1alpha1RoleBindingList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1alpha1RoleBinding]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1RoleBindingList
V1alpha1RoleBindingList
      (Maybe Text
 -> [V1alpha1RoleBinding]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1alpha1RoleBindingList)
-> Parser (Maybe Text)
-> Parser
     ([V1alpha1RoleBinding]
      -> Maybe Text -> Maybe V1ListMeta -> V1alpha1RoleBindingList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1alpha1RoleBinding]
   -> Maybe Text -> Maybe V1ListMeta -> V1alpha1RoleBindingList)
-> Parser [V1alpha1RoleBinding]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1alpha1RoleBindingList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1alpha1RoleBinding]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1alpha1RoleBindingList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1alpha1RoleBindingList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1alpha1RoleBindingList)
-> Parser (Maybe V1ListMeta) -> Parser V1alpha1RoleBindingList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1alpha1RoleBindingList
instance A.ToJSON V1alpha1RoleBindingList where
  toJSON :: V1alpha1RoleBindingList -> Value
toJSON V1alpha1RoleBindingList {[V1alpha1RoleBinding]
Maybe Text
Maybe V1ListMeta
v1alpha1RoleBindingListMetadata :: Maybe V1ListMeta
v1alpha1RoleBindingListKind :: Maybe Text
v1alpha1RoleBindingListItems :: [V1alpha1RoleBinding]
v1alpha1RoleBindingListApiVersion :: Maybe Text
v1alpha1RoleBindingListMetadata :: V1alpha1RoleBindingList -> Maybe V1ListMeta
v1alpha1RoleBindingListKind :: V1alpha1RoleBindingList -> Maybe Text
v1alpha1RoleBindingListItems :: V1alpha1RoleBindingList -> [V1alpha1RoleBinding]
v1alpha1RoleBindingListApiVersion :: V1alpha1RoleBindingList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1RoleBindingListApiVersion
      , Text
"items" Text -> [V1alpha1RoleBinding] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1alpha1RoleBinding]
v1alpha1RoleBindingListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1RoleBindingListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1alpha1RoleBindingListMetadata
      ]


-- | Construct a value of type 'V1alpha1RoleBindingList' (by applying it's required fields, if any)
mkV1alpha1RoleBindingList
  :: [V1alpha1RoleBinding] -- ^ 'v1alpha1RoleBindingListItems': Items is a list of RoleBindings
  -> V1alpha1RoleBindingList
mkV1alpha1RoleBindingList :: [V1alpha1RoleBinding] -> V1alpha1RoleBindingList
mkV1alpha1RoleBindingList [V1alpha1RoleBinding]
v1alpha1RoleBindingListItems =
  V1alpha1RoleBindingList :: Maybe Text
-> [V1alpha1RoleBinding]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1RoleBindingList
V1alpha1RoleBindingList
  { v1alpha1RoleBindingListApiVersion :: Maybe Text
v1alpha1RoleBindingListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1alpha1RoleBinding]
v1alpha1RoleBindingListItems :: [V1alpha1RoleBinding]
v1alpha1RoleBindingListItems :: [V1alpha1RoleBinding]
v1alpha1RoleBindingListItems
  , v1alpha1RoleBindingListKind :: Maybe Text
v1alpha1RoleBindingListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1RoleBindingListMetadata :: Maybe V1ListMeta
v1alpha1RoleBindingListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1alpha1RoleList
-- | V1alpha1RoleList
-- RoleList is a collection of Roles
data V1alpha1RoleList = V1alpha1RoleList
  { V1alpha1RoleList -> Maybe Text
v1alpha1RoleListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1RoleList -> [V1alpha1Role]
v1alpha1RoleListItems :: !([V1alpha1Role]) -- ^ /Required/ "items" - Items is a list of Roles
  , V1alpha1RoleList -> Maybe Text
v1alpha1RoleListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1RoleList -> Maybe V1ListMeta
v1alpha1RoleListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1alpha1RoleList -> ShowS
[V1alpha1RoleList] -> ShowS
V1alpha1RoleList -> String
(Int -> V1alpha1RoleList -> ShowS)
-> (V1alpha1RoleList -> String)
-> ([V1alpha1RoleList] -> ShowS)
-> Show V1alpha1RoleList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1RoleList] -> ShowS
$cshowList :: [V1alpha1RoleList] -> ShowS
show :: V1alpha1RoleList -> String
$cshow :: V1alpha1RoleList -> String
showsPrec :: Int -> V1alpha1RoleList -> ShowS
$cshowsPrec :: Int -> V1alpha1RoleList -> ShowS
P.Show, V1alpha1RoleList -> V1alpha1RoleList -> Bool
(V1alpha1RoleList -> V1alpha1RoleList -> Bool)
-> (V1alpha1RoleList -> V1alpha1RoleList -> Bool)
-> Eq V1alpha1RoleList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1RoleList -> V1alpha1RoleList -> Bool
$c/= :: V1alpha1RoleList -> V1alpha1RoleList -> Bool
== :: V1alpha1RoleList -> V1alpha1RoleList -> Bool
$c== :: V1alpha1RoleList -> V1alpha1RoleList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1RoleList
instance A.FromJSON V1alpha1RoleList where
  parseJSON :: Value -> Parser V1alpha1RoleList
parseJSON = String
-> (Object -> Parser V1alpha1RoleList)
-> Value
-> Parser V1alpha1RoleList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1RoleList" ((Object -> Parser V1alpha1RoleList)
 -> Value -> Parser V1alpha1RoleList)
-> (Object -> Parser V1alpha1RoleList)
-> Value
-> Parser V1alpha1RoleList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1alpha1Role]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1RoleList
V1alpha1RoleList
      (Maybe Text
 -> [V1alpha1Role]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1alpha1RoleList)
-> Parser (Maybe Text)
-> Parser
     ([V1alpha1Role]
      -> Maybe Text -> Maybe V1ListMeta -> V1alpha1RoleList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1alpha1Role]
   -> Maybe Text -> Maybe V1ListMeta -> V1alpha1RoleList)
-> Parser [V1alpha1Role]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1alpha1RoleList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1alpha1Role]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1alpha1RoleList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1alpha1RoleList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1alpha1RoleList)
-> Parser (Maybe V1ListMeta) -> Parser V1alpha1RoleList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1alpha1RoleList
instance A.ToJSON V1alpha1RoleList where
  toJSON :: V1alpha1RoleList -> Value
toJSON V1alpha1RoleList {[V1alpha1Role]
Maybe Text
Maybe V1ListMeta
v1alpha1RoleListMetadata :: Maybe V1ListMeta
v1alpha1RoleListKind :: Maybe Text
v1alpha1RoleListItems :: [V1alpha1Role]
v1alpha1RoleListApiVersion :: Maybe Text
v1alpha1RoleListMetadata :: V1alpha1RoleList -> Maybe V1ListMeta
v1alpha1RoleListKind :: V1alpha1RoleList -> Maybe Text
v1alpha1RoleListItems :: V1alpha1RoleList -> [V1alpha1Role]
v1alpha1RoleListApiVersion :: V1alpha1RoleList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1RoleListApiVersion
      , Text
"items" Text -> [V1alpha1Role] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1alpha1Role]
v1alpha1RoleListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1RoleListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1alpha1RoleListMetadata
      ]


-- | Construct a value of type 'V1alpha1RoleList' (by applying it's required fields, if any)
mkV1alpha1RoleList
  :: [V1alpha1Role] -- ^ 'v1alpha1RoleListItems': Items is a list of Roles
  -> V1alpha1RoleList
mkV1alpha1RoleList :: [V1alpha1Role] -> V1alpha1RoleList
mkV1alpha1RoleList [V1alpha1Role]
v1alpha1RoleListItems =
  V1alpha1RoleList :: Maybe Text
-> [V1alpha1Role]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1RoleList
V1alpha1RoleList
  { v1alpha1RoleListApiVersion :: Maybe Text
v1alpha1RoleListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1alpha1Role]
v1alpha1RoleListItems :: [V1alpha1Role]
v1alpha1RoleListItems :: [V1alpha1Role]
v1alpha1RoleListItems
  , v1alpha1RoleListKind :: Maybe Text
v1alpha1RoleListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1RoleListMetadata :: Maybe V1ListMeta
v1alpha1RoleListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1alpha1RoleRef
-- | V1alpha1RoleRef
-- RoleRef contains information that points to the role being used
data V1alpha1RoleRef = V1alpha1RoleRef
  { V1alpha1RoleRef -> Text
v1alpha1RoleRefApiGroup :: !(Text) -- ^ /Required/ "apiGroup" - APIGroup is the group for the resource being referenced
  , V1alpha1RoleRef -> Text
v1alpha1RoleRefKind :: !(Text) -- ^ /Required/ "kind" - Kind is the type of resource being referenced
  , V1alpha1RoleRef -> Text
v1alpha1RoleRefName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced
  } deriving (Int -> V1alpha1RoleRef -> ShowS
[V1alpha1RoleRef] -> ShowS
V1alpha1RoleRef -> String
(Int -> V1alpha1RoleRef -> ShowS)
-> (V1alpha1RoleRef -> String)
-> ([V1alpha1RoleRef] -> ShowS)
-> Show V1alpha1RoleRef
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1RoleRef] -> ShowS
$cshowList :: [V1alpha1RoleRef] -> ShowS
show :: V1alpha1RoleRef -> String
$cshow :: V1alpha1RoleRef -> String
showsPrec :: Int -> V1alpha1RoleRef -> ShowS
$cshowsPrec :: Int -> V1alpha1RoleRef -> ShowS
P.Show, V1alpha1RoleRef -> V1alpha1RoleRef -> Bool
(V1alpha1RoleRef -> V1alpha1RoleRef -> Bool)
-> (V1alpha1RoleRef -> V1alpha1RoleRef -> Bool)
-> Eq V1alpha1RoleRef
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1RoleRef -> V1alpha1RoleRef -> Bool
$c/= :: V1alpha1RoleRef -> V1alpha1RoleRef -> Bool
== :: V1alpha1RoleRef -> V1alpha1RoleRef -> Bool
$c== :: V1alpha1RoleRef -> V1alpha1RoleRef -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1RoleRef
instance A.FromJSON V1alpha1RoleRef where
  parseJSON :: Value -> Parser V1alpha1RoleRef
parseJSON = String
-> (Object -> Parser V1alpha1RoleRef)
-> Value
-> Parser V1alpha1RoleRef
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1RoleRef" ((Object -> Parser V1alpha1RoleRef)
 -> Value -> Parser V1alpha1RoleRef)
-> (Object -> Parser V1alpha1RoleRef)
-> Value
-> Parser V1alpha1RoleRef
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> Text -> V1alpha1RoleRef
V1alpha1RoleRef
      (Text -> Text -> Text -> V1alpha1RoleRef)
-> Parser Text -> Parser (Text -> Text -> V1alpha1RoleRef)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"apiGroup")
      Parser (Text -> Text -> V1alpha1RoleRef)
-> Parser Text -> Parser (Text -> V1alpha1RoleRef)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kind")
      Parser (Text -> V1alpha1RoleRef)
-> Parser Text -> Parser V1alpha1RoleRef
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")

-- | ToJSON V1alpha1RoleRef
instance A.ToJSON V1alpha1RoleRef where
  toJSON :: V1alpha1RoleRef -> Value
toJSON V1alpha1RoleRef {Text
v1alpha1RoleRefName :: Text
v1alpha1RoleRefKind :: Text
v1alpha1RoleRefApiGroup :: Text
v1alpha1RoleRefName :: V1alpha1RoleRef -> Text
v1alpha1RoleRefKind :: V1alpha1RoleRef -> Text
v1alpha1RoleRefApiGroup :: V1alpha1RoleRef -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiGroup" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1alpha1RoleRefApiGroup
      , Text
"kind" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1alpha1RoleRefKind
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1alpha1RoleRefName
      ]


-- | Construct a value of type 'V1alpha1RoleRef' (by applying it's required fields, if any)
mkV1alpha1RoleRef
  :: Text -- ^ 'v1alpha1RoleRefApiGroup': APIGroup is the group for the resource being referenced
  -> Text -- ^ 'v1alpha1RoleRefKind': Kind is the type of resource being referenced
  -> Text -- ^ 'v1alpha1RoleRefName': Name is the name of resource being referenced
  -> V1alpha1RoleRef
mkV1alpha1RoleRef :: Text -> Text -> Text -> V1alpha1RoleRef
mkV1alpha1RoleRef Text
v1alpha1RoleRefApiGroup Text
v1alpha1RoleRefKind Text
v1alpha1RoleRefName =
  V1alpha1RoleRef :: Text -> Text -> Text -> V1alpha1RoleRef
V1alpha1RoleRef
  { Text
v1alpha1RoleRefApiGroup :: Text
v1alpha1RoleRefApiGroup :: Text
v1alpha1RoleRefApiGroup
  , Text
v1alpha1RoleRefKind :: Text
v1alpha1RoleRefKind :: Text
v1alpha1RoleRefKind
  , Text
v1alpha1RoleRefName :: Text
v1alpha1RoleRefName :: Text
v1alpha1RoleRefName
  }

-- ** V1alpha1RuntimeClass
-- | V1alpha1RuntimeClass
-- RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are (currently) manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod.  For more details, see https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md
data V1alpha1RuntimeClass = V1alpha1RuntimeClass
  { V1alpha1RuntimeClass -> Maybe Text
v1alpha1RuntimeClassApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1RuntimeClass -> Maybe Text
v1alpha1RuntimeClassKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1RuntimeClass -> Maybe V1ObjectMeta
v1alpha1RuntimeClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1alpha1RuntimeClass -> V1alpha1RuntimeClassSpec
v1alpha1RuntimeClassSpec :: !(V1alpha1RuntimeClassSpec) -- ^ /Required/ "spec"
  } deriving (Int -> V1alpha1RuntimeClass -> ShowS
[V1alpha1RuntimeClass] -> ShowS
V1alpha1RuntimeClass -> String
(Int -> V1alpha1RuntimeClass -> ShowS)
-> (V1alpha1RuntimeClass -> String)
-> ([V1alpha1RuntimeClass] -> ShowS)
-> Show V1alpha1RuntimeClass
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1RuntimeClass] -> ShowS
$cshowList :: [V1alpha1RuntimeClass] -> ShowS
show :: V1alpha1RuntimeClass -> String
$cshow :: V1alpha1RuntimeClass -> String
showsPrec :: Int -> V1alpha1RuntimeClass -> ShowS
$cshowsPrec :: Int -> V1alpha1RuntimeClass -> ShowS
P.Show, V1alpha1RuntimeClass -> V1alpha1RuntimeClass -> Bool
(V1alpha1RuntimeClass -> V1alpha1RuntimeClass -> Bool)
-> (V1alpha1RuntimeClass -> V1alpha1RuntimeClass -> Bool)
-> Eq V1alpha1RuntimeClass
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1RuntimeClass -> V1alpha1RuntimeClass -> Bool
$c/= :: V1alpha1RuntimeClass -> V1alpha1RuntimeClass -> Bool
== :: V1alpha1RuntimeClass -> V1alpha1RuntimeClass -> Bool
$c== :: V1alpha1RuntimeClass -> V1alpha1RuntimeClass -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1RuntimeClass
instance A.FromJSON V1alpha1RuntimeClass where
  parseJSON :: Value -> Parser V1alpha1RuntimeClass
parseJSON = String
-> (Object -> Parser V1alpha1RuntimeClass)
-> Value
-> Parser V1alpha1RuntimeClass
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1RuntimeClass" ((Object -> Parser V1alpha1RuntimeClass)
 -> Value -> Parser V1alpha1RuntimeClass)
-> (Object -> Parser V1alpha1RuntimeClass)
-> Value
-> Parser V1alpha1RuntimeClass
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1alpha1RuntimeClassSpec
-> V1alpha1RuntimeClass
V1alpha1RuntimeClass
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1alpha1RuntimeClassSpec
 -> V1alpha1RuntimeClass)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1alpha1RuntimeClassSpec
      -> V1alpha1RuntimeClass)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1alpha1RuntimeClassSpec
   -> V1alpha1RuntimeClass)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1alpha1RuntimeClassSpec -> V1alpha1RuntimeClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1alpha1RuntimeClassSpec -> V1alpha1RuntimeClass)
-> Parser (Maybe V1ObjectMeta)
-> Parser (V1alpha1RuntimeClassSpec -> V1alpha1RuntimeClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (V1alpha1RuntimeClassSpec -> V1alpha1RuntimeClass)
-> Parser V1alpha1RuntimeClassSpec -> Parser V1alpha1RuntimeClass
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1alpha1RuntimeClassSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")

-- | ToJSON V1alpha1RuntimeClass
instance A.ToJSON V1alpha1RuntimeClass where
  toJSON :: V1alpha1RuntimeClass -> Value
toJSON V1alpha1RuntimeClass {Maybe Text
Maybe V1ObjectMeta
V1alpha1RuntimeClassSpec
v1alpha1RuntimeClassSpec :: V1alpha1RuntimeClassSpec
v1alpha1RuntimeClassMetadata :: Maybe V1ObjectMeta
v1alpha1RuntimeClassKind :: Maybe Text
v1alpha1RuntimeClassApiVersion :: Maybe Text
v1alpha1RuntimeClassSpec :: V1alpha1RuntimeClass -> V1alpha1RuntimeClassSpec
v1alpha1RuntimeClassMetadata :: V1alpha1RuntimeClass -> Maybe V1ObjectMeta
v1alpha1RuntimeClassKind :: V1alpha1RuntimeClass -> Maybe Text
v1alpha1RuntimeClassApiVersion :: V1alpha1RuntimeClass -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1RuntimeClassApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1RuntimeClassKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1alpha1RuntimeClassMetadata
      , Text
"spec" Text -> V1alpha1RuntimeClassSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1alpha1RuntimeClassSpec
v1alpha1RuntimeClassSpec
      ]


-- | Construct a value of type 'V1alpha1RuntimeClass' (by applying it's required fields, if any)
mkV1alpha1RuntimeClass
  :: V1alpha1RuntimeClassSpec -- ^ 'v1alpha1RuntimeClassSpec' 
  -> V1alpha1RuntimeClass
mkV1alpha1RuntimeClass :: V1alpha1RuntimeClassSpec -> V1alpha1RuntimeClass
mkV1alpha1RuntimeClass V1alpha1RuntimeClassSpec
v1alpha1RuntimeClassSpec =
  V1alpha1RuntimeClass :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1alpha1RuntimeClassSpec
-> V1alpha1RuntimeClass
V1alpha1RuntimeClass
  { v1alpha1RuntimeClassApiVersion :: Maybe Text
v1alpha1RuntimeClassApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1RuntimeClassKind :: Maybe Text
v1alpha1RuntimeClassKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1RuntimeClassMetadata :: Maybe V1ObjectMeta
v1alpha1RuntimeClassMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1alpha1RuntimeClassSpec
v1alpha1RuntimeClassSpec :: V1alpha1RuntimeClassSpec
v1alpha1RuntimeClassSpec :: V1alpha1RuntimeClassSpec
v1alpha1RuntimeClassSpec
  }

-- ** V1alpha1RuntimeClassList
-- | V1alpha1RuntimeClassList
-- RuntimeClassList is a list of RuntimeClass objects.
data V1alpha1RuntimeClassList = V1alpha1RuntimeClassList
  { V1alpha1RuntimeClassList -> Maybe Text
v1alpha1RuntimeClassListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1RuntimeClassList -> [V1alpha1RuntimeClass]
v1alpha1RuntimeClassListItems :: !([V1alpha1RuntimeClass]) -- ^ /Required/ "items" - Items is a list of schema objects.
  , V1alpha1RuntimeClassList -> Maybe Text
v1alpha1RuntimeClassListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1RuntimeClassList -> Maybe V1ListMeta
v1alpha1RuntimeClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1alpha1RuntimeClassList -> ShowS
[V1alpha1RuntimeClassList] -> ShowS
V1alpha1RuntimeClassList -> String
(Int -> V1alpha1RuntimeClassList -> ShowS)
-> (V1alpha1RuntimeClassList -> String)
-> ([V1alpha1RuntimeClassList] -> ShowS)
-> Show V1alpha1RuntimeClassList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1RuntimeClassList] -> ShowS
$cshowList :: [V1alpha1RuntimeClassList] -> ShowS
show :: V1alpha1RuntimeClassList -> String
$cshow :: V1alpha1RuntimeClassList -> String
showsPrec :: Int -> V1alpha1RuntimeClassList -> ShowS
$cshowsPrec :: Int -> V1alpha1RuntimeClassList -> ShowS
P.Show, V1alpha1RuntimeClassList -> V1alpha1RuntimeClassList -> Bool
(V1alpha1RuntimeClassList -> V1alpha1RuntimeClassList -> Bool)
-> (V1alpha1RuntimeClassList -> V1alpha1RuntimeClassList -> Bool)
-> Eq V1alpha1RuntimeClassList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1RuntimeClassList -> V1alpha1RuntimeClassList -> Bool
$c/= :: V1alpha1RuntimeClassList -> V1alpha1RuntimeClassList -> Bool
== :: V1alpha1RuntimeClassList -> V1alpha1RuntimeClassList -> Bool
$c== :: V1alpha1RuntimeClassList -> V1alpha1RuntimeClassList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1RuntimeClassList
instance A.FromJSON V1alpha1RuntimeClassList where
  parseJSON :: Value -> Parser V1alpha1RuntimeClassList
parseJSON = String
-> (Object -> Parser V1alpha1RuntimeClassList)
-> Value
-> Parser V1alpha1RuntimeClassList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1RuntimeClassList" ((Object -> Parser V1alpha1RuntimeClassList)
 -> Value -> Parser V1alpha1RuntimeClassList)
-> (Object -> Parser V1alpha1RuntimeClassList)
-> Value
-> Parser V1alpha1RuntimeClassList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1alpha1RuntimeClass]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1RuntimeClassList
V1alpha1RuntimeClassList
      (Maybe Text
 -> [V1alpha1RuntimeClass]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1alpha1RuntimeClassList)
-> Parser (Maybe Text)
-> Parser
     ([V1alpha1RuntimeClass]
      -> Maybe Text -> Maybe V1ListMeta -> V1alpha1RuntimeClassList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1alpha1RuntimeClass]
   -> Maybe Text -> Maybe V1ListMeta -> V1alpha1RuntimeClassList)
-> Parser [V1alpha1RuntimeClass]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1alpha1RuntimeClassList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1alpha1RuntimeClass]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1alpha1RuntimeClassList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1alpha1RuntimeClassList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1alpha1RuntimeClassList)
-> Parser (Maybe V1ListMeta) -> Parser V1alpha1RuntimeClassList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1alpha1RuntimeClassList
instance A.ToJSON V1alpha1RuntimeClassList where
  toJSON :: V1alpha1RuntimeClassList -> Value
toJSON V1alpha1RuntimeClassList {[V1alpha1RuntimeClass]
Maybe Text
Maybe V1ListMeta
v1alpha1RuntimeClassListMetadata :: Maybe V1ListMeta
v1alpha1RuntimeClassListKind :: Maybe Text
v1alpha1RuntimeClassListItems :: [V1alpha1RuntimeClass]
v1alpha1RuntimeClassListApiVersion :: Maybe Text
v1alpha1RuntimeClassListMetadata :: V1alpha1RuntimeClassList -> Maybe V1ListMeta
v1alpha1RuntimeClassListKind :: V1alpha1RuntimeClassList -> Maybe Text
v1alpha1RuntimeClassListItems :: V1alpha1RuntimeClassList -> [V1alpha1RuntimeClass]
v1alpha1RuntimeClassListApiVersion :: V1alpha1RuntimeClassList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1RuntimeClassListApiVersion
      , Text
"items" Text -> [V1alpha1RuntimeClass] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1alpha1RuntimeClass]
v1alpha1RuntimeClassListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1RuntimeClassListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1alpha1RuntimeClassListMetadata
      ]


-- | Construct a value of type 'V1alpha1RuntimeClassList' (by applying it's required fields, if any)
mkV1alpha1RuntimeClassList
  :: [V1alpha1RuntimeClass] -- ^ 'v1alpha1RuntimeClassListItems': Items is a list of schema objects.
  -> V1alpha1RuntimeClassList
mkV1alpha1RuntimeClassList :: [V1alpha1RuntimeClass] -> V1alpha1RuntimeClassList
mkV1alpha1RuntimeClassList [V1alpha1RuntimeClass]
v1alpha1RuntimeClassListItems =
  V1alpha1RuntimeClassList :: Maybe Text
-> [V1alpha1RuntimeClass]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1RuntimeClassList
V1alpha1RuntimeClassList
  { v1alpha1RuntimeClassListApiVersion :: Maybe Text
v1alpha1RuntimeClassListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1alpha1RuntimeClass]
v1alpha1RuntimeClassListItems :: [V1alpha1RuntimeClass]
v1alpha1RuntimeClassListItems :: [V1alpha1RuntimeClass]
v1alpha1RuntimeClassListItems
  , v1alpha1RuntimeClassListKind :: Maybe Text
v1alpha1RuntimeClassListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1RuntimeClassListMetadata :: Maybe V1ListMeta
v1alpha1RuntimeClassListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1alpha1RuntimeClassSpec
-- | V1alpha1RuntimeClassSpec
-- RuntimeClassSpec is a specification of a RuntimeClass. It contains parameters that are required to describe the RuntimeClass to the Container Runtime Interface (CRI) implementation, as well as any other components that need to understand how the pod will be run. The RuntimeClassSpec is immutable.
data V1alpha1RuntimeClassSpec = V1alpha1RuntimeClassSpec
  { V1alpha1RuntimeClassSpec -> Maybe V1alpha1Overhead
v1alpha1RuntimeClassSpecOverhead :: !(Maybe V1alpha1Overhead) -- ^ "overhead"
  , V1alpha1RuntimeClassSpec -> Text
v1alpha1RuntimeClassSpecRuntimeHandler :: !(Text) -- ^ /Required/ "runtimeHandler" - RuntimeHandler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node &amp; CRI configuration.  It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \&quot;runc\&quot; might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The RuntimeHandler must conform to the DNS Label (RFC 1123) requirements and is immutable.
  , V1alpha1RuntimeClassSpec -> Maybe V1alpha1Scheduling
v1alpha1RuntimeClassSpecScheduling :: !(Maybe V1alpha1Scheduling) -- ^ "scheduling"
  } deriving (Int -> V1alpha1RuntimeClassSpec -> ShowS
[V1alpha1RuntimeClassSpec] -> ShowS
V1alpha1RuntimeClassSpec -> String
(Int -> V1alpha1RuntimeClassSpec -> ShowS)
-> (V1alpha1RuntimeClassSpec -> String)
-> ([V1alpha1RuntimeClassSpec] -> ShowS)
-> Show V1alpha1RuntimeClassSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1RuntimeClassSpec] -> ShowS
$cshowList :: [V1alpha1RuntimeClassSpec] -> ShowS
show :: V1alpha1RuntimeClassSpec -> String
$cshow :: V1alpha1RuntimeClassSpec -> String
showsPrec :: Int -> V1alpha1RuntimeClassSpec -> ShowS
$cshowsPrec :: Int -> V1alpha1RuntimeClassSpec -> ShowS
P.Show, V1alpha1RuntimeClassSpec -> V1alpha1RuntimeClassSpec -> Bool
(V1alpha1RuntimeClassSpec -> V1alpha1RuntimeClassSpec -> Bool)
-> (V1alpha1RuntimeClassSpec -> V1alpha1RuntimeClassSpec -> Bool)
-> Eq V1alpha1RuntimeClassSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1RuntimeClassSpec -> V1alpha1RuntimeClassSpec -> Bool
$c/= :: V1alpha1RuntimeClassSpec -> V1alpha1RuntimeClassSpec -> Bool
== :: V1alpha1RuntimeClassSpec -> V1alpha1RuntimeClassSpec -> Bool
$c== :: V1alpha1RuntimeClassSpec -> V1alpha1RuntimeClassSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1RuntimeClassSpec
instance A.FromJSON V1alpha1RuntimeClassSpec where
  parseJSON :: Value -> Parser V1alpha1RuntimeClassSpec
parseJSON = String
-> (Object -> Parser V1alpha1RuntimeClassSpec)
-> Value
-> Parser V1alpha1RuntimeClassSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1RuntimeClassSpec" ((Object -> Parser V1alpha1RuntimeClassSpec)
 -> Value -> Parser V1alpha1RuntimeClassSpec)
-> (Object -> Parser V1alpha1RuntimeClassSpec)
-> Value
-> Parser V1alpha1RuntimeClassSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1alpha1Overhead
-> Text -> Maybe V1alpha1Scheduling -> V1alpha1RuntimeClassSpec
V1alpha1RuntimeClassSpec
      (Maybe V1alpha1Overhead
 -> Text -> Maybe V1alpha1Scheduling -> V1alpha1RuntimeClassSpec)
-> Parser (Maybe V1alpha1Overhead)
-> Parser
     (Text -> Maybe V1alpha1Scheduling -> V1alpha1RuntimeClassSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1alpha1Overhead)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"overhead")
      Parser
  (Text -> Maybe V1alpha1Scheduling -> V1alpha1RuntimeClassSpec)
-> Parser Text
-> Parser (Maybe V1alpha1Scheduling -> V1alpha1RuntimeClassSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"runtimeHandler")
      Parser (Maybe V1alpha1Scheduling -> V1alpha1RuntimeClassSpec)
-> Parser (Maybe V1alpha1Scheduling)
-> Parser V1alpha1RuntimeClassSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1alpha1Scheduling)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"scheduling")

-- | ToJSON V1alpha1RuntimeClassSpec
instance A.ToJSON V1alpha1RuntimeClassSpec where
  toJSON :: V1alpha1RuntimeClassSpec -> Value
toJSON V1alpha1RuntimeClassSpec {Maybe V1alpha1Scheduling
Maybe V1alpha1Overhead
Text
v1alpha1RuntimeClassSpecScheduling :: Maybe V1alpha1Scheduling
v1alpha1RuntimeClassSpecRuntimeHandler :: Text
v1alpha1RuntimeClassSpecOverhead :: Maybe V1alpha1Overhead
v1alpha1RuntimeClassSpecScheduling :: V1alpha1RuntimeClassSpec -> Maybe V1alpha1Scheduling
v1alpha1RuntimeClassSpecRuntimeHandler :: V1alpha1RuntimeClassSpec -> Text
v1alpha1RuntimeClassSpecOverhead :: V1alpha1RuntimeClassSpec -> Maybe V1alpha1Overhead
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"overhead" Text -> Maybe V1alpha1Overhead -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1alpha1Overhead
v1alpha1RuntimeClassSpecOverhead
      , Text
"runtimeHandler" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1alpha1RuntimeClassSpecRuntimeHandler
      , Text
"scheduling" Text -> Maybe V1alpha1Scheduling -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1alpha1Scheduling
v1alpha1RuntimeClassSpecScheduling
      ]


-- | Construct a value of type 'V1alpha1RuntimeClassSpec' (by applying it's required fields, if any)
mkV1alpha1RuntimeClassSpec
  :: Text -- ^ 'v1alpha1RuntimeClassSpecRuntimeHandler': RuntimeHandler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration.  It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The RuntimeHandler must conform to the DNS Label (RFC 1123) requirements and is immutable.
  -> V1alpha1RuntimeClassSpec
mkV1alpha1RuntimeClassSpec :: Text -> V1alpha1RuntimeClassSpec
mkV1alpha1RuntimeClassSpec Text
v1alpha1RuntimeClassSpecRuntimeHandler =
  V1alpha1RuntimeClassSpec :: Maybe V1alpha1Overhead
-> Text -> Maybe V1alpha1Scheduling -> V1alpha1RuntimeClassSpec
V1alpha1RuntimeClassSpec
  { v1alpha1RuntimeClassSpecOverhead :: Maybe V1alpha1Overhead
v1alpha1RuntimeClassSpecOverhead = Maybe V1alpha1Overhead
forall a. Maybe a
Nothing
  , Text
v1alpha1RuntimeClassSpecRuntimeHandler :: Text
v1alpha1RuntimeClassSpecRuntimeHandler :: Text
v1alpha1RuntimeClassSpecRuntimeHandler
  , v1alpha1RuntimeClassSpecScheduling :: Maybe V1alpha1Scheduling
v1alpha1RuntimeClassSpecScheduling = Maybe V1alpha1Scheduling
forall a. Maybe a
Nothing
  }

-- ** V1alpha1Scheduling
-- | V1alpha1Scheduling
-- Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.
data V1alpha1Scheduling = V1alpha1Scheduling
  { V1alpha1Scheduling -> Maybe (Map String Text)
v1alpha1SchedulingNodeSelector :: !(Maybe (Map.Map String Text)) -- ^ "nodeSelector" - nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod&#39;s existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.
  , V1alpha1Scheduling -> Maybe [V1Toleration]
v1alpha1SchedulingTolerations :: !(Maybe [V1Toleration]) -- ^ "tolerations" - tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.
  } deriving (Int -> V1alpha1Scheduling -> ShowS
[V1alpha1Scheduling] -> ShowS
V1alpha1Scheduling -> String
(Int -> V1alpha1Scheduling -> ShowS)
-> (V1alpha1Scheduling -> String)
-> ([V1alpha1Scheduling] -> ShowS)
-> Show V1alpha1Scheduling
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1Scheduling] -> ShowS
$cshowList :: [V1alpha1Scheduling] -> ShowS
show :: V1alpha1Scheduling -> String
$cshow :: V1alpha1Scheduling -> String
showsPrec :: Int -> V1alpha1Scheduling -> ShowS
$cshowsPrec :: Int -> V1alpha1Scheduling -> ShowS
P.Show, V1alpha1Scheduling -> V1alpha1Scheduling -> Bool
(V1alpha1Scheduling -> V1alpha1Scheduling -> Bool)
-> (V1alpha1Scheduling -> V1alpha1Scheduling -> Bool)
-> Eq V1alpha1Scheduling
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1Scheduling -> V1alpha1Scheduling -> Bool
$c/= :: V1alpha1Scheduling -> V1alpha1Scheduling -> Bool
== :: V1alpha1Scheduling -> V1alpha1Scheduling -> Bool
$c== :: V1alpha1Scheduling -> V1alpha1Scheduling -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1Scheduling
instance A.FromJSON V1alpha1Scheduling where
  parseJSON :: Value -> Parser V1alpha1Scheduling
parseJSON = String
-> (Object -> Parser V1alpha1Scheduling)
-> Value
-> Parser V1alpha1Scheduling
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1Scheduling" ((Object -> Parser V1alpha1Scheduling)
 -> Value -> Parser V1alpha1Scheduling)
-> (Object -> Parser V1alpha1Scheduling)
-> Value
-> Parser V1alpha1Scheduling
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe (Map String Text)
-> Maybe [V1Toleration] -> V1alpha1Scheduling
V1alpha1Scheduling
      (Maybe (Map String Text)
 -> Maybe [V1Toleration] -> V1alpha1Scheduling)
-> Parser (Maybe (Map String Text))
-> Parser (Maybe [V1Toleration] -> V1alpha1Scheduling)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nodeSelector")
      Parser (Maybe [V1Toleration] -> V1alpha1Scheduling)
-> Parser (Maybe [V1Toleration]) -> Parser V1alpha1Scheduling
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1Toleration])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"tolerations")

-- | ToJSON V1alpha1Scheduling
instance A.ToJSON V1alpha1Scheduling where
  toJSON :: V1alpha1Scheduling -> Value
toJSON V1alpha1Scheduling {Maybe [V1Toleration]
Maybe (Map String Text)
v1alpha1SchedulingTolerations :: Maybe [V1Toleration]
v1alpha1SchedulingNodeSelector :: Maybe (Map String Text)
v1alpha1SchedulingTolerations :: V1alpha1Scheduling -> Maybe [V1Toleration]
v1alpha1SchedulingNodeSelector :: V1alpha1Scheduling -> Maybe (Map String Text)
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"nodeSelector" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1alpha1SchedulingNodeSelector
      , Text
"tolerations" Text -> Maybe [V1Toleration] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1Toleration]
v1alpha1SchedulingTolerations
      ]


-- | Construct a value of type 'V1alpha1Scheduling' (by applying it's required fields, if any)
mkV1alpha1Scheduling
  :: V1alpha1Scheduling
mkV1alpha1Scheduling :: V1alpha1Scheduling
mkV1alpha1Scheduling =
  V1alpha1Scheduling :: Maybe (Map String Text)
-> Maybe [V1Toleration] -> V1alpha1Scheduling
V1alpha1Scheduling
  { v1alpha1SchedulingNodeSelector :: Maybe (Map String Text)
v1alpha1SchedulingNodeSelector = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , v1alpha1SchedulingTolerations :: Maybe [V1Toleration]
v1alpha1SchedulingTolerations = Maybe [V1Toleration]
forall a. Maybe a
Nothing
  }

-- ** V1alpha1ServiceReference
-- | V1alpha1ServiceReference
-- ServiceReference holds a reference to Service.legacy.k8s.io
data V1alpha1ServiceReference = V1alpha1ServiceReference
  { V1alpha1ServiceReference -> Text
v1alpha1ServiceReferenceName :: !(Text) -- ^ /Required/ "name" - &#x60;name&#x60; is the name of the service. Required
  , V1alpha1ServiceReference -> Text
v1alpha1ServiceReferenceNamespace :: !(Text) -- ^ /Required/ "namespace" - &#x60;namespace&#x60; is the namespace of the service. Required
  , V1alpha1ServiceReference -> Maybe Text
v1alpha1ServiceReferencePath :: !(Maybe Text) -- ^ "path" - &#x60;path&#x60; is an optional URL path which will be sent in any request to this service.
  , V1alpha1ServiceReference -> Maybe Int
v1alpha1ServiceReferencePort :: !(Maybe Int) -- ^ "port" - If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. &#x60;port&#x60; should be a valid port number (1-65535, inclusive).
  } deriving (Int -> V1alpha1ServiceReference -> ShowS
[V1alpha1ServiceReference] -> ShowS
V1alpha1ServiceReference -> String
(Int -> V1alpha1ServiceReference -> ShowS)
-> (V1alpha1ServiceReference -> String)
-> ([V1alpha1ServiceReference] -> ShowS)
-> Show V1alpha1ServiceReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1ServiceReference] -> ShowS
$cshowList :: [V1alpha1ServiceReference] -> ShowS
show :: V1alpha1ServiceReference -> String
$cshow :: V1alpha1ServiceReference -> String
showsPrec :: Int -> V1alpha1ServiceReference -> ShowS
$cshowsPrec :: Int -> V1alpha1ServiceReference -> ShowS
P.Show, V1alpha1ServiceReference -> V1alpha1ServiceReference -> Bool
(V1alpha1ServiceReference -> V1alpha1ServiceReference -> Bool)
-> (V1alpha1ServiceReference -> V1alpha1ServiceReference -> Bool)
-> Eq V1alpha1ServiceReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1ServiceReference -> V1alpha1ServiceReference -> Bool
$c/= :: V1alpha1ServiceReference -> V1alpha1ServiceReference -> Bool
== :: V1alpha1ServiceReference -> V1alpha1ServiceReference -> Bool
$c== :: V1alpha1ServiceReference -> V1alpha1ServiceReference -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1ServiceReference
instance A.FromJSON V1alpha1ServiceReference where
  parseJSON :: Value -> Parser V1alpha1ServiceReference
parseJSON = String
-> (Object -> Parser V1alpha1ServiceReference)
-> Value
-> Parser V1alpha1ServiceReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1ServiceReference" ((Object -> Parser V1alpha1ServiceReference)
 -> Value -> Parser V1alpha1ServiceReference)
-> (Object -> Parser V1alpha1ServiceReference)
-> Value
-> Parser V1alpha1ServiceReference
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> Maybe Text -> Maybe Int -> V1alpha1ServiceReference
V1alpha1ServiceReference
      (Text
 -> Text -> Maybe Text -> Maybe Int -> V1alpha1ServiceReference)
-> Parser Text
-> Parser
     (Text -> Maybe Text -> Maybe Int -> V1alpha1ServiceReference)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Text -> Maybe Text -> Maybe Int -> V1alpha1ServiceReference)
-> Parser Text
-> Parser (Maybe Text -> Maybe Int -> V1alpha1ServiceReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"namespace")
      Parser (Maybe Text -> Maybe Int -> V1alpha1ServiceReference)
-> Parser (Maybe Text)
-> Parser (Maybe Int -> V1alpha1ServiceReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"path")
      Parser (Maybe Int -> V1alpha1ServiceReference)
-> Parser (Maybe Int) -> Parser V1alpha1ServiceReference
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"port")

-- | ToJSON V1alpha1ServiceReference
instance A.ToJSON V1alpha1ServiceReference where
  toJSON :: V1alpha1ServiceReference -> Value
toJSON V1alpha1ServiceReference {Maybe Int
Maybe Text
Text
v1alpha1ServiceReferencePort :: Maybe Int
v1alpha1ServiceReferencePath :: Maybe Text
v1alpha1ServiceReferenceNamespace :: Text
v1alpha1ServiceReferenceName :: Text
v1alpha1ServiceReferencePort :: V1alpha1ServiceReference -> Maybe Int
v1alpha1ServiceReferencePath :: V1alpha1ServiceReference -> Maybe Text
v1alpha1ServiceReferenceNamespace :: V1alpha1ServiceReference -> Text
v1alpha1ServiceReferenceName :: V1alpha1ServiceReference -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1alpha1ServiceReferenceName
      , Text
"namespace" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1alpha1ServiceReferenceNamespace
      , Text
"path" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1ServiceReferencePath
      , Text
"port" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1alpha1ServiceReferencePort
      ]


-- | Construct a value of type 'V1alpha1ServiceReference' (by applying it's required fields, if any)
mkV1alpha1ServiceReference
  :: Text -- ^ 'v1alpha1ServiceReferenceName': `name` is the name of the service. Required
  -> Text -- ^ 'v1alpha1ServiceReferenceNamespace': `namespace` is the namespace of the service. Required
  -> V1alpha1ServiceReference
mkV1alpha1ServiceReference :: Text -> Text -> V1alpha1ServiceReference
mkV1alpha1ServiceReference Text
v1alpha1ServiceReferenceName Text
v1alpha1ServiceReferenceNamespace =
  V1alpha1ServiceReference :: Text -> Text -> Maybe Text -> Maybe Int -> V1alpha1ServiceReference
V1alpha1ServiceReference
  { Text
v1alpha1ServiceReferenceName :: Text
v1alpha1ServiceReferenceName :: Text
v1alpha1ServiceReferenceName
  , Text
v1alpha1ServiceReferenceNamespace :: Text
v1alpha1ServiceReferenceNamespace :: Text
v1alpha1ServiceReferenceNamespace
  , v1alpha1ServiceReferencePath :: Maybe Text
v1alpha1ServiceReferencePath = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1ServiceReferencePort :: Maybe Int
v1alpha1ServiceReferencePort = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1alpha1Subject
-- | V1alpha1Subject
-- Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference, or a value for non-objects such as user and group names.
data V1alpha1Subject = V1alpha1Subject
  { V1alpha1Subject -> Maybe Text
v1alpha1SubjectApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion holds the API group and version of the referenced subject. Defaults to \&quot;v1\&quot; for ServiceAccount subjects. Defaults to \&quot;rbac.authorization.k8s.io/v1alpha1\&quot; for User and Group subjects.
  , V1alpha1Subject -> Text
v1alpha1SubjectKind :: !(Text) -- ^ /Required/ "kind" - Kind of object being referenced. Values defined by this API group are \&quot;User\&quot;, \&quot;Group\&quot;, and \&quot;ServiceAccount\&quot;. If the Authorizer does not recognized the kind value, the Authorizer should report an error.
  , V1alpha1Subject -> Text
v1alpha1SubjectName :: !(Text) -- ^ /Required/ "name" - Name of the object being referenced.
  , V1alpha1Subject -> Maybe Text
v1alpha1SubjectNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace of the referenced object.  If the object kind is non-namespace, such as \&quot;User\&quot; or \&quot;Group\&quot;, and this value is not empty the Authorizer should report an error.
  } deriving (Int -> V1alpha1Subject -> ShowS
[V1alpha1Subject] -> ShowS
V1alpha1Subject -> String
(Int -> V1alpha1Subject -> ShowS)
-> (V1alpha1Subject -> String)
-> ([V1alpha1Subject] -> ShowS)
-> Show V1alpha1Subject
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1Subject] -> ShowS
$cshowList :: [V1alpha1Subject] -> ShowS
show :: V1alpha1Subject -> String
$cshow :: V1alpha1Subject -> String
showsPrec :: Int -> V1alpha1Subject -> ShowS
$cshowsPrec :: Int -> V1alpha1Subject -> ShowS
P.Show, V1alpha1Subject -> V1alpha1Subject -> Bool
(V1alpha1Subject -> V1alpha1Subject -> Bool)
-> (V1alpha1Subject -> V1alpha1Subject -> Bool)
-> Eq V1alpha1Subject
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1Subject -> V1alpha1Subject -> Bool
$c/= :: V1alpha1Subject -> V1alpha1Subject -> Bool
== :: V1alpha1Subject -> V1alpha1Subject -> Bool
$c== :: V1alpha1Subject -> V1alpha1Subject -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1Subject
instance A.FromJSON V1alpha1Subject where
  parseJSON :: Value -> Parser V1alpha1Subject
parseJSON = String
-> (Object -> Parser V1alpha1Subject)
-> Value
-> Parser V1alpha1Subject
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1Subject" ((Object -> Parser V1alpha1Subject)
 -> Value -> Parser V1alpha1Subject)
-> (Object -> Parser V1alpha1Subject)
-> Value
-> Parser V1alpha1Subject
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Text -> Text -> Maybe Text -> V1alpha1Subject
V1alpha1Subject
      (Maybe Text -> Text -> Text -> Maybe Text -> V1alpha1Subject)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> Maybe Text -> V1alpha1Subject)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser (Text -> Text -> Maybe Text -> V1alpha1Subject)
-> Parser Text -> Parser (Text -> Maybe Text -> V1alpha1Subject)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kind")
      Parser (Text -> Maybe Text -> V1alpha1Subject)
-> Parser Text -> Parser (Maybe Text -> V1alpha1Subject)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser (Maybe Text -> V1alpha1Subject)
-> Parser (Maybe Text) -> Parser V1alpha1Subject
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespace")

-- | ToJSON V1alpha1Subject
instance A.ToJSON V1alpha1Subject where
  toJSON :: V1alpha1Subject -> Value
toJSON V1alpha1Subject {Maybe Text
Text
v1alpha1SubjectNamespace :: Maybe Text
v1alpha1SubjectName :: Text
v1alpha1SubjectKind :: Text
v1alpha1SubjectApiVersion :: Maybe Text
v1alpha1SubjectNamespace :: V1alpha1Subject -> Maybe Text
v1alpha1SubjectName :: V1alpha1Subject -> Text
v1alpha1SubjectKind :: V1alpha1Subject -> Text
v1alpha1SubjectApiVersion :: V1alpha1Subject -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1SubjectApiVersion
      , Text
"kind" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1alpha1SubjectKind
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1alpha1SubjectName
      , Text
"namespace" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1SubjectNamespace
      ]


-- | Construct a value of type 'V1alpha1Subject' (by applying it's required fields, if any)
mkV1alpha1Subject
  :: Text -- ^ 'v1alpha1SubjectKind': Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.
  -> Text -- ^ 'v1alpha1SubjectName': Name of the object being referenced.
  -> V1alpha1Subject
mkV1alpha1Subject :: Text -> Text -> V1alpha1Subject
mkV1alpha1Subject Text
v1alpha1SubjectKind Text
v1alpha1SubjectName =
  V1alpha1Subject :: Maybe Text -> Text -> Text -> Maybe Text -> V1alpha1Subject
V1alpha1Subject
  { v1alpha1SubjectApiVersion :: Maybe Text
v1alpha1SubjectApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1alpha1SubjectKind :: Text
v1alpha1SubjectKind :: Text
v1alpha1SubjectKind
  , Text
v1alpha1SubjectName :: Text
v1alpha1SubjectName :: Text
v1alpha1SubjectName
  , v1alpha1SubjectNamespace :: Maybe Text
v1alpha1SubjectNamespace = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1alpha1VolumeAttachment
-- | V1alpha1VolumeAttachment
-- VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.  VolumeAttachment objects are non-namespaced.
data V1alpha1VolumeAttachment = V1alpha1VolumeAttachment
  { V1alpha1VolumeAttachment -> Maybe Text
v1alpha1VolumeAttachmentApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1VolumeAttachment -> Maybe Text
v1alpha1VolumeAttachmentKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1VolumeAttachment -> Maybe V1ObjectMeta
v1alpha1VolumeAttachmentMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1alpha1VolumeAttachment -> V1alpha1VolumeAttachmentSpec
v1alpha1VolumeAttachmentSpec :: !(V1alpha1VolumeAttachmentSpec) -- ^ /Required/ "spec"
  , V1alpha1VolumeAttachment -> Maybe V1alpha1VolumeAttachmentStatus
v1alpha1VolumeAttachmentStatus :: !(Maybe V1alpha1VolumeAttachmentStatus) -- ^ "status"
  } deriving (Int -> V1alpha1VolumeAttachment -> ShowS
[V1alpha1VolumeAttachment] -> ShowS
V1alpha1VolumeAttachment -> String
(Int -> V1alpha1VolumeAttachment -> ShowS)
-> (V1alpha1VolumeAttachment -> String)
-> ([V1alpha1VolumeAttachment] -> ShowS)
-> Show V1alpha1VolumeAttachment
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1VolumeAttachment] -> ShowS
$cshowList :: [V1alpha1VolumeAttachment] -> ShowS
show :: V1alpha1VolumeAttachment -> String
$cshow :: V1alpha1VolumeAttachment -> String
showsPrec :: Int -> V1alpha1VolumeAttachment -> ShowS
$cshowsPrec :: Int -> V1alpha1VolumeAttachment -> ShowS
P.Show, V1alpha1VolumeAttachment -> V1alpha1VolumeAttachment -> Bool
(V1alpha1VolumeAttachment -> V1alpha1VolumeAttachment -> Bool)
-> (V1alpha1VolumeAttachment -> V1alpha1VolumeAttachment -> Bool)
-> Eq V1alpha1VolumeAttachment
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1VolumeAttachment -> V1alpha1VolumeAttachment -> Bool
$c/= :: V1alpha1VolumeAttachment -> V1alpha1VolumeAttachment -> Bool
== :: V1alpha1VolumeAttachment -> V1alpha1VolumeAttachment -> Bool
$c== :: V1alpha1VolumeAttachment -> V1alpha1VolumeAttachment -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1VolumeAttachment
instance A.FromJSON V1alpha1VolumeAttachment where
  parseJSON :: Value -> Parser V1alpha1VolumeAttachment
parseJSON = String
-> (Object -> Parser V1alpha1VolumeAttachment)
-> Value
-> Parser V1alpha1VolumeAttachment
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1VolumeAttachment" ((Object -> Parser V1alpha1VolumeAttachment)
 -> Value -> Parser V1alpha1VolumeAttachment)
-> (Object -> Parser V1alpha1VolumeAttachment)
-> Value
-> Parser V1alpha1VolumeAttachment
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1alpha1VolumeAttachmentSpec
-> Maybe V1alpha1VolumeAttachmentStatus
-> V1alpha1VolumeAttachment
V1alpha1VolumeAttachment
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1alpha1VolumeAttachmentSpec
 -> Maybe V1alpha1VolumeAttachmentStatus
 -> V1alpha1VolumeAttachment)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1alpha1VolumeAttachmentSpec
      -> Maybe V1alpha1VolumeAttachmentStatus
      -> V1alpha1VolumeAttachment)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1alpha1VolumeAttachmentSpec
   -> Maybe V1alpha1VolumeAttachmentStatus
   -> V1alpha1VolumeAttachment)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1alpha1VolumeAttachmentSpec
      -> Maybe V1alpha1VolumeAttachmentStatus
      -> V1alpha1VolumeAttachment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1alpha1VolumeAttachmentSpec
   -> Maybe V1alpha1VolumeAttachmentStatus
   -> V1alpha1VolumeAttachment)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1alpha1VolumeAttachmentSpec
      -> Maybe V1alpha1VolumeAttachmentStatus
      -> V1alpha1VolumeAttachment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1alpha1VolumeAttachmentSpec
   -> Maybe V1alpha1VolumeAttachmentStatus
   -> V1alpha1VolumeAttachment)
-> Parser V1alpha1VolumeAttachmentSpec
-> Parser
     (Maybe V1alpha1VolumeAttachmentStatus -> V1alpha1VolumeAttachment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1alpha1VolumeAttachmentSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")
      Parser
  (Maybe V1alpha1VolumeAttachmentStatus -> V1alpha1VolumeAttachment)
-> Parser (Maybe V1alpha1VolumeAttachmentStatus)
-> Parser V1alpha1VolumeAttachment
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1alpha1VolumeAttachmentStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1alpha1VolumeAttachment
instance A.ToJSON V1alpha1VolumeAttachment where
  toJSON :: V1alpha1VolumeAttachment -> Value
toJSON V1alpha1VolumeAttachment {Maybe Text
Maybe V1alpha1VolumeAttachmentStatus
Maybe V1ObjectMeta
V1alpha1VolumeAttachmentSpec
v1alpha1VolumeAttachmentStatus :: Maybe V1alpha1VolumeAttachmentStatus
v1alpha1VolumeAttachmentSpec :: V1alpha1VolumeAttachmentSpec
v1alpha1VolumeAttachmentMetadata :: Maybe V1ObjectMeta
v1alpha1VolumeAttachmentKind :: Maybe Text
v1alpha1VolumeAttachmentApiVersion :: Maybe Text
v1alpha1VolumeAttachmentStatus :: V1alpha1VolumeAttachment -> Maybe V1alpha1VolumeAttachmentStatus
v1alpha1VolumeAttachmentSpec :: V1alpha1VolumeAttachment -> V1alpha1VolumeAttachmentSpec
v1alpha1VolumeAttachmentMetadata :: V1alpha1VolumeAttachment -> Maybe V1ObjectMeta
v1alpha1VolumeAttachmentKind :: V1alpha1VolumeAttachment -> Maybe Text
v1alpha1VolumeAttachmentApiVersion :: V1alpha1VolumeAttachment -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1VolumeAttachmentApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1VolumeAttachmentKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1alpha1VolumeAttachmentMetadata
      , Text
"spec" Text -> V1alpha1VolumeAttachmentSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1alpha1VolumeAttachmentSpec
v1alpha1VolumeAttachmentSpec
      , Text
"status" Text -> Maybe V1alpha1VolumeAttachmentStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1alpha1VolumeAttachmentStatus
v1alpha1VolumeAttachmentStatus
      ]


-- | Construct a value of type 'V1alpha1VolumeAttachment' (by applying it's required fields, if any)
mkV1alpha1VolumeAttachment
  :: V1alpha1VolumeAttachmentSpec -- ^ 'v1alpha1VolumeAttachmentSpec' 
  -> V1alpha1VolumeAttachment
mkV1alpha1VolumeAttachment :: V1alpha1VolumeAttachmentSpec -> V1alpha1VolumeAttachment
mkV1alpha1VolumeAttachment V1alpha1VolumeAttachmentSpec
v1alpha1VolumeAttachmentSpec =
  V1alpha1VolumeAttachment :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1alpha1VolumeAttachmentSpec
-> Maybe V1alpha1VolumeAttachmentStatus
-> V1alpha1VolumeAttachment
V1alpha1VolumeAttachment
  { v1alpha1VolumeAttachmentApiVersion :: Maybe Text
v1alpha1VolumeAttachmentApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1VolumeAttachmentKind :: Maybe Text
v1alpha1VolumeAttachmentKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1VolumeAttachmentMetadata :: Maybe V1ObjectMeta
v1alpha1VolumeAttachmentMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1alpha1VolumeAttachmentSpec
v1alpha1VolumeAttachmentSpec :: V1alpha1VolumeAttachmentSpec
v1alpha1VolumeAttachmentSpec :: V1alpha1VolumeAttachmentSpec
v1alpha1VolumeAttachmentSpec
  , v1alpha1VolumeAttachmentStatus :: Maybe V1alpha1VolumeAttachmentStatus
v1alpha1VolumeAttachmentStatus = Maybe V1alpha1VolumeAttachmentStatus
forall a. Maybe a
Nothing
  }

-- ** V1alpha1VolumeAttachmentList
-- | V1alpha1VolumeAttachmentList
-- VolumeAttachmentList is a collection of VolumeAttachment objects.
data V1alpha1VolumeAttachmentList = V1alpha1VolumeAttachmentList
  { V1alpha1VolumeAttachmentList -> Maybe Text
v1alpha1VolumeAttachmentListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1alpha1VolumeAttachmentList -> [V1alpha1VolumeAttachment]
v1alpha1VolumeAttachmentListItems :: !([V1alpha1VolumeAttachment]) -- ^ /Required/ "items" - Items is the list of VolumeAttachments
  , V1alpha1VolumeAttachmentList -> Maybe Text
v1alpha1VolumeAttachmentListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1alpha1VolumeAttachmentList -> Maybe V1ListMeta
v1alpha1VolumeAttachmentListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1alpha1VolumeAttachmentList -> ShowS
[V1alpha1VolumeAttachmentList] -> ShowS
V1alpha1VolumeAttachmentList -> String
(Int -> V1alpha1VolumeAttachmentList -> ShowS)
-> (V1alpha1VolumeAttachmentList -> String)
-> ([V1alpha1VolumeAttachmentList] -> ShowS)
-> Show V1alpha1VolumeAttachmentList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1VolumeAttachmentList] -> ShowS
$cshowList :: [V1alpha1VolumeAttachmentList] -> ShowS
show :: V1alpha1VolumeAttachmentList -> String
$cshow :: V1alpha1VolumeAttachmentList -> String
showsPrec :: Int -> V1alpha1VolumeAttachmentList -> ShowS
$cshowsPrec :: Int -> V1alpha1VolumeAttachmentList -> ShowS
P.Show, V1alpha1VolumeAttachmentList
-> V1alpha1VolumeAttachmentList -> Bool
(V1alpha1VolumeAttachmentList
 -> V1alpha1VolumeAttachmentList -> Bool)
-> (V1alpha1VolumeAttachmentList
    -> V1alpha1VolumeAttachmentList -> Bool)
-> Eq V1alpha1VolumeAttachmentList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1VolumeAttachmentList
-> V1alpha1VolumeAttachmentList -> Bool
$c/= :: V1alpha1VolumeAttachmentList
-> V1alpha1VolumeAttachmentList -> Bool
== :: V1alpha1VolumeAttachmentList
-> V1alpha1VolumeAttachmentList -> Bool
$c== :: V1alpha1VolumeAttachmentList
-> V1alpha1VolumeAttachmentList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1VolumeAttachmentList
instance A.FromJSON V1alpha1VolumeAttachmentList where
  parseJSON :: Value -> Parser V1alpha1VolumeAttachmentList
parseJSON = String
-> (Object -> Parser V1alpha1VolumeAttachmentList)
-> Value
-> Parser V1alpha1VolumeAttachmentList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1VolumeAttachmentList" ((Object -> Parser V1alpha1VolumeAttachmentList)
 -> Value -> Parser V1alpha1VolumeAttachmentList)
-> (Object -> Parser V1alpha1VolumeAttachmentList)
-> Value
-> Parser V1alpha1VolumeAttachmentList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1alpha1VolumeAttachment]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1VolumeAttachmentList
V1alpha1VolumeAttachmentList
      (Maybe Text
 -> [V1alpha1VolumeAttachment]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1alpha1VolumeAttachmentList)
-> Parser (Maybe Text)
-> Parser
     ([V1alpha1VolumeAttachment]
      -> Maybe Text -> Maybe V1ListMeta -> V1alpha1VolumeAttachmentList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1alpha1VolumeAttachment]
   -> Maybe Text -> Maybe V1ListMeta -> V1alpha1VolumeAttachmentList)
-> Parser [V1alpha1VolumeAttachment]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1alpha1VolumeAttachmentList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1alpha1VolumeAttachment]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> V1alpha1VolumeAttachmentList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1alpha1VolumeAttachmentList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1alpha1VolumeAttachmentList)
-> Parser (Maybe V1ListMeta) -> Parser V1alpha1VolumeAttachmentList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1alpha1VolumeAttachmentList
instance A.ToJSON V1alpha1VolumeAttachmentList where
  toJSON :: V1alpha1VolumeAttachmentList -> Value
toJSON V1alpha1VolumeAttachmentList {[V1alpha1VolumeAttachment]
Maybe Text
Maybe V1ListMeta
v1alpha1VolumeAttachmentListMetadata :: Maybe V1ListMeta
v1alpha1VolumeAttachmentListKind :: Maybe Text
v1alpha1VolumeAttachmentListItems :: [V1alpha1VolumeAttachment]
v1alpha1VolumeAttachmentListApiVersion :: Maybe Text
v1alpha1VolumeAttachmentListMetadata :: V1alpha1VolumeAttachmentList -> Maybe V1ListMeta
v1alpha1VolumeAttachmentListKind :: V1alpha1VolumeAttachmentList -> Maybe Text
v1alpha1VolumeAttachmentListItems :: V1alpha1VolumeAttachmentList -> [V1alpha1VolumeAttachment]
v1alpha1VolumeAttachmentListApiVersion :: V1alpha1VolumeAttachmentList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1VolumeAttachmentListApiVersion
      , Text
"items" Text -> [V1alpha1VolumeAttachment] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1alpha1VolumeAttachment]
v1alpha1VolumeAttachmentListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1VolumeAttachmentListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1alpha1VolumeAttachmentListMetadata
      ]


-- | Construct a value of type 'V1alpha1VolumeAttachmentList' (by applying it's required fields, if any)
mkV1alpha1VolumeAttachmentList
  :: [V1alpha1VolumeAttachment] -- ^ 'v1alpha1VolumeAttachmentListItems': Items is the list of VolumeAttachments
  -> V1alpha1VolumeAttachmentList
mkV1alpha1VolumeAttachmentList :: [V1alpha1VolumeAttachment] -> V1alpha1VolumeAttachmentList
mkV1alpha1VolumeAttachmentList [V1alpha1VolumeAttachment]
v1alpha1VolumeAttachmentListItems =
  V1alpha1VolumeAttachmentList :: Maybe Text
-> [V1alpha1VolumeAttachment]
-> Maybe Text
-> Maybe V1ListMeta
-> V1alpha1VolumeAttachmentList
V1alpha1VolumeAttachmentList
  { v1alpha1VolumeAttachmentListApiVersion :: Maybe Text
v1alpha1VolumeAttachmentListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1alpha1VolumeAttachment]
v1alpha1VolumeAttachmentListItems :: [V1alpha1VolumeAttachment]
v1alpha1VolumeAttachmentListItems :: [V1alpha1VolumeAttachment]
v1alpha1VolumeAttachmentListItems
  , v1alpha1VolumeAttachmentListKind :: Maybe Text
v1alpha1VolumeAttachmentListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1VolumeAttachmentListMetadata :: Maybe V1ListMeta
v1alpha1VolumeAttachmentListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1alpha1VolumeAttachmentSource
-- | V1alpha1VolumeAttachmentSource
-- VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.
data V1alpha1VolumeAttachmentSource = V1alpha1VolumeAttachmentSource
  { V1alpha1VolumeAttachmentSource -> Maybe V1PersistentVolumeSpec
v1alpha1VolumeAttachmentSourceInlineVolumeSpec :: !(Maybe V1PersistentVolumeSpec) -- ^ "inlineVolumeSpec"
  , V1alpha1VolumeAttachmentSource -> Maybe Text
v1alpha1VolumeAttachmentSourcePersistentVolumeName :: !(Maybe Text) -- ^ "persistentVolumeName" - Name of the persistent volume to attach.
  } deriving (Int -> V1alpha1VolumeAttachmentSource -> ShowS
[V1alpha1VolumeAttachmentSource] -> ShowS
V1alpha1VolumeAttachmentSource -> String
(Int -> V1alpha1VolumeAttachmentSource -> ShowS)
-> (V1alpha1VolumeAttachmentSource -> String)
-> ([V1alpha1VolumeAttachmentSource] -> ShowS)
-> Show V1alpha1VolumeAttachmentSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1VolumeAttachmentSource] -> ShowS
$cshowList :: [V1alpha1VolumeAttachmentSource] -> ShowS
show :: V1alpha1VolumeAttachmentSource -> String
$cshow :: V1alpha1VolumeAttachmentSource -> String
showsPrec :: Int -> V1alpha1VolumeAttachmentSource -> ShowS
$cshowsPrec :: Int -> V1alpha1VolumeAttachmentSource -> ShowS
P.Show, V1alpha1VolumeAttachmentSource
-> V1alpha1VolumeAttachmentSource -> Bool
(V1alpha1VolumeAttachmentSource
 -> V1alpha1VolumeAttachmentSource -> Bool)
-> (V1alpha1VolumeAttachmentSource
    -> V1alpha1VolumeAttachmentSource -> Bool)
-> Eq V1alpha1VolumeAttachmentSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1VolumeAttachmentSource
-> V1alpha1VolumeAttachmentSource -> Bool
$c/= :: V1alpha1VolumeAttachmentSource
-> V1alpha1VolumeAttachmentSource -> Bool
== :: V1alpha1VolumeAttachmentSource
-> V1alpha1VolumeAttachmentSource -> Bool
$c== :: V1alpha1VolumeAttachmentSource
-> V1alpha1VolumeAttachmentSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1VolumeAttachmentSource
instance A.FromJSON V1alpha1VolumeAttachmentSource where
  parseJSON :: Value -> Parser V1alpha1VolumeAttachmentSource
parseJSON = String
-> (Object -> Parser V1alpha1VolumeAttachmentSource)
-> Value
-> Parser V1alpha1VolumeAttachmentSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1VolumeAttachmentSource" ((Object -> Parser V1alpha1VolumeAttachmentSource)
 -> Value -> Parser V1alpha1VolumeAttachmentSource)
-> (Object -> Parser V1alpha1VolumeAttachmentSource)
-> Value
-> Parser V1alpha1VolumeAttachmentSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1PersistentVolumeSpec
-> Maybe Text -> V1alpha1VolumeAttachmentSource
V1alpha1VolumeAttachmentSource
      (Maybe V1PersistentVolumeSpec
 -> Maybe Text -> V1alpha1VolumeAttachmentSource)
-> Parser (Maybe V1PersistentVolumeSpec)
-> Parser (Maybe Text -> V1alpha1VolumeAttachmentSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1PersistentVolumeSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"inlineVolumeSpec")
      Parser (Maybe Text -> V1alpha1VolumeAttachmentSource)
-> Parser (Maybe Text) -> Parser V1alpha1VolumeAttachmentSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"persistentVolumeName")

-- | ToJSON V1alpha1VolumeAttachmentSource
instance A.ToJSON V1alpha1VolumeAttachmentSource where
  toJSON :: V1alpha1VolumeAttachmentSource -> Value
toJSON V1alpha1VolumeAttachmentSource {Maybe Text
Maybe V1PersistentVolumeSpec
v1alpha1VolumeAttachmentSourcePersistentVolumeName :: Maybe Text
v1alpha1VolumeAttachmentSourceInlineVolumeSpec :: Maybe V1PersistentVolumeSpec
v1alpha1VolumeAttachmentSourcePersistentVolumeName :: V1alpha1VolumeAttachmentSource -> Maybe Text
v1alpha1VolumeAttachmentSourceInlineVolumeSpec :: V1alpha1VolumeAttachmentSource -> Maybe V1PersistentVolumeSpec
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"inlineVolumeSpec" Text -> Maybe V1PersistentVolumeSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PersistentVolumeSpec
v1alpha1VolumeAttachmentSourceInlineVolumeSpec
      , Text
"persistentVolumeName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1VolumeAttachmentSourcePersistentVolumeName
      ]


-- | Construct a value of type 'V1alpha1VolumeAttachmentSource' (by applying it's required fields, if any)
mkV1alpha1VolumeAttachmentSource
  :: V1alpha1VolumeAttachmentSource
mkV1alpha1VolumeAttachmentSource :: V1alpha1VolumeAttachmentSource
mkV1alpha1VolumeAttachmentSource =
  V1alpha1VolumeAttachmentSource :: Maybe V1PersistentVolumeSpec
-> Maybe Text -> V1alpha1VolumeAttachmentSource
V1alpha1VolumeAttachmentSource
  { v1alpha1VolumeAttachmentSourceInlineVolumeSpec :: Maybe V1PersistentVolumeSpec
v1alpha1VolumeAttachmentSourceInlineVolumeSpec = Maybe V1PersistentVolumeSpec
forall a. Maybe a
Nothing
  , v1alpha1VolumeAttachmentSourcePersistentVolumeName :: Maybe Text
v1alpha1VolumeAttachmentSourcePersistentVolumeName = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1alpha1VolumeAttachmentSpec
-- | V1alpha1VolumeAttachmentSpec
-- VolumeAttachmentSpec is the specification of a VolumeAttachment request.
data V1alpha1VolumeAttachmentSpec = V1alpha1VolumeAttachmentSpec
  { V1alpha1VolumeAttachmentSpec -> Text
v1alpha1VolumeAttachmentSpecAttacher :: !(Text) -- ^ /Required/ "attacher" - Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().
  , V1alpha1VolumeAttachmentSpec -> Text
v1alpha1VolumeAttachmentSpecNodeName :: !(Text) -- ^ /Required/ "nodeName" - The node that the volume should be attached to.
  , V1alpha1VolumeAttachmentSpec -> V1alpha1VolumeAttachmentSource
v1alpha1VolumeAttachmentSpecSource :: !(V1alpha1VolumeAttachmentSource) -- ^ /Required/ "source"
  } deriving (Int -> V1alpha1VolumeAttachmentSpec -> ShowS
[V1alpha1VolumeAttachmentSpec] -> ShowS
V1alpha1VolumeAttachmentSpec -> String
(Int -> V1alpha1VolumeAttachmentSpec -> ShowS)
-> (V1alpha1VolumeAttachmentSpec -> String)
-> ([V1alpha1VolumeAttachmentSpec] -> ShowS)
-> Show V1alpha1VolumeAttachmentSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1VolumeAttachmentSpec] -> ShowS
$cshowList :: [V1alpha1VolumeAttachmentSpec] -> ShowS
show :: V1alpha1VolumeAttachmentSpec -> String
$cshow :: V1alpha1VolumeAttachmentSpec -> String
showsPrec :: Int -> V1alpha1VolumeAttachmentSpec -> ShowS
$cshowsPrec :: Int -> V1alpha1VolumeAttachmentSpec -> ShowS
P.Show, V1alpha1VolumeAttachmentSpec
-> V1alpha1VolumeAttachmentSpec -> Bool
(V1alpha1VolumeAttachmentSpec
 -> V1alpha1VolumeAttachmentSpec -> Bool)
-> (V1alpha1VolumeAttachmentSpec
    -> V1alpha1VolumeAttachmentSpec -> Bool)
-> Eq V1alpha1VolumeAttachmentSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1VolumeAttachmentSpec
-> V1alpha1VolumeAttachmentSpec -> Bool
$c/= :: V1alpha1VolumeAttachmentSpec
-> V1alpha1VolumeAttachmentSpec -> Bool
== :: V1alpha1VolumeAttachmentSpec
-> V1alpha1VolumeAttachmentSpec -> Bool
$c== :: V1alpha1VolumeAttachmentSpec
-> V1alpha1VolumeAttachmentSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1VolumeAttachmentSpec
instance A.FromJSON V1alpha1VolumeAttachmentSpec where
  parseJSON :: Value -> Parser V1alpha1VolumeAttachmentSpec
parseJSON = String
-> (Object -> Parser V1alpha1VolumeAttachmentSpec)
-> Value
-> Parser V1alpha1VolumeAttachmentSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1VolumeAttachmentSpec" ((Object -> Parser V1alpha1VolumeAttachmentSpec)
 -> Value -> Parser V1alpha1VolumeAttachmentSpec)
-> (Object -> Parser V1alpha1VolumeAttachmentSpec)
-> Value
-> Parser V1alpha1VolumeAttachmentSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Text
-> V1alpha1VolumeAttachmentSource
-> V1alpha1VolumeAttachmentSpec
V1alpha1VolumeAttachmentSpec
      (Text
 -> Text
 -> V1alpha1VolumeAttachmentSource
 -> V1alpha1VolumeAttachmentSpec)
-> Parser Text
-> Parser
     (Text
      -> V1alpha1VolumeAttachmentSource -> V1alpha1VolumeAttachmentSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"attacher")
      Parser
  (Text
   -> V1alpha1VolumeAttachmentSource -> V1alpha1VolumeAttachmentSpec)
-> Parser Text
-> Parser
     (V1alpha1VolumeAttachmentSource -> V1alpha1VolumeAttachmentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"nodeName")
      Parser
  (V1alpha1VolumeAttachmentSource -> V1alpha1VolumeAttachmentSpec)
-> Parser V1alpha1VolumeAttachmentSource
-> Parser V1alpha1VolumeAttachmentSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1alpha1VolumeAttachmentSource
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"source")

-- | ToJSON V1alpha1VolumeAttachmentSpec
instance A.ToJSON V1alpha1VolumeAttachmentSpec where
  toJSON :: V1alpha1VolumeAttachmentSpec -> Value
toJSON V1alpha1VolumeAttachmentSpec {Text
V1alpha1VolumeAttachmentSource
v1alpha1VolumeAttachmentSpecSource :: V1alpha1VolumeAttachmentSource
v1alpha1VolumeAttachmentSpecNodeName :: Text
v1alpha1VolumeAttachmentSpecAttacher :: Text
v1alpha1VolumeAttachmentSpecSource :: V1alpha1VolumeAttachmentSpec -> V1alpha1VolumeAttachmentSource
v1alpha1VolumeAttachmentSpecNodeName :: V1alpha1VolumeAttachmentSpec -> Text
v1alpha1VolumeAttachmentSpecAttacher :: V1alpha1VolumeAttachmentSpec -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"attacher" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1alpha1VolumeAttachmentSpecAttacher
      , Text
"nodeName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1alpha1VolumeAttachmentSpecNodeName
      , Text
"source" Text -> V1alpha1VolumeAttachmentSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1alpha1VolumeAttachmentSource
v1alpha1VolumeAttachmentSpecSource
      ]


-- | Construct a value of type 'V1alpha1VolumeAttachmentSpec' (by applying it's required fields, if any)
mkV1alpha1VolumeAttachmentSpec
  :: Text -- ^ 'v1alpha1VolumeAttachmentSpecAttacher': Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().
  -> Text -- ^ 'v1alpha1VolumeAttachmentSpecNodeName': The node that the volume should be attached to.
  -> V1alpha1VolumeAttachmentSource -- ^ 'v1alpha1VolumeAttachmentSpecSource' 
  -> V1alpha1VolumeAttachmentSpec
mkV1alpha1VolumeAttachmentSpec :: Text
-> Text
-> V1alpha1VolumeAttachmentSource
-> V1alpha1VolumeAttachmentSpec
mkV1alpha1VolumeAttachmentSpec Text
v1alpha1VolumeAttachmentSpecAttacher Text
v1alpha1VolumeAttachmentSpecNodeName V1alpha1VolumeAttachmentSource
v1alpha1VolumeAttachmentSpecSource =
  V1alpha1VolumeAttachmentSpec :: Text
-> Text
-> V1alpha1VolumeAttachmentSource
-> V1alpha1VolumeAttachmentSpec
V1alpha1VolumeAttachmentSpec
  { Text
v1alpha1VolumeAttachmentSpecAttacher :: Text
v1alpha1VolumeAttachmentSpecAttacher :: Text
v1alpha1VolumeAttachmentSpecAttacher
  , Text
v1alpha1VolumeAttachmentSpecNodeName :: Text
v1alpha1VolumeAttachmentSpecNodeName :: Text
v1alpha1VolumeAttachmentSpecNodeName
  , V1alpha1VolumeAttachmentSource
v1alpha1VolumeAttachmentSpecSource :: V1alpha1VolumeAttachmentSource
v1alpha1VolumeAttachmentSpecSource :: V1alpha1VolumeAttachmentSource
v1alpha1VolumeAttachmentSpecSource
  }

-- ** V1alpha1VolumeAttachmentStatus
-- | V1alpha1VolumeAttachmentStatus
-- VolumeAttachmentStatus is the status of a VolumeAttachment request.
data V1alpha1VolumeAttachmentStatus = V1alpha1VolumeAttachmentStatus
  { V1alpha1VolumeAttachmentStatus -> Maybe V1alpha1VolumeError
v1alpha1VolumeAttachmentStatusAttachError :: !(Maybe V1alpha1VolumeError) -- ^ "attachError"
  , V1alpha1VolumeAttachmentStatus -> Bool
v1alpha1VolumeAttachmentStatusAttached :: !(Bool) -- ^ /Required/ "attached" - Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.
  , V1alpha1VolumeAttachmentStatus -> Maybe (Map String Text)
v1alpha1VolumeAttachmentStatusAttachmentMetadata :: !(Maybe (Map.Map String Text)) -- ^ "attachmentMetadata" - Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.
  , V1alpha1VolumeAttachmentStatus -> Maybe V1alpha1VolumeError
v1alpha1VolumeAttachmentStatusDetachError :: !(Maybe V1alpha1VolumeError) -- ^ "detachError"
  } deriving (Int -> V1alpha1VolumeAttachmentStatus -> ShowS
[V1alpha1VolumeAttachmentStatus] -> ShowS
V1alpha1VolumeAttachmentStatus -> String
(Int -> V1alpha1VolumeAttachmentStatus -> ShowS)
-> (V1alpha1VolumeAttachmentStatus -> String)
-> ([V1alpha1VolumeAttachmentStatus] -> ShowS)
-> Show V1alpha1VolumeAttachmentStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1VolumeAttachmentStatus] -> ShowS
$cshowList :: [V1alpha1VolumeAttachmentStatus] -> ShowS
show :: V1alpha1VolumeAttachmentStatus -> String
$cshow :: V1alpha1VolumeAttachmentStatus -> String
showsPrec :: Int -> V1alpha1VolumeAttachmentStatus -> ShowS
$cshowsPrec :: Int -> V1alpha1VolumeAttachmentStatus -> ShowS
P.Show, V1alpha1VolumeAttachmentStatus
-> V1alpha1VolumeAttachmentStatus -> Bool
(V1alpha1VolumeAttachmentStatus
 -> V1alpha1VolumeAttachmentStatus -> Bool)
-> (V1alpha1VolumeAttachmentStatus
    -> V1alpha1VolumeAttachmentStatus -> Bool)
-> Eq V1alpha1VolumeAttachmentStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1VolumeAttachmentStatus
-> V1alpha1VolumeAttachmentStatus -> Bool
$c/= :: V1alpha1VolumeAttachmentStatus
-> V1alpha1VolumeAttachmentStatus -> Bool
== :: V1alpha1VolumeAttachmentStatus
-> V1alpha1VolumeAttachmentStatus -> Bool
$c== :: V1alpha1VolumeAttachmentStatus
-> V1alpha1VolumeAttachmentStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1VolumeAttachmentStatus
instance A.FromJSON V1alpha1VolumeAttachmentStatus where
  parseJSON :: Value -> Parser V1alpha1VolumeAttachmentStatus
parseJSON = String
-> (Object -> Parser V1alpha1VolumeAttachmentStatus)
-> Value
-> Parser V1alpha1VolumeAttachmentStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1VolumeAttachmentStatus" ((Object -> Parser V1alpha1VolumeAttachmentStatus)
 -> Value -> Parser V1alpha1VolumeAttachmentStatus)
-> (Object -> Parser V1alpha1VolumeAttachmentStatus)
-> Value
-> Parser V1alpha1VolumeAttachmentStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1alpha1VolumeError
-> Bool
-> Maybe (Map String Text)
-> Maybe V1alpha1VolumeError
-> V1alpha1VolumeAttachmentStatus
V1alpha1VolumeAttachmentStatus
      (Maybe V1alpha1VolumeError
 -> Bool
 -> Maybe (Map String Text)
 -> Maybe V1alpha1VolumeError
 -> V1alpha1VolumeAttachmentStatus)
-> Parser (Maybe V1alpha1VolumeError)
-> Parser
     (Bool
      -> Maybe (Map String Text)
      -> Maybe V1alpha1VolumeError
      -> V1alpha1VolumeAttachmentStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1alpha1VolumeError)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"attachError")
      Parser
  (Bool
   -> Maybe (Map String Text)
   -> Maybe V1alpha1VolumeError
   -> V1alpha1VolumeAttachmentStatus)
-> Parser Bool
-> Parser
     (Maybe (Map String Text)
      -> Maybe V1alpha1VolumeError -> V1alpha1VolumeAttachmentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"attached")
      Parser
  (Maybe (Map String Text)
   -> Maybe V1alpha1VolumeError -> V1alpha1VolumeAttachmentStatus)
-> Parser (Maybe (Map String Text))
-> Parser
     (Maybe V1alpha1VolumeError -> V1alpha1VolumeAttachmentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"attachmentMetadata")
      Parser
  (Maybe V1alpha1VolumeError -> V1alpha1VolumeAttachmentStatus)
-> Parser (Maybe V1alpha1VolumeError)
-> Parser V1alpha1VolumeAttachmentStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1alpha1VolumeError)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"detachError")

-- | ToJSON V1alpha1VolumeAttachmentStatus
instance A.ToJSON V1alpha1VolumeAttachmentStatus where
  toJSON :: V1alpha1VolumeAttachmentStatus -> Value
toJSON V1alpha1VolumeAttachmentStatus {Bool
Maybe (Map String Text)
Maybe V1alpha1VolumeError
v1alpha1VolumeAttachmentStatusDetachError :: Maybe V1alpha1VolumeError
v1alpha1VolumeAttachmentStatusAttachmentMetadata :: Maybe (Map String Text)
v1alpha1VolumeAttachmentStatusAttached :: Bool
v1alpha1VolumeAttachmentStatusAttachError :: Maybe V1alpha1VolumeError
v1alpha1VolumeAttachmentStatusDetachError :: V1alpha1VolumeAttachmentStatus -> Maybe V1alpha1VolumeError
v1alpha1VolumeAttachmentStatusAttachmentMetadata :: V1alpha1VolumeAttachmentStatus -> Maybe (Map String Text)
v1alpha1VolumeAttachmentStatusAttached :: V1alpha1VolumeAttachmentStatus -> Bool
v1alpha1VolumeAttachmentStatusAttachError :: V1alpha1VolumeAttachmentStatus -> Maybe V1alpha1VolumeError
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"attachError" Text -> Maybe V1alpha1VolumeError -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1alpha1VolumeError
v1alpha1VolumeAttachmentStatusAttachError
      , Text
"attached" Text -> Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Bool
v1alpha1VolumeAttachmentStatusAttached
      , Text
"attachmentMetadata" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1alpha1VolumeAttachmentStatusAttachmentMetadata
      , Text
"detachError" Text -> Maybe V1alpha1VolumeError -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1alpha1VolumeError
v1alpha1VolumeAttachmentStatusDetachError
      ]


-- | Construct a value of type 'V1alpha1VolumeAttachmentStatus' (by applying it's required fields, if any)
mkV1alpha1VolumeAttachmentStatus
  :: Bool -- ^ 'v1alpha1VolumeAttachmentStatusAttached': Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.
  -> V1alpha1VolumeAttachmentStatus
mkV1alpha1VolumeAttachmentStatus :: Bool -> V1alpha1VolumeAttachmentStatus
mkV1alpha1VolumeAttachmentStatus Bool
v1alpha1VolumeAttachmentStatusAttached =
  V1alpha1VolumeAttachmentStatus :: Maybe V1alpha1VolumeError
-> Bool
-> Maybe (Map String Text)
-> Maybe V1alpha1VolumeError
-> V1alpha1VolumeAttachmentStatus
V1alpha1VolumeAttachmentStatus
  { v1alpha1VolumeAttachmentStatusAttachError :: Maybe V1alpha1VolumeError
v1alpha1VolumeAttachmentStatusAttachError = Maybe V1alpha1VolumeError
forall a. Maybe a
Nothing
  , Bool
v1alpha1VolumeAttachmentStatusAttached :: Bool
v1alpha1VolumeAttachmentStatusAttached :: Bool
v1alpha1VolumeAttachmentStatusAttached
  , v1alpha1VolumeAttachmentStatusAttachmentMetadata :: Maybe (Map String Text)
v1alpha1VolumeAttachmentStatusAttachmentMetadata = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , v1alpha1VolumeAttachmentStatusDetachError :: Maybe V1alpha1VolumeError
v1alpha1VolumeAttachmentStatusDetachError = Maybe V1alpha1VolumeError
forall a. Maybe a
Nothing
  }

-- ** V1alpha1VolumeError
-- | V1alpha1VolumeError
-- VolumeError captures an error encountered during a volume operation.
data V1alpha1VolumeError = V1alpha1VolumeError
  { V1alpha1VolumeError -> Maybe Text
v1alpha1VolumeErrorMessage :: !(Maybe Text) -- ^ "message" - String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information.
  , V1alpha1VolumeError -> Maybe DateTime
v1alpha1VolumeErrorTime :: !(Maybe DateTime) -- ^ "time" - Time the error was encountered.
  } deriving (Int -> V1alpha1VolumeError -> ShowS
[V1alpha1VolumeError] -> ShowS
V1alpha1VolumeError -> String
(Int -> V1alpha1VolumeError -> ShowS)
-> (V1alpha1VolumeError -> String)
-> ([V1alpha1VolumeError] -> ShowS)
-> Show V1alpha1VolumeError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1VolumeError] -> ShowS
$cshowList :: [V1alpha1VolumeError] -> ShowS
show :: V1alpha1VolumeError -> String
$cshow :: V1alpha1VolumeError -> String
showsPrec :: Int -> V1alpha1VolumeError -> ShowS
$cshowsPrec :: Int -> V1alpha1VolumeError -> ShowS
P.Show, V1alpha1VolumeError -> V1alpha1VolumeError -> Bool
(V1alpha1VolumeError -> V1alpha1VolumeError -> Bool)
-> (V1alpha1VolumeError -> V1alpha1VolumeError -> Bool)
-> Eq V1alpha1VolumeError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1VolumeError -> V1alpha1VolumeError -> Bool
$c/= :: V1alpha1VolumeError -> V1alpha1VolumeError -> Bool
== :: V1alpha1VolumeError -> V1alpha1VolumeError -> Bool
$c== :: V1alpha1VolumeError -> V1alpha1VolumeError -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1VolumeError
instance A.FromJSON V1alpha1VolumeError where
  parseJSON :: Value -> Parser V1alpha1VolumeError
parseJSON = String
-> (Object -> Parser V1alpha1VolumeError)
-> Value
-> Parser V1alpha1VolumeError
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1VolumeError" ((Object -> Parser V1alpha1VolumeError)
 -> Value -> Parser V1alpha1VolumeError)
-> (Object -> Parser V1alpha1VolumeError)
-> Value
-> Parser V1alpha1VolumeError
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe DateTime -> V1alpha1VolumeError
V1alpha1VolumeError
      (Maybe Text -> Maybe DateTime -> V1alpha1VolumeError)
-> Parser (Maybe Text)
-> Parser (Maybe DateTime -> V1alpha1VolumeError)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe DateTime -> V1alpha1VolumeError)
-> Parser (Maybe DateTime) -> Parser V1alpha1VolumeError
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"time")

-- | ToJSON V1alpha1VolumeError
instance A.ToJSON V1alpha1VolumeError where
  toJSON :: V1alpha1VolumeError -> Value
toJSON V1alpha1VolumeError {Maybe Text
Maybe DateTime
v1alpha1VolumeErrorTime :: Maybe DateTime
v1alpha1VolumeErrorMessage :: Maybe Text
v1alpha1VolumeErrorTime :: V1alpha1VolumeError -> Maybe DateTime
v1alpha1VolumeErrorMessage :: V1alpha1VolumeError -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1VolumeErrorMessage
      , Text
"time" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1alpha1VolumeErrorTime
      ]


-- | Construct a value of type 'V1alpha1VolumeError' (by applying it's required fields, if any)
mkV1alpha1VolumeError
  :: V1alpha1VolumeError
mkV1alpha1VolumeError :: V1alpha1VolumeError
mkV1alpha1VolumeError =
  V1alpha1VolumeError :: Maybe Text -> Maybe DateTime -> V1alpha1VolumeError
V1alpha1VolumeError
  { v1alpha1VolumeErrorMessage :: Maybe Text
v1alpha1VolumeErrorMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1alpha1VolumeErrorTime :: Maybe DateTime
v1alpha1VolumeErrorTime = Maybe DateTime
forall a. Maybe a
Nothing
  }

-- ** V1alpha1Webhook
-- | V1alpha1Webhook
-- Webhook holds the configuration of the webhook
data V1alpha1Webhook = V1alpha1Webhook
  { V1alpha1Webhook -> V1alpha1WebhookClientConfig
v1alpha1WebhookClientConfig :: !(V1alpha1WebhookClientConfig) -- ^ /Required/ "clientConfig"
  , V1alpha1Webhook -> Maybe V1alpha1WebhookThrottleConfig
v1alpha1WebhookThrottle :: !(Maybe V1alpha1WebhookThrottleConfig) -- ^ "throttle"
  } deriving (Int -> V1alpha1Webhook -> ShowS
[V1alpha1Webhook] -> ShowS
V1alpha1Webhook -> String
(Int -> V1alpha1Webhook -> ShowS)
-> (V1alpha1Webhook -> String)
-> ([V1alpha1Webhook] -> ShowS)
-> Show V1alpha1Webhook
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1Webhook] -> ShowS
$cshowList :: [V1alpha1Webhook] -> ShowS
show :: V1alpha1Webhook -> String
$cshow :: V1alpha1Webhook -> String
showsPrec :: Int -> V1alpha1Webhook -> ShowS
$cshowsPrec :: Int -> V1alpha1Webhook -> ShowS
P.Show, V1alpha1Webhook -> V1alpha1Webhook -> Bool
(V1alpha1Webhook -> V1alpha1Webhook -> Bool)
-> (V1alpha1Webhook -> V1alpha1Webhook -> Bool)
-> Eq V1alpha1Webhook
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1Webhook -> V1alpha1Webhook -> Bool
$c/= :: V1alpha1Webhook -> V1alpha1Webhook -> Bool
== :: V1alpha1Webhook -> V1alpha1Webhook -> Bool
$c== :: V1alpha1Webhook -> V1alpha1Webhook -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1Webhook
instance A.FromJSON V1alpha1Webhook where
  parseJSON :: Value -> Parser V1alpha1Webhook
parseJSON = String
-> (Object -> Parser V1alpha1Webhook)
-> Value
-> Parser V1alpha1Webhook
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1Webhook" ((Object -> Parser V1alpha1Webhook)
 -> Value -> Parser V1alpha1Webhook)
-> (Object -> Parser V1alpha1Webhook)
-> Value
-> Parser V1alpha1Webhook
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    V1alpha1WebhookClientConfig
-> Maybe V1alpha1WebhookThrottleConfig -> V1alpha1Webhook
V1alpha1Webhook
      (V1alpha1WebhookClientConfig
 -> Maybe V1alpha1WebhookThrottleConfig -> V1alpha1Webhook)
-> Parser V1alpha1WebhookClientConfig
-> Parser (Maybe V1alpha1WebhookThrottleConfig -> V1alpha1Webhook)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser V1alpha1WebhookClientConfig
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"clientConfig")
      Parser (Maybe V1alpha1WebhookThrottleConfig -> V1alpha1Webhook)
-> Parser (Maybe V1alpha1WebhookThrottleConfig)
-> Parser V1alpha1Webhook
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1alpha1WebhookThrottleConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"throttle")

-- | ToJSON V1alpha1Webhook
instance A.ToJSON V1alpha1Webhook where
  toJSON :: V1alpha1Webhook -> Value
toJSON V1alpha1Webhook {Maybe V1alpha1WebhookThrottleConfig
V1alpha1WebhookClientConfig
v1alpha1WebhookThrottle :: Maybe V1alpha1WebhookThrottleConfig
v1alpha1WebhookClientConfig :: V1alpha1WebhookClientConfig
v1alpha1WebhookThrottle :: V1alpha1Webhook -> Maybe V1alpha1WebhookThrottleConfig
v1alpha1WebhookClientConfig :: V1alpha1Webhook -> V1alpha1WebhookClientConfig
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"clientConfig" Text -> V1alpha1WebhookClientConfig -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1alpha1WebhookClientConfig
v1alpha1WebhookClientConfig
      , Text
"throttle" Text -> Maybe V1alpha1WebhookThrottleConfig -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1alpha1WebhookThrottleConfig
v1alpha1WebhookThrottle
      ]


-- | Construct a value of type 'V1alpha1Webhook' (by applying it's required fields, if any)
mkV1alpha1Webhook
  :: V1alpha1WebhookClientConfig -- ^ 'v1alpha1WebhookClientConfig' 
  -> V1alpha1Webhook
mkV1alpha1Webhook :: V1alpha1WebhookClientConfig -> V1alpha1Webhook
mkV1alpha1Webhook V1alpha1WebhookClientConfig
v1alpha1WebhookClientConfig =
  V1alpha1Webhook :: V1alpha1WebhookClientConfig
-> Maybe V1alpha1WebhookThrottleConfig -> V1alpha1Webhook
V1alpha1Webhook
  { V1alpha1WebhookClientConfig
v1alpha1WebhookClientConfig :: V1alpha1WebhookClientConfig
v1alpha1WebhookClientConfig :: V1alpha1WebhookClientConfig
v1alpha1WebhookClientConfig
  , v1alpha1WebhookThrottle :: Maybe V1alpha1WebhookThrottleConfig
v1alpha1WebhookThrottle = Maybe V1alpha1WebhookThrottleConfig
forall a. Maybe a
Nothing
  }

-- ** V1alpha1WebhookClientConfig
-- | V1alpha1WebhookClientConfig
-- WebhookClientConfig contains the information to make a connection with the webhook
data V1alpha1WebhookClientConfig = V1alpha1WebhookClientConfig
  { V1alpha1WebhookClientConfig -> Maybe ByteArray
v1alpha1WebhookClientConfigCaBundle :: !(Maybe ByteArray) -- ^ "caBundle" - &#x60;caBundle&#x60; is a PEM encoded CA bundle which will be used to validate the webhook&#39;s server certificate. If unspecified, system trust roots on the apiserver are used.
  , V1alpha1WebhookClientConfig -> Maybe V1alpha1ServiceReference
v1alpha1WebhookClientConfigService :: !(Maybe V1alpha1ServiceReference) -- ^ "service"
  , V1alpha1WebhookClientConfig -> Maybe Text
v1alpha1WebhookClientConfigUrl :: !(Maybe Text) -- ^ "url" - &#x60;url&#x60; gives the location of the webhook, in standard URL form (&#x60;scheme://host:port/path&#x60;). Exactly one of &#x60;url&#x60; or &#x60;service&#x60; must be specified.  The &#x60;host&#x60; should not refer to a service running in the cluster; use the &#x60;service&#x60; field instead. The host might be resolved via external DNS in some apiservers (e.g., &#x60;kube-apiserver&#x60; cannot resolve in-cluster DNS as that would be a layering violation). &#x60;host&#x60; may also be an IP address.  Please note that using &#x60;localhost&#x60; or &#x60;127.0.0.1&#x60; as a &#x60;host&#x60; is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.  The scheme must be \&quot;https\&quot;; the URL must begin with \&quot;https://\&quot;.  A path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.  Attempting to use a user or basic auth e.g. \&quot;user:password@\&quot; is not allowed. Fragments (\&quot;#...\&quot;) and query parameters (\&quot;?...\&quot;) are not allowed, either.
  } deriving (Int -> V1alpha1WebhookClientConfig -> ShowS
[V1alpha1WebhookClientConfig] -> ShowS
V1alpha1WebhookClientConfig -> String
(Int -> V1alpha1WebhookClientConfig -> ShowS)
-> (V1alpha1WebhookClientConfig -> String)
-> ([V1alpha1WebhookClientConfig] -> ShowS)
-> Show V1alpha1WebhookClientConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1WebhookClientConfig] -> ShowS
$cshowList :: [V1alpha1WebhookClientConfig] -> ShowS
show :: V1alpha1WebhookClientConfig -> String
$cshow :: V1alpha1WebhookClientConfig -> String
showsPrec :: Int -> V1alpha1WebhookClientConfig -> ShowS
$cshowsPrec :: Int -> V1alpha1WebhookClientConfig -> ShowS
P.Show, V1alpha1WebhookClientConfig -> V1alpha1WebhookClientConfig -> Bool
(V1alpha1WebhookClientConfig
 -> V1alpha1WebhookClientConfig -> Bool)
-> (V1alpha1WebhookClientConfig
    -> V1alpha1WebhookClientConfig -> Bool)
-> Eq V1alpha1WebhookClientConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1WebhookClientConfig -> V1alpha1WebhookClientConfig -> Bool
$c/= :: V1alpha1WebhookClientConfig -> V1alpha1WebhookClientConfig -> Bool
== :: V1alpha1WebhookClientConfig -> V1alpha1WebhookClientConfig -> Bool
$c== :: V1alpha1WebhookClientConfig -> V1alpha1WebhookClientConfig -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1WebhookClientConfig
instance A.FromJSON V1alpha1WebhookClientConfig where
  parseJSON :: Value -> Parser V1alpha1WebhookClientConfig
parseJSON = String
-> (Object -> Parser V1alpha1WebhookClientConfig)
-> Value
-> Parser V1alpha1WebhookClientConfig
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1WebhookClientConfig" ((Object -> Parser V1alpha1WebhookClientConfig)
 -> Value -> Parser V1alpha1WebhookClientConfig)
-> (Object -> Parser V1alpha1WebhookClientConfig)
-> Value
-> Parser V1alpha1WebhookClientConfig
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe ByteArray
-> Maybe V1alpha1ServiceReference
-> Maybe Text
-> V1alpha1WebhookClientConfig
V1alpha1WebhookClientConfig
      (Maybe ByteArray
 -> Maybe V1alpha1ServiceReference
 -> Maybe Text
 -> V1alpha1WebhookClientConfig)
-> Parser (Maybe ByteArray)
-> Parser
     (Maybe V1alpha1ServiceReference
      -> Maybe Text -> V1alpha1WebhookClientConfig)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe ByteArray)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"caBundle")
      Parser
  (Maybe V1alpha1ServiceReference
   -> Maybe Text -> V1alpha1WebhookClientConfig)
-> Parser (Maybe V1alpha1ServiceReference)
-> Parser (Maybe Text -> V1alpha1WebhookClientConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1alpha1ServiceReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"service")
      Parser (Maybe Text -> V1alpha1WebhookClientConfig)
-> Parser (Maybe Text) -> Parser V1alpha1WebhookClientConfig
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"url")

-- | ToJSON V1alpha1WebhookClientConfig
instance A.ToJSON V1alpha1WebhookClientConfig where
  toJSON :: V1alpha1WebhookClientConfig -> Value
toJSON V1alpha1WebhookClientConfig {Maybe Text
Maybe ByteArray
Maybe V1alpha1ServiceReference
v1alpha1WebhookClientConfigUrl :: Maybe Text
v1alpha1WebhookClientConfigService :: Maybe V1alpha1ServiceReference
v1alpha1WebhookClientConfigCaBundle :: Maybe ByteArray
v1alpha1WebhookClientConfigUrl :: V1alpha1WebhookClientConfig -> Maybe Text
v1alpha1WebhookClientConfigService :: V1alpha1WebhookClientConfig -> Maybe V1alpha1ServiceReference
v1alpha1WebhookClientConfigCaBundle :: V1alpha1WebhookClientConfig -> Maybe ByteArray
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"caBundle" Text -> Maybe ByteArray -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ByteArray
v1alpha1WebhookClientConfigCaBundle
      , Text
"service" Text -> Maybe V1alpha1ServiceReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1alpha1ServiceReference
v1alpha1WebhookClientConfigService
      , Text
"url" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1alpha1WebhookClientConfigUrl
      ]


-- | Construct a value of type 'V1alpha1WebhookClientConfig' (by applying it's required fields, if any)
mkV1alpha1WebhookClientConfig
  :: V1alpha1WebhookClientConfig
mkV1alpha1WebhookClientConfig :: V1alpha1WebhookClientConfig
mkV1alpha1WebhookClientConfig =
  V1alpha1WebhookClientConfig :: Maybe ByteArray
-> Maybe V1alpha1ServiceReference
-> Maybe Text
-> V1alpha1WebhookClientConfig
V1alpha1WebhookClientConfig
  { v1alpha1WebhookClientConfigCaBundle :: Maybe ByteArray
v1alpha1WebhookClientConfigCaBundle = Maybe ByteArray
forall a. Maybe a
Nothing
  , v1alpha1WebhookClientConfigService :: Maybe V1alpha1ServiceReference
v1alpha1WebhookClientConfigService = Maybe V1alpha1ServiceReference
forall a. Maybe a
Nothing
  , v1alpha1WebhookClientConfigUrl :: Maybe Text
v1alpha1WebhookClientConfigUrl = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1alpha1WebhookThrottleConfig
-- | V1alpha1WebhookThrottleConfig
-- WebhookThrottleConfig holds the configuration for throttling events
data V1alpha1WebhookThrottleConfig = V1alpha1WebhookThrottleConfig
  { V1alpha1WebhookThrottleConfig -> Maybe Integer
v1alpha1WebhookThrottleConfigBurst :: !(Maybe Integer) -- ^ "burst" - ThrottleBurst is the maximum number of events sent at the same moment default 15 QPS
  , V1alpha1WebhookThrottleConfig -> Maybe Integer
v1alpha1WebhookThrottleConfigQps :: !(Maybe Integer) -- ^ "qps" - ThrottleQPS maximum number of batches per second default 10 QPS
  } deriving (Int -> V1alpha1WebhookThrottleConfig -> ShowS
[V1alpha1WebhookThrottleConfig] -> ShowS
V1alpha1WebhookThrottleConfig -> String
(Int -> V1alpha1WebhookThrottleConfig -> ShowS)
-> (V1alpha1WebhookThrottleConfig -> String)
-> ([V1alpha1WebhookThrottleConfig] -> ShowS)
-> Show V1alpha1WebhookThrottleConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1alpha1WebhookThrottleConfig] -> ShowS
$cshowList :: [V1alpha1WebhookThrottleConfig] -> ShowS
show :: V1alpha1WebhookThrottleConfig -> String
$cshow :: V1alpha1WebhookThrottleConfig -> String
showsPrec :: Int -> V1alpha1WebhookThrottleConfig -> ShowS
$cshowsPrec :: Int -> V1alpha1WebhookThrottleConfig -> ShowS
P.Show, V1alpha1WebhookThrottleConfig
-> V1alpha1WebhookThrottleConfig -> Bool
(V1alpha1WebhookThrottleConfig
 -> V1alpha1WebhookThrottleConfig -> Bool)
-> (V1alpha1WebhookThrottleConfig
    -> V1alpha1WebhookThrottleConfig -> Bool)
-> Eq V1alpha1WebhookThrottleConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1alpha1WebhookThrottleConfig
-> V1alpha1WebhookThrottleConfig -> Bool
$c/= :: V1alpha1WebhookThrottleConfig
-> V1alpha1WebhookThrottleConfig -> Bool
== :: V1alpha1WebhookThrottleConfig
-> V1alpha1WebhookThrottleConfig -> Bool
$c== :: V1alpha1WebhookThrottleConfig
-> V1alpha1WebhookThrottleConfig -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1alpha1WebhookThrottleConfig
instance A.FromJSON V1alpha1WebhookThrottleConfig where
  parseJSON :: Value -> Parser V1alpha1WebhookThrottleConfig
parseJSON = String
-> (Object -> Parser V1alpha1WebhookThrottleConfig)
-> Value
-> Parser V1alpha1WebhookThrottleConfig
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1alpha1WebhookThrottleConfig" ((Object -> Parser V1alpha1WebhookThrottleConfig)
 -> Value -> Parser V1alpha1WebhookThrottleConfig)
-> (Object -> Parser V1alpha1WebhookThrottleConfig)
-> Value
-> Parser V1alpha1WebhookThrottleConfig
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Integer -> Maybe Integer -> V1alpha1WebhookThrottleConfig
V1alpha1WebhookThrottleConfig
      (Maybe Integer -> Maybe Integer -> V1alpha1WebhookThrottleConfig)
-> Parser (Maybe Integer)
-> Parser (Maybe Integer -> V1alpha1WebhookThrottleConfig)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"burst")
      Parser (Maybe Integer -> V1alpha1WebhookThrottleConfig)
-> Parser (Maybe Integer) -> Parser V1alpha1WebhookThrottleConfig
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"qps")

-- | ToJSON V1alpha1WebhookThrottleConfig
instance A.ToJSON V1alpha1WebhookThrottleConfig where
  toJSON :: V1alpha1WebhookThrottleConfig -> Value
toJSON V1alpha1WebhookThrottleConfig {Maybe Integer
v1alpha1WebhookThrottleConfigQps :: Maybe Integer
v1alpha1WebhookThrottleConfigBurst :: Maybe Integer
v1alpha1WebhookThrottleConfigQps :: V1alpha1WebhookThrottleConfig -> Maybe Integer
v1alpha1WebhookThrottleConfigBurst :: V1alpha1WebhookThrottleConfig -> Maybe Integer
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"burst" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1alpha1WebhookThrottleConfigBurst
      , Text
"qps" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1alpha1WebhookThrottleConfigQps
      ]


-- | Construct a value of type 'V1alpha1WebhookThrottleConfig' (by applying it's required fields, if any)
mkV1alpha1WebhookThrottleConfig
  :: V1alpha1WebhookThrottleConfig
mkV1alpha1WebhookThrottleConfig :: V1alpha1WebhookThrottleConfig
mkV1alpha1WebhookThrottleConfig =
  V1alpha1WebhookThrottleConfig :: Maybe Integer -> Maybe Integer -> V1alpha1WebhookThrottleConfig
V1alpha1WebhookThrottleConfig
  { v1alpha1WebhookThrottleConfigBurst :: Maybe Integer
v1alpha1WebhookThrottleConfigBurst = Maybe Integer
forall a. Maybe a
Nothing
  , v1alpha1WebhookThrottleConfigQps :: Maybe Integer
v1alpha1WebhookThrottleConfigQps = Maybe Integer
forall a. Maybe a
Nothing
  }

-- ** V1beta1APIService
-- | V1beta1APIService
-- APIService represents a server for a particular GroupVersion. Name must be \"version.group\".
data V1beta1APIService = V1beta1APIService
  { V1beta1APIService -> Maybe Text
v1beta1APIServiceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1APIService -> Maybe Text
v1beta1APIServiceKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1APIService -> Maybe V1ObjectMeta
v1beta1APIServiceMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1APIService -> Maybe V1beta1APIServiceSpec
v1beta1APIServiceSpec :: !(Maybe V1beta1APIServiceSpec) -- ^ "spec"
  , V1beta1APIService -> Maybe V1beta1APIServiceStatus
v1beta1APIServiceStatus :: !(Maybe V1beta1APIServiceStatus) -- ^ "status"
  } deriving (Int -> V1beta1APIService -> ShowS
[V1beta1APIService] -> ShowS
V1beta1APIService -> String
(Int -> V1beta1APIService -> ShowS)
-> (V1beta1APIService -> String)
-> ([V1beta1APIService] -> ShowS)
-> Show V1beta1APIService
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1APIService] -> ShowS
$cshowList :: [V1beta1APIService] -> ShowS
show :: V1beta1APIService -> String
$cshow :: V1beta1APIService -> String
showsPrec :: Int -> V1beta1APIService -> ShowS
$cshowsPrec :: Int -> V1beta1APIService -> ShowS
P.Show, V1beta1APIService -> V1beta1APIService -> Bool
(V1beta1APIService -> V1beta1APIService -> Bool)
-> (V1beta1APIService -> V1beta1APIService -> Bool)
-> Eq V1beta1APIService
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1APIService -> V1beta1APIService -> Bool
$c/= :: V1beta1APIService -> V1beta1APIService -> Bool
== :: V1beta1APIService -> V1beta1APIService -> Bool
$c== :: V1beta1APIService -> V1beta1APIService -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1APIService
instance A.FromJSON V1beta1APIService where
  parseJSON :: Value -> Parser V1beta1APIService
parseJSON = String
-> (Object -> Parser V1beta1APIService)
-> Value
-> Parser V1beta1APIService
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1APIService" ((Object -> Parser V1beta1APIService)
 -> Value -> Parser V1beta1APIService)
-> (Object -> Parser V1beta1APIService)
-> Value
-> Parser V1beta1APIService
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1APIServiceSpec
-> Maybe V1beta1APIServiceStatus
-> V1beta1APIService
V1beta1APIService
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1beta1APIServiceSpec
 -> Maybe V1beta1APIServiceStatus
 -> V1beta1APIService)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1beta1APIServiceSpec
      -> Maybe V1beta1APIServiceStatus
      -> V1beta1APIService)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1beta1APIServiceSpec
   -> Maybe V1beta1APIServiceStatus
   -> V1beta1APIService)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1beta1APIServiceSpec
      -> Maybe V1beta1APIServiceStatus
      -> V1beta1APIService)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1beta1APIServiceSpec
   -> Maybe V1beta1APIServiceStatus
   -> V1beta1APIService)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1beta1APIServiceSpec
      -> Maybe V1beta1APIServiceStatus -> V1beta1APIService)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1beta1APIServiceSpec
   -> Maybe V1beta1APIServiceStatus -> V1beta1APIService)
-> Parser (Maybe V1beta1APIServiceSpec)
-> Parser (Maybe V1beta1APIServiceStatus -> V1beta1APIService)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1APIServiceSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1beta1APIServiceStatus -> V1beta1APIService)
-> Parser (Maybe V1beta1APIServiceStatus)
-> Parser V1beta1APIService
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1APIServiceStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta1APIService
instance A.ToJSON V1beta1APIService where
  toJSON :: V1beta1APIService -> Value
toJSON V1beta1APIService {Maybe Text
Maybe V1beta1APIServiceStatus
Maybe V1beta1APIServiceSpec
Maybe V1ObjectMeta
v1beta1APIServiceStatus :: Maybe V1beta1APIServiceStatus
v1beta1APIServiceSpec :: Maybe V1beta1APIServiceSpec
v1beta1APIServiceMetadata :: Maybe V1ObjectMeta
v1beta1APIServiceKind :: Maybe Text
v1beta1APIServiceApiVersion :: Maybe Text
v1beta1APIServiceStatus :: V1beta1APIService -> Maybe V1beta1APIServiceStatus
v1beta1APIServiceSpec :: V1beta1APIService -> Maybe V1beta1APIServiceSpec
v1beta1APIServiceMetadata :: V1beta1APIService -> Maybe V1ObjectMeta
v1beta1APIServiceKind :: V1beta1APIService -> Maybe Text
v1beta1APIServiceApiVersion :: V1beta1APIService -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1APIServiceApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1APIServiceKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1APIServiceMetadata
      , Text
"spec" Text -> Maybe V1beta1APIServiceSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1APIServiceSpec
v1beta1APIServiceSpec
      , Text
"status" Text -> Maybe V1beta1APIServiceStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1APIServiceStatus
v1beta1APIServiceStatus
      ]


-- | Construct a value of type 'V1beta1APIService' (by applying it's required fields, if any)
mkV1beta1APIService
  :: V1beta1APIService
mkV1beta1APIService :: V1beta1APIService
mkV1beta1APIService =
  V1beta1APIService :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1APIServiceSpec
-> Maybe V1beta1APIServiceStatus
-> V1beta1APIService
V1beta1APIService
  { v1beta1APIServiceApiVersion :: Maybe Text
v1beta1APIServiceApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1APIServiceKind :: Maybe Text
v1beta1APIServiceKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1APIServiceMetadata :: Maybe V1ObjectMeta
v1beta1APIServiceMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1APIServiceSpec :: Maybe V1beta1APIServiceSpec
v1beta1APIServiceSpec = Maybe V1beta1APIServiceSpec
forall a. Maybe a
Nothing
  , v1beta1APIServiceStatus :: Maybe V1beta1APIServiceStatus
v1beta1APIServiceStatus = Maybe V1beta1APIServiceStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta1APIServiceCondition
-- | V1beta1APIServiceCondition
-- APIServiceCondition describes the state of an APIService at a particular point
data V1beta1APIServiceCondition = V1beta1APIServiceCondition
  { V1beta1APIServiceCondition -> Maybe DateTime
v1beta1APIServiceConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.
  , V1beta1APIServiceCondition -> Maybe Text
v1beta1APIServiceConditionMessage :: !(Maybe Text) -- ^ "message" - Human-readable message indicating details about last transition.
  , V1beta1APIServiceCondition -> Maybe Text
v1beta1APIServiceConditionReason :: !(Maybe Text) -- ^ "reason" - Unique, one-word, CamelCase reason for the condition&#39;s last transition.
  , V1beta1APIServiceCondition -> Text
v1beta1APIServiceConditionStatus :: !(Text) -- ^ /Required/ "status" - Status is the status of the condition. Can be True, False, Unknown.
  , V1beta1APIServiceCondition -> Text
v1beta1APIServiceConditionType :: !(Text) -- ^ /Required/ "type" - Type is the type of the condition.
  } deriving (Int -> V1beta1APIServiceCondition -> ShowS
[V1beta1APIServiceCondition] -> ShowS
V1beta1APIServiceCondition -> String
(Int -> V1beta1APIServiceCondition -> ShowS)
-> (V1beta1APIServiceCondition -> String)
-> ([V1beta1APIServiceCondition] -> ShowS)
-> Show V1beta1APIServiceCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1APIServiceCondition] -> ShowS
$cshowList :: [V1beta1APIServiceCondition] -> ShowS
show :: V1beta1APIServiceCondition -> String
$cshow :: V1beta1APIServiceCondition -> String
showsPrec :: Int -> V1beta1APIServiceCondition -> ShowS
$cshowsPrec :: Int -> V1beta1APIServiceCondition -> ShowS
P.Show, V1beta1APIServiceCondition -> V1beta1APIServiceCondition -> Bool
(V1beta1APIServiceCondition -> V1beta1APIServiceCondition -> Bool)
-> (V1beta1APIServiceCondition
    -> V1beta1APIServiceCondition -> Bool)
-> Eq V1beta1APIServiceCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1APIServiceCondition -> V1beta1APIServiceCondition -> Bool
$c/= :: V1beta1APIServiceCondition -> V1beta1APIServiceCondition -> Bool
== :: V1beta1APIServiceCondition -> V1beta1APIServiceCondition -> Bool
$c== :: V1beta1APIServiceCondition -> V1beta1APIServiceCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1APIServiceCondition
instance A.FromJSON V1beta1APIServiceCondition where
  parseJSON :: Value -> Parser V1beta1APIServiceCondition
parseJSON = String
-> (Object -> Parser V1beta1APIServiceCondition)
-> Value
-> Parser V1beta1APIServiceCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1APIServiceCondition" ((Object -> Parser V1beta1APIServiceCondition)
 -> Value -> Parser V1beta1APIServiceCondition)
-> (Object -> Parser V1beta1APIServiceCondition)
-> Value
-> Parser V1beta1APIServiceCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta1APIServiceCondition
V1beta1APIServiceCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1beta1APIServiceCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text -> Text -> Text -> V1beta1APIServiceCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text
   -> Maybe Text -> Text -> Text -> V1beta1APIServiceCondition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Text -> Text -> V1beta1APIServiceCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1beta1APIServiceCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1beta1APIServiceCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1beta1APIServiceCondition)
-> Parser Text -> Parser (Text -> V1beta1APIServiceCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1beta1APIServiceCondition)
-> Parser Text -> Parser V1beta1APIServiceCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1beta1APIServiceCondition
instance A.ToJSON V1beta1APIServiceCondition where
  toJSON :: V1beta1APIServiceCondition -> Value
toJSON V1beta1APIServiceCondition {Maybe Text
Maybe DateTime
Text
v1beta1APIServiceConditionType :: Text
v1beta1APIServiceConditionStatus :: Text
v1beta1APIServiceConditionReason :: Maybe Text
v1beta1APIServiceConditionMessage :: Maybe Text
v1beta1APIServiceConditionLastTransitionTime :: Maybe DateTime
v1beta1APIServiceConditionType :: V1beta1APIServiceCondition -> Text
v1beta1APIServiceConditionStatus :: V1beta1APIServiceCondition -> Text
v1beta1APIServiceConditionReason :: V1beta1APIServiceCondition -> Maybe Text
v1beta1APIServiceConditionMessage :: V1beta1APIServiceCondition -> Maybe Text
v1beta1APIServiceConditionLastTransitionTime :: V1beta1APIServiceCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta1APIServiceConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1APIServiceConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1APIServiceConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1APIServiceConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1APIServiceConditionType
      ]


-- | Construct a value of type 'V1beta1APIServiceCondition' (by applying it's required fields, if any)
mkV1beta1APIServiceCondition
  :: Text -- ^ 'v1beta1APIServiceConditionStatus': Status is the status of the condition. Can be True, False, Unknown.
  -> Text -- ^ 'v1beta1APIServiceConditionType': Type is the type of the condition.
  -> V1beta1APIServiceCondition
mkV1beta1APIServiceCondition :: Text -> Text -> V1beta1APIServiceCondition
mkV1beta1APIServiceCondition Text
v1beta1APIServiceConditionStatus Text
v1beta1APIServiceConditionType =
  V1beta1APIServiceCondition :: Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta1APIServiceCondition
V1beta1APIServiceCondition
  { v1beta1APIServiceConditionLastTransitionTime :: Maybe DateTime
v1beta1APIServiceConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1beta1APIServiceConditionMessage :: Maybe Text
v1beta1APIServiceConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1APIServiceConditionReason :: Maybe Text
v1beta1APIServiceConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta1APIServiceConditionStatus :: Text
v1beta1APIServiceConditionStatus :: Text
v1beta1APIServiceConditionStatus
  , Text
v1beta1APIServiceConditionType :: Text
v1beta1APIServiceConditionType :: Text
v1beta1APIServiceConditionType
  }

-- ** V1beta1APIServiceList
-- | V1beta1APIServiceList
-- APIServiceList is a list of APIService objects.
data V1beta1APIServiceList = V1beta1APIServiceList
  { V1beta1APIServiceList -> Maybe Text
v1beta1APIServiceListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1APIServiceList -> [V1beta1APIService]
v1beta1APIServiceListItems :: !([V1beta1APIService]) -- ^ /Required/ "items"
  , V1beta1APIServiceList -> Maybe Text
v1beta1APIServiceListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1APIServiceList -> Maybe V1ListMeta
v1beta1APIServiceListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1APIServiceList -> ShowS
[V1beta1APIServiceList] -> ShowS
V1beta1APIServiceList -> String
(Int -> V1beta1APIServiceList -> ShowS)
-> (V1beta1APIServiceList -> String)
-> ([V1beta1APIServiceList] -> ShowS)
-> Show V1beta1APIServiceList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1APIServiceList] -> ShowS
$cshowList :: [V1beta1APIServiceList] -> ShowS
show :: V1beta1APIServiceList -> String
$cshow :: V1beta1APIServiceList -> String
showsPrec :: Int -> V1beta1APIServiceList -> ShowS
$cshowsPrec :: Int -> V1beta1APIServiceList -> ShowS
P.Show, V1beta1APIServiceList -> V1beta1APIServiceList -> Bool
(V1beta1APIServiceList -> V1beta1APIServiceList -> Bool)
-> (V1beta1APIServiceList -> V1beta1APIServiceList -> Bool)
-> Eq V1beta1APIServiceList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1APIServiceList -> V1beta1APIServiceList -> Bool
$c/= :: V1beta1APIServiceList -> V1beta1APIServiceList -> Bool
== :: V1beta1APIServiceList -> V1beta1APIServiceList -> Bool
$c== :: V1beta1APIServiceList -> V1beta1APIServiceList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1APIServiceList
instance A.FromJSON V1beta1APIServiceList where
  parseJSON :: Value -> Parser V1beta1APIServiceList
parseJSON = String
-> (Object -> Parser V1beta1APIServiceList)
-> Value
-> Parser V1beta1APIServiceList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1APIServiceList" ((Object -> Parser V1beta1APIServiceList)
 -> Value -> Parser V1beta1APIServiceList)
-> (Object -> Parser V1beta1APIServiceList)
-> Value
-> Parser V1beta1APIServiceList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1APIService]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1APIServiceList
V1beta1APIServiceList
      (Maybe Text
 -> [V1beta1APIService]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1APIServiceList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1APIService]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1APIServiceList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1APIService]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1APIServiceList)
-> Parser [V1beta1APIService]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1APIServiceList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1APIService]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1APIServiceList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1APIServiceList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1APIServiceList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1APIServiceList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1APIServiceList
instance A.ToJSON V1beta1APIServiceList where
  toJSON :: V1beta1APIServiceList -> Value
toJSON V1beta1APIServiceList {[V1beta1APIService]
Maybe Text
Maybe V1ListMeta
v1beta1APIServiceListMetadata :: Maybe V1ListMeta
v1beta1APIServiceListKind :: Maybe Text
v1beta1APIServiceListItems :: [V1beta1APIService]
v1beta1APIServiceListApiVersion :: Maybe Text
v1beta1APIServiceListMetadata :: V1beta1APIServiceList -> Maybe V1ListMeta
v1beta1APIServiceListKind :: V1beta1APIServiceList -> Maybe Text
v1beta1APIServiceListItems :: V1beta1APIServiceList -> [V1beta1APIService]
v1beta1APIServiceListApiVersion :: V1beta1APIServiceList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1APIServiceListApiVersion
      , Text
"items" Text -> [V1beta1APIService] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1APIService]
v1beta1APIServiceListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1APIServiceListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1APIServiceListMetadata
      ]


-- | Construct a value of type 'V1beta1APIServiceList' (by applying it's required fields, if any)
mkV1beta1APIServiceList
  :: [V1beta1APIService] -- ^ 'v1beta1APIServiceListItems' 
  -> V1beta1APIServiceList
mkV1beta1APIServiceList :: [V1beta1APIService] -> V1beta1APIServiceList
mkV1beta1APIServiceList [V1beta1APIService]
v1beta1APIServiceListItems =
  V1beta1APIServiceList :: Maybe Text
-> [V1beta1APIService]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1APIServiceList
V1beta1APIServiceList
  { v1beta1APIServiceListApiVersion :: Maybe Text
v1beta1APIServiceListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1APIService]
v1beta1APIServiceListItems :: [V1beta1APIService]
v1beta1APIServiceListItems :: [V1beta1APIService]
v1beta1APIServiceListItems
  , v1beta1APIServiceListKind :: Maybe Text
v1beta1APIServiceListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1APIServiceListMetadata :: Maybe V1ListMeta
v1beta1APIServiceListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1APIServiceSpec
-- | V1beta1APIServiceSpec
-- APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.
data V1beta1APIServiceSpec = V1beta1APIServiceSpec
  { V1beta1APIServiceSpec -> Maybe ByteArray
v1beta1APIServiceSpecCaBundle :: !(Maybe ByteArray) -- ^ "caBundle" - CABundle is a PEM encoded CA bundle which will be used to validate an API server&#39;s serving certificate. If unspecified, system trust roots on the apiserver are used.
  , V1beta1APIServiceSpec -> Maybe Text
v1beta1APIServiceSpecGroup :: !(Maybe Text) -- ^ "group" - Group is the API group name this server hosts
  , V1beta1APIServiceSpec -> Int
v1beta1APIServiceSpecGroupPriorityMinimum :: !(Int) -- ^ /Required/ "groupPriorityMinimum" - GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object.  (v1.bar before v1.foo) We&#39;d recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s
  , V1beta1APIServiceSpec -> Maybe Bool
v1beta1APIServiceSpecInsecureSkipTlsVerify :: !(Maybe Bool) -- ^ "insecureSkipTLSVerify" - InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged.  You should use the CABundle instead.
  , V1beta1APIServiceSpec -> ApiregistrationV1beta1ServiceReference
v1beta1APIServiceSpecService :: !(ApiregistrationV1beta1ServiceReference) -- ^ /Required/ "service"
  , V1beta1APIServiceSpec -> Maybe Text
v1beta1APIServiceSpecVersion :: !(Maybe Text) -- ^ "version" - Version is the API version this server hosts.  For example, \&quot;v1\&quot;
  , V1beta1APIServiceSpec -> Int
v1beta1APIServiceSpecVersionPriority :: !(Int) -- ^ /Required/ "versionPriority" - VersionPriority controls the ordering of this API version inside of its group.  Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it&#39;s inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \&quot;kube-like\&quot;, it will sort above non \&quot;kube-like\&quot; version strings, which are ordered lexicographically. \&quot;Kube-like\&quot; versions start with a \&quot;v\&quot;, then are followed by a number (the major version), then optionally the string \&quot;alpha\&quot; or \&quot;beta\&quot; and another number (the minor version). These are sorted first by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
  } deriving (Int -> V1beta1APIServiceSpec -> ShowS
[V1beta1APIServiceSpec] -> ShowS
V1beta1APIServiceSpec -> String
(Int -> V1beta1APIServiceSpec -> ShowS)
-> (V1beta1APIServiceSpec -> String)
-> ([V1beta1APIServiceSpec] -> ShowS)
-> Show V1beta1APIServiceSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1APIServiceSpec] -> ShowS
$cshowList :: [V1beta1APIServiceSpec] -> ShowS
show :: V1beta1APIServiceSpec -> String
$cshow :: V1beta1APIServiceSpec -> String
showsPrec :: Int -> V1beta1APIServiceSpec -> ShowS
$cshowsPrec :: Int -> V1beta1APIServiceSpec -> ShowS
P.Show, V1beta1APIServiceSpec -> V1beta1APIServiceSpec -> Bool
(V1beta1APIServiceSpec -> V1beta1APIServiceSpec -> Bool)
-> (V1beta1APIServiceSpec -> V1beta1APIServiceSpec -> Bool)
-> Eq V1beta1APIServiceSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1APIServiceSpec -> V1beta1APIServiceSpec -> Bool
$c/= :: V1beta1APIServiceSpec -> V1beta1APIServiceSpec -> Bool
== :: V1beta1APIServiceSpec -> V1beta1APIServiceSpec -> Bool
$c== :: V1beta1APIServiceSpec -> V1beta1APIServiceSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1APIServiceSpec
instance A.FromJSON V1beta1APIServiceSpec where
  parseJSON :: Value -> Parser V1beta1APIServiceSpec
parseJSON = String
-> (Object -> Parser V1beta1APIServiceSpec)
-> Value
-> Parser V1beta1APIServiceSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1APIServiceSpec" ((Object -> Parser V1beta1APIServiceSpec)
 -> Value -> Parser V1beta1APIServiceSpec)
-> (Object -> Parser V1beta1APIServiceSpec)
-> Value
-> Parser V1beta1APIServiceSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe ByteArray
-> Maybe Text
-> Int
-> Maybe Bool
-> ApiregistrationV1beta1ServiceReference
-> Maybe Text
-> Int
-> V1beta1APIServiceSpec
V1beta1APIServiceSpec
      (Maybe ByteArray
 -> Maybe Text
 -> Int
 -> Maybe Bool
 -> ApiregistrationV1beta1ServiceReference
 -> Maybe Text
 -> Int
 -> V1beta1APIServiceSpec)
-> Parser (Maybe ByteArray)
-> Parser
     (Maybe Text
      -> Int
      -> Maybe Bool
      -> ApiregistrationV1beta1ServiceReference
      -> Maybe Text
      -> Int
      -> V1beta1APIServiceSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe ByteArray)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"caBundle")
      Parser
  (Maybe Text
   -> Int
   -> Maybe Bool
   -> ApiregistrationV1beta1ServiceReference
   -> Maybe Text
   -> Int
   -> V1beta1APIServiceSpec)
-> Parser (Maybe Text)
-> Parser
     (Int
      -> Maybe Bool
      -> ApiregistrationV1beta1ServiceReference
      -> Maybe Text
      -> Int
      -> V1beta1APIServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"group")
      Parser
  (Int
   -> Maybe Bool
   -> ApiregistrationV1beta1ServiceReference
   -> Maybe Text
   -> Int
   -> V1beta1APIServiceSpec)
-> Parser Int
-> Parser
     (Maybe Bool
      -> ApiregistrationV1beta1ServiceReference
      -> Maybe Text
      -> Int
      -> V1beta1APIServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"groupPriorityMinimum")
      Parser
  (Maybe Bool
   -> ApiregistrationV1beta1ServiceReference
   -> Maybe Text
   -> Int
   -> V1beta1APIServiceSpec)
-> Parser (Maybe Bool)
-> Parser
     (ApiregistrationV1beta1ServiceReference
      -> Maybe Text -> Int -> V1beta1APIServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"insecureSkipTLSVerify")
      Parser
  (ApiregistrationV1beta1ServiceReference
   -> Maybe Text -> Int -> V1beta1APIServiceSpec)
-> Parser ApiregistrationV1beta1ServiceReference
-> Parser (Maybe Text -> Int -> V1beta1APIServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser ApiregistrationV1beta1ServiceReference
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"service")
      Parser (Maybe Text -> Int -> V1beta1APIServiceSpec)
-> Parser (Maybe Text) -> Parser (Int -> V1beta1APIServiceSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"version")
      Parser (Int -> V1beta1APIServiceSpec)
-> Parser Int -> Parser V1beta1APIServiceSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"versionPriority")

-- | ToJSON V1beta1APIServiceSpec
instance A.ToJSON V1beta1APIServiceSpec where
  toJSON :: V1beta1APIServiceSpec -> Value
toJSON V1beta1APIServiceSpec {Int
Maybe Bool
Maybe Text
Maybe ByteArray
ApiregistrationV1beta1ServiceReference
v1beta1APIServiceSpecVersionPriority :: Int
v1beta1APIServiceSpecVersion :: Maybe Text
v1beta1APIServiceSpecService :: ApiregistrationV1beta1ServiceReference
v1beta1APIServiceSpecInsecureSkipTlsVerify :: Maybe Bool
v1beta1APIServiceSpecGroupPriorityMinimum :: Int
v1beta1APIServiceSpecGroup :: Maybe Text
v1beta1APIServiceSpecCaBundle :: Maybe ByteArray
v1beta1APIServiceSpecVersionPriority :: V1beta1APIServiceSpec -> Int
v1beta1APIServiceSpecVersion :: V1beta1APIServiceSpec -> Maybe Text
v1beta1APIServiceSpecService :: V1beta1APIServiceSpec -> ApiregistrationV1beta1ServiceReference
v1beta1APIServiceSpecInsecureSkipTlsVerify :: V1beta1APIServiceSpec -> Maybe Bool
v1beta1APIServiceSpecGroupPriorityMinimum :: V1beta1APIServiceSpec -> Int
v1beta1APIServiceSpecGroup :: V1beta1APIServiceSpec -> Maybe Text
v1beta1APIServiceSpecCaBundle :: V1beta1APIServiceSpec -> Maybe ByteArray
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"caBundle" Text -> Maybe ByteArray -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ByteArray
v1beta1APIServiceSpecCaBundle
      , Text
"group" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1APIServiceSpecGroup
      , Text
"groupPriorityMinimum" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta1APIServiceSpecGroupPriorityMinimum
      , Text
"insecureSkipTLSVerify" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta1APIServiceSpecInsecureSkipTlsVerify
      , Text
"service" Text -> ApiregistrationV1beta1ServiceReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= ApiregistrationV1beta1ServiceReference
v1beta1APIServiceSpecService
      , Text
"version" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1APIServiceSpecVersion
      , Text
"versionPriority" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta1APIServiceSpecVersionPriority
      ]


-- | Construct a value of type 'V1beta1APIServiceSpec' (by applying it's required fields, if any)
mkV1beta1APIServiceSpec
  :: Int -- ^ 'v1beta1APIServiceSpecGroupPriorityMinimum': GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object.  (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s
  -> ApiregistrationV1beta1ServiceReference -- ^ 'v1beta1APIServiceSpecService' 
  -> Int -- ^ 'v1beta1APIServiceSpecVersionPriority': VersionPriority controls the ordering of this API version inside of its group.  Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
  -> V1beta1APIServiceSpec
mkV1beta1APIServiceSpec :: Int
-> ApiregistrationV1beta1ServiceReference
-> Int
-> V1beta1APIServiceSpec
mkV1beta1APIServiceSpec Int
v1beta1APIServiceSpecGroupPriorityMinimum ApiregistrationV1beta1ServiceReference
v1beta1APIServiceSpecService Int
v1beta1APIServiceSpecVersionPriority =
  V1beta1APIServiceSpec :: Maybe ByteArray
-> Maybe Text
-> Int
-> Maybe Bool
-> ApiregistrationV1beta1ServiceReference
-> Maybe Text
-> Int
-> V1beta1APIServiceSpec
V1beta1APIServiceSpec
  { v1beta1APIServiceSpecCaBundle :: Maybe ByteArray
v1beta1APIServiceSpecCaBundle = Maybe ByteArray
forall a. Maybe a
Nothing
  , v1beta1APIServiceSpecGroup :: Maybe Text
v1beta1APIServiceSpecGroup = Maybe Text
forall a. Maybe a
Nothing
  , Int
v1beta1APIServiceSpecGroupPriorityMinimum :: Int
v1beta1APIServiceSpecGroupPriorityMinimum :: Int
v1beta1APIServiceSpecGroupPriorityMinimum
  , v1beta1APIServiceSpecInsecureSkipTlsVerify :: Maybe Bool
v1beta1APIServiceSpecInsecureSkipTlsVerify = Maybe Bool
forall a. Maybe a
Nothing
  , ApiregistrationV1beta1ServiceReference
v1beta1APIServiceSpecService :: ApiregistrationV1beta1ServiceReference
v1beta1APIServiceSpecService :: ApiregistrationV1beta1ServiceReference
v1beta1APIServiceSpecService
  , v1beta1APIServiceSpecVersion :: Maybe Text
v1beta1APIServiceSpecVersion = Maybe Text
forall a. Maybe a
Nothing
  , Int
v1beta1APIServiceSpecVersionPriority :: Int
v1beta1APIServiceSpecVersionPriority :: Int
v1beta1APIServiceSpecVersionPriority
  }

-- ** V1beta1APIServiceStatus
-- | V1beta1APIServiceStatus
-- APIServiceStatus contains derived information about an API server
data V1beta1APIServiceStatus = V1beta1APIServiceStatus
  { V1beta1APIServiceStatus -> Maybe [V1beta1APIServiceCondition]
v1beta1APIServiceStatusConditions :: !(Maybe [V1beta1APIServiceCondition]) -- ^ "conditions" - Current service state of apiService.
  } deriving (Int -> V1beta1APIServiceStatus -> ShowS
[V1beta1APIServiceStatus] -> ShowS
V1beta1APIServiceStatus -> String
(Int -> V1beta1APIServiceStatus -> ShowS)
-> (V1beta1APIServiceStatus -> String)
-> ([V1beta1APIServiceStatus] -> ShowS)
-> Show V1beta1APIServiceStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1APIServiceStatus] -> ShowS
$cshowList :: [V1beta1APIServiceStatus] -> ShowS
show :: V1beta1APIServiceStatus -> String
$cshow :: V1beta1APIServiceStatus -> String
showsPrec :: Int -> V1beta1APIServiceStatus -> ShowS
$cshowsPrec :: Int -> V1beta1APIServiceStatus -> ShowS
P.Show, V1beta1APIServiceStatus -> V1beta1APIServiceStatus -> Bool
(V1beta1APIServiceStatus -> V1beta1APIServiceStatus -> Bool)
-> (V1beta1APIServiceStatus -> V1beta1APIServiceStatus -> Bool)
-> Eq V1beta1APIServiceStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1APIServiceStatus -> V1beta1APIServiceStatus -> Bool
$c/= :: V1beta1APIServiceStatus -> V1beta1APIServiceStatus -> Bool
== :: V1beta1APIServiceStatus -> V1beta1APIServiceStatus -> Bool
$c== :: V1beta1APIServiceStatus -> V1beta1APIServiceStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1APIServiceStatus
instance A.FromJSON V1beta1APIServiceStatus where
  parseJSON :: Value -> Parser V1beta1APIServiceStatus
parseJSON = String
-> (Object -> Parser V1beta1APIServiceStatus)
-> Value
-> Parser V1beta1APIServiceStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1APIServiceStatus" ((Object -> Parser V1beta1APIServiceStatus)
 -> Value -> Parser V1beta1APIServiceStatus)
-> (Object -> Parser V1beta1APIServiceStatus)
-> Value
-> Parser V1beta1APIServiceStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1beta1APIServiceCondition] -> V1beta1APIServiceStatus
V1beta1APIServiceStatus
      (Maybe [V1beta1APIServiceCondition] -> V1beta1APIServiceStatus)
-> Parser (Maybe [V1beta1APIServiceCondition])
-> Parser V1beta1APIServiceStatus
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1beta1APIServiceCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")

-- | ToJSON V1beta1APIServiceStatus
instance A.ToJSON V1beta1APIServiceStatus where
  toJSON :: V1beta1APIServiceStatus -> Value
toJSON V1beta1APIServiceStatus {Maybe [V1beta1APIServiceCondition]
v1beta1APIServiceStatusConditions :: Maybe [V1beta1APIServiceCondition]
v1beta1APIServiceStatusConditions :: V1beta1APIServiceStatus -> Maybe [V1beta1APIServiceCondition]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"conditions" Text -> Maybe [V1beta1APIServiceCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1APIServiceCondition]
v1beta1APIServiceStatusConditions
      ]


-- | Construct a value of type 'V1beta1APIServiceStatus' (by applying it's required fields, if any)
mkV1beta1APIServiceStatus
  :: V1beta1APIServiceStatus
mkV1beta1APIServiceStatus :: V1beta1APIServiceStatus
mkV1beta1APIServiceStatus =
  V1beta1APIServiceStatus :: Maybe [V1beta1APIServiceCondition] -> V1beta1APIServiceStatus
V1beta1APIServiceStatus
  { v1beta1APIServiceStatusConditions :: Maybe [V1beta1APIServiceCondition]
v1beta1APIServiceStatusConditions = Maybe [V1beta1APIServiceCondition]
forall a. Maybe a
Nothing
  }

-- ** V1beta1AggregationRule
-- | V1beta1AggregationRule
-- AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole
data V1beta1AggregationRule = V1beta1AggregationRule
  { V1beta1AggregationRule -> Maybe [V1LabelSelector]
v1beta1AggregationRuleClusterRoleSelectors :: !(Maybe [V1LabelSelector]) -- ^ "clusterRoleSelectors" - ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole&#39;s permissions will be added
  } deriving (Int -> V1beta1AggregationRule -> ShowS
[V1beta1AggregationRule] -> ShowS
V1beta1AggregationRule -> String
(Int -> V1beta1AggregationRule -> ShowS)
-> (V1beta1AggregationRule -> String)
-> ([V1beta1AggregationRule] -> ShowS)
-> Show V1beta1AggregationRule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1AggregationRule] -> ShowS
$cshowList :: [V1beta1AggregationRule] -> ShowS
show :: V1beta1AggregationRule -> String
$cshow :: V1beta1AggregationRule -> String
showsPrec :: Int -> V1beta1AggregationRule -> ShowS
$cshowsPrec :: Int -> V1beta1AggregationRule -> ShowS
P.Show, V1beta1AggregationRule -> V1beta1AggregationRule -> Bool
(V1beta1AggregationRule -> V1beta1AggregationRule -> Bool)
-> (V1beta1AggregationRule -> V1beta1AggregationRule -> Bool)
-> Eq V1beta1AggregationRule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1AggregationRule -> V1beta1AggregationRule -> Bool
$c/= :: V1beta1AggregationRule -> V1beta1AggregationRule -> Bool
== :: V1beta1AggregationRule -> V1beta1AggregationRule -> Bool
$c== :: V1beta1AggregationRule -> V1beta1AggregationRule -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1AggregationRule
instance A.FromJSON V1beta1AggregationRule where
  parseJSON :: Value -> Parser V1beta1AggregationRule
parseJSON = String
-> (Object -> Parser V1beta1AggregationRule)
-> Value
-> Parser V1beta1AggregationRule
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1AggregationRule" ((Object -> Parser V1beta1AggregationRule)
 -> Value -> Parser V1beta1AggregationRule)
-> (Object -> Parser V1beta1AggregationRule)
-> Value
-> Parser V1beta1AggregationRule
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1LabelSelector] -> V1beta1AggregationRule
V1beta1AggregationRule
      (Maybe [V1LabelSelector] -> V1beta1AggregationRule)
-> Parser (Maybe [V1LabelSelector])
-> Parser V1beta1AggregationRule
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1LabelSelector])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"clusterRoleSelectors")

-- | ToJSON V1beta1AggregationRule
instance A.ToJSON V1beta1AggregationRule where
  toJSON :: V1beta1AggregationRule -> Value
toJSON V1beta1AggregationRule {Maybe [V1LabelSelector]
v1beta1AggregationRuleClusterRoleSelectors :: Maybe [V1LabelSelector]
v1beta1AggregationRuleClusterRoleSelectors :: V1beta1AggregationRule -> Maybe [V1LabelSelector]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"clusterRoleSelectors" Text -> Maybe [V1LabelSelector] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1LabelSelector]
v1beta1AggregationRuleClusterRoleSelectors
      ]


-- | Construct a value of type 'V1beta1AggregationRule' (by applying it's required fields, if any)
mkV1beta1AggregationRule
  :: V1beta1AggregationRule
mkV1beta1AggregationRule :: V1beta1AggregationRule
mkV1beta1AggregationRule =
  V1beta1AggregationRule :: Maybe [V1LabelSelector] -> V1beta1AggregationRule
V1beta1AggregationRule
  { v1beta1AggregationRuleClusterRoleSelectors :: Maybe [V1LabelSelector]
v1beta1AggregationRuleClusterRoleSelectors = Maybe [V1LabelSelector]
forall a. Maybe a
Nothing
  }

-- ** V1beta1CSIDriver
-- | V1beta1CSIDriver
-- CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. CSI drivers do not need to create the CSIDriver object directly. Instead they may use the cluster-driver-registrar sidecar container. When deployed with a CSI driver it automatically creates a CSIDriver object representing the driver. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.
data V1beta1CSIDriver = V1beta1CSIDriver
  { V1beta1CSIDriver -> Maybe Text
v1beta1CSIDriverApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1CSIDriver -> Maybe Text
v1beta1CSIDriverKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1CSIDriver -> Maybe V1ObjectMeta
v1beta1CSIDriverMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1CSIDriver -> V1beta1CSIDriverSpec
v1beta1CSIDriverSpec :: !(V1beta1CSIDriverSpec) -- ^ /Required/ "spec"
  } deriving (Int -> V1beta1CSIDriver -> ShowS
[V1beta1CSIDriver] -> ShowS
V1beta1CSIDriver -> String
(Int -> V1beta1CSIDriver -> ShowS)
-> (V1beta1CSIDriver -> String)
-> ([V1beta1CSIDriver] -> ShowS)
-> Show V1beta1CSIDriver
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CSIDriver] -> ShowS
$cshowList :: [V1beta1CSIDriver] -> ShowS
show :: V1beta1CSIDriver -> String
$cshow :: V1beta1CSIDriver -> String
showsPrec :: Int -> V1beta1CSIDriver -> ShowS
$cshowsPrec :: Int -> V1beta1CSIDriver -> ShowS
P.Show, V1beta1CSIDriver -> V1beta1CSIDriver -> Bool
(V1beta1CSIDriver -> V1beta1CSIDriver -> Bool)
-> (V1beta1CSIDriver -> V1beta1CSIDriver -> Bool)
-> Eq V1beta1CSIDriver
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CSIDriver -> V1beta1CSIDriver -> Bool
$c/= :: V1beta1CSIDriver -> V1beta1CSIDriver -> Bool
== :: V1beta1CSIDriver -> V1beta1CSIDriver -> Bool
$c== :: V1beta1CSIDriver -> V1beta1CSIDriver -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CSIDriver
instance A.FromJSON V1beta1CSIDriver where
  parseJSON :: Value -> Parser V1beta1CSIDriver
parseJSON = String
-> (Object -> Parser V1beta1CSIDriver)
-> Value
-> Parser V1beta1CSIDriver
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CSIDriver" ((Object -> Parser V1beta1CSIDriver)
 -> Value -> Parser V1beta1CSIDriver)
-> (Object -> Parser V1beta1CSIDriver)
-> Value
-> Parser V1beta1CSIDriver
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1CSIDriverSpec
-> V1beta1CSIDriver
V1beta1CSIDriver
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1beta1CSIDriverSpec
 -> V1beta1CSIDriver)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta -> V1beta1CSIDriverSpec -> V1beta1CSIDriver)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta -> V1beta1CSIDriverSpec -> V1beta1CSIDriver)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta -> V1beta1CSIDriverSpec -> V1beta1CSIDriver)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta -> V1beta1CSIDriverSpec -> V1beta1CSIDriver)
-> Parser (Maybe V1ObjectMeta)
-> Parser (V1beta1CSIDriverSpec -> V1beta1CSIDriver)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (V1beta1CSIDriverSpec -> V1beta1CSIDriver)
-> Parser V1beta1CSIDriverSpec -> Parser V1beta1CSIDriver
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1beta1CSIDriverSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")

-- | ToJSON V1beta1CSIDriver
instance A.ToJSON V1beta1CSIDriver where
  toJSON :: V1beta1CSIDriver -> Value
toJSON V1beta1CSIDriver {Maybe Text
Maybe V1ObjectMeta
V1beta1CSIDriverSpec
v1beta1CSIDriverSpec :: V1beta1CSIDriverSpec
v1beta1CSIDriverMetadata :: Maybe V1ObjectMeta
v1beta1CSIDriverKind :: Maybe Text
v1beta1CSIDriverApiVersion :: Maybe Text
v1beta1CSIDriverSpec :: V1beta1CSIDriver -> V1beta1CSIDriverSpec
v1beta1CSIDriverMetadata :: V1beta1CSIDriver -> Maybe V1ObjectMeta
v1beta1CSIDriverKind :: V1beta1CSIDriver -> Maybe Text
v1beta1CSIDriverApiVersion :: V1beta1CSIDriver -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CSIDriverApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CSIDriverKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1CSIDriverMetadata
      , Text
"spec" Text -> V1beta1CSIDriverSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1beta1CSIDriverSpec
v1beta1CSIDriverSpec
      ]


-- | Construct a value of type 'V1beta1CSIDriver' (by applying it's required fields, if any)
mkV1beta1CSIDriver
  :: V1beta1CSIDriverSpec -- ^ 'v1beta1CSIDriverSpec' 
  -> V1beta1CSIDriver
mkV1beta1CSIDriver :: V1beta1CSIDriverSpec -> V1beta1CSIDriver
mkV1beta1CSIDriver V1beta1CSIDriverSpec
v1beta1CSIDriverSpec =
  V1beta1CSIDriver :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1CSIDriverSpec
-> V1beta1CSIDriver
V1beta1CSIDriver
  { v1beta1CSIDriverApiVersion :: Maybe Text
v1beta1CSIDriverApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CSIDriverKind :: Maybe Text
v1beta1CSIDriverKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CSIDriverMetadata :: Maybe V1ObjectMeta
v1beta1CSIDriverMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1beta1CSIDriverSpec
v1beta1CSIDriverSpec :: V1beta1CSIDriverSpec
v1beta1CSIDriverSpec :: V1beta1CSIDriverSpec
v1beta1CSIDriverSpec
  }

-- ** V1beta1CSIDriverList
-- | V1beta1CSIDriverList
-- CSIDriverList is a collection of CSIDriver objects.
data V1beta1CSIDriverList = V1beta1CSIDriverList
  { V1beta1CSIDriverList -> Maybe Text
v1beta1CSIDriverListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1CSIDriverList -> [V1beta1CSIDriver]
v1beta1CSIDriverListItems :: !([V1beta1CSIDriver]) -- ^ /Required/ "items" - items is the list of CSIDriver
  , V1beta1CSIDriverList -> Maybe Text
v1beta1CSIDriverListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1CSIDriverList -> Maybe V1ListMeta
v1beta1CSIDriverListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1CSIDriverList -> ShowS
[V1beta1CSIDriverList] -> ShowS
V1beta1CSIDriverList -> String
(Int -> V1beta1CSIDriverList -> ShowS)
-> (V1beta1CSIDriverList -> String)
-> ([V1beta1CSIDriverList] -> ShowS)
-> Show V1beta1CSIDriverList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CSIDriverList] -> ShowS
$cshowList :: [V1beta1CSIDriverList] -> ShowS
show :: V1beta1CSIDriverList -> String
$cshow :: V1beta1CSIDriverList -> String
showsPrec :: Int -> V1beta1CSIDriverList -> ShowS
$cshowsPrec :: Int -> V1beta1CSIDriverList -> ShowS
P.Show, V1beta1CSIDriverList -> V1beta1CSIDriverList -> Bool
(V1beta1CSIDriverList -> V1beta1CSIDriverList -> Bool)
-> (V1beta1CSIDriverList -> V1beta1CSIDriverList -> Bool)
-> Eq V1beta1CSIDriverList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CSIDriverList -> V1beta1CSIDriverList -> Bool
$c/= :: V1beta1CSIDriverList -> V1beta1CSIDriverList -> Bool
== :: V1beta1CSIDriverList -> V1beta1CSIDriverList -> Bool
$c== :: V1beta1CSIDriverList -> V1beta1CSIDriverList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CSIDriverList
instance A.FromJSON V1beta1CSIDriverList where
  parseJSON :: Value -> Parser V1beta1CSIDriverList
parseJSON = String
-> (Object -> Parser V1beta1CSIDriverList)
-> Value
-> Parser V1beta1CSIDriverList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CSIDriverList" ((Object -> Parser V1beta1CSIDriverList)
 -> Value -> Parser V1beta1CSIDriverList)
-> (Object -> Parser V1beta1CSIDriverList)
-> Value
-> Parser V1beta1CSIDriverList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1CSIDriver]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1CSIDriverList
V1beta1CSIDriverList
      (Maybe Text
 -> [V1beta1CSIDriver]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1CSIDriverList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1CSIDriver]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1CSIDriverList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1CSIDriver]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1CSIDriverList)
-> Parser [V1beta1CSIDriver]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1CSIDriverList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1CSIDriver]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1CSIDriverList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1CSIDriverList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1CSIDriverList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1CSIDriverList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1CSIDriverList
instance A.ToJSON V1beta1CSIDriverList where
  toJSON :: V1beta1CSIDriverList -> Value
toJSON V1beta1CSIDriverList {[V1beta1CSIDriver]
Maybe Text
Maybe V1ListMeta
v1beta1CSIDriverListMetadata :: Maybe V1ListMeta
v1beta1CSIDriverListKind :: Maybe Text
v1beta1CSIDriverListItems :: [V1beta1CSIDriver]
v1beta1CSIDriverListApiVersion :: Maybe Text
v1beta1CSIDriverListMetadata :: V1beta1CSIDriverList -> Maybe V1ListMeta
v1beta1CSIDriverListKind :: V1beta1CSIDriverList -> Maybe Text
v1beta1CSIDriverListItems :: V1beta1CSIDriverList -> [V1beta1CSIDriver]
v1beta1CSIDriverListApiVersion :: V1beta1CSIDriverList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CSIDriverListApiVersion
      , Text
"items" Text -> [V1beta1CSIDriver] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1CSIDriver]
v1beta1CSIDriverListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CSIDriverListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1CSIDriverListMetadata
      ]


-- | Construct a value of type 'V1beta1CSIDriverList' (by applying it's required fields, if any)
mkV1beta1CSIDriverList
  :: [V1beta1CSIDriver] -- ^ 'v1beta1CSIDriverListItems': items is the list of CSIDriver
  -> V1beta1CSIDriverList
mkV1beta1CSIDriverList :: [V1beta1CSIDriver] -> V1beta1CSIDriverList
mkV1beta1CSIDriverList [V1beta1CSIDriver]
v1beta1CSIDriverListItems =
  V1beta1CSIDriverList :: Maybe Text
-> [V1beta1CSIDriver]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1CSIDriverList
V1beta1CSIDriverList
  { v1beta1CSIDriverListApiVersion :: Maybe Text
v1beta1CSIDriverListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1CSIDriver]
v1beta1CSIDriverListItems :: [V1beta1CSIDriver]
v1beta1CSIDriverListItems :: [V1beta1CSIDriver]
v1beta1CSIDriverListItems
  , v1beta1CSIDriverListKind :: Maybe Text
v1beta1CSIDriverListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CSIDriverListMetadata :: Maybe V1ListMeta
v1beta1CSIDriverListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1CSIDriverSpec
-- | V1beta1CSIDriverSpec
-- CSIDriverSpec is the specification of a CSIDriver.
data V1beta1CSIDriverSpec = V1beta1CSIDriverSpec
  { V1beta1CSIDriverSpec -> Maybe Bool
v1beta1CSIDriverSpecAttachRequired :: !(Maybe Bool) -- ^ "attachRequired" - attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.
  , V1beta1CSIDriverSpec -> Maybe Bool
v1beta1CSIDriverSpecPodInfoOnMount :: !(Maybe Bool) -- ^ "podInfoOnMount" - If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \&quot;csi.storage.k8s.io/pod.name\&quot;: pod.Name \&quot;csi.storage.k8s.io/pod.namespace\&quot;: pod.Namespace \&quot;csi.storage.k8s.io/pod.uid\&quot;: string(pod.UID) \&quot;csi.storage.k8s.io/ephemeral\&quot;: \&quot;true\&quot; iff the volume is an ephemeral inline volume                                 defined by a CSIVolumeSource, otherwise \&quot;false\&quot;  \&quot;csi.storage.k8s.io/ephemeral\&quot; is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \&quot;Persistent\&quot; and \&quot;Ephemeral\&quot; VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn&#39;t support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.
  , V1beta1CSIDriverSpec -> Maybe [Text]
v1beta1CSIDriverSpecVolumeLifecycleModes :: !(Maybe [Text]) -- ^ "volumeLifecycleModes" - VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \&quot;Persistent\&quot;, which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \&quot;Ephemeral\&quot;. In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.
  } deriving (Int -> V1beta1CSIDriverSpec -> ShowS
[V1beta1CSIDriverSpec] -> ShowS
V1beta1CSIDriverSpec -> String
(Int -> V1beta1CSIDriverSpec -> ShowS)
-> (V1beta1CSIDriverSpec -> String)
-> ([V1beta1CSIDriverSpec] -> ShowS)
-> Show V1beta1CSIDriverSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CSIDriverSpec] -> ShowS
$cshowList :: [V1beta1CSIDriverSpec] -> ShowS
show :: V1beta1CSIDriverSpec -> String
$cshow :: V1beta1CSIDriverSpec -> String
showsPrec :: Int -> V1beta1CSIDriverSpec -> ShowS
$cshowsPrec :: Int -> V1beta1CSIDriverSpec -> ShowS
P.Show, V1beta1CSIDriverSpec -> V1beta1CSIDriverSpec -> Bool
(V1beta1CSIDriverSpec -> V1beta1CSIDriverSpec -> Bool)
-> (V1beta1CSIDriverSpec -> V1beta1CSIDriverSpec -> Bool)
-> Eq V1beta1CSIDriverSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CSIDriverSpec -> V1beta1CSIDriverSpec -> Bool
$c/= :: V1beta1CSIDriverSpec -> V1beta1CSIDriverSpec -> Bool
== :: V1beta1CSIDriverSpec -> V1beta1CSIDriverSpec -> Bool
$c== :: V1beta1CSIDriverSpec -> V1beta1CSIDriverSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CSIDriverSpec
instance A.FromJSON V1beta1CSIDriverSpec where
  parseJSON :: Value -> Parser V1beta1CSIDriverSpec
parseJSON = String
-> (Object -> Parser V1beta1CSIDriverSpec)
-> Value
-> Parser V1beta1CSIDriverSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CSIDriverSpec" ((Object -> Parser V1beta1CSIDriverSpec)
 -> Value -> Parser V1beta1CSIDriverSpec)
-> (Object -> Parser V1beta1CSIDriverSpec)
-> Value
-> Parser V1beta1CSIDriverSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Bool -> Maybe Bool -> Maybe [Text] -> V1beta1CSIDriverSpec
V1beta1CSIDriverSpec
      (Maybe Bool -> Maybe Bool -> Maybe [Text] -> V1beta1CSIDriverSpec)
-> Parser (Maybe Bool)
-> Parser (Maybe Bool -> Maybe [Text] -> V1beta1CSIDriverSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"attachRequired")
      Parser (Maybe Bool -> Maybe [Text] -> V1beta1CSIDriverSpec)
-> Parser (Maybe Bool)
-> Parser (Maybe [Text] -> V1beta1CSIDriverSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"podInfoOnMount")
      Parser (Maybe [Text] -> V1beta1CSIDriverSpec)
-> Parser (Maybe [Text]) -> Parser V1beta1CSIDriverSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeLifecycleModes")

-- | ToJSON V1beta1CSIDriverSpec
instance A.ToJSON V1beta1CSIDriverSpec where
  toJSON :: V1beta1CSIDriverSpec -> Value
toJSON V1beta1CSIDriverSpec {Maybe Bool
Maybe [Text]
v1beta1CSIDriverSpecVolumeLifecycleModes :: Maybe [Text]
v1beta1CSIDriverSpecPodInfoOnMount :: Maybe Bool
v1beta1CSIDriverSpecAttachRequired :: Maybe Bool
v1beta1CSIDriverSpecVolumeLifecycleModes :: V1beta1CSIDriverSpec -> Maybe [Text]
v1beta1CSIDriverSpecPodInfoOnMount :: V1beta1CSIDriverSpec -> Maybe Bool
v1beta1CSIDriverSpecAttachRequired :: V1beta1CSIDriverSpec -> Maybe Bool
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"attachRequired" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta1CSIDriverSpecAttachRequired
      , Text
"podInfoOnMount" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta1CSIDriverSpecPodInfoOnMount
      , Text
"volumeLifecycleModes" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1CSIDriverSpecVolumeLifecycleModes
      ]


-- | Construct a value of type 'V1beta1CSIDriverSpec' (by applying it's required fields, if any)
mkV1beta1CSIDriverSpec
  :: V1beta1CSIDriverSpec
mkV1beta1CSIDriverSpec :: V1beta1CSIDriverSpec
mkV1beta1CSIDriverSpec =
  V1beta1CSIDriverSpec :: Maybe Bool -> Maybe Bool -> Maybe [Text] -> V1beta1CSIDriverSpec
V1beta1CSIDriverSpec
  { v1beta1CSIDriverSpecAttachRequired :: Maybe Bool
v1beta1CSIDriverSpecAttachRequired = Maybe Bool
forall a. Maybe a
Nothing
  , v1beta1CSIDriverSpecPodInfoOnMount :: Maybe Bool
v1beta1CSIDriverSpecPodInfoOnMount = Maybe Bool
forall a. Maybe a
Nothing
  , v1beta1CSIDriverSpecVolumeLifecycleModes :: Maybe [Text]
v1beta1CSIDriverSpecVolumeLifecycleModes = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1beta1CSINode
-- | V1beta1CSINode
-- CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.
data V1beta1CSINode = V1beta1CSINode
  { V1beta1CSINode -> Maybe Text
v1beta1CSINodeApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1CSINode -> Maybe Text
v1beta1CSINodeKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1CSINode -> Maybe V1ObjectMeta
v1beta1CSINodeMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1CSINode -> V1beta1CSINodeSpec
v1beta1CSINodeSpec :: !(V1beta1CSINodeSpec) -- ^ /Required/ "spec"
  } deriving (Int -> V1beta1CSINode -> ShowS
[V1beta1CSINode] -> ShowS
V1beta1CSINode -> String
(Int -> V1beta1CSINode -> ShowS)
-> (V1beta1CSINode -> String)
-> ([V1beta1CSINode] -> ShowS)
-> Show V1beta1CSINode
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CSINode] -> ShowS
$cshowList :: [V1beta1CSINode] -> ShowS
show :: V1beta1CSINode -> String
$cshow :: V1beta1CSINode -> String
showsPrec :: Int -> V1beta1CSINode -> ShowS
$cshowsPrec :: Int -> V1beta1CSINode -> ShowS
P.Show, V1beta1CSINode -> V1beta1CSINode -> Bool
(V1beta1CSINode -> V1beta1CSINode -> Bool)
-> (V1beta1CSINode -> V1beta1CSINode -> Bool) -> Eq V1beta1CSINode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CSINode -> V1beta1CSINode -> Bool
$c/= :: V1beta1CSINode -> V1beta1CSINode -> Bool
== :: V1beta1CSINode -> V1beta1CSINode -> Bool
$c== :: V1beta1CSINode -> V1beta1CSINode -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CSINode
instance A.FromJSON V1beta1CSINode where
  parseJSON :: Value -> Parser V1beta1CSINode
parseJSON = String
-> (Object -> Parser V1beta1CSINode)
-> Value
-> Parser V1beta1CSINode
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CSINode" ((Object -> Parser V1beta1CSINode)
 -> Value -> Parser V1beta1CSINode)
-> (Object -> Parser V1beta1CSINode)
-> Value
-> Parser V1beta1CSINode
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1CSINodeSpec
-> V1beta1CSINode
V1beta1CSINode
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1beta1CSINodeSpec
 -> V1beta1CSINode)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta -> V1beta1CSINodeSpec -> V1beta1CSINode)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta -> V1beta1CSINodeSpec -> V1beta1CSINode)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta -> V1beta1CSINodeSpec -> V1beta1CSINode)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ObjectMeta -> V1beta1CSINodeSpec -> V1beta1CSINode)
-> Parser (Maybe V1ObjectMeta)
-> Parser (V1beta1CSINodeSpec -> V1beta1CSINode)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (V1beta1CSINodeSpec -> V1beta1CSINode)
-> Parser V1beta1CSINodeSpec -> Parser V1beta1CSINode
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1beta1CSINodeSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")

-- | ToJSON V1beta1CSINode
instance A.ToJSON V1beta1CSINode where
  toJSON :: V1beta1CSINode -> Value
toJSON V1beta1CSINode {Maybe Text
Maybe V1ObjectMeta
V1beta1CSINodeSpec
v1beta1CSINodeSpec :: V1beta1CSINodeSpec
v1beta1CSINodeMetadata :: Maybe V1ObjectMeta
v1beta1CSINodeKind :: Maybe Text
v1beta1CSINodeApiVersion :: Maybe Text
v1beta1CSINodeSpec :: V1beta1CSINode -> V1beta1CSINodeSpec
v1beta1CSINodeMetadata :: V1beta1CSINode -> Maybe V1ObjectMeta
v1beta1CSINodeKind :: V1beta1CSINode -> Maybe Text
v1beta1CSINodeApiVersion :: V1beta1CSINode -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CSINodeApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CSINodeKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1CSINodeMetadata
      , Text
"spec" Text -> V1beta1CSINodeSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1beta1CSINodeSpec
v1beta1CSINodeSpec
      ]


-- | Construct a value of type 'V1beta1CSINode' (by applying it's required fields, if any)
mkV1beta1CSINode
  :: V1beta1CSINodeSpec -- ^ 'v1beta1CSINodeSpec' 
  -> V1beta1CSINode
mkV1beta1CSINode :: V1beta1CSINodeSpec -> V1beta1CSINode
mkV1beta1CSINode V1beta1CSINodeSpec
v1beta1CSINodeSpec =
  V1beta1CSINode :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1CSINodeSpec
-> V1beta1CSINode
V1beta1CSINode
  { v1beta1CSINodeApiVersion :: Maybe Text
v1beta1CSINodeApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CSINodeKind :: Maybe Text
v1beta1CSINodeKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CSINodeMetadata :: Maybe V1ObjectMeta
v1beta1CSINodeMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1beta1CSINodeSpec
v1beta1CSINodeSpec :: V1beta1CSINodeSpec
v1beta1CSINodeSpec :: V1beta1CSINodeSpec
v1beta1CSINodeSpec
  }

-- ** V1beta1CSINodeDriver
-- | V1beta1CSINodeDriver
-- CSINodeDriver holds information about the specification of one CSI driver installed on a node
data V1beta1CSINodeDriver = V1beta1CSINodeDriver
  { V1beta1CSINodeDriver -> Maybe V1beta1VolumeNodeResources
v1beta1CSINodeDriverAllocatable :: !(Maybe V1beta1VolumeNodeResources) -- ^ "allocatable"
  , V1beta1CSINodeDriver -> Text
v1beta1CSINodeDriverName :: !(Text) -- ^ /Required/ "name" - This is the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.
  , V1beta1CSINodeDriver -> Text
v1beta1CSINodeDriverNodeId :: !(Text) -- ^ /Required/ "nodeID" - nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \&quot;node1\&quot;, but the storage system may refer to the same node as \&quot;nodeA\&quot;. When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \&quot;nodeA\&quot; instead of \&quot;node1\&quot;. This field is required.
  , V1beta1CSINodeDriver -> Maybe [Text]
v1beta1CSINodeDriverTopologyKeys :: !(Maybe [Text]) -- ^ "topologyKeys" - topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \&quot;company.com/zone\&quot;, \&quot;company.com/region\&quot;). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.
  } deriving (Int -> V1beta1CSINodeDriver -> ShowS
[V1beta1CSINodeDriver] -> ShowS
V1beta1CSINodeDriver -> String
(Int -> V1beta1CSINodeDriver -> ShowS)
-> (V1beta1CSINodeDriver -> String)
-> ([V1beta1CSINodeDriver] -> ShowS)
-> Show V1beta1CSINodeDriver
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CSINodeDriver] -> ShowS
$cshowList :: [V1beta1CSINodeDriver] -> ShowS
show :: V1beta1CSINodeDriver -> String
$cshow :: V1beta1CSINodeDriver -> String
showsPrec :: Int -> V1beta1CSINodeDriver -> ShowS
$cshowsPrec :: Int -> V1beta1CSINodeDriver -> ShowS
P.Show, V1beta1CSINodeDriver -> V1beta1CSINodeDriver -> Bool
(V1beta1CSINodeDriver -> V1beta1CSINodeDriver -> Bool)
-> (V1beta1CSINodeDriver -> V1beta1CSINodeDriver -> Bool)
-> Eq V1beta1CSINodeDriver
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CSINodeDriver -> V1beta1CSINodeDriver -> Bool
$c/= :: V1beta1CSINodeDriver -> V1beta1CSINodeDriver -> Bool
== :: V1beta1CSINodeDriver -> V1beta1CSINodeDriver -> Bool
$c== :: V1beta1CSINodeDriver -> V1beta1CSINodeDriver -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CSINodeDriver
instance A.FromJSON V1beta1CSINodeDriver where
  parseJSON :: Value -> Parser V1beta1CSINodeDriver
parseJSON = String
-> (Object -> Parser V1beta1CSINodeDriver)
-> Value
-> Parser V1beta1CSINodeDriver
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CSINodeDriver" ((Object -> Parser V1beta1CSINodeDriver)
 -> Value -> Parser V1beta1CSINodeDriver)
-> (Object -> Parser V1beta1CSINodeDriver)
-> Value
-> Parser V1beta1CSINodeDriver
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1beta1VolumeNodeResources
-> Text -> Text -> Maybe [Text] -> V1beta1CSINodeDriver
V1beta1CSINodeDriver
      (Maybe V1beta1VolumeNodeResources
 -> Text -> Text -> Maybe [Text] -> V1beta1CSINodeDriver)
-> Parser (Maybe V1beta1VolumeNodeResources)
-> Parser (Text -> Text -> Maybe [Text] -> V1beta1CSINodeDriver)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1beta1VolumeNodeResources)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allocatable")
      Parser (Text -> Text -> Maybe [Text] -> V1beta1CSINodeDriver)
-> Parser Text
-> Parser (Text -> Maybe [Text] -> V1beta1CSINodeDriver)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser (Text -> Maybe [Text] -> V1beta1CSINodeDriver)
-> Parser Text -> Parser (Maybe [Text] -> V1beta1CSINodeDriver)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"nodeID")
      Parser (Maybe [Text] -> V1beta1CSINodeDriver)
-> Parser (Maybe [Text]) -> Parser V1beta1CSINodeDriver
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"topologyKeys")

-- | ToJSON V1beta1CSINodeDriver
instance A.ToJSON V1beta1CSINodeDriver where
  toJSON :: V1beta1CSINodeDriver -> Value
toJSON V1beta1CSINodeDriver {Maybe [Text]
Maybe V1beta1VolumeNodeResources
Text
v1beta1CSINodeDriverTopologyKeys :: Maybe [Text]
v1beta1CSINodeDriverNodeId :: Text
v1beta1CSINodeDriverName :: Text
v1beta1CSINodeDriverAllocatable :: Maybe V1beta1VolumeNodeResources
v1beta1CSINodeDriverTopologyKeys :: V1beta1CSINodeDriver -> Maybe [Text]
v1beta1CSINodeDriverNodeId :: V1beta1CSINodeDriver -> Text
v1beta1CSINodeDriverName :: V1beta1CSINodeDriver -> Text
v1beta1CSINodeDriverAllocatable :: V1beta1CSINodeDriver -> Maybe V1beta1VolumeNodeResources
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"allocatable" Text -> Maybe V1beta1VolumeNodeResources -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1VolumeNodeResources
v1beta1CSINodeDriverAllocatable
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CSINodeDriverName
      , Text
"nodeID" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CSINodeDriverNodeId
      , Text
"topologyKeys" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1CSINodeDriverTopologyKeys
      ]


-- | Construct a value of type 'V1beta1CSINodeDriver' (by applying it's required fields, if any)
mkV1beta1CSINodeDriver
  :: Text -- ^ 'v1beta1CSINodeDriverName': This is the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.
  -> Text -- ^ 'v1beta1CSINodeDriverNodeId': nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.
  -> V1beta1CSINodeDriver
mkV1beta1CSINodeDriver :: Text -> Text -> V1beta1CSINodeDriver
mkV1beta1CSINodeDriver Text
v1beta1CSINodeDriverName Text
v1beta1CSINodeDriverNodeId =
  V1beta1CSINodeDriver :: Maybe V1beta1VolumeNodeResources
-> Text -> Text -> Maybe [Text] -> V1beta1CSINodeDriver
V1beta1CSINodeDriver
  { v1beta1CSINodeDriverAllocatable :: Maybe V1beta1VolumeNodeResources
v1beta1CSINodeDriverAllocatable = Maybe V1beta1VolumeNodeResources
forall a. Maybe a
Nothing
  , Text
v1beta1CSINodeDriverName :: Text
v1beta1CSINodeDriverName :: Text
v1beta1CSINodeDriverName
  , Text
v1beta1CSINodeDriverNodeId :: Text
v1beta1CSINodeDriverNodeId :: Text
v1beta1CSINodeDriverNodeId
  , v1beta1CSINodeDriverTopologyKeys :: Maybe [Text]
v1beta1CSINodeDriverTopologyKeys = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1beta1CSINodeList
-- | V1beta1CSINodeList
-- CSINodeList is a collection of CSINode objects.
data V1beta1CSINodeList = V1beta1CSINodeList
  { V1beta1CSINodeList -> Maybe Text
v1beta1CSINodeListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1CSINodeList -> [V1beta1CSINode]
v1beta1CSINodeListItems :: !([V1beta1CSINode]) -- ^ /Required/ "items" - items is the list of CSINode
  , V1beta1CSINodeList -> Maybe Text
v1beta1CSINodeListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1CSINodeList -> Maybe V1ListMeta
v1beta1CSINodeListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1CSINodeList -> ShowS
[V1beta1CSINodeList] -> ShowS
V1beta1CSINodeList -> String
(Int -> V1beta1CSINodeList -> ShowS)
-> (V1beta1CSINodeList -> String)
-> ([V1beta1CSINodeList] -> ShowS)
-> Show V1beta1CSINodeList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CSINodeList] -> ShowS
$cshowList :: [V1beta1CSINodeList] -> ShowS
show :: V1beta1CSINodeList -> String
$cshow :: V1beta1CSINodeList -> String
showsPrec :: Int -> V1beta1CSINodeList -> ShowS
$cshowsPrec :: Int -> V1beta1CSINodeList -> ShowS
P.Show, V1beta1CSINodeList -> V1beta1CSINodeList -> Bool
(V1beta1CSINodeList -> V1beta1CSINodeList -> Bool)
-> (V1beta1CSINodeList -> V1beta1CSINodeList -> Bool)
-> Eq V1beta1CSINodeList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CSINodeList -> V1beta1CSINodeList -> Bool
$c/= :: V1beta1CSINodeList -> V1beta1CSINodeList -> Bool
== :: V1beta1CSINodeList -> V1beta1CSINodeList -> Bool
$c== :: V1beta1CSINodeList -> V1beta1CSINodeList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CSINodeList
instance A.FromJSON V1beta1CSINodeList where
  parseJSON :: Value -> Parser V1beta1CSINodeList
parseJSON = String
-> (Object -> Parser V1beta1CSINodeList)
-> Value
-> Parser V1beta1CSINodeList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CSINodeList" ((Object -> Parser V1beta1CSINodeList)
 -> Value -> Parser V1beta1CSINodeList)
-> (Object -> Parser V1beta1CSINodeList)
-> Value
-> Parser V1beta1CSINodeList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1CSINode]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1CSINodeList
V1beta1CSINodeList
      (Maybe Text
 -> [V1beta1CSINode]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1CSINodeList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1CSINode]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1CSINodeList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1CSINode]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1CSINodeList)
-> Parser [V1beta1CSINode]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1CSINodeList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1CSINode]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1CSINodeList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1CSINodeList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1CSINodeList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1CSINodeList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1CSINodeList
instance A.ToJSON V1beta1CSINodeList where
  toJSON :: V1beta1CSINodeList -> Value
toJSON V1beta1CSINodeList {[V1beta1CSINode]
Maybe Text
Maybe V1ListMeta
v1beta1CSINodeListMetadata :: Maybe V1ListMeta
v1beta1CSINodeListKind :: Maybe Text
v1beta1CSINodeListItems :: [V1beta1CSINode]
v1beta1CSINodeListApiVersion :: Maybe Text
v1beta1CSINodeListMetadata :: V1beta1CSINodeList -> Maybe V1ListMeta
v1beta1CSINodeListKind :: V1beta1CSINodeList -> Maybe Text
v1beta1CSINodeListItems :: V1beta1CSINodeList -> [V1beta1CSINode]
v1beta1CSINodeListApiVersion :: V1beta1CSINodeList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CSINodeListApiVersion
      , Text
"items" Text -> [V1beta1CSINode] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1CSINode]
v1beta1CSINodeListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CSINodeListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1CSINodeListMetadata
      ]


-- | Construct a value of type 'V1beta1CSINodeList' (by applying it's required fields, if any)
mkV1beta1CSINodeList
  :: [V1beta1CSINode] -- ^ 'v1beta1CSINodeListItems': items is the list of CSINode
  -> V1beta1CSINodeList
mkV1beta1CSINodeList :: [V1beta1CSINode] -> V1beta1CSINodeList
mkV1beta1CSINodeList [V1beta1CSINode]
v1beta1CSINodeListItems =
  V1beta1CSINodeList :: Maybe Text
-> [V1beta1CSINode]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1CSINodeList
V1beta1CSINodeList
  { v1beta1CSINodeListApiVersion :: Maybe Text
v1beta1CSINodeListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1CSINode]
v1beta1CSINodeListItems :: [V1beta1CSINode]
v1beta1CSINodeListItems :: [V1beta1CSINode]
v1beta1CSINodeListItems
  , v1beta1CSINodeListKind :: Maybe Text
v1beta1CSINodeListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CSINodeListMetadata :: Maybe V1ListMeta
v1beta1CSINodeListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1CSINodeSpec
-- | V1beta1CSINodeSpec
-- CSINodeSpec holds information about the specification of all CSI drivers installed on a node
data V1beta1CSINodeSpec = V1beta1CSINodeSpec
  { V1beta1CSINodeSpec -> [V1beta1CSINodeDriver]
v1beta1CSINodeSpecDrivers :: !([V1beta1CSINodeDriver]) -- ^ /Required/ "drivers" - drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.
  } deriving (Int -> V1beta1CSINodeSpec -> ShowS
[V1beta1CSINodeSpec] -> ShowS
V1beta1CSINodeSpec -> String
(Int -> V1beta1CSINodeSpec -> ShowS)
-> (V1beta1CSINodeSpec -> String)
-> ([V1beta1CSINodeSpec] -> ShowS)
-> Show V1beta1CSINodeSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CSINodeSpec] -> ShowS
$cshowList :: [V1beta1CSINodeSpec] -> ShowS
show :: V1beta1CSINodeSpec -> String
$cshow :: V1beta1CSINodeSpec -> String
showsPrec :: Int -> V1beta1CSINodeSpec -> ShowS
$cshowsPrec :: Int -> V1beta1CSINodeSpec -> ShowS
P.Show, V1beta1CSINodeSpec -> V1beta1CSINodeSpec -> Bool
(V1beta1CSINodeSpec -> V1beta1CSINodeSpec -> Bool)
-> (V1beta1CSINodeSpec -> V1beta1CSINodeSpec -> Bool)
-> Eq V1beta1CSINodeSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CSINodeSpec -> V1beta1CSINodeSpec -> Bool
$c/= :: V1beta1CSINodeSpec -> V1beta1CSINodeSpec -> Bool
== :: V1beta1CSINodeSpec -> V1beta1CSINodeSpec -> Bool
$c== :: V1beta1CSINodeSpec -> V1beta1CSINodeSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CSINodeSpec
instance A.FromJSON V1beta1CSINodeSpec where
  parseJSON :: Value -> Parser V1beta1CSINodeSpec
parseJSON = String
-> (Object -> Parser V1beta1CSINodeSpec)
-> Value
-> Parser V1beta1CSINodeSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CSINodeSpec" ((Object -> Parser V1beta1CSINodeSpec)
 -> Value -> Parser V1beta1CSINodeSpec)
-> (Object -> Parser V1beta1CSINodeSpec)
-> Value
-> Parser V1beta1CSINodeSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    [V1beta1CSINodeDriver] -> V1beta1CSINodeSpec
V1beta1CSINodeSpec
      ([V1beta1CSINodeDriver] -> V1beta1CSINodeSpec)
-> Parser [V1beta1CSINodeDriver] -> Parser V1beta1CSINodeSpec
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser [V1beta1CSINodeDriver]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"drivers")

-- | ToJSON V1beta1CSINodeSpec
instance A.ToJSON V1beta1CSINodeSpec where
  toJSON :: V1beta1CSINodeSpec -> Value
toJSON V1beta1CSINodeSpec {[V1beta1CSINodeDriver]
v1beta1CSINodeSpecDrivers :: [V1beta1CSINodeDriver]
v1beta1CSINodeSpecDrivers :: V1beta1CSINodeSpec -> [V1beta1CSINodeDriver]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"drivers" Text -> [V1beta1CSINodeDriver] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1CSINodeDriver]
v1beta1CSINodeSpecDrivers
      ]


-- | Construct a value of type 'V1beta1CSINodeSpec' (by applying it's required fields, if any)
mkV1beta1CSINodeSpec
  :: [V1beta1CSINodeDriver] -- ^ 'v1beta1CSINodeSpecDrivers': drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.
  -> V1beta1CSINodeSpec
mkV1beta1CSINodeSpec :: [V1beta1CSINodeDriver] -> V1beta1CSINodeSpec
mkV1beta1CSINodeSpec [V1beta1CSINodeDriver]
v1beta1CSINodeSpecDrivers =
  V1beta1CSINodeSpec :: [V1beta1CSINodeDriver] -> V1beta1CSINodeSpec
V1beta1CSINodeSpec
  { [V1beta1CSINodeDriver]
v1beta1CSINodeSpecDrivers :: [V1beta1CSINodeDriver]
v1beta1CSINodeSpecDrivers :: [V1beta1CSINodeDriver]
v1beta1CSINodeSpecDrivers
  }

-- ** V1beta1CertificateSigningRequest
-- | V1beta1CertificateSigningRequest
-- Describes a certificate signing request
data V1beta1CertificateSigningRequest = V1beta1CertificateSigningRequest
  { V1beta1CertificateSigningRequest -> Maybe Text
v1beta1CertificateSigningRequestApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1CertificateSigningRequest -> Maybe Text
v1beta1CertificateSigningRequestKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1CertificateSigningRequest -> Maybe V1ObjectMeta
v1beta1CertificateSigningRequestMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1CertificateSigningRequest
-> Maybe V1beta1CertificateSigningRequestSpec
v1beta1CertificateSigningRequestSpec :: !(Maybe V1beta1CertificateSigningRequestSpec) -- ^ "spec"
  , V1beta1CertificateSigningRequest
-> Maybe V1beta1CertificateSigningRequestStatus
v1beta1CertificateSigningRequestStatus :: !(Maybe V1beta1CertificateSigningRequestStatus) -- ^ "status"
  } deriving (Int -> V1beta1CertificateSigningRequest -> ShowS
[V1beta1CertificateSigningRequest] -> ShowS
V1beta1CertificateSigningRequest -> String
(Int -> V1beta1CertificateSigningRequest -> ShowS)
-> (V1beta1CertificateSigningRequest -> String)
-> ([V1beta1CertificateSigningRequest] -> ShowS)
-> Show V1beta1CertificateSigningRequest
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CertificateSigningRequest] -> ShowS
$cshowList :: [V1beta1CertificateSigningRequest] -> ShowS
show :: V1beta1CertificateSigningRequest -> String
$cshow :: V1beta1CertificateSigningRequest -> String
showsPrec :: Int -> V1beta1CertificateSigningRequest -> ShowS
$cshowsPrec :: Int -> V1beta1CertificateSigningRequest -> ShowS
P.Show, V1beta1CertificateSigningRequest
-> V1beta1CertificateSigningRequest -> Bool
(V1beta1CertificateSigningRequest
 -> V1beta1CertificateSigningRequest -> Bool)
-> (V1beta1CertificateSigningRequest
    -> V1beta1CertificateSigningRequest -> Bool)
-> Eq V1beta1CertificateSigningRequest
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CertificateSigningRequest
-> V1beta1CertificateSigningRequest -> Bool
$c/= :: V1beta1CertificateSigningRequest
-> V1beta1CertificateSigningRequest -> Bool
== :: V1beta1CertificateSigningRequest
-> V1beta1CertificateSigningRequest -> Bool
$c== :: V1beta1CertificateSigningRequest
-> V1beta1CertificateSigningRequest -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CertificateSigningRequest
instance A.FromJSON V1beta1CertificateSigningRequest where
  parseJSON :: Value -> Parser V1beta1CertificateSigningRequest
parseJSON = String
-> (Object -> Parser V1beta1CertificateSigningRequest)
-> Value
-> Parser V1beta1CertificateSigningRequest
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CertificateSigningRequest" ((Object -> Parser V1beta1CertificateSigningRequest)
 -> Value -> Parser V1beta1CertificateSigningRequest)
-> (Object -> Parser V1beta1CertificateSigningRequest)
-> Value
-> Parser V1beta1CertificateSigningRequest
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1CertificateSigningRequestSpec
-> Maybe V1beta1CertificateSigningRequestStatus
-> V1beta1CertificateSigningRequest
V1beta1CertificateSigningRequest
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1beta1CertificateSigningRequestSpec
 -> Maybe V1beta1CertificateSigningRequestStatus
 -> V1beta1CertificateSigningRequest)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1beta1CertificateSigningRequestSpec
      -> Maybe V1beta1CertificateSigningRequestStatus
      -> V1beta1CertificateSigningRequest)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1beta1CertificateSigningRequestSpec
   -> Maybe V1beta1CertificateSigningRequestStatus
   -> V1beta1CertificateSigningRequest)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1beta1CertificateSigningRequestSpec
      -> Maybe V1beta1CertificateSigningRequestStatus
      -> V1beta1CertificateSigningRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1beta1CertificateSigningRequestSpec
   -> Maybe V1beta1CertificateSigningRequestStatus
   -> V1beta1CertificateSigningRequest)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1beta1CertificateSigningRequestSpec
      -> Maybe V1beta1CertificateSigningRequestStatus
      -> V1beta1CertificateSigningRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1beta1CertificateSigningRequestSpec
   -> Maybe V1beta1CertificateSigningRequestStatus
   -> V1beta1CertificateSigningRequest)
-> Parser (Maybe V1beta1CertificateSigningRequestSpec)
-> Parser
     (Maybe V1beta1CertificateSigningRequestStatus
      -> V1beta1CertificateSigningRequest)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe V1beta1CertificateSigningRequestSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser
  (Maybe V1beta1CertificateSigningRequestStatus
   -> V1beta1CertificateSigningRequest)
-> Parser (Maybe V1beta1CertificateSigningRequestStatus)
-> Parser V1beta1CertificateSigningRequest
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe V1beta1CertificateSigningRequestStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta1CertificateSigningRequest
instance A.ToJSON V1beta1CertificateSigningRequest where
  toJSON :: V1beta1CertificateSigningRequest -> Value
toJSON V1beta1CertificateSigningRequest {Maybe Text
Maybe V1beta1CertificateSigningRequestStatus
Maybe V1beta1CertificateSigningRequestSpec
Maybe V1ObjectMeta
v1beta1CertificateSigningRequestStatus :: Maybe V1beta1CertificateSigningRequestStatus
v1beta1CertificateSigningRequestSpec :: Maybe V1beta1CertificateSigningRequestSpec
v1beta1CertificateSigningRequestMetadata :: Maybe V1ObjectMeta
v1beta1CertificateSigningRequestKind :: Maybe Text
v1beta1CertificateSigningRequestApiVersion :: Maybe Text
v1beta1CertificateSigningRequestStatus :: V1beta1CertificateSigningRequest
-> Maybe V1beta1CertificateSigningRequestStatus
v1beta1CertificateSigningRequestSpec :: V1beta1CertificateSigningRequest
-> Maybe V1beta1CertificateSigningRequestSpec
v1beta1CertificateSigningRequestMetadata :: V1beta1CertificateSigningRequest -> Maybe V1ObjectMeta
v1beta1CertificateSigningRequestKind :: V1beta1CertificateSigningRequest -> Maybe Text
v1beta1CertificateSigningRequestApiVersion :: V1beta1CertificateSigningRequest -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CertificateSigningRequestApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CertificateSigningRequestKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1CertificateSigningRequestMetadata
      , Text
"spec" Text -> Maybe V1beta1CertificateSigningRequestSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1CertificateSigningRequestSpec
v1beta1CertificateSigningRequestSpec
      , Text
"status" Text
-> Maybe V1beta1CertificateSigningRequestStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1CertificateSigningRequestStatus
v1beta1CertificateSigningRequestStatus
      ]


-- | Construct a value of type 'V1beta1CertificateSigningRequest' (by applying it's required fields, if any)
mkV1beta1CertificateSigningRequest
  :: V1beta1CertificateSigningRequest
mkV1beta1CertificateSigningRequest :: V1beta1CertificateSigningRequest
mkV1beta1CertificateSigningRequest =
  V1beta1CertificateSigningRequest :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1CertificateSigningRequestSpec
-> Maybe V1beta1CertificateSigningRequestStatus
-> V1beta1CertificateSigningRequest
V1beta1CertificateSigningRequest
  { v1beta1CertificateSigningRequestApiVersion :: Maybe Text
v1beta1CertificateSigningRequestApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CertificateSigningRequestKind :: Maybe Text
v1beta1CertificateSigningRequestKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CertificateSigningRequestMetadata :: Maybe V1ObjectMeta
v1beta1CertificateSigningRequestMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1CertificateSigningRequestSpec :: Maybe V1beta1CertificateSigningRequestSpec
v1beta1CertificateSigningRequestSpec = Maybe V1beta1CertificateSigningRequestSpec
forall a. Maybe a
Nothing
  , v1beta1CertificateSigningRequestStatus :: Maybe V1beta1CertificateSigningRequestStatus
v1beta1CertificateSigningRequestStatus = Maybe V1beta1CertificateSigningRequestStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta1CertificateSigningRequestCondition
-- | V1beta1CertificateSigningRequestCondition
data V1beta1CertificateSigningRequestCondition = V1beta1CertificateSigningRequestCondition
  { V1beta1CertificateSigningRequestCondition -> Maybe DateTime
v1beta1CertificateSigningRequestConditionLastUpdateTime :: !(Maybe DateTime) -- ^ "lastUpdateTime" - timestamp for the last update to this condition
  , V1beta1CertificateSigningRequestCondition -> Maybe Text
v1beta1CertificateSigningRequestConditionMessage :: !(Maybe Text) -- ^ "message" - human readable message with details about the request state
  , V1beta1CertificateSigningRequestCondition -> Maybe Text
v1beta1CertificateSigningRequestConditionReason :: !(Maybe Text) -- ^ "reason" - brief reason for the request state
  , V1beta1CertificateSigningRequestCondition -> Text
v1beta1CertificateSigningRequestConditionType :: !(Text) -- ^ /Required/ "type" - request approval state, currently Approved or Denied.
  } deriving (Int -> V1beta1CertificateSigningRequestCondition -> ShowS
[V1beta1CertificateSigningRequestCondition] -> ShowS
V1beta1CertificateSigningRequestCondition -> String
(Int -> V1beta1CertificateSigningRequestCondition -> ShowS)
-> (V1beta1CertificateSigningRequestCondition -> String)
-> ([V1beta1CertificateSigningRequestCondition] -> ShowS)
-> Show V1beta1CertificateSigningRequestCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CertificateSigningRequestCondition] -> ShowS
$cshowList :: [V1beta1CertificateSigningRequestCondition] -> ShowS
show :: V1beta1CertificateSigningRequestCondition -> String
$cshow :: V1beta1CertificateSigningRequestCondition -> String
showsPrec :: Int -> V1beta1CertificateSigningRequestCondition -> ShowS
$cshowsPrec :: Int -> V1beta1CertificateSigningRequestCondition -> ShowS
P.Show, V1beta1CertificateSigningRequestCondition
-> V1beta1CertificateSigningRequestCondition -> Bool
(V1beta1CertificateSigningRequestCondition
 -> V1beta1CertificateSigningRequestCondition -> Bool)
-> (V1beta1CertificateSigningRequestCondition
    -> V1beta1CertificateSigningRequestCondition -> Bool)
-> Eq V1beta1CertificateSigningRequestCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CertificateSigningRequestCondition
-> V1beta1CertificateSigningRequestCondition -> Bool
$c/= :: V1beta1CertificateSigningRequestCondition
-> V1beta1CertificateSigningRequestCondition -> Bool
== :: V1beta1CertificateSigningRequestCondition
-> V1beta1CertificateSigningRequestCondition -> Bool
$c== :: V1beta1CertificateSigningRequestCondition
-> V1beta1CertificateSigningRequestCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CertificateSigningRequestCondition
instance A.FromJSON V1beta1CertificateSigningRequestCondition where
  parseJSON :: Value -> Parser V1beta1CertificateSigningRequestCondition
parseJSON = String
-> (Object -> Parser V1beta1CertificateSigningRequestCondition)
-> Value
-> Parser V1beta1CertificateSigningRequestCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CertificateSigningRequestCondition" ((Object -> Parser V1beta1CertificateSigningRequestCondition)
 -> Value -> Parser V1beta1CertificateSigningRequestCondition)
-> (Object -> Parser V1beta1CertificateSigningRequestCondition)
-> Value
-> Parser V1beta1CertificateSigningRequestCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> V1beta1CertificateSigningRequestCondition
V1beta1CertificateSigningRequestCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> V1beta1CertificateSigningRequestCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text -> Text -> V1beta1CertificateSigningRequestCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastUpdateTime")
      Parser
  (Maybe Text
   -> Maybe Text -> Text -> V1beta1CertificateSigningRequestCondition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Text -> V1beta1CertificateSigningRequestCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser
  (Maybe Text -> Text -> V1beta1CertificateSigningRequestCondition)
-> Parser (Maybe Text)
-> Parser (Text -> V1beta1CertificateSigningRequestCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> V1beta1CertificateSigningRequestCondition)
-> Parser Text -> Parser V1beta1CertificateSigningRequestCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1beta1CertificateSigningRequestCondition
instance A.ToJSON V1beta1CertificateSigningRequestCondition where
  toJSON :: V1beta1CertificateSigningRequestCondition -> Value
toJSON V1beta1CertificateSigningRequestCondition {Maybe Text
Maybe DateTime
Text
v1beta1CertificateSigningRequestConditionType :: Text
v1beta1CertificateSigningRequestConditionReason :: Maybe Text
v1beta1CertificateSigningRequestConditionMessage :: Maybe Text
v1beta1CertificateSigningRequestConditionLastUpdateTime :: Maybe DateTime
v1beta1CertificateSigningRequestConditionType :: V1beta1CertificateSigningRequestCondition -> Text
v1beta1CertificateSigningRequestConditionReason :: V1beta1CertificateSigningRequestCondition -> Maybe Text
v1beta1CertificateSigningRequestConditionMessage :: V1beta1CertificateSigningRequestCondition -> Maybe Text
v1beta1CertificateSigningRequestConditionLastUpdateTime :: V1beta1CertificateSigningRequestCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastUpdateTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta1CertificateSigningRequestConditionLastUpdateTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CertificateSigningRequestConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CertificateSigningRequestConditionReason
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CertificateSigningRequestConditionType
      ]


-- | Construct a value of type 'V1beta1CertificateSigningRequestCondition' (by applying it's required fields, if any)
mkV1beta1CertificateSigningRequestCondition
  :: Text -- ^ 'v1beta1CertificateSigningRequestConditionType': request approval state, currently Approved or Denied.
  -> V1beta1CertificateSigningRequestCondition
mkV1beta1CertificateSigningRequestCondition :: Text -> V1beta1CertificateSigningRequestCondition
mkV1beta1CertificateSigningRequestCondition Text
v1beta1CertificateSigningRequestConditionType =
  V1beta1CertificateSigningRequestCondition :: Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> V1beta1CertificateSigningRequestCondition
V1beta1CertificateSigningRequestCondition
  { v1beta1CertificateSigningRequestConditionLastUpdateTime :: Maybe DateTime
v1beta1CertificateSigningRequestConditionLastUpdateTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1beta1CertificateSigningRequestConditionMessage :: Maybe Text
v1beta1CertificateSigningRequestConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CertificateSigningRequestConditionReason :: Maybe Text
v1beta1CertificateSigningRequestConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta1CertificateSigningRequestConditionType :: Text
v1beta1CertificateSigningRequestConditionType :: Text
v1beta1CertificateSigningRequestConditionType
  }

-- ** V1beta1CertificateSigningRequestList
-- | V1beta1CertificateSigningRequestList
data V1beta1CertificateSigningRequestList = V1beta1CertificateSigningRequestList
  { V1beta1CertificateSigningRequestList -> Maybe Text
v1beta1CertificateSigningRequestListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1CertificateSigningRequestList
-> [V1beta1CertificateSigningRequest]
v1beta1CertificateSigningRequestListItems :: !([V1beta1CertificateSigningRequest]) -- ^ /Required/ "items"
  , V1beta1CertificateSigningRequestList -> Maybe Text
v1beta1CertificateSigningRequestListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1CertificateSigningRequestList -> Maybe V1ListMeta
v1beta1CertificateSigningRequestListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1CertificateSigningRequestList -> ShowS
[V1beta1CertificateSigningRequestList] -> ShowS
V1beta1CertificateSigningRequestList -> String
(Int -> V1beta1CertificateSigningRequestList -> ShowS)
-> (V1beta1CertificateSigningRequestList -> String)
-> ([V1beta1CertificateSigningRequestList] -> ShowS)
-> Show V1beta1CertificateSigningRequestList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CertificateSigningRequestList] -> ShowS
$cshowList :: [V1beta1CertificateSigningRequestList] -> ShowS
show :: V1beta1CertificateSigningRequestList -> String
$cshow :: V1beta1CertificateSigningRequestList -> String
showsPrec :: Int -> V1beta1CertificateSigningRequestList -> ShowS
$cshowsPrec :: Int -> V1beta1CertificateSigningRequestList -> ShowS
P.Show, V1beta1CertificateSigningRequestList
-> V1beta1CertificateSigningRequestList -> Bool
(V1beta1CertificateSigningRequestList
 -> V1beta1CertificateSigningRequestList -> Bool)
-> (V1beta1CertificateSigningRequestList
    -> V1beta1CertificateSigningRequestList -> Bool)
-> Eq V1beta1CertificateSigningRequestList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CertificateSigningRequestList
-> V1beta1CertificateSigningRequestList -> Bool
$c/= :: V1beta1CertificateSigningRequestList
-> V1beta1CertificateSigningRequestList -> Bool
== :: V1beta1CertificateSigningRequestList
-> V1beta1CertificateSigningRequestList -> Bool
$c== :: V1beta1CertificateSigningRequestList
-> V1beta1CertificateSigningRequestList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CertificateSigningRequestList
instance A.FromJSON V1beta1CertificateSigningRequestList where
  parseJSON :: Value -> Parser V1beta1CertificateSigningRequestList
parseJSON = String
-> (Object -> Parser V1beta1CertificateSigningRequestList)
-> Value
-> Parser V1beta1CertificateSigningRequestList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CertificateSigningRequestList" ((Object -> Parser V1beta1CertificateSigningRequestList)
 -> Value -> Parser V1beta1CertificateSigningRequestList)
-> (Object -> Parser V1beta1CertificateSigningRequestList)
-> Value
-> Parser V1beta1CertificateSigningRequestList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1CertificateSigningRequest]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1CertificateSigningRequestList
V1beta1CertificateSigningRequestList
      (Maybe Text
 -> [V1beta1CertificateSigningRequest]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1CertificateSigningRequestList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1CertificateSigningRequest]
      -> Maybe Text
      -> Maybe V1ListMeta
      -> V1beta1CertificateSigningRequestList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1CertificateSigningRequest]
   -> Maybe Text
   -> Maybe V1ListMeta
   -> V1beta1CertificateSigningRequestList)
-> Parser [V1beta1CertificateSigningRequest]
-> Parser
     (Maybe Text
      -> Maybe V1ListMeta -> V1beta1CertificateSigningRequestList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1CertificateSigningRequest]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text
   -> Maybe V1ListMeta -> V1beta1CertificateSigningRequestList)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ListMeta -> V1beta1CertificateSigningRequestList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1CertificateSigningRequestList)
-> Parser (Maybe V1ListMeta)
-> Parser V1beta1CertificateSigningRequestList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1CertificateSigningRequestList
instance A.ToJSON V1beta1CertificateSigningRequestList where
  toJSON :: V1beta1CertificateSigningRequestList -> Value
toJSON V1beta1CertificateSigningRequestList {[V1beta1CertificateSigningRequest]
Maybe Text
Maybe V1ListMeta
v1beta1CertificateSigningRequestListMetadata :: Maybe V1ListMeta
v1beta1CertificateSigningRequestListKind :: Maybe Text
v1beta1CertificateSigningRequestListItems :: [V1beta1CertificateSigningRequest]
v1beta1CertificateSigningRequestListApiVersion :: Maybe Text
v1beta1CertificateSigningRequestListMetadata :: V1beta1CertificateSigningRequestList -> Maybe V1ListMeta
v1beta1CertificateSigningRequestListKind :: V1beta1CertificateSigningRequestList -> Maybe Text
v1beta1CertificateSigningRequestListItems :: V1beta1CertificateSigningRequestList
-> [V1beta1CertificateSigningRequest]
v1beta1CertificateSigningRequestListApiVersion :: V1beta1CertificateSigningRequestList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CertificateSigningRequestListApiVersion
      , Text
"items" Text -> [V1beta1CertificateSigningRequest] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1CertificateSigningRequest]
v1beta1CertificateSigningRequestListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CertificateSigningRequestListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1CertificateSigningRequestListMetadata
      ]


-- | Construct a value of type 'V1beta1CertificateSigningRequestList' (by applying it's required fields, if any)
mkV1beta1CertificateSigningRequestList
  :: [V1beta1CertificateSigningRequest] -- ^ 'v1beta1CertificateSigningRequestListItems' 
  -> V1beta1CertificateSigningRequestList
mkV1beta1CertificateSigningRequestList :: [V1beta1CertificateSigningRequest]
-> V1beta1CertificateSigningRequestList
mkV1beta1CertificateSigningRequestList [V1beta1CertificateSigningRequest]
v1beta1CertificateSigningRequestListItems =
  V1beta1CertificateSigningRequestList :: Maybe Text
-> [V1beta1CertificateSigningRequest]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1CertificateSigningRequestList
V1beta1CertificateSigningRequestList
  { v1beta1CertificateSigningRequestListApiVersion :: Maybe Text
v1beta1CertificateSigningRequestListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1CertificateSigningRequest]
v1beta1CertificateSigningRequestListItems :: [V1beta1CertificateSigningRequest]
v1beta1CertificateSigningRequestListItems :: [V1beta1CertificateSigningRequest]
v1beta1CertificateSigningRequestListItems
  , v1beta1CertificateSigningRequestListKind :: Maybe Text
v1beta1CertificateSigningRequestListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CertificateSigningRequestListMetadata :: Maybe V1ListMeta
v1beta1CertificateSigningRequestListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1CertificateSigningRequestSpec
-- | V1beta1CertificateSigningRequestSpec
-- This information is immutable after the request is created. Only the Request and Usages fields can be set on creation, other fields are derived by Kubernetes and cannot be modified by users.
data V1beta1CertificateSigningRequestSpec = V1beta1CertificateSigningRequestSpec
  { V1beta1CertificateSigningRequestSpec -> Maybe (Map String [Text])
v1beta1CertificateSigningRequestSpecExtra :: !(Maybe (Map.Map String [Text])) -- ^ "extra" - Extra information about the requesting user. See user.Info interface for details.
  , V1beta1CertificateSigningRequestSpec -> Maybe [Text]
v1beta1CertificateSigningRequestSpecGroups :: !(Maybe [Text]) -- ^ "groups" - Group information about the requesting user. See user.Info interface for details.
  , V1beta1CertificateSigningRequestSpec -> ByteArray
v1beta1CertificateSigningRequestSpecRequest :: !(ByteArray) -- ^ /Required/ "request" - Base64-encoded PKCS#10 CSR data
  , V1beta1CertificateSigningRequestSpec -> Maybe Text
v1beta1CertificateSigningRequestSpecUid :: !(Maybe Text) -- ^ "uid" - UID information about the requesting user. See user.Info interface for details.
  , V1beta1CertificateSigningRequestSpec -> Maybe [Text]
v1beta1CertificateSigningRequestSpecUsages :: !(Maybe [Text]) -- ^ "usages" - allowedUsages specifies a set of usage contexts the key will be valid for. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3      https://tools.ietf.org/html/rfc5280#section-4.2.1.12
  , V1beta1CertificateSigningRequestSpec -> Maybe Text
v1beta1CertificateSigningRequestSpecUsername :: !(Maybe Text) -- ^ "username" - Information about the requesting user. See user.Info interface for details.
  } deriving (Int -> V1beta1CertificateSigningRequestSpec -> ShowS
[V1beta1CertificateSigningRequestSpec] -> ShowS
V1beta1CertificateSigningRequestSpec -> String
(Int -> V1beta1CertificateSigningRequestSpec -> ShowS)
-> (V1beta1CertificateSigningRequestSpec -> String)
-> ([V1beta1CertificateSigningRequestSpec] -> ShowS)
-> Show V1beta1CertificateSigningRequestSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CertificateSigningRequestSpec] -> ShowS
$cshowList :: [V1beta1CertificateSigningRequestSpec] -> ShowS
show :: V1beta1CertificateSigningRequestSpec -> String
$cshow :: V1beta1CertificateSigningRequestSpec -> String
showsPrec :: Int -> V1beta1CertificateSigningRequestSpec -> ShowS
$cshowsPrec :: Int -> V1beta1CertificateSigningRequestSpec -> ShowS
P.Show, V1beta1CertificateSigningRequestSpec
-> V1beta1CertificateSigningRequestSpec -> Bool
(V1beta1CertificateSigningRequestSpec
 -> V1beta1CertificateSigningRequestSpec -> Bool)
-> (V1beta1CertificateSigningRequestSpec
    -> V1beta1CertificateSigningRequestSpec -> Bool)
-> Eq V1beta1CertificateSigningRequestSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CertificateSigningRequestSpec
-> V1beta1CertificateSigningRequestSpec -> Bool
$c/= :: V1beta1CertificateSigningRequestSpec
-> V1beta1CertificateSigningRequestSpec -> Bool
== :: V1beta1CertificateSigningRequestSpec
-> V1beta1CertificateSigningRequestSpec -> Bool
$c== :: V1beta1CertificateSigningRequestSpec
-> V1beta1CertificateSigningRequestSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CertificateSigningRequestSpec
instance A.FromJSON V1beta1CertificateSigningRequestSpec where
  parseJSON :: Value -> Parser V1beta1CertificateSigningRequestSpec
parseJSON = String
-> (Object -> Parser V1beta1CertificateSigningRequestSpec)
-> Value
-> Parser V1beta1CertificateSigningRequestSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CertificateSigningRequestSpec" ((Object -> Parser V1beta1CertificateSigningRequestSpec)
 -> Value -> Parser V1beta1CertificateSigningRequestSpec)
-> (Object -> Parser V1beta1CertificateSigningRequestSpec)
-> Value
-> Parser V1beta1CertificateSigningRequestSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe (Map String [Text])
-> Maybe [Text]
-> ByteArray
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> V1beta1CertificateSigningRequestSpec
V1beta1CertificateSigningRequestSpec
      (Maybe (Map String [Text])
 -> Maybe [Text]
 -> ByteArray
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe Text
 -> V1beta1CertificateSigningRequestSpec)
-> Parser (Maybe (Map String [Text]))
-> Parser
     (Maybe [Text]
      -> ByteArray
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> V1beta1CertificateSigningRequestSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe (Map String [Text]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"extra")
      Parser
  (Maybe [Text]
   -> ByteArray
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> V1beta1CertificateSigningRequestSpec)
-> Parser (Maybe [Text])
-> Parser
     (ByteArray
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> V1beta1CertificateSigningRequestSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"groups")
      Parser
  (ByteArray
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> V1beta1CertificateSigningRequestSpec)
-> Parser ByteArray
-> Parser
     (Maybe Text
      -> Maybe [Text]
      -> Maybe Text
      -> V1beta1CertificateSigningRequestSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser ByteArray
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"request")
      Parser
  (Maybe Text
   -> Maybe [Text]
   -> Maybe Text
   -> V1beta1CertificateSigningRequestSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Text]
      -> Maybe Text -> V1beta1CertificateSigningRequestSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"uid")
      Parser
  (Maybe [Text]
   -> Maybe Text -> V1beta1CertificateSigningRequestSpec)
-> Parser (Maybe [Text])
-> Parser (Maybe Text -> V1beta1CertificateSigningRequestSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"usages")
      Parser (Maybe Text -> V1beta1CertificateSigningRequestSpec)
-> Parser (Maybe Text)
-> Parser V1beta1CertificateSigningRequestSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"username")

-- | ToJSON V1beta1CertificateSigningRequestSpec
instance A.ToJSON V1beta1CertificateSigningRequestSpec where
  toJSON :: V1beta1CertificateSigningRequestSpec -> Value
toJSON V1beta1CertificateSigningRequestSpec {Maybe [Text]
Maybe Text
Maybe (Map String [Text])
ByteArray
v1beta1CertificateSigningRequestSpecUsername :: Maybe Text
v1beta1CertificateSigningRequestSpecUsages :: Maybe [Text]
v1beta1CertificateSigningRequestSpecUid :: Maybe Text
v1beta1CertificateSigningRequestSpecRequest :: ByteArray
v1beta1CertificateSigningRequestSpecGroups :: Maybe [Text]
v1beta1CertificateSigningRequestSpecExtra :: Maybe (Map String [Text])
v1beta1CertificateSigningRequestSpecUsername :: V1beta1CertificateSigningRequestSpec -> Maybe Text
v1beta1CertificateSigningRequestSpecUsages :: V1beta1CertificateSigningRequestSpec -> Maybe [Text]
v1beta1CertificateSigningRequestSpecUid :: V1beta1CertificateSigningRequestSpec -> Maybe Text
v1beta1CertificateSigningRequestSpecRequest :: V1beta1CertificateSigningRequestSpec -> ByteArray
v1beta1CertificateSigningRequestSpecGroups :: V1beta1CertificateSigningRequestSpec -> Maybe [Text]
v1beta1CertificateSigningRequestSpecExtra :: V1beta1CertificateSigningRequestSpec -> Maybe (Map String [Text])
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"extra" Text -> Maybe (Map String [Text]) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String [Text])
v1beta1CertificateSigningRequestSpecExtra
      , Text
"groups" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1CertificateSigningRequestSpecGroups
      , Text
"request" Text -> ByteArray -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= ByteArray
v1beta1CertificateSigningRequestSpecRequest
      , Text
"uid" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CertificateSigningRequestSpecUid
      , Text
"usages" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1CertificateSigningRequestSpecUsages
      , Text
"username" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CertificateSigningRequestSpecUsername
      ]


-- | Construct a value of type 'V1beta1CertificateSigningRequestSpec' (by applying it's required fields, if any)
mkV1beta1CertificateSigningRequestSpec
  :: ByteArray -- ^ 'v1beta1CertificateSigningRequestSpecRequest': Base64-encoded PKCS#10 CSR data
  -> V1beta1CertificateSigningRequestSpec
mkV1beta1CertificateSigningRequestSpec :: ByteArray -> V1beta1CertificateSigningRequestSpec
mkV1beta1CertificateSigningRequestSpec ByteArray
v1beta1CertificateSigningRequestSpecRequest =
  V1beta1CertificateSigningRequestSpec :: Maybe (Map String [Text])
-> Maybe [Text]
-> ByteArray
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> V1beta1CertificateSigningRequestSpec
V1beta1CertificateSigningRequestSpec
  { v1beta1CertificateSigningRequestSpecExtra :: Maybe (Map String [Text])
v1beta1CertificateSigningRequestSpecExtra = Maybe (Map String [Text])
forall a. Maybe a
Nothing
  , v1beta1CertificateSigningRequestSpecGroups :: Maybe [Text]
v1beta1CertificateSigningRequestSpecGroups = Maybe [Text]
forall a. Maybe a
Nothing
  , ByteArray
v1beta1CertificateSigningRequestSpecRequest :: ByteArray
v1beta1CertificateSigningRequestSpecRequest :: ByteArray
v1beta1CertificateSigningRequestSpecRequest
  , v1beta1CertificateSigningRequestSpecUid :: Maybe Text
v1beta1CertificateSigningRequestSpecUid = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CertificateSigningRequestSpecUsages :: Maybe [Text]
v1beta1CertificateSigningRequestSpecUsages = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1CertificateSigningRequestSpecUsername :: Maybe Text
v1beta1CertificateSigningRequestSpecUsername = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1CertificateSigningRequestStatus
-- | V1beta1CertificateSigningRequestStatus
data V1beta1CertificateSigningRequestStatus = V1beta1CertificateSigningRequestStatus
  { V1beta1CertificateSigningRequestStatus -> Maybe ByteArray
v1beta1CertificateSigningRequestStatusCertificate :: !(Maybe ByteArray) -- ^ "certificate" - If request was approved, the controller will place the issued certificate here.
  , V1beta1CertificateSigningRequestStatus
-> Maybe [V1beta1CertificateSigningRequestCondition]
v1beta1CertificateSigningRequestStatusConditions :: !(Maybe [V1beta1CertificateSigningRequestCondition]) -- ^ "conditions" - Conditions applied to the request, such as approval or denial.
  } deriving (Int -> V1beta1CertificateSigningRequestStatus -> ShowS
[V1beta1CertificateSigningRequestStatus] -> ShowS
V1beta1CertificateSigningRequestStatus -> String
(Int -> V1beta1CertificateSigningRequestStatus -> ShowS)
-> (V1beta1CertificateSigningRequestStatus -> String)
-> ([V1beta1CertificateSigningRequestStatus] -> ShowS)
-> Show V1beta1CertificateSigningRequestStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CertificateSigningRequestStatus] -> ShowS
$cshowList :: [V1beta1CertificateSigningRequestStatus] -> ShowS
show :: V1beta1CertificateSigningRequestStatus -> String
$cshow :: V1beta1CertificateSigningRequestStatus -> String
showsPrec :: Int -> V1beta1CertificateSigningRequestStatus -> ShowS
$cshowsPrec :: Int -> V1beta1CertificateSigningRequestStatus -> ShowS
P.Show, V1beta1CertificateSigningRequestStatus
-> V1beta1CertificateSigningRequestStatus -> Bool
(V1beta1CertificateSigningRequestStatus
 -> V1beta1CertificateSigningRequestStatus -> Bool)
-> (V1beta1CertificateSigningRequestStatus
    -> V1beta1CertificateSigningRequestStatus -> Bool)
-> Eq V1beta1CertificateSigningRequestStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CertificateSigningRequestStatus
-> V1beta1CertificateSigningRequestStatus -> Bool
$c/= :: V1beta1CertificateSigningRequestStatus
-> V1beta1CertificateSigningRequestStatus -> Bool
== :: V1beta1CertificateSigningRequestStatus
-> V1beta1CertificateSigningRequestStatus -> Bool
$c== :: V1beta1CertificateSigningRequestStatus
-> V1beta1CertificateSigningRequestStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CertificateSigningRequestStatus
instance A.FromJSON V1beta1CertificateSigningRequestStatus where
  parseJSON :: Value -> Parser V1beta1CertificateSigningRequestStatus
parseJSON = String
-> (Object -> Parser V1beta1CertificateSigningRequestStatus)
-> Value
-> Parser V1beta1CertificateSigningRequestStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CertificateSigningRequestStatus" ((Object -> Parser V1beta1CertificateSigningRequestStatus)
 -> Value -> Parser V1beta1CertificateSigningRequestStatus)
-> (Object -> Parser V1beta1CertificateSigningRequestStatus)
-> Value
-> Parser V1beta1CertificateSigningRequestStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe ByteArray
-> Maybe [V1beta1CertificateSigningRequestCondition]
-> V1beta1CertificateSigningRequestStatus
V1beta1CertificateSigningRequestStatus
      (Maybe ByteArray
 -> Maybe [V1beta1CertificateSigningRequestCondition]
 -> V1beta1CertificateSigningRequestStatus)
-> Parser (Maybe ByteArray)
-> Parser
     (Maybe [V1beta1CertificateSigningRequestCondition]
      -> V1beta1CertificateSigningRequestStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe ByteArray)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"certificate")
      Parser
  (Maybe [V1beta1CertificateSigningRequestCondition]
   -> V1beta1CertificateSigningRequestStatus)
-> Parser (Maybe [V1beta1CertificateSigningRequestCondition])
-> Parser V1beta1CertificateSigningRequestStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text
-> Parser (Maybe [V1beta1CertificateSigningRequestCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")

-- | ToJSON V1beta1CertificateSigningRequestStatus
instance A.ToJSON V1beta1CertificateSigningRequestStatus where
  toJSON :: V1beta1CertificateSigningRequestStatus -> Value
toJSON V1beta1CertificateSigningRequestStatus {Maybe [V1beta1CertificateSigningRequestCondition]
Maybe ByteArray
v1beta1CertificateSigningRequestStatusConditions :: Maybe [V1beta1CertificateSigningRequestCondition]
v1beta1CertificateSigningRequestStatusCertificate :: Maybe ByteArray
v1beta1CertificateSigningRequestStatusConditions :: V1beta1CertificateSigningRequestStatus
-> Maybe [V1beta1CertificateSigningRequestCondition]
v1beta1CertificateSigningRequestStatusCertificate :: V1beta1CertificateSigningRequestStatus -> Maybe ByteArray
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"certificate" Text -> Maybe ByteArray -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ByteArray
v1beta1CertificateSigningRequestStatusCertificate
      , Text
"conditions" Text
-> Maybe [V1beta1CertificateSigningRequestCondition]
-> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1CertificateSigningRequestCondition]
v1beta1CertificateSigningRequestStatusConditions
      ]


-- | Construct a value of type 'V1beta1CertificateSigningRequestStatus' (by applying it's required fields, if any)
mkV1beta1CertificateSigningRequestStatus
  :: V1beta1CertificateSigningRequestStatus
mkV1beta1CertificateSigningRequestStatus :: V1beta1CertificateSigningRequestStatus
mkV1beta1CertificateSigningRequestStatus =
  V1beta1CertificateSigningRequestStatus :: Maybe ByteArray
-> Maybe [V1beta1CertificateSigningRequestCondition]
-> V1beta1CertificateSigningRequestStatus
V1beta1CertificateSigningRequestStatus
  { v1beta1CertificateSigningRequestStatusCertificate :: Maybe ByteArray
v1beta1CertificateSigningRequestStatusCertificate = Maybe ByteArray
forall a. Maybe a
Nothing
  , v1beta1CertificateSigningRequestStatusConditions :: Maybe [V1beta1CertificateSigningRequestCondition]
v1beta1CertificateSigningRequestStatusConditions = Maybe [V1beta1CertificateSigningRequestCondition]
forall a. Maybe a
Nothing
  }

-- ** V1beta1ClusterRole
-- | V1beta1ClusterRole
-- ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.
data V1beta1ClusterRole = V1beta1ClusterRole
  { V1beta1ClusterRole -> Maybe V1beta1AggregationRule
v1beta1ClusterRoleAggregationRule :: !(Maybe V1beta1AggregationRule) -- ^ "aggregationRule"
  , V1beta1ClusterRole -> Maybe Text
v1beta1ClusterRoleApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1ClusterRole -> Maybe Text
v1beta1ClusterRoleKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1ClusterRole -> Maybe V1ObjectMeta
v1beta1ClusterRoleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1ClusterRole -> Maybe [V1beta1PolicyRule]
v1beta1ClusterRoleRules :: !(Maybe [V1beta1PolicyRule]) -- ^ "rules" - Rules holds all the PolicyRules for this ClusterRole
  } deriving (Int -> V1beta1ClusterRole -> ShowS
[V1beta1ClusterRole] -> ShowS
V1beta1ClusterRole -> String
(Int -> V1beta1ClusterRole -> ShowS)
-> (V1beta1ClusterRole -> String)
-> ([V1beta1ClusterRole] -> ShowS)
-> Show V1beta1ClusterRole
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ClusterRole] -> ShowS
$cshowList :: [V1beta1ClusterRole] -> ShowS
show :: V1beta1ClusterRole -> String
$cshow :: V1beta1ClusterRole -> String
showsPrec :: Int -> V1beta1ClusterRole -> ShowS
$cshowsPrec :: Int -> V1beta1ClusterRole -> ShowS
P.Show, V1beta1ClusterRole -> V1beta1ClusterRole -> Bool
(V1beta1ClusterRole -> V1beta1ClusterRole -> Bool)
-> (V1beta1ClusterRole -> V1beta1ClusterRole -> Bool)
-> Eq V1beta1ClusterRole
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ClusterRole -> V1beta1ClusterRole -> Bool
$c/= :: V1beta1ClusterRole -> V1beta1ClusterRole -> Bool
== :: V1beta1ClusterRole -> V1beta1ClusterRole -> Bool
$c== :: V1beta1ClusterRole -> V1beta1ClusterRole -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ClusterRole
instance A.FromJSON V1beta1ClusterRole where
  parseJSON :: Value -> Parser V1beta1ClusterRole
parseJSON = String
-> (Object -> Parser V1beta1ClusterRole)
-> Value
-> Parser V1beta1ClusterRole
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ClusterRole" ((Object -> Parser V1beta1ClusterRole)
 -> Value -> Parser V1beta1ClusterRole)
-> (Object -> Parser V1beta1ClusterRole)
-> Value
-> Parser V1beta1ClusterRole
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1beta1AggregationRule
-> Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1beta1PolicyRule]
-> V1beta1ClusterRole
V1beta1ClusterRole
      (Maybe V1beta1AggregationRule
 -> Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe [V1beta1PolicyRule]
 -> V1beta1ClusterRole)
-> Parser (Maybe V1beta1AggregationRule)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [V1beta1PolicyRule]
      -> V1beta1ClusterRole)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1beta1AggregationRule)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"aggregationRule")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [V1beta1PolicyRule]
   -> V1beta1ClusterRole)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [V1beta1PolicyRule]
      -> V1beta1ClusterRole)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [V1beta1PolicyRule]
   -> V1beta1ClusterRole)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe [V1beta1PolicyRule] -> V1beta1ClusterRole)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe [V1beta1PolicyRule] -> V1beta1ClusterRole)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe [V1beta1PolicyRule] -> V1beta1ClusterRole)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe [V1beta1PolicyRule] -> V1beta1ClusterRole)
-> Parser (Maybe [V1beta1PolicyRule]) -> Parser V1beta1ClusterRole
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1PolicyRule])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rules")

-- | ToJSON V1beta1ClusterRole
instance A.ToJSON V1beta1ClusterRole where
  toJSON :: V1beta1ClusterRole -> Value
toJSON V1beta1ClusterRole {Maybe [V1beta1PolicyRule]
Maybe Text
Maybe V1beta1AggregationRule
Maybe V1ObjectMeta
v1beta1ClusterRoleRules :: Maybe [V1beta1PolicyRule]
v1beta1ClusterRoleMetadata :: Maybe V1ObjectMeta
v1beta1ClusterRoleKind :: Maybe Text
v1beta1ClusterRoleApiVersion :: Maybe Text
v1beta1ClusterRoleAggregationRule :: Maybe V1beta1AggregationRule
v1beta1ClusterRoleRules :: V1beta1ClusterRole -> Maybe [V1beta1PolicyRule]
v1beta1ClusterRoleMetadata :: V1beta1ClusterRole -> Maybe V1ObjectMeta
v1beta1ClusterRoleKind :: V1beta1ClusterRole -> Maybe Text
v1beta1ClusterRoleApiVersion :: V1beta1ClusterRole -> Maybe Text
v1beta1ClusterRoleAggregationRule :: V1beta1ClusterRole -> Maybe V1beta1AggregationRule
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"aggregationRule" Text -> Maybe V1beta1AggregationRule -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1AggregationRule
v1beta1ClusterRoleAggregationRule
      , Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ClusterRoleApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ClusterRoleKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1ClusterRoleMetadata
      , Text
"rules" Text -> Maybe [V1beta1PolicyRule] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1PolicyRule]
v1beta1ClusterRoleRules
      ]


-- | Construct a value of type 'V1beta1ClusterRole' (by applying it's required fields, if any)
mkV1beta1ClusterRole
  :: V1beta1ClusterRole
mkV1beta1ClusterRole :: V1beta1ClusterRole
mkV1beta1ClusterRole =
  V1beta1ClusterRole :: Maybe V1beta1AggregationRule
-> Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1beta1PolicyRule]
-> V1beta1ClusterRole
V1beta1ClusterRole
  { v1beta1ClusterRoleAggregationRule :: Maybe V1beta1AggregationRule
v1beta1ClusterRoleAggregationRule = Maybe V1beta1AggregationRule
forall a. Maybe a
Nothing
  , v1beta1ClusterRoleApiVersion :: Maybe Text
v1beta1ClusterRoleApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ClusterRoleKind :: Maybe Text
v1beta1ClusterRoleKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ClusterRoleMetadata :: Maybe V1ObjectMeta
v1beta1ClusterRoleMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1ClusterRoleRules :: Maybe [V1beta1PolicyRule]
v1beta1ClusterRoleRules = Maybe [V1beta1PolicyRule]
forall a. Maybe a
Nothing
  }

-- ** V1beta1ClusterRoleBinding
-- | V1beta1ClusterRoleBinding
-- ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace, and adds who information via Subject.
data V1beta1ClusterRoleBinding = V1beta1ClusterRoleBinding
  { V1beta1ClusterRoleBinding -> Maybe Text
v1beta1ClusterRoleBindingApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1ClusterRoleBinding -> Maybe Text
v1beta1ClusterRoleBindingKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1ClusterRoleBinding -> Maybe V1ObjectMeta
v1beta1ClusterRoleBindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1ClusterRoleBinding -> V1beta1RoleRef
v1beta1ClusterRoleBindingRoleRef :: !(V1beta1RoleRef) -- ^ /Required/ "roleRef"
  , V1beta1ClusterRoleBinding -> Maybe [V1beta1Subject]
v1beta1ClusterRoleBindingSubjects :: !(Maybe [V1beta1Subject]) -- ^ "subjects" - Subjects holds references to the objects the role applies to.
  } deriving (Int -> V1beta1ClusterRoleBinding -> ShowS
[V1beta1ClusterRoleBinding] -> ShowS
V1beta1ClusterRoleBinding -> String
(Int -> V1beta1ClusterRoleBinding -> ShowS)
-> (V1beta1ClusterRoleBinding -> String)
-> ([V1beta1ClusterRoleBinding] -> ShowS)
-> Show V1beta1ClusterRoleBinding
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ClusterRoleBinding] -> ShowS
$cshowList :: [V1beta1ClusterRoleBinding] -> ShowS
show :: V1beta1ClusterRoleBinding -> String
$cshow :: V1beta1ClusterRoleBinding -> String
showsPrec :: Int -> V1beta1ClusterRoleBinding -> ShowS
$cshowsPrec :: Int -> V1beta1ClusterRoleBinding -> ShowS
P.Show, V1beta1ClusterRoleBinding -> V1beta1ClusterRoleBinding -> Bool
(V1beta1ClusterRoleBinding -> V1beta1ClusterRoleBinding -> Bool)
-> (V1beta1ClusterRoleBinding -> V1beta1ClusterRoleBinding -> Bool)
-> Eq V1beta1ClusterRoleBinding
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ClusterRoleBinding -> V1beta1ClusterRoleBinding -> Bool
$c/= :: V1beta1ClusterRoleBinding -> V1beta1ClusterRoleBinding -> Bool
== :: V1beta1ClusterRoleBinding -> V1beta1ClusterRoleBinding -> Bool
$c== :: V1beta1ClusterRoleBinding -> V1beta1ClusterRoleBinding -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ClusterRoleBinding
instance A.FromJSON V1beta1ClusterRoleBinding where
  parseJSON :: Value -> Parser V1beta1ClusterRoleBinding
parseJSON = String
-> (Object -> Parser V1beta1ClusterRoleBinding)
-> Value
-> Parser V1beta1ClusterRoleBinding
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ClusterRoleBinding" ((Object -> Parser V1beta1ClusterRoleBinding)
 -> Value -> Parser V1beta1ClusterRoleBinding)
-> (Object -> Parser V1beta1ClusterRoleBinding)
-> Value
-> Parser V1beta1ClusterRoleBinding
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1RoleRef
-> Maybe [V1beta1Subject]
-> V1beta1ClusterRoleBinding
V1beta1ClusterRoleBinding
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1beta1RoleRef
 -> Maybe [V1beta1Subject]
 -> V1beta1ClusterRoleBinding)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1beta1RoleRef
      -> Maybe [V1beta1Subject]
      -> V1beta1ClusterRoleBinding)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1beta1RoleRef
   -> Maybe [V1beta1Subject]
   -> V1beta1ClusterRoleBinding)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1beta1RoleRef
      -> Maybe [V1beta1Subject]
      -> V1beta1ClusterRoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1beta1RoleRef
   -> Maybe [V1beta1Subject]
   -> V1beta1ClusterRoleBinding)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1beta1RoleRef
      -> Maybe [V1beta1Subject] -> V1beta1ClusterRoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1beta1RoleRef
   -> Maybe [V1beta1Subject] -> V1beta1ClusterRoleBinding)
-> Parser V1beta1RoleRef
-> Parser (Maybe [V1beta1Subject] -> V1beta1ClusterRoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1beta1RoleRef
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"roleRef")
      Parser (Maybe [V1beta1Subject] -> V1beta1ClusterRoleBinding)
-> Parser (Maybe [V1beta1Subject])
-> Parser V1beta1ClusterRoleBinding
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1Subject])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"subjects")

-- | ToJSON V1beta1ClusterRoleBinding
instance A.ToJSON V1beta1ClusterRoleBinding where
  toJSON :: V1beta1ClusterRoleBinding -> Value
toJSON V1beta1ClusterRoleBinding {Maybe [V1beta1Subject]
Maybe Text
Maybe V1ObjectMeta
V1beta1RoleRef
v1beta1ClusterRoleBindingSubjects :: Maybe [V1beta1Subject]
v1beta1ClusterRoleBindingRoleRef :: V1beta1RoleRef
v1beta1ClusterRoleBindingMetadata :: Maybe V1ObjectMeta
v1beta1ClusterRoleBindingKind :: Maybe Text
v1beta1ClusterRoleBindingApiVersion :: Maybe Text
v1beta1ClusterRoleBindingSubjects :: V1beta1ClusterRoleBinding -> Maybe [V1beta1Subject]
v1beta1ClusterRoleBindingRoleRef :: V1beta1ClusterRoleBinding -> V1beta1RoleRef
v1beta1ClusterRoleBindingMetadata :: V1beta1ClusterRoleBinding -> Maybe V1ObjectMeta
v1beta1ClusterRoleBindingKind :: V1beta1ClusterRoleBinding -> Maybe Text
v1beta1ClusterRoleBindingApiVersion :: V1beta1ClusterRoleBinding -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ClusterRoleBindingApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ClusterRoleBindingKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1ClusterRoleBindingMetadata
      , Text
"roleRef" Text -> V1beta1RoleRef -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1beta1RoleRef
v1beta1ClusterRoleBindingRoleRef
      , Text
"subjects" Text -> Maybe [V1beta1Subject] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1Subject]
v1beta1ClusterRoleBindingSubjects
      ]


-- | Construct a value of type 'V1beta1ClusterRoleBinding' (by applying it's required fields, if any)
mkV1beta1ClusterRoleBinding
  :: V1beta1RoleRef -- ^ 'v1beta1ClusterRoleBindingRoleRef' 
  -> V1beta1ClusterRoleBinding
mkV1beta1ClusterRoleBinding :: V1beta1RoleRef -> V1beta1ClusterRoleBinding
mkV1beta1ClusterRoleBinding V1beta1RoleRef
v1beta1ClusterRoleBindingRoleRef =
  V1beta1ClusterRoleBinding :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1RoleRef
-> Maybe [V1beta1Subject]
-> V1beta1ClusterRoleBinding
V1beta1ClusterRoleBinding
  { v1beta1ClusterRoleBindingApiVersion :: Maybe Text
v1beta1ClusterRoleBindingApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ClusterRoleBindingKind :: Maybe Text
v1beta1ClusterRoleBindingKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ClusterRoleBindingMetadata :: Maybe V1ObjectMeta
v1beta1ClusterRoleBindingMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1beta1RoleRef
v1beta1ClusterRoleBindingRoleRef :: V1beta1RoleRef
v1beta1ClusterRoleBindingRoleRef :: V1beta1RoleRef
v1beta1ClusterRoleBindingRoleRef
  , v1beta1ClusterRoleBindingSubjects :: Maybe [V1beta1Subject]
v1beta1ClusterRoleBindingSubjects = Maybe [V1beta1Subject]
forall a. Maybe a
Nothing
  }

-- ** V1beta1ClusterRoleBindingList
-- | V1beta1ClusterRoleBindingList
-- ClusterRoleBindingList is a collection of ClusterRoleBindings
data V1beta1ClusterRoleBindingList = V1beta1ClusterRoleBindingList
  { V1beta1ClusterRoleBindingList -> Maybe Text
v1beta1ClusterRoleBindingListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1ClusterRoleBindingList -> [V1beta1ClusterRoleBinding]
v1beta1ClusterRoleBindingListItems :: !([V1beta1ClusterRoleBinding]) -- ^ /Required/ "items" - Items is a list of ClusterRoleBindings
  , V1beta1ClusterRoleBindingList -> Maybe Text
v1beta1ClusterRoleBindingListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1ClusterRoleBindingList -> Maybe V1ListMeta
v1beta1ClusterRoleBindingListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1ClusterRoleBindingList -> ShowS
[V1beta1ClusterRoleBindingList] -> ShowS
V1beta1ClusterRoleBindingList -> String
(Int -> V1beta1ClusterRoleBindingList -> ShowS)
-> (V1beta1ClusterRoleBindingList -> String)
-> ([V1beta1ClusterRoleBindingList] -> ShowS)
-> Show V1beta1ClusterRoleBindingList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ClusterRoleBindingList] -> ShowS
$cshowList :: [V1beta1ClusterRoleBindingList] -> ShowS
show :: V1beta1ClusterRoleBindingList -> String
$cshow :: V1beta1ClusterRoleBindingList -> String
showsPrec :: Int -> V1beta1ClusterRoleBindingList -> ShowS
$cshowsPrec :: Int -> V1beta1ClusterRoleBindingList -> ShowS
P.Show, V1beta1ClusterRoleBindingList
-> V1beta1ClusterRoleBindingList -> Bool
(V1beta1ClusterRoleBindingList
 -> V1beta1ClusterRoleBindingList -> Bool)
-> (V1beta1ClusterRoleBindingList
    -> V1beta1ClusterRoleBindingList -> Bool)
-> Eq V1beta1ClusterRoleBindingList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ClusterRoleBindingList
-> V1beta1ClusterRoleBindingList -> Bool
$c/= :: V1beta1ClusterRoleBindingList
-> V1beta1ClusterRoleBindingList -> Bool
== :: V1beta1ClusterRoleBindingList
-> V1beta1ClusterRoleBindingList -> Bool
$c== :: V1beta1ClusterRoleBindingList
-> V1beta1ClusterRoleBindingList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ClusterRoleBindingList
instance A.FromJSON V1beta1ClusterRoleBindingList where
  parseJSON :: Value -> Parser V1beta1ClusterRoleBindingList
parseJSON = String
-> (Object -> Parser V1beta1ClusterRoleBindingList)
-> Value
-> Parser V1beta1ClusterRoleBindingList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ClusterRoleBindingList" ((Object -> Parser V1beta1ClusterRoleBindingList)
 -> Value -> Parser V1beta1ClusterRoleBindingList)
-> (Object -> Parser V1beta1ClusterRoleBindingList)
-> Value
-> Parser V1beta1ClusterRoleBindingList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1ClusterRoleBinding]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1ClusterRoleBindingList
V1beta1ClusterRoleBindingList
      (Maybe Text
 -> [V1beta1ClusterRoleBinding]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1ClusterRoleBindingList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1ClusterRoleBinding]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1ClusterRoleBindingList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1ClusterRoleBinding]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1ClusterRoleBindingList)
-> Parser [V1beta1ClusterRoleBinding]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1beta1ClusterRoleBindingList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1ClusterRoleBinding]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> V1beta1ClusterRoleBindingList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1ClusterRoleBindingList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1ClusterRoleBindingList)
-> Parser (Maybe V1ListMeta)
-> Parser V1beta1ClusterRoleBindingList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1ClusterRoleBindingList
instance A.ToJSON V1beta1ClusterRoleBindingList where
  toJSON :: V1beta1ClusterRoleBindingList -> Value
toJSON V1beta1ClusterRoleBindingList {[V1beta1ClusterRoleBinding]
Maybe Text
Maybe V1ListMeta
v1beta1ClusterRoleBindingListMetadata :: Maybe V1ListMeta
v1beta1ClusterRoleBindingListKind :: Maybe Text
v1beta1ClusterRoleBindingListItems :: [V1beta1ClusterRoleBinding]
v1beta1ClusterRoleBindingListApiVersion :: Maybe Text
v1beta1ClusterRoleBindingListMetadata :: V1beta1ClusterRoleBindingList -> Maybe V1ListMeta
v1beta1ClusterRoleBindingListKind :: V1beta1ClusterRoleBindingList -> Maybe Text
v1beta1ClusterRoleBindingListItems :: V1beta1ClusterRoleBindingList -> [V1beta1ClusterRoleBinding]
v1beta1ClusterRoleBindingListApiVersion :: V1beta1ClusterRoleBindingList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ClusterRoleBindingListApiVersion
      , Text
"items" Text -> [V1beta1ClusterRoleBinding] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1ClusterRoleBinding]
v1beta1ClusterRoleBindingListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ClusterRoleBindingListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1ClusterRoleBindingListMetadata
      ]


-- | Construct a value of type 'V1beta1ClusterRoleBindingList' (by applying it's required fields, if any)
mkV1beta1ClusterRoleBindingList
  :: [V1beta1ClusterRoleBinding] -- ^ 'v1beta1ClusterRoleBindingListItems': Items is a list of ClusterRoleBindings
  -> V1beta1ClusterRoleBindingList
mkV1beta1ClusterRoleBindingList :: [V1beta1ClusterRoleBinding] -> V1beta1ClusterRoleBindingList
mkV1beta1ClusterRoleBindingList [V1beta1ClusterRoleBinding]
v1beta1ClusterRoleBindingListItems =
  V1beta1ClusterRoleBindingList :: Maybe Text
-> [V1beta1ClusterRoleBinding]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1ClusterRoleBindingList
V1beta1ClusterRoleBindingList
  { v1beta1ClusterRoleBindingListApiVersion :: Maybe Text
v1beta1ClusterRoleBindingListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1ClusterRoleBinding]
v1beta1ClusterRoleBindingListItems :: [V1beta1ClusterRoleBinding]
v1beta1ClusterRoleBindingListItems :: [V1beta1ClusterRoleBinding]
v1beta1ClusterRoleBindingListItems
  , v1beta1ClusterRoleBindingListKind :: Maybe Text
v1beta1ClusterRoleBindingListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ClusterRoleBindingListMetadata :: Maybe V1ListMeta
v1beta1ClusterRoleBindingListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1ClusterRoleList
-- | V1beta1ClusterRoleList
-- ClusterRoleList is a collection of ClusterRoles
data V1beta1ClusterRoleList = V1beta1ClusterRoleList
  { V1beta1ClusterRoleList -> Maybe Text
v1beta1ClusterRoleListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1ClusterRoleList -> [V1beta1ClusterRole]
v1beta1ClusterRoleListItems :: !([V1beta1ClusterRole]) -- ^ /Required/ "items" - Items is a list of ClusterRoles
  , V1beta1ClusterRoleList -> Maybe Text
v1beta1ClusterRoleListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1ClusterRoleList -> Maybe V1ListMeta
v1beta1ClusterRoleListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1ClusterRoleList -> ShowS
[V1beta1ClusterRoleList] -> ShowS
V1beta1ClusterRoleList -> String
(Int -> V1beta1ClusterRoleList -> ShowS)
-> (V1beta1ClusterRoleList -> String)
-> ([V1beta1ClusterRoleList] -> ShowS)
-> Show V1beta1ClusterRoleList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ClusterRoleList] -> ShowS
$cshowList :: [V1beta1ClusterRoleList] -> ShowS
show :: V1beta1ClusterRoleList -> String
$cshow :: V1beta1ClusterRoleList -> String
showsPrec :: Int -> V1beta1ClusterRoleList -> ShowS
$cshowsPrec :: Int -> V1beta1ClusterRoleList -> ShowS
P.Show, V1beta1ClusterRoleList -> V1beta1ClusterRoleList -> Bool
(V1beta1ClusterRoleList -> V1beta1ClusterRoleList -> Bool)
-> (V1beta1ClusterRoleList -> V1beta1ClusterRoleList -> Bool)
-> Eq V1beta1ClusterRoleList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ClusterRoleList -> V1beta1ClusterRoleList -> Bool
$c/= :: V1beta1ClusterRoleList -> V1beta1ClusterRoleList -> Bool
== :: V1beta1ClusterRoleList -> V1beta1ClusterRoleList -> Bool
$c== :: V1beta1ClusterRoleList -> V1beta1ClusterRoleList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ClusterRoleList
instance A.FromJSON V1beta1ClusterRoleList where
  parseJSON :: Value -> Parser V1beta1ClusterRoleList
parseJSON = String
-> (Object -> Parser V1beta1ClusterRoleList)
-> Value
-> Parser V1beta1ClusterRoleList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ClusterRoleList" ((Object -> Parser V1beta1ClusterRoleList)
 -> Value -> Parser V1beta1ClusterRoleList)
-> (Object -> Parser V1beta1ClusterRoleList)
-> Value
-> Parser V1beta1ClusterRoleList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1ClusterRole]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1ClusterRoleList
V1beta1ClusterRoleList
      (Maybe Text
 -> [V1beta1ClusterRole]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1ClusterRoleList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1ClusterRole]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1ClusterRoleList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1ClusterRole]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1ClusterRoleList)
-> Parser [V1beta1ClusterRole]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1beta1ClusterRoleList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1ClusterRole]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1ClusterRoleList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1ClusterRoleList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1ClusterRoleList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1ClusterRoleList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1ClusterRoleList
instance A.ToJSON V1beta1ClusterRoleList where
  toJSON :: V1beta1ClusterRoleList -> Value
toJSON V1beta1ClusterRoleList {[V1beta1ClusterRole]
Maybe Text
Maybe V1ListMeta
v1beta1ClusterRoleListMetadata :: Maybe V1ListMeta
v1beta1ClusterRoleListKind :: Maybe Text
v1beta1ClusterRoleListItems :: [V1beta1ClusterRole]
v1beta1ClusterRoleListApiVersion :: Maybe Text
v1beta1ClusterRoleListMetadata :: V1beta1ClusterRoleList -> Maybe V1ListMeta
v1beta1ClusterRoleListKind :: V1beta1ClusterRoleList -> Maybe Text
v1beta1ClusterRoleListItems :: V1beta1ClusterRoleList -> [V1beta1ClusterRole]
v1beta1ClusterRoleListApiVersion :: V1beta1ClusterRoleList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ClusterRoleListApiVersion
      , Text
"items" Text -> [V1beta1ClusterRole] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1ClusterRole]
v1beta1ClusterRoleListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ClusterRoleListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1ClusterRoleListMetadata
      ]


-- | Construct a value of type 'V1beta1ClusterRoleList' (by applying it's required fields, if any)
mkV1beta1ClusterRoleList
  :: [V1beta1ClusterRole] -- ^ 'v1beta1ClusterRoleListItems': Items is a list of ClusterRoles
  -> V1beta1ClusterRoleList
mkV1beta1ClusterRoleList :: [V1beta1ClusterRole] -> V1beta1ClusterRoleList
mkV1beta1ClusterRoleList [V1beta1ClusterRole]
v1beta1ClusterRoleListItems =
  V1beta1ClusterRoleList :: Maybe Text
-> [V1beta1ClusterRole]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1ClusterRoleList
V1beta1ClusterRoleList
  { v1beta1ClusterRoleListApiVersion :: Maybe Text
v1beta1ClusterRoleListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1ClusterRole]
v1beta1ClusterRoleListItems :: [V1beta1ClusterRole]
v1beta1ClusterRoleListItems :: [V1beta1ClusterRole]
v1beta1ClusterRoleListItems
  , v1beta1ClusterRoleListKind :: Maybe Text
v1beta1ClusterRoleListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ClusterRoleListMetadata :: Maybe V1ListMeta
v1beta1ClusterRoleListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1ControllerRevision
-- | V1beta1ControllerRevision
-- DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1beta2/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.
data V1beta1ControllerRevision = V1beta1ControllerRevision
  { V1beta1ControllerRevision -> Maybe Text
v1beta1ControllerRevisionApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1ControllerRevision -> Maybe Value
v1beta1ControllerRevisionData :: !(Maybe A.Value) -- ^ "data" - Data is the serialized representation of the state.
  , V1beta1ControllerRevision -> Maybe Text
v1beta1ControllerRevisionKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1ControllerRevision -> Maybe V1ObjectMeta
v1beta1ControllerRevisionMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1ControllerRevision -> Integer
v1beta1ControllerRevisionRevision :: !(Integer) -- ^ /Required/ "revision" - Revision indicates the revision of the state represented by Data.
  } deriving (Int -> V1beta1ControllerRevision -> ShowS
[V1beta1ControllerRevision] -> ShowS
V1beta1ControllerRevision -> String
(Int -> V1beta1ControllerRevision -> ShowS)
-> (V1beta1ControllerRevision -> String)
-> ([V1beta1ControllerRevision] -> ShowS)
-> Show V1beta1ControllerRevision
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ControllerRevision] -> ShowS
$cshowList :: [V1beta1ControllerRevision] -> ShowS
show :: V1beta1ControllerRevision -> String
$cshow :: V1beta1ControllerRevision -> String
showsPrec :: Int -> V1beta1ControllerRevision -> ShowS
$cshowsPrec :: Int -> V1beta1ControllerRevision -> ShowS
P.Show, V1beta1ControllerRevision -> V1beta1ControllerRevision -> Bool
(V1beta1ControllerRevision -> V1beta1ControllerRevision -> Bool)
-> (V1beta1ControllerRevision -> V1beta1ControllerRevision -> Bool)
-> Eq V1beta1ControllerRevision
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ControllerRevision -> V1beta1ControllerRevision -> Bool
$c/= :: V1beta1ControllerRevision -> V1beta1ControllerRevision -> Bool
== :: V1beta1ControllerRevision -> V1beta1ControllerRevision -> Bool
$c== :: V1beta1ControllerRevision -> V1beta1ControllerRevision -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ControllerRevision
instance A.FromJSON V1beta1ControllerRevision where
  parseJSON :: Value -> Parser V1beta1ControllerRevision
parseJSON = String
-> (Object -> Parser V1beta1ControllerRevision)
-> Value
-> Parser V1beta1ControllerRevision
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ControllerRevision" ((Object -> Parser V1beta1ControllerRevision)
 -> Value -> Parser V1beta1ControllerRevision)
-> (Object -> Parser V1beta1ControllerRevision)
-> Value
-> Parser V1beta1ControllerRevision
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Value
-> Maybe Text
-> Maybe V1ObjectMeta
-> Integer
-> V1beta1ControllerRevision
V1beta1ControllerRevision
      (Maybe Text
 -> Maybe Value
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Integer
 -> V1beta1ControllerRevision)
-> Parser (Maybe Text)
-> Parser
     (Maybe Value
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Integer
      -> V1beta1ControllerRevision)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Value
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Integer
   -> V1beta1ControllerRevision)
-> Parser (Maybe Value)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta -> Integer -> V1beta1ControllerRevision)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"data")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta -> Integer -> V1beta1ControllerRevision)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta -> Integer -> V1beta1ControllerRevision)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ObjectMeta -> Integer -> V1beta1ControllerRevision)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Integer -> V1beta1ControllerRevision)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Integer -> V1beta1ControllerRevision)
-> Parser Integer -> Parser V1beta1ControllerRevision
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Integer
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"revision")

-- | ToJSON V1beta1ControllerRevision
instance A.ToJSON V1beta1ControllerRevision where
  toJSON :: V1beta1ControllerRevision -> Value
toJSON V1beta1ControllerRevision {Integer
Maybe Text
Maybe Value
Maybe V1ObjectMeta
v1beta1ControllerRevisionRevision :: Integer
v1beta1ControllerRevisionMetadata :: Maybe V1ObjectMeta
v1beta1ControllerRevisionKind :: Maybe Text
v1beta1ControllerRevisionData :: Maybe Value
v1beta1ControllerRevisionApiVersion :: Maybe Text
v1beta1ControllerRevisionRevision :: V1beta1ControllerRevision -> Integer
v1beta1ControllerRevisionMetadata :: V1beta1ControllerRevision -> Maybe V1ObjectMeta
v1beta1ControllerRevisionKind :: V1beta1ControllerRevision -> Maybe Text
v1beta1ControllerRevisionData :: V1beta1ControllerRevision -> Maybe Value
v1beta1ControllerRevisionApiVersion :: V1beta1ControllerRevision -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ControllerRevisionApiVersion
      , Text
"data" Text -> Maybe Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Value
v1beta1ControllerRevisionData
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ControllerRevisionKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1ControllerRevisionMetadata
      , Text
"revision" Text -> Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Integer
v1beta1ControllerRevisionRevision
      ]


-- | Construct a value of type 'V1beta1ControllerRevision' (by applying it's required fields, if any)
mkV1beta1ControllerRevision
  :: Integer -- ^ 'v1beta1ControllerRevisionRevision': Revision indicates the revision of the state represented by Data.
  -> V1beta1ControllerRevision
mkV1beta1ControllerRevision :: Integer -> V1beta1ControllerRevision
mkV1beta1ControllerRevision Integer
v1beta1ControllerRevisionRevision =
  V1beta1ControllerRevision :: Maybe Text
-> Maybe Value
-> Maybe Text
-> Maybe V1ObjectMeta
-> Integer
-> V1beta1ControllerRevision
V1beta1ControllerRevision
  { v1beta1ControllerRevisionApiVersion :: Maybe Text
v1beta1ControllerRevisionApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ControllerRevisionData :: Maybe Value
v1beta1ControllerRevisionData = Maybe Value
forall a. Maybe a
Nothing
  , v1beta1ControllerRevisionKind :: Maybe Text
v1beta1ControllerRevisionKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ControllerRevisionMetadata :: Maybe V1ObjectMeta
v1beta1ControllerRevisionMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , Integer
v1beta1ControllerRevisionRevision :: Integer
v1beta1ControllerRevisionRevision :: Integer
v1beta1ControllerRevisionRevision
  }

-- ** V1beta1ControllerRevisionList
-- | V1beta1ControllerRevisionList
-- ControllerRevisionList is a resource containing a list of ControllerRevision objects.
data V1beta1ControllerRevisionList = V1beta1ControllerRevisionList
  { V1beta1ControllerRevisionList -> Maybe Text
v1beta1ControllerRevisionListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1ControllerRevisionList -> [V1beta1ControllerRevision]
v1beta1ControllerRevisionListItems :: !([V1beta1ControllerRevision]) -- ^ /Required/ "items" - Items is the list of ControllerRevisions
  , V1beta1ControllerRevisionList -> Maybe Text
v1beta1ControllerRevisionListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1ControllerRevisionList -> Maybe V1ListMeta
v1beta1ControllerRevisionListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1ControllerRevisionList -> ShowS
[V1beta1ControllerRevisionList] -> ShowS
V1beta1ControllerRevisionList -> String
(Int -> V1beta1ControllerRevisionList -> ShowS)
-> (V1beta1ControllerRevisionList -> String)
-> ([V1beta1ControllerRevisionList] -> ShowS)
-> Show V1beta1ControllerRevisionList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ControllerRevisionList] -> ShowS
$cshowList :: [V1beta1ControllerRevisionList] -> ShowS
show :: V1beta1ControllerRevisionList -> String
$cshow :: V1beta1ControllerRevisionList -> String
showsPrec :: Int -> V1beta1ControllerRevisionList -> ShowS
$cshowsPrec :: Int -> V1beta1ControllerRevisionList -> ShowS
P.Show, V1beta1ControllerRevisionList
-> V1beta1ControllerRevisionList -> Bool
(V1beta1ControllerRevisionList
 -> V1beta1ControllerRevisionList -> Bool)
-> (V1beta1ControllerRevisionList
    -> V1beta1ControllerRevisionList -> Bool)
-> Eq V1beta1ControllerRevisionList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ControllerRevisionList
-> V1beta1ControllerRevisionList -> Bool
$c/= :: V1beta1ControllerRevisionList
-> V1beta1ControllerRevisionList -> Bool
== :: V1beta1ControllerRevisionList
-> V1beta1ControllerRevisionList -> Bool
$c== :: V1beta1ControllerRevisionList
-> V1beta1ControllerRevisionList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ControllerRevisionList
instance A.FromJSON V1beta1ControllerRevisionList where
  parseJSON :: Value -> Parser V1beta1ControllerRevisionList
parseJSON = String
-> (Object -> Parser V1beta1ControllerRevisionList)
-> Value
-> Parser V1beta1ControllerRevisionList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ControllerRevisionList" ((Object -> Parser V1beta1ControllerRevisionList)
 -> Value -> Parser V1beta1ControllerRevisionList)
-> (Object -> Parser V1beta1ControllerRevisionList)
-> Value
-> Parser V1beta1ControllerRevisionList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1ControllerRevision]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1ControllerRevisionList
V1beta1ControllerRevisionList
      (Maybe Text
 -> [V1beta1ControllerRevision]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1ControllerRevisionList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1ControllerRevision]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1ControllerRevisionList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1ControllerRevision]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1ControllerRevisionList)
-> Parser [V1beta1ControllerRevision]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1beta1ControllerRevisionList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1ControllerRevision]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> V1beta1ControllerRevisionList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1ControllerRevisionList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1ControllerRevisionList)
-> Parser (Maybe V1ListMeta)
-> Parser V1beta1ControllerRevisionList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1ControllerRevisionList
instance A.ToJSON V1beta1ControllerRevisionList where
  toJSON :: V1beta1ControllerRevisionList -> Value
toJSON V1beta1ControllerRevisionList {[V1beta1ControllerRevision]
Maybe Text
Maybe V1ListMeta
v1beta1ControllerRevisionListMetadata :: Maybe V1ListMeta
v1beta1ControllerRevisionListKind :: Maybe Text
v1beta1ControllerRevisionListItems :: [V1beta1ControllerRevision]
v1beta1ControllerRevisionListApiVersion :: Maybe Text
v1beta1ControllerRevisionListMetadata :: V1beta1ControllerRevisionList -> Maybe V1ListMeta
v1beta1ControllerRevisionListKind :: V1beta1ControllerRevisionList -> Maybe Text
v1beta1ControllerRevisionListItems :: V1beta1ControllerRevisionList -> [V1beta1ControllerRevision]
v1beta1ControllerRevisionListApiVersion :: V1beta1ControllerRevisionList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ControllerRevisionListApiVersion
      , Text
"items" Text -> [V1beta1ControllerRevision] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1ControllerRevision]
v1beta1ControllerRevisionListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ControllerRevisionListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1ControllerRevisionListMetadata
      ]


-- | Construct a value of type 'V1beta1ControllerRevisionList' (by applying it's required fields, if any)
mkV1beta1ControllerRevisionList
  :: [V1beta1ControllerRevision] -- ^ 'v1beta1ControllerRevisionListItems': Items is the list of ControllerRevisions
  -> V1beta1ControllerRevisionList
mkV1beta1ControllerRevisionList :: [V1beta1ControllerRevision] -> V1beta1ControllerRevisionList
mkV1beta1ControllerRevisionList [V1beta1ControllerRevision]
v1beta1ControllerRevisionListItems =
  V1beta1ControllerRevisionList :: Maybe Text
-> [V1beta1ControllerRevision]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1ControllerRevisionList
V1beta1ControllerRevisionList
  { v1beta1ControllerRevisionListApiVersion :: Maybe Text
v1beta1ControllerRevisionListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1ControllerRevision]
v1beta1ControllerRevisionListItems :: [V1beta1ControllerRevision]
v1beta1ControllerRevisionListItems :: [V1beta1ControllerRevision]
v1beta1ControllerRevisionListItems
  , v1beta1ControllerRevisionListKind :: Maybe Text
v1beta1ControllerRevisionListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ControllerRevisionListMetadata :: Maybe V1ListMeta
v1beta1ControllerRevisionListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1CronJob
-- | V1beta1CronJob
-- CronJob represents the configuration of a single cron job.
data V1beta1CronJob = V1beta1CronJob
  { V1beta1CronJob -> Maybe Text
v1beta1CronJobApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1CronJob -> Maybe Text
v1beta1CronJobKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1CronJob -> Maybe V1ObjectMeta
v1beta1CronJobMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1CronJob -> Maybe V1beta1CronJobSpec
v1beta1CronJobSpec :: !(Maybe V1beta1CronJobSpec) -- ^ "spec"
  , V1beta1CronJob -> Maybe V1beta1CronJobStatus
v1beta1CronJobStatus :: !(Maybe V1beta1CronJobStatus) -- ^ "status"
  } deriving (Int -> V1beta1CronJob -> ShowS
[V1beta1CronJob] -> ShowS
V1beta1CronJob -> String
(Int -> V1beta1CronJob -> ShowS)
-> (V1beta1CronJob -> String)
-> ([V1beta1CronJob] -> ShowS)
-> Show V1beta1CronJob
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CronJob] -> ShowS
$cshowList :: [V1beta1CronJob] -> ShowS
show :: V1beta1CronJob -> String
$cshow :: V1beta1CronJob -> String
showsPrec :: Int -> V1beta1CronJob -> ShowS
$cshowsPrec :: Int -> V1beta1CronJob -> ShowS
P.Show, V1beta1CronJob -> V1beta1CronJob -> Bool
(V1beta1CronJob -> V1beta1CronJob -> Bool)
-> (V1beta1CronJob -> V1beta1CronJob -> Bool) -> Eq V1beta1CronJob
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CronJob -> V1beta1CronJob -> Bool
$c/= :: V1beta1CronJob -> V1beta1CronJob -> Bool
== :: V1beta1CronJob -> V1beta1CronJob -> Bool
$c== :: V1beta1CronJob -> V1beta1CronJob -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CronJob
instance A.FromJSON V1beta1CronJob where
  parseJSON :: Value -> Parser V1beta1CronJob
parseJSON = String
-> (Object -> Parser V1beta1CronJob)
-> Value
-> Parser V1beta1CronJob
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CronJob" ((Object -> Parser V1beta1CronJob)
 -> Value -> Parser V1beta1CronJob)
-> (Object -> Parser V1beta1CronJob)
-> Value
-> Parser V1beta1CronJob
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1CronJobSpec
-> Maybe V1beta1CronJobStatus
-> V1beta1CronJob
V1beta1CronJob
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1beta1CronJobSpec
 -> Maybe V1beta1CronJobStatus
 -> V1beta1CronJob)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1beta1CronJobSpec
      -> Maybe V1beta1CronJobStatus
      -> V1beta1CronJob)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1beta1CronJobSpec
   -> Maybe V1beta1CronJobStatus
   -> V1beta1CronJob)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1beta1CronJobSpec
      -> Maybe V1beta1CronJobStatus
      -> V1beta1CronJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1beta1CronJobSpec
   -> Maybe V1beta1CronJobStatus
   -> V1beta1CronJob)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1beta1CronJobSpec
      -> Maybe V1beta1CronJobStatus -> V1beta1CronJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1beta1CronJobSpec
   -> Maybe V1beta1CronJobStatus -> V1beta1CronJob)
-> Parser (Maybe V1beta1CronJobSpec)
-> Parser (Maybe V1beta1CronJobStatus -> V1beta1CronJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1CronJobSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1beta1CronJobStatus -> V1beta1CronJob)
-> Parser (Maybe V1beta1CronJobStatus) -> Parser V1beta1CronJob
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1CronJobStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta1CronJob
instance A.ToJSON V1beta1CronJob where
  toJSON :: V1beta1CronJob -> Value
toJSON V1beta1CronJob {Maybe Text
Maybe V1beta1CronJobStatus
Maybe V1beta1CronJobSpec
Maybe V1ObjectMeta
v1beta1CronJobStatus :: Maybe V1beta1CronJobStatus
v1beta1CronJobSpec :: Maybe V1beta1CronJobSpec
v1beta1CronJobMetadata :: Maybe V1ObjectMeta
v1beta1CronJobKind :: Maybe Text
v1beta1CronJobApiVersion :: Maybe Text
v1beta1CronJobStatus :: V1beta1CronJob -> Maybe V1beta1CronJobStatus
v1beta1CronJobSpec :: V1beta1CronJob -> Maybe V1beta1CronJobSpec
v1beta1CronJobMetadata :: V1beta1CronJob -> Maybe V1ObjectMeta
v1beta1CronJobKind :: V1beta1CronJob -> Maybe Text
v1beta1CronJobApiVersion :: V1beta1CronJob -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CronJobApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CronJobKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1CronJobMetadata
      , Text
"spec" Text -> Maybe V1beta1CronJobSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1CronJobSpec
v1beta1CronJobSpec
      , Text
"status" Text -> Maybe V1beta1CronJobStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1CronJobStatus
v1beta1CronJobStatus
      ]


-- | Construct a value of type 'V1beta1CronJob' (by applying it's required fields, if any)
mkV1beta1CronJob
  :: V1beta1CronJob
mkV1beta1CronJob :: V1beta1CronJob
mkV1beta1CronJob =
  V1beta1CronJob :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1CronJobSpec
-> Maybe V1beta1CronJobStatus
-> V1beta1CronJob
V1beta1CronJob
  { v1beta1CronJobApiVersion :: Maybe Text
v1beta1CronJobApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CronJobKind :: Maybe Text
v1beta1CronJobKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CronJobMetadata :: Maybe V1ObjectMeta
v1beta1CronJobMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1CronJobSpec :: Maybe V1beta1CronJobSpec
v1beta1CronJobSpec = Maybe V1beta1CronJobSpec
forall a. Maybe a
Nothing
  , v1beta1CronJobStatus :: Maybe V1beta1CronJobStatus
v1beta1CronJobStatus = Maybe V1beta1CronJobStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta1CronJobList
-- | V1beta1CronJobList
-- CronJobList is a collection of cron jobs.
data V1beta1CronJobList = V1beta1CronJobList
  { V1beta1CronJobList -> Maybe Text
v1beta1CronJobListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1CronJobList -> [V1beta1CronJob]
v1beta1CronJobListItems :: !([V1beta1CronJob]) -- ^ /Required/ "items" - items is the list of CronJobs.
  , V1beta1CronJobList -> Maybe Text
v1beta1CronJobListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1CronJobList -> Maybe V1ListMeta
v1beta1CronJobListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1CronJobList -> ShowS
[V1beta1CronJobList] -> ShowS
V1beta1CronJobList -> String
(Int -> V1beta1CronJobList -> ShowS)
-> (V1beta1CronJobList -> String)
-> ([V1beta1CronJobList] -> ShowS)
-> Show V1beta1CronJobList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CronJobList] -> ShowS
$cshowList :: [V1beta1CronJobList] -> ShowS
show :: V1beta1CronJobList -> String
$cshow :: V1beta1CronJobList -> String
showsPrec :: Int -> V1beta1CronJobList -> ShowS
$cshowsPrec :: Int -> V1beta1CronJobList -> ShowS
P.Show, V1beta1CronJobList -> V1beta1CronJobList -> Bool
(V1beta1CronJobList -> V1beta1CronJobList -> Bool)
-> (V1beta1CronJobList -> V1beta1CronJobList -> Bool)
-> Eq V1beta1CronJobList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CronJobList -> V1beta1CronJobList -> Bool
$c/= :: V1beta1CronJobList -> V1beta1CronJobList -> Bool
== :: V1beta1CronJobList -> V1beta1CronJobList -> Bool
$c== :: V1beta1CronJobList -> V1beta1CronJobList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CronJobList
instance A.FromJSON V1beta1CronJobList where
  parseJSON :: Value -> Parser V1beta1CronJobList
parseJSON = String
-> (Object -> Parser V1beta1CronJobList)
-> Value
-> Parser V1beta1CronJobList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CronJobList" ((Object -> Parser V1beta1CronJobList)
 -> Value -> Parser V1beta1CronJobList)
-> (Object -> Parser V1beta1CronJobList)
-> Value
-> Parser V1beta1CronJobList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1CronJob]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1CronJobList
V1beta1CronJobList
      (Maybe Text
 -> [V1beta1CronJob]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1CronJobList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1CronJob]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1CronJobList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1CronJob]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1CronJobList)
-> Parser [V1beta1CronJob]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1CronJobList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1CronJob]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1CronJobList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1CronJobList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1CronJobList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1CronJobList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1CronJobList
instance A.ToJSON V1beta1CronJobList where
  toJSON :: V1beta1CronJobList -> Value
toJSON V1beta1CronJobList {[V1beta1CronJob]
Maybe Text
Maybe V1ListMeta
v1beta1CronJobListMetadata :: Maybe V1ListMeta
v1beta1CronJobListKind :: Maybe Text
v1beta1CronJobListItems :: [V1beta1CronJob]
v1beta1CronJobListApiVersion :: Maybe Text
v1beta1CronJobListMetadata :: V1beta1CronJobList -> Maybe V1ListMeta
v1beta1CronJobListKind :: V1beta1CronJobList -> Maybe Text
v1beta1CronJobListItems :: V1beta1CronJobList -> [V1beta1CronJob]
v1beta1CronJobListApiVersion :: V1beta1CronJobList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CronJobListApiVersion
      , Text
"items" Text -> [V1beta1CronJob] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1CronJob]
v1beta1CronJobListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CronJobListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1CronJobListMetadata
      ]


-- | Construct a value of type 'V1beta1CronJobList' (by applying it's required fields, if any)
mkV1beta1CronJobList
  :: [V1beta1CronJob] -- ^ 'v1beta1CronJobListItems': items is the list of CronJobs.
  -> V1beta1CronJobList
mkV1beta1CronJobList :: [V1beta1CronJob] -> V1beta1CronJobList
mkV1beta1CronJobList [V1beta1CronJob]
v1beta1CronJobListItems =
  V1beta1CronJobList :: Maybe Text
-> [V1beta1CronJob]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1CronJobList
V1beta1CronJobList
  { v1beta1CronJobListApiVersion :: Maybe Text
v1beta1CronJobListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1CronJob]
v1beta1CronJobListItems :: [V1beta1CronJob]
v1beta1CronJobListItems :: [V1beta1CronJob]
v1beta1CronJobListItems
  , v1beta1CronJobListKind :: Maybe Text
v1beta1CronJobListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CronJobListMetadata :: Maybe V1ListMeta
v1beta1CronJobListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1CronJobSpec
-- | V1beta1CronJobSpec
-- CronJobSpec describes how the job execution will look like and when it will actually run.
data V1beta1CronJobSpec = V1beta1CronJobSpec
  { V1beta1CronJobSpec -> Maybe Text
v1beta1CronJobSpecConcurrencyPolicy :: !(Maybe Text) -- ^ "concurrencyPolicy" - Specifies how to treat concurrent executions of a Job. Valid values are: - \&quot;Allow\&quot; (default): allows CronJobs to run concurrently; - \&quot;Forbid\&quot;: forbids concurrent runs, skipping next run if previous run hasn&#39;t finished yet; - \&quot;Replace\&quot;: cancels currently running job and replaces it with a new one
  , V1beta1CronJobSpec -> Maybe Int
v1beta1CronJobSpecFailedJobsHistoryLimit :: !(Maybe Int) -- ^ "failedJobsHistoryLimit" - The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.
  , V1beta1CronJobSpec -> V1beta1JobTemplateSpec
v1beta1CronJobSpecJobTemplate :: !(V1beta1JobTemplateSpec) -- ^ /Required/ "jobTemplate"
  , V1beta1CronJobSpec -> Text
v1beta1CronJobSpecSchedule :: !(Text) -- ^ /Required/ "schedule" - The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.
  , V1beta1CronJobSpec -> Maybe Integer
v1beta1CronJobSpecStartingDeadlineSeconds :: !(Maybe Integer) -- ^ "startingDeadlineSeconds" - Optional deadline in seconds for starting the job if it misses scheduled time for any reason.  Missed jobs executions will be counted as failed ones.
  , V1beta1CronJobSpec -> Maybe Int
v1beta1CronJobSpecSuccessfulJobsHistoryLimit :: !(Maybe Int) -- ^ "successfulJobsHistoryLimit" - The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3.
  , V1beta1CronJobSpec -> Maybe Bool
v1beta1CronJobSpecSuspend :: !(Maybe Bool) -- ^ "suspend" - This flag tells the controller to suspend subsequent executions, it does not apply to already started executions.  Defaults to false.
  } deriving (Int -> V1beta1CronJobSpec -> ShowS
[V1beta1CronJobSpec] -> ShowS
V1beta1CronJobSpec -> String
(Int -> V1beta1CronJobSpec -> ShowS)
-> (V1beta1CronJobSpec -> String)
-> ([V1beta1CronJobSpec] -> ShowS)
-> Show V1beta1CronJobSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CronJobSpec] -> ShowS
$cshowList :: [V1beta1CronJobSpec] -> ShowS
show :: V1beta1CronJobSpec -> String
$cshow :: V1beta1CronJobSpec -> String
showsPrec :: Int -> V1beta1CronJobSpec -> ShowS
$cshowsPrec :: Int -> V1beta1CronJobSpec -> ShowS
P.Show, V1beta1CronJobSpec -> V1beta1CronJobSpec -> Bool
(V1beta1CronJobSpec -> V1beta1CronJobSpec -> Bool)
-> (V1beta1CronJobSpec -> V1beta1CronJobSpec -> Bool)
-> Eq V1beta1CronJobSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CronJobSpec -> V1beta1CronJobSpec -> Bool
$c/= :: V1beta1CronJobSpec -> V1beta1CronJobSpec -> Bool
== :: V1beta1CronJobSpec -> V1beta1CronJobSpec -> Bool
$c== :: V1beta1CronJobSpec -> V1beta1CronJobSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CronJobSpec
instance A.FromJSON V1beta1CronJobSpec where
  parseJSON :: Value -> Parser V1beta1CronJobSpec
parseJSON = String
-> (Object -> Parser V1beta1CronJobSpec)
-> Value
-> Parser V1beta1CronJobSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CronJobSpec" ((Object -> Parser V1beta1CronJobSpec)
 -> Value -> Parser V1beta1CronJobSpec)
-> (Object -> Parser V1beta1CronJobSpec)
-> Value
-> Parser V1beta1CronJobSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Int
-> V1beta1JobTemplateSpec
-> Text
-> Maybe Integer
-> Maybe Int
-> Maybe Bool
-> V1beta1CronJobSpec
V1beta1CronJobSpec
      (Maybe Text
 -> Maybe Int
 -> V1beta1JobTemplateSpec
 -> Text
 -> Maybe Integer
 -> Maybe Int
 -> Maybe Bool
 -> V1beta1CronJobSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> V1beta1JobTemplateSpec
      -> Text
      -> Maybe Integer
      -> Maybe Int
      -> Maybe Bool
      -> V1beta1CronJobSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"concurrencyPolicy")
      Parser
  (Maybe Int
   -> V1beta1JobTemplateSpec
   -> Text
   -> Maybe Integer
   -> Maybe Int
   -> Maybe Bool
   -> V1beta1CronJobSpec)
-> Parser (Maybe Int)
-> Parser
     (V1beta1JobTemplateSpec
      -> Text
      -> Maybe Integer
      -> Maybe Int
      -> Maybe Bool
      -> V1beta1CronJobSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"failedJobsHistoryLimit")
      Parser
  (V1beta1JobTemplateSpec
   -> Text
   -> Maybe Integer
   -> Maybe Int
   -> Maybe Bool
   -> V1beta1CronJobSpec)
-> Parser V1beta1JobTemplateSpec
-> Parser
     (Text
      -> Maybe Integer -> Maybe Int -> Maybe Bool -> V1beta1CronJobSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1beta1JobTemplateSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"jobTemplate")
      Parser
  (Text
   -> Maybe Integer -> Maybe Int -> Maybe Bool -> V1beta1CronJobSpec)
-> Parser Text
-> Parser
     (Maybe Integer -> Maybe Int -> Maybe Bool -> V1beta1CronJobSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"schedule")
      Parser
  (Maybe Integer -> Maybe Int -> Maybe Bool -> V1beta1CronJobSpec)
-> Parser (Maybe Integer)
-> Parser (Maybe Int -> Maybe Bool -> V1beta1CronJobSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"startingDeadlineSeconds")
      Parser (Maybe Int -> Maybe Bool -> V1beta1CronJobSpec)
-> Parser (Maybe Int) -> Parser (Maybe Bool -> V1beta1CronJobSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"successfulJobsHistoryLimit")
      Parser (Maybe Bool -> V1beta1CronJobSpec)
-> Parser (Maybe Bool) -> Parser V1beta1CronJobSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"suspend")

-- | ToJSON V1beta1CronJobSpec
instance A.ToJSON V1beta1CronJobSpec where
  toJSON :: V1beta1CronJobSpec -> Value
toJSON V1beta1CronJobSpec {Maybe Bool
Maybe Int
Maybe Integer
Maybe Text
Text
V1beta1JobTemplateSpec
v1beta1CronJobSpecSuspend :: Maybe Bool
v1beta1CronJobSpecSuccessfulJobsHistoryLimit :: Maybe Int
v1beta1CronJobSpecStartingDeadlineSeconds :: Maybe Integer
v1beta1CronJobSpecSchedule :: Text
v1beta1CronJobSpecJobTemplate :: V1beta1JobTemplateSpec
v1beta1CronJobSpecFailedJobsHistoryLimit :: Maybe Int
v1beta1CronJobSpecConcurrencyPolicy :: Maybe Text
v1beta1CronJobSpecSuspend :: V1beta1CronJobSpec -> Maybe Bool
v1beta1CronJobSpecSuccessfulJobsHistoryLimit :: V1beta1CronJobSpec -> Maybe Int
v1beta1CronJobSpecStartingDeadlineSeconds :: V1beta1CronJobSpec -> Maybe Integer
v1beta1CronJobSpecSchedule :: V1beta1CronJobSpec -> Text
v1beta1CronJobSpecJobTemplate :: V1beta1CronJobSpec -> V1beta1JobTemplateSpec
v1beta1CronJobSpecFailedJobsHistoryLimit :: V1beta1CronJobSpec -> Maybe Int
v1beta1CronJobSpecConcurrencyPolicy :: V1beta1CronJobSpec -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"concurrencyPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CronJobSpecConcurrencyPolicy
      , Text
"failedJobsHistoryLimit" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1CronJobSpecFailedJobsHistoryLimit
      , Text
"jobTemplate" Text -> V1beta1JobTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1beta1JobTemplateSpec
v1beta1CronJobSpecJobTemplate
      , Text
"schedule" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CronJobSpecSchedule
      , Text
"startingDeadlineSeconds" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1beta1CronJobSpecStartingDeadlineSeconds
      , Text
"successfulJobsHistoryLimit" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1CronJobSpecSuccessfulJobsHistoryLimit
      , Text
"suspend" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta1CronJobSpecSuspend
      ]


-- | Construct a value of type 'V1beta1CronJobSpec' (by applying it's required fields, if any)
mkV1beta1CronJobSpec
  :: V1beta1JobTemplateSpec -- ^ 'v1beta1CronJobSpecJobTemplate' 
  -> Text -- ^ 'v1beta1CronJobSpecSchedule': The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.
  -> V1beta1CronJobSpec
mkV1beta1CronJobSpec :: V1beta1JobTemplateSpec -> Text -> V1beta1CronJobSpec
mkV1beta1CronJobSpec V1beta1JobTemplateSpec
v1beta1CronJobSpecJobTemplate Text
v1beta1CronJobSpecSchedule =
  V1beta1CronJobSpec :: Maybe Text
-> Maybe Int
-> V1beta1JobTemplateSpec
-> Text
-> Maybe Integer
-> Maybe Int
-> Maybe Bool
-> V1beta1CronJobSpec
V1beta1CronJobSpec
  { v1beta1CronJobSpecConcurrencyPolicy :: Maybe Text
v1beta1CronJobSpecConcurrencyPolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CronJobSpecFailedJobsHistoryLimit :: Maybe Int
v1beta1CronJobSpecFailedJobsHistoryLimit = Maybe Int
forall a. Maybe a
Nothing
  , V1beta1JobTemplateSpec
v1beta1CronJobSpecJobTemplate :: V1beta1JobTemplateSpec
v1beta1CronJobSpecJobTemplate :: V1beta1JobTemplateSpec
v1beta1CronJobSpecJobTemplate
  , Text
v1beta1CronJobSpecSchedule :: Text
v1beta1CronJobSpecSchedule :: Text
v1beta1CronJobSpecSchedule
  , v1beta1CronJobSpecStartingDeadlineSeconds :: Maybe Integer
v1beta1CronJobSpecStartingDeadlineSeconds = Maybe Integer
forall a. Maybe a
Nothing
  , v1beta1CronJobSpecSuccessfulJobsHistoryLimit :: Maybe Int
v1beta1CronJobSpecSuccessfulJobsHistoryLimit = Maybe Int
forall a. Maybe a
Nothing
  , v1beta1CronJobSpecSuspend :: Maybe Bool
v1beta1CronJobSpecSuspend = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1beta1CronJobStatus
-- | V1beta1CronJobStatus
-- CronJobStatus represents the current state of a cron job.
data V1beta1CronJobStatus = V1beta1CronJobStatus
  { V1beta1CronJobStatus -> Maybe [V1ObjectReference]
v1beta1CronJobStatusActive :: !(Maybe [V1ObjectReference]) -- ^ "active" - A list of pointers to currently running jobs.
  , V1beta1CronJobStatus -> Maybe DateTime
v1beta1CronJobStatusLastScheduleTime :: !(Maybe DateTime) -- ^ "lastScheduleTime" - Information when was the last time the job was successfully scheduled.
  } deriving (Int -> V1beta1CronJobStatus -> ShowS
[V1beta1CronJobStatus] -> ShowS
V1beta1CronJobStatus -> String
(Int -> V1beta1CronJobStatus -> ShowS)
-> (V1beta1CronJobStatus -> String)
-> ([V1beta1CronJobStatus] -> ShowS)
-> Show V1beta1CronJobStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CronJobStatus] -> ShowS
$cshowList :: [V1beta1CronJobStatus] -> ShowS
show :: V1beta1CronJobStatus -> String
$cshow :: V1beta1CronJobStatus -> String
showsPrec :: Int -> V1beta1CronJobStatus -> ShowS
$cshowsPrec :: Int -> V1beta1CronJobStatus -> ShowS
P.Show, V1beta1CronJobStatus -> V1beta1CronJobStatus -> Bool
(V1beta1CronJobStatus -> V1beta1CronJobStatus -> Bool)
-> (V1beta1CronJobStatus -> V1beta1CronJobStatus -> Bool)
-> Eq V1beta1CronJobStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CronJobStatus -> V1beta1CronJobStatus -> Bool
$c/= :: V1beta1CronJobStatus -> V1beta1CronJobStatus -> Bool
== :: V1beta1CronJobStatus -> V1beta1CronJobStatus -> Bool
$c== :: V1beta1CronJobStatus -> V1beta1CronJobStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CronJobStatus
instance A.FromJSON V1beta1CronJobStatus where
  parseJSON :: Value -> Parser V1beta1CronJobStatus
parseJSON = String
-> (Object -> Parser V1beta1CronJobStatus)
-> Value
-> Parser V1beta1CronJobStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CronJobStatus" ((Object -> Parser V1beta1CronJobStatus)
 -> Value -> Parser V1beta1CronJobStatus)
-> (Object -> Parser V1beta1CronJobStatus)
-> Value
-> Parser V1beta1CronJobStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1ObjectReference] -> Maybe DateTime -> V1beta1CronJobStatus
V1beta1CronJobStatus
      (Maybe [V1ObjectReference]
 -> Maybe DateTime -> V1beta1CronJobStatus)
-> Parser (Maybe [V1ObjectReference])
-> Parser (Maybe DateTime -> V1beta1CronJobStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1ObjectReference])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"active")
      Parser (Maybe DateTime -> V1beta1CronJobStatus)
-> Parser (Maybe DateTime) -> Parser V1beta1CronJobStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastScheduleTime")

-- | ToJSON V1beta1CronJobStatus
instance A.ToJSON V1beta1CronJobStatus where
  toJSON :: V1beta1CronJobStatus -> Value
toJSON V1beta1CronJobStatus {Maybe [V1ObjectReference]
Maybe DateTime
v1beta1CronJobStatusLastScheduleTime :: Maybe DateTime
v1beta1CronJobStatusActive :: Maybe [V1ObjectReference]
v1beta1CronJobStatusLastScheduleTime :: V1beta1CronJobStatus -> Maybe DateTime
v1beta1CronJobStatusActive :: V1beta1CronJobStatus -> Maybe [V1ObjectReference]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"active" Text -> Maybe [V1ObjectReference] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ObjectReference]
v1beta1CronJobStatusActive
      , Text
"lastScheduleTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta1CronJobStatusLastScheduleTime
      ]


-- | Construct a value of type 'V1beta1CronJobStatus' (by applying it's required fields, if any)
mkV1beta1CronJobStatus
  :: V1beta1CronJobStatus
mkV1beta1CronJobStatus :: V1beta1CronJobStatus
mkV1beta1CronJobStatus =
  V1beta1CronJobStatus :: Maybe [V1ObjectReference] -> Maybe DateTime -> V1beta1CronJobStatus
V1beta1CronJobStatus
  { v1beta1CronJobStatusActive :: Maybe [V1ObjectReference]
v1beta1CronJobStatusActive = Maybe [V1ObjectReference]
forall a. Maybe a
Nothing
  , v1beta1CronJobStatusLastScheduleTime :: Maybe DateTime
v1beta1CronJobStatusLastScheduleTime = Maybe DateTime
forall a. Maybe a
Nothing
  }

-- ** V1beta1CustomResourceColumnDefinition
-- | V1beta1CustomResourceColumnDefinition
-- CustomResourceColumnDefinition specifies a column for server side printing.
data V1beta1CustomResourceColumnDefinition = V1beta1CustomResourceColumnDefinition
  { V1beta1CustomResourceColumnDefinition -> Text
v1beta1CustomResourceColumnDefinitionJsonPath :: !(Text) -- ^ /Required/ "JSONPath" - JSONPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.
  , V1beta1CustomResourceColumnDefinition -> Maybe Text
v1beta1CustomResourceColumnDefinitionDescription :: !(Maybe Text) -- ^ "description" - description is a human readable description of this column.
  , V1beta1CustomResourceColumnDefinition -> Maybe Text
v1beta1CustomResourceColumnDefinitionFormat :: !(Maybe Text) -- ^ "format" - format is an optional OpenAPI type definition for this column. The &#39;name&#39; format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.
  , V1beta1CustomResourceColumnDefinition -> Text
v1beta1CustomResourceColumnDefinitionName :: !(Text) -- ^ /Required/ "name" - name is a human readable name for the column.
  , V1beta1CustomResourceColumnDefinition -> Maybe Int
v1beta1CustomResourceColumnDefinitionPriority :: !(Maybe Int) -- ^ "priority" - priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.
  , V1beta1CustomResourceColumnDefinition -> Text
v1beta1CustomResourceColumnDefinitionType :: !(Text) -- ^ /Required/ "type" - type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.
  } deriving (Int -> V1beta1CustomResourceColumnDefinition -> ShowS
[V1beta1CustomResourceColumnDefinition] -> ShowS
V1beta1CustomResourceColumnDefinition -> String
(Int -> V1beta1CustomResourceColumnDefinition -> ShowS)
-> (V1beta1CustomResourceColumnDefinition -> String)
-> ([V1beta1CustomResourceColumnDefinition] -> ShowS)
-> Show V1beta1CustomResourceColumnDefinition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CustomResourceColumnDefinition] -> ShowS
$cshowList :: [V1beta1CustomResourceColumnDefinition] -> ShowS
show :: V1beta1CustomResourceColumnDefinition -> String
$cshow :: V1beta1CustomResourceColumnDefinition -> String
showsPrec :: Int -> V1beta1CustomResourceColumnDefinition -> ShowS
$cshowsPrec :: Int -> V1beta1CustomResourceColumnDefinition -> ShowS
P.Show, V1beta1CustomResourceColumnDefinition
-> V1beta1CustomResourceColumnDefinition -> Bool
(V1beta1CustomResourceColumnDefinition
 -> V1beta1CustomResourceColumnDefinition -> Bool)
-> (V1beta1CustomResourceColumnDefinition
    -> V1beta1CustomResourceColumnDefinition -> Bool)
-> Eq V1beta1CustomResourceColumnDefinition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CustomResourceColumnDefinition
-> V1beta1CustomResourceColumnDefinition -> Bool
$c/= :: V1beta1CustomResourceColumnDefinition
-> V1beta1CustomResourceColumnDefinition -> Bool
== :: V1beta1CustomResourceColumnDefinition
-> V1beta1CustomResourceColumnDefinition -> Bool
$c== :: V1beta1CustomResourceColumnDefinition
-> V1beta1CustomResourceColumnDefinition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CustomResourceColumnDefinition
instance A.FromJSON V1beta1CustomResourceColumnDefinition where
  parseJSON :: Value -> Parser V1beta1CustomResourceColumnDefinition
parseJSON = String
-> (Object -> Parser V1beta1CustomResourceColumnDefinition)
-> Value
-> Parser V1beta1CustomResourceColumnDefinition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CustomResourceColumnDefinition" ((Object -> Parser V1beta1CustomResourceColumnDefinition)
 -> Value -> Parser V1beta1CustomResourceColumnDefinition)
-> (Object -> Parser V1beta1CustomResourceColumnDefinition)
-> Value
-> Parser V1beta1CustomResourceColumnDefinition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe Int
-> Text
-> V1beta1CustomResourceColumnDefinition
V1beta1CustomResourceColumnDefinition
      (Text
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Maybe Int
 -> Text
 -> V1beta1CustomResourceColumnDefinition)
-> Parser Text
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Int
      -> Text
      -> V1beta1CustomResourceColumnDefinition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"JSONPath")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Int
   -> Text
   -> V1beta1CustomResourceColumnDefinition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text
      -> Maybe Int
      -> Text
      -> V1beta1CustomResourceColumnDefinition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"description")
      Parser
  (Maybe Text
   -> Text
   -> Maybe Int
   -> Text
   -> V1beta1CustomResourceColumnDefinition)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe Int -> Text -> V1beta1CustomResourceColumnDefinition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"format")
      Parser
  (Text
   -> Maybe Int -> Text -> V1beta1CustomResourceColumnDefinition)
-> Parser Text
-> Parser
     (Maybe Int -> Text -> V1beta1CustomResourceColumnDefinition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser (Maybe Int -> Text -> V1beta1CustomResourceColumnDefinition)
-> Parser (Maybe Int)
-> Parser (Text -> V1beta1CustomResourceColumnDefinition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"priority")
      Parser (Text -> V1beta1CustomResourceColumnDefinition)
-> Parser Text -> Parser V1beta1CustomResourceColumnDefinition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1beta1CustomResourceColumnDefinition
instance A.ToJSON V1beta1CustomResourceColumnDefinition where
  toJSON :: V1beta1CustomResourceColumnDefinition -> Value
toJSON V1beta1CustomResourceColumnDefinition {Maybe Int
Maybe Text
Text
v1beta1CustomResourceColumnDefinitionType :: Text
v1beta1CustomResourceColumnDefinitionPriority :: Maybe Int
v1beta1CustomResourceColumnDefinitionName :: Text
v1beta1CustomResourceColumnDefinitionFormat :: Maybe Text
v1beta1CustomResourceColumnDefinitionDescription :: Maybe Text
v1beta1CustomResourceColumnDefinitionJsonPath :: Text
v1beta1CustomResourceColumnDefinitionType :: V1beta1CustomResourceColumnDefinition -> Text
v1beta1CustomResourceColumnDefinitionPriority :: V1beta1CustomResourceColumnDefinition -> Maybe Int
v1beta1CustomResourceColumnDefinitionName :: V1beta1CustomResourceColumnDefinition -> Text
v1beta1CustomResourceColumnDefinitionFormat :: V1beta1CustomResourceColumnDefinition -> Maybe Text
v1beta1CustomResourceColumnDefinitionDescription :: V1beta1CustomResourceColumnDefinition -> Maybe Text
v1beta1CustomResourceColumnDefinitionJsonPath :: V1beta1CustomResourceColumnDefinition -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"JSONPath" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CustomResourceColumnDefinitionJsonPath
      , Text
"description" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CustomResourceColumnDefinitionDescription
      , Text
"format" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CustomResourceColumnDefinitionFormat
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CustomResourceColumnDefinitionName
      , Text
"priority" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1CustomResourceColumnDefinitionPriority
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CustomResourceColumnDefinitionType
      ]


-- | Construct a value of type 'V1beta1CustomResourceColumnDefinition' (by applying it's required fields, if any)
mkV1beta1CustomResourceColumnDefinition
  :: Text -- ^ 'v1beta1CustomResourceColumnDefinitionJsonPath': JSONPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.
  -> Text -- ^ 'v1beta1CustomResourceColumnDefinitionName': name is a human readable name for the column.
  -> Text -- ^ 'v1beta1CustomResourceColumnDefinitionType': type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.
  -> V1beta1CustomResourceColumnDefinition
mkV1beta1CustomResourceColumnDefinition :: Text -> Text -> Text -> V1beta1CustomResourceColumnDefinition
mkV1beta1CustomResourceColumnDefinition Text
v1beta1CustomResourceColumnDefinitionJsonPath Text
v1beta1CustomResourceColumnDefinitionName Text
v1beta1CustomResourceColumnDefinitionType =
  V1beta1CustomResourceColumnDefinition :: Text
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe Int
-> Text
-> V1beta1CustomResourceColumnDefinition
V1beta1CustomResourceColumnDefinition
  { Text
v1beta1CustomResourceColumnDefinitionJsonPath :: Text
v1beta1CustomResourceColumnDefinitionJsonPath :: Text
v1beta1CustomResourceColumnDefinitionJsonPath
  , v1beta1CustomResourceColumnDefinitionDescription :: Maybe Text
v1beta1CustomResourceColumnDefinitionDescription = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CustomResourceColumnDefinitionFormat :: Maybe Text
v1beta1CustomResourceColumnDefinitionFormat = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta1CustomResourceColumnDefinitionName :: Text
v1beta1CustomResourceColumnDefinitionName :: Text
v1beta1CustomResourceColumnDefinitionName
  , v1beta1CustomResourceColumnDefinitionPriority :: Maybe Int
v1beta1CustomResourceColumnDefinitionPriority = Maybe Int
forall a. Maybe a
Nothing
  , Text
v1beta1CustomResourceColumnDefinitionType :: Text
v1beta1CustomResourceColumnDefinitionType :: Text
v1beta1CustomResourceColumnDefinitionType
  }

-- ** V1beta1CustomResourceConversion
-- | V1beta1CustomResourceConversion
-- CustomResourceConversion describes how to convert different versions of a CR.
data V1beta1CustomResourceConversion = V1beta1CustomResourceConversion
  { V1beta1CustomResourceConversion -> Maybe [Text]
v1beta1CustomResourceConversionConversionReviewVersions :: !(Maybe [Text]) -- ^ "conversionReviewVersions" - conversionReviewVersions is an ordered list of preferred &#x60;ConversionReview&#x60; versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail. Defaults to &#x60;[\&quot;v1beta1\&quot;]&#x60;.
  , V1beta1CustomResourceConversion -> Text
v1beta1CustomResourceConversionStrategy :: !(Text) -- ^ /Required/ "strategy" - strategy specifies how custom resources are converted between versions. Allowed values are: - &#x60;None&#x60;: The converter only change the apiVersion and would not touch any other field in the custom resource. - &#x60;Webhook&#x60;: API Server will call to an external webhook to do the conversion. Additional information   is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhookClientConfig to be set.
  , V1beta1CustomResourceConversion
-> Maybe ApiextensionsV1beta1WebhookClientConfig
v1beta1CustomResourceConversionWebhookClientConfig :: !(Maybe ApiextensionsV1beta1WebhookClientConfig) -- ^ "webhookClientConfig"
  } deriving (Int -> V1beta1CustomResourceConversion -> ShowS
[V1beta1CustomResourceConversion] -> ShowS
V1beta1CustomResourceConversion -> String
(Int -> V1beta1CustomResourceConversion -> ShowS)
-> (V1beta1CustomResourceConversion -> String)
-> ([V1beta1CustomResourceConversion] -> ShowS)
-> Show V1beta1CustomResourceConversion
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CustomResourceConversion] -> ShowS
$cshowList :: [V1beta1CustomResourceConversion] -> ShowS
show :: V1beta1CustomResourceConversion -> String
$cshow :: V1beta1CustomResourceConversion -> String
showsPrec :: Int -> V1beta1CustomResourceConversion -> ShowS
$cshowsPrec :: Int -> V1beta1CustomResourceConversion -> ShowS
P.Show, V1beta1CustomResourceConversion
-> V1beta1CustomResourceConversion -> Bool
(V1beta1CustomResourceConversion
 -> V1beta1CustomResourceConversion -> Bool)
-> (V1beta1CustomResourceConversion
    -> V1beta1CustomResourceConversion -> Bool)
-> Eq V1beta1CustomResourceConversion
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CustomResourceConversion
-> V1beta1CustomResourceConversion -> Bool
$c/= :: V1beta1CustomResourceConversion
-> V1beta1CustomResourceConversion -> Bool
== :: V1beta1CustomResourceConversion
-> V1beta1CustomResourceConversion -> Bool
$c== :: V1beta1CustomResourceConversion
-> V1beta1CustomResourceConversion -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CustomResourceConversion
instance A.FromJSON V1beta1CustomResourceConversion where
  parseJSON :: Value -> Parser V1beta1CustomResourceConversion
parseJSON = String
-> (Object -> Parser V1beta1CustomResourceConversion)
-> Value
-> Parser V1beta1CustomResourceConversion
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CustomResourceConversion" ((Object -> Parser V1beta1CustomResourceConversion)
 -> Value -> Parser V1beta1CustomResourceConversion)
-> (Object -> Parser V1beta1CustomResourceConversion)
-> Value
-> Parser V1beta1CustomResourceConversion
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Text
-> Maybe ApiextensionsV1beta1WebhookClientConfig
-> V1beta1CustomResourceConversion
V1beta1CustomResourceConversion
      (Maybe [Text]
 -> Text
 -> Maybe ApiextensionsV1beta1WebhookClientConfig
 -> V1beta1CustomResourceConversion)
-> Parser (Maybe [Text])
-> Parser
     (Text
      -> Maybe ApiextensionsV1beta1WebhookClientConfig
      -> V1beta1CustomResourceConversion)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conversionReviewVersions")
      Parser
  (Text
   -> Maybe ApiextensionsV1beta1WebhookClientConfig
   -> V1beta1CustomResourceConversion)
-> Parser Text
-> Parser
     (Maybe ApiextensionsV1beta1WebhookClientConfig
      -> V1beta1CustomResourceConversion)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"strategy")
      Parser
  (Maybe ApiextensionsV1beta1WebhookClientConfig
   -> V1beta1CustomResourceConversion)
-> Parser (Maybe ApiextensionsV1beta1WebhookClientConfig)
-> Parser V1beta1CustomResourceConversion
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe ApiextensionsV1beta1WebhookClientConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"webhookClientConfig")

-- | ToJSON V1beta1CustomResourceConversion
instance A.ToJSON V1beta1CustomResourceConversion where
  toJSON :: V1beta1CustomResourceConversion -> Value
toJSON V1beta1CustomResourceConversion {Maybe [Text]
Maybe ApiextensionsV1beta1WebhookClientConfig
Text
v1beta1CustomResourceConversionWebhookClientConfig :: Maybe ApiextensionsV1beta1WebhookClientConfig
v1beta1CustomResourceConversionStrategy :: Text
v1beta1CustomResourceConversionConversionReviewVersions :: Maybe [Text]
v1beta1CustomResourceConversionWebhookClientConfig :: V1beta1CustomResourceConversion
-> Maybe ApiextensionsV1beta1WebhookClientConfig
v1beta1CustomResourceConversionStrategy :: V1beta1CustomResourceConversion -> Text
v1beta1CustomResourceConversionConversionReviewVersions :: V1beta1CustomResourceConversion -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"conversionReviewVersions" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1CustomResourceConversionConversionReviewVersions
      , Text
"strategy" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CustomResourceConversionStrategy
      , Text
"webhookClientConfig" Text
-> Maybe ApiextensionsV1beta1WebhookClientConfig -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe ApiextensionsV1beta1WebhookClientConfig
v1beta1CustomResourceConversionWebhookClientConfig
      ]


-- | Construct a value of type 'V1beta1CustomResourceConversion' (by applying it's required fields, if any)
mkV1beta1CustomResourceConversion
  :: Text -- ^ 'v1beta1CustomResourceConversionStrategy': strategy specifies how custom resources are converted between versions. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information   is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhookClientConfig to be set.
  -> V1beta1CustomResourceConversion
mkV1beta1CustomResourceConversion :: Text -> V1beta1CustomResourceConversion
mkV1beta1CustomResourceConversion Text
v1beta1CustomResourceConversionStrategy =
  V1beta1CustomResourceConversion :: Maybe [Text]
-> Text
-> Maybe ApiextensionsV1beta1WebhookClientConfig
-> V1beta1CustomResourceConversion
V1beta1CustomResourceConversion
  { v1beta1CustomResourceConversionConversionReviewVersions :: Maybe [Text]
v1beta1CustomResourceConversionConversionReviewVersions = Maybe [Text]
forall a. Maybe a
Nothing
  , Text
v1beta1CustomResourceConversionStrategy :: Text
v1beta1CustomResourceConversionStrategy :: Text
v1beta1CustomResourceConversionStrategy
  , v1beta1CustomResourceConversionWebhookClientConfig :: Maybe ApiextensionsV1beta1WebhookClientConfig
v1beta1CustomResourceConversionWebhookClientConfig = Maybe ApiextensionsV1beta1WebhookClientConfig
forall a. Maybe a
Nothing
  }

-- ** V1beta1CustomResourceDefinition
-- | V1beta1CustomResourceDefinition
-- CustomResourceDefinition represents a resource that should be exposed on the API server.  Its name MUST be in the format <.spec.name>.<.spec.group>. Deprecated in v1.16, planned for removal in v1.19. Use apiextensions.k8s.io/v1 CustomResourceDefinition instead.
data V1beta1CustomResourceDefinition = V1beta1CustomResourceDefinition
  { V1beta1CustomResourceDefinition -> Maybe Text
v1beta1CustomResourceDefinitionApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1CustomResourceDefinition -> Maybe Text
v1beta1CustomResourceDefinitionKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1CustomResourceDefinition -> Maybe V1ObjectMeta
v1beta1CustomResourceDefinitionMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1CustomResourceDefinition
-> V1beta1CustomResourceDefinitionSpec
v1beta1CustomResourceDefinitionSpec :: !(V1beta1CustomResourceDefinitionSpec) -- ^ /Required/ "spec"
  , V1beta1CustomResourceDefinition
-> Maybe V1beta1CustomResourceDefinitionStatus
v1beta1CustomResourceDefinitionStatus :: !(Maybe V1beta1CustomResourceDefinitionStatus) -- ^ "status"
  } deriving (Int -> V1beta1CustomResourceDefinition -> ShowS
[V1beta1CustomResourceDefinition] -> ShowS
V1beta1CustomResourceDefinition -> String
(Int -> V1beta1CustomResourceDefinition -> ShowS)
-> (V1beta1CustomResourceDefinition -> String)
-> ([V1beta1CustomResourceDefinition] -> ShowS)
-> Show V1beta1CustomResourceDefinition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CustomResourceDefinition] -> ShowS
$cshowList :: [V1beta1CustomResourceDefinition] -> ShowS
show :: V1beta1CustomResourceDefinition -> String
$cshow :: V1beta1CustomResourceDefinition -> String
showsPrec :: Int -> V1beta1CustomResourceDefinition -> ShowS
$cshowsPrec :: Int -> V1beta1CustomResourceDefinition -> ShowS
P.Show, V1beta1CustomResourceDefinition
-> V1beta1CustomResourceDefinition -> Bool
(V1beta1CustomResourceDefinition
 -> V1beta1CustomResourceDefinition -> Bool)
-> (V1beta1CustomResourceDefinition
    -> V1beta1CustomResourceDefinition -> Bool)
-> Eq V1beta1CustomResourceDefinition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CustomResourceDefinition
-> V1beta1CustomResourceDefinition -> Bool
$c/= :: V1beta1CustomResourceDefinition
-> V1beta1CustomResourceDefinition -> Bool
== :: V1beta1CustomResourceDefinition
-> V1beta1CustomResourceDefinition -> Bool
$c== :: V1beta1CustomResourceDefinition
-> V1beta1CustomResourceDefinition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CustomResourceDefinition
instance A.FromJSON V1beta1CustomResourceDefinition where
  parseJSON :: Value -> Parser V1beta1CustomResourceDefinition
parseJSON = String
-> (Object -> Parser V1beta1CustomResourceDefinition)
-> Value
-> Parser V1beta1CustomResourceDefinition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CustomResourceDefinition" ((Object -> Parser V1beta1CustomResourceDefinition)
 -> Value -> Parser V1beta1CustomResourceDefinition)
-> (Object -> Parser V1beta1CustomResourceDefinition)
-> Value
-> Parser V1beta1CustomResourceDefinition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1CustomResourceDefinitionSpec
-> Maybe V1beta1CustomResourceDefinitionStatus
-> V1beta1CustomResourceDefinition
V1beta1CustomResourceDefinition
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1beta1CustomResourceDefinitionSpec
 -> Maybe V1beta1CustomResourceDefinitionStatus
 -> V1beta1CustomResourceDefinition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1beta1CustomResourceDefinitionSpec
      -> Maybe V1beta1CustomResourceDefinitionStatus
      -> V1beta1CustomResourceDefinition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1beta1CustomResourceDefinitionSpec
   -> Maybe V1beta1CustomResourceDefinitionStatus
   -> V1beta1CustomResourceDefinition)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1beta1CustomResourceDefinitionSpec
      -> Maybe V1beta1CustomResourceDefinitionStatus
      -> V1beta1CustomResourceDefinition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1beta1CustomResourceDefinitionSpec
   -> Maybe V1beta1CustomResourceDefinitionStatus
   -> V1beta1CustomResourceDefinition)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1beta1CustomResourceDefinitionSpec
      -> Maybe V1beta1CustomResourceDefinitionStatus
      -> V1beta1CustomResourceDefinition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1beta1CustomResourceDefinitionSpec
   -> Maybe V1beta1CustomResourceDefinitionStatus
   -> V1beta1CustomResourceDefinition)
-> Parser V1beta1CustomResourceDefinitionSpec
-> Parser
     (Maybe V1beta1CustomResourceDefinitionStatus
      -> V1beta1CustomResourceDefinition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1beta1CustomResourceDefinitionSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")
      Parser
  (Maybe V1beta1CustomResourceDefinitionStatus
   -> V1beta1CustomResourceDefinition)
-> Parser (Maybe V1beta1CustomResourceDefinitionStatus)
-> Parser V1beta1CustomResourceDefinition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe V1beta1CustomResourceDefinitionStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta1CustomResourceDefinition
instance A.ToJSON V1beta1CustomResourceDefinition where
  toJSON :: V1beta1CustomResourceDefinition -> Value
toJSON V1beta1CustomResourceDefinition {Maybe Text
Maybe V1beta1CustomResourceDefinitionStatus
Maybe V1ObjectMeta
V1beta1CustomResourceDefinitionSpec
v1beta1CustomResourceDefinitionStatus :: Maybe V1beta1CustomResourceDefinitionStatus
v1beta1CustomResourceDefinitionSpec :: V1beta1CustomResourceDefinitionSpec
v1beta1CustomResourceDefinitionMetadata :: Maybe V1ObjectMeta
v1beta1CustomResourceDefinitionKind :: Maybe Text
v1beta1CustomResourceDefinitionApiVersion :: Maybe Text
v1beta1CustomResourceDefinitionStatus :: V1beta1CustomResourceDefinition
-> Maybe V1beta1CustomResourceDefinitionStatus
v1beta1CustomResourceDefinitionSpec :: V1beta1CustomResourceDefinition
-> V1beta1CustomResourceDefinitionSpec
v1beta1CustomResourceDefinitionMetadata :: V1beta1CustomResourceDefinition -> Maybe V1ObjectMeta
v1beta1CustomResourceDefinitionKind :: V1beta1CustomResourceDefinition -> Maybe Text
v1beta1CustomResourceDefinitionApiVersion :: V1beta1CustomResourceDefinition -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CustomResourceDefinitionApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CustomResourceDefinitionKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1CustomResourceDefinitionMetadata
      , Text
"spec" Text -> V1beta1CustomResourceDefinitionSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1beta1CustomResourceDefinitionSpec
v1beta1CustomResourceDefinitionSpec
      , Text
"status" Text
-> Maybe V1beta1CustomResourceDefinitionStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1CustomResourceDefinitionStatus
v1beta1CustomResourceDefinitionStatus
      ]


-- | Construct a value of type 'V1beta1CustomResourceDefinition' (by applying it's required fields, if any)
mkV1beta1CustomResourceDefinition
  :: V1beta1CustomResourceDefinitionSpec -- ^ 'v1beta1CustomResourceDefinitionSpec' 
  -> V1beta1CustomResourceDefinition
mkV1beta1CustomResourceDefinition :: V1beta1CustomResourceDefinitionSpec
-> V1beta1CustomResourceDefinition
mkV1beta1CustomResourceDefinition V1beta1CustomResourceDefinitionSpec
v1beta1CustomResourceDefinitionSpec =
  V1beta1CustomResourceDefinition :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1CustomResourceDefinitionSpec
-> Maybe V1beta1CustomResourceDefinitionStatus
-> V1beta1CustomResourceDefinition
V1beta1CustomResourceDefinition
  { v1beta1CustomResourceDefinitionApiVersion :: Maybe Text
v1beta1CustomResourceDefinitionApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CustomResourceDefinitionKind :: Maybe Text
v1beta1CustomResourceDefinitionKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CustomResourceDefinitionMetadata :: Maybe V1ObjectMeta
v1beta1CustomResourceDefinitionMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1beta1CustomResourceDefinitionSpec
v1beta1CustomResourceDefinitionSpec :: V1beta1CustomResourceDefinitionSpec
v1beta1CustomResourceDefinitionSpec :: V1beta1CustomResourceDefinitionSpec
v1beta1CustomResourceDefinitionSpec
  , v1beta1CustomResourceDefinitionStatus :: Maybe V1beta1CustomResourceDefinitionStatus
v1beta1CustomResourceDefinitionStatus = Maybe V1beta1CustomResourceDefinitionStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta1CustomResourceDefinitionCondition
-- | V1beta1CustomResourceDefinitionCondition
-- CustomResourceDefinitionCondition contains details for the current condition of this pod.
data V1beta1CustomResourceDefinitionCondition = V1beta1CustomResourceDefinitionCondition
  { V1beta1CustomResourceDefinitionCondition -> Maybe DateTime
v1beta1CustomResourceDefinitionConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - lastTransitionTime last time the condition transitioned from one status to another.
  , V1beta1CustomResourceDefinitionCondition -> Maybe Text
v1beta1CustomResourceDefinitionConditionMessage :: !(Maybe Text) -- ^ "message" - message is a human-readable message indicating details about last transition.
  , V1beta1CustomResourceDefinitionCondition -> Maybe Text
v1beta1CustomResourceDefinitionConditionReason :: !(Maybe Text) -- ^ "reason" - reason is a unique, one-word, CamelCase reason for the condition&#39;s last transition.
  , V1beta1CustomResourceDefinitionCondition -> Text
v1beta1CustomResourceDefinitionConditionStatus :: !(Text) -- ^ /Required/ "status" - status is the status of the condition. Can be True, False, Unknown.
  , V1beta1CustomResourceDefinitionCondition -> Text
v1beta1CustomResourceDefinitionConditionType :: !(Text) -- ^ /Required/ "type" - type is the type of the condition. Types include Established, NamesAccepted and Terminating.
  } deriving (Int -> V1beta1CustomResourceDefinitionCondition -> ShowS
[V1beta1CustomResourceDefinitionCondition] -> ShowS
V1beta1CustomResourceDefinitionCondition -> String
(Int -> V1beta1CustomResourceDefinitionCondition -> ShowS)
-> (V1beta1CustomResourceDefinitionCondition -> String)
-> ([V1beta1CustomResourceDefinitionCondition] -> ShowS)
-> Show V1beta1CustomResourceDefinitionCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CustomResourceDefinitionCondition] -> ShowS
$cshowList :: [V1beta1CustomResourceDefinitionCondition] -> ShowS
show :: V1beta1CustomResourceDefinitionCondition -> String
$cshow :: V1beta1CustomResourceDefinitionCondition -> String
showsPrec :: Int -> V1beta1CustomResourceDefinitionCondition -> ShowS
$cshowsPrec :: Int -> V1beta1CustomResourceDefinitionCondition -> ShowS
P.Show, V1beta1CustomResourceDefinitionCondition
-> V1beta1CustomResourceDefinitionCondition -> Bool
(V1beta1CustomResourceDefinitionCondition
 -> V1beta1CustomResourceDefinitionCondition -> Bool)
-> (V1beta1CustomResourceDefinitionCondition
    -> V1beta1CustomResourceDefinitionCondition -> Bool)
-> Eq V1beta1CustomResourceDefinitionCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CustomResourceDefinitionCondition
-> V1beta1CustomResourceDefinitionCondition -> Bool
$c/= :: V1beta1CustomResourceDefinitionCondition
-> V1beta1CustomResourceDefinitionCondition -> Bool
== :: V1beta1CustomResourceDefinitionCondition
-> V1beta1CustomResourceDefinitionCondition -> Bool
$c== :: V1beta1CustomResourceDefinitionCondition
-> V1beta1CustomResourceDefinitionCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CustomResourceDefinitionCondition
instance A.FromJSON V1beta1CustomResourceDefinitionCondition where
  parseJSON :: Value -> Parser V1beta1CustomResourceDefinitionCondition
parseJSON = String
-> (Object -> Parser V1beta1CustomResourceDefinitionCondition)
-> Value
-> Parser V1beta1CustomResourceDefinitionCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CustomResourceDefinitionCondition" ((Object -> Parser V1beta1CustomResourceDefinitionCondition)
 -> Value -> Parser V1beta1CustomResourceDefinitionCondition)
-> (Object -> Parser V1beta1CustomResourceDefinitionCondition)
-> Value
-> Parser V1beta1CustomResourceDefinitionCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta1CustomResourceDefinitionCondition
V1beta1CustomResourceDefinitionCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1beta1CustomResourceDefinitionCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Text
      -> Text
      -> V1beta1CustomResourceDefinitionCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Text
   -> Text
   -> V1beta1CustomResourceDefinitionCondition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text -> Text -> V1beta1CustomResourceDefinitionCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser
  (Maybe Text
   -> Text -> Text -> V1beta1CustomResourceDefinitionCondition)
-> Parser (Maybe Text)
-> Parser
     (Text -> Text -> V1beta1CustomResourceDefinitionCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1beta1CustomResourceDefinitionCondition)
-> Parser Text
-> Parser (Text -> V1beta1CustomResourceDefinitionCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1beta1CustomResourceDefinitionCondition)
-> Parser Text -> Parser V1beta1CustomResourceDefinitionCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1beta1CustomResourceDefinitionCondition
instance A.ToJSON V1beta1CustomResourceDefinitionCondition where
  toJSON :: V1beta1CustomResourceDefinitionCondition -> Value
toJSON V1beta1CustomResourceDefinitionCondition {Maybe Text
Maybe DateTime
Text
v1beta1CustomResourceDefinitionConditionType :: Text
v1beta1CustomResourceDefinitionConditionStatus :: Text
v1beta1CustomResourceDefinitionConditionReason :: Maybe Text
v1beta1CustomResourceDefinitionConditionMessage :: Maybe Text
v1beta1CustomResourceDefinitionConditionLastTransitionTime :: Maybe DateTime
v1beta1CustomResourceDefinitionConditionType :: V1beta1CustomResourceDefinitionCondition -> Text
v1beta1CustomResourceDefinitionConditionStatus :: V1beta1CustomResourceDefinitionCondition -> Text
v1beta1CustomResourceDefinitionConditionReason :: V1beta1CustomResourceDefinitionCondition -> Maybe Text
v1beta1CustomResourceDefinitionConditionMessage :: V1beta1CustomResourceDefinitionCondition -> Maybe Text
v1beta1CustomResourceDefinitionConditionLastTransitionTime :: V1beta1CustomResourceDefinitionCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta1CustomResourceDefinitionConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CustomResourceDefinitionConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CustomResourceDefinitionConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CustomResourceDefinitionConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CustomResourceDefinitionConditionType
      ]


-- | Construct a value of type 'V1beta1CustomResourceDefinitionCondition' (by applying it's required fields, if any)
mkV1beta1CustomResourceDefinitionCondition
  :: Text -- ^ 'v1beta1CustomResourceDefinitionConditionStatus': status is the status of the condition. Can be True, False, Unknown.
  -> Text -- ^ 'v1beta1CustomResourceDefinitionConditionType': type is the type of the condition. Types include Established, NamesAccepted and Terminating.
  -> V1beta1CustomResourceDefinitionCondition
mkV1beta1CustomResourceDefinitionCondition :: Text -> Text -> V1beta1CustomResourceDefinitionCondition
mkV1beta1CustomResourceDefinitionCondition Text
v1beta1CustomResourceDefinitionConditionStatus Text
v1beta1CustomResourceDefinitionConditionType =
  V1beta1CustomResourceDefinitionCondition :: Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta1CustomResourceDefinitionCondition
V1beta1CustomResourceDefinitionCondition
  { v1beta1CustomResourceDefinitionConditionLastTransitionTime :: Maybe DateTime
v1beta1CustomResourceDefinitionConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1beta1CustomResourceDefinitionConditionMessage :: Maybe Text
v1beta1CustomResourceDefinitionConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CustomResourceDefinitionConditionReason :: Maybe Text
v1beta1CustomResourceDefinitionConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta1CustomResourceDefinitionConditionStatus :: Text
v1beta1CustomResourceDefinitionConditionStatus :: Text
v1beta1CustomResourceDefinitionConditionStatus
  , Text
v1beta1CustomResourceDefinitionConditionType :: Text
v1beta1CustomResourceDefinitionConditionType :: Text
v1beta1CustomResourceDefinitionConditionType
  }

-- ** V1beta1CustomResourceDefinitionList
-- | V1beta1CustomResourceDefinitionList
-- CustomResourceDefinitionList is a list of CustomResourceDefinition objects.
data V1beta1CustomResourceDefinitionList = V1beta1CustomResourceDefinitionList
  { V1beta1CustomResourceDefinitionList -> Maybe Text
v1beta1CustomResourceDefinitionListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1CustomResourceDefinitionList
-> [V1beta1CustomResourceDefinition]
v1beta1CustomResourceDefinitionListItems :: !([V1beta1CustomResourceDefinition]) -- ^ /Required/ "items" - items list individual CustomResourceDefinition objects
  , V1beta1CustomResourceDefinitionList -> Maybe Text
v1beta1CustomResourceDefinitionListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1CustomResourceDefinitionList -> Maybe V1ListMeta
v1beta1CustomResourceDefinitionListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1CustomResourceDefinitionList -> ShowS
[V1beta1CustomResourceDefinitionList] -> ShowS
V1beta1CustomResourceDefinitionList -> String
(Int -> V1beta1CustomResourceDefinitionList -> ShowS)
-> (V1beta1CustomResourceDefinitionList -> String)
-> ([V1beta1CustomResourceDefinitionList] -> ShowS)
-> Show V1beta1CustomResourceDefinitionList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CustomResourceDefinitionList] -> ShowS
$cshowList :: [V1beta1CustomResourceDefinitionList] -> ShowS
show :: V1beta1CustomResourceDefinitionList -> String
$cshow :: V1beta1CustomResourceDefinitionList -> String
showsPrec :: Int -> V1beta1CustomResourceDefinitionList -> ShowS
$cshowsPrec :: Int -> V1beta1CustomResourceDefinitionList -> ShowS
P.Show, V1beta1CustomResourceDefinitionList
-> V1beta1CustomResourceDefinitionList -> Bool
(V1beta1CustomResourceDefinitionList
 -> V1beta1CustomResourceDefinitionList -> Bool)
-> (V1beta1CustomResourceDefinitionList
    -> V1beta1CustomResourceDefinitionList -> Bool)
-> Eq V1beta1CustomResourceDefinitionList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CustomResourceDefinitionList
-> V1beta1CustomResourceDefinitionList -> Bool
$c/= :: V1beta1CustomResourceDefinitionList
-> V1beta1CustomResourceDefinitionList -> Bool
== :: V1beta1CustomResourceDefinitionList
-> V1beta1CustomResourceDefinitionList -> Bool
$c== :: V1beta1CustomResourceDefinitionList
-> V1beta1CustomResourceDefinitionList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CustomResourceDefinitionList
instance A.FromJSON V1beta1CustomResourceDefinitionList where
  parseJSON :: Value -> Parser V1beta1CustomResourceDefinitionList
parseJSON = String
-> (Object -> Parser V1beta1CustomResourceDefinitionList)
-> Value
-> Parser V1beta1CustomResourceDefinitionList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CustomResourceDefinitionList" ((Object -> Parser V1beta1CustomResourceDefinitionList)
 -> Value -> Parser V1beta1CustomResourceDefinitionList)
-> (Object -> Parser V1beta1CustomResourceDefinitionList)
-> Value
-> Parser V1beta1CustomResourceDefinitionList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1CustomResourceDefinition]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1CustomResourceDefinitionList
V1beta1CustomResourceDefinitionList
      (Maybe Text
 -> [V1beta1CustomResourceDefinition]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1CustomResourceDefinitionList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1CustomResourceDefinition]
      -> Maybe Text
      -> Maybe V1ListMeta
      -> V1beta1CustomResourceDefinitionList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1CustomResourceDefinition]
   -> Maybe Text
   -> Maybe V1ListMeta
   -> V1beta1CustomResourceDefinitionList)
-> Parser [V1beta1CustomResourceDefinition]
-> Parser
     (Maybe Text
      -> Maybe V1ListMeta -> V1beta1CustomResourceDefinitionList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1CustomResourceDefinition]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text
   -> Maybe V1ListMeta -> V1beta1CustomResourceDefinitionList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1CustomResourceDefinitionList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1CustomResourceDefinitionList)
-> Parser (Maybe V1ListMeta)
-> Parser V1beta1CustomResourceDefinitionList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1CustomResourceDefinitionList
instance A.ToJSON V1beta1CustomResourceDefinitionList where
  toJSON :: V1beta1CustomResourceDefinitionList -> Value
toJSON V1beta1CustomResourceDefinitionList {[V1beta1CustomResourceDefinition]
Maybe Text
Maybe V1ListMeta
v1beta1CustomResourceDefinitionListMetadata :: Maybe V1ListMeta
v1beta1CustomResourceDefinitionListKind :: Maybe Text
v1beta1CustomResourceDefinitionListItems :: [V1beta1CustomResourceDefinition]
v1beta1CustomResourceDefinitionListApiVersion :: Maybe Text
v1beta1CustomResourceDefinitionListMetadata :: V1beta1CustomResourceDefinitionList -> Maybe V1ListMeta
v1beta1CustomResourceDefinitionListKind :: V1beta1CustomResourceDefinitionList -> Maybe Text
v1beta1CustomResourceDefinitionListItems :: V1beta1CustomResourceDefinitionList
-> [V1beta1CustomResourceDefinition]
v1beta1CustomResourceDefinitionListApiVersion :: V1beta1CustomResourceDefinitionList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CustomResourceDefinitionListApiVersion
      , Text
"items" Text -> [V1beta1CustomResourceDefinition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1CustomResourceDefinition]
v1beta1CustomResourceDefinitionListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CustomResourceDefinitionListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1CustomResourceDefinitionListMetadata
      ]


-- | Construct a value of type 'V1beta1CustomResourceDefinitionList' (by applying it's required fields, if any)
mkV1beta1CustomResourceDefinitionList
  :: [V1beta1CustomResourceDefinition] -- ^ 'v1beta1CustomResourceDefinitionListItems': items list individual CustomResourceDefinition objects
  -> V1beta1CustomResourceDefinitionList
mkV1beta1CustomResourceDefinitionList :: [V1beta1CustomResourceDefinition]
-> V1beta1CustomResourceDefinitionList
mkV1beta1CustomResourceDefinitionList [V1beta1CustomResourceDefinition]
v1beta1CustomResourceDefinitionListItems =
  V1beta1CustomResourceDefinitionList :: Maybe Text
-> [V1beta1CustomResourceDefinition]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1CustomResourceDefinitionList
V1beta1CustomResourceDefinitionList
  { v1beta1CustomResourceDefinitionListApiVersion :: Maybe Text
v1beta1CustomResourceDefinitionListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1CustomResourceDefinition]
v1beta1CustomResourceDefinitionListItems :: [V1beta1CustomResourceDefinition]
v1beta1CustomResourceDefinitionListItems :: [V1beta1CustomResourceDefinition]
v1beta1CustomResourceDefinitionListItems
  , v1beta1CustomResourceDefinitionListKind :: Maybe Text
v1beta1CustomResourceDefinitionListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CustomResourceDefinitionListMetadata :: Maybe V1ListMeta
v1beta1CustomResourceDefinitionListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1CustomResourceDefinitionNames
-- | V1beta1CustomResourceDefinitionNames
-- CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition
data V1beta1CustomResourceDefinitionNames = V1beta1CustomResourceDefinitionNames
  { V1beta1CustomResourceDefinitionNames -> Maybe [Text]
v1beta1CustomResourceDefinitionNamesCategories :: !(Maybe [Text]) -- ^ "categories" - categories is a list of grouped resources this custom resource belongs to (e.g. &#39;all&#39;). This is published in API discovery documents, and used by clients to support invocations like &#x60;kubectl get all&#x60;.
  , V1beta1CustomResourceDefinitionNames -> Text
v1beta1CustomResourceDefinitionNamesKind :: !(Text) -- ^ /Required/ "kind" - kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the &#x60;kind&#x60; attribute in API calls.
  , V1beta1CustomResourceDefinitionNames -> Maybe Text
v1beta1CustomResourceDefinitionNamesListKind :: !(Maybe Text) -- ^ "listKind" - listKind is the serialized kind of the list for this resource. Defaults to \&quot;&#x60;kind&#x60;List\&quot;.
  , V1beta1CustomResourceDefinitionNames -> Text
v1beta1CustomResourceDefinitionNamesPlural :: !(Text) -- ^ /Required/ "plural" - plural is the plural name of the resource to serve. The custom resources are served under &#x60;/apis/&lt;group&gt;/&lt;version&gt;/.../&lt;plural&gt;&#x60;. Must match the name of the CustomResourceDefinition (in the form &#x60;&lt;names.plural&gt;.&lt;group&gt;&#x60;). Must be all lowercase.
  , V1beta1CustomResourceDefinitionNames -> Maybe [Text]
v1beta1CustomResourceDefinitionNamesShortNames :: !(Maybe [Text]) -- ^ "shortNames" - shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like &#x60;kubectl get &lt;shortname&gt;&#x60;. It must be all lowercase.
  , V1beta1CustomResourceDefinitionNames -> Maybe Text
v1beta1CustomResourceDefinitionNamesSingular :: !(Maybe Text) -- ^ "singular" - singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased &#x60;kind&#x60;.
  } deriving (Int -> V1beta1CustomResourceDefinitionNames -> ShowS
[V1beta1CustomResourceDefinitionNames] -> ShowS
V1beta1CustomResourceDefinitionNames -> String
(Int -> V1beta1CustomResourceDefinitionNames -> ShowS)
-> (V1beta1CustomResourceDefinitionNames -> String)
-> ([V1beta1CustomResourceDefinitionNames] -> ShowS)
-> Show V1beta1CustomResourceDefinitionNames
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CustomResourceDefinitionNames] -> ShowS
$cshowList :: [V1beta1CustomResourceDefinitionNames] -> ShowS
show :: V1beta1CustomResourceDefinitionNames -> String
$cshow :: V1beta1CustomResourceDefinitionNames -> String
showsPrec :: Int -> V1beta1CustomResourceDefinitionNames -> ShowS
$cshowsPrec :: Int -> V1beta1CustomResourceDefinitionNames -> ShowS
P.Show, V1beta1CustomResourceDefinitionNames
-> V1beta1CustomResourceDefinitionNames -> Bool
(V1beta1CustomResourceDefinitionNames
 -> V1beta1CustomResourceDefinitionNames -> Bool)
-> (V1beta1CustomResourceDefinitionNames
    -> V1beta1CustomResourceDefinitionNames -> Bool)
-> Eq V1beta1CustomResourceDefinitionNames
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CustomResourceDefinitionNames
-> V1beta1CustomResourceDefinitionNames -> Bool
$c/= :: V1beta1CustomResourceDefinitionNames
-> V1beta1CustomResourceDefinitionNames -> Bool
== :: V1beta1CustomResourceDefinitionNames
-> V1beta1CustomResourceDefinitionNames -> Bool
$c== :: V1beta1CustomResourceDefinitionNames
-> V1beta1CustomResourceDefinitionNames -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CustomResourceDefinitionNames
instance A.FromJSON V1beta1CustomResourceDefinitionNames where
  parseJSON :: Value -> Parser V1beta1CustomResourceDefinitionNames
parseJSON = String
-> (Object -> Parser V1beta1CustomResourceDefinitionNames)
-> Value
-> Parser V1beta1CustomResourceDefinitionNames
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CustomResourceDefinitionNames" ((Object -> Parser V1beta1CustomResourceDefinitionNames)
 -> Value -> Parser V1beta1CustomResourceDefinitionNames)
-> (Object -> Parser V1beta1CustomResourceDefinitionNames)
-> Value
-> Parser V1beta1CustomResourceDefinitionNames
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Text
-> Maybe Text
-> Text
-> Maybe [Text]
-> Maybe Text
-> V1beta1CustomResourceDefinitionNames
V1beta1CustomResourceDefinitionNames
      (Maybe [Text]
 -> Text
 -> Maybe Text
 -> Text
 -> Maybe [Text]
 -> Maybe Text
 -> V1beta1CustomResourceDefinitionNames)
-> Parser (Maybe [Text])
-> Parser
     (Text
      -> Maybe Text
      -> Text
      -> Maybe [Text]
      -> Maybe Text
      -> V1beta1CustomResourceDefinitionNames)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"categories")
      Parser
  (Text
   -> Maybe Text
   -> Text
   -> Maybe [Text]
   -> Maybe Text
   -> V1beta1CustomResourceDefinitionNames)
-> Parser Text
-> Parser
     (Maybe Text
      -> Text
      -> Maybe [Text]
      -> Maybe Text
      -> V1beta1CustomResourceDefinitionNames)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kind")
      Parser
  (Maybe Text
   -> Text
   -> Maybe [Text]
   -> Maybe Text
   -> V1beta1CustomResourceDefinitionNames)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe [Text]
      -> Maybe Text
      -> V1beta1CustomResourceDefinitionNames)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"listKind")
      Parser
  (Text
   -> Maybe [Text]
   -> Maybe Text
   -> V1beta1CustomResourceDefinitionNames)
-> Parser Text
-> Parser
     (Maybe [Text]
      -> Maybe Text -> V1beta1CustomResourceDefinitionNames)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"plural")
      Parser
  (Maybe [Text]
   -> Maybe Text -> V1beta1CustomResourceDefinitionNames)
-> Parser (Maybe [Text])
-> Parser (Maybe Text -> V1beta1CustomResourceDefinitionNames)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"shortNames")
      Parser (Maybe Text -> V1beta1CustomResourceDefinitionNames)
-> Parser (Maybe Text)
-> Parser V1beta1CustomResourceDefinitionNames
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"singular")

-- | ToJSON V1beta1CustomResourceDefinitionNames
instance A.ToJSON V1beta1CustomResourceDefinitionNames where
  toJSON :: V1beta1CustomResourceDefinitionNames -> Value
toJSON V1beta1CustomResourceDefinitionNames {Maybe [Text]
Maybe Text
Text
v1beta1CustomResourceDefinitionNamesSingular :: Maybe Text
v1beta1CustomResourceDefinitionNamesShortNames :: Maybe [Text]
v1beta1CustomResourceDefinitionNamesPlural :: Text
v1beta1CustomResourceDefinitionNamesListKind :: Maybe Text
v1beta1CustomResourceDefinitionNamesKind :: Text
v1beta1CustomResourceDefinitionNamesCategories :: Maybe [Text]
v1beta1CustomResourceDefinitionNamesSingular :: V1beta1CustomResourceDefinitionNames -> Maybe Text
v1beta1CustomResourceDefinitionNamesShortNames :: V1beta1CustomResourceDefinitionNames -> Maybe [Text]
v1beta1CustomResourceDefinitionNamesPlural :: V1beta1CustomResourceDefinitionNames -> Text
v1beta1CustomResourceDefinitionNamesListKind :: V1beta1CustomResourceDefinitionNames -> Maybe Text
v1beta1CustomResourceDefinitionNamesKind :: V1beta1CustomResourceDefinitionNames -> Text
v1beta1CustomResourceDefinitionNamesCategories :: V1beta1CustomResourceDefinitionNames -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"categories" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1CustomResourceDefinitionNamesCategories
      , Text
"kind" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CustomResourceDefinitionNamesKind
      , Text
"listKind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CustomResourceDefinitionNamesListKind
      , Text
"plural" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CustomResourceDefinitionNamesPlural
      , Text
"shortNames" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1CustomResourceDefinitionNamesShortNames
      , Text
"singular" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CustomResourceDefinitionNamesSingular
      ]


-- | Construct a value of type 'V1beta1CustomResourceDefinitionNames' (by applying it's required fields, if any)
mkV1beta1CustomResourceDefinitionNames
  :: Text -- ^ 'v1beta1CustomResourceDefinitionNamesKind': kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.
  -> Text -- ^ 'v1beta1CustomResourceDefinitionNamesPlural': plural is the plural name of the resource to serve. The custom resources are served under `/apis/<group>/<version>/.../<plural>`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`). Must be all lowercase.
  -> V1beta1CustomResourceDefinitionNames
mkV1beta1CustomResourceDefinitionNames :: Text -> Text -> V1beta1CustomResourceDefinitionNames
mkV1beta1CustomResourceDefinitionNames Text
v1beta1CustomResourceDefinitionNamesKind Text
v1beta1CustomResourceDefinitionNamesPlural =
  V1beta1CustomResourceDefinitionNames :: Maybe [Text]
-> Text
-> Maybe Text
-> Text
-> Maybe [Text]
-> Maybe Text
-> V1beta1CustomResourceDefinitionNames
V1beta1CustomResourceDefinitionNames
  { v1beta1CustomResourceDefinitionNamesCategories :: Maybe [Text]
v1beta1CustomResourceDefinitionNamesCategories = Maybe [Text]
forall a. Maybe a
Nothing
  , Text
v1beta1CustomResourceDefinitionNamesKind :: Text
v1beta1CustomResourceDefinitionNamesKind :: Text
v1beta1CustomResourceDefinitionNamesKind
  , v1beta1CustomResourceDefinitionNamesListKind :: Maybe Text
v1beta1CustomResourceDefinitionNamesListKind = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta1CustomResourceDefinitionNamesPlural :: Text
v1beta1CustomResourceDefinitionNamesPlural :: Text
v1beta1CustomResourceDefinitionNamesPlural
  , v1beta1CustomResourceDefinitionNamesShortNames :: Maybe [Text]
v1beta1CustomResourceDefinitionNamesShortNames = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1CustomResourceDefinitionNamesSingular :: Maybe Text
v1beta1CustomResourceDefinitionNamesSingular = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1CustomResourceDefinitionSpec
-- | V1beta1CustomResourceDefinitionSpec
-- CustomResourceDefinitionSpec describes how a user wants their resource to appear
data V1beta1CustomResourceDefinitionSpec = V1beta1CustomResourceDefinitionSpec
  { V1beta1CustomResourceDefinitionSpec
-> Maybe [V1beta1CustomResourceColumnDefinition]
v1beta1CustomResourceDefinitionSpecAdditionalPrinterColumns :: !(Maybe [V1beta1CustomResourceColumnDefinition]) -- ^ "additionalPrinterColumns" - additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If present, this field configures columns for all versions. Top-level and per-version columns are mutually exclusive. If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.
  , V1beta1CustomResourceDefinitionSpec
-> Maybe V1beta1CustomResourceConversion
v1beta1CustomResourceDefinitionSpecConversion :: !(Maybe V1beta1CustomResourceConversion) -- ^ "conversion"
  , V1beta1CustomResourceDefinitionSpec -> Text
v1beta1CustomResourceDefinitionSpecGroup :: !(Text) -- ^ /Required/ "group" - group is the API group of the defined custom resource. The custom resources are served under &#x60;/apis/&lt;group&gt;/...&#x60;. Must match the name of the CustomResourceDefinition (in the form &#x60;&lt;names.plural&gt;.&lt;group&gt;&#x60;).
  , V1beta1CustomResourceDefinitionSpec
-> V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionSpecNames :: !(V1beta1CustomResourceDefinitionNames) -- ^ /Required/ "names"
  , V1beta1CustomResourceDefinitionSpec -> Maybe Bool
v1beta1CustomResourceDefinitionSpecPreserveUnknownFields :: !(Maybe Bool) -- ^ "preserveUnknownFields" - preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. If false, schemas must be defined for all versions. Defaults to true in v1beta for backwards compatibility. Deprecated: will be required to be false in v1. Preservation of unknown fields can be specified in the validation schema using the &#x60;x-kubernetes-preserve-unknown-fields: true&#x60; extension. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields for details.
  , V1beta1CustomResourceDefinitionSpec -> Text
v1beta1CustomResourceDefinitionSpecScope :: !(Text) -- ^ /Required/ "scope" - scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are &#x60;Cluster&#x60; and &#x60;Namespaced&#x60;. Default is &#x60;Namespaced&#x60;.
  , V1beta1CustomResourceDefinitionSpec
-> Maybe V1beta1CustomResourceSubresources
v1beta1CustomResourceDefinitionSpecSubresources :: !(Maybe V1beta1CustomResourceSubresources) -- ^ "subresources"
  , V1beta1CustomResourceDefinitionSpec
-> Maybe V1beta1CustomResourceValidation
v1beta1CustomResourceDefinitionSpecValidation :: !(Maybe V1beta1CustomResourceValidation) -- ^ "validation"
  , V1beta1CustomResourceDefinitionSpec -> Maybe Text
v1beta1CustomResourceDefinitionSpecVersion :: !(Maybe Text) -- ^ "version" - version is the API version of the defined custom resource. The custom resources are served under &#x60;/apis/&lt;group&gt;/&lt;version&gt;/...&#x60;. Must match the name of the first item in the &#x60;versions&#x60; list if &#x60;version&#x60; and &#x60;versions&#x60; are both specified. Optional if &#x60;versions&#x60; is specified. Deprecated: use &#x60;versions&#x60; instead.
  , V1beta1CustomResourceDefinitionSpec
-> Maybe [V1beta1CustomResourceDefinitionVersion]
v1beta1CustomResourceDefinitionSpecVersions :: !(Maybe [V1beta1CustomResourceDefinitionVersion]) -- ^ "versions" - versions is the list of all API versions of the defined custom resource. Optional if &#x60;version&#x60; is specified. The name of the first item in the &#x60;versions&#x60; list must match the &#x60;version&#x60; field if &#x60;version&#x60; and &#x60;versions&#x60; are both specified. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \&quot;kube-like\&quot;, it will sort above non \&quot;kube-like\&quot; version strings, which are ordered lexicographically. \&quot;Kube-like\&quot; versions start with a \&quot;v\&quot;, then are followed by a number (the major version), then optionally the string \&quot;alpha\&quot; or \&quot;beta\&quot; and another number (the minor version). These are sorted first by GA &gt; beta &gt; alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
  } deriving (Int -> V1beta1CustomResourceDefinitionSpec -> ShowS
[V1beta1CustomResourceDefinitionSpec] -> ShowS
V1beta1CustomResourceDefinitionSpec -> String
(Int -> V1beta1CustomResourceDefinitionSpec -> ShowS)
-> (V1beta1CustomResourceDefinitionSpec -> String)
-> ([V1beta1CustomResourceDefinitionSpec] -> ShowS)
-> Show V1beta1CustomResourceDefinitionSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CustomResourceDefinitionSpec] -> ShowS
$cshowList :: [V1beta1CustomResourceDefinitionSpec] -> ShowS
show :: V1beta1CustomResourceDefinitionSpec -> String
$cshow :: V1beta1CustomResourceDefinitionSpec -> String
showsPrec :: Int -> V1beta1CustomResourceDefinitionSpec -> ShowS
$cshowsPrec :: Int -> V1beta1CustomResourceDefinitionSpec -> ShowS
P.Show, V1beta1CustomResourceDefinitionSpec
-> V1beta1CustomResourceDefinitionSpec -> Bool
(V1beta1CustomResourceDefinitionSpec
 -> V1beta1CustomResourceDefinitionSpec -> Bool)
-> (V1beta1CustomResourceDefinitionSpec
    -> V1beta1CustomResourceDefinitionSpec -> Bool)
-> Eq V1beta1CustomResourceDefinitionSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CustomResourceDefinitionSpec
-> V1beta1CustomResourceDefinitionSpec -> Bool
$c/= :: V1beta1CustomResourceDefinitionSpec
-> V1beta1CustomResourceDefinitionSpec -> Bool
== :: V1beta1CustomResourceDefinitionSpec
-> V1beta1CustomResourceDefinitionSpec -> Bool
$c== :: V1beta1CustomResourceDefinitionSpec
-> V1beta1CustomResourceDefinitionSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CustomResourceDefinitionSpec
instance A.FromJSON V1beta1CustomResourceDefinitionSpec where
  parseJSON :: Value -> Parser V1beta1CustomResourceDefinitionSpec
parseJSON = String
-> (Object -> Parser V1beta1CustomResourceDefinitionSpec)
-> Value
-> Parser V1beta1CustomResourceDefinitionSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CustomResourceDefinitionSpec" ((Object -> Parser V1beta1CustomResourceDefinitionSpec)
 -> Value -> Parser V1beta1CustomResourceDefinitionSpec)
-> (Object -> Parser V1beta1CustomResourceDefinitionSpec)
-> Value
-> Parser V1beta1CustomResourceDefinitionSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1beta1CustomResourceColumnDefinition]
-> Maybe V1beta1CustomResourceConversion
-> Text
-> V1beta1CustomResourceDefinitionNames
-> Maybe Bool
-> Text
-> Maybe V1beta1CustomResourceSubresources
-> Maybe V1beta1CustomResourceValidation
-> Maybe Text
-> Maybe [V1beta1CustomResourceDefinitionVersion]
-> V1beta1CustomResourceDefinitionSpec
V1beta1CustomResourceDefinitionSpec
      (Maybe [V1beta1CustomResourceColumnDefinition]
 -> Maybe V1beta1CustomResourceConversion
 -> Text
 -> V1beta1CustomResourceDefinitionNames
 -> Maybe Bool
 -> Text
 -> Maybe V1beta1CustomResourceSubresources
 -> Maybe V1beta1CustomResourceValidation
 -> Maybe Text
 -> Maybe [V1beta1CustomResourceDefinitionVersion]
 -> V1beta1CustomResourceDefinitionSpec)
-> Parser (Maybe [V1beta1CustomResourceColumnDefinition])
-> Parser
     (Maybe V1beta1CustomResourceConversion
      -> Text
      -> V1beta1CustomResourceDefinitionNames
      -> Maybe Bool
      -> Text
      -> Maybe V1beta1CustomResourceSubresources
      -> Maybe V1beta1CustomResourceValidation
      -> Maybe Text
      -> Maybe [V1beta1CustomResourceDefinitionVersion]
      -> V1beta1CustomResourceDefinitionSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object
-> Text -> Parser (Maybe [V1beta1CustomResourceColumnDefinition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"additionalPrinterColumns")
      Parser
  (Maybe V1beta1CustomResourceConversion
   -> Text
   -> V1beta1CustomResourceDefinitionNames
   -> Maybe Bool
   -> Text
   -> Maybe V1beta1CustomResourceSubresources
   -> Maybe V1beta1CustomResourceValidation
   -> Maybe Text
   -> Maybe [V1beta1CustomResourceDefinitionVersion]
   -> V1beta1CustomResourceDefinitionSpec)
-> Parser (Maybe V1beta1CustomResourceConversion)
-> Parser
     (Text
      -> V1beta1CustomResourceDefinitionNames
      -> Maybe Bool
      -> Text
      -> Maybe V1beta1CustomResourceSubresources
      -> Maybe V1beta1CustomResourceValidation
      -> Maybe Text
      -> Maybe [V1beta1CustomResourceDefinitionVersion]
      -> V1beta1CustomResourceDefinitionSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1CustomResourceConversion)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conversion")
      Parser
  (Text
   -> V1beta1CustomResourceDefinitionNames
   -> Maybe Bool
   -> Text
   -> Maybe V1beta1CustomResourceSubresources
   -> Maybe V1beta1CustomResourceValidation
   -> Maybe Text
   -> Maybe [V1beta1CustomResourceDefinitionVersion]
   -> V1beta1CustomResourceDefinitionSpec)
-> Parser Text
-> Parser
     (V1beta1CustomResourceDefinitionNames
      -> Maybe Bool
      -> Text
      -> Maybe V1beta1CustomResourceSubresources
      -> Maybe V1beta1CustomResourceValidation
      -> Maybe Text
      -> Maybe [V1beta1CustomResourceDefinitionVersion]
      -> V1beta1CustomResourceDefinitionSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"group")
      Parser
  (V1beta1CustomResourceDefinitionNames
   -> Maybe Bool
   -> Text
   -> Maybe V1beta1CustomResourceSubresources
   -> Maybe V1beta1CustomResourceValidation
   -> Maybe Text
   -> Maybe [V1beta1CustomResourceDefinitionVersion]
   -> V1beta1CustomResourceDefinitionSpec)
-> Parser V1beta1CustomResourceDefinitionNames
-> Parser
     (Maybe Bool
      -> Text
      -> Maybe V1beta1CustomResourceSubresources
      -> Maybe V1beta1CustomResourceValidation
      -> Maybe Text
      -> Maybe [V1beta1CustomResourceDefinitionVersion]
      -> V1beta1CustomResourceDefinitionSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1beta1CustomResourceDefinitionNames
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"names")
      Parser
  (Maybe Bool
   -> Text
   -> Maybe V1beta1CustomResourceSubresources
   -> Maybe V1beta1CustomResourceValidation
   -> Maybe Text
   -> Maybe [V1beta1CustomResourceDefinitionVersion]
   -> V1beta1CustomResourceDefinitionSpec)
-> Parser (Maybe Bool)
-> Parser
     (Text
      -> Maybe V1beta1CustomResourceSubresources
      -> Maybe V1beta1CustomResourceValidation
      -> Maybe Text
      -> Maybe [V1beta1CustomResourceDefinitionVersion]
      -> V1beta1CustomResourceDefinitionSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"preserveUnknownFields")
      Parser
  (Text
   -> Maybe V1beta1CustomResourceSubresources
   -> Maybe V1beta1CustomResourceValidation
   -> Maybe Text
   -> Maybe [V1beta1CustomResourceDefinitionVersion]
   -> V1beta1CustomResourceDefinitionSpec)
-> Parser Text
-> Parser
     (Maybe V1beta1CustomResourceSubresources
      -> Maybe V1beta1CustomResourceValidation
      -> Maybe Text
      -> Maybe [V1beta1CustomResourceDefinitionVersion]
      -> V1beta1CustomResourceDefinitionSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"scope")
      Parser
  (Maybe V1beta1CustomResourceSubresources
   -> Maybe V1beta1CustomResourceValidation
   -> Maybe Text
   -> Maybe [V1beta1CustomResourceDefinitionVersion]
   -> V1beta1CustomResourceDefinitionSpec)
-> Parser (Maybe V1beta1CustomResourceSubresources)
-> Parser
     (Maybe V1beta1CustomResourceValidation
      -> Maybe Text
      -> Maybe [V1beta1CustomResourceDefinitionVersion]
      -> V1beta1CustomResourceDefinitionSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1CustomResourceSubresources)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"subresources")
      Parser
  (Maybe V1beta1CustomResourceValidation
   -> Maybe Text
   -> Maybe [V1beta1CustomResourceDefinitionVersion]
   -> V1beta1CustomResourceDefinitionSpec)
-> Parser (Maybe V1beta1CustomResourceValidation)
-> Parser
     (Maybe Text
      -> Maybe [V1beta1CustomResourceDefinitionVersion]
      -> V1beta1CustomResourceDefinitionSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1CustomResourceValidation)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"validation")
      Parser
  (Maybe Text
   -> Maybe [V1beta1CustomResourceDefinitionVersion]
   -> V1beta1CustomResourceDefinitionSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe [V1beta1CustomResourceDefinitionVersion]
      -> V1beta1CustomResourceDefinitionSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"version")
      Parser
  (Maybe [V1beta1CustomResourceDefinitionVersion]
   -> V1beta1CustomResourceDefinitionSpec)
-> Parser (Maybe [V1beta1CustomResourceDefinitionVersion])
-> Parser V1beta1CustomResourceDefinitionSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe [V1beta1CustomResourceDefinitionVersion])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"versions")

-- | ToJSON V1beta1CustomResourceDefinitionSpec
instance A.ToJSON V1beta1CustomResourceDefinitionSpec where
  toJSON :: V1beta1CustomResourceDefinitionSpec -> Value
toJSON V1beta1CustomResourceDefinitionSpec {Maybe Bool
Maybe [V1beta1CustomResourceDefinitionVersion]
Maybe [V1beta1CustomResourceColumnDefinition]
Maybe Text
Maybe V1beta1CustomResourceValidation
Maybe V1beta1CustomResourceSubresources
Maybe V1beta1CustomResourceConversion
Text
V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionSpecVersions :: Maybe [V1beta1CustomResourceDefinitionVersion]
v1beta1CustomResourceDefinitionSpecVersion :: Maybe Text
v1beta1CustomResourceDefinitionSpecValidation :: Maybe V1beta1CustomResourceValidation
v1beta1CustomResourceDefinitionSpecSubresources :: Maybe V1beta1CustomResourceSubresources
v1beta1CustomResourceDefinitionSpecScope :: Text
v1beta1CustomResourceDefinitionSpecPreserveUnknownFields :: Maybe Bool
v1beta1CustomResourceDefinitionSpecNames :: V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionSpecGroup :: Text
v1beta1CustomResourceDefinitionSpecConversion :: Maybe V1beta1CustomResourceConversion
v1beta1CustomResourceDefinitionSpecAdditionalPrinterColumns :: Maybe [V1beta1CustomResourceColumnDefinition]
v1beta1CustomResourceDefinitionSpecVersions :: V1beta1CustomResourceDefinitionSpec
-> Maybe [V1beta1CustomResourceDefinitionVersion]
v1beta1CustomResourceDefinitionSpecVersion :: V1beta1CustomResourceDefinitionSpec -> Maybe Text
v1beta1CustomResourceDefinitionSpecValidation :: V1beta1CustomResourceDefinitionSpec
-> Maybe V1beta1CustomResourceValidation
v1beta1CustomResourceDefinitionSpecSubresources :: V1beta1CustomResourceDefinitionSpec
-> Maybe V1beta1CustomResourceSubresources
v1beta1CustomResourceDefinitionSpecScope :: V1beta1CustomResourceDefinitionSpec -> Text
v1beta1CustomResourceDefinitionSpecPreserveUnknownFields :: V1beta1CustomResourceDefinitionSpec -> Maybe Bool
v1beta1CustomResourceDefinitionSpecNames :: V1beta1CustomResourceDefinitionSpec
-> V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionSpecGroup :: V1beta1CustomResourceDefinitionSpec -> Text
v1beta1CustomResourceDefinitionSpecConversion :: V1beta1CustomResourceDefinitionSpec
-> Maybe V1beta1CustomResourceConversion
v1beta1CustomResourceDefinitionSpecAdditionalPrinterColumns :: V1beta1CustomResourceDefinitionSpec
-> Maybe [V1beta1CustomResourceColumnDefinition]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"additionalPrinterColumns" Text
-> Maybe [V1beta1CustomResourceColumnDefinition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1CustomResourceColumnDefinition]
v1beta1CustomResourceDefinitionSpecAdditionalPrinterColumns
      , Text
"conversion" Text -> Maybe V1beta1CustomResourceConversion -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1CustomResourceConversion
v1beta1CustomResourceDefinitionSpecConversion
      , Text
"group" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CustomResourceDefinitionSpecGroup
      , Text
"names" Text -> V1beta1CustomResourceDefinitionNames -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionSpecNames
      , Text
"preserveUnknownFields" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta1CustomResourceDefinitionSpecPreserveUnknownFields
      , Text
"scope" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CustomResourceDefinitionSpecScope
      , Text
"subresources" Text -> Maybe V1beta1CustomResourceSubresources -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1CustomResourceSubresources
v1beta1CustomResourceDefinitionSpecSubresources
      , Text
"validation" Text -> Maybe V1beta1CustomResourceValidation -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1CustomResourceValidation
v1beta1CustomResourceDefinitionSpecValidation
      , Text
"version" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CustomResourceDefinitionSpecVersion
      , Text
"versions" Text
-> Maybe [V1beta1CustomResourceDefinitionVersion] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1CustomResourceDefinitionVersion]
v1beta1CustomResourceDefinitionSpecVersions
      ]


-- | Construct a value of type 'V1beta1CustomResourceDefinitionSpec' (by applying it's required fields, if any)
mkV1beta1CustomResourceDefinitionSpec
  :: Text -- ^ 'v1beta1CustomResourceDefinitionSpecGroup': group is the API group of the defined custom resource. The custom resources are served under `/apis/<group>/...`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`).
  -> V1beta1CustomResourceDefinitionNames -- ^ 'v1beta1CustomResourceDefinitionSpecNames' 
  -> Text -- ^ 'v1beta1CustomResourceDefinitionSpecScope': scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`. Default is `Namespaced`.
  -> V1beta1CustomResourceDefinitionSpec
mkV1beta1CustomResourceDefinitionSpec :: Text
-> V1beta1CustomResourceDefinitionNames
-> Text
-> V1beta1CustomResourceDefinitionSpec
mkV1beta1CustomResourceDefinitionSpec Text
v1beta1CustomResourceDefinitionSpecGroup V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionSpecNames Text
v1beta1CustomResourceDefinitionSpecScope =
  V1beta1CustomResourceDefinitionSpec :: Maybe [V1beta1CustomResourceColumnDefinition]
-> Maybe V1beta1CustomResourceConversion
-> Text
-> V1beta1CustomResourceDefinitionNames
-> Maybe Bool
-> Text
-> Maybe V1beta1CustomResourceSubresources
-> Maybe V1beta1CustomResourceValidation
-> Maybe Text
-> Maybe [V1beta1CustomResourceDefinitionVersion]
-> V1beta1CustomResourceDefinitionSpec
V1beta1CustomResourceDefinitionSpec
  { v1beta1CustomResourceDefinitionSpecAdditionalPrinterColumns :: Maybe [V1beta1CustomResourceColumnDefinition]
v1beta1CustomResourceDefinitionSpecAdditionalPrinterColumns = Maybe [V1beta1CustomResourceColumnDefinition]
forall a. Maybe a
Nothing
  , v1beta1CustomResourceDefinitionSpecConversion :: Maybe V1beta1CustomResourceConversion
v1beta1CustomResourceDefinitionSpecConversion = Maybe V1beta1CustomResourceConversion
forall a. Maybe a
Nothing
  , Text
v1beta1CustomResourceDefinitionSpecGroup :: Text
v1beta1CustomResourceDefinitionSpecGroup :: Text
v1beta1CustomResourceDefinitionSpecGroup
  , V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionSpecNames :: V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionSpecNames :: V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionSpecNames
  , v1beta1CustomResourceDefinitionSpecPreserveUnknownFields :: Maybe Bool
v1beta1CustomResourceDefinitionSpecPreserveUnknownFields = Maybe Bool
forall a. Maybe a
Nothing
  , Text
v1beta1CustomResourceDefinitionSpecScope :: Text
v1beta1CustomResourceDefinitionSpecScope :: Text
v1beta1CustomResourceDefinitionSpecScope
  , v1beta1CustomResourceDefinitionSpecSubresources :: Maybe V1beta1CustomResourceSubresources
v1beta1CustomResourceDefinitionSpecSubresources = Maybe V1beta1CustomResourceSubresources
forall a. Maybe a
Nothing
  , v1beta1CustomResourceDefinitionSpecValidation :: Maybe V1beta1CustomResourceValidation
v1beta1CustomResourceDefinitionSpecValidation = Maybe V1beta1CustomResourceValidation
forall a. Maybe a
Nothing
  , v1beta1CustomResourceDefinitionSpecVersion :: Maybe Text
v1beta1CustomResourceDefinitionSpecVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1CustomResourceDefinitionSpecVersions :: Maybe [V1beta1CustomResourceDefinitionVersion]
v1beta1CustomResourceDefinitionSpecVersions = Maybe [V1beta1CustomResourceDefinitionVersion]
forall a. Maybe a
Nothing
  }

-- ** V1beta1CustomResourceDefinitionStatus
-- | V1beta1CustomResourceDefinitionStatus
-- CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition
data V1beta1CustomResourceDefinitionStatus = V1beta1CustomResourceDefinitionStatus
  { V1beta1CustomResourceDefinitionStatus
-> V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionStatusAcceptedNames :: !(V1beta1CustomResourceDefinitionNames) -- ^ /Required/ "acceptedNames"
  , V1beta1CustomResourceDefinitionStatus
-> Maybe [V1beta1CustomResourceDefinitionCondition]
v1beta1CustomResourceDefinitionStatusConditions :: !(Maybe [V1beta1CustomResourceDefinitionCondition]) -- ^ "conditions" - conditions indicate state for particular aspects of a CustomResourceDefinition
  , V1beta1CustomResourceDefinitionStatus -> [Text]
v1beta1CustomResourceDefinitionStatusStoredVersions :: !([Text]) -- ^ /Required/ "storedVersions" - storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from &#x60;spec.versions&#x60; while they exist in this list.
  } deriving (Int -> V1beta1CustomResourceDefinitionStatus -> ShowS
[V1beta1CustomResourceDefinitionStatus] -> ShowS
V1beta1CustomResourceDefinitionStatus -> String
(Int -> V1beta1CustomResourceDefinitionStatus -> ShowS)
-> (V1beta1CustomResourceDefinitionStatus -> String)
-> ([V1beta1CustomResourceDefinitionStatus] -> ShowS)
-> Show V1beta1CustomResourceDefinitionStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CustomResourceDefinitionStatus] -> ShowS
$cshowList :: [V1beta1CustomResourceDefinitionStatus] -> ShowS
show :: V1beta1CustomResourceDefinitionStatus -> String
$cshow :: V1beta1CustomResourceDefinitionStatus -> String
showsPrec :: Int -> V1beta1CustomResourceDefinitionStatus -> ShowS
$cshowsPrec :: Int -> V1beta1CustomResourceDefinitionStatus -> ShowS
P.Show, V1beta1CustomResourceDefinitionStatus
-> V1beta1CustomResourceDefinitionStatus -> Bool
(V1beta1CustomResourceDefinitionStatus
 -> V1beta1CustomResourceDefinitionStatus -> Bool)
-> (V1beta1CustomResourceDefinitionStatus
    -> V1beta1CustomResourceDefinitionStatus -> Bool)
-> Eq V1beta1CustomResourceDefinitionStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CustomResourceDefinitionStatus
-> V1beta1CustomResourceDefinitionStatus -> Bool
$c/= :: V1beta1CustomResourceDefinitionStatus
-> V1beta1CustomResourceDefinitionStatus -> Bool
== :: V1beta1CustomResourceDefinitionStatus
-> V1beta1CustomResourceDefinitionStatus -> Bool
$c== :: V1beta1CustomResourceDefinitionStatus
-> V1beta1CustomResourceDefinitionStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CustomResourceDefinitionStatus
instance A.FromJSON V1beta1CustomResourceDefinitionStatus where
  parseJSON :: Value -> Parser V1beta1CustomResourceDefinitionStatus
parseJSON = String
-> (Object -> Parser V1beta1CustomResourceDefinitionStatus)
-> Value
-> Parser V1beta1CustomResourceDefinitionStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CustomResourceDefinitionStatus" ((Object -> Parser V1beta1CustomResourceDefinitionStatus)
 -> Value -> Parser V1beta1CustomResourceDefinitionStatus)
-> (Object -> Parser V1beta1CustomResourceDefinitionStatus)
-> Value
-> Parser V1beta1CustomResourceDefinitionStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    V1beta1CustomResourceDefinitionNames
-> Maybe [V1beta1CustomResourceDefinitionCondition]
-> [Text]
-> V1beta1CustomResourceDefinitionStatus
V1beta1CustomResourceDefinitionStatus
      (V1beta1CustomResourceDefinitionNames
 -> Maybe [V1beta1CustomResourceDefinitionCondition]
 -> [Text]
 -> V1beta1CustomResourceDefinitionStatus)
-> Parser V1beta1CustomResourceDefinitionNames
-> Parser
     (Maybe [V1beta1CustomResourceDefinitionCondition]
      -> [Text] -> V1beta1CustomResourceDefinitionStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser V1beta1CustomResourceDefinitionNames
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"acceptedNames")
      Parser
  (Maybe [V1beta1CustomResourceDefinitionCondition]
   -> [Text] -> V1beta1CustomResourceDefinitionStatus)
-> Parser (Maybe [V1beta1CustomResourceDefinitionCondition])
-> Parser ([Text] -> V1beta1CustomResourceDefinitionStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text
-> Parser (Maybe [V1beta1CustomResourceDefinitionCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser ([Text] -> V1beta1CustomResourceDefinitionStatus)
-> Parser [Text] -> Parser V1beta1CustomResourceDefinitionStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"storedVersions")

-- | ToJSON V1beta1CustomResourceDefinitionStatus
instance A.ToJSON V1beta1CustomResourceDefinitionStatus where
  toJSON :: V1beta1CustomResourceDefinitionStatus -> Value
toJSON V1beta1CustomResourceDefinitionStatus {[Text]
Maybe [V1beta1CustomResourceDefinitionCondition]
V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionStatusStoredVersions :: [Text]
v1beta1CustomResourceDefinitionStatusConditions :: Maybe [V1beta1CustomResourceDefinitionCondition]
v1beta1CustomResourceDefinitionStatusAcceptedNames :: V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionStatusStoredVersions :: V1beta1CustomResourceDefinitionStatus -> [Text]
v1beta1CustomResourceDefinitionStatusConditions :: V1beta1CustomResourceDefinitionStatus
-> Maybe [V1beta1CustomResourceDefinitionCondition]
v1beta1CustomResourceDefinitionStatusAcceptedNames :: V1beta1CustomResourceDefinitionStatus
-> V1beta1CustomResourceDefinitionNames
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"acceptedNames" Text -> V1beta1CustomResourceDefinitionNames -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionStatusAcceptedNames
      , Text
"conditions" Text
-> Maybe [V1beta1CustomResourceDefinitionCondition]
-> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1CustomResourceDefinitionCondition]
v1beta1CustomResourceDefinitionStatusConditions
      , Text
"storedVersions" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1beta1CustomResourceDefinitionStatusStoredVersions
      ]


-- | Construct a value of type 'V1beta1CustomResourceDefinitionStatus' (by applying it's required fields, if any)
mkV1beta1CustomResourceDefinitionStatus
  :: V1beta1CustomResourceDefinitionNames -- ^ 'v1beta1CustomResourceDefinitionStatusAcceptedNames' 
  -> [Text] -- ^ 'v1beta1CustomResourceDefinitionStatusStoredVersions': storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.
  -> V1beta1CustomResourceDefinitionStatus
mkV1beta1CustomResourceDefinitionStatus :: V1beta1CustomResourceDefinitionNames
-> [Text] -> V1beta1CustomResourceDefinitionStatus
mkV1beta1CustomResourceDefinitionStatus V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionStatusAcceptedNames [Text]
v1beta1CustomResourceDefinitionStatusStoredVersions =
  V1beta1CustomResourceDefinitionStatus :: V1beta1CustomResourceDefinitionNames
-> Maybe [V1beta1CustomResourceDefinitionCondition]
-> [Text]
-> V1beta1CustomResourceDefinitionStatus
V1beta1CustomResourceDefinitionStatus
  { V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionStatusAcceptedNames :: V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionStatusAcceptedNames :: V1beta1CustomResourceDefinitionNames
v1beta1CustomResourceDefinitionStatusAcceptedNames
  , v1beta1CustomResourceDefinitionStatusConditions :: Maybe [V1beta1CustomResourceDefinitionCondition]
v1beta1CustomResourceDefinitionStatusConditions = Maybe [V1beta1CustomResourceDefinitionCondition]
forall a. Maybe a
Nothing
  , [Text]
v1beta1CustomResourceDefinitionStatusStoredVersions :: [Text]
v1beta1CustomResourceDefinitionStatusStoredVersions :: [Text]
v1beta1CustomResourceDefinitionStatusStoredVersions
  }

-- ** V1beta1CustomResourceDefinitionVersion
-- | V1beta1CustomResourceDefinitionVersion
-- CustomResourceDefinitionVersion describes a version for CRD.
data V1beta1CustomResourceDefinitionVersion = V1beta1CustomResourceDefinitionVersion
  { V1beta1CustomResourceDefinitionVersion
-> Maybe [V1beta1CustomResourceColumnDefinition]
v1beta1CustomResourceDefinitionVersionAdditionalPrinterColumns :: !(Maybe [V1beta1CustomResourceColumnDefinition]) -- ^ "additionalPrinterColumns" - additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. Top-level and per-version columns are mutually exclusive. Per-version columns must not all be set to identical values (top-level columns should be used instead). If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.
  , V1beta1CustomResourceDefinitionVersion -> Text
v1beta1CustomResourceDefinitionVersionName :: !(Text) -- ^ /Required/ "name" - name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at &#x60;/apis/&lt;group&gt;/&lt;version&gt;/...&#x60; if &#x60;served&#x60; is true.
  , V1beta1CustomResourceDefinitionVersion
-> Maybe V1beta1CustomResourceValidation
v1beta1CustomResourceDefinitionVersionSchema :: !(Maybe V1beta1CustomResourceValidation) -- ^ "schema"
  , V1beta1CustomResourceDefinitionVersion -> Bool
v1beta1CustomResourceDefinitionVersionServed :: !(Bool) -- ^ /Required/ "served" - served is a flag enabling/disabling this version from being served via REST APIs
  , V1beta1CustomResourceDefinitionVersion -> Bool
v1beta1CustomResourceDefinitionVersionStorage :: !(Bool) -- ^ /Required/ "storage" - storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage&#x3D;true.
  , V1beta1CustomResourceDefinitionVersion
-> Maybe V1beta1CustomResourceSubresources
v1beta1CustomResourceDefinitionVersionSubresources :: !(Maybe V1beta1CustomResourceSubresources) -- ^ "subresources"
  } deriving (Int -> V1beta1CustomResourceDefinitionVersion -> ShowS
[V1beta1CustomResourceDefinitionVersion] -> ShowS
V1beta1CustomResourceDefinitionVersion -> String
(Int -> V1beta1CustomResourceDefinitionVersion -> ShowS)
-> (V1beta1CustomResourceDefinitionVersion -> String)
-> ([V1beta1CustomResourceDefinitionVersion] -> ShowS)
-> Show V1beta1CustomResourceDefinitionVersion
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CustomResourceDefinitionVersion] -> ShowS
$cshowList :: [V1beta1CustomResourceDefinitionVersion] -> ShowS
show :: V1beta1CustomResourceDefinitionVersion -> String
$cshow :: V1beta1CustomResourceDefinitionVersion -> String
showsPrec :: Int -> V1beta1CustomResourceDefinitionVersion -> ShowS
$cshowsPrec :: Int -> V1beta1CustomResourceDefinitionVersion -> ShowS
P.Show, V1beta1CustomResourceDefinitionVersion
-> V1beta1CustomResourceDefinitionVersion -> Bool
(V1beta1CustomResourceDefinitionVersion
 -> V1beta1CustomResourceDefinitionVersion -> Bool)
-> (V1beta1CustomResourceDefinitionVersion
    -> V1beta1CustomResourceDefinitionVersion -> Bool)
-> Eq V1beta1CustomResourceDefinitionVersion
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CustomResourceDefinitionVersion
-> V1beta1CustomResourceDefinitionVersion -> Bool
$c/= :: V1beta1CustomResourceDefinitionVersion
-> V1beta1CustomResourceDefinitionVersion -> Bool
== :: V1beta1CustomResourceDefinitionVersion
-> V1beta1CustomResourceDefinitionVersion -> Bool
$c== :: V1beta1CustomResourceDefinitionVersion
-> V1beta1CustomResourceDefinitionVersion -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CustomResourceDefinitionVersion
instance A.FromJSON V1beta1CustomResourceDefinitionVersion where
  parseJSON :: Value -> Parser V1beta1CustomResourceDefinitionVersion
parseJSON = String
-> (Object -> Parser V1beta1CustomResourceDefinitionVersion)
-> Value
-> Parser V1beta1CustomResourceDefinitionVersion
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CustomResourceDefinitionVersion" ((Object -> Parser V1beta1CustomResourceDefinitionVersion)
 -> Value -> Parser V1beta1CustomResourceDefinitionVersion)
-> (Object -> Parser V1beta1CustomResourceDefinitionVersion)
-> Value
-> Parser V1beta1CustomResourceDefinitionVersion
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1beta1CustomResourceColumnDefinition]
-> Text
-> Maybe V1beta1CustomResourceValidation
-> Bool
-> Bool
-> Maybe V1beta1CustomResourceSubresources
-> V1beta1CustomResourceDefinitionVersion
V1beta1CustomResourceDefinitionVersion
      (Maybe [V1beta1CustomResourceColumnDefinition]
 -> Text
 -> Maybe V1beta1CustomResourceValidation
 -> Bool
 -> Bool
 -> Maybe V1beta1CustomResourceSubresources
 -> V1beta1CustomResourceDefinitionVersion)
-> Parser (Maybe [V1beta1CustomResourceColumnDefinition])
-> Parser
     (Text
      -> Maybe V1beta1CustomResourceValidation
      -> Bool
      -> Bool
      -> Maybe V1beta1CustomResourceSubresources
      -> V1beta1CustomResourceDefinitionVersion)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object
-> Text -> Parser (Maybe [V1beta1CustomResourceColumnDefinition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"additionalPrinterColumns")
      Parser
  (Text
   -> Maybe V1beta1CustomResourceValidation
   -> Bool
   -> Bool
   -> Maybe V1beta1CustomResourceSubresources
   -> V1beta1CustomResourceDefinitionVersion)
-> Parser Text
-> Parser
     (Maybe V1beta1CustomResourceValidation
      -> Bool
      -> Bool
      -> Maybe V1beta1CustomResourceSubresources
      -> V1beta1CustomResourceDefinitionVersion)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Maybe V1beta1CustomResourceValidation
   -> Bool
   -> Bool
   -> Maybe V1beta1CustomResourceSubresources
   -> V1beta1CustomResourceDefinitionVersion)
-> Parser (Maybe V1beta1CustomResourceValidation)
-> Parser
     (Bool
      -> Bool
      -> Maybe V1beta1CustomResourceSubresources
      -> V1beta1CustomResourceDefinitionVersion)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1CustomResourceValidation)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"schema")
      Parser
  (Bool
   -> Bool
   -> Maybe V1beta1CustomResourceSubresources
   -> V1beta1CustomResourceDefinitionVersion)
-> Parser Bool
-> Parser
     (Bool
      -> Maybe V1beta1CustomResourceSubresources
      -> V1beta1CustomResourceDefinitionVersion)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"served")
      Parser
  (Bool
   -> Maybe V1beta1CustomResourceSubresources
   -> V1beta1CustomResourceDefinitionVersion)
-> Parser Bool
-> Parser
     (Maybe V1beta1CustomResourceSubresources
      -> V1beta1CustomResourceDefinitionVersion)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"storage")
      Parser
  (Maybe V1beta1CustomResourceSubresources
   -> V1beta1CustomResourceDefinitionVersion)
-> Parser (Maybe V1beta1CustomResourceSubresources)
-> Parser V1beta1CustomResourceDefinitionVersion
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1CustomResourceSubresources)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"subresources")

-- | ToJSON V1beta1CustomResourceDefinitionVersion
instance A.ToJSON V1beta1CustomResourceDefinitionVersion where
  toJSON :: V1beta1CustomResourceDefinitionVersion -> Value
toJSON V1beta1CustomResourceDefinitionVersion {Bool
Maybe [V1beta1CustomResourceColumnDefinition]
Maybe V1beta1CustomResourceValidation
Maybe V1beta1CustomResourceSubresources
Text
v1beta1CustomResourceDefinitionVersionSubresources :: Maybe V1beta1CustomResourceSubresources
v1beta1CustomResourceDefinitionVersionStorage :: Bool
v1beta1CustomResourceDefinitionVersionServed :: Bool
v1beta1CustomResourceDefinitionVersionSchema :: Maybe V1beta1CustomResourceValidation
v1beta1CustomResourceDefinitionVersionName :: Text
v1beta1CustomResourceDefinitionVersionAdditionalPrinterColumns :: Maybe [V1beta1CustomResourceColumnDefinition]
v1beta1CustomResourceDefinitionVersionSubresources :: V1beta1CustomResourceDefinitionVersion
-> Maybe V1beta1CustomResourceSubresources
v1beta1CustomResourceDefinitionVersionStorage :: V1beta1CustomResourceDefinitionVersion -> Bool
v1beta1CustomResourceDefinitionVersionServed :: V1beta1CustomResourceDefinitionVersion -> Bool
v1beta1CustomResourceDefinitionVersionSchema :: V1beta1CustomResourceDefinitionVersion
-> Maybe V1beta1CustomResourceValidation
v1beta1CustomResourceDefinitionVersionName :: V1beta1CustomResourceDefinitionVersion -> Text
v1beta1CustomResourceDefinitionVersionAdditionalPrinterColumns :: V1beta1CustomResourceDefinitionVersion
-> Maybe [V1beta1CustomResourceColumnDefinition]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"additionalPrinterColumns" Text
-> Maybe [V1beta1CustomResourceColumnDefinition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1CustomResourceColumnDefinition]
v1beta1CustomResourceDefinitionVersionAdditionalPrinterColumns
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CustomResourceDefinitionVersionName
      , Text
"schema" Text -> Maybe V1beta1CustomResourceValidation -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1CustomResourceValidation
v1beta1CustomResourceDefinitionVersionSchema
      , Text
"served" Text -> Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Bool
v1beta1CustomResourceDefinitionVersionServed
      , Text
"storage" Text -> Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Bool
v1beta1CustomResourceDefinitionVersionStorage
      , Text
"subresources" Text -> Maybe V1beta1CustomResourceSubresources -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1CustomResourceSubresources
v1beta1CustomResourceDefinitionVersionSubresources
      ]


-- | Construct a value of type 'V1beta1CustomResourceDefinitionVersion' (by applying it's required fields, if any)
mkV1beta1CustomResourceDefinitionVersion
  :: Text -- ^ 'v1beta1CustomResourceDefinitionVersionName': name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/<group>/<version>/...` if `served` is true.
  -> Bool -- ^ 'v1beta1CustomResourceDefinitionVersionServed': served is a flag enabling/disabling this version from being served via REST APIs
  -> Bool -- ^ 'v1beta1CustomResourceDefinitionVersionStorage': storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.
  -> V1beta1CustomResourceDefinitionVersion
mkV1beta1CustomResourceDefinitionVersion :: Text -> Bool -> Bool -> V1beta1CustomResourceDefinitionVersion
mkV1beta1CustomResourceDefinitionVersion Text
v1beta1CustomResourceDefinitionVersionName Bool
v1beta1CustomResourceDefinitionVersionServed Bool
v1beta1CustomResourceDefinitionVersionStorage =
  V1beta1CustomResourceDefinitionVersion :: Maybe [V1beta1CustomResourceColumnDefinition]
-> Text
-> Maybe V1beta1CustomResourceValidation
-> Bool
-> Bool
-> Maybe V1beta1CustomResourceSubresources
-> V1beta1CustomResourceDefinitionVersion
V1beta1CustomResourceDefinitionVersion
  { v1beta1CustomResourceDefinitionVersionAdditionalPrinterColumns :: Maybe [V1beta1CustomResourceColumnDefinition]
v1beta1CustomResourceDefinitionVersionAdditionalPrinterColumns = Maybe [V1beta1CustomResourceColumnDefinition]
forall a. Maybe a
Nothing
  , Text
v1beta1CustomResourceDefinitionVersionName :: Text
v1beta1CustomResourceDefinitionVersionName :: Text
v1beta1CustomResourceDefinitionVersionName
  , v1beta1CustomResourceDefinitionVersionSchema :: Maybe V1beta1CustomResourceValidation
v1beta1CustomResourceDefinitionVersionSchema = Maybe V1beta1CustomResourceValidation
forall a. Maybe a
Nothing
  , Bool
v1beta1CustomResourceDefinitionVersionServed :: Bool
v1beta1CustomResourceDefinitionVersionServed :: Bool
v1beta1CustomResourceDefinitionVersionServed
  , Bool
v1beta1CustomResourceDefinitionVersionStorage :: Bool
v1beta1CustomResourceDefinitionVersionStorage :: Bool
v1beta1CustomResourceDefinitionVersionStorage
  , v1beta1CustomResourceDefinitionVersionSubresources :: Maybe V1beta1CustomResourceSubresources
v1beta1CustomResourceDefinitionVersionSubresources = Maybe V1beta1CustomResourceSubresources
forall a. Maybe a
Nothing
  }

-- ** V1beta1CustomResourceSubresourceScale
-- | V1beta1CustomResourceSubresourceScale
-- CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.
data V1beta1CustomResourceSubresourceScale = V1beta1CustomResourceSubresourceScale
  { V1beta1CustomResourceSubresourceScale -> Maybe Text
v1beta1CustomResourceSubresourceScaleLabelSelectorPath :: !(Maybe Text) -- ^ "labelSelectorPath" - labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale &#x60;status.selector&#x60;. Only JSON paths without the array notation are allowed. Must be a JSON Path under &#x60;.status&#x60; or &#x60;.spec&#x60;. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the &#x60;status.selector&#x60; value in the &#x60;/scale&#x60; subresource will default to the empty string.
  , V1beta1CustomResourceSubresourceScale -> Text
v1beta1CustomResourceSubresourceScaleSpecReplicasPath :: !(Text) -- ^ /Required/ "specReplicasPath" - specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale &#x60;spec.replicas&#x60;. Only JSON paths without the array notation are allowed. Must be a JSON Path under &#x60;.spec&#x60;. If there is no value under the given path in the custom resource, the &#x60;/scale&#x60; subresource will return an error on GET.
  , V1beta1CustomResourceSubresourceScale -> Text
v1beta1CustomResourceSubresourceScaleStatusReplicasPath :: !(Text) -- ^ /Required/ "statusReplicasPath" - statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale &#x60;status.replicas&#x60;. Only JSON paths without the array notation are allowed. Must be a JSON Path under &#x60;.status&#x60;. If there is no value under the given path in the custom resource, the &#x60;status.replicas&#x60; value in the &#x60;/scale&#x60; subresource will default to 0.
  } deriving (Int -> V1beta1CustomResourceSubresourceScale -> ShowS
[V1beta1CustomResourceSubresourceScale] -> ShowS
V1beta1CustomResourceSubresourceScale -> String
(Int -> V1beta1CustomResourceSubresourceScale -> ShowS)
-> (V1beta1CustomResourceSubresourceScale -> String)
-> ([V1beta1CustomResourceSubresourceScale] -> ShowS)
-> Show V1beta1CustomResourceSubresourceScale
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CustomResourceSubresourceScale] -> ShowS
$cshowList :: [V1beta1CustomResourceSubresourceScale] -> ShowS
show :: V1beta1CustomResourceSubresourceScale -> String
$cshow :: V1beta1CustomResourceSubresourceScale -> String
showsPrec :: Int -> V1beta1CustomResourceSubresourceScale -> ShowS
$cshowsPrec :: Int -> V1beta1CustomResourceSubresourceScale -> ShowS
P.Show, V1beta1CustomResourceSubresourceScale
-> V1beta1CustomResourceSubresourceScale -> Bool
(V1beta1CustomResourceSubresourceScale
 -> V1beta1CustomResourceSubresourceScale -> Bool)
-> (V1beta1CustomResourceSubresourceScale
    -> V1beta1CustomResourceSubresourceScale -> Bool)
-> Eq V1beta1CustomResourceSubresourceScale
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CustomResourceSubresourceScale
-> V1beta1CustomResourceSubresourceScale -> Bool
$c/= :: V1beta1CustomResourceSubresourceScale
-> V1beta1CustomResourceSubresourceScale -> Bool
== :: V1beta1CustomResourceSubresourceScale
-> V1beta1CustomResourceSubresourceScale -> Bool
$c== :: V1beta1CustomResourceSubresourceScale
-> V1beta1CustomResourceSubresourceScale -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CustomResourceSubresourceScale
instance A.FromJSON V1beta1CustomResourceSubresourceScale where
  parseJSON :: Value -> Parser V1beta1CustomResourceSubresourceScale
parseJSON = String
-> (Object -> Parser V1beta1CustomResourceSubresourceScale)
-> Value
-> Parser V1beta1CustomResourceSubresourceScale
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CustomResourceSubresourceScale" ((Object -> Parser V1beta1CustomResourceSubresourceScale)
 -> Value -> Parser V1beta1CustomResourceSubresourceScale)
-> (Object -> Parser V1beta1CustomResourceSubresourceScale)
-> Value
-> Parser V1beta1CustomResourceSubresourceScale
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Text -> Text -> V1beta1CustomResourceSubresourceScale
V1beta1CustomResourceSubresourceScale
      (Maybe Text
 -> Text -> Text -> V1beta1CustomResourceSubresourceScale)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1beta1CustomResourceSubresourceScale)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"labelSelectorPath")
      Parser (Text -> Text -> V1beta1CustomResourceSubresourceScale)
-> Parser Text
-> Parser (Text -> V1beta1CustomResourceSubresourceScale)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"specReplicasPath")
      Parser (Text -> V1beta1CustomResourceSubresourceScale)
-> Parser Text -> Parser V1beta1CustomResourceSubresourceScale
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"statusReplicasPath")

-- | ToJSON V1beta1CustomResourceSubresourceScale
instance A.ToJSON V1beta1CustomResourceSubresourceScale where
  toJSON :: V1beta1CustomResourceSubresourceScale -> Value
toJSON V1beta1CustomResourceSubresourceScale {Maybe Text
Text
v1beta1CustomResourceSubresourceScaleStatusReplicasPath :: Text
v1beta1CustomResourceSubresourceScaleSpecReplicasPath :: Text
v1beta1CustomResourceSubresourceScaleLabelSelectorPath :: Maybe Text
v1beta1CustomResourceSubresourceScaleStatusReplicasPath :: V1beta1CustomResourceSubresourceScale -> Text
v1beta1CustomResourceSubresourceScaleSpecReplicasPath :: V1beta1CustomResourceSubresourceScale -> Text
v1beta1CustomResourceSubresourceScaleLabelSelectorPath :: V1beta1CustomResourceSubresourceScale -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"labelSelectorPath" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1CustomResourceSubresourceScaleLabelSelectorPath
      , Text
"specReplicasPath" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CustomResourceSubresourceScaleSpecReplicasPath
      , Text
"statusReplicasPath" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1CustomResourceSubresourceScaleStatusReplicasPath
      ]


-- | Construct a value of type 'V1beta1CustomResourceSubresourceScale' (by applying it's required fields, if any)
mkV1beta1CustomResourceSubresourceScale
  :: Text -- ^ 'v1beta1CustomResourceSubresourceScaleSpecReplicasPath': specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.
  -> Text -- ^ 'v1beta1CustomResourceSubresourceScaleStatusReplicasPath': statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.
  -> V1beta1CustomResourceSubresourceScale
mkV1beta1CustomResourceSubresourceScale :: Text -> Text -> V1beta1CustomResourceSubresourceScale
mkV1beta1CustomResourceSubresourceScale Text
v1beta1CustomResourceSubresourceScaleSpecReplicasPath Text
v1beta1CustomResourceSubresourceScaleStatusReplicasPath =
  V1beta1CustomResourceSubresourceScale :: Maybe Text -> Text -> Text -> V1beta1CustomResourceSubresourceScale
V1beta1CustomResourceSubresourceScale
  { v1beta1CustomResourceSubresourceScaleLabelSelectorPath :: Maybe Text
v1beta1CustomResourceSubresourceScaleLabelSelectorPath = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta1CustomResourceSubresourceScaleSpecReplicasPath :: Text
v1beta1CustomResourceSubresourceScaleSpecReplicasPath :: Text
v1beta1CustomResourceSubresourceScaleSpecReplicasPath
  , Text
v1beta1CustomResourceSubresourceScaleStatusReplicasPath :: Text
v1beta1CustomResourceSubresourceScaleStatusReplicasPath :: Text
v1beta1CustomResourceSubresourceScaleStatusReplicasPath
  }

-- ** V1beta1CustomResourceSubresources
-- | V1beta1CustomResourceSubresources
-- CustomResourceSubresources defines the status and scale subresources for CustomResources.
data V1beta1CustomResourceSubresources = V1beta1CustomResourceSubresources
  { V1beta1CustomResourceSubresources
-> Maybe V1beta1CustomResourceSubresourceScale
v1beta1CustomResourceSubresourcesScale :: !(Maybe V1beta1CustomResourceSubresourceScale) -- ^ "scale"
  , V1beta1CustomResourceSubresources -> Maybe Value
v1beta1CustomResourceSubresourcesStatus :: !(Maybe A.Value) -- ^ "status" - status indicates the custom resource should serve a &#x60;/status&#x60; subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the &#x60;status&#x60; stanza of the object. 2. requests to the custom resource &#x60;/status&#x60; subresource ignore changes to anything other than the &#x60;status&#x60; stanza of the object.
  } deriving (Int -> V1beta1CustomResourceSubresources -> ShowS
[V1beta1CustomResourceSubresources] -> ShowS
V1beta1CustomResourceSubresources -> String
(Int -> V1beta1CustomResourceSubresources -> ShowS)
-> (V1beta1CustomResourceSubresources -> String)
-> ([V1beta1CustomResourceSubresources] -> ShowS)
-> Show V1beta1CustomResourceSubresources
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CustomResourceSubresources] -> ShowS
$cshowList :: [V1beta1CustomResourceSubresources] -> ShowS
show :: V1beta1CustomResourceSubresources -> String
$cshow :: V1beta1CustomResourceSubresources -> String
showsPrec :: Int -> V1beta1CustomResourceSubresources -> ShowS
$cshowsPrec :: Int -> V1beta1CustomResourceSubresources -> ShowS
P.Show, V1beta1CustomResourceSubresources
-> V1beta1CustomResourceSubresources -> Bool
(V1beta1CustomResourceSubresources
 -> V1beta1CustomResourceSubresources -> Bool)
-> (V1beta1CustomResourceSubresources
    -> V1beta1CustomResourceSubresources -> Bool)
-> Eq V1beta1CustomResourceSubresources
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CustomResourceSubresources
-> V1beta1CustomResourceSubresources -> Bool
$c/= :: V1beta1CustomResourceSubresources
-> V1beta1CustomResourceSubresources -> Bool
== :: V1beta1CustomResourceSubresources
-> V1beta1CustomResourceSubresources -> Bool
$c== :: V1beta1CustomResourceSubresources
-> V1beta1CustomResourceSubresources -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CustomResourceSubresources
instance A.FromJSON V1beta1CustomResourceSubresources where
  parseJSON :: Value -> Parser V1beta1CustomResourceSubresources
parseJSON = String
-> (Object -> Parser V1beta1CustomResourceSubresources)
-> Value
-> Parser V1beta1CustomResourceSubresources
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CustomResourceSubresources" ((Object -> Parser V1beta1CustomResourceSubresources)
 -> Value -> Parser V1beta1CustomResourceSubresources)
-> (Object -> Parser V1beta1CustomResourceSubresources)
-> Value
-> Parser V1beta1CustomResourceSubresources
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1beta1CustomResourceSubresourceScale
-> Maybe Value -> V1beta1CustomResourceSubresources
V1beta1CustomResourceSubresources
      (Maybe V1beta1CustomResourceSubresourceScale
 -> Maybe Value -> V1beta1CustomResourceSubresources)
-> Parser (Maybe V1beta1CustomResourceSubresourceScale)
-> Parser (Maybe Value -> V1beta1CustomResourceSubresources)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object
-> Text -> Parser (Maybe V1beta1CustomResourceSubresourceScale)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"scale")
      Parser (Maybe Value -> V1beta1CustomResourceSubresources)
-> Parser (Maybe Value) -> Parser V1beta1CustomResourceSubresources
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta1CustomResourceSubresources
instance A.ToJSON V1beta1CustomResourceSubresources where
  toJSON :: V1beta1CustomResourceSubresources -> Value
toJSON V1beta1CustomResourceSubresources {Maybe Value
Maybe V1beta1CustomResourceSubresourceScale
v1beta1CustomResourceSubresourcesStatus :: Maybe Value
v1beta1CustomResourceSubresourcesScale :: Maybe V1beta1CustomResourceSubresourceScale
v1beta1CustomResourceSubresourcesStatus :: V1beta1CustomResourceSubresources -> Maybe Value
v1beta1CustomResourceSubresourcesScale :: V1beta1CustomResourceSubresources
-> Maybe V1beta1CustomResourceSubresourceScale
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"scale" Text
-> Maybe V1beta1CustomResourceSubresourceScale -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1CustomResourceSubresourceScale
v1beta1CustomResourceSubresourcesScale
      , Text
"status" Text -> Maybe Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Value
v1beta1CustomResourceSubresourcesStatus
      ]


-- | Construct a value of type 'V1beta1CustomResourceSubresources' (by applying it's required fields, if any)
mkV1beta1CustomResourceSubresources
  :: V1beta1CustomResourceSubresources
mkV1beta1CustomResourceSubresources :: V1beta1CustomResourceSubresources
mkV1beta1CustomResourceSubresources =
  V1beta1CustomResourceSubresources :: Maybe V1beta1CustomResourceSubresourceScale
-> Maybe Value -> V1beta1CustomResourceSubresources
V1beta1CustomResourceSubresources
  { v1beta1CustomResourceSubresourcesScale :: Maybe V1beta1CustomResourceSubresourceScale
v1beta1CustomResourceSubresourcesScale = Maybe V1beta1CustomResourceSubresourceScale
forall a. Maybe a
Nothing
  , v1beta1CustomResourceSubresourcesStatus :: Maybe Value
v1beta1CustomResourceSubresourcesStatus = Maybe Value
forall a. Maybe a
Nothing
  }

-- ** V1beta1CustomResourceValidation
-- | V1beta1CustomResourceValidation
-- CustomResourceValidation is a list of validation methods for CustomResources.
data V1beta1CustomResourceValidation = V1beta1CustomResourceValidation
  { V1beta1CustomResourceValidation -> Maybe V1beta1JSONSchemaProps
v1beta1CustomResourceValidationOpenApiv3Schema :: !(Maybe V1beta1JSONSchemaProps) -- ^ "openAPIV3Schema"
  } deriving (Int -> V1beta1CustomResourceValidation -> ShowS
[V1beta1CustomResourceValidation] -> ShowS
V1beta1CustomResourceValidation -> String
(Int -> V1beta1CustomResourceValidation -> ShowS)
-> (V1beta1CustomResourceValidation -> String)
-> ([V1beta1CustomResourceValidation] -> ShowS)
-> Show V1beta1CustomResourceValidation
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1CustomResourceValidation] -> ShowS
$cshowList :: [V1beta1CustomResourceValidation] -> ShowS
show :: V1beta1CustomResourceValidation -> String
$cshow :: V1beta1CustomResourceValidation -> String
showsPrec :: Int -> V1beta1CustomResourceValidation -> ShowS
$cshowsPrec :: Int -> V1beta1CustomResourceValidation -> ShowS
P.Show, V1beta1CustomResourceValidation
-> V1beta1CustomResourceValidation -> Bool
(V1beta1CustomResourceValidation
 -> V1beta1CustomResourceValidation -> Bool)
-> (V1beta1CustomResourceValidation
    -> V1beta1CustomResourceValidation -> Bool)
-> Eq V1beta1CustomResourceValidation
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1CustomResourceValidation
-> V1beta1CustomResourceValidation -> Bool
$c/= :: V1beta1CustomResourceValidation
-> V1beta1CustomResourceValidation -> Bool
== :: V1beta1CustomResourceValidation
-> V1beta1CustomResourceValidation -> Bool
$c== :: V1beta1CustomResourceValidation
-> V1beta1CustomResourceValidation -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1CustomResourceValidation
instance A.FromJSON V1beta1CustomResourceValidation where
  parseJSON :: Value -> Parser V1beta1CustomResourceValidation
parseJSON = String
-> (Object -> Parser V1beta1CustomResourceValidation)
-> Value
-> Parser V1beta1CustomResourceValidation
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1CustomResourceValidation" ((Object -> Parser V1beta1CustomResourceValidation)
 -> Value -> Parser V1beta1CustomResourceValidation)
-> (Object -> Parser V1beta1CustomResourceValidation)
-> Value
-> Parser V1beta1CustomResourceValidation
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1beta1JSONSchemaProps -> V1beta1CustomResourceValidation
V1beta1CustomResourceValidation
      (Maybe V1beta1JSONSchemaProps -> V1beta1CustomResourceValidation)
-> Parser (Maybe V1beta1JSONSchemaProps)
-> Parser V1beta1CustomResourceValidation
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1beta1JSONSchemaProps)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"openAPIV3Schema")

-- | ToJSON V1beta1CustomResourceValidation
instance A.ToJSON V1beta1CustomResourceValidation where
  toJSON :: V1beta1CustomResourceValidation -> Value
toJSON V1beta1CustomResourceValidation {Maybe V1beta1JSONSchemaProps
v1beta1CustomResourceValidationOpenApiv3Schema :: Maybe V1beta1JSONSchemaProps
v1beta1CustomResourceValidationOpenApiv3Schema :: V1beta1CustomResourceValidation -> Maybe V1beta1JSONSchemaProps
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"openAPIV3Schema" Text -> Maybe V1beta1JSONSchemaProps -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1JSONSchemaProps
v1beta1CustomResourceValidationOpenApiv3Schema
      ]


-- | Construct a value of type 'V1beta1CustomResourceValidation' (by applying it's required fields, if any)
mkV1beta1CustomResourceValidation
  :: V1beta1CustomResourceValidation
mkV1beta1CustomResourceValidation :: V1beta1CustomResourceValidation
mkV1beta1CustomResourceValidation =
  V1beta1CustomResourceValidation :: Maybe V1beta1JSONSchemaProps -> V1beta1CustomResourceValidation
V1beta1CustomResourceValidation
  { v1beta1CustomResourceValidationOpenApiv3Schema :: Maybe V1beta1JSONSchemaProps
v1beta1CustomResourceValidationOpenApiv3Schema = Maybe V1beta1JSONSchemaProps
forall a. Maybe a
Nothing
  }

-- ** V1beta1DaemonSet
-- | V1beta1DaemonSet
-- DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set.
data V1beta1DaemonSet = V1beta1DaemonSet
  { V1beta1DaemonSet -> Maybe Text
v1beta1DaemonSetApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1DaemonSet -> Maybe Text
v1beta1DaemonSetKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1DaemonSet -> Maybe V1ObjectMeta
v1beta1DaemonSetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1DaemonSet -> Maybe V1beta1DaemonSetSpec
v1beta1DaemonSetSpec :: !(Maybe V1beta1DaemonSetSpec) -- ^ "spec"
  , V1beta1DaemonSet -> Maybe V1beta1DaemonSetStatus
v1beta1DaemonSetStatus :: !(Maybe V1beta1DaemonSetStatus) -- ^ "status"
  } deriving (Int -> V1beta1DaemonSet -> ShowS
[V1beta1DaemonSet] -> ShowS
V1beta1DaemonSet -> String
(Int -> V1beta1DaemonSet -> ShowS)
-> (V1beta1DaemonSet -> String)
-> ([V1beta1DaemonSet] -> ShowS)
-> Show V1beta1DaemonSet
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1DaemonSet] -> ShowS
$cshowList :: [V1beta1DaemonSet] -> ShowS
show :: V1beta1DaemonSet -> String
$cshow :: V1beta1DaemonSet -> String
showsPrec :: Int -> V1beta1DaemonSet -> ShowS
$cshowsPrec :: Int -> V1beta1DaemonSet -> ShowS
P.Show, V1beta1DaemonSet -> V1beta1DaemonSet -> Bool
(V1beta1DaemonSet -> V1beta1DaemonSet -> Bool)
-> (V1beta1DaemonSet -> V1beta1DaemonSet -> Bool)
-> Eq V1beta1DaemonSet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1DaemonSet -> V1beta1DaemonSet -> Bool
$c/= :: V1beta1DaemonSet -> V1beta1DaemonSet -> Bool
== :: V1beta1DaemonSet -> V1beta1DaemonSet -> Bool
$c== :: V1beta1DaemonSet -> V1beta1DaemonSet -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1DaemonSet
instance A.FromJSON V1beta1DaemonSet where
  parseJSON :: Value -> Parser V1beta1DaemonSet
parseJSON = String
-> (Object -> Parser V1beta1DaemonSet)
-> Value
-> Parser V1beta1DaemonSet
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1DaemonSet" ((Object -> Parser V1beta1DaemonSet)
 -> Value -> Parser V1beta1DaemonSet)
-> (Object -> Parser V1beta1DaemonSet)
-> Value
-> Parser V1beta1DaemonSet
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1DaemonSetSpec
-> Maybe V1beta1DaemonSetStatus
-> V1beta1DaemonSet
V1beta1DaemonSet
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1beta1DaemonSetSpec
 -> Maybe V1beta1DaemonSetStatus
 -> V1beta1DaemonSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1beta1DaemonSetSpec
      -> Maybe V1beta1DaemonSetStatus
      -> V1beta1DaemonSet)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1beta1DaemonSetSpec
   -> Maybe V1beta1DaemonSetStatus
   -> V1beta1DaemonSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1beta1DaemonSetSpec
      -> Maybe V1beta1DaemonSetStatus
      -> V1beta1DaemonSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1beta1DaemonSetSpec
   -> Maybe V1beta1DaemonSetStatus
   -> V1beta1DaemonSet)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1beta1DaemonSetSpec
      -> Maybe V1beta1DaemonSetStatus -> V1beta1DaemonSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1beta1DaemonSetSpec
   -> Maybe V1beta1DaemonSetStatus -> V1beta1DaemonSet)
-> Parser (Maybe V1beta1DaemonSetSpec)
-> Parser (Maybe V1beta1DaemonSetStatus -> V1beta1DaemonSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1DaemonSetSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1beta1DaemonSetStatus -> V1beta1DaemonSet)
-> Parser (Maybe V1beta1DaemonSetStatus) -> Parser V1beta1DaemonSet
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1DaemonSetStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta1DaemonSet
instance A.ToJSON V1beta1DaemonSet where
  toJSON :: V1beta1DaemonSet -> Value
toJSON V1beta1DaemonSet {Maybe Text
Maybe V1beta1DaemonSetStatus
Maybe V1beta1DaemonSetSpec
Maybe V1ObjectMeta
v1beta1DaemonSetStatus :: Maybe V1beta1DaemonSetStatus
v1beta1DaemonSetSpec :: Maybe V1beta1DaemonSetSpec
v1beta1DaemonSetMetadata :: Maybe V1ObjectMeta
v1beta1DaemonSetKind :: Maybe Text
v1beta1DaemonSetApiVersion :: Maybe Text
v1beta1DaemonSetStatus :: V1beta1DaemonSet -> Maybe V1beta1DaemonSetStatus
v1beta1DaemonSetSpec :: V1beta1DaemonSet -> Maybe V1beta1DaemonSetSpec
v1beta1DaemonSetMetadata :: V1beta1DaemonSet -> Maybe V1ObjectMeta
v1beta1DaemonSetKind :: V1beta1DaemonSet -> Maybe Text
v1beta1DaemonSetApiVersion :: V1beta1DaemonSet -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1DaemonSetApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1DaemonSetKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1DaemonSetMetadata
      , Text
"spec" Text -> Maybe V1beta1DaemonSetSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1DaemonSetSpec
v1beta1DaemonSetSpec
      , Text
"status" Text -> Maybe V1beta1DaemonSetStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1DaemonSetStatus
v1beta1DaemonSetStatus
      ]


-- | Construct a value of type 'V1beta1DaemonSet' (by applying it's required fields, if any)
mkV1beta1DaemonSet
  :: V1beta1DaemonSet
mkV1beta1DaemonSet :: V1beta1DaemonSet
mkV1beta1DaemonSet =
  V1beta1DaemonSet :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1DaemonSetSpec
-> Maybe V1beta1DaemonSetStatus
-> V1beta1DaemonSet
V1beta1DaemonSet
  { v1beta1DaemonSetApiVersion :: Maybe Text
v1beta1DaemonSetApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1DaemonSetKind :: Maybe Text
v1beta1DaemonSetKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1DaemonSetMetadata :: Maybe V1ObjectMeta
v1beta1DaemonSetMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1DaemonSetSpec :: Maybe V1beta1DaemonSetSpec
v1beta1DaemonSetSpec = Maybe V1beta1DaemonSetSpec
forall a. Maybe a
Nothing
  , v1beta1DaemonSetStatus :: Maybe V1beta1DaemonSetStatus
v1beta1DaemonSetStatus = Maybe V1beta1DaemonSetStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta1DaemonSetCondition
-- | V1beta1DaemonSetCondition
-- DaemonSetCondition describes the state of a DaemonSet at a certain point.
data V1beta1DaemonSetCondition = V1beta1DaemonSetCondition
  { V1beta1DaemonSetCondition -> Maybe DateTime
v1beta1DaemonSetConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.
  , V1beta1DaemonSetCondition -> Maybe Text
v1beta1DaemonSetConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.
  , V1beta1DaemonSetCondition -> Maybe Text
v1beta1DaemonSetConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition&#39;s last transition.
  , V1beta1DaemonSetCondition -> Text
v1beta1DaemonSetConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , V1beta1DaemonSetCondition -> Text
v1beta1DaemonSetConditionType :: !(Text) -- ^ /Required/ "type" - Type of DaemonSet condition.
  } deriving (Int -> V1beta1DaemonSetCondition -> ShowS
[V1beta1DaemonSetCondition] -> ShowS
V1beta1DaemonSetCondition -> String
(Int -> V1beta1DaemonSetCondition -> ShowS)
-> (V1beta1DaemonSetCondition -> String)
-> ([V1beta1DaemonSetCondition] -> ShowS)
-> Show V1beta1DaemonSetCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1DaemonSetCondition] -> ShowS
$cshowList :: [V1beta1DaemonSetCondition] -> ShowS
show :: V1beta1DaemonSetCondition -> String
$cshow :: V1beta1DaemonSetCondition -> String
showsPrec :: Int -> V1beta1DaemonSetCondition -> ShowS
$cshowsPrec :: Int -> V1beta1DaemonSetCondition -> ShowS
P.Show, V1beta1DaemonSetCondition -> V1beta1DaemonSetCondition -> Bool
(V1beta1DaemonSetCondition -> V1beta1DaemonSetCondition -> Bool)
-> (V1beta1DaemonSetCondition -> V1beta1DaemonSetCondition -> Bool)
-> Eq V1beta1DaemonSetCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1DaemonSetCondition -> V1beta1DaemonSetCondition -> Bool
$c/= :: V1beta1DaemonSetCondition -> V1beta1DaemonSetCondition -> Bool
== :: V1beta1DaemonSetCondition -> V1beta1DaemonSetCondition -> Bool
$c== :: V1beta1DaemonSetCondition -> V1beta1DaemonSetCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1DaemonSetCondition
instance A.FromJSON V1beta1DaemonSetCondition where
  parseJSON :: Value -> Parser V1beta1DaemonSetCondition
parseJSON = String
-> (Object -> Parser V1beta1DaemonSetCondition)
-> Value
-> Parser V1beta1DaemonSetCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1DaemonSetCondition" ((Object -> Parser V1beta1DaemonSetCondition)
 -> Value -> Parser V1beta1DaemonSetCondition)
-> (Object -> Parser V1beta1DaemonSetCondition)
-> Value
-> Parser V1beta1DaemonSetCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta1DaemonSetCondition
V1beta1DaemonSetCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1beta1DaemonSetCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text -> Text -> Text -> V1beta1DaemonSetCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text
   -> Maybe Text -> Text -> Text -> V1beta1DaemonSetCondition)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Text -> Text -> V1beta1DaemonSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1beta1DaemonSetCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1beta1DaemonSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1beta1DaemonSetCondition)
-> Parser Text -> Parser (Text -> V1beta1DaemonSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1beta1DaemonSetCondition)
-> Parser Text -> Parser V1beta1DaemonSetCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1beta1DaemonSetCondition
instance A.ToJSON V1beta1DaemonSetCondition where
  toJSON :: V1beta1DaemonSetCondition -> Value
toJSON V1beta1DaemonSetCondition {Maybe Text
Maybe DateTime
Text
v1beta1DaemonSetConditionType :: Text
v1beta1DaemonSetConditionStatus :: Text
v1beta1DaemonSetConditionReason :: Maybe Text
v1beta1DaemonSetConditionMessage :: Maybe Text
v1beta1DaemonSetConditionLastTransitionTime :: Maybe DateTime
v1beta1DaemonSetConditionType :: V1beta1DaemonSetCondition -> Text
v1beta1DaemonSetConditionStatus :: V1beta1DaemonSetCondition -> Text
v1beta1DaemonSetConditionReason :: V1beta1DaemonSetCondition -> Maybe Text
v1beta1DaemonSetConditionMessage :: V1beta1DaemonSetCondition -> Maybe Text
v1beta1DaemonSetConditionLastTransitionTime :: V1beta1DaemonSetCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta1DaemonSetConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1DaemonSetConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1DaemonSetConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1DaemonSetConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1DaemonSetConditionType
      ]


-- | Construct a value of type 'V1beta1DaemonSetCondition' (by applying it's required fields, if any)
mkV1beta1DaemonSetCondition
  :: Text -- ^ 'v1beta1DaemonSetConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'v1beta1DaemonSetConditionType': Type of DaemonSet condition.
  -> V1beta1DaemonSetCondition
mkV1beta1DaemonSetCondition :: Text -> Text -> V1beta1DaemonSetCondition
mkV1beta1DaemonSetCondition Text
v1beta1DaemonSetConditionStatus Text
v1beta1DaemonSetConditionType =
  V1beta1DaemonSetCondition :: Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta1DaemonSetCondition
V1beta1DaemonSetCondition
  { v1beta1DaemonSetConditionLastTransitionTime :: Maybe DateTime
v1beta1DaemonSetConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1beta1DaemonSetConditionMessage :: Maybe Text
v1beta1DaemonSetConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1DaemonSetConditionReason :: Maybe Text
v1beta1DaemonSetConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta1DaemonSetConditionStatus :: Text
v1beta1DaemonSetConditionStatus :: Text
v1beta1DaemonSetConditionStatus
  , Text
v1beta1DaemonSetConditionType :: Text
v1beta1DaemonSetConditionType :: Text
v1beta1DaemonSetConditionType
  }

-- ** V1beta1DaemonSetList
-- | V1beta1DaemonSetList
-- DaemonSetList is a collection of daemon sets.
data V1beta1DaemonSetList = V1beta1DaemonSetList
  { V1beta1DaemonSetList -> Maybe Text
v1beta1DaemonSetListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1DaemonSetList -> [V1beta1DaemonSet]
v1beta1DaemonSetListItems :: !([V1beta1DaemonSet]) -- ^ /Required/ "items" - A list of daemon sets.
  , V1beta1DaemonSetList -> Maybe Text
v1beta1DaemonSetListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1DaemonSetList -> Maybe V1ListMeta
v1beta1DaemonSetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1DaemonSetList -> ShowS
[V1beta1DaemonSetList] -> ShowS
V1beta1DaemonSetList -> String
(Int -> V1beta1DaemonSetList -> ShowS)
-> (V1beta1DaemonSetList -> String)
-> ([V1beta1DaemonSetList] -> ShowS)
-> Show V1beta1DaemonSetList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1DaemonSetList] -> ShowS
$cshowList :: [V1beta1DaemonSetList] -> ShowS
show :: V1beta1DaemonSetList -> String
$cshow :: V1beta1DaemonSetList -> String
showsPrec :: Int -> V1beta1DaemonSetList -> ShowS
$cshowsPrec :: Int -> V1beta1DaemonSetList -> ShowS
P.Show, V1beta1DaemonSetList -> V1beta1DaemonSetList -> Bool
(V1beta1DaemonSetList -> V1beta1DaemonSetList -> Bool)
-> (V1beta1DaemonSetList -> V1beta1DaemonSetList -> Bool)
-> Eq V1beta1DaemonSetList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1DaemonSetList -> V1beta1DaemonSetList -> Bool
$c/= :: V1beta1DaemonSetList -> V1beta1DaemonSetList -> Bool
== :: V1beta1DaemonSetList -> V1beta1DaemonSetList -> Bool
$c== :: V1beta1DaemonSetList -> V1beta1DaemonSetList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1DaemonSetList
instance A.FromJSON V1beta1DaemonSetList where
  parseJSON :: Value -> Parser V1beta1DaemonSetList
parseJSON = String
-> (Object -> Parser V1beta1DaemonSetList)
-> Value
-> Parser V1beta1DaemonSetList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1DaemonSetList" ((Object -> Parser V1beta1DaemonSetList)
 -> Value -> Parser V1beta1DaemonSetList)
-> (Object -> Parser V1beta1DaemonSetList)
-> Value
-> Parser V1beta1DaemonSetList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1DaemonSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1DaemonSetList
V1beta1DaemonSetList
      (Maybe Text
 -> [V1beta1DaemonSet]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1DaemonSetList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1DaemonSet]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1DaemonSetList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1DaemonSet]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1DaemonSetList)
-> Parser [V1beta1DaemonSet]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1DaemonSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1DaemonSet]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1DaemonSetList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1DaemonSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1DaemonSetList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1DaemonSetList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1DaemonSetList
instance A.ToJSON V1beta1DaemonSetList where
  toJSON :: V1beta1DaemonSetList -> Value
toJSON V1beta1DaemonSetList {[V1beta1DaemonSet]
Maybe Text
Maybe V1ListMeta
v1beta1DaemonSetListMetadata :: Maybe V1ListMeta
v1beta1DaemonSetListKind :: Maybe Text
v1beta1DaemonSetListItems :: [V1beta1DaemonSet]
v1beta1DaemonSetListApiVersion :: Maybe Text
v1beta1DaemonSetListMetadata :: V1beta1DaemonSetList -> Maybe V1ListMeta
v1beta1DaemonSetListKind :: V1beta1DaemonSetList -> Maybe Text
v1beta1DaemonSetListItems :: V1beta1DaemonSetList -> [V1beta1DaemonSet]
v1beta1DaemonSetListApiVersion :: V1beta1DaemonSetList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1DaemonSetListApiVersion
      , Text
"items" Text -> [V1beta1DaemonSet] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1DaemonSet]
v1beta1DaemonSetListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1DaemonSetListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1DaemonSetListMetadata
      ]


-- | Construct a value of type 'V1beta1DaemonSetList' (by applying it's required fields, if any)
mkV1beta1DaemonSetList
  :: [V1beta1DaemonSet] -- ^ 'v1beta1DaemonSetListItems': A list of daemon sets.
  -> V1beta1DaemonSetList
mkV1beta1DaemonSetList :: [V1beta1DaemonSet] -> V1beta1DaemonSetList
mkV1beta1DaemonSetList [V1beta1DaemonSet]
v1beta1DaemonSetListItems =
  V1beta1DaemonSetList :: Maybe Text
-> [V1beta1DaemonSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1DaemonSetList
V1beta1DaemonSetList
  { v1beta1DaemonSetListApiVersion :: Maybe Text
v1beta1DaemonSetListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1DaemonSet]
v1beta1DaemonSetListItems :: [V1beta1DaemonSet]
v1beta1DaemonSetListItems :: [V1beta1DaemonSet]
v1beta1DaemonSetListItems
  , v1beta1DaemonSetListKind :: Maybe Text
v1beta1DaemonSetListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1DaemonSetListMetadata :: Maybe V1ListMeta
v1beta1DaemonSetListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1DaemonSetSpec
-- | V1beta1DaemonSetSpec
-- DaemonSetSpec is the specification of a daemon set.
data V1beta1DaemonSetSpec = V1beta1DaemonSetSpec
  { V1beta1DaemonSetSpec -> Maybe Int
v1beta1DaemonSetSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
  , V1beta1DaemonSetSpec -> Maybe Int
v1beta1DaemonSetSpecRevisionHistoryLimit :: !(Maybe Int) -- ^ "revisionHistoryLimit" - The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.
  , V1beta1DaemonSetSpec -> Maybe V1LabelSelector
v1beta1DaemonSetSpecSelector :: !(Maybe V1LabelSelector) -- ^ "selector"
  , V1beta1DaemonSetSpec -> V1PodTemplateSpec
v1beta1DaemonSetSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"
  , V1beta1DaemonSetSpec -> Maybe Integer
v1beta1DaemonSetSpecTemplateGeneration :: !(Maybe Integer) -- ^ "templateGeneration" - DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation.
  , V1beta1DaemonSetSpec -> Maybe V1beta1DaemonSetUpdateStrategy
v1beta1DaemonSetSpecUpdateStrategy :: !(Maybe V1beta1DaemonSetUpdateStrategy) -- ^ "updateStrategy"
  } deriving (Int -> V1beta1DaemonSetSpec -> ShowS
[V1beta1DaemonSetSpec] -> ShowS
V1beta1DaemonSetSpec -> String
(Int -> V1beta1DaemonSetSpec -> ShowS)
-> (V1beta1DaemonSetSpec -> String)
-> ([V1beta1DaemonSetSpec] -> ShowS)
-> Show V1beta1DaemonSetSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1DaemonSetSpec] -> ShowS
$cshowList :: [V1beta1DaemonSetSpec] -> ShowS
show :: V1beta1DaemonSetSpec -> String
$cshow :: V1beta1DaemonSetSpec -> String
showsPrec :: Int -> V1beta1DaemonSetSpec -> ShowS
$cshowsPrec :: Int -> V1beta1DaemonSetSpec -> ShowS
P.Show, V1beta1DaemonSetSpec -> V1beta1DaemonSetSpec -> Bool
(V1beta1DaemonSetSpec -> V1beta1DaemonSetSpec -> Bool)
-> (V1beta1DaemonSetSpec -> V1beta1DaemonSetSpec -> Bool)
-> Eq V1beta1DaemonSetSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1DaemonSetSpec -> V1beta1DaemonSetSpec -> Bool
$c/= :: V1beta1DaemonSetSpec -> V1beta1DaemonSetSpec -> Bool
== :: V1beta1DaemonSetSpec -> V1beta1DaemonSetSpec -> Bool
$c== :: V1beta1DaemonSetSpec -> V1beta1DaemonSetSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1DaemonSetSpec
instance A.FromJSON V1beta1DaemonSetSpec where
  parseJSON :: Value -> Parser V1beta1DaemonSetSpec
parseJSON = String
-> (Object -> Parser V1beta1DaemonSetSpec)
-> Value
-> Parser V1beta1DaemonSetSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1DaemonSetSpec" ((Object -> Parser V1beta1DaemonSetSpec)
 -> Value -> Parser V1beta1DaemonSetSpec)
-> (Object -> Parser V1beta1DaemonSetSpec)
-> Value
-> Parser V1beta1DaemonSetSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Int
-> Maybe V1LabelSelector
-> V1PodTemplateSpec
-> Maybe Integer
-> Maybe V1beta1DaemonSetUpdateStrategy
-> V1beta1DaemonSetSpec
V1beta1DaemonSetSpec
      (Maybe Int
 -> Maybe Int
 -> Maybe V1LabelSelector
 -> V1PodTemplateSpec
 -> Maybe Integer
 -> Maybe V1beta1DaemonSetUpdateStrategy
 -> V1beta1DaemonSetSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe V1LabelSelector
      -> V1PodTemplateSpec
      -> Maybe Integer
      -> Maybe V1beta1DaemonSetUpdateStrategy
      -> V1beta1DaemonSetSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minReadySeconds")
      Parser
  (Maybe Int
   -> Maybe V1LabelSelector
   -> V1PodTemplateSpec
   -> Maybe Integer
   -> Maybe V1beta1DaemonSetUpdateStrategy
   -> V1beta1DaemonSetSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe V1LabelSelector
      -> V1PodTemplateSpec
      -> Maybe Integer
      -> Maybe V1beta1DaemonSetUpdateStrategy
      -> V1beta1DaemonSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"revisionHistoryLimit")
      Parser
  (Maybe V1LabelSelector
   -> V1PodTemplateSpec
   -> Maybe Integer
   -> Maybe V1beta1DaemonSetUpdateStrategy
   -> V1beta1DaemonSetSpec)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (V1PodTemplateSpec
      -> Maybe Integer
      -> Maybe V1beta1DaemonSetUpdateStrategy
      -> V1beta1DaemonSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")
      Parser
  (V1PodTemplateSpec
   -> Maybe Integer
   -> Maybe V1beta1DaemonSetUpdateStrategy
   -> V1beta1DaemonSetSpec)
-> Parser V1PodTemplateSpec
-> Parser
     (Maybe Integer
      -> Maybe V1beta1DaemonSetUpdateStrategy -> V1beta1DaemonSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1PodTemplateSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"template")
      Parser
  (Maybe Integer
   -> Maybe V1beta1DaemonSetUpdateStrategy -> V1beta1DaemonSetSpec)
-> Parser (Maybe Integer)
-> Parser
     (Maybe V1beta1DaemonSetUpdateStrategy -> V1beta1DaemonSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"templateGeneration")
      Parser
  (Maybe V1beta1DaemonSetUpdateStrategy -> V1beta1DaemonSetSpec)
-> Parser (Maybe V1beta1DaemonSetUpdateStrategy)
-> Parser V1beta1DaemonSetSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1DaemonSetUpdateStrategy)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updateStrategy")

-- | ToJSON V1beta1DaemonSetSpec
instance A.ToJSON V1beta1DaemonSetSpec where
  toJSON :: V1beta1DaemonSetSpec -> Value
toJSON V1beta1DaemonSetSpec {Maybe Int
Maybe Integer
Maybe V1beta1DaemonSetUpdateStrategy
Maybe V1LabelSelector
V1PodTemplateSpec
v1beta1DaemonSetSpecUpdateStrategy :: Maybe V1beta1DaemonSetUpdateStrategy
v1beta1DaemonSetSpecTemplateGeneration :: Maybe Integer
v1beta1DaemonSetSpecTemplate :: V1PodTemplateSpec
v1beta1DaemonSetSpecSelector :: Maybe V1LabelSelector
v1beta1DaemonSetSpecRevisionHistoryLimit :: Maybe Int
v1beta1DaemonSetSpecMinReadySeconds :: Maybe Int
v1beta1DaemonSetSpecUpdateStrategy :: V1beta1DaemonSetSpec -> Maybe V1beta1DaemonSetUpdateStrategy
v1beta1DaemonSetSpecTemplateGeneration :: V1beta1DaemonSetSpec -> Maybe Integer
v1beta1DaemonSetSpecTemplate :: V1beta1DaemonSetSpec -> V1PodTemplateSpec
v1beta1DaemonSetSpecSelector :: V1beta1DaemonSetSpec -> Maybe V1LabelSelector
v1beta1DaemonSetSpecRevisionHistoryLimit :: V1beta1DaemonSetSpec -> Maybe Int
v1beta1DaemonSetSpecMinReadySeconds :: V1beta1DaemonSetSpec -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"minReadySeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1DaemonSetSpecMinReadySeconds
      , Text
"revisionHistoryLimit" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1DaemonSetSpecRevisionHistoryLimit
      , Text
"selector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1beta1DaemonSetSpecSelector
      , Text
"template" Text -> V1PodTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1PodTemplateSpec
v1beta1DaemonSetSpecTemplate
      , Text
"templateGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1beta1DaemonSetSpecTemplateGeneration
      , Text
"updateStrategy" Text -> Maybe V1beta1DaemonSetUpdateStrategy -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1DaemonSetUpdateStrategy
v1beta1DaemonSetSpecUpdateStrategy
      ]


-- | Construct a value of type 'V1beta1DaemonSetSpec' (by applying it's required fields, if any)
mkV1beta1DaemonSetSpec
  :: V1PodTemplateSpec -- ^ 'v1beta1DaemonSetSpecTemplate' 
  -> V1beta1DaemonSetSpec
mkV1beta1DaemonSetSpec :: V1PodTemplateSpec -> V1beta1DaemonSetSpec
mkV1beta1DaemonSetSpec V1PodTemplateSpec
v1beta1DaemonSetSpecTemplate =
  V1beta1DaemonSetSpec :: Maybe Int
-> Maybe Int
-> Maybe V1LabelSelector
-> V1PodTemplateSpec
-> Maybe Integer
-> Maybe V1beta1DaemonSetUpdateStrategy
-> V1beta1DaemonSetSpec
V1beta1DaemonSetSpec
  { v1beta1DaemonSetSpecMinReadySeconds :: Maybe Int
v1beta1DaemonSetSpecMinReadySeconds = Maybe Int
forall a. Maybe a
Nothing
  , v1beta1DaemonSetSpecRevisionHistoryLimit :: Maybe Int
v1beta1DaemonSetSpecRevisionHistoryLimit = Maybe Int
forall a. Maybe a
Nothing
  , v1beta1DaemonSetSpecSelector :: Maybe V1LabelSelector
v1beta1DaemonSetSpecSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , V1PodTemplateSpec
v1beta1DaemonSetSpecTemplate :: V1PodTemplateSpec
v1beta1DaemonSetSpecTemplate :: V1PodTemplateSpec
v1beta1DaemonSetSpecTemplate
  , v1beta1DaemonSetSpecTemplateGeneration :: Maybe Integer
v1beta1DaemonSetSpecTemplateGeneration = Maybe Integer
forall a. Maybe a
Nothing
  , v1beta1DaemonSetSpecUpdateStrategy :: Maybe V1beta1DaemonSetUpdateStrategy
v1beta1DaemonSetSpecUpdateStrategy = Maybe V1beta1DaemonSetUpdateStrategy
forall a. Maybe a
Nothing
  }

-- ** V1beta1DaemonSetStatus
-- | V1beta1DaemonSetStatus
-- DaemonSetStatus represents the current status of a daemon set.
data V1beta1DaemonSetStatus = V1beta1DaemonSetStatus
  { V1beta1DaemonSetStatus -> Maybe Int
v1beta1DaemonSetStatusCollisionCount :: !(Maybe Int) -- ^ "collisionCount" - Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.
  , V1beta1DaemonSetStatus -> Maybe [V1beta1DaemonSetCondition]
v1beta1DaemonSetStatusConditions :: !(Maybe [V1beta1DaemonSetCondition]) -- ^ "conditions" - Represents the latest available observations of a DaemonSet&#39;s current state.
  , V1beta1DaemonSetStatus -> Int
v1beta1DaemonSetStatusCurrentNumberScheduled :: !(Int) -- ^ /Required/ "currentNumberScheduled" - The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  , V1beta1DaemonSetStatus -> Int
v1beta1DaemonSetStatusDesiredNumberScheduled :: !(Int) -- ^ /Required/ "desiredNumberScheduled" - The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  , V1beta1DaemonSetStatus -> Maybe Int
v1beta1DaemonSetStatusNumberAvailable :: !(Maybe Int) -- ^ "numberAvailable" - The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)
  , V1beta1DaemonSetStatus -> Int
v1beta1DaemonSetStatusNumberMisscheduled :: !(Int) -- ^ /Required/ "numberMisscheduled" - The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  , V1beta1DaemonSetStatus -> Int
v1beta1DaemonSetStatusNumberReady :: !(Int) -- ^ /Required/ "numberReady" - The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.
  , V1beta1DaemonSetStatus -> Maybe Int
v1beta1DaemonSetStatusNumberUnavailable :: !(Maybe Int) -- ^ "numberUnavailable" - The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)
  , V1beta1DaemonSetStatus -> Maybe Integer
v1beta1DaemonSetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - The most recent generation observed by the daemon set controller.
  , V1beta1DaemonSetStatus -> Maybe Int
v1beta1DaemonSetStatusUpdatedNumberScheduled :: !(Maybe Int) -- ^ "updatedNumberScheduled" - The total number of nodes that are running updated daemon pod
  } deriving (Int -> V1beta1DaemonSetStatus -> ShowS
[V1beta1DaemonSetStatus] -> ShowS
V1beta1DaemonSetStatus -> String
(Int -> V1beta1DaemonSetStatus -> ShowS)
-> (V1beta1DaemonSetStatus -> String)
-> ([V1beta1DaemonSetStatus] -> ShowS)
-> Show V1beta1DaemonSetStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1DaemonSetStatus] -> ShowS
$cshowList :: [V1beta1DaemonSetStatus] -> ShowS
show :: V1beta1DaemonSetStatus -> String
$cshow :: V1beta1DaemonSetStatus -> String
showsPrec :: Int -> V1beta1DaemonSetStatus -> ShowS
$cshowsPrec :: Int -> V1beta1DaemonSetStatus -> ShowS
P.Show, V1beta1DaemonSetStatus -> V1beta1DaemonSetStatus -> Bool
(V1beta1DaemonSetStatus -> V1beta1DaemonSetStatus -> Bool)
-> (V1beta1DaemonSetStatus -> V1beta1DaemonSetStatus -> Bool)
-> Eq V1beta1DaemonSetStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1DaemonSetStatus -> V1beta1DaemonSetStatus -> Bool
$c/= :: V1beta1DaemonSetStatus -> V1beta1DaemonSetStatus -> Bool
== :: V1beta1DaemonSetStatus -> V1beta1DaemonSetStatus -> Bool
$c== :: V1beta1DaemonSetStatus -> V1beta1DaemonSetStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1DaemonSetStatus
instance A.FromJSON V1beta1DaemonSetStatus where
  parseJSON :: Value -> Parser V1beta1DaemonSetStatus
parseJSON = String
-> (Object -> Parser V1beta1DaemonSetStatus)
-> Value
-> Parser V1beta1DaemonSetStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1DaemonSetStatus" ((Object -> Parser V1beta1DaemonSetStatus)
 -> Value -> Parser V1beta1DaemonSetStatus)
-> (Object -> Parser V1beta1DaemonSetStatus)
-> Value
-> Parser V1beta1DaemonSetStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe [V1beta1DaemonSetCondition]
-> Int
-> Int
-> Maybe Int
-> Int
-> Int
-> Maybe Int
-> Maybe Integer
-> Maybe Int
-> V1beta1DaemonSetStatus
V1beta1DaemonSetStatus
      (Maybe Int
 -> Maybe [V1beta1DaemonSetCondition]
 -> Int
 -> Int
 -> Maybe Int
 -> Int
 -> Int
 -> Maybe Int
 -> Maybe Integer
 -> Maybe Int
 -> V1beta1DaemonSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe [V1beta1DaemonSetCondition]
      -> Int
      -> Int
      -> Maybe Int
      -> Int
      -> Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1beta1DaemonSetStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"collisionCount")
      Parser
  (Maybe [V1beta1DaemonSetCondition]
   -> Int
   -> Int
   -> Maybe Int
   -> Int
   -> Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1beta1DaemonSetStatus)
-> Parser (Maybe [V1beta1DaemonSetCondition])
-> Parser
     (Int
      -> Int
      -> Maybe Int
      -> Int
      -> Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1beta1DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1DaemonSetCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Int
   -> Int
   -> Maybe Int
   -> Int
   -> Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1beta1DaemonSetStatus)
-> Parser Int
-> Parser
     (Int
      -> Maybe Int
      -> Int
      -> Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1beta1DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"currentNumberScheduled")
      Parser
  (Int
   -> Maybe Int
   -> Int
   -> Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1beta1DaemonSetStatus)
-> Parser Int
-> Parser
     (Maybe Int
      -> Int
      -> Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1beta1DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"desiredNumberScheduled")
      Parser
  (Maybe Int
   -> Int
   -> Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1beta1DaemonSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Int
      -> Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1beta1DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"numberAvailable")
      Parser
  (Int
   -> Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1beta1DaemonSetStatus)
-> Parser Int
-> Parser
     (Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1beta1DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"numberMisscheduled")
      Parser
  (Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1beta1DaemonSetStatus)
-> Parser Int
-> Parser
     (Maybe Int -> Maybe Integer -> Maybe Int -> V1beta1DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"numberReady")
      Parser
  (Maybe Int -> Maybe Integer -> Maybe Int -> V1beta1DaemonSetStatus)
-> Parser (Maybe Int)
-> Parser (Maybe Integer -> Maybe Int -> V1beta1DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"numberUnavailable")
      Parser (Maybe Integer -> Maybe Int -> V1beta1DaemonSetStatus)
-> Parser (Maybe Integer)
-> Parser (Maybe Int -> V1beta1DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")
      Parser (Maybe Int -> V1beta1DaemonSetStatus)
-> Parser (Maybe Int) -> Parser V1beta1DaemonSetStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updatedNumberScheduled")

-- | ToJSON V1beta1DaemonSetStatus
instance A.ToJSON V1beta1DaemonSetStatus where
  toJSON :: V1beta1DaemonSetStatus -> Value
toJSON V1beta1DaemonSetStatus {Int
Maybe Int
Maybe Integer
Maybe [V1beta1DaemonSetCondition]
v1beta1DaemonSetStatusUpdatedNumberScheduled :: Maybe Int
v1beta1DaemonSetStatusObservedGeneration :: Maybe Integer
v1beta1DaemonSetStatusNumberUnavailable :: Maybe Int
v1beta1DaemonSetStatusNumberReady :: Int
v1beta1DaemonSetStatusNumberMisscheduled :: Int
v1beta1DaemonSetStatusNumberAvailable :: Maybe Int
v1beta1DaemonSetStatusDesiredNumberScheduled :: Int
v1beta1DaemonSetStatusCurrentNumberScheduled :: Int
v1beta1DaemonSetStatusConditions :: Maybe [V1beta1DaemonSetCondition]
v1beta1DaemonSetStatusCollisionCount :: Maybe Int
v1beta1DaemonSetStatusUpdatedNumberScheduled :: V1beta1DaemonSetStatus -> Maybe Int
v1beta1DaemonSetStatusObservedGeneration :: V1beta1DaemonSetStatus -> Maybe Integer
v1beta1DaemonSetStatusNumberUnavailable :: V1beta1DaemonSetStatus -> Maybe Int
v1beta1DaemonSetStatusNumberReady :: V1beta1DaemonSetStatus -> Int
v1beta1DaemonSetStatusNumberMisscheduled :: V1beta1DaemonSetStatus -> Int
v1beta1DaemonSetStatusNumberAvailable :: V1beta1DaemonSetStatus -> Maybe Int
v1beta1DaemonSetStatusDesiredNumberScheduled :: V1beta1DaemonSetStatus -> Int
v1beta1DaemonSetStatusCurrentNumberScheduled :: V1beta1DaemonSetStatus -> Int
v1beta1DaemonSetStatusConditions :: V1beta1DaemonSetStatus -> Maybe [V1beta1DaemonSetCondition]
v1beta1DaemonSetStatusCollisionCount :: V1beta1DaemonSetStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"collisionCount" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1DaemonSetStatusCollisionCount
      , Text
"conditions" Text -> Maybe [V1beta1DaemonSetCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1DaemonSetCondition]
v1beta1DaemonSetStatusConditions
      , Text
"currentNumberScheduled" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta1DaemonSetStatusCurrentNumberScheduled
      , Text
"desiredNumberScheduled" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta1DaemonSetStatusDesiredNumberScheduled
      , Text
"numberAvailable" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1DaemonSetStatusNumberAvailable
      , Text
"numberMisscheduled" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta1DaemonSetStatusNumberMisscheduled
      , Text
"numberReady" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta1DaemonSetStatusNumberReady
      , Text
"numberUnavailable" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1DaemonSetStatusNumberUnavailable
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1beta1DaemonSetStatusObservedGeneration
      , Text
"updatedNumberScheduled" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1DaemonSetStatusUpdatedNumberScheduled
      ]


-- | Construct a value of type 'V1beta1DaemonSetStatus' (by applying it's required fields, if any)
mkV1beta1DaemonSetStatus
  :: Int -- ^ 'v1beta1DaemonSetStatusCurrentNumberScheduled': The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  -> Int -- ^ 'v1beta1DaemonSetStatusDesiredNumberScheduled': The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  -> Int -- ^ 'v1beta1DaemonSetStatusNumberMisscheduled': The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  -> Int -- ^ 'v1beta1DaemonSetStatusNumberReady': The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.
  -> V1beta1DaemonSetStatus
mkV1beta1DaemonSetStatus :: Int -> Int -> Int -> Int -> V1beta1DaemonSetStatus
mkV1beta1DaemonSetStatus Int
v1beta1DaemonSetStatusCurrentNumberScheduled Int
v1beta1DaemonSetStatusDesiredNumberScheduled Int
v1beta1DaemonSetStatusNumberMisscheduled Int
v1beta1DaemonSetStatusNumberReady =
  V1beta1DaemonSetStatus :: Maybe Int
-> Maybe [V1beta1DaemonSetCondition]
-> Int
-> Int
-> Maybe Int
-> Int
-> Int
-> Maybe Int
-> Maybe Integer
-> Maybe Int
-> V1beta1DaemonSetStatus
V1beta1DaemonSetStatus
  { v1beta1DaemonSetStatusCollisionCount :: Maybe Int
v1beta1DaemonSetStatusCollisionCount = Maybe Int
forall a. Maybe a
Nothing
  , v1beta1DaemonSetStatusConditions :: Maybe [V1beta1DaemonSetCondition]
v1beta1DaemonSetStatusConditions = Maybe [V1beta1DaemonSetCondition]
forall a. Maybe a
Nothing
  , Int
v1beta1DaemonSetStatusCurrentNumberScheduled :: Int
v1beta1DaemonSetStatusCurrentNumberScheduled :: Int
v1beta1DaemonSetStatusCurrentNumberScheduled
  , Int
v1beta1DaemonSetStatusDesiredNumberScheduled :: Int
v1beta1DaemonSetStatusDesiredNumberScheduled :: Int
v1beta1DaemonSetStatusDesiredNumberScheduled
  , v1beta1DaemonSetStatusNumberAvailable :: Maybe Int
v1beta1DaemonSetStatusNumberAvailable = Maybe Int
forall a. Maybe a
Nothing
  , Int
v1beta1DaemonSetStatusNumberMisscheduled :: Int
v1beta1DaemonSetStatusNumberMisscheduled :: Int
v1beta1DaemonSetStatusNumberMisscheduled
  , Int
v1beta1DaemonSetStatusNumberReady :: Int
v1beta1DaemonSetStatusNumberReady :: Int
v1beta1DaemonSetStatusNumberReady
  , v1beta1DaemonSetStatusNumberUnavailable :: Maybe Int
v1beta1DaemonSetStatusNumberUnavailable = Maybe Int
forall a. Maybe a
Nothing
  , v1beta1DaemonSetStatusObservedGeneration :: Maybe Integer
v1beta1DaemonSetStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  , v1beta1DaemonSetStatusUpdatedNumberScheduled :: Maybe Int
v1beta1DaemonSetStatusUpdatedNumberScheduled = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1beta1DaemonSetUpdateStrategy
-- | V1beta1DaemonSetUpdateStrategy
data V1beta1DaemonSetUpdateStrategy = V1beta1DaemonSetUpdateStrategy
  { V1beta1DaemonSetUpdateStrategy
-> Maybe V1beta1RollingUpdateDaemonSet
v1beta1DaemonSetUpdateStrategyRollingUpdate :: !(Maybe V1beta1RollingUpdateDaemonSet) -- ^ "rollingUpdate"
  , V1beta1DaemonSetUpdateStrategy -> Maybe Text
v1beta1DaemonSetUpdateStrategyType :: !(Maybe Text) -- ^ "type" - Type of daemon set update. Can be \&quot;RollingUpdate\&quot; or \&quot;OnDelete\&quot;. Default is OnDelete.
  } deriving (Int -> V1beta1DaemonSetUpdateStrategy -> ShowS
[V1beta1DaemonSetUpdateStrategy] -> ShowS
V1beta1DaemonSetUpdateStrategy -> String
(Int -> V1beta1DaemonSetUpdateStrategy -> ShowS)
-> (V1beta1DaemonSetUpdateStrategy -> String)
-> ([V1beta1DaemonSetUpdateStrategy] -> ShowS)
-> Show V1beta1DaemonSetUpdateStrategy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1DaemonSetUpdateStrategy] -> ShowS
$cshowList :: [V1beta1DaemonSetUpdateStrategy] -> ShowS
show :: V1beta1DaemonSetUpdateStrategy -> String
$cshow :: V1beta1DaemonSetUpdateStrategy -> String
showsPrec :: Int -> V1beta1DaemonSetUpdateStrategy -> ShowS
$cshowsPrec :: Int -> V1beta1DaemonSetUpdateStrategy -> ShowS
P.Show, V1beta1DaemonSetUpdateStrategy
-> V1beta1DaemonSetUpdateStrategy -> Bool
(V1beta1DaemonSetUpdateStrategy
 -> V1beta1DaemonSetUpdateStrategy -> Bool)
-> (V1beta1DaemonSetUpdateStrategy
    -> V1beta1DaemonSetUpdateStrategy -> Bool)
-> Eq V1beta1DaemonSetUpdateStrategy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1DaemonSetUpdateStrategy
-> V1beta1DaemonSetUpdateStrategy -> Bool
$c/= :: V1beta1DaemonSetUpdateStrategy
-> V1beta1DaemonSetUpdateStrategy -> Bool
== :: V1beta1DaemonSetUpdateStrategy
-> V1beta1DaemonSetUpdateStrategy -> Bool
$c== :: V1beta1DaemonSetUpdateStrategy
-> V1beta1DaemonSetUpdateStrategy -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1DaemonSetUpdateStrategy
instance A.FromJSON V1beta1DaemonSetUpdateStrategy where
  parseJSON :: Value -> Parser V1beta1DaemonSetUpdateStrategy
parseJSON = String
-> (Object -> Parser V1beta1DaemonSetUpdateStrategy)
-> Value
-> Parser V1beta1DaemonSetUpdateStrategy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1DaemonSetUpdateStrategy" ((Object -> Parser V1beta1DaemonSetUpdateStrategy)
 -> Value -> Parser V1beta1DaemonSetUpdateStrategy)
-> (Object -> Parser V1beta1DaemonSetUpdateStrategy)
-> Value
-> Parser V1beta1DaemonSetUpdateStrategy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1beta1RollingUpdateDaemonSet
-> Maybe Text -> V1beta1DaemonSetUpdateStrategy
V1beta1DaemonSetUpdateStrategy
      (Maybe V1beta1RollingUpdateDaemonSet
 -> Maybe Text -> V1beta1DaemonSetUpdateStrategy)
-> Parser (Maybe V1beta1RollingUpdateDaemonSet)
-> Parser (Maybe Text -> V1beta1DaemonSetUpdateStrategy)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1beta1RollingUpdateDaemonSet)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rollingUpdate")
      Parser (Maybe Text -> V1beta1DaemonSetUpdateStrategy)
-> Parser (Maybe Text) -> Parser V1beta1DaemonSetUpdateStrategy
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")

-- | ToJSON V1beta1DaemonSetUpdateStrategy
instance A.ToJSON V1beta1DaemonSetUpdateStrategy where
  toJSON :: V1beta1DaemonSetUpdateStrategy -> Value
toJSON V1beta1DaemonSetUpdateStrategy {Maybe Text
Maybe V1beta1RollingUpdateDaemonSet
v1beta1DaemonSetUpdateStrategyType :: Maybe Text
v1beta1DaemonSetUpdateStrategyRollingUpdate :: Maybe V1beta1RollingUpdateDaemonSet
v1beta1DaemonSetUpdateStrategyType :: V1beta1DaemonSetUpdateStrategy -> Maybe Text
v1beta1DaemonSetUpdateStrategyRollingUpdate :: V1beta1DaemonSetUpdateStrategy
-> Maybe V1beta1RollingUpdateDaemonSet
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"rollingUpdate" Text -> Maybe V1beta1RollingUpdateDaemonSet -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1RollingUpdateDaemonSet
v1beta1DaemonSetUpdateStrategyRollingUpdate
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1DaemonSetUpdateStrategyType
      ]


-- | Construct a value of type 'V1beta1DaemonSetUpdateStrategy' (by applying it's required fields, if any)
mkV1beta1DaemonSetUpdateStrategy
  :: V1beta1DaemonSetUpdateStrategy
mkV1beta1DaemonSetUpdateStrategy :: V1beta1DaemonSetUpdateStrategy
mkV1beta1DaemonSetUpdateStrategy =
  V1beta1DaemonSetUpdateStrategy :: Maybe V1beta1RollingUpdateDaemonSet
-> Maybe Text -> V1beta1DaemonSetUpdateStrategy
V1beta1DaemonSetUpdateStrategy
  { v1beta1DaemonSetUpdateStrategyRollingUpdate :: Maybe V1beta1RollingUpdateDaemonSet
v1beta1DaemonSetUpdateStrategyRollingUpdate = Maybe V1beta1RollingUpdateDaemonSet
forall a. Maybe a
Nothing
  , v1beta1DaemonSetUpdateStrategyType :: Maybe Text
v1beta1DaemonSetUpdateStrategyType = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1Event
-- | V1beta1Event
-- Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.
data V1beta1Event = V1beta1Event
  { V1beta1Event -> Maybe Text
v1beta1EventAction :: !(Maybe Text) -- ^ "action" - What action was taken/failed regarding to the regarding object.
  , V1beta1Event -> Maybe Text
v1beta1EventApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1Event -> Maybe Int
v1beta1EventDeprecatedCount :: !(Maybe Int) -- ^ "deprecatedCount" - Deprecated field assuring backward compatibility with core.v1 Event type
  , V1beta1Event -> Maybe DateTime
v1beta1EventDeprecatedFirstTimestamp :: !(Maybe DateTime) -- ^ "deprecatedFirstTimestamp" - Deprecated field assuring backward compatibility with core.v1 Event type
  , V1beta1Event -> Maybe DateTime
v1beta1EventDeprecatedLastTimestamp :: !(Maybe DateTime) -- ^ "deprecatedLastTimestamp" - Deprecated field assuring backward compatibility with core.v1 Event type
  , V1beta1Event -> Maybe V1EventSource
v1beta1EventDeprecatedSource :: !(Maybe V1EventSource) -- ^ "deprecatedSource"
  , V1beta1Event -> DateTime
v1beta1EventEventTime :: !(DateTime) -- ^ /Required/ "eventTime" - Required. Time when this Event was first observed.
  , V1beta1Event -> Maybe Text
v1beta1EventKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1Event -> Maybe V1ObjectMeta
v1beta1EventMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1Event -> Maybe Text
v1beta1EventNote :: !(Maybe Text) -- ^ "note" - Optional. A human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.
  , V1beta1Event -> Maybe Text
v1beta1EventReason :: !(Maybe Text) -- ^ "reason" - Why the action was taken.
  , V1beta1Event -> Maybe V1ObjectReference
v1beta1EventRegarding :: !(Maybe V1ObjectReference) -- ^ "regarding"
  , V1beta1Event -> Maybe V1ObjectReference
v1beta1EventRelated :: !(Maybe V1ObjectReference) -- ^ "related"
  , V1beta1Event -> Maybe Text
v1beta1EventReportingController :: !(Maybe Text) -- ^ "reportingController" - Name of the controller that emitted this Event, e.g. &#x60;kubernetes.io/kubelet&#x60;.
  , V1beta1Event -> Maybe Text
v1beta1EventReportingInstance :: !(Maybe Text) -- ^ "reportingInstance" - ID of the controller instance, e.g. &#x60;kubelet-xyzf&#x60;.
  , V1beta1Event -> Maybe V1beta1EventSeries
v1beta1EventSeries :: !(Maybe V1beta1EventSeries) -- ^ "series"
  , V1beta1Event -> Maybe Text
v1beta1EventType :: !(Maybe Text) -- ^ "type" - Type of this event (Normal, Warning), new types could be added in the future.
  } deriving (Int -> V1beta1Event -> ShowS
[V1beta1Event] -> ShowS
V1beta1Event -> String
(Int -> V1beta1Event -> ShowS)
-> (V1beta1Event -> String)
-> ([V1beta1Event] -> ShowS)
-> Show V1beta1Event
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1Event] -> ShowS
$cshowList :: [V1beta1Event] -> ShowS
show :: V1beta1Event -> String
$cshow :: V1beta1Event -> String
showsPrec :: Int -> V1beta1Event -> ShowS
$cshowsPrec :: Int -> V1beta1Event -> ShowS
P.Show, V1beta1Event -> V1beta1Event -> Bool
(V1beta1Event -> V1beta1Event -> Bool)
-> (V1beta1Event -> V1beta1Event -> Bool) -> Eq V1beta1Event
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1Event -> V1beta1Event -> Bool
$c/= :: V1beta1Event -> V1beta1Event -> Bool
== :: V1beta1Event -> V1beta1Event -> Bool
$c== :: V1beta1Event -> V1beta1Event -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1Event
instance A.FromJSON V1beta1Event where
  parseJSON :: Value -> Parser V1beta1Event
parseJSON = String
-> (Object -> Parser V1beta1Event) -> Value -> Parser V1beta1Event
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1Event" ((Object -> Parser V1beta1Event) -> Value -> Parser V1beta1Event)
-> (Object -> Parser V1beta1Event) -> Value -> Parser V1beta1Event
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe DateTime
-> Maybe DateTime
-> Maybe V1EventSource
-> DateTime
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe Text
-> Maybe Text
-> Maybe V1ObjectReference
-> Maybe V1ObjectReference
-> Maybe Text
-> Maybe Text
-> Maybe V1beta1EventSeries
-> Maybe Text
-> V1beta1Event
V1beta1Event
      (Maybe Text
 -> Maybe Text
 -> Maybe Int
 -> Maybe DateTime
 -> Maybe DateTime
 -> Maybe V1EventSource
 -> DateTime
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectReference
 -> Maybe V1ObjectReference
 -> Maybe Text
 -> Maybe Text
 -> Maybe V1beta1EventSeries
 -> Maybe Text
 -> V1beta1Event)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe DateTime
      -> Maybe DateTime
      -> Maybe V1EventSource
      -> DateTime
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1beta1EventSeries
      -> Maybe Text
      -> V1beta1Event)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"action")
      Parser
  (Maybe Text
   -> Maybe Int
   -> Maybe DateTime
   -> Maybe DateTime
   -> Maybe V1EventSource
   -> DateTime
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1beta1EventSeries
   -> Maybe Text
   -> V1beta1Event)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe DateTime
      -> Maybe DateTime
      -> Maybe V1EventSource
      -> DateTime
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1beta1EventSeries
      -> Maybe Text
      -> V1beta1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Int
   -> Maybe DateTime
   -> Maybe DateTime
   -> Maybe V1EventSource
   -> DateTime
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1beta1EventSeries
   -> Maybe Text
   -> V1beta1Event)
-> Parser (Maybe Int)
-> Parser
     (Maybe DateTime
      -> Maybe DateTime
      -> Maybe V1EventSource
      -> DateTime
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1beta1EventSeries
      -> Maybe Text
      -> V1beta1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"deprecatedCount")
      Parser
  (Maybe DateTime
   -> Maybe DateTime
   -> Maybe V1EventSource
   -> DateTime
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1beta1EventSeries
   -> Maybe Text
   -> V1beta1Event)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe DateTime
      -> Maybe V1EventSource
      -> DateTime
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1beta1EventSeries
      -> Maybe Text
      -> V1beta1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"deprecatedFirstTimestamp")
      Parser
  (Maybe DateTime
   -> Maybe V1EventSource
   -> DateTime
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1beta1EventSeries
   -> Maybe Text
   -> V1beta1Event)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe V1EventSource
      -> DateTime
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1beta1EventSeries
      -> Maybe Text
      -> V1beta1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"deprecatedLastTimestamp")
      Parser
  (Maybe V1EventSource
   -> DateTime
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1beta1EventSeries
   -> Maybe Text
   -> V1beta1Event)
-> Parser (Maybe V1EventSource)
-> Parser
     (DateTime
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1beta1EventSeries
      -> Maybe Text
      -> V1beta1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1EventSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"deprecatedSource")
      Parser
  (DateTime
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1beta1EventSeries
   -> Maybe Text
   -> V1beta1Event)
-> Parser DateTime
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1beta1EventSeries
      -> Maybe Text
      -> V1beta1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser DateTime
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"eventTime")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1beta1EventSeries
   -> Maybe Text
   -> V1beta1Event)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1beta1EventSeries
      -> Maybe Text
      -> V1beta1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1beta1EventSeries
   -> Maybe Text
   -> V1beta1Event)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1beta1EventSeries
      -> Maybe Text
      -> V1beta1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1beta1EventSeries
   -> Maybe Text
   -> V1beta1Event)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectReference
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1beta1EventSeries
      -> Maybe Text
      -> V1beta1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"note")
      Parser
  (Maybe Text
   -> Maybe V1ObjectReference
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1beta1EventSeries
   -> Maybe Text
   -> V1beta1Event)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectReference
      -> Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1beta1EventSeries
      -> Maybe Text
      -> V1beta1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser
  (Maybe V1ObjectReference
   -> Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1beta1EventSeries
   -> Maybe Text
   -> V1beta1Event)
-> Parser (Maybe V1ObjectReference)
-> Parser
     (Maybe V1ObjectReference
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1beta1EventSeries
      -> Maybe Text
      -> V1beta1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"regarding")
      Parser
  (Maybe V1ObjectReference
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1beta1EventSeries
   -> Maybe Text
   -> V1beta1Event)
-> Parser (Maybe V1ObjectReference)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe V1beta1EventSeries
      -> Maybe Text
      -> V1beta1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectReference)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"related")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe V1beta1EventSeries
   -> Maybe Text
   -> V1beta1Event)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1beta1EventSeries -> Maybe Text -> V1beta1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reportingController")
      Parser
  (Maybe Text
   -> Maybe V1beta1EventSeries -> Maybe Text -> V1beta1Event)
-> Parser (Maybe Text)
-> Parser (Maybe V1beta1EventSeries -> Maybe Text -> V1beta1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reportingInstance")
      Parser (Maybe V1beta1EventSeries -> Maybe Text -> V1beta1Event)
-> Parser (Maybe V1beta1EventSeries)
-> Parser (Maybe Text -> V1beta1Event)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1EventSeries)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"series")
      Parser (Maybe Text -> V1beta1Event)
-> Parser (Maybe Text) -> Parser V1beta1Event
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")

-- | ToJSON V1beta1Event
instance A.ToJSON V1beta1Event where
  toJSON :: V1beta1Event -> Value
toJSON V1beta1Event {Maybe Int
Maybe Text
Maybe DateTime
Maybe V1beta1EventSeries
Maybe V1ObjectReference
Maybe V1ObjectMeta
Maybe V1EventSource
DateTime
v1beta1EventType :: Maybe Text
v1beta1EventSeries :: Maybe V1beta1EventSeries
v1beta1EventReportingInstance :: Maybe Text
v1beta1EventReportingController :: Maybe Text
v1beta1EventRelated :: Maybe V1ObjectReference
v1beta1EventRegarding :: Maybe V1ObjectReference
v1beta1EventReason :: Maybe Text
v1beta1EventNote :: Maybe Text
v1beta1EventMetadata :: Maybe V1ObjectMeta
v1beta1EventKind :: Maybe Text
v1beta1EventEventTime :: DateTime
v1beta1EventDeprecatedSource :: Maybe V1EventSource
v1beta1EventDeprecatedLastTimestamp :: Maybe DateTime
v1beta1EventDeprecatedFirstTimestamp :: Maybe DateTime
v1beta1EventDeprecatedCount :: Maybe Int
v1beta1EventApiVersion :: Maybe Text
v1beta1EventAction :: Maybe Text
v1beta1EventType :: V1beta1Event -> Maybe Text
v1beta1EventSeries :: V1beta1Event -> Maybe V1beta1EventSeries
v1beta1EventReportingInstance :: V1beta1Event -> Maybe Text
v1beta1EventReportingController :: V1beta1Event -> Maybe Text
v1beta1EventRelated :: V1beta1Event -> Maybe V1ObjectReference
v1beta1EventRegarding :: V1beta1Event -> Maybe V1ObjectReference
v1beta1EventReason :: V1beta1Event -> Maybe Text
v1beta1EventNote :: V1beta1Event -> Maybe Text
v1beta1EventMetadata :: V1beta1Event -> Maybe V1ObjectMeta
v1beta1EventKind :: V1beta1Event -> Maybe Text
v1beta1EventEventTime :: V1beta1Event -> DateTime
v1beta1EventDeprecatedSource :: V1beta1Event -> Maybe V1EventSource
v1beta1EventDeprecatedLastTimestamp :: V1beta1Event -> Maybe DateTime
v1beta1EventDeprecatedFirstTimestamp :: V1beta1Event -> Maybe DateTime
v1beta1EventDeprecatedCount :: V1beta1Event -> Maybe Int
v1beta1EventApiVersion :: V1beta1Event -> Maybe Text
v1beta1EventAction :: V1beta1Event -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"action" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1EventAction
      , Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1EventApiVersion
      , Text
"deprecatedCount" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1EventDeprecatedCount
      , Text
"deprecatedFirstTimestamp" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta1EventDeprecatedFirstTimestamp
      , Text
"deprecatedLastTimestamp" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta1EventDeprecatedLastTimestamp
      , Text
"deprecatedSource" Text -> Maybe V1EventSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1EventSource
v1beta1EventDeprecatedSource
      , Text
"eventTime" Text -> DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= DateTime
v1beta1EventEventTime
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1EventKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1EventMetadata
      , Text
"note" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1EventNote
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1EventReason
      , Text
"regarding" Text -> Maybe V1ObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectReference
v1beta1EventRegarding
      , Text
"related" Text -> Maybe V1ObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectReference
v1beta1EventRelated
      , Text
"reportingController" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1EventReportingController
      , Text
"reportingInstance" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1EventReportingInstance
      , Text
"series" Text -> Maybe V1beta1EventSeries -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1EventSeries
v1beta1EventSeries
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1EventType
      ]


-- | Construct a value of type 'V1beta1Event' (by applying it's required fields, if any)
mkV1beta1Event
  :: DateTime -- ^ 'v1beta1EventEventTime': Required. Time when this Event was first observed.
  -> V1beta1Event
mkV1beta1Event :: DateTime -> V1beta1Event
mkV1beta1Event DateTime
v1beta1EventEventTime =
  V1beta1Event :: Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe DateTime
-> Maybe DateTime
-> Maybe V1EventSource
-> DateTime
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe Text
-> Maybe Text
-> Maybe V1ObjectReference
-> Maybe V1ObjectReference
-> Maybe Text
-> Maybe Text
-> Maybe V1beta1EventSeries
-> Maybe Text
-> V1beta1Event
V1beta1Event
  { v1beta1EventAction :: Maybe Text
v1beta1EventAction = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1EventApiVersion :: Maybe Text
v1beta1EventApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1EventDeprecatedCount :: Maybe Int
v1beta1EventDeprecatedCount = Maybe Int
forall a. Maybe a
Nothing
  , v1beta1EventDeprecatedFirstTimestamp :: Maybe DateTime
v1beta1EventDeprecatedFirstTimestamp = Maybe DateTime
forall a. Maybe a
Nothing
  , v1beta1EventDeprecatedLastTimestamp :: Maybe DateTime
v1beta1EventDeprecatedLastTimestamp = Maybe DateTime
forall a. Maybe a
Nothing
  , v1beta1EventDeprecatedSource :: Maybe V1EventSource
v1beta1EventDeprecatedSource = Maybe V1EventSource
forall a. Maybe a
Nothing
  , DateTime
v1beta1EventEventTime :: DateTime
v1beta1EventEventTime :: DateTime
v1beta1EventEventTime
  , v1beta1EventKind :: Maybe Text
v1beta1EventKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1EventMetadata :: Maybe V1ObjectMeta
v1beta1EventMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1EventNote :: Maybe Text
v1beta1EventNote = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1EventReason :: Maybe Text
v1beta1EventReason = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1EventRegarding :: Maybe V1ObjectReference
v1beta1EventRegarding = Maybe V1ObjectReference
forall a. Maybe a
Nothing
  , v1beta1EventRelated :: Maybe V1ObjectReference
v1beta1EventRelated = Maybe V1ObjectReference
forall a. Maybe a
Nothing
  , v1beta1EventReportingController :: Maybe Text
v1beta1EventReportingController = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1EventReportingInstance :: Maybe Text
v1beta1EventReportingInstance = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1EventSeries :: Maybe V1beta1EventSeries
v1beta1EventSeries = Maybe V1beta1EventSeries
forall a. Maybe a
Nothing
  , v1beta1EventType :: Maybe Text
v1beta1EventType = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1EventList
-- | V1beta1EventList
-- EventList is a list of Event objects.
data V1beta1EventList = V1beta1EventList
  { V1beta1EventList -> Maybe Text
v1beta1EventListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1EventList -> [V1beta1Event]
v1beta1EventListItems :: !([V1beta1Event]) -- ^ /Required/ "items" - Items is a list of schema objects.
  , V1beta1EventList -> Maybe Text
v1beta1EventListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1EventList -> Maybe V1ListMeta
v1beta1EventListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1EventList -> ShowS
[V1beta1EventList] -> ShowS
V1beta1EventList -> String
(Int -> V1beta1EventList -> ShowS)
-> (V1beta1EventList -> String)
-> ([V1beta1EventList] -> ShowS)
-> Show V1beta1EventList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1EventList] -> ShowS
$cshowList :: [V1beta1EventList] -> ShowS
show :: V1beta1EventList -> String
$cshow :: V1beta1EventList -> String
showsPrec :: Int -> V1beta1EventList -> ShowS
$cshowsPrec :: Int -> V1beta1EventList -> ShowS
P.Show, V1beta1EventList -> V1beta1EventList -> Bool
(V1beta1EventList -> V1beta1EventList -> Bool)
-> (V1beta1EventList -> V1beta1EventList -> Bool)
-> Eq V1beta1EventList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1EventList -> V1beta1EventList -> Bool
$c/= :: V1beta1EventList -> V1beta1EventList -> Bool
== :: V1beta1EventList -> V1beta1EventList -> Bool
$c== :: V1beta1EventList -> V1beta1EventList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1EventList
instance A.FromJSON V1beta1EventList where
  parseJSON :: Value -> Parser V1beta1EventList
parseJSON = String
-> (Object -> Parser V1beta1EventList)
-> Value
-> Parser V1beta1EventList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1EventList" ((Object -> Parser V1beta1EventList)
 -> Value -> Parser V1beta1EventList)
-> (Object -> Parser V1beta1EventList)
-> Value
-> Parser V1beta1EventList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1Event]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1EventList
V1beta1EventList
      (Maybe Text
 -> [V1beta1Event]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1EventList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1Event]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1EventList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1Event]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1EventList)
-> Parser [V1beta1Event]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1EventList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1Event]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1EventList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1EventList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1EventList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1EventList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1EventList
instance A.ToJSON V1beta1EventList where
  toJSON :: V1beta1EventList -> Value
toJSON V1beta1EventList {[V1beta1Event]
Maybe Text
Maybe V1ListMeta
v1beta1EventListMetadata :: Maybe V1ListMeta
v1beta1EventListKind :: Maybe Text
v1beta1EventListItems :: [V1beta1Event]
v1beta1EventListApiVersion :: Maybe Text
v1beta1EventListMetadata :: V1beta1EventList -> Maybe V1ListMeta
v1beta1EventListKind :: V1beta1EventList -> Maybe Text
v1beta1EventListItems :: V1beta1EventList -> [V1beta1Event]
v1beta1EventListApiVersion :: V1beta1EventList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1EventListApiVersion
      , Text
"items" Text -> [V1beta1Event] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1Event]
v1beta1EventListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1EventListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1EventListMetadata
      ]


-- | Construct a value of type 'V1beta1EventList' (by applying it's required fields, if any)
mkV1beta1EventList
  :: [V1beta1Event] -- ^ 'v1beta1EventListItems': Items is a list of schema objects.
  -> V1beta1EventList
mkV1beta1EventList :: [V1beta1Event] -> V1beta1EventList
mkV1beta1EventList [V1beta1Event]
v1beta1EventListItems =
  V1beta1EventList :: Maybe Text
-> [V1beta1Event]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1EventList
V1beta1EventList
  { v1beta1EventListApiVersion :: Maybe Text
v1beta1EventListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1Event]
v1beta1EventListItems :: [V1beta1Event]
v1beta1EventListItems :: [V1beta1Event]
v1beta1EventListItems
  , v1beta1EventListKind :: Maybe Text
v1beta1EventListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1EventListMetadata :: Maybe V1ListMeta
v1beta1EventListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1EventSeries
-- | V1beta1EventSeries
-- EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.
data V1beta1EventSeries = V1beta1EventSeries
  { V1beta1EventSeries -> Int
v1beta1EventSeriesCount :: !(Int) -- ^ /Required/ "count" - Number of occurrences in this series up to the last heartbeat time
  , V1beta1EventSeries -> DateTime
v1beta1EventSeriesLastObservedTime :: !(DateTime) -- ^ /Required/ "lastObservedTime" - Time when last Event from the series was seen before last heartbeat.
  , V1beta1EventSeries -> Text
v1beta1EventSeriesState :: !(Text) -- ^ /Required/ "state" - Information whether this series is ongoing or finished. Deprecated. Planned removal for 1.18
  } deriving (Int -> V1beta1EventSeries -> ShowS
[V1beta1EventSeries] -> ShowS
V1beta1EventSeries -> String
(Int -> V1beta1EventSeries -> ShowS)
-> (V1beta1EventSeries -> String)
-> ([V1beta1EventSeries] -> ShowS)
-> Show V1beta1EventSeries
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1EventSeries] -> ShowS
$cshowList :: [V1beta1EventSeries] -> ShowS
show :: V1beta1EventSeries -> String
$cshow :: V1beta1EventSeries -> String
showsPrec :: Int -> V1beta1EventSeries -> ShowS
$cshowsPrec :: Int -> V1beta1EventSeries -> ShowS
P.Show, V1beta1EventSeries -> V1beta1EventSeries -> Bool
(V1beta1EventSeries -> V1beta1EventSeries -> Bool)
-> (V1beta1EventSeries -> V1beta1EventSeries -> Bool)
-> Eq V1beta1EventSeries
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1EventSeries -> V1beta1EventSeries -> Bool
$c/= :: V1beta1EventSeries -> V1beta1EventSeries -> Bool
== :: V1beta1EventSeries -> V1beta1EventSeries -> Bool
$c== :: V1beta1EventSeries -> V1beta1EventSeries -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1EventSeries
instance A.FromJSON V1beta1EventSeries where
  parseJSON :: Value -> Parser V1beta1EventSeries
parseJSON = String
-> (Object -> Parser V1beta1EventSeries)
-> Value
-> Parser V1beta1EventSeries
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1EventSeries" ((Object -> Parser V1beta1EventSeries)
 -> Value -> Parser V1beta1EventSeries)
-> (Object -> Parser V1beta1EventSeries)
-> Value
-> Parser V1beta1EventSeries
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Int -> DateTime -> Text -> V1beta1EventSeries
V1beta1EventSeries
      (Int -> DateTime -> Text -> V1beta1EventSeries)
-> Parser Int -> Parser (DateTime -> Text -> V1beta1EventSeries)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"count")
      Parser (DateTime -> Text -> V1beta1EventSeries)
-> Parser DateTime -> Parser (Text -> V1beta1EventSeries)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser DateTime
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"lastObservedTime")
      Parser (Text -> V1beta1EventSeries)
-> Parser Text -> Parser V1beta1EventSeries
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"state")

-- | ToJSON V1beta1EventSeries
instance A.ToJSON V1beta1EventSeries where
  toJSON :: V1beta1EventSeries -> Value
toJSON V1beta1EventSeries {Int
Text
DateTime
v1beta1EventSeriesState :: Text
v1beta1EventSeriesLastObservedTime :: DateTime
v1beta1EventSeriesCount :: Int
v1beta1EventSeriesState :: V1beta1EventSeries -> Text
v1beta1EventSeriesLastObservedTime :: V1beta1EventSeries -> DateTime
v1beta1EventSeriesCount :: V1beta1EventSeries -> Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"count" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta1EventSeriesCount
      , Text
"lastObservedTime" Text -> DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= DateTime
v1beta1EventSeriesLastObservedTime
      , Text
"state" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1EventSeriesState
      ]


-- | Construct a value of type 'V1beta1EventSeries' (by applying it's required fields, if any)
mkV1beta1EventSeries
  :: Int -- ^ 'v1beta1EventSeriesCount': Number of occurrences in this series up to the last heartbeat time
  -> DateTime -- ^ 'v1beta1EventSeriesLastObservedTime': Time when last Event from the series was seen before last heartbeat.
  -> Text -- ^ 'v1beta1EventSeriesState': Information whether this series is ongoing or finished. Deprecated. Planned removal for 1.18
  -> V1beta1EventSeries
mkV1beta1EventSeries :: Int -> DateTime -> Text -> V1beta1EventSeries
mkV1beta1EventSeries Int
v1beta1EventSeriesCount DateTime
v1beta1EventSeriesLastObservedTime Text
v1beta1EventSeriesState =
  V1beta1EventSeries :: Int -> DateTime -> Text -> V1beta1EventSeries
V1beta1EventSeries
  { Int
v1beta1EventSeriesCount :: Int
v1beta1EventSeriesCount :: Int
v1beta1EventSeriesCount
  , DateTime
v1beta1EventSeriesLastObservedTime :: DateTime
v1beta1EventSeriesLastObservedTime :: DateTime
v1beta1EventSeriesLastObservedTime
  , Text
v1beta1EventSeriesState :: Text
v1beta1EventSeriesState :: Text
v1beta1EventSeriesState
  }

-- ** V1beta1Eviction
-- | V1beta1Eviction
-- Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod.  A request to cause such an eviction is created by POSTing to .../pods/<pod name>/evictions.
data V1beta1Eviction = V1beta1Eviction
  { V1beta1Eviction -> Maybe Text
v1beta1EvictionApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1Eviction -> Maybe V1DeleteOptions
v1beta1EvictionDeleteOptions :: !(Maybe V1DeleteOptions) -- ^ "deleteOptions"
  , V1beta1Eviction -> Maybe Text
v1beta1EvictionKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1Eviction -> Maybe V1ObjectMeta
v1beta1EvictionMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1Eviction -> ShowS
[V1beta1Eviction] -> ShowS
V1beta1Eviction -> String
(Int -> V1beta1Eviction -> ShowS)
-> (V1beta1Eviction -> String)
-> ([V1beta1Eviction] -> ShowS)
-> Show V1beta1Eviction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1Eviction] -> ShowS
$cshowList :: [V1beta1Eviction] -> ShowS
show :: V1beta1Eviction -> String
$cshow :: V1beta1Eviction -> String
showsPrec :: Int -> V1beta1Eviction -> ShowS
$cshowsPrec :: Int -> V1beta1Eviction -> ShowS
P.Show, V1beta1Eviction -> V1beta1Eviction -> Bool
(V1beta1Eviction -> V1beta1Eviction -> Bool)
-> (V1beta1Eviction -> V1beta1Eviction -> Bool)
-> Eq V1beta1Eviction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1Eviction -> V1beta1Eviction -> Bool
$c/= :: V1beta1Eviction -> V1beta1Eviction -> Bool
== :: V1beta1Eviction -> V1beta1Eviction -> Bool
$c== :: V1beta1Eviction -> V1beta1Eviction -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1Eviction
instance A.FromJSON V1beta1Eviction where
  parseJSON :: Value -> Parser V1beta1Eviction
parseJSON = String
-> (Object -> Parser V1beta1Eviction)
-> Value
-> Parser V1beta1Eviction
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1Eviction" ((Object -> Parser V1beta1Eviction)
 -> Value -> Parser V1beta1Eviction)
-> (Object -> Parser V1beta1Eviction)
-> Value
-> Parser V1beta1Eviction
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe V1DeleteOptions
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1Eviction
V1beta1Eviction
      (Maybe Text
 -> Maybe V1DeleteOptions
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1beta1Eviction)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1DeleteOptions
      -> Maybe Text -> Maybe V1ObjectMeta -> V1beta1Eviction)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe V1DeleteOptions
   -> Maybe Text -> Maybe V1ObjectMeta -> V1beta1Eviction)
-> Parser (Maybe V1DeleteOptions)
-> Parser (Maybe Text -> Maybe V1ObjectMeta -> V1beta1Eviction)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1DeleteOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"deleteOptions")
      Parser (Maybe Text -> Maybe V1ObjectMeta -> V1beta1Eviction)
-> Parser (Maybe Text)
-> Parser (Maybe V1ObjectMeta -> V1beta1Eviction)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ObjectMeta -> V1beta1Eviction)
-> Parser (Maybe V1ObjectMeta) -> Parser V1beta1Eviction
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1Eviction
instance A.ToJSON V1beta1Eviction where
  toJSON :: V1beta1Eviction -> Value
toJSON V1beta1Eviction {Maybe Text
Maybe V1ObjectMeta
Maybe V1DeleteOptions
v1beta1EvictionMetadata :: Maybe V1ObjectMeta
v1beta1EvictionKind :: Maybe Text
v1beta1EvictionDeleteOptions :: Maybe V1DeleteOptions
v1beta1EvictionApiVersion :: Maybe Text
v1beta1EvictionMetadata :: V1beta1Eviction -> Maybe V1ObjectMeta
v1beta1EvictionKind :: V1beta1Eviction -> Maybe Text
v1beta1EvictionDeleteOptions :: V1beta1Eviction -> Maybe V1DeleteOptions
v1beta1EvictionApiVersion :: V1beta1Eviction -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1EvictionApiVersion
      , Text
"deleteOptions" Text -> Maybe V1DeleteOptions -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1DeleteOptions
v1beta1EvictionDeleteOptions
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1EvictionKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1EvictionMetadata
      ]


-- | Construct a value of type 'V1beta1Eviction' (by applying it's required fields, if any)
mkV1beta1Eviction
  :: V1beta1Eviction
mkV1beta1Eviction :: V1beta1Eviction
mkV1beta1Eviction =
  V1beta1Eviction :: Maybe Text
-> Maybe V1DeleteOptions
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1Eviction
V1beta1Eviction
  { v1beta1EvictionApiVersion :: Maybe Text
v1beta1EvictionApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1EvictionDeleteOptions :: Maybe V1DeleteOptions
v1beta1EvictionDeleteOptions = Maybe V1DeleteOptions
forall a. Maybe a
Nothing
  , v1beta1EvictionKind :: Maybe Text
v1beta1EvictionKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1EvictionMetadata :: Maybe V1ObjectMeta
v1beta1EvictionMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1ExternalDocumentation
-- | V1beta1ExternalDocumentation
-- ExternalDocumentation allows referencing an external resource for extended documentation.
data V1beta1ExternalDocumentation = V1beta1ExternalDocumentation
  { V1beta1ExternalDocumentation -> Maybe Text
v1beta1ExternalDocumentationDescription :: !(Maybe Text) -- ^ "description"
  , V1beta1ExternalDocumentation -> Maybe Text
v1beta1ExternalDocumentationUrl :: !(Maybe Text) -- ^ "url"
  } deriving (Int -> V1beta1ExternalDocumentation -> ShowS
[V1beta1ExternalDocumentation] -> ShowS
V1beta1ExternalDocumentation -> String
(Int -> V1beta1ExternalDocumentation -> ShowS)
-> (V1beta1ExternalDocumentation -> String)
-> ([V1beta1ExternalDocumentation] -> ShowS)
-> Show V1beta1ExternalDocumentation
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ExternalDocumentation] -> ShowS
$cshowList :: [V1beta1ExternalDocumentation] -> ShowS
show :: V1beta1ExternalDocumentation -> String
$cshow :: V1beta1ExternalDocumentation -> String
showsPrec :: Int -> V1beta1ExternalDocumentation -> ShowS
$cshowsPrec :: Int -> V1beta1ExternalDocumentation -> ShowS
P.Show, V1beta1ExternalDocumentation
-> V1beta1ExternalDocumentation -> Bool
(V1beta1ExternalDocumentation
 -> V1beta1ExternalDocumentation -> Bool)
-> (V1beta1ExternalDocumentation
    -> V1beta1ExternalDocumentation -> Bool)
-> Eq V1beta1ExternalDocumentation
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ExternalDocumentation
-> V1beta1ExternalDocumentation -> Bool
$c/= :: V1beta1ExternalDocumentation
-> V1beta1ExternalDocumentation -> Bool
== :: V1beta1ExternalDocumentation
-> V1beta1ExternalDocumentation -> Bool
$c== :: V1beta1ExternalDocumentation
-> V1beta1ExternalDocumentation -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ExternalDocumentation
instance A.FromJSON V1beta1ExternalDocumentation where
  parseJSON :: Value -> Parser V1beta1ExternalDocumentation
parseJSON = String
-> (Object -> Parser V1beta1ExternalDocumentation)
-> Value
-> Parser V1beta1ExternalDocumentation
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ExternalDocumentation" ((Object -> Parser V1beta1ExternalDocumentation)
 -> Value -> Parser V1beta1ExternalDocumentation)
-> (Object -> Parser V1beta1ExternalDocumentation)
-> Value
-> Parser V1beta1ExternalDocumentation
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Text -> V1beta1ExternalDocumentation
V1beta1ExternalDocumentation
      (Maybe Text -> Maybe Text -> V1beta1ExternalDocumentation)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1beta1ExternalDocumentation)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"description")
      Parser (Maybe Text -> V1beta1ExternalDocumentation)
-> Parser (Maybe Text) -> Parser V1beta1ExternalDocumentation
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"url")

-- | ToJSON V1beta1ExternalDocumentation
instance A.ToJSON V1beta1ExternalDocumentation where
  toJSON :: V1beta1ExternalDocumentation -> Value
toJSON V1beta1ExternalDocumentation {Maybe Text
v1beta1ExternalDocumentationUrl :: Maybe Text
v1beta1ExternalDocumentationDescription :: Maybe Text
v1beta1ExternalDocumentationUrl :: V1beta1ExternalDocumentation -> Maybe Text
v1beta1ExternalDocumentationDescription :: V1beta1ExternalDocumentation -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"description" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ExternalDocumentationDescription
      , Text
"url" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ExternalDocumentationUrl
      ]


-- | Construct a value of type 'V1beta1ExternalDocumentation' (by applying it's required fields, if any)
mkV1beta1ExternalDocumentation
  :: V1beta1ExternalDocumentation
mkV1beta1ExternalDocumentation :: V1beta1ExternalDocumentation
mkV1beta1ExternalDocumentation =
  V1beta1ExternalDocumentation :: Maybe Text -> Maybe Text -> V1beta1ExternalDocumentation
V1beta1ExternalDocumentation
  { v1beta1ExternalDocumentationDescription :: Maybe Text
v1beta1ExternalDocumentationDescription = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ExternalDocumentationUrl :: Maybe Text
v1beta1ExternalDocumentationUrl = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1IPBlock
-- | V1beta1IPBlock
-- DEPRECATED 1.9 - This group version of IPBlock is deprecated by networking/v1/IPBlock. IPBlock describes a particular CIDR (Ex. \"192.168.1.1/24\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.
data V1beta1IPBlock = V1beta1IPBlock
  { V1beta1IPBlock -> Text
v1beta1IPBlockCidr :: !(Text) -- ^ /Required/ "cidr" - CIDR is a string representing the IP Block Valid examples are \&quot;192.168.1.1/24\&quot;
  , V1beta1IPBlock -> Maybe [Text]
v1beta1IPBlockExcept :: !(Maybe [Text]) -- ^ "except" - Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \&quot;192.168.1.1/24\&quot; Except values will be rejected if they are outside the CIDR range
  } deriving (Int -> V1beta1IPBlock -> ShowS
[V1beta1IPBlock] -> ShowS
V1beta1IPBlock -> String
(Int -> V1beta1IPBlock -> ShowS)
-> (V1beta1IPBlock -> String)
-> ([V1beta1IPBlock] -> ShowS)
-> Show V1beta1IPBlock
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1IPBlock] -> ShowS
$cshowList :: [V1beta1IPBlock] -> ShowS
show :: V1beta1IPBlock -> String
$cshow :: V1beta1IPBlock -> String
showsPrec :: Int -> V1beta1IPBlock -> ShowS
$cshowsPrec :: Int -> V1beta1IPBlock -> ShowS
P.Show, V1beta1IPBlock -> V1beta1IPBlock -> Bool
(V1beta1IPBlock -> V1beta1IPBlock -> Bool)
-> (V1beta1IPBlock -> V1beta1IPBlock -> Bool) -> Eq V1beta1IPBlock
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1IPBlock -> V1beta1IPBlock -> Bool
$c/= :: V1beta1IPBlock -> V1beta1IPBlock -> Bool
== :: V1beta1IPBlock -> V1beta1IPBlock -> Bool
$c== :: V1beta1IPBlock -> V1beta1IPBlock -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1IPBlock
instance A.FromJSON V1beta1IPBlock where
  parseJSON :: Value -> Parser V1beta1IPBlock
parseJSON = String
-> (Object -> Parser V1beta1IPBlock)
-> Value
-> Parser V1beta1IPBlock
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1IPBlock" ((Object -> Parser V1beta1IPBlock)
 -> Value -> Parser V1beta1IPBlock)
-> (Object -> Parser V1beta1IPBlock)
-> Value
-> Parser V1beta1IPBlock
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Maybe [Text] -> V1beta1IPBlock
V1beta1IPBlock
      (Text -> Maybe [Text] -> V1beta1IPBlock)
-> Parser Text -> Parser (Maybe [Text] -> V1beta1IPBlock)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"cidr")
      Parser (Maybe [Text] -> V1beta1IPBlock)
-> Parser (Maybe [Text]) -> Parser V1beta1IPBlock
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"except")

-- | ToJSON V1beta1IPBlock
instance A.ToJSON V1beta1IPBlock where
  toJSON :: V1beta1IPBlock -> Value
toJSON V1beta1IPBlock {Maybe [Text]
Text
v1beta1IPBlockExcept :: Maybe [Text]
v1beta1IPBlockCidr :: Text
v1beta1IPBlockExcept :: V1beta1IPBlock -> Maybe [Text]
v1beta1IPBlockCidr :: V1beta1IPBlock -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"cidr" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1IPBlockCidr
      , Text
"except" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1IPBlockExcept
      ]


-- | Construct a value of type 'V1beta1IPBlock' (by applying it's required fields, if any)
mkV1beta1IPBlock
  :: Text -- ^ 'v1beta1IPBlockCidr': CIDR is a string representing the IP Block Valid examples are \"192.168.1.1/24\"
  -> V1beta1IPBlock
mkV1beta1IPBlock :: Text -> V1beta1IPBlock
mkV1beta1IPBlock Text
v1beta1IPBlockCidr =
  V1beta1IPBlock :: Text -> Maybe [Text] -> V1beta1IPBlock
V1beta1IPBlock
  { Text
v1beta1IPBlockCidr :: Text
v1beta1IPBlockCidr :: Text
v1beta1IPBlockCidr
  , v1beta1IPBlockExcept :: Maybe [Text]
v1beta1IPBlockExcept = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1beta1JSONSchemaProps
-- | V1beta1JSONSchemaProps
-- JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).
data V1beta1JSONSchemaProps = V1beta1JSONSchemaProps
  { V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsRef :: !(Maybe Text) -- ^ "$ref"
  , V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsSchema :: !(Maybe Text) -- ^ "$schema"
  , V1beta1JSONSchemaProps -> Maybe Value
v1beta1JSONSchemaPropsAdditionalItems :: !(Maybe A.Value) -- ^ "additionalItems" - JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.
  , V1beta1JSONSchemaProps -> Maybe Value
v1beta1JSONSchemaPropsAdditionalProperties :: !(Maybe A.Value) -- ^ "additionalProperties" - JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.
  , V1beta1JSONSchemaProps -> Maybe [V1beta1JSONSchemaProps]
v1beta1JSONSchemaPropsAllOf :: !(Maybe [V1beta1JSONSchemaProps]) -- ^ "allOf"
  , V1beta1JSONSchemaProps -> Maybe [V1beta1JSONSchemaProps]
v1beta1JSONSchemaPropsAnyOf :: !(Maybe [V1beta1JSONSchemaProps]) -- ^ "anyOf"
  , V1beta1JSONSchemaProps -> Maybe Value
v1beta1JSONSchemaPropsDefault :: !(Maybe A.Value) -- ^ "default" - default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. CustomResourceDefinitions with defaults must be created using the v1 (or newer) CustomResourceDefinition API.
  , V1beta1JSONSchemaProps -> Maybe (Map String V1beta1JSONSchemaProps)
v1beta1JSONSchemaPropsDefinitions :: !(Maybe (Map.Map String V1beta1JSONSchemaProps)) -- ^ "definitions"
  , V1beta1JSONSchemaProps -> Maybe (Map String Value)
v1beta1JSONSchemaPropsDependencies :: !(Maybe (Map.Map String A.Value)) -- ^ "dependencies"
  , V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsDescription :: !(Maybe Text) -- ^ "description"
  , V1beta1JSONSchemaProps -> Maybe [Value]
v1beta1JSONSchemaPropsEnum :: !(Maybe [A.Value]) -- ^ "enum"
  , V1beta1JSONSchemaProps -> Maybe Value
v1beta1JSONSchemaPropsExample :: !(Maybe A.Value) -- ^ "example" - JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.
  , V1beta1JSONSchemaProps -> Maybe Bool
v1beta1JSONSchemaPropsExclusiveMaximum :: !(Maybe Bool) -- ^ "exclusiveMaximum"
  , V1beta1JSONSchemaProps -> Maybe Bool
v1beta1JSONSchemaPropsExclusiveMinimum :: !(Maybe Bool) -- ^ "exclusiveMinimum"
  , V1beta1JSONSchemaProps -> Maybe V1beta1ExternalDocumentation
v1beta1JSONSchemaPropsExternalDocs :: !(Maybe V1beta1ExternalDocumentation) -- ^ "externalDocs"
  , V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsFormat :: !(Maybe Text) -- ^ "format"
  , V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsId :: !(Maybe Text) -- ^ "id"
  , V1beta1JSONSchemaProps -> Maybe Value
v1beta1JSONSchemaPropsItems :: !(Maybe A.Value) -- ^ "items" - JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes.
  , V1beta1JSONSchemaProps -> Maybe Integer
v1beta1JSONSchemaPropsMaxItems :: !(Maybe Integer) -- ^ "maxItems"
  , V1beta1JSONSchemaProps -> Maybe Integer
v1beta1JSONSchemaPropsMaxLength :: !(Maybe Integer) -- ^ "maxLength"
  , V1beta1JSONSchemaProps -> Maybe Integer
v1beta1JSONSchemaPropsMaxProperties :: !(Maybe Integer) -- ^ "maxProperties"
  , V1beta1JSONSchemaProps -> Maybe Double
v1beta1JSONSchemaPropsMaximum :: !(Maybe Double) -- ^ "maximum"
  , V1beta1JSONSchemaProps -> Maybe Integer
v1beta1JSONSchemaPropsMinItems :: !(Maybe Integer) -- ^ "minItems"
  , V1beta1JSONSchemaProps -> Maybe Integer
v1beta1JSONSchemaPropsMinLength :: !(Maybe Integer) -- ^ "minLength"
  , V1beta1JSONSchemaProps -> Maybe Integer
v1beta1JSONSchemaPropsMinProperties :: !(Maybe Integer) -- ^ "minProperties"
  , V1beta1JSONSchemaProps -> Maybe Double
v1beta1JSONSchemaPropsMinimum :: !(Maybe Double) -- ^ "minimum"
  , V1beta1JSONSchemaProps -> Maybe Double
v1beta1JSONSchemaPropsMultipleOf :: !(Maybe Double) -- ^ "multipleOf"
  , V1beta1JSONSchemaProps -> Maybe V1beta1JSONSchemaProps
v1beta1JSONSchemaPropsNot :: !(Maybe V1beta1JSONSchemaProps) -- ^ "not"
  , V1beta1JSONSchemaProps -> Maybe Bool
v1beta1JSONSchemaPropsNullable :: !(Maybe Bool) -- ^ "nullable"
  , V1beta1JSONSchemaProps -> Maybe [V1beta1JSONSchemaProps]
v1beta1JSONSchemaPropsOneOf :: !(Maybe [V1beta1JSONSchemaProps]) -- ^ "oneOf"
  , V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsPattern :: !(Maybe Text) -- ^ "pattern"
  , V1beta1JSONSchemaProps -> Maybe (Map String V1beta1JSONSchemaProps)
v1beta1JSONSchemaPropsPatternProperties :: !(Maybe (Map.Map String V1beta1JSONSchemaProps)) -- ^ "patternProperties"
  , V1beta1JSONSchemaProps -> Maybe (Map String V1beta1JSONSchemaProps)
v1beta1JSONSchemaPropsProperties :: !(Maybe (Map.Map String V1beta1JSONSchemaProps)) -- ^ "properties"
  , V1beta1JSONSchemaProps -> Maybe [Text]
v1beta1JSONSchemaPropsRequired :: !(Maybe [Text]) -- ^ "required"
  , V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsTitle :: !(Maybe Text) -- ^ "title"
  , V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsType :: !(Maybe Text) -- ^ "type"
  , V1beta1JSONSchemaProps -> Maybe Bool
v1beta1JSONSchemaPropsUniqueItems :: !(Maybe Bool) -- ^ "uniqueItems"
  , V1beta1JSONSchemaProps -> Maybe Bool
v1beta1JSONSchemaPropsXKubernetesEmbeddedResource :: !(Maybe Bool) -- ^ "x-kubernetes-embedded-resource" - x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).
  , V1beta1JSONSchemaProps -> Maybe Bool
v1beta1JSONSchemaPropsXKubernetesIntOrString :: !(Maybe Bool) -- ^ "x-kubernetes-int-or-string" - x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:  1) anyOf:    - type: integer    - type: string 2) allOf:    - anyOf:      - type: integer      - type: string    - ... zero or more
  , V1beta1JSONSchemaProps -> Maybe [Text]
v1beta1JSONSchemaPropsXKubernetesListMapKeys :: !(Maybe [Text]) -- ^ "x-kubernetes-list-map-keys" - x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type &#x60;map&#x60; by specifying the keys used as the index of the map.  This tag MUST only be used on lists that have the \&quot;x-kubernetes-list-type\&quot; extension set to \&quot;map\&quot;. Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).
  , V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsXKubernetesListType :: !(Maybe Text) -- ^ "x-kubernetes-list-type" - x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:  1) &#x60;atomic&#x60;: the list is treated as a single entity, like a scalar.      Atomic lists will be entirely replaced when updated. This extension      may be used on any type of list (struct, scalar, ...). 2) &#x60;set&#x60;:      Sets are lists that must not have multiple items with the same value. Each      value must be a scalar, an object with x-kubernetes-map-type &#x60;atomic&#x60; or an      array with x-kubernetes-list-type &#x60;atomic&#x60;. 3) &#x60;map&#x60;:      These lists are like maps in that their elements have a non-index key      used to identify them. Order is preserved upon merge. The map tag      must only be used on a list with elements of type object. Defaults to atomic for arrays.
  , V1beta1JSONSchemaProps -> Maybe Bool
v1beta1JSONSchemaPropsXKubernetesPreserveUnknownFields :: !(Maybe Bool) -- ^ "x-kubernetes-preserve-unknown-fields" - x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.
  } deriving (Int -> V1beta1JSONSchemaProps -> ShowS
[V1beta1JSONSchemaProps] -> ShowS
V1beta1JSONSchemaProps -> String
(Int -> V1beta1JSONSchemaProps -> ShowS)
-> (V1beta1JSONSchemaProps -> String)
-> ([V1beta1JSONSchemaProps] -> ShowS)
-> Show V1beta1JSONSchemaProps
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1JSONSchemaProps] -> ShowS
$cshowList :: [V1beta1JSONSchemaProps] -> ShowS
show :: V1beta1JSONSchemaProps -> String
$cshow :: V1beta1JSONSchemaProps -> String
showsPrec :: Int -> V1beta1JSONSchemaProps -> ShowS
$cshowsPrec :: Int -> V1beta1JSONSchemaProps -> ShowS
P.Show, V1beta1JSONSchemaProps -> V1beta1JSONSchemaProps -> Bool
(V1beta1JSONSchemaProps -> V1beta1JSONSchemaProps -> Bool)
-> (V1beta1JSONSchemaProps -> V1beta1JSONSchemaProps -> Bool)
-> Eq V1beta1JSONSchemaProps
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1JSONSchemaProps -> V1beta1JSONSchemaProps -> Bool
$c/= :: V1beta1JSONSchemaProps -> V1beta1JSONSchemaProps -> Bool
== :: V1beta1JSONSchemaProps -> V1beta1JSONSchemaProps -> Bool
$c== :: V1beta1JSONSchemaProps -> V1beta1JSONSchemaProps -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1JSONSchemaProps
instance A.FromJSON V1beta1JSONSchemaProps where
  parseJSON :: Value -> Parser V1beta1JSONSchemaProps
parseJSON = String
-> (Object -> Parser V1beta1JSONSchemaProps)
-> Value
-> Parser V1beta1JSONSchemaProps
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1JSONSchemaProps" ((Object -> Parser V1beta1JSONSchemaProps)
 -> Value -> Parser V1beta1JSONSchemaProps)
-> (Object -> Parser V1beta1JSONSchemaProps)
-> Value
-> Parser V1beta1JSONSchemaProps
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe Value
-> Maybe Value
-> Maybe [V1beta1JSONSchemaProps]
-> Maybe [V1beta1JSONSchemaProps]
-> Maybe Value
-> Maybe (Map String V1beta1JSONSchemaProps)
-> Maybe (Map String Value)
-> Maybe Text
-> Maybe [Value]
-> Maybe Value
-> Maybe Bool
-> Maybe Bool
-> Maybe V1beta1ExternalDocumentation
-> Maybe Text
-> Maybe Text
-> Maybe Value
-> Maybe Integer
-> Maybe Integer
-> Maybe Integer
-> Maybe Double
-> Maybe Integer
-> Maybe Integer
-> Maybe Integer
-> Maybe Double
-> Maybe Double
-> Maybe V1beta1JSONSchemaProps
-> Maybe Bool
-> Maybe [V1beta1JSONSchemaProps]
-> Maybe Text
-> Maybe (Map String V1beta1JSONSchemaProps)
-> Maybe (Map String V1beta1JSONSchemaProps)
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe Bool
-> V1beta1JSONSchemaProps
V1beta1JSONSchemaProps
      (Maybe Text
 -> Maybe Text
 -> Maybe Value
 -> Maybe Value
 -> Maybe [V1beta1JSONSchemaProps]
 -> Maybe [V1beta1JSONSchemaProps]
 -> Maybe Value
 -> Maybe (Map String V1beta1JSONSchemaProps)
 -> Maybe (Map String Value)
 -> Maybe Text
 -> Maybe [Value]
 -> Maybe Value
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe V1beta1ExternalDocumentation
 -> Maybe Text
 -> Maybe Text
 -> Maybe Value
 -> Maybe Integer
 -> Maybe Integer
 -> Maybe Integer
 -> Maybe Double
 -> Maybe Integer
 -> Maybe Integer
 -> Maybe Integer
 -> Maybe Double
 -> Maybe Double
 -> Maybe V1beta1JSONSchemaProps
 -> Maybe Bool
 -> Maybe [V1beta1JSONSchemaProps]
 -> Maybe Text
 -> Maybe (Map String V1beta1JSONSchemaProps)
 -> Maybe (Map String V1beta1JSONSchemaProps)
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe Bool
 -> V1beta1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Value
      -> Maybe Value
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Value
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String Value)
      -> Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1beta1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"$ref")
      Parser
  (Maybe Text
   -> Maybe Value
   -> Maybe Value
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Value
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String Value)
   -> Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1beta1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser
     (Maybe Value
      -> Maybe Value
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Value
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String Value)
      -> Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1beta1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"$schema")
      Parser
  (Maybe Value
   -> Maybe Value
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Value
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String Value)
   -> Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1beta1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Value)
-> Parser
     (Maybe Value
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Value
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String Value)
      -> Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1beta1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"additionalItems")
      Parser
  (Maybe Value
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Value
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String Value)
   -> Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1beta1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Value)
-> Parser
     (Maybe [V1beta1JSONSchemaProps]
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Value
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String Value)
      -> Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1beta1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"additionalProperties")
      Parser
  (Maybe [V1beta1JSONSchemaProps]
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Value
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String Value)
   -> Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1beta1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe [V1beta1JSONSchemaProps])
-> Parser
     (Maybe [V1beta1JSONSchemaProps]
      -> Maybe Value
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String Value)
      -> Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1beta1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1JSONSchemaProps])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allOf")
      Parser
  (Maybe [V1beta1JSONSchemaProps]
   -> Maybe Value
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String Value)
   -> Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1beta1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe [V1beta1JSONSchemaProps])
-> Parser
     (Maybe Value
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String Value)
      -> Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1beta1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1JSONSchemaProps])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"anyOf")
      Parser
  (Maybe Value
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String Value)
   -> Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1beta1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Value)
-> Parser
     (Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String Value)
      -> Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1beta1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"default")
      Parser
  (Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String Value)
   -> Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1beta1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe (Map String V1beta1JSONSchemaProps))
-> Parser
     (Maybe (Map String Value)
      -> Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1beta1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe (Map String V1beta1JSONSchemaProps))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"definitions")
      Parser
  (Maybe (Map String Value)
   -> Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1beta1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe (Map String Value))
-> Parser
     (Maybe Text
      -> Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1beta1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Value))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"dependencies")
      Parser
  (Maybe Text
   -> Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1beta1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Value]
      -> Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1beta1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"description")
      Parser
  (Maybe [Value]
   -> Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1beta1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe [Value])
-> Parser
     (Maybe Value
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe V1beta1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Value])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"enum")
      Parser
  (Maybe Value
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe V1beta1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Value)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe V1beta1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"example")
      Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe V1beta1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe V1beta1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"exclusiveMaximum")
      Parser
  (Maybe Bool
   -> Maybe V1beta1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Bool)
-> Parser
     (Maybe V1beta1ExternalDocumentation
      -> Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"exclusiveMinimum")
      Parser
  (Maybe V1beta1ExternalDocumentation
   -> Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe V1beta1ExternalDocumentation)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1ExternalDocumentation)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"externalDocs")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"format")
      Parser
  (Maybe Text
   -> Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser
     (Maybe Value
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"id")
      Parser
  (Maybe Value
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Value)
-> Parser
     (Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"items")
      Parser
  (Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxItems")
      Parser
  (Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Integer
      -> Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxLength")
      Parser
  (Maybe Integer
   -> Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Double
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxProperties")
      Parser
  (Maybe Double
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Double)
-> Parser
     (Maybe Integer
      -> Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maximum")
      Parser
  (Maybe Integer
   -> Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Integer
      -> Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minItems")
      Parser
  (Maybe Integer
   -> Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Integer
      -> Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minLength")
      Parser
  (Maybe Integer
   -> Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Double
      -> Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minProperties")
      Parser
  (Maybe Double
   -> Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Double)
-> Parser
     (Maybe Double
      -> Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minimum")
      Parser
  (Maybe Double
   -> Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Double)
-> Parser
     (Maybe V1beta1JSONSchemaProps
      -> Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"multipleOf")
      Parser
  (Maybe V1beta1JSONSchemaProps
   -> Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe V1beta1JSONSchemaProps)
-> Parser
     (Maybe Bool
      -> Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1JSONSchemaProps)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"not")
      Parser
  (Maybe Bool
   -> Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [V1beta1JSONSchemaProps]
      -> Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nullable")
      Parser
  (Maybe [V1beta1JSONSchemaProps]
   -> Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe [V1beta1JSONSchemaProps])
-> Parser
     (Maybe Text
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1JSONSchemaProps])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"oneOf")
      Parser
  (Maybe Text
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser
     (Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"pattern")
      Parser
  (Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe (Map String V1beta1JSONSchemaProps))
-> Parser
     (Maybe (Map String V1beta1JSONSchemaProps)
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe (Map String V1beta1JSONSchemaProps))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"patternProperties")
      Parser
  (Maybe (Map String V1beta1JSONSchemaProps)
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe (Map String V1beta1JSONSchemaProps))
-> Parser
     (Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe (Map String V1beta1JSONSchemaProps))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"properties")
      Parser
  (Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"required")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"title")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")
      Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"uniqueItems")
      Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe Bool
      -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"x-kubernetes-embedded-resource")
      Parser
  (Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe Bool
   -> V1beta1JSONSchemaProps)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [Text]
      -> Maybe Text -> Maybe Bool -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"x-kubernetes-int-or-string")
      Parser
  (Maybe [Text]
   -> Maybe Text -> Maybe Bool -> V1beta1JSONSchemaProps)
-> Parser (Maybe [Text])
-> Parser (Maybe Text -> Maybe Bool -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"x-kubernetes-list-map-keys")
      Parser (Maybe Text -> Maybe Bool -> V1beta1JSONSchemaProps)
-> Parser (Maybe Text)
-> Parser (Maybe Bool -> V1beta1JSONSchemaProps)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"x-kubernetes-list-type")
      Parser (Maybe Bool -> V1beta1JSONSchemaProps)
-> Parser (Maybe Bool) -> Parser V1beta1JSONSchemaProps
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"x-kubernetes-preserve-unknown-fields")

-- | ToJSON V1beta1JSONSchemaProps
instance A.ToJSON V1beta1JSONSchemaProps where
  toJSON :: V1beta1JSONSchemaProps -> Value
toJSON V1beta1JSONSchemaProps {Maybe Bool
Maybe Double
Maybe Integer
Maybe [Text]
Maybe [Value]
Maybe [V1beta1JSONSchemaProps]
Maybe Text
Maybe (Map String Value)
Maybe (Map String V1beta1JSONSchemaProps)
Maybe Value
Maybe V1beta1JSONSchemaProps
Maybe V1beta1ExternalDocumentation
v1beta1JSONSchemaPropsXKubernetesPreserveUnknownFields :: Maybe Bool
v1beta1JSONSchemaPropsXKubernetesListType :: Maybe Text
v1beta1JSONSchemaPropsXKubernetesListMapKeys :: Maybe [Text]
v1beta1JSONSchemaPropsXKubernetesIntOrString :: Maybe Bool
v1beta1JSONSchemaPropsXKubernetesEmbeddedResource :: Maybe Bool
v1beta1JSONSchemaPropsUniqueItems :: Maybe Bool
v1beta1JSONSchemaPropsType :: Maybe Text
v1beta1JSONSchemaPropsTitle :: Maybe Text
v1beta1JSONSchemaPropsRequired :: Maybe [Text]
v1beta1JSONSchemaPropsProperties :: Maybe (Map String V1beta1JSONSchemaProps)
v1beta1JSONSchemaPropsPatternProperties :: Maybe (Map String V1beta1JSONSchemaProps)
v1beta1JSONSchemaPropsPattern :: Maybe Text
v1beta1JSONSchemaPropsOneOf :: Maybe [V1beta1JSONSchemaProps]
v1beta1JSONSchemaPropsNullable :: Maybe Bool
v1beta1JSONSchemaPropsNot :: Maybe V1beta1JSONSchemaProps
v1beta1JSONSchemaPropsMultipleOf :: Maybe Double
v1beta1JSONSchemaPropsMinimum :: Maybe Double
v1beta1JSONSchemaPropsMinProperties :: Maybe Integer
v1beta1JSONSchemaPropsMinLength :: Maybe Integer
v1beta1JSONSchemaPropsMinItems :: Maybe Integer
v1beta1JSONSchemaPropsMaximum :: Maybe Double
v1beta1JSONSchemaPropsMaxProperties :: Maybe Integer
v1beta1JSONSchemaPropsMaxLength :: Maybe Integer
v1beta1JSONSchemaPropsMaxItems :: Maybe Integer
v1beta1JSONSchemaPropsItems :: Maybe Value
v1beta1JSONSchemaPropsId :: Maybe Text
v1beta1JSONSchemaPropsFormat :: Maybe Text
v1beta1JSONSchemaPropsExternalDocs :: Maybe V1beta1ExternalDocumentation
v1beta1JSONSchemaPropsExclusiveMinimum :: Maybe Bool
v1beta1JSONSchemaPropsExclusiveMaximum :: Maybe Bool
v1beta1JSONSchemaPropsExample :: Maybe Value
v1beta1JSONSchemaPropsEnum :: Maybe [Value]
v1beta1JSONSchemaPropsDescription :: Maybe Text
v1beta1JSONSchemaPropsDependencies :: Maybe (Map String Value)
v1beta1JSONSchemaPropsDefinitions :: Maybe (Map String V1beta1JSONSchemaProps)
v1beta1JSONSchemaPropsDefault :: Maybe Value
v1beta1JSONSchemaPropsAnyOf :: Maybe [V1beta1JSONSchemaProps]
v1beta1JSONSchemaPropsAllOf :: Maybe [V1beta1JSONSchemaProps]
v1beta1JSONSchemaPropsAdditionalProperties :: Maybe Value
v1beta1JSONSchemaPropsAdditionalItems :: Maybe Value
v1beta1JSONSchemaPropsSchema :: Maybe Text
v1beta1JSONSchemaPropsRef :: Maybe Text
v1beta1JSONSchemaPropsXKubernetesPreserveUnknownFields :: V1beta1JSONSchemaProps -> Maybe Bool
v1beta1JSONSchemaPropsXKubernetesListType :: V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsXKubernetesListMapKeys :: V1beta1JSONSchemaProps -> Maybe [Text]
v1beta1JSONSchemaPropsXKubernetesIntOrString :: V1beta1JSONSchemaProps -> Maybe Bool
v1beta1JSONSchemaPropsXKubernetesEmbeddedResource :: V1beta1JSONSchemaProps -> Maybe Bool
v1beta1JSONSchemaPropsUniqueItems :: V1beta1JSONSchemaProps -> Maybe Bool
v1beta1JSONSchemaPropsType :: V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsTitle :: V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsRequired :: V1beta1JSONSchemaProps -> Maybe [Text]
v1beta1JSONSchemaPropsProperties :: V1beta1JSONSchemaProps -> Maybe (Map String V1beta1JSONSchemaProps)
v1beta1JSONSchemaPropsPatternProperties :: V1beta1JSONSchemaProps -> Maybe (Map String V1beta1JSONSchemaProps)
v1beta1JSONSchemaPropsPattern :: V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsOneOf :: V1beta1JSONSchemaProps -> Maybe [V1beta1JSONSchemaProps]
v1beta1JSONSchemaPropsNullable :: V1beta1JSONSchemaProps -> Maybe Bool
v1beta1JSONSchemaPropsNot :: V1beta1JSONSchemaProps -> Maybe V1beta1JSONSchemaProps
v1beta1JSONSchemaPropsMultipleOf :: V1beta1JSONSchemaProps -> Maybe Double
v1beta1JSONSchemaPropsMinimum :: V1beta1JSONSchemaProps -> Maybe Double
v1beta1JSONSchemaPropsMinProperties :: V1beta1JSONSchemaProps -> Maybe Integer
v1beta1JSONSchemaPropsMinLength :: V1beta1JSONSchemaProps -> Maybe Integer
v1beta1JSONSchemaPropsMinItems :: V1beta1JSONSchemaProps -> Maybe Integer
v1beta1JSONSchemaPropsMaximum :: V1beta1JSONSchemaProps -> Maybe Double
v1beta1JSONSchemaPropsMaxProperties :: V1beta1JSONSchemaProps -> Maybe Integer
v1beta1JSONSchemaPropsMaxLength :: V1beta1JSONSchemaProps -> Maybe Integer
v1beta1JSONSchemaPropsMaxItems :: V1beta1JSONSchemaProps -> Maybe Integer
v1beta1JSONSchemaPropsItems :: V1beta1JSONSchemaProps -> Maybe Value
v1beta1JSONSchemaPropsId :: V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsFormat :: V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsExternalDocs :: V1beta1JSONSchemaProps -> Maybe V1beta1ExternalDocumentation
v1beta1JSONSchemaPropsExclusiveMinimum :: V1beta1JSONSchemaProps -> Maybe Bool
v1beta1JSONSchemaPropsExclusiveMaximum :: V1beta1JSONSchemaProps -> Maybe Bool
v1beta1JSONSchemaPropsExample :: V1beta1JSONSchemaProps -> Maybe Value
v1beta1JSONSchemaPropsEnum :: V1beta1JSONSchemaProps -> Maybe [Value]
v1beta1JSONSchemaPropsDescription :: V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsDependencies :: V1beta1JSONSchemaProps -> Maybe (Map String Value)
v1beta1JSONSchemaPropsDefinitions :: V1beta1JSONSchemaProps -> Maybe (Map String V1beta1JSONSchemaProps)
v1beta1JSONSchemaPropsDefault :: V1beta1JSONSchemaProps -> Maybe Value
v1beta1JSONSchemaPropsAnyOf :: V1beta1JSONSchemaProps -> Maybe [V1beta1JSONSchemaProps]
v1beta1JSONSchemaPropsAllOf :: V1beta1JSONSchemaProps -> Maybe [V1beta1JSONSchemaProps]
v1beta1JSONSchemaPropsAdditionalProperties :: V1beta1JSONSchemaProps -> Maybe Value
v1beta1JSONSchemaPropsAdditionalItems :: V1beta1JSONSchemaProps -> Maybe Value
v1beta1JSONSchemaPropsSchema :: V1beta1JSONSchemaProps -> Maybe Text
v1beta1JSONSchemaPropsRef :: V1beta1JSONSchemaProps -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"$ref" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1JSONSchemaPropsRef
      , Text
"$schema" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1JSONSchemaPropsSchema
      , Text
"additionalItems" Text -> Maybe Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Value
v1beta1JSONSchemaPropsAdditionalItems
      , Text
"additionalProperties" Text -> Maybe Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Value
v1beta1JSONSchemaPropsAdditionalProperties
      , Text
"allOf" Text -> Maybe [V1beta1JSONSchemaProps] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1JSONSchemaProps]
v1beta1JSONSchemaPropsAllOf
      , Text
"anyOf" Text -> Maybe [V1beta1JSONSchemaProps] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1JSONSchemaProps]
v1beta1JSONSchemaPropsAnyOf
      , Text
"default" Text -> Maybe Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Value
v1beta1JSONSchemaPropsDefault
      , Text
"definitions" Text -> Maybe (Map String V1beta1JSONSchemaProps) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String V1beta1JSONSchemaProps)
v1beta1JSONSchemaPropsDefinitions
      , Text
"dependencies" Text -> Maybe (Map String Value) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Value)
v1beta1JSONSchemaPropsDependencies
      , Text
"description" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1JSONSchemaPropsDescription
      , Text
"enum" Text -> Maybe [Value] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Value]
v1beta1JSONSchemaPropsEnum
      , Text
"example" Text -> Maybe Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Value
v1beta1JSONSchemaPropsExample
      , Text
"exclusiveMaximum" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta1JSONSchemaPropsExclusiveMaximum
      , Text
"exclusiveMinimum" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta1JSONSchemaPropsExclusiveMinimum
      , Text
"externalDocs" Text -> Maybe V1beta1ExternalDocumentation -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1ExternalDocumentation
v1beta1JSONSchemaPropsExternalDocs
      , Text
"format" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1JSONSchemaPropsFormat
      , Text
"id" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1JSONSchemaPropsId
      , Text
"items" Text -> Maybe Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Value
v1beta1JSONSchemaPropsItems
      , Text
"maxItems" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1beta1JSONSchemaPropsMaxItems
      , Text
"maxLength" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1beta1JSONSchemaPropsMaxLength
      , Text
"maxProperties" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1beta1JSONSchemaPropsMaxProperties
      , Text
"maximum" Text -> Maybe Double -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Double
v1beta1JSONSchemaPropsMaximum
      , Text
"minItems" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1beta1JSONSchemaPropsMinItems
      , Text
"minLength" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1beta1JSONSchemaPropsMinLength
      , Text
"minProperties" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1beta1JSONSchemaPropsMinProperties
      , Text
"minimum" Text -> Maybe Double -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Double
v1beta1JSONSchemaPropsMinimum
      , Text
"multipleOf" Text -> Maybe Double -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Double
v1beta1JSONSchemaPropsMultipleOf
      , Text
"not" Text -> Maybe V1beta1JSONSchemaProps -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1JSONSchemaProps
v1beta1JSONSchemaPropsNot
      , Text
"nullable" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta1JSONSchemaPropsNullable
      , Text
"oneOf" Text -> Maybe [V1beta1JSONSchemaProps] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1JSONSchemaProps]
v1beta1JSONSchemaPropsOneOf
      , Text
"pattern" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1JSONSchemaPropsPattern
      , Text
"patternProperties" Text -> Maybe (Map String V1beta1JSONSchemaProps) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String V1beta1JSONSchemaProps)
v1beta1JSONSchemaPropsPatternProperties
      , Text
"properties" Text -> Maybe (Map String V1beta1JSONSchemaProps) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String V1beta1JSONSchemaProps)
v1beta1JSONSchemaPropsProperties
      , Text
"required" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1JSONSchemaPropsRequired
      , Text
"title" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1JSONSchemaPropsTitle
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1JSONSchemaPropsType
      , Text
"uniqueItems" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta1JSONSchemaPropsUniqueItems
      , Text
"x-kubernetes-embedded-resource" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta1JSONSchemaPropsXKubernetesEmbeddedResource
      , Text
"x-kubernetes-int-or-string" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta1JSONSchemaPropsXKubernetesIntOrString
      , Text
"x-kubernetes-list-map-keys" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1JSONSchemaPropsXKubernetesListMapKeys
      , Text
"x-kubernetes-list-type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1JSONSchemaPropsXKubernetesListType
      , Text
"x-kubernetes-preserve-unknown-fields" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta1JSONSchemaPropsXKubernetesPreserveUnknownFields
      ]


-- | Construct a value of type 'V1beta1JSONSchemaProps' (by applying it's required fields, if any)
mkV1beta1JSONSchemaProps
  :: V1beta1JSONSchemaProps
mkV1beta1JSONSchemaProps :: V1beta1JSONSchemaProps
mkV1beta1JSONSchemaProps =
  V1beta1JSONSchemaProps :: Maybe Text
-> Maybe Text
-> Maybe Value
-> Maybe Value
-> Maybe [V1beta1JSONSchemaProps]
-> Maybe [V1beta1JSONSchemaProps]
-> Maybe Value
-> Maybe (Map String V1beta1JSONSchemaProps)
-> Maybe (Map String Value)
-> Maybe Text
-> Maybe [Value]
-> Maybe Value
-> Maybe Bool
-> Maybe Bool
-> Maybe V1beta1ExternalDocumentation
-> Maybe Text
-> Maybe Text
-> Maybe Value
-> Maybe Integer
-> Maybe Integer
-> Maybe Integer
-> Maybe Double
-> Maybe Integer
-> Maybe Integer
-> Maybe Integer
-> Maybe Double
-> Maybe Double
-> Maybe V1beta1JSONSchemaProps
-> Maybe Bool
-> Maybe [V1beta1JSONSchemaProps]
-> Maybe Text
-> Maybe (Map String V1beta1JSONSchemaProps)
-> Maybe (Map String V1beta1JSONSchemaProps)
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe Bool
-> V1beta1JSONSchemaProps
V1beta1JSONSchemaProps
  { v1beta1JSONSchemaPropsRef :: Maybe Text
v1beta1JSONSchemaPropsRef = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsSchema :: Maybe Text
v1beta1JSONSchemaPropsSchema = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsAdditionalItems :: Maybe Value
v1beta1JSONSchemaPropsAdditionalItems = Maybe Value
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsAdditionalProperties :: Maybe Value
v1beta1JSONSchemaPropsAdditionalProperties = Maybe Value
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsAllOf :: Maybe [V1beta1JSONSchemaProps]
v1beta1JSONSchemaPropsAllOf = Maybe [V1beta1JSONSchemaProps]
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsAnyOf :: Maybe [V1beta1JSONSchemaProps]
v1beta1JSONSchemaPropsAnyOf = Maybe [V1beta1JSONSchemaProps]
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsDefault :: Maybe Value
v1beta1JSONSchemaPropsDefault = Maybe Value
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsDefinitions :: Maybe (Map String V1beta1JSONSchemaProps)
v1beta1JSONSchemaPropsDefinitions = Maybe (Map String V1beta1JSONSchemaProps)
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsDependencies :: Maybe (Map String Value)
v1beta1JSONSchemaPropsDependencies = Maybe (Map String Value)
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsDescription :: Maybe Text
v1beta1JSONSchemaPropsDescription = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsEnum :: Maybe [Value]
v1beta1JSONSchemaPropsEnum = Maybe [Value]
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsExample :: Maybe Value
v1beta1JSONSchemaPropsExample = Maybe Value
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsExclusiveMaximum :: Maybe Bool
v1beta1JSONSchemaPropsExclusiveMaximum = Maybe Bool
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsExclusiveMinimum :: Maybe Bool
v1beta1JSONSchemaPropsExclusiveMinimum = Maybe Bool
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsExternalDocs :: Maybe V1beta1ExternalDocumentation
v1beta1JSONSchemaPropsExternalDocs = Maybe V1beta1ExternalDocumentation
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsFormat :: Maybe Text
v1beta1JSONSchemaPropsFormat = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsId :: Maybe Text
v1beta1JSONSchemaPropsId = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsItems :: Maybe Value
v1beta1JSONSchemaPropsItems = Maybe Value
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsMaxItems :: Maybe Integer
v1beta1JSONSchemaPropsMaxItems = Maybe Integer
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsMaxLength :: Maybe Integer
v1beta1JSONSchemaPropsMaxLength = Maybe Integer
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsMaxProperties :: Maybe Integer
v1beta1JSONSchemaPropsMaxProperties = Maybe Integer
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsMaximum :: Maybe Double
v1beta1JSONSchemaPropsMaximum = Maybe Double
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsMinItems :: Maybe Integer
v1beta1JSONSchemaPropsMinItems = Maybe Integer
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsMinLength :: Maybe Integer
v1beta1JSONSchemaPropsMinLength = Maybe Integer
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsMinProperties :: Maybe Integer
v1beta1JSONSchemaPropsMinProperties = Maybe Integer
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsMinimum :: Maybe Double
v1beta1JSONSchemaPropsMinimum = Maybe Double
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsMultipleOf :: Maybe Double
v1beta1JSONSchemaPropsMultipleOf = Maybe Double
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsNot :: Maybe V1beta1JSONSchemaProps
v1beta1JSONSchemaPropsNot = Maybe V1beta1JSONSchemaProps
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsNullable :: Maybe Bool
v1beta1JSONSchemaPropsNullable = Maybe Bool
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsOneOf :: Maybe [V1beta1JSONSchemaProps]
v1beta1JSONSchemaPropsOneOf = Maybe [V1beta1JSONSchemaProps]
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsPattern :: Maybe Text
v1beta1JSONSchemaPropsPattern = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsPatternProperties :: Maybe (Map String V1beta1JSONSchemaProps)
v1beta1JSONSchemaPropsPatternProperties = Maybe (Map String V1beta1JSONSchemaProps)
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsProperties :: Maybe (Map String V1beta1JSONSchemaProps)
v1beta1JSONSchemaPropsProperties = Maybe (Map String V1beta1JSONSchemaProps)
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsRequired :: Maybe [Text]
v1beta1JSONSchemaPropsRequired = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsTitle :: Maybe Text
v1beta1JSONSchemaPropsTitle = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsType :: Maybe Text
v1beta1JSONSchemaPropsType = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsUniqueItems :: Maybe Bool
v1beta1JSONSchemaPropsUniqueItems = Maybe Bool
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsXKubernetesEmbeddedResource :: Maybe Bool
v1beta1JSONSchemaPropsXKubernetesEmbeddedResource = Maybe Bool
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsXKubernetesIntOrString :: Maybe Bool
v1beta1JSONSchemaPropsXKubernetesIntOrString = Maybe Bool
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsXKubernetesListMapKeys :: Maybe [Text]
v1beta1JSONSchemaPropsXKubernetesListMapKeys = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsXKubernetesListType :: Maybe Text
v1beta1JSONSchemaPropsXKubernetesListType = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1JSONSchemaPropsXKubernetesPreserveUnknownFields :: Maybe Bool
v1beta1JSONSchemaPropsXKubernetesPreserveUnknownFields = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V1beta1JobTemplateSpec
-- | V1beta1JobTemplateSpec
-- JobTemplateSpec describes the data a Job should have when created from a template
data V1beta1JobTemplateSpec = V1beta1JobTemplateSpec
  { V1beta1JobTemplateSpec -> Maybe V1ObjectMeta
v1beta1JobTemplateSpecMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1JobTemplateSpec -> Maybe V1JobSpec
v1beta1JobTemplateSpecSpec :: !(Maybe V1JobSpec) -- ^ "spec"
  } deriving (Int -> V1beta1JobTemplateSpec -> ShowS
[V1beta1JobTemplateSpec] -> ShowS
V1beta1JobTemplateSpec -> String
(Int -> V1beta1JobTemplateSpec -> ShowS)
-> (V1beta1JobTemplateSpec -> String)
-> ([V1beta1JobTemplateSpec] -> ShowS)
-> Show V1beta1JobTemplateSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1JobTemplateSpec] -> ShowS
$cshowList :: [V1beta1JobTemplateSpec] -> ShowS
show :: V1beta1JobTemplateSpec -> String
$cshow :: V1beta1JobTemplateSpec -> String
showsPrec :: Int -> V1beta1JobTemplateSpec -> ShowS
$cshowsPrec :: Int -> V1beta1JobTemplateSpec -> ShowS
P.Show, V1beta1JobTemplateSpec -> V1beta1JobTemplateSpec -> Bool
(V1beta1JobTemplateSpec -> V1beta1JobTemplateSpec -> Bool)
-> (V1beta1JobTemplateSpec -> V1beta1JobTemplateSpec -> Bool)
-> Eq V1beta1JobTemplateSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1JobTemplateSpec -> V1beta1JobTemplateSpec -> Bool
$c/= :: V1beta1JobTemplateSpec -> V1beta1JobTemplateSpec -> Bool
== :: V1beta1JobTemplateSpec -> V1beta1JobTemplateSpec -> Bool
$c== :: V1beta1JobTemplateSpec -> V1beta1JobTemplateSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1JobTemplateSpec
instance A.FromJSON V1beta1JobTemplateSpec where
  parseJSON :: Value -> Parser V1beta1JobTemplateSpec
parseJSON = String
-> (Object -> Parser V1beta1JobTemplateSpec)
-> Value
-> Parser V1beta1JobTemplateSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1JobTemplateSpec" ((Object -> Parser V1beta1JobTemplateSpec)
 -> Value -> Parser V1beta1JobTemplateSpec)
-> (Object -> Parser V1beta1JobTemplateSpec)
-> Value
-> Parser V1beta1JobTemplateSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1ObjectMeta -> Maybe V1JobSpec -> V1beta1JobTemplateSpec
V1beta1JobTemplateSpec
      (Maybe V1ObjectMeta -> Maybe V1JobSpec -> V1beta1JobTemplateSpec)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe V1JobSpec -> V1beta1JobTemplateSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe V1JobSpec -> V1beta1JobTemplateSpec)
-> Parser (Maybe V1JobSpec) -> Parser V1beta1JobTemplateSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1JobSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")

-- | ToJSON V1beta1JobTemplateSpec
instance A.ToJSON V1beta1JobTemplateSpec where
  toJSON :: V1beta1JobTemplateSpec -> Value
toJSON V1beta1JobTemplateSpec {Maybe V1ObjectMeta
Maybe V1JobSpec
v1beta1JobTemplateSpecSpec :: Maybe V1JobSpec
v1beta1JobTemplateSpecMetadata :: Maybe V1ObjectMeta
v1beta1JobTemplateSpecSpec :: V1beta1JobTemplateSpec -> Maybe V1JobSpec
v1beta1JobTemplateSpecMetadata :: V1beta1JobTemplateSpec -> Maybe V1ObjectMeta
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1JobTemplateSpecMetadata
      , Text
"spec" Text -> Maybe V1JobSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1JobSpec
v1beta1JobTemplateSpecSpec
      ]


-- | Construct a value of type 'V1beta1JobTemplateSpec' (by applying it's required fields, if any)
mkV1beta1JobTemplateSpec
  :: V1beta1JobTemplateSpec
mkV1beta1JobTemplateSpec :: V1beta1JobTemplateSpec
mkV1beta1JobTemplateSpec =
  V1beta1JobTemplateSpec :: Maybe V1ObjectMeta -> Maybe V1JobSpec -> V1beta1JobTemplateSpec
V1beta1JobTemplateSpec
  { v1beta1JobTemplateSpecMetadata :: Maybe V1ObjectMeta
v1beta1JobTemplateSpecMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1JobTemplateSpecSpec :: Maybe V1JobSpec
v1beta1JobTemplateSpecSpec = Maybe V1JobSpec
forall a. Maybe a
Nothing
  }

-- ** V1beta1Lease
-- | V1beta1Lease
-- Lease defines a lease concept.
data V1beta1Lease = V1beta1Lease
  { V1beta1Lease -> Maybe Text
v1beta1LeaseApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1Lease -> Maybe Text
v1beta1LeaseKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1Lease -> Maybe V1ObjectMeta
v1beta1LeaseMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1Lease -> Maybe V1beta1LeaseSpec
v1beta1LeaseSpec :: !(Maybe V1beta1LeaseSpec) -- ^ "spec"
  } deriving (Int -> V1beta1Lease -> ShowS
[V1beta1Lease] -> ShowS
V1beta1Lease -> String
(Int -> V1beta1Lease -> ShowS)
-> (V1beta1Lease -> String)
-> ([V1beta1Lease] -> ShowS)
-> Show V1beta1Lease
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1Lease] -> ShowS
$cshowList :: [V1beta1Lease] -> ShowS
show :: V1beta1Lease -> String
$cshow :: V1beta1Lease -> String
showsPrec :: Int -> V1beta1Lease -> ShowS
$cshowsPrec :: Int -> V1beta1Lease -> ShowS
P.Show, V1beta1Lease -> V1beta1Lease -> Bool
(V1beta1Lease -> V1beta1Lease -> Bool)
-> (V1beta1Lease -> V1beta1Lease -> Bool) -> Eq V1beta1Lease
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1Lease -> V1beta1Lease -> Bool
$c/= :: V1beta1Lease -> V1beta1Lease -> Bool
== :: V1beta1Lease -> V1beta1Lease -> Bool
$c== :: V1beta1Lease -> V1beta1Lease -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1Lease
instance A.FromJSON V1beta1Lease where
  parseJSON :: Value -> Parser V1beta1Lease
parseJSON = String
-> (Object -> Parser V1beta1Lease) -> Value -> Parser V1beta1Lease
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1Lease" ((Object -> Parser V1beta1Lease) -> Value -> Parser V1beta1Lease)
-> (Object -> Parser V1beta1Lease) -> Value -> Parser V1beta1Lease
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1LeaseSpec
-> V1beta1Lease
V1beta1Lease
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1beta1LeaseSpec
 -> V1beta1Lease)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta -> Maybe V1beta1LeaseSpec -> V1beta1Lease)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta -> Maybe V1beta1LeaseSpec -> V1beta1Lease)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta -> Maybe V1beta1LeaseSpec -> V1beta1Lease)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta -> Maybe V1beta1LeaseSpec -> V1beta1Lease)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe V1beta1LeaseSpec -> V1beta1Lease)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe V1beta1LeaseSpec -> V1beta1Lease)
-> Parser (Maybe V1beta1LeaseSpec) -> Parser V1beta1Lease
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1LeaseSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")

-- | ToJSON V1beta1Lease
instance A.ToJSON V1beta1Lease where
  toJSON :: V1beta1Lease -> Value
toJSON V1beta1Lease {Maybe Text
Maybe V1beta1LeaseSpec
Maybe V1ObjectMeta
v1beta1LeaseSpec :: Maybe V1beta1LeaseSpec
v1beta1LeaseMetadata :: Maybe V1ObjectMeta
v1beta1LeaseKind :: Maybe Text
v1beta1LeaseApiVersion :: Maybe Text
v1beta1LeaseSpec :: V1beta1Lease -> Maybe V1beta1LeaseSpec
v1beta1LeaseMetadata :: V1beta1Lease -> Maybe V1ObjectMeta
v1beta1LeaseKind :: V1beta1Lease -> Maybe Text
v1beta1LeaseApiVersion :: V1beta1Lease -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1LeaseApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1LeaseKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1LeaseMetadata
      , Text
"spec" Text -> Maybe V1beta1LeaseSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1LeaseSpec
v1beta1LeaseSpec
      ]


-- | Construct a value of type 'V1beta1Lease' (by applying it's required fields, if any)
mkV1beta1Lease
  :: V1beta1Lease
mkV1beta1Lease :: V1beta1Lease
mkV1beta1Lease =
  V1beta1Lease :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1LeaseSpec
-> V1beta1Lease
V1beta1Lease
  { v1beta1LeaseApiVersion :: Maybe Text
v1beta1LeaseApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1LeaseKind :: Maybe Text
v1beta1LeaseKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1LeaseMetadata :: Maybe V1ObjectMeta
v1beta1LeaseMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1LeaseSpec :: Maybe V1beta1LeaseSpec
v1beta1LeaseSpec = Maybe V1beta1LeaseSpec
forall a. Maybe a
Nothing
  }

-- ** V1beta1LeaseList
-- | V1beta1LeaseList
-- LeaseList is a list of Lease objects.
data V1beta1LeaseList = V1beta1LeaseList
  { V1beta1LeaseList -> Maybe Text
v1beta1LeaseListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1LeaseList -> [V1beta1Lease]
v1beta1LeaseListItems :: !([V1beta1Lease]) -- ^ /Required/ "items" - Items is a list of schema objects.
  , V1beta1LeaseList -> Maybe Text
v1beta1LeaseListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1LeaseList -> Maybe V1ListMeta
v1beta1LeaseListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1LeaseList -> ShowS
[V1beta1LeaseList] -> ShowS
V1beta1LeaseList -> String
(Int -> V1beta1LeaseList -> ShowS)
-> (V1beta1LeaseList -> String)
-> ([V1beta1LeaseList] -> ShowS)
-> Show V1beta1LeaseList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1LeaseList] -> ShowS
$cshowList :: [V1beta1LeaseList] -> ShowS
show :: V1beta1LeaseList -> String
$cshow :: V1beta1LeaseList -> String
showsPrec :: Int -> V1beta1LeaseList -> ShowS
$cshowsPrec :: Int -> V1beta1LeaseList -> ShowS
P.Show, V1beta1LeaseList -> V1beta1LeaseList -> Bool
(V1beta1LeaseList -> V1beta1LeaseList -> Bool)
-> (V1beta1LeaseList -> V1beta1LeaseList -> Bool)
-> Eq V1beta1LeaseList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1LeaseList -> V1beta1LeaseList -> Bool
$c/= :: V1beta1LeaseList -> V1beta1LeaseList -> Bool
== :: V1beta1LeaseList -> V1beta1LeaseList -> Bool
$c== :: V1beta1LeaseList -> V1beta1LeaseList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1LeaseList
instance A.FromJSON V1beta1LeaseList where
  parseJSON :: Value -> Parser V1beta1LeaseList
parseJSON = String
-> (Object -> Parser V1beta1LeaseList)
-> Value
-> Parser V1beta1LeaseList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1LeaseList" ((Object -> Parser V1beta1LeaseList)
 -> Value -> Parser V1beta1LeaseList)
-> (Object -> Parser V1beta1LeaseList)
-> Value
-> Parser V1beta1LeaseList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1Lease]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1LeaseList
V1beta1LeaseList
      (Maybe Text
 -> [V1beta1Lease]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1LeaseList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1Lease]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1LeaseList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1Lease]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1LeaseList)
-> Parser [V1beta1Lease]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1LeaseList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1Lease]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1LeaseList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1LeaseList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1LeaseList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1LeaseList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1LeaseList
instance A.ToJSON V1beta1LeaseList where
  toJSON :: V1beta1LeaseList -> Value
toJSON V1beta1LeaseList {[V1beta1Lease]
Maybe Text
Maybe V1ListMeta
v1beta1LeaseListMetadata :: Maybe V1ListMeta
v1beta1LeaseListKind :: Maybe Text
v1beta1LeaseListItems :: [V1beta1Lease]
v1beta1LeaseListApiVersion :: Maybe Text
v1beta1LeaseListMetadata :: V1beta1LeaseList -> Maybe V1ListMeta
v1beta1LeaseListKind :: V1beta1LeaseList -> Maybe Text
v1beta1LeaseListItems :: V1beta1LeaseList -> [V1beta1Lease]
v1beta1LeaseListApiVersion :: V1beta1LeaseList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1LeaseListApiVersion
      , Text
"items" Text -> [V1beta1Lease] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1Lease]
v1beta1LeaseListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1LeaseListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1LeaseListMetadata
      ]


-- | Construct a value of type 'V1beta1LeaseList' (by applying it's required fields, if any)
mkV1beta1LeaseList
  :: [V1beta1Lease] -- ^ 'v1beta1LeaseListItems': Items is a list of schema objects.
  -> V1beta1LeaseList
mkV1beta1LeaseList :: [V1beta1Lease] -> V1beta1LeaseList
mkV1beta1LeaseList [V1beta1Lease]
v1beta1LeaseListItems =
  V1beta1LeaseList :: Maybe Text
-> [V1beta1Lease]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1LeaseList
V1beta1LeaseList
  { v1beta1LeaseListApiVersion :: Maybe Text
v1beta1LeaseListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1Lease]
v1beta1LeaseListItems :: [V1beta1Lease]
v1beta1LeaseListItems :: [V1beta1Lease]
v1beta1LeaseListItems
  , v1beta1LeaseListKind :: Maybe Text
v1beta1LeaseListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1LeaseListMetadata :: Maybe V1ListMeta
v1beta1LeaseListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1LeaseSpec
-- | V1beta1LeaseSpec
-- LeaseSpec is a specification of a Lease.
data V1beta1LeaseSpec = V1beta1LeaseSpec
  { V1beta1LeaseSpec -> Maybe DateTime
v1beta1LeaseSpecAcquireTime :: !(Maybe DateTime) -- ^ "acquireTime" - acquireTime is a time when the current lease was acquired.
  , V1beta1LeaseSpec -> Maybe Text
v1beta1LeaseSpecHolderIdentity :: !(Maybe Text) -- ^ "holderIdentity" - holderIdentity contains the identity of the holder of a current lease.
  , V1beta1LeaseSpec -> Maybe Int
v1beta1LeaseSpecLeaseDurationSeconds :: !(Maybe Int) -- ^ "leaseDurationSeconds" - leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.
  , V1beta1LeaseSpec -> Maybe Int
v1beta1LeaseSpecLeaseTransitions :: !(Maybe Int) -- ^ "leaseTransitions" - leaseTransitions is the number of transitions of a lease between holders.
  , V1beta1LeaseSpec -> Maybe DateTime
v1beta1LeaseSpecRenewTime :: !(Maybe DateTime) -- ^ "renewTime" - renewTime is a time when the current holder of a lease has last updated the lease.
  } deriving (Int -> V1beta1LeaseSpec -> ShowS
[V1beta1LeaseSpec] -> ShowS
V1beta1LeaseSpec -> String
(Int -> V1beta1LeaseSpec -> ShowS)
-> (V1beta1LeaseSpec -> String)
-> ([V1beta1LeaseSpec] -> ShowS)
-> Show V1beta1LeaseSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1LeaseSpec] -> ShowS
$cshowList :: [V1beta1LeaseSpec] -> ShowS
show :: V1beta1LeaseSpec -> String
$cshow :: V1beta1LeaseSpec -> String
showsPrec :: Int -> V1beta1LeaseSpec -> ShowS
$cshowsPrec :: Int -> V1beta1LeaseSpec -> ShowS
P.Show, V1beta1LeaseSpec -> V1beta1LeaseSpec -> Bool
(V1beta1LeaseSpec -> V1beta1LeaseSpec -> Bool)
-> (V1beta1LeaseSpec -> V1beta1LeaseSpec -> Bool)
-> Eq V1beta1LeaseSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1LeaseSpec -> V1beta1LeaseSpec -> Bool
$c/= :: V1beta1LeaseSpec -> V1beta1LeaseSpec -> Bool
== :: V1beta1LeaseSpec -> V1beta1LeaseSpec -> Bool
$c== :: V1beta1LeaseSpec -> V1beta1LeaseSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1LeaseSpec
instance A.FromJSON V1beta1LeaseSpec where
  parseJSON :: Value -> Parser V1beta1LeaseSpec
parseJSON = String
-> (Object -> Parser V1beta1LeaseSpec)
-> Value
-> Parser V1beta1LeaseSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1LeaseSpec" ((Object -> Parser V1beta1LeaseSpec)
 -> Value -> Parser V1beta1LeaseSpec)
-> (Object -> Parser V1beta1LeaseSpec)
-> Value
-> Parser V1beta1LeaseSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe DateTime
-> V1beta1LeaseSpec
V1beta1LeaseSpec
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Int
 -> Maybe Int
 -> Maybe DateTime
 -> V1beta1LeaseSpec)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Int -> Maybe Int -> Maybe DateTime -> V1beta1LeaseSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"acquireTime")
      Parser
  (Maybe Text
   -> Maybe Int -> Maybe Int -> Maybe DateTime -> V1beta1LeaseSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int -> Maybe Int -> Maybe DateTime -> V1beta1LeaseSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"holderIdentity")
      Parser
  (Maybe Int -> Maybe Int -> Maybe DateTime -> V1beta1LeaseSpec)
-> Parser (Maybe Int)
-> Parser (Maybe Int -> Maybe DateTime -> V1beta1LeaseSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"leaseDurationSeconds")
      Parser (Maybe Int -> Maybe DateTime -> V1beta1LeaseSpec)
-> Parser (Maybe Int)
-> Parser (Maybe DateTime -> V1beta1LeaseSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"leaseTransitions")
      Parser (Maybe DateTime -> V1beta1LeaseSpec)
-> Parser (Maybe DateTime) -> Parser V1beta1LeaseSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"renewTime")

-- | ToJSON V1beta1LeaseSpec
instance A.ToJSON V1beta1LeaseSpec where
  toJSON :: V1beta1LeaseSpec -> Value
toJSON V1beta1LeaseSpec {Maybe Int
Maybe Text
Maybe DateTime
v1beta1LeaseSpecRenewTime :: Maybe DateTime
v1beta1LeaseSpecLeaseTransitions :: Maybe Int
v1beta1LeaseSpecLeaseDurationSeconds :: Maybe Int
v1beta1LeaseSpecHolderIdentity :: Maybe Text
v1beta1LeaseSpecAcquireTime :: Maybe DateTime
v1beta1LeaseSpecRenewTime :: V1beta1LeaseSpec -> Maybe DateTime
v1beta1LeaseSpecLeaseTransitions :: V1beta1LeaseSpec -> Maybe Int
v1beta1LeaseSpecLeaseDurationSeconds :: V1beta1LeaseSpec -> Maybe Int
v1beta1LeaseSpecHolderIdentity :: V1beta1LeaseSpec -> Maybe Text
v1beta1LeaseSpecAcquireTime :: V1beta1LeaseSpec -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"acquireTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta1LeaseSpecAcquireTime
      , Text
"holderIdentity" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1LeaseSpecHolderIdentity
      , Text
"leaseDurationSeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1LeaseSpecLeaseDurationSeconds
      , Text
"leaseTransitions" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1LeaseSpecLeaseTransitions
      , Text
"renewTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta1LeaseSpecRenewTime
      ]


-- | Construct a value of type 'V1beta1LeaseSpec' (by applying it's required fields, if any)
mkV1beta1LeaseSpec
  :: V1beta1LeaseSpec
mkV1beta1LeaseSpec :: V1beta1LeaseSpec
mkV1beta1LeaseSpec =
  V1beta1LeaseSpec :: Maybe DateTime
-> Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe DateTime
-> V1beta1LeaseSpec
V1beta1LeaseSpec
  { v1beta1LeaseSpecAcquireTime :: Maybe DateTime
v1beta1LeaseSpecAcquireTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1beta1LeaseSpecHolderIdentity :: Maybe Text
v1beta1LeaseSpecHolderIdentity = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1LeaseSpecLeaseDurationSeconds :: Maybe Int
v1beta1LeaseSpecLeaseDurationSeconds = Maybe Int
forall a. Maybe a
Nothing
  , v1beta1LeaseSpecLeaseTransitions :: Maybe Int
v1beta1LeaseSpecLeaseTransitions = Maybe Int
forall a. Maybe a
Nothing
  , v1beta1LeaseSpecRenewTime :: Maybe DateTime
v1beta1LeaseSpecRenewTime = Maybe DateTime
forall a. Maybe a
Nothing
  }

-- ** V1beta1LocalSubjectAccessReview
-- | V1beta1LocalSubjectAccessReview
-- LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.
data V1beta1LocalSubjectAccessReview = V1beta1LocalSubjectAccessReview
  { V1beta1LocalSubjectAccessReview -> Maybe Text
v1beta1LocalSubjectAccessReviewApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1LocalSubjectAccessReview -> Maybe Text
v1beta1LocalSubjectAccessReviewKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1LocalSubjectAccessReview -> Maybe V1ObjectMeta
v1beta1LocalSubjectAccessReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1LocalSubjectAccessReview -> V1beta1SubjectAccessReviewSpec
v1beta1LocalSubjectAccessReviewSpec :: !(V1beta1SubjectAccessReviewSpec) -- ^ /Required/ "spec"
  , V1beta1LocalSubjectAccessReview
-> Maybe V1beta1SubjectAccessReviewStatus
v1beta1LocalSubjectAccessReviewStatus :: !(Maybe V1beta1SubjectAccessReviewStatus) -- ^ "status"
  } deriving (Int -> V1beta1LocalSubjectAccessReview -> ShowS
[V1beta1LocalSubjectAccessReview] -> ShowS
V1beta1LocalSubjectAccessReview -> String
(Int -> V1beta1LocalSubjectAccessReview -> ShowS)
-> (V1beta1LocalSubjectAccessReview -> String)
-> ([V1beta1LocalSubjectAccessReview] -> ShowS)
-> Show V1beta1LocalSubjectAccessReview
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1LocalSubjectAccessReview] -> ShowS
$cshowList :: [V1beta1LocalSubjectAccessReview] -> ShowS
show :: V1beta1LocalSubjectAccessReview -> String
$cshow :: V1beta1LocalSubjectAccessReview -> String
showsPrec :: Int -> V1beta1LocalSubjectAccessReview -> ShowS
$cshowsPrec :: Int -> V1beta1LocalSubjectAccessReview -> ShowS
P.Show, V1beta1LocalSubjectAccessReview
-> V1beta1LocalSubjectAccessReview -> Bool
(V1beta1LocalSubjectAccessReview
 -> V1beta1LocalSubjectAccessReview -> Bool)
-> (V1beta1LocalSubjectAccessReview
    -> V1beta1LocalSubjectAccessReview -> Bool)
-> Eq V1beta1LocalSubjectAccessReview
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1LocalSubjectAccessReview
-> V1beta1LocalSubjectAccessReview -> Bool
$c/= :: V1beta1LocalSubjectAccessReview
-> V1beta1LocalSubjectAccessReview -> Bool
== :: V1beta1LocalSubjectAccessReview
-> V1beta1LocalSubjectAccessReview -> Bool
$c== :: V1beta1LocalSubjectAccessReview
-> V1beta1LocalSubjectAccessReview -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1LocalSubjectAccessReview
instance A.FromJSON V1beta1LocalSubjectAccessReview where
  parseJSON :: Value -> Parser V1beta1LocalSubjectAccessReview
parseJSON = String
-> (Object -> Parser V1beta1LocalSubjectAccessReview)
-> Value
-> Parser V1beta1LocalSubjectAccessReview
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1LocalSubjectAccessReview" ((Object -> Parser V1beta1LocalSubjectAccessReview)
 -> Value -> Parser V1beta1LocalSubjectAccessReview)
-> (Object -> Parser V1beta1LocalSubjectAccessReview)
-> Value
-> Parser V1beta1LocalSubjectAccessReview
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1SubjectAccessReviewSpec
-> Maybe V1beta1SubjectAccessReviewStatus
-> V1beta1LocalSubjectAccessReview
V1beta1LocalSubjectAccessReview
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1beta1SubjectAccessReviewSpec
 -> Maybe V1beta1SubjectAccessReviewStatus
 -> V1beta1LocalSubjectAccessReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1beta1SubjectAccessReviewSpec
      -> Maybe V1beta1SubjectAccessReviewStatus
      -> V1beta1LocalSubjectAccessReview)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1beta1SubjectAccessReviewSpec
   -> Maybe V1beta1SubjectAccessReviewStatus
   -> V1beta1LocalSubjectAccessReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1beta1SubjectAccessReviewSpec
      -> Maybe V1beta1SubjectAccessReviewStatus
      -> V1beta1LocalSubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1beta1SubjectAccessReviewSpec
   -> Maybe V1beta1SubjectAccessReviewStatus
   -> V1beta1LocalSubjectAccessReview)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1beta1SubjectAccessReviewSpec
      -> Maybe V1beta1SubjectAccessReviewStatus
      -> V1beta1LocalSubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1beta1SubjectAccessReviewSpec
   -> Maybe V1beta1SubjectAccessReviewStatus
   -> V1beta1LocalSubjectAccessReview)
-> Parser V1beta1SubjectAccessReviewSpec
-> Parser
     (Maybe V1beta1SubjectAccessReviewStatus
      -> V1beta1LocalSubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1beta1SubjectAccessReviewSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")
      Parser
  (Maybe V1beta1SubjectAccessReviewStatus
   -> V1beta1LocalSubjectAccessReview)
-> Parser (Maybe V1beta1SubjectAccessReviewStatus)
-> Parser V1beta1LocalSubjectAccessReview
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1SubjectAccessReviewStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta1LocalSubjectAccessReview
instance A.ToJSON V1beta1LocalSubjectAccessReview where
  toJSON :: V1beta1LocalSubjectAccessReview -> Value
toJSON V1beta1LocalSubjectAccessReview {Maybe Text
Maybe V1beta1SubjectAccessReviewStatus
Maybe V1ObjectMeta
V1beta1SubjectAccessReviewSpec
v1beta1LocalSubjectAccessReviewStatus :: Maybe V1beta1SubjectAccessReviewStatus
v1beta1LocalSubjectAccessReviewSpec :: V1beta1SubjectAccessReviewSpec
v1beta1LocalSubjectAccessReviewMetadata :: Maybe V1ObjectMeta
v1beta1LocalSubjectAccessReviewKind :: Maybe Text
v1beta1LocalSubjectAccessReviewApiVersion :: Maybe Text
v1beta1LocalSubjectAccessReviewStatus :: V1beta1LocalSubjectAccessReview
-> Maybe V1beta1SubjectAccessReviewStatus
v1beta1LocalSubjectAccessReviewSpec :: V1beta1LocalSubjectAccessReview -> V1beta1SubjectAccessReviewSpec
v1beta1LocalSubjectAccessReviewMetadata :: V1beta1LocalSubjectAccessReview -> Maybe V1ObjectMeta
v1beta1LocalSubjectAccessReviewKind :: V1beta1LocalSubjectAccessReview -> Maybe Text
v1beta1LocalSubjectAccessReviewApiVersion :: V1beta1LocalSubjectAccessReview -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1LocalSubjectAccessReviewApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1LocalSubjectAccessReviewKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1LocalSubjectAccessReviewMetadata
      , Text
"spec" Text -> V1beta1SubjectAccessReviewSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1beta1SubjectAccessReviewSpec
v1beta1LocalSubjectAccessReviewSpec
      , Text
"status" Text -> Maybe V1beta1SubjectAccessReviewStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1SubjectAccessReviewStatus
v1beta1LocalSubjectAccessReviewStatus
      ]


-- | Construct a value of type 'V1beta1LocalSubjectAccessReview' (by applying it's required fields, if any)
mkV1beta1LocalSubjectAccessReview
  :: V1beta1SubjectAccessReviewSpec -- ^ 'v1beta1LocalSubjectAccessReviewSpec' 
  -> V1beta1LocalSubjectAccessReview
mkV1beta1LocalSubjectAccessReview :: V1beta1SubjectAccessReviewSpec -> V1beta1LocalSubjectAccessReview
mkV1beta1LocalSubjectAccessReview V1beta1SubjectAccessReviewSpec
v1beta1LocalSubjectAccessReviewSpec =
  V1beta1LocalSubjectAccessReview :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1SubjectAccessReviewSpec
-> Maybe V1beta1SubjectAccessReviewStatus
-> V1beta1LocalSubjectAccessReview
V1beta1LocalSubjectAccessReview
  { v1beta1LocalSubjectAccessReviewApiVersion :: Maybe Text
v1beta1LocalSubjectAccessReviewApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1LocalSubjectAccessReviewKind :: Maybe Text
v1beta1LocalSubjectAccessReviewKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1LocalSubjectAccessReviewMetadata :: Maybe V1ObjectMeta
v1beta1LocalSubjectAccessReviewMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1beta1SubjectAccessReviewSpec
v1beta1LocalSubjectAccessReviewSpec :: V1beta1SubjectAccessReviewSpec
v1beta1LocalSubjectAccessReviewSpec :: V1beta1SubjectAccessReviewSpec
v1beta1LocalSubjectAccessReviewSpec
  , v1beta1LocalSubjectAccessReviewStatus :: Maybe V1beta1SubjectAccessReviewStatus
v1beta1LocalSubjectAccessReviewStatus = Maybe V1beta1SubjectAccessReviewStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta1MutatingWebhook
-- | V1beta1MutatingWebhook
-- MutatingWebhook describes an admission webhook and the resources and operations it applies to.
data V1beta1MutatingWebhook = V1beta1MutatingWebhook
  { V1beta1MutatingWebhook -> Maybe [Text]
v1beta1MutatingWebhookAdmissionReviewVersions :: !(Maybe [Text]) -- ^ "admissionReviewVersions" - AdmissionReviewVersions is an ordered list of preferred &#x60;AdmissionReview&#x60; versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to &#x60;[&#39;v1beta1&#39;]&#x60;.
  , V1beta1MutatingWebhook
-> AdmissionregistrationV1beta1WebhookClientConfig
v1beta1MutatingWebhookClientConfig :: !(AdmissionregistrationV1beta1WebhookClientConfig) -- ^ /Required/ "clientConfig"
  , V1beta1MutatingWebhook -> Maybe Text
v1beta1MutatingWebhookFailurePolicy :: !(Maybe Text) -- ^ "failurePolicy" - FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.
  , V1beta1MutatingWebhook -> Maybe Text
v1beta1MutatingWebhookMatchPolicy :: !(Maybe Text) -- ^ "matchPolicy" - matchPolicy defines how the \&quot;rules\&quot; list is used to match incoming requests. Allowed values are \&quot;Exact\&quot; or \&quot;Equivalent\&quot;.  - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \&quot;rules\&quot; only included &#x60;apiGroups:[\&quot;apps\&quot;], apiVersions:[\&quot;v1\&quot;], resources: [\&quot;deployments\&quot;]&#x60;, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.  - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \&quot;rules\&quot; only included &#x60;apiGroups:[\&quot;apps\&quot;], apiVersions:[\&quot;v1\&quot;], resources: [\&quot;deployments\&quot;]&#x60;, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.  Defaults to \&quot;Exact\&quot;
  , V1beta1MutatingWebhook -> Text
v1beta1MutatingWebhookName :: !(Text) -- ^ /Required/ "name" - The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \&quot;imagepolicy\&quot; is the name of the webhook, and kubernetes.io is the name of the organization. Required.
  , V1beta1MutatingWebhook -> Maybe V1LabelSelector
v1beta1MutatingWebhookNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"
  , V1beta1MutatingWebhook -> Maybe V1LabelSelector
v1beta1MutatingWebhookObjectSelector :: !(Maybe V1LabelSelector) -- ^ "objectSelector"
  , V1beta1MutatingWebhook -> Maybe Text
v1beta1MutatingWebhookReinvocationPolicy :: !(Maybe Text) -- ^ "reinvocationPolicy" - reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \&quot;Never\&quot; and \&quot;IfNeeded\&quot;.  Never: the webhook will not be called more than once in a single admission evaluation.  IfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.  Defaults to \&quot;Never\&quot;.
  , V1beta1MutatingWebhook -> Maybe [V1beta1RuleWithOperations]
v1beta1MutatingWebhookRules :: !(Maybe [V1beta1RuleWithOperations]) -- ^ "rules" - Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.
  , V1beta1MutatingWebhook -> Maybe Text
v1beta1MutatingWebhookSideEffects :: !(Maybe Text) -- ^ "sideEffects" - SideEffects states whether this webhookk has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects &#x3D;&#x3D; Unknown or Some. Defaults to Unknown.
  , V1beta1MutatingWebhook -> Maybe Int
v1beta1MutatingWebhookTimeoutSeconds :: !(Maybe Int) -- ^ "timeoutSeconds" - TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.
  } deriving (Int -> V1beta1MutatingWebhook -> ShowS
[V1beta1MutatingWebhook] -> ShowS
V1beta1MutatingWebhook -> String
(Int -> V1beta1MutatingWebhook -> ShowS)
-> (V1beta1MutatingWebhook -> String)
-> ([V1beta1MutatingWebhook] -> ShowS)
-> Show V1beta1MutatingWebhook
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1MutatingWebhook] -> ShowS
$cshowList :: [V1beta1MutatingWebhook] -> ShowS
show :: V1beta1MutatingWebhook -> String
$cshow :: V1beta1MutatingWebhook -> String
showsPrec :: Int -> V1beta1MutatingWebhook -> ShowS
$cshowsPrec :: Int -> V1beta1MutatingWebhook -> ShowS
P.Show, V1beta1MutatingWebhook -> V1beta1MutatingWebhook -> Bool
(V1beta1MutatingWebhook -> V1beta1MutatingWebhook -> Bool)
-> (V1beta1MutatingWebhook -> V1beta1MutatingWebhook -> Bool)
-> Eq V1beta1MutatingWebhook
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1MutatingWebhook -> V1beta1MutatingWebhook -> Bool
$c/= :: V1beta1MutatingWebhook -> V1beta1MutatingWebhook -> Bool
== :: V1beta1MutatingWebhook -> V1beta1MutatingWebhook -> Bool
$c== :: V1beta1MutatingWebhook -> V1beta1MutatingWebhook -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1MutatingWebhook
instance A.FromJSON V1beta1MutatingWebhook where
  parseJSON :: Value -> Parser V1beta1MutatingWebhook
parseJSON = String
-> (Object -> Parser V1beta1MutatingWebhook)
-> Value
-> Parser V1beta1MutatingWebhook
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1MutatingWebhook" ((Object -> Parser V1beta1MutatingWebhook)
 -> Value -> Parser V1beta1MutatingWebhook)
-> (Object -> Parser V1beta1MutatingWebhook)
-> Value
-> Parser V1beta1MutatingWebhook
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> AdmissionregistrationV1beta1WebhookClientConfig
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe V1LabelSelector
-> Maybe V1LabelSelector
-> Maybe Text
-> Maybe [V1beta1RuleWithOperations]
-> Maybe Text
-> Maybe Int
-> V1beta1MutatingWebhook
V1beta1MutatingWebhook
      (Maybe [Text]
 -> AdmissionregistrationV1beta1WebhookClientConfig
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Maybe V1LabelSelector
 -> Maybe V1LabelSelector
 -> Maybe Text
 -> Maybe [V1beta1RuleWithOperations]
 -> Maybe Text
 -> Maybe Int
 -> V1beta1MutatingWebhook)
-> Parser (Maybe [Text])
-> Parser
     (AdmissionregistrationV1beta1WebhookClientConfig
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe Text
      -> Maybe [V1beta1RuleWithOperations]
      -> Maybe Text
      -> Maybe Int
      -> V1beta1MutatingWebhook)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"admissionReviewVersions")
      Parser
  (AdmissionregistrationV1beta1WebhookClientConfig
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe Text
   -> Maybe [V1beta1RuleWithOperations]
   -> Maybe Text
   -> Maybe Int
   -> V1beta1MutatingWebhook)
-> Parser AdmissionregistrationV1beta1WebhookClientConfig
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe Text
      -> Maybe [V1beta1RuleWithOperations]
      -> Maybe Text
      -> Maybe Int
      -> V1beta1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser AdmissionregistrationV1beta1WebhookClientConfig
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"clientConfig")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe Text
   -> Maybe [V1beta1RuleWithOperations]
   -> Maybe Text
   -> Maybe Int
   -> V1beta1MutatingWebhook)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text
      -> Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe Text
      -> Maybe [V1beta1RuleWithOperations]
      -> Maybe Text
      -> Maybe Int
      -> V1beta1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"failurePolicy")
      Parser
  (Maybe Text
   -> Text
   -> Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe Text
   -> Maybe [V1beta1RuleWithOperations]
   -> Maybe Text
   -> Maybe Int
   -> V1beta1MutatingWebhook)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe Text
      -> Maybe [V1beta1RuleWithOperations]
      -> Maybe Text
      -> Maybe Int
      -> V1beta1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"matchPolicy")
      Parser
  (Text
   -> Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe Text
   -> Maybe [V1beta1RuleWithOperations]
   -> Maybe Text
   -> Maybe Int
   -> V1beta1MutatingWebhook)
-> Parser Text
-> Parser
     (Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe Text
      -> Maybe [V1beta1RuleWithOperations]
      -> Maybe Text
      -> Maybe Int
      -> V1beta1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe Text
   -> Maybe [V1beta1RuleWithOperations]
   -> Maybe Text
   -> Maybe Int
   -> V1beta1MutatingWebhook)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (Maybe V1LabelSelector
      -> Maybe Text
      -> Maybe [V1beta1RuleWithOperations]
      -> Maybe Text
      -> Maybe Int
      -> V1beta1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespaceSelector")
      Parser
  (Maybe V1LabelSelector
   -> Maybe Text
   -> Maybe [V1beta1RuleWithOperations]
   -> Maybe Text
   -> Maybe Int
   -> V1beta1MutatingWebhook)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (Maybe Text
      -> Maybe [V1beta1RuleWithOperations]
      -> Maybe Text
      -> Maybe Int
      -> V1beta1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"objectSelector")
      Parser
  (Maybe Text
   -> Maybe [V1beta1RuleWithOperations]
   -> Maybe Text
   -> Maybe Int
   -> V1beta1MutatingWebhook)
-> Parser (Maybe Text)
-> Parser
     (Maybe [V1beta1RuleWithOperations]
      -> Maybe Text -> Maybe Int -> V1beta1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reinvocationPolicy")
      Parser
  (Maybe [V1beta1RuleWithOperations]
   -> Maybe Text -> Maybe Int -> V1beta1MutatingWebhook)
-> Parser (Maybe [V1beta1RuleWithOperations])
-> Parser (Maybe Text -> Maybe Int -> V1beta1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1RuleWithOperations])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rules")
      Parser (Maybe Text -> Maybe Int -> V1beta1MutatingWebhook)
-> Parser (Maybe Text)
-> Parser (Maybe Int -> V1beta1MutatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"sideEffects")
      Parser (Maybe Int -> V1beta1MutatingWebhook)
-> Parser (Maybe Int) -> Parser V1beta1MutatingWebhook
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"timeoutSeconds")

-- | ToJSON V1beta1MutatingWebhook
instance A.ToJSON V1beta1MutatingWebhook where
  toJSON :: V1beta1MutatingWebhook -> Value
toJSON V1beta1MutatingWebhook {Maybe Int
Maybe [Text]
Maybe [V1beta1RuleWithOperations]
Maybe Text
Maybe V1LabelSelector
Text
AdmissionregistrationV1beta1WebhookClientConfig
v1beta1MutatingWebhookTimeoutSeconds :: Maybe Int
v1beta1MutatingWebhookSideEffects :: Maybe Text
v1beta1MutatingWebhookRules :: Maybe [V1beta1RuleWithOperations]
v1beta1MutatingWebhookReinvocationPolicy :: Maybe Text
v1beta1MutatingWebhookObjectSelector :: Maybe V1LabelSelector
v1beta1MutatingWebhookNamespaceSelector :: Maybe V1LabelSelector
v1beta1MutatingWebhookName :: Text
v1beta1MutatingWebhookMatchPolicy :: Maybe Text
v1beta1MutatingWebhookFailurePolicy :: Maybe Text
v1beta1MutatingWebhookClientConfig :: AdmissionregistrationV1beta1WebhookClientConfig
v1beta1MutatingWebhookAdmissionReviewVersions :: Maybe [Text]
v1beta1MutatingWebhookTimeoutSeconds :: V1beta1MutatingWebhook -> Maybe Int
v1beta1MutatingWebhookSideEffects :: V1beta1MutatingWebhook -> Maybe Text
v1beta1MutatingWebhookRules :: V1beta1MutatingWebhook -> Maybe [V1beta1RuleWithOperations]
v1beta1MutatingWebhookReinvocationPolicy :: V1beta1MutatingWebhook -> Maybe Text
v1beta1MutatingWebhookObjectSelector :: V1beta1MutatingWebhook -> Maybe V1LabelSelector
v1beta1MutatingWebhookNamespaceSelector :: V1beta1MutatingWebhook -> Maybe V1LabelSelector
v1beta1MutatingWebhookName :: V1beta1MutatingWebhook -> Text
v1beta1MutatingWebhookMatchPolicy :: V1beta1MutatingWebhook -> Maybe Text
v1beta1MutatingWebhookFailurePolicy :: V1beta1MutatingWebhook -> Maybe Text
v1beta1MutatingWebhookClientConfig :: V1beta1MutatingWebhook
-> AdmissionregistrationV1beta1WebhookClientConfig
v1beta1MutatingWebhookAdmissionReviewVersions :: V1beta1MutatingWebhook -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"admissionReviewVersions" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1MutatingWebhookAdmissionReviewVersions
      , Text
"clientConfig" Text
-> AdmissionregistrationV1beta1WebhookClientConfig -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= AdmissionregistrationV1beta1WebhookClientConfig
v1beta1MutatingWebhookClientConfig
      , Text
"failurePolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1MutatingWebhookFailurePolicy
      , Text
"matchPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1MutatingWebhookMatchPolicy
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1MutatingWebhookName
      , Text
"namespaceSelector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1beta1MutatingWebhookNamespaceSelector
      , Text
"objectSelector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1beta1MutatingWebhookObjectSelector
      , Text
"reinvocationPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1MutatingWebhookReinvocationPolicy
      , Text
"rules" Text -> Maybe [V1beta1RuleWithOperations] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1RuleWithOperations]
v1beta1MutatingWebhookRules
      , Text
"sideEffects" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1MutatingWebhookSideEffects
      , Text
"timeoutSeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1MutatingWebhookTimeoutSeconds
      ]


-- | Construct a value of type 'V1beta1MutatingWebhook' (by applying it's required fields, if any)
mkV1beta1MutatingWebhook
  :: AdmissionregistrationV1beta1WebhookClientConfig -- ^ 'v1beta1MutatingWebhookClientConfig' 
  -> Text -- ^ 'v1beta1MutatingWebhookName': The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.
  -> V1beta1MutatingWebhook
mkV1beta1MutatingWebhook :: AdmissionregistrationV1beta1WebhookClientConfig
-> Text -> V1beta1MutatingWebhook
mkV1beta1MutatingWebhook AdmissionregistrationV1beta1WebhookClientConfig
v1beta1MutatingWebhookClientConfig Text
v1beta1MutatingWebhookName =
  V1beta1MutatingWebhook :: Maybe [Text]
-> AdmissionregistrationV1beta1WebhookClientConfig
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe V1LabelSelector
-> Maybe V1LabelSelector
-> Maybe Text
-> Maybe [V1beta1RuleWithOperations]
-> Maybe Text
-> Maybe Int
-> V1beta1MutatingWebhook
V1beta1MutatingWebhook
  { v1beta1MutatingWebhookAdmissionReviewVersions :: Maybe [Text]
v1beta1MutatingWebhookAdmissionReviewVersions = Maybe [Text]
forall a. Maybe a
Nothing
  , AdmissionregistrationV1beta1WebhookClientConfig
v1beta1MutatingWebhookClientConfig :: AdmissionregistrationV1beta1WebhookClientConfig
v1beta1MutatingWebhookClientConfig :: AdmissionregistrationV1beta1WebhookClientConfig
v1beta1MutatingWebhookClientConfig
  , v1beta1MutatingWebhookFailurePolicy :: Maybe Text
v1beta1MutatingWebhookFailurePolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1MutatingWebhookMatchPolicy :: Maybe Text
v1beta1MutatingWebhookMatchPolicy = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta1MutatingWebhookName :: Text
v1beta1MutatingWebhookName :: Text
v1beta1MutatingWebhookName
  , v1beta1MutatingWebhookNamespaceSelector :: Maybe V1LabelSelector
v1beta1MutatingWebhookNamespaceSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , v1beta1MutatingWebhookObjectSelector :: Maybe V1LabelSelector
v1beta1MutatingWebhookObjectSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , v1beta1MutatingWebhookReinvocationPolicy :: Maybe Text
v1beta1MutatingWebhookReinvocationPolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1MutatingWebhookRules :: Maybe [V1beta1RuleWithOperations]
v1beta1MutatingWebhookRules = Maybe [V1beta1RuleWithOperations]
forall a. Maybe a
Nothing
  , v1beta1MutatingWebhookSideEffects :: Maybe Text
v1beta1MutatingWebhookSideEffects = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1MutatingWebhookTimeoutSeconds :: Maybe Int
v1beta1MutatingWebhookTimeoutSeconds = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1beta1MutatingWebhookConfiguration
-- | V1beta1MutatingWebhookConfiguration
-- MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 MutatingWebhookConfiguration instead.
data V1beta1MutatingWebhookConfiguration = V1beta1MutatingWebhookConfiguration
  { V1beta1MutatingWebhookConfiguration -> Maybe Text
v1beta1MutatingWebhookConfigurationApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1MutatingWebhookConfiguration -> Maybe Text
v1beta1MutatingWebhookConfigurationKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1MutatingWebhookConfiguration -> Maybe V1ObjectMeta
v1beta1MutatingWebhookConfigurationMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1MutatingWebhookConfiguration
-> Maybe [V1beta1MutatingWebhook]
v1beta1MutatingWebhookConfigurationWebhooks :: !(Maybe [V1beta1MutatingWebhook]) -- ^ "webhooks" - Webhooks is a list of webhooks and the affected resources and operations.
  } deriving (Int -> V1beta1MutatingWebhookConfiguration -> ShowS
[V1beta1MutatingWebhookConfiguration] -> ShowS
V1beta1MutatingWebhookConfiguration -> String
(Int -> V1beta1MutatingWebhookConfiguration -> ShowS)
-> (V1beta1MutatingWebhookConfiguration -> String)
-> ([V1beta1MutatingWebhookConfiguration] -> ShowS)
-> Show V1beta1MutatingWebhookConfiguration
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1MutatingWebhookConfiguration] -> ShowS
$cshowList :: [V1beta1MutatingWebhookConfiguration] -> ShowS
show :: V1beta1MutatingWebhookConfiguration -> String
$cshow :: V1beta1MutatingWebhookConfiguration -> String
showsPrec :: Int -> V1beta1MutatingWebhookConfiguration -> ShowS
$cshowsPrec :: Int -> V1beta1MutatingWebhookConfiguration -> ShowS
P.Show, V1beta1MutatingWebhookConfiguration
-> V1beta1MutatingWebhookConfiguration -> Bool
(V1beta1MutatingWebhookConfiguration
 -> V1beta1MutatingWebhookConfiguration -> Bool)
-> (V1beta1MutatingWebhookConfiguration
    -> V1beta1MutatingWebhookConfiguration -> Bool)
-> Eq V1beta1MutatingWebhookConfiguration
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1MutatingWebhookConfiguration
-> V1beta1MutatingWebhookConfiguration -> Bool
$c/= :: V1beta1MutatingWebhookConfiguration
-> V1beta1MutatingWebhookConfiguration -> Bool
== :: V1beta1MutatingWebhookConfiguration
-> V1beta1MutatingWebhookConfiguration -> Bool
$c== :: V1beta1MutatingWebhookConfiguration
-> V1beta1MutatingWebhookConfiguration -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1MutatingWebhookConfiguration
instance A.FromJSON V1beta1MutatingWebhookConfiguration where
  parseJSON :: Value -> Parser V1beta1MutatingWebhookConfiguration
parseJSON = String
-> (Object -> Parser V1beta1MutatingWebhookConfiguration)
-> Value
-> Parser V1beta1MutatingWebhookConfiguration
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1MutatingWebhookConfiguration" ((Object -> Parser V1beta1MutatingWebhookConfiguration)
 -> Value -> Parser V1beta1MutatingWebhookConfiguration)
-> (Object -> Parser V1beta1MutatingWebhookConfiguration)
-> Value
-> Parser V1beta1MutatingWebhookConfiguration
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1beta1MutatingWebhook]
-> V1beta1MutatingWebhookConfiguration
V1beta1MutatingWebhookConfiguration
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe [V1beta1MutatingWebhook]
 -> V1beta1MutatingWebhookConfiguration)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [V1beta1MutatingWebhook]
      -> V1beta1MutatingWebhookConfiguration)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [V1beta1MutatingWebhook]
   -> V1beta1MutatingWebhookConfiguration)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe [V1beta1MutatingWebhook]
      -> V1beta1MutatingWebhookConfiguration)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe [V1beta1MutatingWebhook]
   -> V1beta1MutatingWebhookConfiguration)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe [V1beta1MutatingWebhook]
      -> V1beta1MutatingWebhookConfiguration)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe [V1beta1MutatingWebhook]
   -> V1beta1MutatingWebhookConfiguration)
-> Parser (Maybe [V1beta1MutatingWebhook])
-> Parser V1beta1MutatingWebhookConfiguration
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1MutatingWebhook])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"webhooks")

-- | ToJSON V1beta1MutatingWebhookConfiguration
instance A.ToJSON V1beta1MutatingWebhookConfiguration where
  toJSON :: V1beta1MutatingWebhookConfiguration -> Value
toJSON V1beta1MutatingWebhookConfiguration {Maybe [V1beta1MutatingWebhook]
Maybe Text
Maybe V1ObjectMeta
v1beta1MutatingWebhookConfigurationWebhooks :: Maybe [V1beta1MutatingWebhook]
v1beta1MutatingWebhookConfigurationMetadata :: Maybe V1ObjectMeta
v1beta1MutatingWebhookConfigurationKind :: Maybe Text
v1beta1MutatingWebhookConfigurationApiVersion :: Maybe Text
v1beta1MutatingWebhookConfigurationWebhooks :: V1beta1MutatingWebhookConfiguration
-> Maybe [V1beta1MutatingWebhook]
v1beta1MutatingWebhookConfigurationMetadata :: V1beta1MutatingWebhookConfiguration -> Maybe V1ObjectMeta
v1beta1MutatingWebhookConfigurationKind :: V1beta1MutatingWebhookConfiguration -> Maybe Text
v1beta1MutatingWebhookConfigurationApiVersion :: V1beta1MutatingWebhookConfiguration -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1MutatingWebhookConfigurationApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1MutatingWebhookConfigurationKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1MutatingWebhookConfigurationMetadata
      , Text
"webhooks" Text -> Maybe [V1beta1MutatingWebhook] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1MutatingWebhook]
v1beta1MutatingWebhookConfigurationWebhooks
      ]


-- | Construct a value of type 'V1beta1MutatingWebhookConfiguration' (by applying it's required fields, if any)
mkV1beta1MutatingWebhookConfiguration
  :: V1beta1MutatingWebhookConfiguration
mkV1beta1MutatingWebhookConfiguration :: V1beta1MutatingWebhookConfiguration
mkV1beta1MutatingWebhookConfiguration =
  V1beta1MutatingWebhookConfiguration :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1beta1MutatingWebhook]
-> V1beta1MutatingWebhookConfiguration
V1beta1MutatingWebhookConfiguration
  { v1beta1MutatingWebhookConfigurationApiVersion :: Maybe Text
v1beta1MutatingWebhookConfigurationApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1MutatingWebhookConfigurationKind :: Maybe Text
v1beta1MutatingWebhookConfigurationKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1MutatingWebhookConfigurationMetadata :: Maybe V1ObjectMeta
v1beta1MutatingWebhookConfigurationMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1MutatingWebhookConfigurationWebhooks :: Maybe [V1beta1MutatingWebhook]
v1beta1MutatingWebhookConfigurationWebhooks = Maybe [V1beta1MutatingWebhook]
forall a. Maybe a
Nothing
  }

-- ** V1beta1MutatingWebhookConfigurationList
-- | V1beta1MutatingWebhookConfigurationList
-- MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.
data V1beta1MutatingWebhookConfigurationList = V1beta1MutatingWebhookConfigurationList
  { V1beta1MutatingWebhookConfigurationList -> Maybe Text
v1beta1MutatingWebhookConfigurationListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1MutatingWebhookConfigurationList
-> [V1beta1MutatingWebhookConfiguration]
v1beta1MutatingWebhookConfigurationListItems :: !([V1beta1MutatingWebhookConfiguration]) -- ^ /Required/ "items" - List of MutatingWebhookConfiguration.
  , V1beta1MutatingWebhookConfigurationList -> Maybe Text
v1beta1MutatingWebhookConfigurationListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1MutatingWebhookConfigurationList -> Maybe V1ListMeta
v1beta1MutatingWebhookConfigurationListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1MutatingWebhookConfigurationList -> ShowS
[V1beta1MutatingWebhookConfigurationList] -> ShowS
V1beta1MutatingWebhookConfigurationList -> String
(Int -> V1beta1MutatingWebhookConfigurationList -> ShowS)
-> (V1beta1MutatingWebhookConfigurationList -> String)
-> ([V1beta1MutatingWebhookConfigurationList] -> ShowS)
-> Show V1beta1MutatingWebhookConfigurationList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1MutatingWebhookConfigurationList] -> ShowS
$cshowList :: [V1beta1MutatingWebhookConfigurationList] -> ShowS
show :: V1beta1MutatingWebhookConfigurationList -> String
$cshow :: V1beta1MutatingWebhookConfigurationList -> String
showsPrec :: Int -> V1beta1MutatingWebhookConfigurationList -> ShowS
$cshowsPrec :: Int -> V1beta1MutatingWebhookConfigurationList -> ShowS
P.Show, V1beta1MutatingWebhookConfigurationList
-> V1beta1MutatingWebhookConfigurationList -> Bool
(V1beta1MutatingWebhookConfigurationList
 -> V1beta1MutatingWebhookConfigurationList -> Bool)
-> (V1beta1MutatingWebhookConfigurationList
    -> V1beta1MutatingWebhookConfigurationList -> Bool)
-> Eq V1beta1MutatingWebhookConfigurationList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1MutatingWebhookConfigurationList
-> V1beta1MutatingWebhookConfigurationList -> Bool
$c/= :: V1beta1MutatingWebhookConfigurationList
-> V1beta1MutatingWebhookConfigurationList -> Bool
== :: V1beta1MutatingWebhookConfigurationList
-> V1beta1MutatingWebhookConfigurationList -> Bool
$c== :: V1beta1MutatingWebhookConfigurationList
-> V1beta1MutatingWebhookConfigurationList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1MutatingWebhookConfigurationList
instance A.FromJSON V1beta1MutatingWebhookConfigurationList where
  parseJSON :: Value -> Parser V1beta1MutatingWebhookConfigurationList
parseJSON = String
-> (Object -> Parser V1beta1MutatingWebhookConfigurationList)
-> Value
-> Parser V1beta1MutatingWebhookConfigurationList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1MutatingWebhookConfigurationList" ((Object -> Parser V1beta1MutatingWebhookConfigurationList)
 -> Value -> Parser V1beta1MutatingWebhookConfigurationList)
-> (Object -> Parser V1beta1MutatingWebhookConfigurationList)
-> Value
-> Parser V1beta1MutatingWebhookConfigurationList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1MutatingWebhookConfiguration]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1MutatingWebhookConfigurationList
V1beta1MutatingWebhookConfigurationList
      (Maybe Text
 -> [V1beta1MutatingWebhookConfiguration]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1MutatingWebhookConfigurationList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1MutatingWebhookConfiguration]
      -> Maybe Text
      -> Maybe V1ListMeta
      -> V1beta1MutatingWebhookConfigurationList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1MutatingWebhookConfiguration]
   -> Maybe Text
   -> Maybe V1ListMeta
   -> V1beta1MutatingWebhookConfigurationList)
-> Parser [V1beta1MutatingWebhookConfiguration]
-> Parser
     (Maybe Text
      -> Maybe V1ListMeta -> V1beta1MutatingWebhookConfigurationList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1MutatingWebhookConfiguration]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text
   -> Maybe V1ListMeta -> V1beta1MutatingWebhookConfigurationList)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ListMeta -> V1beta1MutatingWebhookConfigurationList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ListMeta -> V1beta1MutatingWebhookConfigurationList)
-> Parser (Maybe V1ListMeta)
-> Parser V1beta1MutatingWebhookConfigurationList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1MutatingWebhookConfigurationList
instance A.ToJSON V1beta1MutatingWebhookConfigurationList where
  toJSON :: V1beta1MutatingWebhookConfigurationList -> Value
toJSON V1beta1MutatingWebhookConfigurationList {[V1beta1MutatingWebhookConfiguration]
Maybe Text
Maybe V1ListMeta
v1beta1MutatingWebhookConfigurationListMetadata :: Maybe V1ListMeta
v1beta1MutatingWebhookConfigurationListKind :: Maybe Text
v1beta1MutatingWebhookConfigurationListItems :: [V1beta1MutatingWebhookConfiguration]
v1beta1MutatingWebhookConfigurationListApiVersion :: Maybe Text
v1beta1MutatingWebhookConfigurationListMetadata :: V1beta1MutatingWebhookConfigurationList -> Maybe V1ListMeta
v1beta1MutatingWebhookConfigurationListKind :: V1beta1MutatingWebhookConfigurationList -> Maybe Text
v1beta1MutatingWebhookConfigurationListItems :: V1beta1MutatingWebhookConfigurationList
-> [V1beta1MutatingWebhookConfiguration]
v1beta1MutatingWebhookConfigurationListApiVersion :: V1beta1MutatingWebhookConfigurationList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1MutatingWebhookConfigurationListApiVersion
      , Text
"items" Text -> [V1beta1MutatingWebhookConfiguration] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1MutatingWebhookConfiguration]
v1beta1MutatingWebhookConfigurationListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1MutatingWebhookConfigurationListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1MutatingWebhookConfigurationListMetadata
      ]


-- | Construct a value of type 'V1beta1MutatingWebhookConfigurationList' (by applying it's required fields, if any)
mkV1beta1MutatingWebhookConfigurationList
  :: [V1beta1MutatingWebhookConfiguration] -- ^ 'v1beta1MutatingWebhookConfigurationListItems': List of MutatingWebhookConfiguration.
  -> V1beta1MutatingWebhookConfigurationList
mkV1beta1MutatingWebhookConfigurationList :: [V1beta1MutatingWebhookConfiguration]
-> V1beta1MutatingWebhookConfigurationList
mkV1beta1MutatingWebhookConfigurationList [V1beta1MutatingWebhookConfiguration]
v1beta1MutatingWebhookConfigurationListItems =
  V1beta1MutatingWebhookConfigurationList :: Maybe Text
-> [V1beta1MutatingWebhookConfiguration]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1MutatingWebhookConfigurationList
V1beta1MutatingWebhookConfigurationList
  { v1beta1MutatingWebhookConfigurationListApiVersion :: Maybe Text
v1beta1MutatingWebhookConfigurationListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1MutatingWebhookConfiguration]
v1beta1MutatingWebhookConfigurationListItems :: [V1beta1MutatingWebhookConfiguration]
v1beta1MutatingWebhookConfigurationListItems :: [V1beta1MutatingWebhookConfiguration]
v1beta1MutatingWebhookConfigurationListItems
  , v1beta1MutatingWebhookConfigurationListKind :: Maybe Text
v1beta1MutatingWebhookConfigurationListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1MutatingWebhookConfigurationListMetadata :: Maybe V1ListMeta
v1beta1MutatingWebhookConfigurationListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1NetworkPolicy
-- | V1beta1NetworkPolicy
-- DEPRECATED 1.9 - This group version of NetworkPolicy is deprecated by networking/v1/NetworkPolicy. NetworkPolicy describes what network traffic is allowed for a set of Pods
data V1beta1NetworkPolicy = V1beta1NetworkPolicy
  { V1beta1NetworkPolicy -> Maybe Text
v1beta1NetworkPolicyApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1NetworkPolicy -> Maybe Text
v1beta1NetworkPolicyKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1NetworkPolicy -> Maybe V1ObjectMeta
v1beta1NetworkPolicyMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1NetworkPolicy -> Maybe V1beta1NetworkPolicySpec
v1beta1NetworkPolicySpec :: !(Maybe V1beta1NetworkPolicySpec) -- ^ "spec"
  } deriving (Int -> V1beta1NetworkPolicy -> ShowS
[V1beta1NetworkPolicy] -> ShowS
V1beta1NetworkPolicy -> String
(Int -> V1beta1NetworkPolicy -> ShowS)
-> (V1beta1NetworkPolicy -> String)
-> ([V1beta1NetworkPolicy] -> ShowS)
-> Show V1beta1NetworkPolicy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1NetworkPolicy] -> ShowS
$cshowList :: [V1beta1NetworkPolicy] -> ShowS
show :: V1beta1NetworkPolicy -> String
$cshow :: V1beta1NetworkPolicy -> String
showsPrec :: Int -> V1beta1NetworkPolicy -> ShowS
$cshowsPrec :: Int -> V1beta1NetworkPolicy -> ShowS
P.Show, V1beta1NetworkPolicy -> V1beta1NetworkPolicy -> Bool
(V1beta1NetworkPolicy -> V1beta1NetworkPolicy -> Bool)
-> (V1beta1NetworkPolicy -> V1beta1NetworkPolicy -> Bool)
-> Eq V1beta1NetworkPolicy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1NetworkPolicy -> V1beta1NetworkPolicy -> Bool
$c/= :: V1beta1NetworkPolicy -> V1beta1NetworkPolicy -> Bool
== :: V1beta1NetworkPolicy -> V1beta1NetworkPolicy -> Bool
$c== :: V1beta1NetworkPolicy -> V1beta1NetworkPolicy -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1NetworkPolicy
instance A.FromJSON V1beta1NetworkPolicy where
  parseJSON :: Value -> Parser V1beta1NetworkPolicy
parseJSON = String
-> (Object -> Parser V1beta1NetworkPolicy)
-> Value
-> Parser V1beta1NetworkPolicy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1NetworkPolicy" ((Object -> Parser V1beta1NetworkPolicy)
 -> Value -> Parser V1beta1NetworkPolicy)
-> (Object -> Parser V1beta1NetworkPolicy)
-> Value
-> Parser V1beta1NetworkPolicy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1NetworkPolicySpec
-> V1beta1NetworkPolicy
V1beta1NetworkPolicy
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1beta1NetworkPolicySpec
 -> V1beta1NetworkPolicy)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1beta1NetworkPolicySpec
      -> V1beta1NetworkPolicy)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1beta1NetworkPolicySpec
   -> V1beta1NetworkPolicy)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1beta1NetworkPolicySpec -> V1beta1NetworkPolicy)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1beta1NetworkPolicySpec -> V1beta1NetworkPolicy)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe V1beta1NetworkPolicySpec -> V1beta1NetworkPolicy)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe V1beta1NetworkPolicySpec -> V1beta1NetworkPolicy)
-> Parser (Maybe V1beta1NetworkPolicySpec)
-> Parser V1beta1NetworkPolicy
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1NetworkPolicySpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")

-- | ToJSON V1beta1NetworkPolicy
instance A.ToJSON V1beta1NetworkPolicy where
  toJSON :: V1beta1NetworkPolicy -> Value
toJSON V1beta1NetworkPolicy {Maybe Text
Maybe V1beta1NetworkPolicySpec
Maybe V1ObjectMeta
v1beta1NetworkPolicySpec :: Maybe V1beta1NetworkPolicySpec
v1beta1NetworkPolicyMetadata :: Maybe V1ObjectMeta
v1beta1NetworkPolicyKind :: Maybe Text
v1beta1NetworkPolicyApiVersion :: Maybe Text
v1beta1NetworkPolicySpec :: V1beta1NetworkPolicy -> Maybe V1beta1NetworkPolicySpec
v1beta1NetworkPolicyMetadata :: V1beta1NetworkPolicy -> Maybe V1ObjectMeta
v1beta1NetworkPolicyKind :: V1beta1NetworkPolicy -> Maybe Text
v1beta1NetworkPolicyApiVersion :: V1beta1NetworkPolicy -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1NetworkPolicyApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1NetworkPolicyKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1NetworkPolicyMetadata
      , Text
"spec" Text -> Maybe V1beta1NetworkPolicySpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1NetworkPolicySpec
v1beta1NetworkPolicySpec
      ]


-- | Construct a value of type 'V1beta1NetworkPolicy' (by applying it's required fields, if any)
mkV1beta1NetworkPolicy
  :: V1beta1NetworkPolicy
mkV1beta1NetworkPolicy :: V1beta1NetworkPolicy
mkV1beta1NetworkPolicy =
  V1beta1NetworkPolicy :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1NetworkPolicySpec
-> V1beta1NetworkPolicy
V1beta1NetworkPolicy
  { v1beta1NetworkPolicyApiVersion :: Maybe Text
v1beta1NetworkPolicyApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1NetworkPolicyKind :: Maybe Text
v1beta1NetworkPolicyKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1NetworkPolicyMetadata :: Maybe V1ObjectMeta
v1beta1NetworkPolicyMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1NetworkPolicySpec :: Maybe V1beta1NetworkPolicySpec
v1beta1NetworkPolicySpec = Maybe V1beta1NetworkPolicySpec
forall a. Maybe a
Nothing
  }

-- ** V1beta1NetworkPolicyEgressRule
-- | V1beta1NetworkPolicyEgressRule
-- DEPRECATED 1.9 - This group version of NetworkPolicyEgressRule is deprecated by networking/v1/NetworkPolicyEgressRule. NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8
data V1beta1NetworkPolicyEgressRule = V1beta1NetworkPolicyEgressRule
  { V1beta1NetworkPolicyEgressRule -> Maybe [V1beta1NetworkPolicyPort]
v1beta1NetworkPolicyEgressRulePorts :: !(Maybe [V1beta1NetworkPolicyPort]) -- ^ "ports" - List of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.
  , V1beta1NetworkPolicyEgressRule -> Maybe [V1beta1NetworkPolicyPeer]
v1beta1NetworkPolicyEgressRuleTo :: !(Maybe [V1beta1NetworkPolicyPeer]) -- ^ "to" - List of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.
  } deriving (Int -> V1beta1NetworkPolicyEgressRule -> ShowS
[V1beta1NetworkPolicyEgressRule] -> ShowS
V1beta1NetworkPolicyEgressRule -> String
(Int -> V1beta1NetworkPolicyEgressRule -> ShowS)
-> (V1beta1NetworkPolicyEgressRule -> String)
-> ([V1beta1NetworkPolicyEgressRule] -> ShowS)
-> Show V1beta1NetworkPolicyEgressRule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1NetworkPolicyEgressRule] -> ShowS
$cshowList :: [V1beta1NetworkPolicyEgressRule] -> ShowS
show :: V1beta1NetworkPolicyEgressRule -> String
$cshow :: V1beta1NetworkPolicyEgressRule -> String
showsPrec :: Int -> V1beta1NetworkPolicyEgressRule -> ShowS
$cshowsPrec :: Int -> V1beta1NetworkPolicyEgressRule -> ShowS
P.Show, V1beta1NetworkPolicyEgressRule
-> V1beta1NetworkPolicyEgressRule -> Bool
(V1beta1NetworkPolicyEgressRule
 -> V1beta1NetworkPolicyEgressRule -> Bool)
-> (V1beta1NetworkPolicyEgressRule
    -> V1beta1NetworkPolicyEgressRule -> Bool)
-> Eq V1beta1NetworkPolicyEgressRule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1NetworkPolicyEgressRule
-> V1beta1NetworkPolicyEgressRule -> Bool
$c/= :: V1beta1NetworkPolicyEgressRule
-> V1beta1NetworkPolicyEgressRule -> Bool
== :: V1beta1NetworkPolicyEgressRule
-> V1beta1NetworkPolicyEgressRule -> Bool
$c== :: V1beta1NetworkPolicyEgressRule
-> V1beta1NetworkPolicyEgressRule -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1NetworkPolicyEgressRule
instance A.FromJSON V1beta1NetworkPolicyEgressRule where
  parseJSON :: Value -> Parser V1beta1NetworkPolicyEgressRule
parseJSON = String
-> (Object -> Parser V1beta1NetworkPolicyEgressRule)
-> Value
-> Parser V1beta1NetworkPolicyEgressRule
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1NetworkPolicyEgressRule" ((Object -> Parser V1beta1NetworkPolicyEgressRule)
 -> Value -> Parser V1beta1NetworkPolicyEgressRule)
-> (Object -> Parser V1beta1NetworkPolicyEgressRule)
-> Value
-> Parser V1beta1NetworkPolicyEgressRule
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1beta1NetworkPolicyPort]
-> Maybe [V1beta1NetworkPolicyPeer]
-> V1beta1NetworkPolicyEgressRule
V1beta1NetworkPolicyEgressRule
      (Maybe [V1beta1NetworkPolicyPort]
 -> Maybe [V1beta1NetworkPolicyPeer]
 -> V1beta1NetworkPolicyEgressRule)
-> Parser (Maybe [V1beta1NetworkPolicyPort])
-> Parser
     (Maybe [V1beta1NetworkPolicyPeer]
      -> V1beta1NetworkPolicyEgressRule)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1beta1NetworkPolicyPort])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ports")
      Parser
  (Maybe [V1beta1NetworkPolicyPeer]
   -> V1beta1NetworkPolicyEgressRule)
-> Parser (Maybe [V1beta1NetworkPolicyPeer])
-> Parser V1beta1NetworkPolicyEgressRule
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1NetworkPolicyPeer])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"to")

-- | ToJSON V1beta1NetworkPolicyEgressRule
instance A.ToJSON V1beta1NetworkPolicyEgressRule where
  toJSON :: V1beta1NetworkPolicyEgressRule -> Value
toJSON V1beta1NetworkPolicyEgressRule {Maybe [V1beta1NetworkPolicyPort]
Maybe [V1beta1NetworkPolicyPeer]
v1beta1NetworkPolicyEgressRuleTo :: Maybe [V1beta1NetworkPolicyPeer]
v1beta1NetworkPolicyEgressRulePorts :: Maybe [V1beta1NetworkPolicyPort]
v1beta1NetworkPolicyEgressRuleTo :: V1beta1NetworkPolicyEgressRule -> Maybe [V1beta1NetworkPolicyPeer]
v1beta1NetworkPolicyEgressRulePorts :: V1beta1NetworkPolicyEgressRule -> Maybe [V1beta1NetworkPolicyPort]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"ports" Text -> Maybe [V1beta1NetworkPolicyPort] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1NetworkPolicyPort]
v1beta1NetworkPolicyEgressRulePorts
      , Text
"to" Text -> Maybe [V1beta1NetworkPolicyPeer] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1NetworkPolicyPeer]
v1beta1NetworkPolicyEgressRuleTo
      ]


-- | Construct a value of type 'V1beta1NetworkPolicyEgressRule' (by applying it's required fields, if any)
mkV1beta1NetworkPolicyEgressRule
  :: V1beta1NetworkPolicyEgressRule
mkV1beta1NetworkPolicyEgressRule :: V1beta1NetworkPolicyEgressRule
mkV1beta1NetworkPolicyEgressRule =
  V1beta1NetworkPolicyEgressRule :: Maybe [V1beta1NetworkPolicyPort]
-> Maybe [V1beta1NetworkPolicyPeer]
-> V1beta1NetworkPolicyEgressRule
V1beta1NetworkPolicyEgressRule
  { v1beta1NetworkPolicyEgressRulePorts :: Maybe [V1beta1NetworkPolicyPort]
v1beta1NetworkPolicyEgressRulePorts = Maybe [V1beta1NetworkPolicyPort]
forall a. Maybe a
Nothing
  , v1beta1NetworkPolicyEgressRuleTo :: Maybe [V1beta1NetworkPolicyPeer]
v1beta1NetworkPolicyEgressRuleTo = Maybe [V1beta1NetworkPolicyPeer]
forall a. Maybe a
Nothing
  }

-- ** V1beta1NetworkPolicyIngressRule
-- | V1beta1NetworkPolicyIngressRule
-- DEPRECATED 1.9 - This group version of NetworkPolicyIngressRule is deprecated by networking/v1/NetworkPolicyIngressRule. This NetworkPolicyIngressRule matches traffic if and only if the traffic matches both ports AND from.
data V1beta1NetworkPolicyIngressRule = V1beta1NetworkPolicyIngressRule
  { V1beta1NetworkPolicyIngressRule -> Maybe [V1beta1NetworkPolicyPeer]
v1beta1NetworkPolicyIngressRuleFrom :: !(Maybe [V1beta1NetworkPolicyPeer]) -- ^ "from" - List of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the from list.
  , V1beta1NetworkPolicyIngressRule -> Maybe [V1beta1NetworkPolicyPort]
v1beta1NetworkPolicyIngressRulePorts :: !(Maybe [V1beta1NetworkPolicyPort]) -- ^ "ports" - List of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.
  } deriving (Int -> V1beta1NetworkPolicyIngressRule -> ShowS
[V1beta1NetworkPolicyIngressRule] -> ShowS
V1beta1NetworkPolicyIngressRule -> String
(Int -> V1beta1NetworkPolicyIngressRule -> ShowS)
-> (V1beta1NetworkPolicyIngressRule -> String)
-> ([V1beta1NetworkPolicyIngressRule] -> ShowS)
-> Show V1beta1NetworkPolicyIngressRule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1NetworkPolicyIngressRule] -> ShowS
$cshowList :: [V1beta1NetworkPolicyIngressRule] -> ShowS
show :: V1beta1NetworkPolicyIngressRule -> String
$cshow :: V1beta1NetworkPolicyIngressRule -> String
showsPrec :: Int -> V1beta1NetworkPolicyIngressRule -> ShowS
$cshowsPrec :: Int -> V1beta1NetworkPolicyIngressRule -> ShowS
P.Show, V1beta1NetworkPolicyIngressRule
-> V1beta1NetworkPolicyIngressRule -> Bool
(V1beta1NetworkPolicyIngressRule
 -> V1beta1NetworkPolicyIngressRule -> Bool)
-> (V1beta1NetworkPolicyIngressRule
    -> V1beta1NetworkPolicyIngressRule -> Bool)
-> Eq V1beta1NetworkPolicyIngressRule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1NetworkPolicyIngressRule
-> V1beta1NetworkPolicyIngressRule -> Bool
$c/= :: V1beta1NetworkPolicyIngressRule
-> V1beta1NetworkPolicyIngressRule -> Bool
== :: V1beta1NetworkPolicyIngressRule
-> V1beta1NetworkPolicyIngressRule -> Bool
$c== :: V1beta1NetworkPolicyIngressRule
-> V1beta1NetworkPolicyIngressRule -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1NetworkPolicyIngressRule
instance A.FromJSON V1beta1NetworkPolicyIngressRule where
  parseJSON :: Value -> Parser V1beta1NetworkPolicyIngressRule
parseJSON = String
-> (Object -> Parser V1beta1NetworkPolicyIngressRule)
-> Value
-> Parser V1beta1NetworkPolicyIngressRule
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1NetworkPolicyIngressRule" ((Object -> Parser V1beta1NetworkPolicyIngressRule)
 -> Value -> Parser V1beta1NetworkPolicyIngressRule)
-> (Object -> Parser V1beta1NetworkPolicyIngressRule)
-> Value
-> Parser V1beta1NetworkPolicyIngressRule
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1beta1NetworkPolicyPeer]
-> Maybe [V1beta1NetworkPolicyPort]
-> V1beta1NetworkPolicyIngressRule
V1beta1NetworkPolicyIngressRule
      (Maybe [V1beta1NetworkPolicyPeer]
 -> Maybe [V1beta1NetworkPolicyPort]
 -> V1beta1NetworkPolicyIngressRule)
-> Parser (Maybe [V1beta1NetworkPolicyPeer])
-> Parser
     (Maybe [V1beta1NetworkPolicyPort]
      -> V1beta1NetworkPolicyIngressRule)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1beta1NetworkPolicyPeer])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"from")
      Parser
  (Maybe [V1beta1NetworkPolicyPort]
   -> V1beta1NetworkPolicyIngressRule)
-> Parser (Maybe [V1beta1NetworkPolicyPort])
-> Parser V1beta1NetworkPolicyIngressRule
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1NetworkPolicyPort])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ports")

-- | ToJSON V1beta1NetworkPolicyIngressRule
instance A.ToJSON V1beta1NetworkPolicyIngressRule where
  toJSON :: V1beta1NetworkPolicyIngressRule -> Value
toJSON V1beta1NetworkPolicyIngressRule {Maybe [V1beta1NetworkPolicyPort]
Maybe [V1beta1NetworkPolicyPeer]
v1beta1NetworkPolicyIngressRulePorts :: Maybe [V1beta1NetworkPolicyPort]
v1beta1NetworkPolicyIngressRuleFrom :: Maybe [V1beta1NetworkPolicyPeer]
v1beta1NetworkPolicyIngressRulePorts :: V1beta1NetworkPolicyIngressRule -> Maybe [V1beta1NetworkPolicyPort]
v1beta1NetworkPolicyIngressRuleFrom :: V1beta1NetworkPolicyIngressRule -> Maybe [V1beta1NetworkPolicyPeer]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"from" Text -> Maybe [V1beta1NetworkPolicyPeer] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1NetworkPolicyPeer]
v1beta1NetworkPolicyIngressRuleFrom
      , Text
"ports" Text -> Maybe [V1beta1NetworkPolicyPort] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1NetworkPolicyPort]
v1beta1NetworkPolicyIngressRulePorts
      ]


-- | Construct a value of type 'V1beta1NetworkPolicyIngressRule' (by applying it's required fields, if any)
mkV1beta1NetworkPolicyIngressRule
  :: V1beta1NetworkPolicyIngressRule
mkV1beta1NetworkPolicyIngressRule :: V1beta1NetworkPolicyIngressRule
mkV1beta1NetworkPolicyIngressRule =
  V1beta1NetworkPolicyIngressRule :: Maybe [V1beta1NetworkPolicyPeer]
-> Maybe [V1beta1NetworkPolicyPort]
-> V1beta1NetworkPolicyIngressRule
V1beta1NetworkPolicyIngressRule
  { v1beta1NetworkPolicyIngressRuleFrom :: Maybe [V1beta1NetworkPolicyPeer]
v1beta1NetworkPolicyIngressRuleFrom = Maybe [V1beta1NetworkPolicyPeer]
forall a. Maybe a
Nothing
  , v1beta1NetworkPolicyIngressRulePorts :: Maybe [V1beta1NetworkPolicyPort]
v1beta1NetworkPolicyIngressRulePorts = Maybe [V1beta1NetworkPolicyPort]
forall a. Maybe a
Nothing
  }

-- ** V1beta1NetworkPolicyList
-- | V1beta1NetworkPolicyList
-- DEPRECATED 1.9 - This group version of NetworkPolicyList is deprecated by networking/v1/NetworkPolicyList. Network Policy List is a list of NetworkPolicy objects.
data V1beta1NetworkPolicyList = V1beta1NetworkPolicyList
  { V1beta1NetworkPolicyList -> Maybe Text
v1beta1NetworkPolicyListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1NetworkPolicyList -> [V1beta1NetworkPolicy]
v1beta1NetworkPolicyListItems :: !([V1beta1NetworkPolicy]) -- ^ /Required/ "items" - Items is a list of schema objects.
  , V1beta1NetworkPolicyList -> Maybe Text
v1beta1NetworkPolicyListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1NetworkPolicyList -> Maybe V1ListMeta
v1beta1NetworkPolicyListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1NetworkPolicyList -> ShowS
[V1beta1NetworkPolicyList] -> ShowS
V1beta1NetworkPolicyList -> String
(Int -> V1beta1NetworkPolicyList -> ShowS)
-> (V1beta1NetworkPolicyList -> String)
-> ([V1beta1NetworkPolicyList] -> ShowS)
-> Show V1beta1NetworkPolicyList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1NetworkPolicyList] -> ShowS
$cshowList :: [V1beta1NetworkPolicyList] -> ShowS
show :: V1beta1NetworkPolicyList -> String
$cshow :: V1beta1NetworkPolicyList -> String
showsPrec :: Int -> V1beta1NetworkPolicyList -> ShowS
$cshowsPrec :: Int -> V1beta1NetworkPolicyList -> ShowS
P.Show, V1beta1NetworkPolicyList -> V1beta1NetworkPolicyList -> Bool
(V1beta1NetworkPolicyList -> V1beta1NetworkPolicyList -> Bool)
-> (V1beta1NetworkPolicyList -> V1beta1NetworkPolicyList -> Bool)
-> Eq V1beta1NetworkPolicyList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1NetworkPolicyList -> V1beta1NetworkPolicyList -> Bool
$c/= :: V1beta1NetworkPolicyList -> V1beta1NetworkPolicyList -> Bool
== :: V1beta1NetworkPolicyList -> V1beta1NetworkPolicyList -> Bool
$c== :: V1beta1NetworkPolicyList -> V1beta1NetworkPolicyList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1NetworkPolicyList
instance A.FromJSON V1beta1NetworkPolicyList where
  parseJSON :: Value -> Parser V1beta1NetworkPolicyList
parseJSON = String
-> (Object -> Parser V1beta1NetworkPolicyList)
-> Value
-> Parser V1beta1NetworkPolicyList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1NetworkPolicyList" ((Object -> Parser V1beta1NetworkPolicyList)
 -> Value -> Parser V1beta1NetworkPolicyList)
-> (Object -> Parser V1beta1NetworkPolicyList)
-> Value
-> Parser V1beta1NetworkPolicyList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1NetworkPolicy]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1NetworkPolicyList
V1beta1NetworkPolicyList
      (Maybe Text
 -> [V1beta1NetworkPolicy]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1NetworkPolicyList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1NetworkPolicy]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1NetworkPolicyList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1NetworkPolicy]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1NetworkPolicyList)
-> Parser [V1beta1NetworkPolicy]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1beta1NetworkPolicyList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1NetworkPolicy]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1NetworkPolicyList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1NetworkPolicyList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1NetworkPolicyList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1NetworkPolicyList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1NetworkPolicyList
instance A.ToJSON V1beta1NetworkPolicyList where
  toJSON :: V1beta1NetworkPolicyList -> Value
toJSON V1beta1NetworkPolicyList {[V1beta1NetworkPolicy]
Maybe Text
Maybe V1ListMeta
v1beta1NetworkPolicyListMetadata :: Maybe V1ListMeta
v1beta1NetworkPolicyListKind :: Maybe Text
v1beta1NetworkPolicyListItems :: [V1beta1NetworkPolicy]
v1beta1NetworkPolicyListApiVersion :: Maybe Text
v1beta1NetworkPolicyListMetadata :: V1beta1NetworkPolicyList -> Maybe V1ListMeta
v1beta1NetworkPolicyListKind :: V1beta1NetworkPolicyList -> Maybe Text
v1beta1NetworkPolicyListItems :: V1beta1NetworkPolicyList -> [V1beta1NetworkPolicy]
v1beta1NetworkPolicyListApiVersion :: V1beta1NetworkPolicyList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1NetworkPolicyListApiVersion
      , Text
"items" Text -> [V1beta1NetworkPolicy] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1NetworkPolicy]
v1beta1NetworkPolicyListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1NetworkPolicyListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1NetworkPolicyListMetadata
      ]


-- | Construct a value of type 'V1beta1NetworkPolicyList' (by applying it's required fields, if any)
mkV1beta1NetworkPolicyList
  :: [V1beta1NetworkPolicy] -- ^ 'v1beta1NetworkPolicyListItems': Items is a list of schema objects.
  -> V1beta1NetworkPolicyList
mkV1beta1NetworkPolicyList :: [V1beta1NetworkPolicy] -> V1beta1NetworkPolicyList
mkV1beta1NetworkPolicyList [V1beta1NetworkPolicy]
v1beta1NetworkPolicyListItems =
  V1beta1NetworkPolicyList :: Maybe Text
-> [V1beta1NetworkPolicy]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1NetworkPolicyList
V1beta1NetworkPolicyList
  { v1beta1NetworkPolicyListApiVersion :: Maybe Text
v1beta1NetworkPolicyListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1NetworkPolicy]
v1beta1NetworkPolicyListItems :: [V1beta1NetworkPolicy]
v1beta1NetworkPolicyListItems :: [V1beta1NetworkPolicy]
v1beta1NetworkPolicyListItems
  , v1beta1NetworkPolicyListKind :: Maybe Text
v1beta1NetworkPolicyListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1NetworkPolicyListMetadata :: Maybe V1ListMeta
v1beta1NetworkPolicyListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1NetworkPolicyPeer
-- | V1beta1NetworkPolicyPeer
-- DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer.
data V1beta1NetworkPolicyPeer = V1beta1NetworkPolicyPeer
  { V1beta1NetworkPolicyPeer -> Maybe V1beta1IPBlock
v1beta1NetworkPolicyPeerIpBlock :: !(Maybe V1beta1IPBlock) -- ^ "ipBlock"
  , V1beta1NetworkPolicyPeer -> Maybe V1LabelSelector
v1beta1NetworkPolicyPeerNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"
  , V1beta1NetworkPolicyPeer -> Maybe V1LabelSelector
v1beta1NetworkPolicyPeerPodSelector :: !(Maybe V1LabelSelector) -- ^ "podSelector"
  } deriving (Int -> V1beta1NetworkPolicyPeer -> ShowS
[V1beta1NetworkPolicyPeer] -> ShowS
V1beta1NetworkPolicyPeer -> String
(Int -> V1beta1NetworkPolicyPeer -> ShowS)
-> (V1beta1NetworkPolicyPeer -> String)
-> ([V1beta1NetworkPolicyPeer] -> ShowS)
-> Show V1beta1NetworkPolicyPeer
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1NetworkPolicyPeer] -> ShowS
$cshowList :: [V1beta1NetworkPolicyPeer] -> ShowS
show :: V1beta1NetworkPolicyPeer -> String
$cshow :: V1beta1NetworkPolicyPeer -> String
showsPrec :: Int -> V1beta1NetworkPolicyPeer -> ShowS
$cshowsPrec :: Int -> V1beta1NetworkPolicyPeer -> ShowS
P.Show, V1beta1NetworkPolicyPeer -> V1beta1NetworkPolicyPeer -> Bool
(V1beta1NetworkPolicyPeer -> V1beta1NetworkPolicyPeer -> Bool)
-> (V1beta1NetworkPolicyPeer -> V1beta1NetworkPolicyPeer -> Bool)
-> Eq V1beta1NetworkPolicyPeer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1NetworkPolicyPeer -> V1beta1NetworkPolicyPeer -> Bool
$c/= :: V1beta1NetworkPolicyPeer -> V1beta1NetworkPolicyPeer -> Bool
== :: V1beta1NetworkPolicyPeer -> V1beta1NetworkPolicyPeer -> Bool
$c== :: V1beta1NetworkPolicyPeer -> V1beta1NetworkPolicyPeer -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1NetworkPolicyPeer
instance A.FromJSON V1beta1NetworkPolicyPeer where
  parseJSON :: Value -> Parser V1beta1NetworkPolicyPeer
parseJSON = String
-> (Object -> Parser V1beta1NetworkPolicyPeer)
-> Value
-> Parser V1beta1NetworkPolicyPeer
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1NetworkPolicyPeer" ((Object -> Parser V1beta1NetworkPolicyPeer)
 -> Value -> Parser V1beta1NetworkPolicyPeer)
-> (Object -> Parser V1beta1NetworkPolicyPeer)
-> Value
-> Parser V1beta1NetworkPolicyPeer
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1beta1IPBlock
-> Maybe V1LabelSelector
-> Maybe V1LabelSelector
-> V1beta1NetworkPolicyPeer
V1beta1NetworkPolicyPeer
      (Maybe V1beta1IPBlock
 -> Maybe V1LabelSelector
 -> Maybe V1LabelSelector
 -> V1beta1NetworkPolicyPeer)
-> Parser (Maybe V1beta1IPBlock)
-> Parser
     (Maybe V1LabelSelector
      -> Maybe V1LabelSelector -> V1beta1NetworkPolicyPeer)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1beta1IPBlock)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ipBlock")
      Parser
  (Maybe V1LabelSelector
   -> Maybe V1LabelSelector -> V1beta1NetworkPolicyPeer)
-> Parser (Maybe V1LabelSelector)
-> Parser (Maybe V1LabelSelector -> V1beta1NetworkPolicyPeer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespaceSelector")
      Parser (Maybe V1LabelSelector -> V1beta1NetworkPolicyPeer)
-> Parser (Maybe V1LabelSelector)
-> Parser V1beta1NetworkPolicyPeer
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"podSelector")

-- | ToJSON V1beta1NetworkPolicyPeer
instance A.ToJSON V1beta1NetworkPolicyPeer where
  toJSON :: V1beta1NetworkPolicyPeer -> Value
toJSON V1beta1NetworkPolicyPeer {Maybe V1beta1IPBlock
Maybe V1LabelSelector
v1beta1NetworkPolicyPeerPodSelector :: Maybe V1LabelSelector
v1beta1NetworkPolicyPeerNamespaceSelector :: Maybe V1LabelSelector
v1beta1NetworkPolicyPeerIpBlock :: Maybe V1beta1IPBlock
v1beta1NetworkPolicyPeerPodSelector :: V1beta1NetworkPolicyPeer -> Maybe V1LabelSelector
v1beta1NetworkPolicyPeerNamespaceSelector :: V1beta1NetworkPolicyPeer -> Maybe V1LabelSelector
v1beta1NetworkPolicyPeerIpBlock :: V1beta1NetworkPolicyPeer -> Maybe V1beta1IPBlock
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"ipBlock" Text -> Maybe V1beta1IPBlock -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1IPBlock
v1beta1NetworkPolicyPeerIpBlock
      , Text
"namespaceSelector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1beta1NetworkPolicyPeerNamespaceSelector
      , Text
"podSelector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1beta1NetworkPolicyPeerPodSelector
      ]


-- | Construct a value of type 'V1beta1NetworkPolicyPeer' (by applying it's required fields, if any)
mkV1beta1NetworkPolicyPeer
  :: V1beta1NetworkPolicyPeer
mkV1beta1NetworkPolicyPeer :: V1beta1NetworkPolicyPeer
mkV1beta1NetworkPolicyPeer =
  V1beta1NetworkPolicyPeer :: Maybe V1beta1IPBlock
-> Maybe V1LabelSelector
-> Maybe V1LabelSelector
-> V1beta1NetworkPolicyPeer
V1beta1NetworkPolicyPeer
  { v1beta1NetworkPolicyPeerIpBlock :: Maybe V1beta1IPBlock
v1beta1NetworkPolicyPeerIpBlock = Maybe V1beta1IPBlock
forall a. Maybe a
Nothing
  , v1beta1NetworkPolicyPeerNamespaceSelector :: Maybe V1LabelSelector
v1beta1NetworkPolicyPeerNamespaceSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , v1beta1NetworkPolicyPeerPodSelector :: Maybe V1LabelSelector
v1beta1NetworkPolicyPeerPodSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  }

-- ** V1beta1NetworkPolicyPort
-- | V1beta1NetworkPolicyPort
-- DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort.
data V1beta1NetworkPolicyPort = V1beta1NetworkPolicyPort
  { V1beta1NetworkPolicyPort -> Maybe IntOrString
v1beta1NetworkPolicyPortPort :: !(Maybe IntOrString) -- ^ "port"
  , V1beta1NetworkPolicyPort -> Maybe Text
v1beta1NetworkPolicyPortProtocol :: !(Maybe Text) -- ^ "protocol" - Optional.  The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.
  } deriving (Int -> V1beta1NetworkPolicyPort -> ShowS
[V1beta1NetworkPolicyPort] -> ShowS
V1beta1NetworkPolicyPort -> String
(Int -> V1beta1NetworkPolicyPort -> ShowS)
-> (V1beta1NetworkPolicyPort -> String)
-> ([V1beta1NetworkPolicyPort] -> ShowS)
-> Show V1beta1NetworkPolicyPort
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1NetworkPolicyPort] -> ShowS
$cshowList :: [V1beta1NetworkPolicyPort] -> ShowS
show :: V1beta1NetworkPolicyPort -> String
$cshow :: V1beta1NetworkPolicyPort -> String
showsPrec :: Int -> V1beta1NetworkPolicyPort -> ShowS
$cshowsPrec :: Int -> V1beta1NetworkPolicyPort -> ShowS
P.Show, V1beta1NetworkPolicyPort -> V1beta1NetworkPolicyPort -> Bool
(V1beta1NetworkPolicyPort -> V1beta1NetworkPolicyPort -> Bool)
-> (V1beta1NetworkPolicyPort -> V1beta1NetworkPolicyPort -> Bool)
-> Eq V1beta1NetworkPolicyPort
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1NetworkPolicyPort -> V1beta1NetworkPolicyPort -> Bool
$c/= :: V1beta1NetworkPolicyPort -> V1beta1NetworkPolicyPort -> Bool
== :: V1beta1NetworkPolicyPort -> V1beta1NetworkPolicyPort -> Bool
$c== :: V1beta1NetworkPolicyPort -> V1beta1NetworkPolicyPort -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1NetworkPolicyPort
instance A.FromJSON V1beta1NetworkPolicyPort where
  parseJSON :: Value -> Parser V1beta1NetworkPolicyPort
parseJSON = String
-> (Object -> Parser V1beta1NetworkPolicyPort)
-> Value
-> Parser V1beta1NetworkPolicyPort
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1NetworkPolicyPort" ((Object -> Parser V1beta1NetworkPolicyPort)
 -> Value -> Parser V1beta1NetworkPolicyPort)
-> (Object -> Parser V1beta1NetworkPolicyPort)
-> Value
-> Parser V1beta1NetworkPolicyPort
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe IntOrString -> Maybe Text -> V1beta1NetworkPolicyPort
V1beta1NetworkPolicyPort
      (Maybe IntOrString -> Maybe Text -> V1beta1NetworkPolicyPort)
-> Parser (Maybe IntOrString)
-> Parser (Maybe Text -> V1beta1NetworkPolicyPort)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe IntOrString)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"port")
      Parser (Maybe Text -> V1beta1NetworkPolicyPort)
-> Parser (Maybe Text) -> Parser V1beta1NetworkPolicyPort
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"protocol")

-- | ToJSON V1beta1NetworkPolicyPort
instance A.ToJSON V1beta1NetworkPolicyPort where
  toJSON :: V1beta1NetworkPolicyPort -> Value
toJSON V1beta1NetworkPolicyPort {Maybe Text
Maybe IntOrString
v1beta1NetworkPolicyPortProtocol :: Maybe Text
v1beta1NetworkPolicyPortPort :: Maybe IntOrString
v1beta1NetworkPolicyPortProtocol :: V1beta1NetworkPolicyPort -> Maybe Text
v1beta1NetworkPolicyPortPort :: V1beta1NetworkPolicyPort -> Maybe IntOrString
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"port" Text -> Maybe IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe IntOrString
v1beta1NetworkPolicyPortPort
      , Text
"protocol" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1NetworkPolicyPortProtocol
      ]


-- | Construct a value of type 'V1beta1NetworkPolicyPort' (by applying it's required fields, if any)
mkV1beta1NetworkPolicyPort
  :: V1beta1NetworkPolicyPort
mkV1beta1NetworkPolicyPort :: V1beta1NetworkPolicyPort
mkV1beta1NetworkPolicyPort =
  V1beta1NetworkPolicyPort :: Maybe IntOrString -> Maybe Text -> V1beta1NetworkPolicyPort
V1beta1NetworkPolicyPort
  { v1beta1NetworkPolicyPortPort :: Maybe IntOrString
v1beta1NetworkPolicyPortPort = Maybe IntOrString
forall a. Maybe a
Nothing
  , v1beta1NetworkPolicyPortProtocol :: Maybe Text
v1beta1NetworkPolicyPortProtocol = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1NetworkPolicySpec
-- | V1beta1NetworkPolicySpec
-- DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec.
data V1beta1NetworkPolicySpec = V1beta1NetworkPolicySpec
  { V1beta1NetworkPolicySpec -> Maybe [V1beta1NetworkPolicyEgressRule]
v1beta1NetworkPolicySpecEgress :: !(Maybe [V1beta1NetworkPolicyEgressRule]) -- ^ "egress" - List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8
  , V1beta1NetworkPolicySpec -> Maybe [V1beta1NetworkPolicyIngressRule]
v1beta1NetworkPolicySpecIngress :: !(Maybe [V1beta1NetworkPolicyIngressRule]) -- ^ "ingress" - List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod OR if the traffic source is the pod&#39;s local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default).
  , V1beta1NetworkPolicySpec -> V1LabelSelector
v1beta1NetworkPolicySpecPodSelector :: !(V1LabelSelector) -- ^ /Required/ "podSelector"
  , V1beta1NetworkPolicySpec -> Maybe [Text]
v1beta1NetworkPolicySpecPolicyTypes :: !(Maybe [Text]) -- ^ "policyTypes" - List of rule types that the NetworkPolicy relates to. Valid options are \&quot;Ingress\&quot;, \&quot;Egress\&quot;, or \&quot;Ingress,Egress\&quot;. If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \&quot;Egress\&quot; ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \&quot;Egress\&quot; (since such a policy would not include an Egress section and would otherwise default to just [ \&quot;Ingress\&quot; ]). This field is beta-level in 1.8
  } deriving (Int -> V1beta1NetworkPolicySpec -> ShowS
[V1beta1NetworkPolicySpec] -> ShowS
V1beta1NetworkPolicySpec -> String
(Int -> V1beta1NetworkPolicySpec -> ShowS)
-> (V1beta1NetworkPolicySpec -> String)
-> ([V1beta1NetworkPolicySpec] -> ShowS)
-> Show V1beta1NetworkPolicySpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1NetworkPolicySpec] -> ShowS
$cshowList :: [V1beta1NetworkPolicySpec] -> ShowS
show :: V1beta1NetworkPolicySpec -> String
$cshow :: V1beta1NetworkPolicySpec -> String
showsPrec :: Int -> V1beta1NetworkPolicySpec -> ShowS
$cshowsPrec :: Int -> V1beta1NetworkPolicySpec -> ShowS
P.Show, V1beta1NetworkPolicySpec -> V1beta1NetworkPolicySpec -> Bool
(V1beta1NetworkPolicySpec -> V1beta1NetworkPolicySpec -> Bool)
-> (V1beta1NetworkPolicySpec -> V1beta1NetworkPolicySpec -> Bool)
-> Eq V1beta1NetworkPolicySpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1NetworkPolicySpec -> V1beta1NetworkPolicySpec -> Bool
$c/= :: V1beta1NetworkPolicySpec -> V1beta1NetworkPolicySpec -> Bool
== :: V1beta1NetworkPolicySpec -> V1beta1NetworkPolicySpec -> Bool
$c== :: V1beta1NetworkPolicySpec -> V1beta1NetworkPolicySpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1NetworkPolicySpec
instance A.FromJSON V1beta1NetworkPolicySpec where
  parseJSON :: Value -> Parser V1beta1NetworkPolicySpec
parseJSON = String
-> (Object -> Parser V1beta1NetworkPolicySpec)
-> Value
-> Parser V1beta1NetworkPolicySpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1NetworkPolicySpec" ((Object -> Parser V1beta1NetworkPolicySpec)
 -> Value -> Parser V1beta1NetworkPolicySpec)
-> (Object -> Parser V1beta1NetworkPolicySpec)
-> Value
-> Parser V1beta1NetworkPolicySpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1beta1NetworkPolicyEgressRule]
-> Maybe [V1beta1NetworkPolicyIngressRule]
-> V1LabelSelector
-> Maybe [Text]
-> V1beta1NetworkPolicySpec
V1beta1NetworkPolicySpec
      (Maybe [V1beta1NetworkPolicyEgressRule]
 -> Maybe [V1beta1NetworkPolicyIngressRule]
 -> V1LabelSelector
 -> Maybe [Text]
 -> V1beta1NetworkPolicySpec)
-> Parser (Maybe [V1beta1NetworkPolicyEgressRule])
-> Parser
     (Maybe [V1beta1NetworkPolicyIngressRule]
      -> V1LabelSelector -> Maybe [Text] -> V1beta1NetworkPolicySpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1beta1NetworkPolicyEgressRule])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"egress")
      Parser
  (Maybe [V1beta1NetworkPolicyIngressRule]
   -> V1LabelSelector -> Maybe [Text] -> V1beta1NetworkPolicySpec)
-> Parser (Maybe [V1beta1NetworkPolicyIngressRule])
-> Parser
     (V1LabelSelector -> Maybe [Text] -> V1beta1NetworkPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1NetworkPolicyIngressRule])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"ingress")
      Parser
  (V1LabelSelector -> Maybe [Text] -> V1beta1NetworkPolicySpec)
-> Parser V1LabelSelector
-> Parser (Maybe [Text] -> V1beta1NetworkPolicySpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1LabelSelector
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"podSelector")
      Parser (Maybe [Text] -> V1beta1NetworkPolicySpec)
-> Parser (Maybe [Text]) -> Parser V1beta1NetworkPolicySpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"policyTypes")

-- | ToJSON V1beta1NetworkPolicySpec
instance A.ToJSON V1beta1NetworkPolicySpec where
  toJSON :: V1beta1NetworkPolicySpec -> Value
toJSON V1beta1NetworkPolicySpec {Maybe [Text]
Maybe [V1beta1NetworkPolicyIngressRule]
Maybe [V1beta1NetworkPolicyEgressRule]
V1LabelSelector
v1beta1NetworkPolicySpecPolicyTypes :: Maybe [Text]
v1beta1NetworkPolicySpecPodSelector :: V1LabelSelector
v1beta1NetworkPolicySpecIngress :: Maybe [V1beta1NetworkPolicyIngressRule]
v1beta1NetworkPolicySpecEgress :: Maybe [V1beta1NetworkPolicyEgressRule]
v1beta1NetworkPolicySpecPolicyTypes :: V1beta1NetworkPolicySpec -> Maybe [Text]
v1beta1NetworkPolicySpecPodSelector :: V1beta1NetworkPolicySpec -> V1LabelSelector
v1beta1NetworkPolicySpecIngress :: V1beta1NetworkPolicySpec -> Maybe [V1beta1NetworkPolicyIngressRule]
v1beta1NetworkPolicySpecEgress :: V1beta1NetworkPolicySpec -> Maybe [V1beta1NetworkPolicyEgressRule]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"egress" Text -> Maybe [V1beta1NetworkPolicyEgressRule] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1NetworkPolicyEgressRule]
v1beta1NetworkPolicySpecEgress
      , Text
"ingress" Text -> Maybe [V1beta1NetworkPolicyIngressRule] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1NetworkPolicyIngressRule]
v1beta1NetworkPolicySpecIngress
      , Text
"podSelector" Text -> V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1LabelSelector
v1beta1NetworkPolicySpecPodSelector
      , Text
"policyTypes" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1NetworkPolicySpecPolicyTypes
      ]


-- | Construct a value of type 'V1beta1NetworkPolicySpec' (by applying it's required fields, if any)
mkV1beta1NetworkPolicySpec
  :: V1LabelSelector -- ^ 'v1beta1NetworkPolicySpecPodSelector' 
  -> V1beta1NetworkPolicySpec
mkV1beta1NetworkPolicySpec :: V1LabelSelector -> V1beta1NetworkPolicySpec
mkV1beta1NetworkPolicySpec V1LabelSelector
v1beta1NetworkPolicySpecPodSelector =
  V1beta1NetworkPolicySpec :: Maybe [V1beta1NetworkPolicyEgressRule]
-> Maybe [V1beta1NetworkPolicyIngressRule]
-> V1LabelSelector
-> Maybe [Text]
-> V1beta1NetworkPolicySpec
V1beta1NetworkPolicySpec
  { v1beta1NetworkPolicySpecEgress :: Maybe [V1beta1NetworkPolicyEgressRule]
v1beta1NetworkPolicySpecEgress = Maybe [V1beta1NetworkPolicyEgressRule]
forall a. Maybe a
Nothing
  , v1beta1NetworkPolicySpecIngress :: Maybe [V1beta1NetworkPolicyIngressRule]
v1beta1NetworkPolicySpecIngress = Maybe [V1beta1NetworkPolicyIngressRule]
forall a. Maybe a
Nothing
  , V1LabelSelector
v1beta1NetworkPolicySpecPodSelector :: V1LabelSelector
v1beta1NetworkPolicySpecPodSelector :: V1LabelSelector
v1beta1NetworkPolicySpecPodSelector
  , v1beta1NetworkPolicySpecPolicyTypes :: Maybe [Text]
v1beta1NetworkPolicySpecPolicyTypes = Maybe [Text]
forall a. Maybe a
Nothing
  }

-- ** V1beta1NonResourceAttributes
-- | V1beta1NonResourceAttributes
-- NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface
data V1beta1NonResourceAttributes = V1beta1NonResourceAttributes
  { V1beta1NonResourceAttributes -> Maybe Text
v1beta1NonResourceAttributesPath :: !(Maybe Text) -- ^ "path" - Path is the URL path of the request
  , V1beta1NonResourceAttributes -> Maybe Text
v1beta1NonResourceAttributesVerb :: !(Maybe Text) -- ^ "verb" - Verb is the standard HTTP verb
  } deriving (Int -> V1beta1NonResourceAttributes -> ShowS
[V1beta1NonResourceAttributes] -> ShowS
V1beta1NonResourceAttributes -> String
(Int -> V1beta1NonResourceAttributes -> ShowS)
-> (V1beta1NonResourceAttributes -> String)
-> ([V1beta1NonResourceAttributes] -> ShowS)
-> Show V1beta1NonResourceAttributes
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1NonResourceAttributes] -> ShowS
$cshowList :: [V1beta1NonResourceAttributes] -> ShowS
show :: V1beta1NonResourceAttributes -> String
$cshow :: V1beta1NonResourceAttributes -> String
showsPrec :: Int -> V1beta1NonResourceAttributes -> ShowS
$cshowsPrec :: Int -> V1beta1NonResourceAttributes -> ShowS
P.Show, V1beta1NonResourceAttributes
-> V1beta1NonResourceAttributes -> Bool
(V1beta1NonResourceAttributes
 -> V1beta1NonResourceAttributes -> Bool)
-> (V1beta1NonResourceAttributes
    -> V1beta1NonResourceAttributes -> Bool)
-> Eq V1beta1NonResourceAttributes
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1NonResourceAttributes
-> V1beta1NonResourceAttributes -> Bool
$c/= :: V1beta1NonResourceAttributes
-> V1beta1NonResourceAttributes -> Bool
== :: V1beta1NonResourceAttributes
-> V1beta1NonResourceAttributes -> Bool
$c== :: V1beta1NonResourceAttributes
-> V1beta1NonResourceAttributes -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1NonResourceAttributes
instance A.FromJSON V1beta1NonResourceAttributes where
  parseJSON :: Value -> Parser V1beta1NonResourceAttributes
parseJSON = String
-> (Object -> Parser V1beta1NonResourceAttributes)
-> Value
-> Parser V1beta1NonResourceAttributes
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1NonResourceAttributes" ((Object -> Parser V1beta1NonResourceAttributes)
 -> Value -> Parser V1beta1NonResourceAttributes)
-> (Object -> Parser V1beta1NonResourceAttributes)
-> Value
-> Parser V1beta1NonResourceAttributes
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe Text -> V1beta1NonResourceAttributes
V1beta1NonResourceAttributes
      (Maybe Text -> Maybe Text -> V1beta1NonResourceAttributes)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1beta1NonResourceAttributes)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"path")
      Parser (Maybe Text -> V1beta1NonResourceAttributes)
-> Parser (Maybe Text) -> Parser V1beta1NonResourceAttributes
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"verb")

-- | ToJSON V1beta1NonResourceAttributes
instance A.ToJSON V1beta1NonResourceAttributes where
  toJSON :: V1beta1NonResourceAttributes -> Value
toJSON V1beta1NonResourceAttributes {Maybe Text
v1beta1NonResourceAttributesVerb :: Maybe Text
v1beta1NonResourceAttributesPath :: Maybe Text
v1beta1NonResourceAttributesVerb :: V1beta1NonResourceAttributes -> Maybe Text
v1beta1NonResourceAttributesPath :: V1beta1NonResourceAttributes -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"path" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1NonResourceAttributesPath
      , Text
"verb" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1NonResourceAttributesVerb
      ]


-- | Construct a value of type 'V1beta1NonResourceAttributes' (by applying it's required fields, if any)
mkV1beta1NonResourceAttributes
  :: V1beta1NonResourceAttributes
mkV1beta1NonResourceAttributes :: V1beta1NonResourceAttributes
mkV1beta1NonResourceAttributes =
  V1beta1NonResourceAttributes :: Maybe Text -> Maybe Text -> V1beta1NonResourceAttributes
V1beta1NonResourceAttributes
  { v1beta1NonResourceAttributesPath :: Maybe Text
v1beta1NonResourceAttributesPath = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1NonResourceAttributesVerb :: Maybe Text
v1beta1NonResourceAttributesVerb = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1NonResourceRule
-- | V1beta1NonResourceRule
-- NonResourceRule holds information that describes a rule for the non-resource
data V1beta1NonResourceRule = V1beta1NonResourceRule
  { V1beta1NonResourceRule -> Maybe [Text]
v1beta1NonResourceRuleNonResourceUrLs :: !(Maybe [Text]) -- ^ "nonResourceURLs" - NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path.  \&quot;*\&quot; means all.
  , V1beta1NonResourceRule -> [Text]
v1beta1NonResourceRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \&quot;*\&quot; means all.
  } deriving (Int -> V1beta1NonResourceRule -> ShowS
[V1beta1NonResourceRule] -> ShowS
V1beta1NonResourceRule -> String
(Int -> V1beta1NonResourceRule -> ShowS)
-> (V1beta1NonResourceRule -> String)
-> ([V1beta1NonResourceRule] -> ShowS)
-> Show V1beta1NonResourceRule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1NonResourceRule] -> ShowS
$cshowList :: [V1beta1NonResourceRule] -> ShowS
show :: V1beta1NonResourceRule -> String
$cshow :: V1beta1NonResourceRule -> String
showsPrec :: Int -> V1beta1NonResourceRule -> ShowS
$cshowsPrec :: Int -> V1beta1NonResourceRule -> ShowS
P.Show, V1beta1NonResourceRule -> V1beta1NonResourceRule -> Bool
(V1beta1NonResourceRule -> V1beta1NonResourceRule -> Bool)
-> (V1beta1NonResourceRule -> V1beta1NonResourceRule -> Bool)
-> Eq V1beta1NonResourceRule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1NonResourceRule -> V1beta1NonResourceRule -> Bool
$c/= :: V1beta1NonResourceRule -> V1beta1NonResourceRule -> Bool
== :: V1beta1NonResourceRule -> V1beta1NonResourceRule -> Bool
$c== :: V1beta1NonResourceRule -> V1beta1NonResourceRule -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1NonResourceRule
instance A.FromJSON V1beta1NonResourceRule where
  parseJSON :: Value -> Parser V1beta1NonResourceRule
parseJSON = String
-> (Object -> Parser V1beta1NonResourceRule)
-> Value
-> Parser V1beta1NonResourceRule
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1NonResourceRule" ((Object -> Parser V1beta1NonResourceRule)
 -> Value -> Parser V1beta1NonResourceRule)
-> (Object -> Parser V1beta1NonResourceRule)
-> Value
-> Parser V1beta1NonResourceRule
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text] -> [Text] -> V1beta1NonResourceRule
V1beta1NonResourceRule
      (Maybe [Text] -> [Text] -> V1beta1NonResourceRule)
-> Parser (Maybe [Text])
-> Parser ([Text] -> V1beta1NonResourceRule)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nonResourceURLs")
      Parser ([Text] -> V1beta1NonResourceRule)
-> Parser [Text] -> Parser V1beta1NonResourceRule
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"verbs")

-- | ToJSON V1beta1NonResourceRule
instance A.ToJSON V1beta1NonResourceRule where
  toJSON :: V1beta1NonResourceRule -> Value
toJSON V1beta1NonResourceRule {[Text]
Maybe [Text]
v1beta1NonResourceRuleVerbs :: [Text]
v1beta1NonResourceRuleNonResourceUrLs :: Maybe [Text]
v1beta1NonResourceRuleVerbs :: V1beta1NonResourceRule -> [Text]
v1beta1NonResourceRuleNonResourceUrLs :: V1beta1NonResourceRule -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"nonResourceURLs" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1NonResourceRuleNonResourceUrLs
      , Text
"verbs" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1beta1NonResourceRuleVerbs
      ]


-- | Construct a value of type 'V1beta1NonResourceRule' (by applying it's required fields, if any)
mkV1beta1NonResourceRule
  :: [Text] -- ^ 'v1beta1NonResourceRuleVerbs': Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \"*\" means all.
  -> V1beta1NonResourceRule
mkV1beta1NonResourceRule :: [Text] -> V1beta1NonResourceRule
mkV1beta1NonResourceRule [Text]
v1beta1NonResourceRuleVerbs =
  V1beta1NonResourceRule :: Maybe [Text] -> [Text] -> V1beta1NonResourceRule
V1beta1NonResourceRule
  { v1beta1NonResourceRuleNonResourceUrLs :: Maybe [Text]
v1beta1NonResourceRuleNonResourceUrLs = Maybe [Text]
forall a. Maybe a
Nothing
  , [Text]
v1beta1NonResourceRuleVerbs :: [Text]
v1beta1NonResourceRuleVerbs :: [Text]
v1beta1NonResourceRuleVerbs
  }

-- ** V1beta1Overhead
-- | V1beta1Overhead
-- Overhead structure represents the resource overhead associated with running a pod.
data V1beta1Overhead = V1beta1Overhead
  { V1beta1Overhead -> Maybe (Map String Quantity)
v1beta1OverheadPodFixed :: !(Maybe (Map.Map String Quantity)) -- ^ "podFixed" - PodFixed represents the fixed resource overhead associated with running a pod.
  } deriving (Int -> V1beta1Overhead -> ShowS
[V1beta1Overhead] -> ShowS
V1beta1Overhead -> String
(Int -> V1beta1Overhead -> ShowS)
-> (V1beta1Overhead -> String)
-> ([V1beta1Overhead] -> ShowS)
-> Show V1beta1Overhead
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1Overhead] -> ShowS
$cshowList :: [V1beta1Overhead] -> ShowS
show :: V1beta1Overhead -> String
$cshow :: V1beta1Overhead -> String
showsPrec :: Int -> V1beta1Overhead -> ShowS
$cshowsPrec :: Int -> V1beta1Overhead -> ShowS
P.Show, V1beta1Overhead -> V1beta1Overhead -> Bool
(V1beta1Overhead -> V1beta1Overhead -> Bool)
-> (V1beta1Overhead -> V1beta1Overhead -> Bool)
-> Eq V1beta1Overhead
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1Overhead -> V1beta1Overhead -> Bool
$c/= :: V1beta1Overhead -> V1beta1Overhead -> Bool
== :: V1beta1Overhead -> V1beta1Overhead -> Bool
$c== :: V1beta1Overhead -> V1beta1Overhead -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1Overhead
instance A.FromJSON V1beta1Overhead where
  parseJSON :: Value -> Parser V1beta1Overhead
parseJSON = String
-> (Object -> Parser V1beta1Overhead)
-> Value
-> Parser V1beta1Overhead
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1Overhead" ((Object -> Parser V1beta1Overhead)
 -> Value -> Parser V1beta1Overhead)
-> (Object -> Parser V1beta1Overhead)
-> Value
-> Parser V1beta1Overhead
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe (Map String Quantity) -> V1beta1Overhead
V1beta1Overhead
      (Maybe (Map String Quantity) -> V1beta1Overhead)
-> Parser (Maybe (Map String Quantity)) -> Parser V1beta1Overhead
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe (Map String Quantity))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"podFixed")

-- | ToJSON V1beta1Overhead
instance A.ToJSON V1beta1Overhead where
  toJSON :: V1beta1Overhead -> Value
toJSON V1beta1Overhead {Maybe (Map String Quantity)
v1beta1OverheadPodFixed :: Maybe (Map String Quantity)
v1beta1OverheadPodFixed :: V1beta1Overhead -> Maybe (Map String Quantity)
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"podFixed" Text -> Maybe (Map String Quantity) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Quantity)
v1beta1OverheadPodFixed
      ]


-- | Construct a value of type 'V1beta1Overhead' (by applying it's required fields, if any)
mkV1beta1Overhead
  :: V1beta1Overhead
mkV1beta1Overhead :: V1beta1Overhead
mkV1beta1Overhead =
  V1beta1Overhead :: Maybe (Map String Quantity) -> V1beta1Overhead
V1beta1Overhead
  { v1beta1OverheadPodFixed :: Maybe (Map String Quantity)
v1beta1OverheadPodFixed = Maybe (Map String Quantity)
forall a. Maybe a
Nothing
  }

-- ** V1beta1PodDisruptionBudget
-- | V1beta1PodDisruptionBudget
-- PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods
data V1beta1PodDisruptionBudget = V1beta1PodDisruptionBudget
  { V1beta1PodDisruptionBudget -> Maybe Text
v1beta1PodDisruptionBudgetApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1PodDisruptionBudget -> Maybe Text
v1beta1PodDisruptionBudgetKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1PodDisruptionBudget -> Maybe V1ObjectMeta
v1beta1PodDisruptionBudgetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1PodDisruptionBudget -> Maybe V1beta1PodDisruptionBudgetSpec
v1beta1PodDisruptionBudgetSpec :: !(Maybe V1beta1PodDisruptionBudgetSpec) -- ^ "spec"
  , V1beta1PodDisruptionBudget
-> Maybe V1beta1PodDisruptionBudgetStatus
v1beta1PodDisruptionBudgetStatus :: !(Maybe V1beta1PodDisruptionBudgetStatus) -- ^ "status"
  } deriving (Int -> V1beta1PodDisruptionBudget -> ShowS
[V1beta1PodDisruptionBudget] -> ShowS
V1beta1PodDisruptionBudget -> String
(Int -> V1beta1PodDisruptionBudget -> ShowS)
-> (V1beta1PodDisruptionBudget -> String)
-> ([V1beta1PodDisruptionBudget] -> ShowS)
-> Show V1beta1PodDisruptionBudget
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1PodDisruptionBudget] -> ShowS
$cshowList :: [V1beta1PodDisruptionBudget] -> ShowS
show :: V1beta1PodDisruptionBudget -> String
$cshow :: V1beta1PodDisruptionBudget -> String
showsPrec :: Int -> V1beta1PodDisruptionBudget -> ShowS
$cshowsPrec :: Int -> V1beta1PodDisruptionBudget -> ShowS
P.Show, V1beta1PodDisruptionBudget -> V1beta1PodDisruptionBudget -> Bool
(V1beta1PodDisruptionBudget -> V1beta1PodDisruptionBudget -> Bool)
-> (V1beta1PodDisruptionBudget
    -> V1beta1PodDisruptionBudget -> Bool)
-> Eq V1beta1PodDisruptionBudget
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1PodDisruptionBudget -> V1beta1PodDisruptionBudget -> Bool
$c/= :: V1beta1PodDisruptionBudget -> V1beta1PodDisruptionBudget -> Bool
== :: V1beta1PodDisruptionBudget -> V1beta1PodDisruptionBudget -> Bool
$c== :: V1beta1PodDisruptionBudget -> V1beta1PodDisruptionBudget -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1PodDisruptionBudget
instance A.FromJSON V1beta1PodDisruptionBudget where
  parseJSON :: Value -> Parser V1beta1PodDisruptionBudget
parseJSON = String
-> (Object -> Parser V1beta1PodDisruptionBudget)
-> Value
-> Parser V1beta1PodDisruptionBudget
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1PodDisruptionBudget" ((Object -> Parser V1beta1PodDisruptionBudget)
 -> Value -> Parser V1beta1PodDisruptionBudget)
-> (Object -> Parser V1beta1PodDisruptionBudget)
-> Value
-> Parser V1beta1PodDisruptionBudget
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1PodDisruptionBudgetSpec
-> Maybe V1beta1PodDisruptionBudgetStatus
-> V1beta1PodDisruptionBudget
V1beta1PodDisruptionBudget
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1beta1PodDisruptionBudgetSpec
 -> Maybe V1beta1PodDisruptionBudgetStatus
 -> V1beta1PodDisruptionBudget)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1beta1PodDisruptionBudgetSpec
      -> Maybe V1beta1PodDisruptionBudgetStatus
      -> V1beta1PodDisruptionBudget)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1beta1PodDisruptionBudgetSpec
   -> Maybe V1beta1PodDisruptionBudgetStatus
   -> V1beta1PodDisruptionBudget)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1beta1PodDisruptionBudgetSpec
      -> Maybe V1beta1PodDisruptionBudgetStatus
      -> V1beta1PodDisruptionBudget)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1beta1PodDisruptionBudgetSpec
   -> Maybe V1beta1PodDisruptionBudgetStatus
   -> V1beta1PodDisruptionBudget)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1beta1PodDisruptionBudgetSpec
      -> Maybe V1beta1PodDisruptionBudgetStatus
      -> V1beta1PodDisruptionBudget)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1beta1PodDisruptionBudgetSpec
   -> Maybe V1beta1PodDisruptionBudgetStatus
   -> V1beta1PodDisruptionBudget)
-> Parser (Maybe V1beta1PodDisruptionBudgetSpec)
-> Parser
     (Maybe V1beta1PodDisruptionBudgetStatus
      -> V1beta1PodDisruptionBudget)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1PodDisruptionBudgetSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser
  (Maybe V1beta1PodDisruptionBudgetStatus
   -> V1beta1PodDisruptionBudget)
-> Parser (Maybe V1beta1PodDisruptionBudgetStatus)
-> Parser V1beta1PodDisruptionBudget
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1PodDisruptionBudgetStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta1PodDisruptionBudget
instance A.ToJSON V1beta1PodDisruptionBudget where
  toJSON :: V1beta1PodDisruptionBudget -> Value
toJSON V1beta1PodDisruptionBudget {Maybe Text
Maybe V1beta1PodDisruptionBudgetStatus
Maybe V1beta1PodDisruptionBudgetSpec
Maybe V1ObjectMeta
v1beta1PodDisruptionBudgetStatus :: Maybe V1beta1PodDisruptionBudgetStatus
v1beta1PodDisruptionBudgetSpec :: Maybe V1beta1PodDisruptionBudgetSpec
v1beta1PodDisruptionBudgetMetadata :: Maybe V1ObjectMeta
v1beta1PodDisruptionBudgetKind :: Maybe Text
v1beta1PodDisruptionBudgetApiVersion :: Maybe Text
v1beta1PodDisruptionBudgetStatus :: V1beta1PodDisruptionBudget
-> Maybe V1beta1PodDisruptionBudgetStatus
v1beta1PodDisruptionBudgetSpec :: V1beta1PodDisruptionBudget -> Maybe V1beta1PodDisruptionBudgetSpec
v1beta1PodDisruptionBudgetMetadata :: V1beta1PodDisruptionBudget -> Maybe V1ObjectMeta
v1beta1PodDisruptionBudgetKind :: V1beta1PodDisruptionBudget -> Maybe Text
v1beta1PodDisruptionBudgetApiVersion :: V1beta1PodDisruptionBudget -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1PodDisruptionBudgetApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1PodDisruptionBudgetKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1PodDisruptionBudgetMetadata
      , Text
"spec" Text -> Maybe V1beta1PodDisruptionBudgetSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1PodDisruptionBudgetSpec
v1beta1PodDisruptionBudgetSpec
      , Text
"status" Text -> Maybe V1beta1PodDisruptionBudgetStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1PodDisruptionBudgetStatus
v1beta1PodDisruptionBudgetStatus
      ]


-- | Construct a value of type 'V1beta1PodDisruptionBudget' (by applying it's required fields, if any)
mkV1beta1PodDisruptionBudget
  :: V1beta1PodDisruptionBudget
mkV1beta1PodDisruptionBudget :: V1beta1PodDisruptionBudget
mkV1beta1PodDisruptionBudget =
  V1beta1PodDisruptionBudget :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1PodDisruptionBudgetSpec
-> Maybe V1beta1PodDisruptionBudgetStatus
-> V1beta1PodDisruptionBudget
V1beta1PodDisruptionBudget
  { v1beta1PodDisruptionBudgetApiVersion :: Maybe Text
v1beta1PodDisruptionBudgetApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1PodDisruptionBudgetKind :: Maybe Text
v1beta1PodDisruptionBudgetKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1PodDisruptionBudgetMetadata :: Maybe V1ObjectMeta
v1beta1PodDisruptionBudgetMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1PodDisruptionBudgetSpec :: Maybe V1beta1PodDisruptionBudgetSpec
v1beta1PodDisruptionBudgetSpec = Maybe V1beta1PodDisruptionBudgetSpec
forall a. Maybe a
Nothing
  , v1beta1PodDisruptionBudgetStatus :: Maybe V1beta1PodDisruptionBudgetStatus
v1beta1PodDisruptionBudgetStatus = Maybe V1beta1PodDisruptionBudgetStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta1PodDisruptionBudgetList
-- | V1beta1PodDisruptionBudgetList
-- PodDisruptionBudgetList is a collection of PodDisruptionBudgets.
data V1beta1PodDisruptionBudgetList = V1beta1PodDisruptionBudgetList
  { V1beta1PodDisruptionBudgetList -> Maybe Text
v1beta1PodDisruptionBudgetListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1PodDisruptionBudgetList -> [V1beta1PodDisruptionBudget]
v1beta1PodDisruptionBudgetListItems :: !([V1beta1PodDisruptionBudget]) -- ^ /Required/ "items"
  , V1beta1PodDisruptionBudgetList -> Maybe Text
v1beta1PodDisruptionBudgetListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1PodDisruptionBudgetList -> Maybe V1ListMeta
v1beta1PodDisruptionBudgetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1PodDisruptionBudgetList -> ShowS
[V1beta1PodDisruptionBudgetList] -> ShowS
V1beta1PodDisruptionBudgetList -> String
(Int -> V1beta1PodDisruptionBudgetList -> ShowS)
-> (V1beta1PodDisruptionBudgetList -> String)
-> ([V1beta1PodDisruptionBudgetList] -> ShowS)
-> Show V1beta1PodDisruptionBudgetList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1PodDisruptionBudgetList] -> ShowS
$cshowList :: [V1beta1PodDisruptionBudgetList] -> ShowS
show :: V1beta1PodDisruptionBudgetList -> String
$cshow :: V1beta1PodDisruptionBudgetList -> String
showsPrec :: Int -> V1beta1PodDisruptionBudgetList -> ShowS
$cshowsPrec :: Int -> V1beta1PodDisruptionBudgetList -> ShowS
P.Show, V1beta1PodDisruptionBudgetList
-> V1beta1PodDisruptionBudgetList -> Bool
(V1beta1PodDisruptionBudgetList
 -> V1beta1PodDisruptionBudgetList -> Bool)
-> (V1beta1PodDisruptionBudgetList
    -> V1beta1PodDisruptionBudgetList -> Bool)
-> Eq V1beta1PodDisruptionBudgetList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1PodDisruptionBudgetList
-> V1beta1PodDisruptionBudgetList -> Bool
$c/= :: V1beta1PodDisruptionBudgetList
-> V1beta1PodDisruptionBudgetList -> Bool
== :: V1beta1PodDisruptionBudgetList
-> V1beta1PodDisruptionBudgetList -> Bool
$c== :: V1beta1PodDisruptionBudgetList
-> V1beta1PodDisruptionBudgetList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1PodDisruptionBudgetList
instance A.FromJSON V1beta1PodDisruptionBudgetList where
  parseJSON :: Value -> Parser V1beta1PodDisruptionBudgetList
parseJSON = String
-> (Object -> Parser V1beta1PodDisruptionBudgetList)
-> Value
-> Parser V1beta1PodDisruptionBudgetList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1PodDisruptionBudgetList" ((Object -> Parser V1beta1PodDisruptionBudgetList)
 -> Value -> Parser V1beta1PodDisruptionBudgetList)
-> (Object -> Parser V1beta1PodDisruptionBudgetList)
-> Value
-> Parser V1beta1PodDisruptionBudgetList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1PodDisruptionBudget]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1PodDisruptionBudgetList
V1beta1PodDisruptionBudgetList
      (Maybe Text
 -> [V1beta1PodDisruptionBudget]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1PodDisruptionBudgetList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1PodDisruptionBudget]
      -> Maybe Text
      -> Maybe V1ListMeta
      -> V1beta1PodDisruptionBudgetList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1PodDisruptionBudget]
   -> Maybe Text
   -> Maybe V1ListMeta
   -> V1beta1PodDisruptionBudgetList)
-> Parser [V1beta1PodDisruptionBudget]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1beta1PodDisruptionBudgetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1PodDisruptionBudget]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> V1beta1PodDisruptionBudgetList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1PodDisruptionBudgetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1PodDisruptionBudgetList)
-> Parser (Maybe V1ListMeta)
-> Parser V1beta1PodDisruptionBudgetList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1PodDisruptionBudgetList
instance A.ToJSON V1beta1PodDisruptionBudgetList where
  toJSON :: V1beta1PodDisruptionBudgetList -> Value
toJSON V1beta1PodDisruptionBudgetList {[V1beta1PodDisruptionBudget]
Maybe Text
Maybe V1ListMeta
v1beta1PodDisruptionBudgetListMetadata :: Maybe V1ListMeta
v1beta1PodDisruptionBudgetListKind :: Maybe Text
v1beta1PodDisruptionBudgetListItems :: [V1beta1PodDisruptionBudget]
v1beta1PodDisruptionBudgetListApiVersion :: Maybe Text
v1beta1PodDisruptionBudgetListMetadata :: V1beta1PodDisruptionBudgetList -> Maybe V1ListMeta
v1beta1PodDisruptionBudgetListKind :: V1beta1PodDisruptionBudgetList -> Maybe Text
v1beta1PodDisruptionBudgetListItems :: V1beta1PodDisruptionBudgetList -> [V1beta1PodDisruptionBudget]
v1beta1PodDisruptionBudgetListApiVersion :: V1beta1PodDisruptionBudgetList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1PodDisruptionBudgetListApiVersion
      , Text
"items" Text -> [V1beta1PodDisruptionBudget] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1PodDisruptionBudget]
v1beta1PodDisruptionBudgetListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1PodDisruptionBudgetListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1PodDisruptionBudgetListMetadata
      ]


-- | Construct a value of type 'V1beta1PodDisruptionBudgetList' (by applying it's required fields, if any)
mkV1beta1PodDisruptionBudgetList
  :: [V1beta1PodDisruptionBudget] -- ^ 'v1beta1PodDisruptionBudgetListItems' 
  -> V1beta1PodDisruptionBudgetList
mkV1beta1PodDisruptionBudgetList :: [V1beta1PodDisruptionBudget] -> V1beta1PodDisruptionBudgetList
mkV1beta1PodDisruptionBudgetList [V1beta1PodDisruptionBudget]
v1beta1PodDisruptionBudgetListItems =
  V1beta1PodDisruptionBudgetList :: Maybe Text
-> [V1beta1PodDisruptionBudget]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1PodDisruptionBudgetList
V1beta1PodDisruptionBudgetList
  { v1beta1PodDisruptionBudgetListApiVersion :: Maybe Text
v1beta1PodDisruptionBudgetListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1PodDisruptionBudget]
v1beta1PodDisruptionBudgetListItems :: [V1beta1PodDisruptionBudget]
v1beta1PodDisruptionBudgetListItems :: [V1beta1PodDisruptionBudget]
v1beta1PodDisruptionBudgetListItems
  , v1beta1PodDisruptionBudgetListKind :: Maybe Text
v1beta1PodDisruptionBudgetListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1PodDisruptionBudgetListMetadata :: Maybe V1ListMeta
v1beta1PodDisruptionBudgetListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1PodDisruptionBudgetSpec
-- | V1beta1PodDisruptionBudgetSpec
-- PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.
data V1beta1PodDisruptionBudgetSpec = V1beta1PodDisruptionBudgetSpec
  { V1beta1PodDisruptionBudgetSpec -> Maybe IntOrString
v1beta1PodDisruptionBudgetSpecMaxUnavailable :: !(Maybe IntOrString) -- ^ "maxUnavailable"
  , V1beta1PodDisruptionBudgetSpec -> Maybe IntOrString
v1beta1PodDisruptionBudgetSpecMinAvailable :: !(Maybe IntOrString) -- ^ "minAvailable"
  , V1beta1PodDisruptionBudgetSpec -> Maybe V1LabelSelector
v1beta1PodDisruptionBudgetSpecSelector :: !(Maybe V1LabelSelector) -- ^ "selector"
  } deriving (Int -> V1beta1PodDisruptionBudgetSpec -> ShowS
[V1beta1PodDisruptionBudgetSpec] -> ShowS
V1beta1PodDisruptionBudgetSpec -> String
(Int -> V1beta1PodDisruptionBudgetSpec -> ShowS)
-> (V1beta1PodDisruptionBudgetSpec -> String)
-> ([V1beta1PodDisruptionBudgetSpec] -> ShowS)
-> Show V1beta1PodDisruptionBudgetSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1PodDisruptionBudgetSpec] -> ShowS
$cshowList :: [V1beta1PodDisruptionBudgetSpec] -> ShowS
show :: V1beta1PodDisruptionBudgetSpec -> String
$cshow :: V1beta1PodDisruptionBudgetSpec -> String
showsPrec :: Int -> V1beta1PodDisruptionBudgetSpec -> ShowS
$cshowsPrec :: Int -> V1beta1PodDisruptionBudgetSpec -> ShowS
P.Show, V1beta1PodDisruptionBudgetSpec
-> V1beta1PodDisruptionBudgetSpec -> Bool
(V1beta1PodDisruptionBudgetSpec
 -> V1beta1PodDisruptionBudgetSpec -> Bool)
-> (V1beta1PodDisruptionBudgetSpec
    -> V1beta1PodDisruptionBudgetSpec -> Bool)
-> Eq V1beta1PodDisruptionBudgetSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1PodDisruptionBudgetSpec
-> V1beta1PodDisruptionBudgetSpec -> Bool
$c/= :: V1beta1PodDisruptionBudgetSpec
-> V1beta1PodDisruptionBudgetSpec -> Bool
== :: V1beta1PodDisruptionBudgetSpec
-> V1beta1PodDisruptionBudgetSpec -> Bool
$c== :: V1beta1PodDisruptionBudgetSpec
-> V1beta1PodDisruptionBudgetSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1PodDisruptionBudgetSpec
instance A.FromJSON V1beta1PodDisruptionBudgetSpec where
  parseJSON :: Value -> Parser V1beta1PodDisruptionBudgetSpec
parseJSON = String
-> (Object -> Parser V1beta1PodDisruptionBudgetSpec)
-> Value
-> Parser V1beta1PodDisruptionBudgetSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1PodDisruptionBudgetSpec" ((Object -> Parser V1beta1PodDisruptionBudgetSpec)
 -> Value -> Parser V1beta1PodDisruptionBudgetSpec)
-> (Object -> Parser V1beta1PodDisruptionBudgetSpec)
-> Value
-> Parser V1beta1PodDisruptionBudgetSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe IntOrString
-> Maybe IntOrString
-> Maybe V1LabelSelector
-> V1beta1PodDisruptionBudgetSpec
V1beta1PodDisruptionBudgetSpec
      (Maybe IntOrString
 -> Maybe IntOrString
 -> Maybe V1LabelSelector
 -> V1beta1PodDisruptionBudgetSpec)
-> Parser (Maybe IntOrString)
-> Parser
     (Maybe IntOrString
      -> Maybe V1LabelSelector -> V1beta1PodDisruptionBudgetSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe IntOrString)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxUnavailable")
      Parser
  (Maybe IntOrString
   -> Maybe V1LabelSelector -> V1beta1PodDisruptionBudgetSpec)
-> Parser (Maybe IntOrString)
-> Parser (Maybe V1LabelSelector -> V1beta1PodDisruptionBudgetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe IntOrString)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minAvailable")
      Parser (Maybe V1LabelSelector -> V1beta1PodDisruptionBudgetSpec)
-> Parser (Maybe V1LabelSelector)
-> Parser V1beta1PodDisruptionBudgetSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")

-- | ToJSON V1beta1PodDisruptionBudgetSpec
instance A.ToJSON V1beta1PodDisruptionBudgetSpec where
  toJSON :: V1beta1PodDisruptionBudgetSpec -> Value
toJSON V1beta1PodDisruptionBudgetSpec {Maybe IntOrString
Maybe V1LabelSelector
v1beta1PodDisruptionBudgetSpecSelector :: Maybe V1LabelSelector
v1beta1PodDisruptionBudgetSpecMinAvailable :: Maybe IntOrString
v1beta1PodDisruptionBudgetSpecMaxUnavailable :: Maybe IntOrString
v1beta1PodDisruptionBudgetSpecSelector :: V1beta1PodDisruptionBudgetSpec -> Maybe V1LabelSelector
v1beta1PodDisruptionBudgetSpecMinAvailable :: V1beta1PodDisruptionBudgetSpec -> Maybe IntOrString
v1beta1PodDisruptionBudgetSpecMaxUnavailable :: V1beta1PodDisruptionBudgetSpec -> Maybe IntOrString
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"maxUnavailable" Text -> Maybe IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe IntOrString
v1beta1PodDisruptionBudgetSpecMaxUnavailable
      , Text
"minAvailable" Text -> Maybe IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe IntOrString
v1beta1PodDisruptionBudgetSpecMinAvailable
      , Text
"selector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1beta1PodDisruptionBudgetSpecSelector
      ]


-- | Construct a value of type 'V1beta1PodDisruptionBudgetSpec' (by applying it's required fields, if any)
mkV1beta1PodDisruptionBudgetSpec
  :: V1beta1PodDisruptionBudgetSpec
mkV1beta1PodDisruptionBudgetSpec :: V1beta1PodDisruptionBudgetSpec
mkV1beta1PodDisruptionBudgetSpec =
  V1beta1PodDisruptionBudgetSpec :: Maybe IntOrString
-> Maybe IntOrString
-> Maybe V1LabelSelector
-> V1beta1PodDisruptionBudgetSpec
V1beta1PodDisruptionBudgetSpec
  { v1beta1PodDisruptionBudgetSpecMaxUnavailable :: Maybe IntOrString
v1beta1PodDisruptionBudgetSpecMaxUnavailable = Maybe IntOrString
forall a. Maybe a
Nothing
  , v1beta1PodDisruptionBudgetSpecMinAvailable :: Maybe IntOrString
v1beta1PodDisruptionBudgetSpecMinAvailable = Maybe IntOrString
forall a. Maybe a
Nothing
  , v1beta1PodDisruptionBudgetSpecSelector :: Maybe V1LabelSelector
v1beta1PodDisruptionBudgetSpecSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  }

-- ** V1beta1PodDisruptionBudgetStatus
-- | V1beta1PodDisruptionBudgetStatus
-- PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.
data V1beta1PodDisruptionBudgetStatus = V1beta1PodDisruptionBudgetStatus
  { V1beta1PodDisruptionBudgetStatus -> Int
v1beta1PodDisruptionBudgetStatusCurrentHealthy :: !(Int) -- ^ /Required/ "currentHealthy" - current number of healthy pods
  , V1beta1PodDisruptionBudgetStatus -> Int
v1beta1PodDisruptionBudgetStatusDesiredHealthy :: !(Int) -- ^ /Required/ "desiredHealthy" - minimum desired number of healthy pods
  , V1beta1PodDisruptionBudgetStatus -> Maybe (Map String DateTime)
v1beta1PodDisruptionBudgetStatusDisruptedPods :: !(Maybe (Map.Map String DateTime)) -- ^ "disruptedPods" - DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn&#39;t occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.
  , V1beta1PodDisruptionBudgetStatus -> Int
v1beta1PodDisruptionBudgetStatusDisruptionsAllowed :: !(Int) -- ^ /Required/ "disruptionsAllowed" - Number of pod disruptions that are currently allowed.
  , V1beta1PodDisruptionBudgetStatus -> Int
v1beta1PodDisruptionBudgetStatusExpectedPods :: !(Int) -- ^ /Required/ "expectedPods" - total number of pods counted by this disruption budget
  , V1beta1PodDisruptionBudgetStatus -> Maybe Integer
v1beta1PodDisruptionBudgetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - Most recent generation observed when updating this PDB status. PodDisruptionsAllowed and other status informatio is valid only if observedGeneration equals to PDB&#39;s object generation.
  } deriving (Int -> V1beta1PodDisruptionBudgetStatus -> ShowS
[V1beta1PodDisruptionBudgetStatus] -> ShowS
V1beta1PodDisruptionBudgetStatus -> String
(Int -> V1beta1PodDisruptionBudgetStatus -> ShowS)
-> (V1beta1PodDisruptionBudgetStatus -> String)
-> ([V1beta1PodDisruptionBudgetStatus] -> ShowS)
-> Show V1beta1PodDisruptionBudgetStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1PodDisruptionBudgetStatus] -> ShowS
$cshowList :: [V1beta1PodDisruptionBudgetStatus] -> ShowS
show :: V1beta1PodDisruptionBudgetStatus -> String
$cshow :: V1beta1PodDisruptionBudgetStatus -> String
showsPrec :: Int -> V1beta1PodDisruptionBudgetStatus -> ShowS
$cshowsPrec :: Int -> V1beta1PodDisruptionBudgetStatus -> ShowS
P.Show, V1beta1PodDisruptionBudgetStatus
-> V1beta1PodDisruptionBudgetStatus -> Bool
(V1beta1PodDisruptionBudgetStatus
 -> V1beta1PodDisruptionBudgetStatus -> Bool)
-> (V1beta1PodDisruptionBudgetStatus
    -> V1beta1PodDisruptionBudgetStatus -> Bool)
-> Eq V1beta1PodDisruptionBudgetStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1PodDisruptionBudgetStatus
-> V1beta1PodDisruptionBudgetStatus -> Bool
$c/= :: V1beta1PodDisruptionBudgetStatus
-> V1beta1PodDisruptionBudgetStatus -> Bool
== :: V1beta1PodDisruptionBudgetStatus
-> V1beta1PodDisruptionBudgetStatus -> Bool
$c== :: V1beta1PodDisruptionBudgetStatus
-> V1beta1PodDisruptionBudgetStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1PodDisruptionBudgetStatus
instance A.FromJSON V1beta1PodDisruptionBudgetStatus where
  parseJSON :: Value -> Parser V1beta1PodDisruptionBudgetStatus
parseJSON = String
-> (Object -> Parser V1beta1PodDisruptionBudgetStatus)
-> Value
-> Parser V1beta1PodDisruptionBudgetStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1PodDisruptionBudgetStatus" ((Object -> Parser V1beta1PodDisruptionBudgetStatus)
 -> Value -> Parser V1beta1PodDisruptionBudgetStatus)
-> (Object -> Parser V1beta1PodDisruptionBudgetStatus)
-> Value
-> Parser V1beta1PodDisruptionBudgetStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Int
-> Int
-> Maybe (Map String DateTime)
-> Int
-> Int
-> Maybe Integer
-> V1beta1PodDisruptionBudgetStatus
V1beta1PodDisruptionBudgetStatus
      (Int
 -> Int
 -> Maybe (Map String DateTime)
 -> Int
 -> Int
 -> Maybe Integer
 -> V1beta1PodDisruptionBudgetStatus)
-> Parser Int
-> Parser
     (Int
      -> Maybe (Map String DateTime)
      -> Int
      -> Int
      -> Maybe Integer
      -> V1beta1PodDisruptionBudgetStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"currentHealthy")
      Parser
  (Int
   -> Maybe (Map String DateTime)
   -> Int
   -> Int
   -> Maybe Integer
   -> V1beta1PodDisruptionBudgetStatus)
-> Parser Int
-> Parser
     (Maybe (Map String DateTime)
      -> Int -> Int -> Maybe Integer -> V1beta1PodDisruptionBudgetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"desiredHealthy")
      Parser
  (Maybe (Map String DateTime)
   -> Int -> Int -> Maybe Integer -> V1beta1PodDisruptionBudgetStatus)
-> Parser (Maybe (Map String DateTime))
-> Parser
     (Int -> Int -> Maybe Integer -> V1beta1PodDisruptionBudgetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String DateTime))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"disruptedPods")
      Parser
  (Int -> Int -> Maybe Integer -> V1beta1PodDisruptionBudgetStatus)
-> Parser Int
-> Parser
     (Int -> Maybe Integer -> V1beta1PodDisruptionBudgetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"disruptionsAllowed")
      Parser (Int -> Maybe Integer -> V1beta1PodDisruptionBudgetStatus)
-> Parser Int
-> Parser (Maybe Integer -> V1beta1PodDisruptionBudgetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"expectedPods")
      Parser (Maybe Integer -> V1beta1PodDisruptionBudgetStatus)
-> Parser (Maybe Integer)
-> Parser V1beta1PodDisruptionBudgetStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")

-- | ToJSON V1beta1PodDisruptionBudgetStatus
instance A.ToJSON V1beta1PodDisruptionBudgetStatus where
  toJSON :: V1beta1PodDisruptionBudgetStatus -> Value
toJSON V1beta1PodDisruptionBudgetStatus {Int
Maybe Integer
Maybe (Map String DateTime)
v1beta1PodDisruptionBudgetStatusObservedGeneration :: Maybe Integer
v1beta1PodDisruptionBudgetStatusExpectedPods :: Int
v1beta1PodDisruptionBudgetStatusDisruptionsAllowed :: Int
v1beta1PodDisruptionBudgetStatusDisruptedPods :: Maybe (Map String DateTime)
v1beta1PodDisruptionBudgetStatusDesiredHealthy :: Int
v1beta1PodDisruptionBudgetStatusCurrentHealthy :: Int
v1beta1PodDisruptionBudgetStatusObservedGeneration :: V1beta1PodDisruptionBudgetStatus -> Maybe Integer
v1beta1PodDisruptionBudgetStatusExpectedPods :: V1beta1PodDisruptionBudgetStatus -> Int
v1beta1PodDisruptionBudgetStatusDisruptionsAllowed :: V1beta1PodDisruptionBudgetStatus -> Int
v1beta1PodDisruptionBudgetStatusDisruptedPods :: V1beta1PodDisruptionBudgetStatus -> Maybe (Map String DateTime)
v1beta1PodDisruptionBudgetStatusDesiredHealthy :: V1beta1PodDisruptionBudgetStatus -> Int
v1beta1PodDisruptionBudgetStatusCurrentHealthy :: V1beta1PodDisruptionBudgetStatus -> Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"currentHealthy" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta1PodDisruptionBudgetStatusCurrentHealthy
      , Text
"desiredHealthy" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta1PodDisruptionBudgetStatusDesiredHealthy
      , Text
"disruptedPods" Text -> Maybe (Map String DateTime) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String DateTime)
v1beta1PodDisruptionBudgetStatusDisruptedPods
      , Text
"disruptionsAllowed" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta1PodDisruptionBudgetStatusDisruptionsAllowed
      , Text
"expectedPods" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta1PodDisruptionBudgetStatusExpectedPods
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1beta1PodDisruptionBudgetStatusObservedGeneration
      ]


-- | Construct a value of type 'V1beta1PodDisruptionBudgetStatus' (by applying it's required fields, if any)
mkV1beta1PodDisruptionBudgetStatus
  :: Int -- ^ 'v1beta1PodDisruptionBudgetStatusCurrentHealthy': current number of healthy pods
  -> Int -- ^ 'v1beta1PodDisruptionBudgetStatusDesiredHealthy': minimum desired number of healthy pods
  -> Int -- ^ 'v1beta1PodDisruptionBudgetStatusDisruptionsAllowed': Number of pod disruptions that are currently allowed.
  -> Int -- ^ 'v1beta1PodDisruptionBudgetStatusExpectedPods': total number of pods counted by this disruption budget
  -> V1beta1PodDisruptionBudgetStatus
mkV1beta1PodDisruptionBudgetStatus :: Int -> Int -> Int -> Int -> V1beta1PodDisruptionBudgetStatus
mkV1beta1PodDisruptionBudgetStatus Int
v1beta1PodDisruptionBudgetStatusCurrentHealthy Int
v1beta1PodDisruptionBudgetStatusDesiredHealthy Int
v1beta1PodDisruptionBudgetStatusDisruptionsAllowed Int
v1beta1PodDisruptionBudgetStatusExpectedPods =
  V1beta1PodDisruptionBudgetStatus :: Int
-> Int
-> Maybe (Map String DateTime)
-> Int
-> Int
-> Maybe Integer
-> V1beta1PodDisruptionBudgetStatus
V1beta1PodDisruptionBudgetStatus
  { Int
v1beta1PodDisruptionBudgetStatusCurrentHealthy :: Int
v1beta1PodDisruptionBudgetStatusCurrentHealthy :: Int
v1beta1PodDisruptionBudgetStatusCurrentHealthy
  , Int
v1beta1PodDisruptionBudgetStatusDesiredHealthy :: Int
v1beta1PodDisruptionBudgetStatusDesiredHealthy :: Int
v1beta1PodDisruptionBudgetStatusDesiredHealthy
  , v1beta1PodDisruptionBudgetStatusDisruptedPods :: Maybe (Map String DateTime)
v1beta1PodDisruptionBudgetStatusDisruptedPods = Maybe (Map String DateTime)
forall a. Maybe a
Nothing
  , Int
v1beta1PodDisruptionBudgetStatusDisruptionsAllowed :: Int
v1beta1PodDisruptionBudgetStatusDisruptionsAllowed :: Int
v1beta1PodDisruptionBudgetStatusDisruptionsAllowed
  , Int
v1beta1PodDisruptionBudgetStatusExpectedPods :: Int
v1beta1PodDisruptionBudgetStatusExpectedPods :: Int
v1beta1PodDisruptionBudgetStatusExpectedPods
  , v1beta1PodDisruptionBudgetStatusObservedGeneration :: Maybe Integer
v1beta1PodDisruptionBudgetStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  }

-- ** V1beta1PolicyRule
-- | V1beta1PolicyRule
-- PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.
data V1beta1PolicyRule = V1beta1PolicyRule
  { V1beta1PolicyRule -> Maybe [Text]
v1beta1PolicyRuleApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.
  , V1beta1PolicyRule -> Maybe [Text]
v1beta1PolicyRuleNonResourceUrLs :: !(Maybe [Text]) -- ^ "nonResourceURLs" - NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \&quot;pods\&quot; or \&quot;secrets\&quot;) or non-resource URL paths (such as \&quot;/api\&quot;),  but not both.
  , V1beta1PolicyRule -> Maybe [Text]
v1beta1PolicyRuleResourceNames :: !(Maybe [Text]) -- ^ "resourceNames" - ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.
  , V1beta1PolicyRule -> Maybe [Text]
v1beta1PolicyRuleResources :: !(Maybe [Text]) -- ^ "resources" - Resources is a list of resources this rule applies to.  &#39;*&#39; represents all resources in the specified apiGroups. &#39;*/foo&#39; represents the subresource &#39;foo&#39; for all resources in the specified apiGroups.
  , V1beta1PolicyRule -> [Text]
v1beta1PolicyRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule.  VerbAll represents all kinds.
  } deriving (Int -> V1beta1PolicyRule -> ShowS
[V1beta1PolicyRule] -> ShowS
V1beta1PolicyRule -> String
(Int -> V1beta1PolicyRule -> ShowS)
-> (V1beta1PolicyRule -> String)
-> ([V1beta1PolicyRule] -> ShowS)
-> Show V1beta1PolicyRule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1PolicyRule] -> ShowS
$cshowList :: [V1beta1PolicyRule] -> ShowS
show :: V1beta1PolicyRule -> String
$cshow :: V1beta1PolicyRule -> String
showsPrec :: Int -> V1beta1PolicyRule -> ShowS
$cshowsPrec :: Int -> V1beta1PolicyRule -> ShowS
P.Show, V1beta1PolicyRule -> V1beta1PolicyRule -> Bool
(V1beta1PolicyRule -> V1beta1PolicyRule -> Bool)
-> (V1beta1PolicyRule -> V1beta1PolicyRule -> Bool)
-> Eq V1beta1PolicyRule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1PolicyRule -> V1beta1PolicyRule -> Bool
$c/= :: V1beta1PolicyRule -> V1beta1PolicyRule -> Bool
== :: V1beta1PolicyRule -> V1beta1PolicyRule -> Bool
$c== :: V1beta1PolicyRule -> V1beta1PolicyRule -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1PolicyRule
instance A.FromJSON V1beta1PolicyRule where
  parseJSON :: Value -> Parser V1beta1PolicyRule
parseJSON = String
-> (Object -> Parser V1beta1PolicyRule)
-> Value
-> Parser V1beta1PolicyRule
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1PolicyRule" ((Object -> Parser V1beta1PolicyRule)
 -> Value -> Parser V1beta1PolicyRule)
-> (Object -> Parser V1beta1PolicyRule)
-> Value
-> Parser V1beta1PolicyRule
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> [Text]
-> V1beta1PolicyRule
V1beta1PolicyRule
      (Maybe [Text]
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe [Text]
 -> [Text]
 -> V1beta1PolicyRule)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe [Text] -> Maybe [Text] -> [Text] -> V1beta1PolicyRule)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiGroups")
      Parser
  (Maybe [Text]
   -> Maybe [Text] -> Maybe [Text] -> [Text] -> V1beta1PolicyRule)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text] -> Maybe [Text] -> [Text] -> V1beta1PolicyRule)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nonResourceURLs")
      Parser
  (Maybe [Text] -> Maybe [Text] -> [Text] -> V1beta1PolicyRule)
-> Parser (Maybe [Text])
-> Parser (Maybe [Text] -> [Text] -> V1beta1PolicyRule)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resourceNames")
      Parser (Maybe [Text] -> [Text] -> V1beta1PolicyRule)
-> Parser (Maybe [Text]) -> Parser ([Text] -> V1beta1PolicyRule)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resources")
      Parser ([Text] -> V1beta1PolicyRule)
-> Parser [Text] -> Parser V1beta1PolicyRule
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"verbs")

-- | ToJSON V1beta1PolicyRule
instance A.ToJSON V1beta1PolicyRule where
  toJSON :: V1beta1PolicyRule -> Value
toJSON V1beta1PolicyRule {[Text]
Maybe [Text]
v1beta1PolicyRuleVerbs :: [Text]
v1beta1PolicyRuleResources :: Maybe [Text]
v1beta1PolicyRuleResourceNames :: Maybe [Text]
v1beta1PolicyRuleNonResourceUrLs :: Maybe [Text]
v1beta1PolicyRuleApiGroups :: Maybe [Text]
v1beta1PolicyRuleVerbs :: V1beta1PolicyRule -> [Text]
v1beta1PolicyRuleResources :: V1beta1PolicyRule -> Maybe [Text]
v1beta1PolicyRuleResourceNames :: V1beta1PolicyRule -> Maybe [Text]
v1beta1PolicyRuleNonResourceUrLs :: V1beta1PolicyRule -> Maybe [Text]
v1beta1PolicyRuleApiGroups :: V1beta1PolicyRule -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiGroups" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1PolicyRuleApiGroups
      , Text
"nonResourceURLs" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1PolicyRuleNonResourceUrLs
      , Text
"resourceNames" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1PolicyRuleResourceNames
      , Text
"resources" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1PolicyRuleResources
      , Text
"verbs" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1beta1PolicyRuleVerbs
      ]


-- | Construct a value of type 'V1beta1PolicyRule' (by applying it's required fields, if any)
mkV1beta1PolicyRule
  :: [Text] -- ^ 'v1beta1PolicyRuleVerbs': Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule.  VerbAll represents all kinds.
  -> V1beta1PolicyRule
mkV1beta1PolicyRule :: [Text] -> V1beta1PolicyRule
mkV1beta1PolicyRule [Text]
v1beta1PolicyRuleVerbs =
  V1beta1PolicyRule :: Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> [Text]
-> V1beta1PolicyRule
V1beta1PolicyRule
  { v1beta1PolicyRuleApiGroups :: Maybe [Text]
v1beta1PolicyRuleApiGroups = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1PolicyRuleNonResourceUrLs :: Maybe [Text]
v1beta1PolicyRuleNonResourceUrLs = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1PolicyRuleResourceNames :: Maybe [Text]
v1beta1PolicyRuleResourceNames = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1PolicyRuleResources :: Maybe [Text]
v1beta1PolicyRuleResources = Maybe [Text]
forall a. Maybe a
Nothing
  , [Text]
v1beta1PolicyRuleVerbs :: [Text]
v1beta1PolicyRuleVerbs :: [Text]
v1beta1PolicyRuleVerbs
  }

-- ** V1beta1PriorityClass
-- | V1beta1PriorityClass
-- DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass. PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.
data V1beta1PriorityClass = V1beta1PriorityClass
  { V1beta1PriorityClass -> Maybe Text
v1beta1PriorityClassApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1PriorityClass -> Maybe Text
v1beta1PriorityClassDescription :: !(Maybe Text) -- ^ "description" - description is an arbitrary string that usually provides guidelines on when this priority class should be used.
  , V1beta1PriorityClass -> Maybe Bool
v1beta1PriorityClassGlobalDefault :: !(Maybe Bool) -- ^ "globalDefault" - globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as &#x60;globalDefault&#x60;. However, if more than one PriorityClasses exists with their &#x60;globalDefault&#x60; field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.
  , V1beta1PriorityClass -> Maybe Text
v1beta1PriorityClassKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1PriorityClass -> Maybe V1ObjectMeta
v1beta1PriorityClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1PriorityClass -> Maybe Text
v1beta1PriorityClassPreemptionPolicy :: !(Maybe Text) -- ^ "preemptionPolicy" - PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.
  , V1beta1PriorityClass -> Int
v1beta1PriorityClassValue :: !(Int) -- ^ /Required/ "value" - The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.
  } deriving (Int -> V1beta1PriorityClass -> ShowS
[V1beta1PriorityClass] -> ShowS
V1beta1PriorityClass -> String
(Int -> V1beta1PriorityClass -> ShowS)
-> (V1beta1PriorityClass -> String)
-> ([V1beta1PriorityClass] -> ShowS)
-> Show V1beta1PriorityClass
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1PriorityClass] -> ShowS
$cshowList :: [V1beta1PriorityClass] -> ShowS
show :: V1beta1PriorityClass -> String
$cshow :: V1beta1PriorityClass -> String
showsPrec :: Int -> V1beta1PriorityClass -> ShowS
$cshowsPrec :: Int -> V1beta1PriorityClass -> ShowS
P.Show, V1beta1PriorityClass -> V1beta1PriorityClass -> Bool
(V1beta1PriorityClass -> V1beta1PriorityClass -> Bool)
-> (V1beta1PriorityClass -> V1beta1PriorityClass -> Bool)
-> Eq V1beta1PriorityClass
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1PriorityClass -> V1beta1PriorityClass -> Bool
$c/= :: V1beta1PriorityClass -> V1beta1PriorityClass -> Bool
== :: V1beta1PriorityClass -> V1beta1PriorityClass -> Bool
$c== :: V1beta1PriorityClass -> V1beta1PriorityClass -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1PriorityClass
instance A.FromJSON V1beta1PriorityClass where
  parseJSON :: Value -> Parser V1beta1PriorityClass
parseJSON = String
-> (Object -> Parser V1beta1PriorityClass)
-> Value
-> Parser V1beta1PriorityClass
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1PriorityClass" ((Object -> Parser V1beta1PriorityClass)
 -> Value -> Parser V1beta1PriorityClass)
-> (Object -> Parser V1beta1PriorityClass)
-> Value
-> Parser V1beta1PriorityClass
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe Text
-> Int
-> V1beta1PriorityClass
V1beta1PriorityClass
      (Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe Text
 -> Int
 -> V1beta1PriorityClass)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe Text
      -> Int
      -> V1beta1PriorityClass)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe Text
   -> Int
   -> V1beta1PriorityClass)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe Text
      -> Int
      -> V1beta1PriorityClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"description")
      Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe Text
   -> Int
   -> V1beta1PriorityClass)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta -> Maybe Text -> Int -> V1beta1PriorityClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"globalDefault")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta -> Maybe Text -> Int -> V1beta1PriorityClass)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta -> Maybe Text -> Int -> V1beta1PriorityClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta -> Maybe Text -> Int -> V1beta1PriorityClass)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe Text -> Int -> V1beta1PriorityClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe Text -> Int -> V1beta1PriorityClass)
-> Parser (Maybe Text) -> Parser (Int -> V1beta1PriorityClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"preemptionPolicy")
      Parser (Int -> V1beta1PriorityClass)
-> Parser Int -> Parser V1beta1PriorityClass
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"value")

-- | ToJSON V1beta1PriorityClass
instance A.ToJSON V1beta1PriorityClass where
  toJSON :: V1beta1PriorityClass -> Value
toJSON V1beta1PriorityClass {Int
Maybe Bool
Maybe Text
Maybe V1ObjectMeta
v1beta1PriorityClassValue :: Int
v1beta1PriorityClassPreemptionPolicy :: Maybe Text
v1beta1PriorityClassMetadata :: Maybe V1ObjectMeta
v1beta1PriorityClassKind :: Maybe Text
v1beta1PriorityClassGlobalDefault :: Maybe Bool
v1beta1PriorityClassDescription :: Maybe Text
v1beta1PriorityClassApiVersion :: Maybe Text
v1beta1PriorityClassValue :: V1beta1PriorityClass -> Int
v1beta1PriorityClassPreemptionPolicy :: V1beta1PriorityClass -> Maybe Text
v1beta1PriorityClassMetadata :: V1beta1PriorityClass -> Maybe V1ObjectMeta
v1beta1PriorityClassKind :: V1beta1PriorityClass -> Maybe Text
v1beta1PriorityClassGlobalDefault :: V1beta1PriorityClass -> Maybe Bool
v1beta1PriorityClassDescription :: V1beta1PriorityClass -> Maybe Text
v1beta1PriorityClassApiVersion :: V1beta1PriorityClass -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1PriorityClassApiVersion
      , Text
"description" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1PriorityClassDescription
      , Text
"globalDefault" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta1PriorityClassGlobalDefault
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1PriorityClassKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1PriorityClassMetadata
      , Text
"preemptionPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1PriorityClassPreemptionPolicy
      , Text
"value" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta1PriorityClassValue
      ]


-- | Construct a value of type 'V1beta1PriorityClass' (by applying it's required fields, if any)
mkV1beta1PriorityClass
  :: Int -- ^ 'v1beta1PriorityClassValue': The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.
  -> V1beta1PriorityClass
mkV1beta1PriorityClass :: Int -> V1beta1PriorityClass
mkV1beta1PriorityClass Int
v1beta1PriorityClassValue =
  V1beta1PriorityClass :: Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe Text
-> Int
-> V1beta1PriorityClass
V1beta1PriorityClass
  { v1beta1PriorityClassApiVersion :: Maybe Text
v1beta1PriorityClassApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1PriorityClassDescription :: Maybe Text
v1beta1PriorityClassDescription = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1PriorityClassGlobalDefault :: Maybe Bool
v1beta1PriorityClassGlobalDefault = Maybe Bool
forall a. Maybe a
Nothing
  , v1beta1PriorityClassKind :: Maybe Text
v1beta1PriorityClassKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1PriorityClassMetadata :: Maybe V1ObjectMeta
v1beta1PriorityClassMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1PriorityClassPreemptionPolicy :: Maybe Text
v1beta1PriorityClassPreemptionPolicy = Maybe Text
forall a. Maybe a
Nothing
  , Int
v1beta1PriorityClassValue :: Int
v1beta1PriorityClassValue :: Int
v1beta1PriorityClassValue
  }

-- ** V1beta1PriorityClassList
-- | V1beta1PriorityClassList
-- PriorityClassList is a collection of priority classes.
data V1beta1PriorityClassList = V1beta1PriorityClassList
  { V1beta1PriorityClassList -> Maybe Text
v1beta1PriorityClassListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1PriorityClassList -> [V1beta1PriorityClass]
v1beta1PriorityClassListItems :: !([V1beta1PriorityClass]) -- ^ /Required/ "items" - items is the list of PriorityClasses
  , V1beta1PriorityClassList -> Maybe Text
v1beta1PriorityClassListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1PriorityClassList -> Maybe V1ListMeta
v1beta1PriorityClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1PriorityClassList -> ShowS
[V1beta1PriorityClassList] -> ShowS
V1beta1PriorityClassList -> String
(Int -> V1beta1PriorityClassList -> ShowS)
-> (V1beta1PriorityClassList -> String)
-> ([V1beta1PriorityClassList] -> ShowS)
-> Show V1beta1PriorityClassList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1PriorityClassList] -> ShowS
$cshowList :: [V1beta1PriorityClassList] -> ShowS
show :: V1beta1PriorityClassList -> String
$cshow :: V1beta1PriorityClassList -> String
showsPrec :: Int -> V1beta1PriorityClassList -> ShowS
$cshowsPrec :: Int -> V1beta1PriorityClassList -> ShowS
P.Show, V1beta1PriorityClassList -> V1beta1PriorityClassList -> Bool
(V1beta1PriorityClassList -> V1beta1PriorityClassList -> Bool)
-> (V1beta1PriorityClassList -> V1beta1PriorityClassList -> Bool)
-> Eq V1beta1PriorityClassList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1PriorityClassList -> V1beta1PriorityClassList -> Bool
$c/= :: V1beta1PriorityClassList -> V1beta1PriorityClassList -> Bool
== :: V1beta1PriorityClassList -> V1beta1PriorityClassList -> Bool
$c== :: V1beta1PriorityClassList -> V1beta1PriorityClassList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1PriorityClassList
instance A.FromJSON V1beta1PriorityClassList where
  parseJSON :: Value -> Parser V1beta1PriorityClassList
parseJSON = String
-> (Object -> Parser V1beta1PriorityClassList)
-> Value
-> Parser V1beta1PriorityClassList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1PriorityClassList" ((Object -> Parser V1beta1PriorityClassList)
 -> Value -> Parser V1beta1PriorityClassList)
-> (Object -> Parser V1beta1PriorityClassList)
-> Value
-> Parser V1beta1PriorityClassList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1PriorityClass]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1PriorityClassList
V1beta1PriorityClassList
      (Maybe Text
 -> [V1beta1PriorityClass]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1PriorityClassList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1PriorityClass]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1PriorityClassList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1PriorityClass]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1PriorityClassList)
-> Parser [V1beta1PriorityClass]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1beta1PriorityClassList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1PriorityClass]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1PriorityClassList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1PriorityClassList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1PriorityClassList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1PriorityClassList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1PriorityClassList
instance A.ToJSON V1beta1PriorityClassList where
  toJSON :: V1beta1PriorityClassList -> Value
toJSON V1beta1PriorityClassList {[V1beta1PriorityClass]
Maybe Text
Maybe V1ListMeta
v1beta1PriorityClassListMetadata :: Maybe V1ListMeta
v1beta1PriorityClassListKind :: Maybe Text
v1beta1PriorityClassListItems :: [V1beta1PriorityClass]
v1beta1PriorityClassListApiVersion :: Maybe Text
v1beta1PriorityClassListMetadata :: V1beta1PriorityClassList -> Maybe V1ListMeta
v1beta1PriorityClassListKind :: V1beta1PriorityClassList -> Maybe Text
v1beta1PriorityClassListItems :: V1beta1PriorityClassList -> [V1beta1PriorityClass]
v1beta1PriorityClassListApiVersion :: V1beta1PriorityClassList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1PriorityClassListApiVersion
      , Text
"items" Text -> [V1beta1PriorityClass] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1PriorityClass]
v1beta1PriorityClassListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1PriorityClassListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1PriorityClassListMetadata
      ]


-- | Construct a value of type 'V1beta1PriorityClassList' (by applying it's required fields, if any)
mkV1beta1PriorityClassList
  :: [V1beta1PriorityClass] -- ^ 'v1beta1PriorityClassListItems': items is the list of PriorityClasses
  -> V1beta1PriorityClassList
mkV1beta1PriorityClassList :: [V1beta1PriorityClass] -> V1beta1PriorityClassList
mkV1beta1PriorityClassList [V1beta1PriorityClass]
v1beta1PriorityClassListItems =
  V1beta1PriorityClassList :: Maybe Text
-> [V1beta1PriorityClass]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1PriorityClassList
V1beta1PriorityClassList
  { v1beta1PriorityClassListApiVersion :: Maybe Text
v1beta1PriorityClassListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1PriorityClass]
v1beta1PriorityClassListItems :: [V1beta1PriorityClass]
v1beta1PriorityClassListItems :: [V1beta1PriorityClass]
v1beta1PriorityClassListItems
  , v1beta1PriorityClassListKind :: Maybe Text
v1beta1PriorityClassListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1PriorityClassListMetadata :: Maybe V1ListMeta
v1beta1PriorityClassListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1ReplicaSet
-- | V1beta1ReplicaSet
-- DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for more information. ReplicaSet ensures that a specified number of pod replicas are running at any given time.
data V1beta1ReplicaSet = V1beta1ReplicaSet
  { V1beta1ReplicaSet -> Maybe Text
v1beta1ReplicaSetApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1ReplicaSet -> Maybe Text
v1beta1ReplicaSetKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1ReplicaSet -> Maybe V1ObjectMeta
v1beta1ReplicaSetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1ReplicaSet -> Maybe V1beta1ReplicaSetSpec
v1beta1ReplicaSetSpec :: !(Maybe V1beta1ReplicaSetSpec) -- ^ "spec"
  , V1beta1ReplicaSet -> Maybe V1beta1ReplicaSetStatus
v1beta1ReplicaSetStatus :: !(Maybe V1beta1ReplicaSetStatus) -- ^ "status"
  } deriving (Int -> V1beta1ReplicaSet -> ShowS
[V1beta1ReplicaSet] -> ShowS
V1beta1ReplicaSet -> String
(Int -> V1beta1ReplicaSet -> ShowS)
-> (V1beta1ReplicaSet -> String)
-> ([V1beta1ReplicaSet] -> ShowS)
-> Show V1beta1ReplicaSet
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ReplicaSet] -> ShowS
$cshowList :: [V1beta1ReplicaSet] -> ShowS
show :: V1beta1ReplicaSet -> String
$cshow :: V1beta1ReplicaSet -> String
showsPrec :: Int -> V1beta1ReplicaSet -> ShowS
$cshowsPrec :: Int -> V1beta1ReplicaSet -> ShowS
P.Show, V1beta1ReplicaSet -> V1beta1ReplicaSet -> Bool
(V1beta1ReplicaSet -> V1beta1ReplicaSet -> Bool)
-> (V1beta1ReplicaSet -> V1beta1ReplicaSet -> Bool)
-> Eq V1beta1ReplicaSet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ReplicaSet -> V1beta1ReplicaSet -> Bool
$c/= :: V1beta1ReplicaSet -> V1beta1ReplicaSet -> Bool
== :: V1beta1ReplicaSet -> V1beta1ReplicaSet -> Bool
$c== :: V1beta1ReplicaSet -> V1beta1ReplicaSet -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ReplicaSet
instance A.FromJSON V1beta1ReplicaSet where
  parseJSON :: Value -> Parser V1beta1ReplicaSet
parseJSON = String
-> (Object -> Parser V1beta1ReplicaSet)
-> Value
-> Parser V1beta1ReplicaSet
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ReplicaSet" ((Object -> Parser V1beta1ReplicaSet)
 -> Value -> Parser V1beta1ReplicaSet)
-> (Object -> Parser V1beta1ReplicaSet)
-> Value
-> Parser V1beta1ReplicaSet
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1ReplicaSetSpec
-> Maybe V1beta1ReplicaSetStatus
-> V1beta1ReplicaSet
V1beta1ReplicaSet
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1beta1ReplicaSetSpec
 -> Maybe V1beta1ReplicaSetStatus
 -> V1beta1ReplicaSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1beta1ReplicaSetSpec
      -> Maybe V1beta1ReplicaSetStatus
      -> V1beta1ReplicaSet)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1beta1ReplicaSetSpec
   -> Maybe V1beta1ReplicaSetStatus
   -> V1beta1ReplicaSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1beta1ReplicaSetSpec
      -> Maybe V1beta1ReplicaSetStatus
      -> V1beta1ReplicaSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1beta1ReplicaSetSpec
   -> Maybe V1beta1ReplicaSetStatus
   -> V1beta1ReplicaSet)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1beta1ReplicaSetSpec
      -> Maybe V1beta1ReplicaSetStatus -> V1beta1ReplicaSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1beta1ReplicaSetSpec
   -> Maybe V1beta1ReplicaSetStatus -> V1beta1ReplicaSet)
-> Parser (Maybe V1beta1ReplicaSetSpec)
-> Parser (Maybe V1beta1ReplicaSetStatus -> V1beta1ReplicaSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1ReplicaSetSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1beta1ReplicaSetStatus -> V1beta1ReplicaSet)
-> Parser (Maybe V1beta1ReplicaSetStatus)
-> Parser V1beta1ReplicaSet
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1ReplicaSetStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta1ReplicaSet
instance A.ToJSON V1beta1ReplicaSet where
  toJSON :: V1beta1ReplicaSet -> Value
toJSON V1beta1ReplicaSet {Maybe Text
Maybe V1beta1ReplicaSetStatus
Maybe V1beta1ReplicaSetSpec
Maybe V1ObjectMeta
v1beta1ReplicaSetStatus :: Maybe V1beta1ReplicaSetStatus
v1beta1ReplicaSetSpec :: Maybe V1beta1ReplicaSetSpec
v1beta1ReplicaSetMetadata :: Maybe V1ObjectMeta
v1beta1ReplicaSetKind :: Maybe Text
v1beta1ReplicaSetApiVersion :: Maybe Text
v1beta1ReplicaSetStatus :: V1beta1ReplicaSet -> Maybe V1beta1ReplicaSetStatus
v1beta1ReplicaSetSpec :: V1beta1ReplicaSet -> Maybe V1beta1ReplicaSetSpec
v1beta1ReplicaSetMetadata :: V1beta1ReplicaSet -> Maybe V1ObjectMeta
v1beta1ReplicaSetKind :: V1beta1ReplicaSet -> Maybe Text
v1beta1ReplicaSetApiVersion :: V1beta1ReplicaSet -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ReplicaSetApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ReplicaSetKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1ReplicaSetMetadata
      , Text
"spec" Text -> Maybe V1beta1ReplicaSetSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1ReplicaSetSpec
v1beta1ReplicaSetSpec
      , Text
"status" Text -> Maybe V1beta1ReplicaSetStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1ReplicaSetStatus
v1beta1ReplicaSetStatus
      ]


-- | Construct a value of type 'V1beta1ReplicaSet' (by applying it's required fields, if any)
mkV1beta1ReplicaSet
  :: V1beta1ReplicaSet
mkV1beta1ReplicaSet :: V1beta1ReplicaSet
mkV1beta1ReplicaSet =
  V1beta1ReplicaSet :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1ReplicaSetSpec
-> Maybe V1beta1ReplicaSetStatus
-> V1beta1ReplicaSet
V1beta1ReplicaSet
  { v1beta1ReplicaSetApiVersion :: Maybe Text
v1beta1ReplicaSetApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ReplicaSetKind :: Maybe Text
v1beta1ReplicaSetKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ReplicaSetMetadata :: Maybe V1ObjectMeta
v1beta1ReplicaSetMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1ReplicaSetSpec :: Maybe V1beta1ReplicaSetSpec
v1beta1ReplicaSetSpec = Maybe V1beta1ReplicaSetSpec
forall a. Maybe a
Nothing
  , v1beta1ReplicaSetStatus :: Maybe V1beta1ReplicaSetStatus
v1beta1ReplicaSetStatus = Maybe V1beta1ReplicaSetStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta1ReplicaSetCondition
-- | V1beta1ReplicaSetCondition
-- ReplicaSetCondition describes the state of a replica set at a certain point.
data V1beta1ReplicaSetCondition = V1beta1ReplicaSetCondition
  { V1beta1ReplicaSetCondition -> Maybe DateTime
v1beta1ReplicaSetConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - The last time the condition transitioned from one status to another.
  , V1beta1ReplicaSetCondition -> Maybe Text
v1beta1ReplicaSetConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.
  , V1beta1ReplicaSetCondition -> Maybe Text
v1beta1ReplicaSetConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition&#39;s last transition.
  , V1beta1ReplicaSetCondition -> Text
v1beta1ReplicaSetConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , V1beta1ReplicaSetCondition -> Text
v1beta1ReplicaSetConditionType :: !(Text) -- ^ /Required/ "type" - Type of replica set condition.
  } deriving (Int -> V1beta1ReplicaSetCondition -> ShowS
[V1beta1ReplicaSetCondition] -> ShowS
V1beta1ReplicaSetCondition -> String
(Int -> V1beta1ReplicaSetCondition -> ShowS)
-> (V1beta1ReplicaSetCondition -> String)
-> ([V1beta1ReplicaSetCondition] -> ShowS)
-> Show V1beta1ReplicaSetCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ReplicaSetCondition] -> ShowS
$cshowList :: [V1beta1ReplicaSetCondition] -> ShowS
show :: V1beta1ReplicaSetCondition -> String
$cshow :: V1beta1ReplicaSetCondition -> String
showsPrec :: Int -> V1beta1ReplicaSetCondition -> ShowS
$cshowsPrec :: Int -> V1beta1ReplicaSetCondition -> ShowS
P.Show, V1beta1ReplicaSetCondition -> V1beta1ReplicaSetCondition -> Bool
(V1beta1ReplicaSetCondition -> V1beta1ReplicaSetCondition -> Bool)
-> (V1beta1ReplicaSetCondition
    -> V1beta1ReplicaSetCondition -> Bool)
-> Eq V1beta1ReplicaSetCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ReplicaSetCondition -> V1beta1ReplicaSetCondition -> Bool
$c/= :: V1beta1ReplicaSetCondition -> V1beta1ReplicaSetCondition -> Bool
== :: V1beta1ReplicaSetCondition -> V1beta1ReplicaSetCondition -> Bool
$c== :: V1beta1ReplicaSetCondition -> V1beta1ReplicaSetCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ReplicaSetCondition
instance A.FromJSON V1beta1ReplicaSetCondition where
  parseJSON :: Value -> Parser V1beta1ReplicaSetCondition
parseJSON = String
-> (Object -> Parser V1beta1ReplicaSetCondition)
-> Value
-> Parser V1beta1ReplicaSetCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ReplicaSetCondition" ((Object -> Parser V1beta1ReplicaSetCondition)
 -> Value -> Parser V1beta1ReplicaSetCondition)
-> (Object -> Parser V1beta1ReplicaSetCondition)
-> Value
-> Parser V1beta1ReplicaSetCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta1ReplicaSetCondition
V1beta1ReplicaSetCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1beta1ReplicaSetCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text -> Text -> Text -> V1beta1ReplicaSetCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text
   -> Maybe Text -> Text -> Text -> V1beta1ReplicaSetCondition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Text -> Text -> V1beta1ReplicaSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1beta1ReplicaSetCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1beta1ReplicaSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1beta1ReplicaSetCondition)
-> Parser Text -> Parser (Text -> V1beta1ReplicaSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1beta1ReplicaSetCondition)
-> Parser Text -> Parser V1beta1ReplicaSetCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1beta1ReplicaSetCondition
instance A.ToJSON V1beta1ReplicaSetCondition where
  toJSON :: V1beta1ReplicaSetCondition -> Value
toJSON V1beta1ReplicaSetCondition {Maybe Text
Maybe DateTime
Text
v1beta1ReplicaSetConditionType :: Text
v1beta1ReplicaSetConditionStatus :: Text
v1beta1ReplicaSetConditionReason :: Maybe Text
v1beta1ReplicaSetConditionMessage :: Maybe Text
v1beta1ReplicaSetConditionLastTransitionTime :: Maybe DateTime
v1beta1ReplicaSetConditionType :: V1beta1ReplicaSetCondition -> Text
v1beta1ReplicaSetConditionStatus :: V1beta1ReplicaSetCondition -> Text
v1beta1ReplicaSetConditionReason :: V1beta1ReplicaSetCondition -> Maybe Text
v1beta1ReplicaSetConditionMessage :: V1beta1ReplicaSetCondition -> Maybe Text
v1beta1ReplicaSetConditionLastTransitionTime :: V1beta1ReplicaSetCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta1ReplicaSetConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ReplicaSetConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ReplicaSetConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1ReplicaSetConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1ReplicaSetConditionType
      ]


-- | Construct a value of type 'V1beta1ReplicaSetCondition' (by applying it's required fields, if any)
mkV1beta1ReplicaSetCondition
  :: Text -- ^ 'v1beta1ReplicaSetConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'v1beta1ReplicaSetConditionType': Type of replica set condition.
  -> V1beta1ReplicaSetCondition
mkV1beta1ReplicaSetCondition :: Text -> Text -> V1beta1ReplicaSetCondition
mkV1beta1ReplicaSetCondition Text
v1beta1ReplicaSetConditionStatus Text
v1beta1ReplicaSetConditionType =
  V1beta1ReplicaSetCondition :: Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta1ReplicaSetCondition
V1beta1ReplicaSetCondition
  { v1beta1ReplicaSetConditionLastTransitionTime :: Maybe DateTime
v1beta1ReplicaSetConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1beta1ReplicaSetConditionMessage :: Maybe Text
v1beta1ReplicaSetConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ReplicaSetConditionReason :: Maybe Text
v1beta1ReplicaSetConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta1ReplicaSetConditionStatus :: Text
v1beta1ReplicaSetConditionStatus :: Text
v1beta1ReplicaSetConditionStatus
  , Text
v1beta1ReplicaSetConditionType :: Text
v1beta1ReplicaSetConditionType :: Text
v1beta1ReplicaSetConditionType
  }

-- ** V1beta1ReplicaSetList
-- | V1beta1ReplicaSetList
-- ReplicaSetList is a collection of ReplicaSets.
data V1beta1ReplicaSetList = V1beta1ReplicaSetList
  { V1beta1ReplicaSetList -> Maybe Text
v1beta1ReplicaSetListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1ReplicaSetList -> [V1beta1ReplicaSet]
v1beta1ReplicaSetListItems :: !([V1beta1ReplicaSet]) -- ^ /Required/ "items" - List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
  , V1beta1ReplicaSetList -> Maybe Text
v1beta1ReplicaSetListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1ReplicaSetList -> Maybe V1ListMeta
v1beta1ReplicaSetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1ReplicaSetList -> ShowS
[V1beta1ReplicaSetList] -> ShowS
V1beta1ReplicaSetList -> String
(Int -> V1beta1ReplicaSetList -> ShowS)
-> (V1beta1ReplicaSetList -> String)
-> ([V1beta1ReplicaSetList] -> ShowS)
-> Show V1beta1ReplicaSetList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ReplicaSetList] -> ShowS
$cshowList :: [V1beta1ReplicaSetList] -> ShowS
show :: V1beta1ReplicaSetList -> String
$cshow :: V1beta1ReplicaSetList -> String
showsPrec :: Int -> V1beta1ReplicaSetList -> ShowS
$cshowsPrec :: Int -> V1beta1ReplicaSetList -> ShowS
P.Show, V1beta1ReplicaSetList -> V1beta1ReplicaSetList -> Bool
(V1beta1ReplicaSetList -> V1beta1ReplicaSetList -> Bool)
-> (V1beta1ReplicaSetList -> V1beta1ReplicaSetList -> Bool)
-> Eq V1beta1ReplicaSetList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ReplicaSetList -> V1beta1ReplicaSetList -> Bool
$c/= :: V1beta1ReplicaSetList -> V1beta1ReplicaSetList -> Bool
== :: V1beta1ReplicaSetList -> V1beta1ReplicaSetList -> Bool
$c== :: V1beta1ReplicaSetList -> V1beta1ReplicaSetList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ReplicaSetList
instance A.FromJSON V1beta1ReplicaSetList where
  parseJSON :: Value -> Parser V1beta1ReplicaSetList
parseJSON = String
-> (Object -> Parser V1beta1ReplicaSetList)
-> Value
-> Parser V1beta1ReplicaSetList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ReplicaSetList" ((Object -> Parser V1beta1ReplicaSetList)
 -> Value -> Parser V1beta1ReplicaSetList)
-> (Object -> Parser V1beta1ReplicaSetList)
-> Value
-> Parser V1beta1ReplicaSetList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1ReplicaSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1ReplicaSetList
V1beta1ReplicaSetList
      (Maybe Text
 -> [V1beta1ReplicaSet]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1ReplicaSetList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1ReplicaSet]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1ReplicaSetList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1ReplicaSet]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1ReplicaSetList)
-> Parser [V1beta1ReplicaSet]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1ReplicaSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1ReplicaSet]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1ReplicaSetList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1ReplicaSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1ReplicaSetList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1ReplicaSetList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1ReplicaSetList
instance A.ToJSON V1beta1ReplicaSetList where
  toJSON :: V1beta1ReplicaSetList -> Value
toJSON V1beta1ReplicaSetList {[V1beta1ReplicaSet]
Maybe Text
Maybe V1ListMeta
v1beta1ReplicaSetListMetadata :: Maybe V1ListMeta
v1beta1ReplicaSetListKind :: Maybe Text
v1beta1ReplicaSetListItems :: [V1beta1ReplicaSet]
v1beta1ReplicaSetListApiVersion :: Maybe Text
v1beta1ReplicaSetListMetadata :: V1beta1ReplicaSetList -> Maybe V1ListMeta
v1beta1ReplicaSetListKind :: V1beta1ReplicaSetList -> Maybe Text
v1beta1ReplicaSetListItems :: V1beta1ReplicaSetList -> [V1beta1ReplicaSet]
v1beta1ReplicaSetListApiVersion :: V1beta1ReplicaSetList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ReplicaSetListApiVersion
      , Text
"items" Text -> [V1beta1ReplicaSet] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1ReplicaSet]
v1beta1ReplicaSetListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ReplicaSetListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1ReplicaSetListMetadata
      ]


-- | Construct a value of type 'V1beta1ReplicaSetList' (by applying it's required fields, if any)
mkV1beta1ReplicaSetList
  :: [V1beta1ReplicaSet] -- ^ 'v1beta1ReplicaSetListItems': List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
  -> V1beta1ReplicaSetList
mkV1beta1ReplicaSetList :: [V1beta1ReplicaSet] -> V1beta1ReplicaSetList
mkV1beta1ReplicaSetList [V1beta1ReplicaSet]
v1beta1ReplicaSetListItems =
  V1beta1ReplicaSetList :: Maybe Text
-> [V1beta1ReplicaSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1ReplicaSetList
V1beta1ReplicaSetList
  { v1beta1ReplicaSetListApiVersion :: Maybe Text
v1beta1ReplicaSetListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1ReplicaSet]
v1beta1ReplicaSetListItems :: [V1beta1ReplicaSet]
v1beta1ReplicaSetListItems :: [V1beta1ReplicaSet]
v1beta1ReplicaSetListItems
  , v1beta1ReplicaSetListKind :: Maybe Text
v1beta1ReplicaSetListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ReplicaSetListMetadata :: Maybe V1ListMeta
v1beta1ReplicaSetListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1ReplicaSetSpec
-- | V1beta1ReplicaSetSpec
-- ReplicaSetSpec is the specification of a ReplicaSet.
data V1beta1ReplicaSetSpec = V1beta1ReplicaSetSpec
  { V1beta1ReplicaSetSpec -> Maybe Int
v1beta1ReplicaSetSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)
  , V1beta1ReplicaSetSpec -> Maybe Int
v1beta1ReplicaSetSpecReplicas :: !(Maybe Int) -- ^ "replicas" - Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller
  , V1beta1ReplicaSetSpec -> Maybe V1LabelSelector
v1beta1ReplicaSetSpecSelector :: !(Maybe V1LabelSelector) -- ^ "selector"
  , V1beta1ReplicaSetSpec -> Maybe V1PodTemplateSpec
v1beta1ReplicaSetSpecTemplate :: !(Maybe V1PodTemplateSpec) -- ^ "template"
  } deriving (Int -> V1beta1ReplicaSetSpec -> ShowS
[V1beta1ReplicaSetSpec] -> ShowS
V1beta1ReplicaSetSpec -> String
(Int -> V1beta1ReplicaSetSpec -> ShowS)
-> (V1beta1ReplicaSetSpec -> String)
-> ([V1beta1ReplicaSetSpec] -> ShowS)
-> Show V1beta1ReplicaSetSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ReplicaSetSpec] -> ShowS
$cshowList :: [V1beta1ReplicaSetSpec] -> ShowS
show :: V1beta1ReplicaSetSpec -> String
$cshow :: V1beta1ReplicaSetSpec -> String
showsPrec :: Int -> V1beta1ReplicaSetSpec -> ShowS
$cshowsPrec :: Int -> V1beta1ReplicaSetSpec -> ShowS
P.Show, V1beta1ReplicaSetSpec -> V1beta1ReplicaSetSpec -> Bool
(V1beta1ReplicaSetSpec -> V1beta1ReplicaSetSpec -> Bool)
-> (V1beta1ReplicaSetSpec -> V1beta1ReplicaSetSpec -> Bool)
-> Eq V1beta1ReplicaSetSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ReplicaSetSpec -> V1beta1ReplicaSetSpec -> Bool
$c/= :: V1beta1ReplicaSetSpec -> V1beta1ReplicaSetSpec -> Bool
== :: V1beta1ReplicaSetSpec -> V1beta1ReplicaSetSpec -> Bool
$c== :: V1beta1ReplicaSetSpec -> V1beta1ReplicaSetSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ReplicaSetSpec
instance A.FromJSON V1beta1ReplicaSetSpec where
  parseJSON :: Value -> Parser V1beta1ReplicaSetSpec
parseJSON = String
-> (Object -> Parser V1beta1ReplicaSetSpec)
-> Value
-> Parser V1beta1ReplicaSetSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ReplicaSetSpec" ((Object -> Parser V1beta1ReplicaSetSpec)
 -> Value -> Parser V1beta1ReplicaSetSpec)
-> (Object -> Parser V1beta1ReplicaSetSpec)
-> Value
-> Parser V1beta1ReplicaSetSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Int
-> Maybe V1LabelSelector
-> Maybe V1PodTemplateSpec
-> V1beta1ReplicaSetSpec
V1beta1ReplicaSetSpec
      (Maybe Int
 -> Maybe Int
 -> Maybe V1LabelSelector
 -> Maybe V1PodTemplateSpec
 -> V1beta1ReplicaSetSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe V1LabelSelector
      -> Maybe V1PodTemplateSpec
      -> V1beta1ReplicaSetSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minReadySeconds")
      Parser
  (Maybe Int
   -> Maybe V1LabelSelector
   -> Maybe V1PodTemplateSpec
   -> V1beta1ReplicaSetSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe V1LabelSelector
      -> Maybe V1PodTemplateSpec -> V1beta1ReplicaSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")
      Parser
  (Maybe V1LabelSelector
   -> Maybe V1PodTemplateSpec -> V1beta1ReplicaSetSpec)
-> Parser (Maybe V1LabelSelector)
-> Parser (Maybe V1PodTemplateSpec -> V1beta1ReplicaSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")
      Parser (Maybe V1PodTemplateSpec -> V1beta1ReplicaSetSpec)
-> Parser (Maybe V1PodTemplateSpec) -> Parser V1beta1ReplicaSetSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PodTemplateSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"template")

-- | ToJSON V1beta1ReplicaSetSpec
instance A.ToJSON V1beta1ReplicaSetSpec where
  toJSON :: V1beta1ReplicaSetSpec -> Value
toJSON V1beta1ReplicaSetSpec {Maybe Int
Maybe V1PodTemplateSpec
Maybe V1LabelSelector
v1beta1ReplicaSetSpecTemplate :: Maybe V1PodTemplateSpec
v1beta1ReplicaSetSpecSelector :: Maybe V1LabelSelector
v1beta1ReplicaSetSpecReplicas :: Maybe Int
v1beta1ReplicaSetSpecMinReadySeconds :: Maybe Int
v1beta1ReplicaSetSpecTemplate :: V1beta1ReplicaSetSpec -> Maybe V1PodTemplateSpec
v1beta1ReplicaSetSpecSelector :: V1beta1ReplicaSetSpec -> Maybe V1LabelSelector
v1beta1ReplicaSetSpecReplicas :: V1beta1ReplicaSetSpec -> Maybe Int
v1beta1ReplicaSetSpecMinReadySeconds :: V1beta1ReplicaSetSpec -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"minReadySeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1ReplicaSetSpecMinReadySeconds
      , Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1ReplicaSetSpecReplicas
      , Text
"selector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1beta1ReplicaSetSpecSelector
      , Text
"template" Text -> Maybe V1PodTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PodTemplateSpec
v1beta1ReplicaSetSpecTemplate
      ]


-- | Construct a value of type 'V1beta1ReplicaSetSpec' (by applying it's required fields, if any)
mkV1beta1ReplicaSetSpec
  :: V1beta1ReplicaSetSpec
mkV1beta1ReplicaSetSpec :: V1beta1ReplicaSetSpec
mkV1beta1ReplicaSetSpec =
  V1beta1ReplicaSetSpec :: Maybe Int
-> Maybe Int
-> Maybe V1LabelSelector
-> Maybe V1PodTemplateSpec
-> V1beta1ReplicaSetSpec
V1beta1ReplicaSetSpec
  { v1beta1ReplicaSetSpecMinReadySeconds :: Maybe Int
v1beta1ReplicaSetSpecMinReadySeconds = Maybe Int
forall a. Maybe a
Nothing
  , v1beta1ReplicaSetSpecReplicas :: Maybe Int
v1beta1ReplicaSetSpecReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1beta1ReplicaSetSpecSelector :: Maybe V1LabelSelector
v1beta1ReplicaSetSpecSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , v1beta1ReplicaSetSpecTemplate :: Maybe V1PodTemplateSpec
v1beta1ReplicaSetSpecTemplate = Maybe V1PodTemplateSpec
forall a. Maybe a
Nothing
  }

-- ** V1beta1ReplicaSetStatus
-- | V1beta1ReplicaSetStatus
-- ReplicaSetStatus represents the current status of a ReplicaSet.
data V1beta1ReplicaSetStatus = V1beta1ReplicaSetStatus
  { V1beta1ReplicaSetStatus -> Maybe Int
v1beta1ReplicaSetStatusAvailableReplicas :: !(Maybe Int) -- ^ "availableReplicas" - The number of available replicas (ready for at least minReadySeconds) for this replica set.
  , V1beta1ReplicaSetStatus -> Maybe [V1beta1ReplicaSetCondition]
v1beta1ReplicaSetStatusConditions :: !(Maybe [V1beta1ReplicaSetCondition]) -- ^ "conditions" - Represents the latest available observations of a replica set&#39;s current state.
  , V1beta1ReplicaSetStatus -> Maybe Int
v1beta1ReplicaSetStatusFullyLabeledReplicas :: !(Maybe Int) -- ^ "fullyLabeledReplicas" - The number of pods that have labels matching the labels of the pod template of the replicaset.
  , V1beta1ReplicaSetStatus -> Maybe Integer
v1beta1ReplicaSetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - ObservedGeneration reflects the generation of the most recently observed ReplicaSet.
  , V1beta1ReplicaSetStatus -> Maybe Int
v1beta1ReplicaSetStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - The number of ready replicas for this replica set.
  , V1beta1ReplicaSetStatus -> Int
v1beta1ReplicaSetStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller
  } deriving (Int -> V1beta1ReplicaSetStatus -> ShowS
[V1beta1ReplicaSetStatus] -> ShowS
V1beta1ReplicaSetStatus -> String
(Int -> V1beta1ReplicaSetStatus -> ShowS)
-> (V1beta1ReplicaSetStatus -> String)
-> ([V1beta1ReplicaSetStatus] -> ShowS)
-> Show V1beta1ReplicaSetStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ReplicaSetStatus] -> ShowS
$cshowList :: [V1beta1ReplicaSetStatus] -> ShowS
show :: V1beta1ReplicaSetStatus -> String
$cshow :: V1beta1ReplicaSetStatus -> String
showsPrec :: Int -> V1beta1ReplicaSetStatus -> ShowS
$cshowsPrec :: Int -> V1beta1ReplicaSetStatus -> ShowS
P.Show, V1beta1ReplicaSetStatus -> V1beta1ReplicaSetStatus -> Bool
(V1beta1ReplicaSetStatus -> V1beta1ReplicaSetStatus -> Bool)
-> (V1beta1ReplicaSetStatus -> V1beta1ReplicaSetStatus -> Bool)
-> Eq V1beta1ReplicaSetStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ReplicaSetStatus -> V1beta1ReplicaSetStatus -> Bool
$c/= :: V1beta1ReplicaSetStatus -> V1beta1ReplicaSetStatus -> Bool
== :: V1beta1ReplicaSetStatus -> V1beta1ReplicaSetStatus -> Bool
$c== :: V1beta1ReplicaSetStatus -> V1beta1ReplicaSetStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ReplicaSetStatus
instance A.FromJSON V1beta1ReplicaSetStatus where
  parseJSON :: Value -> Parser V1beta1ReplicaSetStatus
parseJSON = String
-> (Object -> Parser V1beta1ReplicaSetStatus)
-> Value
-> Parser V1beta1ReplicaSetStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ReplicaSetStatus" ((Object -> Parser V1beta1ReplicaSetStatus)
 -> Value -> Parser V1beta1ReplicaSetStatus)
-> (Object -> Parser V1beta1ReplicaSetStatus)
-> Value
-> Parser V1beta1ReplicaSetStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe [V1beta1ReplicaSetCondition]
-> Maybe Int
-> Maybe Integer
-> Maybe Int
-> Int
-> V1beta1ReplicaSetStatus
V1beta1ReplicaSetStatus
      (Maybe Int
 -> Maybe [V1beta1ReplicaSetCondition]
 -> Maybe Int
 -> Maybe Integer
 -> Maybe Int
 -> Int
 -> V1beta1ReplicaSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe [V1beta1ReplicaSetCondition]
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> Int
      -> V1beta1ReplicaSetStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"availableReplicas")
      Parser
  (Maybe [V1beta1ReplicaSetCondition]
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> Int
   -> V1beta1ReplicaSetStatus)
-> Parser (Maybe [V1beta1ReplicaSetCondition])
-> Parser
     (Maybe Int
      -> Maybe Integer -> Maybe Int -> Int -> V1beta1ReplicaSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1ReplicaSetCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Maybe Int
   -> Maybe Integer -> Maybe Int -> Int -> V1beta1ReplicaSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe Integer -> Maybe Int -> Int -> V1beta1ReplicaSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fullyLabeledReplicas")
      Parser
  (Maybe Integer -> Maybe Int -> Int -> V1beta1ReplicaSetStatus)
-> Parser (Maybe Integer)
-> Parser (Maybe Int -> Int -> V1beta1ReplicaSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")
      Parser (Maybe Int -> Int -> V1beta1ReplicaSetStatus)
-> Parser (Maybe Int) -> Parser (Int -> V1beta1ReplicaSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readyReplicas")
      Parser (Int -> V1beta1ReplicaSetStatus)
-> Parser Int -> Parser V1beta1ReplicaSetStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"replicas")

-- | ToJSON V1beta1ReplicaSetStatus
instance A.ToJSON V1beta1ReplicaSetStatus where
  toJSON :: V1beta1ReplicaSetStatus -> Value
toJSON V1beta1ReplicaSetStatus {Int
Maybe Int
Maybe Integer
Maybe [V1beta1ReplicaSetCondition]
v1beta1ReplicaSetStatusReplicas :: Int
v1beta1ReplicaSetStatusReadyReplicas :: Maybe Int
v1beta1ReplicaSetStatusObservedGeneration :: Maybe Integer
v1beta1ReplicaSetStatusFullyLabeledReplicas :: Maybe Int
v1beta1ReplicaSetStatusConditions :: Maybe [V1beta1ReplicaSetCondition]
v1beta1ReplicaSetStatusAvailableReplicas :: Maybe Int
v1beta1ReplicaSetStatusReplicas :: V1beta1ReplicaSetStatus -> Int
v1beta1ReplicaSetStatusReadyReplicas :: V1beta1ReplicaSetStatus -> Maybe Int
v1beta1ReplicaSetStatusObservedGeneration :: V1beta1ReplicaSetStatus -> Maybe Integer
v1beta1ReplicaSetStatusFullyLabeledReplicas :: V1beta1ReplicaSetStatus -> Maybe Int
v1beta1ReplicaSetStatusConditions :: V1beta1ReplicaSetStatus -> Maybe [V1beta1ReplicaSetCondition]
v1beta1ReplicaSetStatusAvailableReplicas :: V1beta1ReplicaSetStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"availableReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1ReplicaSetStatusAvailableReplicas
      , Text
"conditions" Text -> Maybe [V1beta1ReplicaSetCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1ReplicaSetCondition]
v1beta1ReplicaSetStatusConditions
      , Text
"fullyLabeledReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1ReplicaSetStatusFullyLabeledReplicas
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1beta1ReplicaSetStatusObservedGeneration
      , Text
"readyReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1ReplicaSetStatusReadyReplicas
      , Text
"replicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta1ReplicaSetStatusReplicas
      ]


-- | Construct a value of type 'V1beta1ReplicaSetStatus' (by applying it's required fields, if any)
mkV1beta1ReplicaSetStatus
  :: Int -- ^ 'v1beta1ReplicaSetStatusReplicas': Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller
  -> V1beta1ReplicaSetStatus
mkV1beta1ReplicaSetStatus :: Int -> V1beta1ReplicaSetStatus
mkV1beta1ReplicaSetStatus Int
v1beta1ReplicaSetStatusReplicas =
  V1beta1ReplicaSetStatus :: Maybe Int
-> Maybe [V1beta1ReplicaSetCondition]
-> Maybe Int
-> Maybe Integer
-> Maybe Int
-> Int
-> V1beta1ReplicaSetStatus
V1beta1ReplicaSetStatus
  { v1beta1ReplicaSetStatusAvailableReplicas :: Maybe Int
v1beta1ReplicaSetStatusAvailableReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1beta1ReplicaSetStatusConditions :: Maybe [V1beta1ReplicaSetCondition]
v1beta1ReplicaSetStatusConditions = Maybe [V1beta1ReplicaSetCondition]
forall a. Maybe a
Nothing
  , v1beta1ReplicaSetStatusFullyLabeledReplicas :: Maybe Int
v1beta1ReplicaSetStatusFullyLabeledReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1beta1ReplicaSetStatusObservedGeneration :: Maybe Integer
v1beta1ReplicaSetStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  , v1beta1ReplicaSetStatusReadyReplicas :: Maybe Int
v1beta1ReplicaSetStatusReadyReplicas = Maybe Int
forall a. Maybe a
Nothing
  , Int
v1beta1ReplicaSetStatusReplicas :: Int
v1beta1ReplicaSetStatusReplicas :: Int
v1beta1ReplicaSetStatusReplicas
  }

-- ** V1beta1ResourceAttributes
-- | V1beta1ResourceAttributes
-- ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface
data V1beta1ResourceAttributes = V1beta1ResourceAttributes
  { V1beta1ResourceAttributes -> Maybe Text
v1beta1ResourceAttributesGroup :: !(Maybe Text) -- ^ "group" - Group is the API Group of the Resource.  \&quot;*\&quot; means all.
  , V1beta1ResourceAttributes -> Maybe Text
v1beta1ResourceAttributesName :: !(Maybe Text) -- ^ "name" - Name is the name of the resource being requested for a \&quot;get\&quot; or deleted for a \&quot;delete\&quot;. \&quot;\&quot; (empty) means all.
  , V1beta1ResourceAttributes -> Maybe Text
v1beta1ResourceAttributesNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace is the namespace of the action being requested.  Currently, there is no distinction between no namespace and all namespaces \&quot;\&quot; (empty) is defaulted for LocalSubjectAccessReviews \&quot;\&quot; (empty) is empty for cluster-scoped resources \&quot;\&quot; (empty) means \&quot;all\&quot; for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview
  , V1beta1ResourceAttributes -> Maybe Text
v1beta1ResourceAttributesResource :: !(Maybe Text) -- ^ "resource" - Resource is one of the existing resource types.  \&quot;*\&quot; means all.
  , V1beta1ResourceAttributes -> Maybe Text
v1beta1ResourceAttributesSubresource :: !(Maybe Text) -- ^ "subresource" - Subresource is one of the existing resource types.  \&quot;\&quot; means none.
  , V1beta1ResourceAttributes -> Maybe Text
v1beta1ResourceAttributesVerb :: !(Maybe Text) -- ^ "verb" - Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \&quot;*\&quot; means all.
  , V1beta1ResourceAttributes -> Maybe Text
v1beta1ResourceAttributesVersion :: !(Maybe Text) -- ^ "version" - Version is the API Version of the Resource.  \&quot;*\&quot; means all.
  } deriving (Int -> V1beta1ResourceAttributes -> ShowS
[V1beta1ResourceAttributes] -> ShowS
V1beta1ResourceAttributes -> String
(Int -> V1beta1ResourceAttributes -> ShowS)
-> (V1beta1ResourceAttributes -> String)
-> ([V1beta1ResourceAttributes] -> ShowS)
-> Show V1beta1ResourceAttributes
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ResourceAttributes] -> ShowS
$cshowList :: [V1beta1ResourceAttributes] -> ShowS
show :: V1beta1ResourceAttributes -> String
$cshow :: V1beta1ResourceAttributes -> String
showsPrec :: Int -> V1beta1ResourceAttributes -> ShowS
$cshowsPrec :: Int -> V1beta1ResourceAttributes -> ShowS
P.Show, V1beta1ResourceAttributes -> V1beta1ResourceAttributes -> Bool
(V1beta1ResourceAttributes -> V1beta1ResourceAttributes -> Bool)
-> (V1beta1ResourceAttributes -> V1beta1ResourceAttributes -> Bool)
-> Eq V1beta1ResourceAttributes
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ResourceAttributes -> V1beta1ResourceAttributes -> Bool
$c/= :: V1beta1ResourceAttributes -> V1beta1ResourceAttributes -> Bool
== :: V1beta1ResourceAttributes -> V1beta1ResourceAttributes -> Bool
$c== :: V1beta1ResourceAttributes -> V1beta1ResourceAttributes -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ResourceAttributes
instance A.FromJSON V1beta1ResourceAttributes where
  parseJSON :: Value -> Parser V1beta1ResourceAttributes
parseJSON = String
-> (Object -> Parser V1beta1ResourceAttributes)
-> Value
-> Parser V1beta1ResourceAttributes
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ResourceAttributes" ((Object -> Parser V1beta1ResourceAttributes)
 -> Value -> Parser V1beta1ResourceAttributes)
-> (Object -> Parser V1beta1ResourceAttributes)
-> Value
-> Parser V1beta1ResourceAttributes
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> V1beta1ResourceAttributes
V1beta1ResourceAttributes
      (Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> V1beta1ResourceAttributes)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1beta1ResourceAttributes)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"group")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1beta1ResourceAttributes)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1beta1ResourceAttributes)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"name")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1beta1ResourceAttributes)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> V1beta1ResourceAttributes)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespace")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> V1beta1ResourceAttributes)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Text -> V1beta1ResourceAttributes)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resource")
      Parser
  (Maybe Text
   -> Maybe Text -> Maybe Text -> V1beta1ResourceAttributes)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> V1beta1ResourceAttributes)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"subresource")
      Parser (Maybe Text -> Maybe Text -> V1beta1ResourceAttributes)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1beta1ResourceAttributes)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"verb")
      Parser (Maybe Text -> V1beta1ResourceAttributes)
-> Parser (Maybe Text) -> Parser V1beta1ResourceAttributes
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"version")

-- | ToJSON V1beta1ResourceAttributes
instance A.ToJSON V1beta1ResourceAttributes where
  toJSON :: V1beta1ResourceAttributes -> Value
toJSON V1beta1ResourceAttributes {Maybe Text
v1beta1ResourceAttributesVersion :: Maybe Text
v1beta1ResourceAttributesVerb :: Maybe Text
v1beta1ResourceAttributesSubresource :: Maybe Text
v1beta1ResourceAttributesResource :: Maybe Text
v1beta1ResourceAttributesNamespace :: Maybe Text
v1beta1ResourceAttributesName :: Maybe Text
v1beta1ResourceAttributesGroup :: Maybe Text
v1beta1ResourceAttributesVersion :: V1beta1ResourceAttributes -> Maybe Text
v1beta1ResourceAttributesVerb :: V1beta1ResourceAttributes -> Maybe Text
v1beta1ResourceAttributesSubresource :: V1beta1ResourceAttributes -> Maybe Text
v1beta1ResourceAttributesResource :: V1beta1ResourceAttributes -> Maybe Text
v1beta1ResourceAttributesNamespace :: V1beta1ResourceAttributes -> Maybe Text
v1beta1ResourceAttributesName :: V1beta1ResourceAttributes -> Maybe Text
v1beta1ResourceAttributesGroup :: V1beta1ResourceAttributes -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"group" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ResourceAttributesGroup
      , Text
"name" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ResourceAttributesName
      , Text
"namespace" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ResourceAttributesNamespace
      , Text
"resource" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ResourceAttributesResource
      , Text
"subresource" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ResourceAttributesSubresource
      , Text
"verb" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ResourceAttributesVerb
      , Text
"version" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ResourceAttributesVersion
      ]


-- | Construct a value of type 'V1beta1ResourceAttributes' (by applying it's required fields, if any)
mkV1beta1ResourceAttributes
  :: V1beta1ResourceAttributes
mkV1beta1ResourceAttributes :: V1beta1ResourceAttributes
mkV1beta1ResourceAttributes =
  V1beta1ResourceAttributes :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> V1beta1ResourceAttributes
V1beta1ResourceAttributes
  { v1beta1ResourceAttributesGroup :: Maybe Text
v1beta1ResourceAttributesGroup = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ResourceAttributesName :: Maybe Text
v1beta1ResourceAttributesName = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ResourceAttributesNamespace :: Maybe Text
v1beta1ResourceAttributesNamespace = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ResourceAttributesResource :: Maybe Text
v1beta1ResourceAttributesResource = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ResourceAttributesSubresource :: Maybe Text
v1beta1ResourceAttributesSubresource = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ResourceAttributesVerb :: Maybe Text
v1beta1ResourceAttributesVerb = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ResourceAttributesVersion :: Maybe Text
v1beta1ResourceAttributesVersion = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1ResourceRule
-- | V1beta1ResourceRule
-- ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.
data V1beta1ResourceRule = V1beta1ResourceRule
  { V1beta1ResourceRule -> Maybe [Text]
v1beta1ResourceRuleApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.  \&quot;*\&quot; means all.
  , V1beta1ResourceRule -> Maybe [Text]
v1beta1ResourceRuleResourceNames :: !(Maybe [Text]) -- ^ "resourceNames" - ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \&quot;*\&quot; means all.
  , V1beta1ResourceRule -> Maybe [Text]
v1beta1ResourceRuleResources :: !(Maybe [Text]) -- ^ "resources" - Resources is a list of resources this rule applies to.  \&quot;*\&quot; means all in the specified apiGroups.  \&quot;*/foo\&quot; represents the subresource &#39;foo&#39; for all resources in the specified apiGroups.
  , V1beta1ResourceRule -> [Text]
v1beta1ResourceRuleVerbs :: !([Text]) -- ^ /Required/ "verbs" - Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \&quot;*\&quot; means all.
  } deriving (Int -> V1beta1ResourceRule -> ShowS
[V1beta1ResourceRule] -> ShowS
V1beta1ResourceRule -> String
(Int -> V1beta1ResourceRule -> ShowS)
-> (V1beta1ResourceRule -> String)
-> ([V1beta1ResourceRule] -> ShowS)
-> Show V1beta1ResourceRule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ResourceRule] -> ShowS
$cshowList :: [V1beta1ResourceRule] -> ShowS
show :: V1beta1ResourceRule -> String
$cshow :: V1beta1ResourceRule -> String
showsPrec :: Int -> V1beta1ResourceRule -> ShowS
$cshowsPrec :: Int -> V1beta1ResourceRule -> ShowS
P.Show, V1beta1ResourceRule -> V1beta1ResourceRule -> Bool
(V1beta1ResourceRule -> V1beta1ResourceRule -> Bool)
-> (V1beta1ResourceRule -> V1beta1ResourceRule -> Bool)
-> Eq V1beta1ResourceRule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ResourceRule -> V1beta1ResourceRule -> Bool
$c/= :: V1beta1ResourceRule -> V1beta1ResourceRule -> Bool
== :: V1beta1ResourceRule -> V1beta1ResourceRule -> Bool
$c== :: V1beta1ResourceRule -> V1beta1ResourceRule -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ResourceRule
instance A.FromJSON V1beta1ResourceRule where
  parseJSON :: Value -> Parser V1beta1ResourceRule
parseJSON = String
-> (Object -> Parser V1beta1ResourceRule)
-> Value
-> Parser V1beta1ResourceRule
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ResourceRule" ((Object -> Parser V1beta1ResourceRule)
 -> Value -> Parser V1beta1ResourceRule)
-> (Object -> Parser V1beta1ResourceRule)
-> Value
-> Parser V1beta1ResourceRule
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Maybe [Text] -> Maybe [Text] -> [Text] -> V1beta1ResourceRule
V1beta1ResourceRule
      (Maybe [Text]
 -> Maybe [Text] -> Maybe [Text] -> [Text] -> V1beta1ResourceRule)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text] -> Maybe [Text] -> [Text] -> V1beta1ResourceRule)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiGroups")
      Parser
  (Maybe [Text] -> Maybe [Text] -> [Text] -> V1beta1ResourceRule)
-> Parser (Maybe [Text])
-> Parser (Maybe [Text] -> [Text] -> V1beta1ResourceRule)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resourceNames")
      Parser (Maybe [Text] -> [Text] -> V1beta1ResourceRule)
-> Parser (Maybe [Text]) -> Parser ([Text] -> V1beta1ResourceRule)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resources")
      Parser ([Text] -> V1beta1ResourceRule)
-> Parser [Text] -> Parser V1beta1ResourceRule
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"verbs")

-- | ToJSON V1beta1ResourceRule
instance A.ToJSON V1beta1ResourceRule where
  toJSON :: V1beta1ResourceRule -> Value
toJSON V1beta1ResourceRule {[Text]
Maybe [Text]
v1beta1ResourceRuleVerbs :: [Text]
v1beta1ResourceRuleResources :: Maybe [Text]
v1beta1ResourceRuleResourceNames :: Maybe [Text]
v1beta1ResourceRuleApiGroups :: Maybe [Text]
v1beta1ResourceRuleVerbs :: V1beta1ResourceRule -> [Text]
v1beta1ResourceRuleResources :: V1beta1ResourceRule -> Maybe [Text]
v1beta1ResourceRuleResourceNames :: V1beta1ResourceRule -> Maybe [Text]
v1beta1ResourceRuleApiGroups :: V1beta1ResourceRule -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiGroups" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1ResourceRuleApiGroups
      , Text
"resourceNames" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1ResourceRuleResourceNames
      , Text
"resources" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1ResourceRuleResources
      , Text
"verbs" Text -> [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [Text]
v1beta1ResourceRuleVerbs
      ]


-- | Construct a value of type 'V1beta1ResourceRule' (by applying it's required fields, if any)
mkV1beta1ResourceRule
  :: [Text] -- ^ 'v1beta1ResourceRuleVerbs': Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.
  -> V1beta1ResourceRule
mkV1beta1ResourceRule :: [Text] -> V1beta1ResourceRule
mkV1beta1ResourceRule [Text]
v1beta1ResourceRuleVerbs =
  V1beta1ResourceRule :: Maybe [Text]
-> Maybe [Text] -> Maybe [Text] -> [Text] -> V1beta1ResourceRule
V1beta1ResourceRule
  { v1beta1ResourceRuleApiGroups :: Maybe [Text]
v1beta1ResourceRuleApiGroups = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1ResourceRuleResourceNames :: Maybe [Text]
v1beta1ResourceRuleResourceNames = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1ResourceRuleResources :: Maybe [Text]
v1beta1ResourceRuleResources = Maybe [Text]
forall a. Maybe a
Nothing
  , [Text]
v1beta1ResourceRuleVerbs :: [Text]
v1beta1ResourceRuleVerbs :: [Text]
v1beta1ResourceRuleVerbs
  }

-- ** V1beta1Role
-- | V1beta1Role
-- Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.
data V1beta1Role = V1beta1Role
  { V1beta1Role -> Maybe Text
v1beta1RoleApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1Role -> Maybe Text
v1beta1RoleKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1Role -> Maybe V1ObjectMeta
v1beta1RoleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1Role -> Maybe [V1beta1PolicyRule]
v1beta1RoleRules :: !(Maybe [V1beta1PolicyRule]) -- ^ "rules" - Rules holds all the PolicyRules for this Role
  } deriving (Int -> V1beta1Role -> ShowS
[V1beta1Role] -> ShowS
V1beta1Role -> String
(Int -> V1beta1Role -> ShowS)
-> (V1beta1Role -> String)
-> ([V1beta1Role] -> ShowS)
-> Show V1beta1Role
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1Role] -> ShowS
$cshowList :: [V1beta1Role] -> ShowS
show :: V1beta1Role -> String
$cshow :: V1beta1Role -> String
showsPrec :: Int -> V1beta1Role -> ShowS
$cshowsPrec :: Int -> V1beta1Role -> ShowS
P.Show, V1beta1Role -> V1beta1Role -> Bool
(V1beta1Role -> V1beta1Role -> Bool)
-> (V1beta1Role -> V1beta1Role -> Bool) -> Eq V1beta1Role
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1Role -> V1beta1Role -> Bool
$c/= :: V1beta1Role -> V1beta1Role -> Bool
== :: V1beta1Role -> V1beta1Role -> Bool
$c== :: V1beta1Role -> V1beta1Role -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1Role
instance A.FromJSON V1beta1Role where
  parseJSON :: Value -> Parser V1beta1Role
parseJSON = String
-> (Object -> Parser V1beta1Role) -> Value -> Parser V1beta1Role
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1Role" ((Object -> Parser V1beta1Role) -> Value -> Parser V1beta1Role)
-> (Object -> Parser V1beta1Role) -> Value -> Parser V1beta1Role
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1beta1PolicyRule]
-> V1beta1Role
V1beta1Role
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe [V1beta1PolicyRule]
 -> V1beta1Role)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta -> Maybe [V1beta1PolicyRule] -> V1beta1Role)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta -> Maybe [V1beta1PolicyRule] -> V1beta1Role)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta -> Maybe [V1beta1PolicyRule] -> V1beta1Role)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta -> Maybe [V1beta1PolicyRule] -> V1beta1Role)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe [V1beta1PolicyRule] -> V1beta1Role)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe [V1beta1PolicyRule] -> V1beta1Role)
-> Parser (Maybe [V1beta1PolicyRule]) -> Parser V1beta1Role
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1PolicyRule])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rules")

-- | ToJSON V1beta1Role
instance A.ToJSON V1beta1Role where
  toJSON :: V1beta1Role -> Value
toJSON V1beta1Role {Maybe [V1beta1PolicyRule]
Maybe Text
Maybe V1ObjectMeta
v1beta1RoleRules :: Maybe [V1beta1PolicyRule]
v1beta1RoleMetadata :: Maybe V1ObjectMeta
v1beta1RoleKind :: Maybe Text
v1beta1RoleApiVersion :: Maybe Text
v1beta1RoleRules :: V1beta1Role -> Maybe [V1beta1PolicyRule]
v1beta1RoleMetadata :: V1beta1Role -> Maybe V1ObjectMeta
v1beta1RoleKind :: V1beta1Role -> Maybe Text
v1beta1RoleApiVersion :: V1beta1Role -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1RoleApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1RoleKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1RoleMetadata
      , Text
"rules" Text -> Maybe [V1beta1PolicyRule] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1PolicyRule]
v1beta1RoleRules
      ]


-- | Construct a value of type 'V1beta1Role' (by applying it's required fields, if any)
mkV1beta1Role
  :: V1beta1Role
mkV1beta1Role :: V1beta1Role
mkV1beta1Role =
  V1beta1Role :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1beta1PolicyRule]
-> V1beta1Role
V1beta1Role
  { v1beta1RoleApiVersion :: Maybe Text
v1beta1RoleApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1RoleKind :: Maybe Text
v1beta1RoleKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1RoleMetadata :: Maybe V1ObjectMeta
v1beta1RoleMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1RoleRules :: Maybe [V1beta1PolicyRule]
v1beta1RoleRules = Maybe [V1beta1PolicyRule]
forall a. Maybe a
Nothing
  }

-- ** V1beta1RoleBinding
-- | V1beta1RoleBinding
-- RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given namespace only have effect in that namespace.
data V1beta1RoleBinding = V1beta1RoleBinding
  { V1beta1RoleBinding -> Maybe Text
v1beta1RoleBindingApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1RoleBinding -> Maybe Text
v1beta1RoleBindingKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1RoleBinding -> Maybe V1ObjectMeta
v1beta1RoleBindingMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1RoleBinding -> V1beta1RoleRef
v1beta1RoleBindingRoleRef :: !(V1beta1RoleRef) -- ^ /Required/ "roleRef"
  , V1beta1RoleBinding -> Maybe [V1beta1Subject]
v1beta1RoleBindingSubjects :: !(Maybe [V1beta1Subject]) -- ^ "subjects" - Subjects holds references to the objects the role applies to.
  } deriving (Int -> V1beta1RoleBinding -> ShowS
[V1beta1RoleBinding] -> ShowS
V1beta1RoleBinding -> String
(Int -> V1beta1RoleBinding -> ShowS)
-> (V1beta1RoleBinding -> String)
-> ([V1beta1RoleBinding] -> ShowS)
-> Show V1beta1RoleBinding
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1RoleBinding] -> ShowS
$cshowList :: [V1beta1RoleBinding] -> ShowS
show :: V1beta1RoleBinding -> String
$cshow :: V1beta1RoleBinding -> String
showsPrec :: Int -> V1beta1RoleBinding -> ShowS
$cshowsPrec :: Int -> V1beta1RoleBinding -> ShowS
P.Show, V1beta1RoleBinding -> V1beta1RoleBinding -> Bool
(V1beta1RoleBinding -> V1beta1RoleBinding -> Bool)
-> (V1beta1RoleBinding -> V1beta1RoleBinding -> Bool)
-> Eq V1beta1RoleBinding
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1RoleBinding -> V1beta1RoleBinding -> Bool
$c/= :: V1beta1RoleBinding -> V1beta1RoleBinding -> Bool
== :: V1beta1RoleBinding -> V1beta1RoleBinding -> Bool
$c== :: V1beta1RoleBinding -> V1beta1RoleBinding -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1RoleBinding
instance A.FromJSON V1beta1RoleBinding where
  parseJSON :: Value -> Parser V1beta1RoleBinding
parseJSON = String
-> (Object -> Parser V1beta1RoleBinding)
-> Value
-> Parser V1beta1RoleBinding
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1RoleBinding" ((Object -> Parser V1beta1RoleBinding)
 -> Value -> Parser V1beta1RoleBinding)
-> (Object -> Parser V1beta1RoleBinding)
-> Value
-> Parser V1beta1RoleBinding
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1RoleRef
-> Maybe [V1beta1Subject]
-> V1beta1RoleBinding
V1beta1RoleBinding
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1beta1RoleRef
 -> Maybe [V1beta1Subject]
 -> V1beta1RoleBinding)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1beta1RoleRef
      -> Maybe [V1beta1Subject]
      -> V1beta1RoleBinding)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1beta1RoleRef
   -> Maybe [V1beta1Subject]
   -> V1beta1RoleBinding)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1beta1RoleRef -> Maybe [V1beta1Subject] -> V1beta1RoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1beta1RoleRef -> Maybe [V1beta1Subject] -> V1beta1RoleBinding)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1beta1RoleRef -> Maybe [V1beta1Subject] -> V1beta1RoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1beta1RoleRef -> Maybe [V1beta1Subject] -> V1beta1RoleBinding)
-> Parser V1beta1RoleRef
-> Parser (Maybe [V1beta1Subject] -> V1beta1RoleBinding)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1beta1RoleRef
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"roleRef")
      Parser (Maybe [V1beta1Subject] -> V1beta1RoleBinding)
-> Parser (Maybe [V1beta1Subject]) -> Parser V1beta1RoleBinding
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1Subject])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"subjects")

-- | ToJSON V1beta1RoleBinding
instance A.ToJSON V1beta1RoleBinding where
  toJSON :: V1beta1RoleBinding -> Value
toJSON V1beta1RoleBinding {Maybe [V1beta1Subject]
Maybe Text
Maybe V1ObjectMeta
V1beta1RoleRef
v1beta1RoleBindingSubjects :: Maybe [V1beta1Subject]
v1beta1RoleBindingRoleRef :: V1beta1RoleRef
v1beta1RoleBindingMetadata :: Maybe V1ObjectMeta
v1beta1RoleBindingKind :: Maybe Text
v1beta1RoleBindingApiVersion :: Maybe Text
v1beta1RoleBindingSubjects :: V1beta1RoleBinding -> Maybe [V1beta1Subject]
v1beta1RoleBindingRoleRef :: V1beta1RoleBinding -> V1beta1RoleRef
v1beta1RoleBindingMetadata :: V1beta1RoleBinding -> Maybe V1ObjectMeta
v1beta1RoleBindingKind :: V1beta1RoleBinding -> Maybe Text
v1beta1RoleBindingApiVersion :: V1beta1RoleBinding -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1RoleBindingApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1RoleBindingKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1RoleBindingMetadata
      , Text
"roleRef" Text -> V1beta1RoleRef -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1beta1RoleRef
v1beta1RoleBindingRoleRef
      , Text
"subjects" Text -> Maybe [V1beta1Subject] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1Subject]
v1beta1RoleBindingSubjects
      ]


-- | Construct a value of type 'V1beta1RoleBinding' (by applying it's required fields, if any)
mkV1beta1RoleBinding
  :: V1beta1RoleRef -- ^ 'v1beta1RoleBindingRoleRef' 
  -> V1beta1RoleBinding
mkV1beta1RoleBinding :: V1beta1RoleRef -> V1beta1RoleBinding
mkV1beta1RoleBinding V1beta1RoleRef
v1beta1RoleBindingRoleRef =
  V1beta1RoleBinding :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1RoleRef
-> Maybe [V1beta1Subject]
-> V1beta1RoleBinding
V1beta1RoleBinding
  { v1beta1RoleBindingApiVersion :: Maybe Text
v1beta1RoleBindingApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1RoleBindingKind :: Maybe Text
v1beta1RoleBindingKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1RoleBindingMetadata :: Maybe V1ObjectMeta
v1beta1RoleBindingMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1beta1RoleRef
v1beta1RoleBindingRoleRef :: V1beta1RoleRef
v1beta1RoleBindingRoleRef :: V1beta1RoleRef
v1beta1RoleBindingRoleRef
  , v1beta1RoleBindingSubjects :: Maybe [V1beta1Subject]
v1beta1RoleBindingSubjects = Maybe [V1beta1Subject]
forall a. Maybe a
Nothing
  }

-- ** V1beta1RoleBindingList
-- | V1beta1RoleBindingList
-- RoleBindingList is a collection of RoleBindings
data V1beta1RoleBindingList = V1beta1RoleBindingList
  { V1beta1RoleBindingList -> Maybe Text
v1beta1RoleBindingListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1RoleBindingList -> [V1beta1RoleBinding]
v1beta1RoleBindingListItems :: !([V1beta1RoleBinding]) -- ^ /Required/ "items" - Items is a list of RoleBindings
  , V1beta1RoleBindingList -> Maybe Text
v1beta1RoleBindingListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1RoleBindingList -> Maybe V1ListMeta
v1beta1RoleBindingListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1RoleBindingList -> ShowS
[V1beta1RoleBindingList] -> ShowS
V1beta1RoleBindingList -> String
(Int -> V1beta1RoleBindingList -> ShowS)
-> (V1beta1RoleBindingList -> String)
-> ([V1beta1RoleBindingList] -> ShowS)
-> Show V1beta1RoleBindingList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1RoleBindingList] -> ShowS
$cshowList :: [V1beta1RoleBindingList] -> ShowS
show :: V1beta1RoleBindingList -> String
$cshow :: V1beta1RoleBindingList -> String
showsPrec :: Int -> V1beta1RoleBindingList -> ShowS
$cshowsPrec :: Int -> V1beta1RoleBindingList -> ShowS
P.Show, V1beta1RoleBindingList -> V1beta1RoleBindingList -> Bool
(V1beta1RoleBindingList -> V1beta1RoleBindingList -> Bool)
-> (V1beta1RoleBindingList -> V1beta1RoleBindingList -> Bool)
-> Eq V1beta1RoleBindingList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1RoleBindingList -> V1beta1RoleBindingList -> Bool
$c/= :: V1beta1RoleBindingList -> V1beta1RoleBindingList -> Bool
== :: V1beta1RoleBindingList -> V1beta1RoleBindingList -> Bool
$c== :: V1beta1RoleBindingList -> V1beta1RoleBindingList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1RoleBindingList
instance A.FromJSON V1beta1RoleBindingList where
  parseJSON :: Value -> Parser V1beta1RoleBindingList
parseJSON = String
-> (Object -> Parser V1beta1RoleBindingList)
-> Value
-> Parser V1beta1RoleBindingList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1RoleBindingList" ((Object -> Parser V1beta1RoleBindingList)
 -> Value -> Parser V1beta1RoleBindingList)
-> (Object -> Parser V1beta1RoleBindingList)
-> Value
-> Parser V1beta1RoleBindingList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1RoleBinding]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1RoleBindingList
V1beta1RoleBindingList
      (Maybe Text
 -> [V1beta1RoleBinding]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1RoleBindingList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1RoleBinding]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1RoleBindingList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1RoleBinding]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1RoleBindingList)
-> Parser [V1beta1RoleBinding]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1beta1RoleBindingList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1RoleBinding]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1RoleBindingList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1RoleBindingList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1RoleBindingList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1RoleBindingList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1RoleBindingList
instance A.ToJSON V1beta1RoleBindingList where
  toJSON :: V1beta1RoleBindingList -> Value
toJSON V1beta1RoleBindingList {[V1beta1RoleBinding]
Maybe Text
Maybe V1ListMeta
v1beta1RoleBindingListMetadata :: Maybe V1ListMeta
v1beta1RoleBindingListKind :: Maybe Text
v1beta1RoleBindingListItems :: [V1beta1RoleBinding]
v1beta1RoleBindingListApiVersion :: Maybe Text
v1beta1RoleBindingListMetadata :: V1beta1RoleBindingList -> Maybe V1ListMeta
v1beta1RoleBindingListKind :: V1beta1RoleBindingList -> Maybe Text
v1beta1RoleBindingListItems :: V1beta1RoleBindingList -> [V1beta1RoleBinding]
v1beta1RoleBindingListApiVersion :: V1beta1RoleBindingList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1RoleBindingListApiVersion
      , Text
"items" Text -> [V1beta1RoleBinding] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1RoleBinding]
v1beta1RoleBindingListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1RoleBindingListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1RoleBindingListMetadata
      ]


-- | Construct a value of type 'V1beta1RoleBindingList' (by applying it's required fields, if any)
mkV1beta1RoleBindingList
  :: [V1beta1RoleBinding] -- ^ 'v1beta1RoleBindingListItems': Items is a list of RoleBindings
  -> V1beta1RoleBindingList
mkV1beta1RoleBindingList :: [V1beta1RoleBinding] -> V1beta1RoleBindingList
mkV1beta1RoleBindingList [V1beta1RoleBinding]
v1beta1RoleBindingListItems =
  V1beta1RoleBindingList :: Maybe Text
-> [V1beta1RoleBinding]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1RoleBindingList
V1beta1RoleBindingList
  { v1beta1RoleBindingListApiVersion :: Maybe Text
v1beta1RoleBindingListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1RoleBinding]
v1beta1RoleBindingListItems :: [V1beta1RoleBinding]
v1beta1RoleBindingListItems :: [V1beta1RoleBinding]
v1beta1RoleBindingListItems
  , v1beta1RoleBindingListKind :: Maybe Text
v1beta1RoleBindingListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1RoleBindingListMetadata :: Maybe V1ListMeta
v1beta1RoleBindingListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1RoleList
-- | V1beta1RoleList
-- RoleList is a collection of Roles
data V1beta1RoleList = V1beta1RoleList
  { V1beta1RoleList -> Maybe Text
v1beta1RoleListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1RoleList -> [V1beta1Role]
v1beta1RoleListItems :: !([V1beta1Role]) -- ^ /Required/ "items" - Items is a list of Roles
  , V1beta1RoleList -> Maybe Text
v1beta1RoleListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1RoleList -> Maybe V1ListMeta
v1beta1RoleListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1RoleList -> ShowS
[V1beta1RoleList] -> ShowS
V1beta1RoleList -> String
(Int -> V1beta1RoleList -> ShowS)
-> (V1beta1RoleList -> String)
-> ([V1beta1RoleList] -> ShowS)
-> Show V1beta1RoleList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1RoleList] -> ShowS
$cshowList :: [V1beta1RoleList] -> ShowS
show :: V1beta1RoleList -> String
$cshow :: V1beta1RoleList -> String
showsPrec :: Int -> V1beta1RoleList -> ShowS
$cshowsPrec :: Int -> V1beta1RoleList -> ShowS
P.Show, V1beta1RoleList -> V1beta1RoleList -> Bool
(V1beta1RoleList -> V1beta1RoleList -> Bool)
-> (V1beta1RoleList -> V1beta1RoleList -> Bool)
-> Eq V1beta1RoleList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1RoleList -> V1beta1RoleList -> Bool
$c/= :: V1beta1RoleList -> V1beta1RoleList -> Bool
== :: V1beta1RoleList -> V1beta1RoleList -> Bool
$c== :: V1beta1RoleList -> V1beta1RoleList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1RoleList
instance A.FromJSON V1beta1RoleList where
  parseJSON :: Value -> Parser V1beta1RoleList
parseJSON = String
-> (Object -> Parser V1beta1RoleList)
-> Value
-> Parser V1beta1RoleList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1RoleList" ((Object -> Parser V1beta1RoleList)
 -> Value -> Parser V1beta1RoleList)
-> (Object -> Parser V1beta1RoleList)
-> Value
-> Parser V1beta1RoleList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1Role]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1RoleList
V1beta1RoleList
      (Maybe Text
 -> [V1beta1Role]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1RoleList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1Role]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1RoleList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1Role]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1RoleList)
-> Parser [V1beta1Role]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1RoleList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1Role]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1RoleList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1RoleList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1RoleList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1RoleList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1RoleList
instance A.ToJSON V1beta1RoleList where
  toJSON :: V1beta1RoleList -> Value
toJSON V1beta1RoleList {[V1beta1Role]
Maybe Text
Maybe V1ListMeta
v1beta1RoleListMetadata :: Maybe V1ListMeta
v1beta1RoleListKind :: Maybe Text
v1beta1RoleListItems :: [V1beta1Role]
v1beta1RoleListApiVersion :: Maybe Text
v1beta1RoleListMetadata :: V1beta1RoleList -> Maybe V1ListMeta
v1beta1RoleListKind :: V1beta1RoleList -> Maybe Text
v1beta1RoleListItems :: V1beta1RoleList -> [V1beta1Role]
v1beta1RoleListApiVersion :: V1beta1RoleList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1RoleListApiVersion
      , Text
"items" Text -> [V1beta1Role] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1Role]
v1beta1RoleListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1RoleListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1RoleListMetadata
      ]


-- | Construct a value of type 'V1beta1RoleList' (by applying it's required fields, if any)
mkV1beta1RoleList
  :: [V1beta1Role] -- ^ 'v1beta1RoleListItems': Items is a list of Roles
  -> V1beta1RoleList
mkV1beta1RoleList :: [V1beta1Role] -> V1beta1RoleList
mkV1beta1RoleList [V1beta1Role]
v1beta1RoleListItems =
  V1beta1RoleList :: Maybe Text
-> [V1beta1Role]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1RoleList
V1beta1RoleList
  { v1beta1RoleListApiVersion :: Maybe Text
v1beta1RoleListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1Role]
v1beta1RoleListItems :: [V1beta1Role]
v1beta1RoleListItems :: [V1beta1Role]
v1beta1RoleListItems
  , v1beta1RoleListKind :: Maybe Text
v1beta1RoleListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1RoleListMetadata :: Maybe V1ListMeta
v1beta1RoleListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1RoleRef
-- | V1beta1RoleRef
-- RoleRef contains information that points to the role being used
data V1beta1RoleRef = V1beta1RoleRef
  { V1beta1RoleRef -> Text
v1beta1RoleRefApiGroup :: !(Text) -- ^ /Required/ "apiGroup" - APIGroup is the group for the resource being referenced
  , V1beta1RoleRef -> Text
v1beta1RoleRefKind :: !(Text) -- ^ /Required/ "kind" - Kind is the type of resource being referenced
  , V1beta1RoleRef -> Text
v1beta1RoleRefName :: !(Text) -- ^ /Required/ "name" - Name is the name of resource being referenced
  } deriving (Int -> V1beta1RoleRef -> ShowS
[V1beta1RoleRef] -> ShowS
V1beta1RoleRef -> String
(Int -> V1beta1RoleRef -> ShowS)
-> (V1beta1RoleRef -> String)
-> ([V1beta1RoleRef] -> ShowS)
-> Show V1beta1RoleRef
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1RoleRef] -> ShowS
$cshowList :: [V1beta1RoleRef] -> ShowS
show :: V1beta1RoleRef -> String
$cshow :: V1beta1RoleRef -> String
showsPrec :: Int -> V1beta1RoleRef -> ShowS
$cshowsPrec :: Int -> V1beta1RoleRef -> ShowS
P.Show, V1beta1RoleRef -> V1beta1RoleRef -> Bool
(V1beta1RoleRef -> V1beta1RoleRef -> Bool)
-> (V1beta1RoleRef -> V1beta1RoleRef -> Bool) -> Eq V1beta1RoleRef
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1RoleRef -> V1beta1RoleRef -> Bool
$c/= :: V1beta1RoleRef -> V1beta1RoleRef -> Bool
== :: V1beta1RoleRef -> V1beta1RoleRef -> Bool
$c== :: V1beta1RoleRef -> V1beta1RoleRef -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1RoleRef
instance A.FromJSON V1beta1RoleRef where
  parseJSON :: Value -> Parser V1beta1RoleRef
parseJSON = String
-> (Object -> Parser V1beta1RoleRef)
-> Value
-> Parser V1beta1RoleRef
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1RoleRef" ((Object -> Parser V1beta1RoleRef)
 -> Value -> Parser V1beta1RoleRef)
-> (Object -> Parser V1beta1RoleRef)
-> Value
-> Parser V1beta1RoleRef
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Text -> Text -> V1beta1RoleRef
V1beta1RoleRef
      (Text -> Text -> Text -> V1beta1RoleRef)
-> Parser Text -> Parser (Text -> Text -> V1beta1RoleRef)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"apiGroup")
      Parser (Text -> Text -> V1beta1RoleRef)
-> Parser Text -> Parser (Text -> V1beta1RoleRef)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kind")
      Parser (Text -> V1beta1RoleRef)
-> Parser Text -> Parser V1beta1RoleRef
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")

-- | ToJSON V1beta1RoleRef
instance A.ToJSON V1beta1RoleRef where
  toJSON :: V1beta1RoleRef -> Value
toJSON V1beta1RoleRef {Text
v1beta1RoleRefName :: Text
v1beta1RoleRefKind :: Text
v1beta1RoleRefApiGroup :: Text
v1beta1RoleRefName :: V1beta1RoleRef -> Text
v1beta1RoleRefKind :: V1beta1RoleRef -> Text
v1beta1RoleRefApiGroup :: V1beta1RoleRef -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiGroup" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1RoleRefApiGroup
      , Text
"kind" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1RoleRefKind
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1RoleRefName
      ]


-- | Construct a value of type 'V1beta1RoleRef' (by applying it's required fields, if any)
mkV1beta1RoleRef
  :: Text -- ^ 'v1beta1RoleRefApiGroup': APIGroup is the group for the resource being referenced
  -> Text -- ^ 'v1beta1RoleRefKind': Kind is the type of resource being referenced
  -> Text -- ^ 'v1beta1RoleRefName': Name is the name of resource being referenced
  -> V1beta1RoleRef
mkV1beta1RoleRef :: Text -> Text -> Text -> V1beta1RoleRef
mkV1beta1RoleRef Text
v1beta1RoleRefApiGroup Text
v1beta1RoleRefKind Text
v1beta1RoleRefName =
  V1beta1RoleRef :: Text -> Text -> Text -> V1beta1RoleRef
V1beta1RoleRef
  { Text
v1beta1RoleRefApiGroup :: Text
v1beta1RoleRefApiGroup :: Text
v1beta1RoleRefApiGroup
  , Text
v1beta1RoleRefKind :: Text
v1beta1RoleRefKind :: Text
v1beta1RoleRefKind
  , Text
v1beta1RoleRefName :: Text
v1beta1RoleRefName :: Text
v1beta1RoleRefName
  }

-- ** V1beta1RollingUpdateDaemonSet
-- | V1beta1RollingUpdateDaemonSet
-- Spec to control the desired behavior of daemon set rolling update.
data V1beta1RollingUpdateDaemonSet = V1beta1RollingUpdateDaemonSet
  { V1beta1RollingUpdateDaemonSet -> Maybe IntOrString
v1beta1RollingUpdateDaemonSetMaxUnavailable :: !(Maybe IntOrString) -- ^ "maxUnavailable"
  } deriving (Int -> V1beta1RollingUpdateDaemonSet -> ShowS
[V1beta1RollingUpdateDaemonSet] -> ShowS
V1beta1RollingUpdateDaemonSet -> String
(Int -> V1beta1RollingUpdateDaemonSet -> ShowS)
-> (V1beta1RollingUpdateDaemonSet -> String)
-> ([V1beta1RollingUpdateDaemonSet] -> ShowS)
-> Show V1beta1RollingUpdateDaemonSet
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1RollingUpdateDaemonSet] -> ShowS
$cshowList :: [V1beta1RollingUpdateDaemonSet] -> ShowS
show :: V1beta1RollingUpdateDaemonSet -> String
$cshow :: V1beta1RollingUpdateDaemonSet -> String
showsPrec :: Int -> V1beta1RollingUpdateDaemonSet -> ShowS
$cshowsPrec :: Int -> V1beta1RollingUpdateDaemonSet -> ShowS
P.Show, V1beta1RollingUpdateDaemonSet
-> V1beta1RollingUpdateDaemonSet -> Bool
(V1beta1RollingUpdateDaemonSet
 -> V1beta1RollingUpdateDaemonSet -> Bool)
-> (V1beta1RollingUpdateDaemonSet
    -> V1beta1RollingUpdateDaemonSet -> Bool)
-> Eq V1beta1RollingUpdateDaemonSet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1RollingUpdateDaemonSet
-> V1beta1RollingUpdateDaemonSet -> Bool
$c/= :: V1beta1RollingUpdateDaemonSet
-> V1beta1RollingUpdateDaemonSet -> Bool
== :: V1beta1RollingUpdateDaemonSet
-> V1beta1RollingUpdateDaemonSet -> Bool
$c== :: V1beta1RollingUpdateDaemonSet
-> V1beta1RollingUpdateDaemonSet -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1RollingUpdateDaemonSet
instance A.FromJSON V1beta1RollingUpdateDaemonSet where
  parseJSON :: Value -> Parser V1beta1RollingUpdateDaemonSet
parseJSON = String
-> (Object -> Parser V1beta1RollingUpdateDaemonSet)
-> Value
-> Parser V1beta1RollingUpdateDaemonSet
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1RollingUpdateDaemonSet" ((Object -> Parser V1beta1RollingUpdateDaemonSet)
 -> Value -> Parser V1beta1RollingUpdateDaemonSet)
-> (Object -> Parser V1beta1RollingUpdateDaemonSet)
-> Value
-> Parser V1beta1RollingUpdateDaemonSet
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe IntOrString -> V1beta1RollingUpdateDaemonSet
V1beta1RollingUpdateDaemonSet
      (Maybe IntOrString -> V1beta1RollingUpdateDaemonSet)
-> Parser (Maybe IntOrString)
-> Parser V1beta1RollingUpdateDaemonSet
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe IntOrString)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxUnavailable")

-- | ToJSON V1beta1RollingUpdateDaemonSet
instance A.ToJSON V1beta1RollingUpdateDaemonSet where
  toJSON :: V1beta1RollingUpdateDaemonSet -> Value
toJSON V1beta1RollingUpdateDaemonSet {Maybe IntOrString
v1beta1RollingUpdateDaemonSetMaxUnavailable :: Maybe IntOrString
v1beta1RollingUpdateDaemonSetMaxUnavailable :: V1beta1RollingUpdateDaemonSet -> Maybe IntOrString
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"maxUnavailable" Text -> Maybe IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe IntOrString
v1beta1RollingUpdateDaemonSetMaxUnavailable
      ]


-- | Construct a value of type 'V1beta1RollingUpdateDaemonSet' (by applying it's required fields, if any)
mkV1beta1RollingUpdateDaemonSet
  :: V1beta1RollingUpdateDaemonSet
mkV1beta1RollingUpdateDaemonSet :: V1beta1RollingUpdateDaemonSet
mkV1beta1RollingUpdateDaemonSet =
  V1beta1RollingUpdateDaemonSet :: Maybe IntOrString -> V1beta1RollingUpdateDaemonSet
V1beta1RollingUpdateDaemonSet
  { v1beta1RollingUpdateDaemonSetMaxUnavailable :: Maybe IntOrString
v1beta1RollingUpdateDaemonSetMaxUnavailable = Maybe IntOrString
forall a. Maybe a
Nothing
  }

-- ** V1beta1RollingUpdateStatefulSetStrategy
-- | V1beta1RollingUpdateStatefulSetStrategy
-- RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.
data V1beta1RollingUpdateStatefulSetStrategy = V1beta1RollingUpdateStatefulSetStrategy
  { V1beta1RollingUpdateStatefulSetStrategy -> Maybe Int
v1beta1RollingUpdateStatefulSetStrategyPartition :: !(Maybe Int) -- ^ "partition" - Partition indicates the ordinal at which the StatefulSet should be partitioned.
  } deriving (Int -> V1beta1RollingUpdateStatefulSetStrategy -> ShowS
[V1beta1RollingUpdateStatefulSetStrategy] -> ShowS
V1beta1RollingUpdateStatefulSetStrategy -> String
(Int -> V1beta1RollingUpdateStatefulSetStrategy -> ShowS)
-> (V1beta1RollingUpdateStatefulSetStrategy -> String)
-> ([V1beta1RollingUpdateStatefulSetStrategy] -> ShowS)
-> Show V1beta1RollingUpdateStatefulSetStrategy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1RollingUpdateStatefulSetStrategy] -> ShowS
$cshowList :: [V1beta1RollingUpdateStatefulSetStrategy] -> ShowS
show :: V1beta1RollingUpdateStatefulSetStrategy -> String
$cshow :: V1beta1RollingUpdateStatefulSetStrategy -> String
showsPrec :: Int -> V1beta1RollingUpdateStatefulSetStrategy -> ShowS
$cshowsPrec :: Int -> V1beta1RollingUpdateStatefulSetStrategy -> ShowS
P.Show, V1beta1RollingUpdateStatefulSetStrategy
-> V1beta1RollingUpdateStatefulSetStrategy -> Bool
(V1beta1RollingUpdateStatefulSetStrategy
 -> V1beta1RollingUpdateStatefulSetStrategy -> Bool)
-> (V1beta1RollingUpdateStatefulSetStrategy
    -> V1beta1RollingUpdateStatefulSetStrategy -> Bool)
-> Eq V1beta1RollingUpdateStatefulSetStrategy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1RollingUpdateStatefulSetStrategy
-> V1beta1RollingUpdateStatefulSetStrategy -> Bool
$c/= :: V1beta1RollingUpdateStatefulSetStrategy
-> V1beta1RollingUpdateStatefulSetStrategy -> Bool
== :: V1beta1RollingUpdateStatefulSetStrategy
-> V1beta1RollingUpdateStatefulSetStrategy -> Bool
$c== :: V1beta1RollingUpdateStatefulSetStrategy
-> V1beta1RollingUpdateStatefulSetStrategy -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1RollingUpdateStatefulSetStrategy
instance A.FromJSON V1beta1RollingUpdateStatefulSetStrategy where
  parseJSON :: Value -> Parser V1beta1RollingUpdateStatefulSetStrategy
parseJSON = String
-> (Object -> Parser V1beta1RollingUpdateStatefulSetStrategy)
-> Value
-> Parser V1beta1RollingUpdateStatefulSetStrategy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1RollingUpdateStatefulSetStrategy" ((Object -> Parser V1beta1RollingUpdateStatefulSetStrategy)
 -> Value -> Parser V1beta1RollingUpdateStatefulSetStrategy)
-> (Object -> Parser V1beta1RollingUpdateStatefulSetStrategy)
-> Value
-> Parser V1beta1RollingUpdateStatefulSetStrategy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int -> V1beta1RollingUpdateStatefulSetStrategy
V1beta1RollingUpdateStatefulSetStrategy
      (Maybe Int -> V1beta1RollingUpdateStatefulSetStrategy)
-> Parser (Maybe Int)
-> Parser V1beta1RollingUpdateStatefulSetStrategy
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"partition")

-- | ToJSON V1beta1RollingUpdateStatefulSetStrategy
instance A.ToJSON V1beta1RollingUpdateStatefulSetStrategy where
  toJSON :: V1beta1RollingUpdateStatefulSetStrategy -> Value
toJSON V1beta1RollingUpdateStatefulSetStrategy {Maybe Int
v1beta1RollingUpdateStatefulSetStrategyPartition :: Maybe Int
v1beta1RollingUpdateStatefulSetStrategyPartition :: V1beta1RollingUpdateStatefulSetStrategy -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"partition" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1RollingUpdateStatefulSetStrategyPartition
      ]


-- | Construct a value of type 'V1beta1RollingUpdateStatefulSetStrategy' (by applying it's required fields, if any)
mkV1beta1RollingUpdateStatefulSetStrategy
  :: V1beta1RollingUpdateStatefulSetStrategy
mkV1beta1RollingUpdateStatefulSetStrategy :: V1beta1RollingUpdateStatefulSetStrategy
mkV1beta1RollingUpdateStatefulSetStrategy =
  V1beta1RollingUpdateStatefulSetStrategy :: Maybe Int -> V1beta1RollingUpdateStatefulSetStrategy
V1beta1RollingUpdateStatefulSetStrategy
  { v1beta1RollingUpdateStatefulSetStrategyPartition :: Maybe Int
v1beta1RollingUpdateStatefulSetStrategyPartition = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1beta1RuleWithOperations
-- | V1beta1RuleWithOperations
-- RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.
data V1beta1RuleWithOperations = V1beta1RuleWithOperations
  { V1beta1RuleWithOperations -> Maybe [Text]
v1beta1RuleWithOperationsApiGroups :: !(Maybe [Text]) -- ^ "apiGroups" - APIGroups is the API groups the resources belong to. &#39;*&#39; is all groups. If &#39;*&#39; is present, the length of the slice must be one. Required.
  , V1beta1RuleWithOperations -> Maybe [Text]
v1beta1RuleWithOperationsApiVersions :: !(Maybe [Text]) -- ^ "apiVersions" - APIVersions is the API versions the resources belong to. &#39;*&#39; is all versions. If &#39;*&#39; is present, the length of the slice must be one. Required.
  , V1beta1RuleWithOperations -> Maybe [Text]
v1beta1RuleWithOperationsOperations :: !(Maybe [Text]) -- ^ "operations" - Operations is the operations the admission hook cares about - CREATE, UPDATE, or * for all operations. If &#39;*&#39; is present, the length of the slice must be one. Required.
  , V1beta1RuleWithOperations -> Maybe [Text]
v1beta1RuleWithOperationsResources :: !(Maybe [Text]) -- ^ "resources" - Resources is a list of resources this rule applies to.  For example: &#39;pods&#39; means pods. &#39;pods/log&#39; means the log subresource of pods. &#39;*&#39; means all resources, but not subresources. &#39;pods/*&#39; means all subresources of pods. &#39;*/scale&#39; means all scale subresources. &#39;*/*&#39; means all resources and their subresources.  If wildcard is present, the validation rule will ensure resources do not overlap with each other.  Depending on the enclosing object, subresources might not be allowed. Required.
  , V1beta1RuleWithOperations -> Maybe Text
v1beta1RuleWithOperationsScope :: !(Maybe Text) -- ^ "scope" - scope specifies the scope of this rule. Valid values are \&quot;Cluster\&quot;, \&quot;Namespaced\&quot;, and \&quot;*\&quot; \&quot;Cluster\&quot; means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \&quot;Namespaced\&quot; means that only namespaced resources will match this rule. \&quot;*\&quot; means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \&quot;*\&quot;.
  } deriving (Int -> V1beta1RuleWithOperations -> ShowS
[V1beta1RuleWithOperations] -> ShowS
V1beta1RuleWithOperations -> String
(Int -> V1beta1RuleWithOperations -> ShowS)
-> (V1beta1RuleWithOperations -> String)
-> ([V1beta1RuleWithOperations] -> ShowS)
-> Show V1beta1RuleWithOperations
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1RuleWithOperations] -> ShowS
$cshowList :: [V1beta1RuleWithOperations] -> ShowS
show :: V1beta1RuleWithOperations -> String
$cshow :: V1beta1RuleWithOperations -> String
showsPrec :: Int -> V1beta1RuleWithOperations -> ShowS
$cshowsPrec :: Int -> V1beta1RuleWithOperations -> ShowS
P.Show, V1beta1RuleWithOperations -> V1beta1RuleWithOperations -> Bool
(V1beta1RuleWithOperations -> V1beta1RuleWithOperations -> Bool)
-> (V1beta1RuleWithOperations -> V1beta1RuleWithOperations -> Bool)
-> Eq V1beta1RuleWithOperations
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1RuleWithOperations -> V1beta1RuleWithOperations -> Bool
$c/= :: V1beta1RuleWithOperations -> V1beta1RuleWithOperations -> Bool
== :: V1beta1RuleWithOperations -> V1beta1RuleWithOperations -> Bool
$c== :: V1beta1RuleWithOperations -> V1beta1RuleWithOperations -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1RuleWithOperations
instance A.FromJSON V1beta1RuleWithOperations where
  parseJSON :: Value -> Parser V1beta1RuleWithOperations
parseJSON = String
-> (Object -> Parser V1beta1RuleWithOperations)
-> Value
-> Parser V1beta1RuleWithOperations
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1RuleWithOperations" ((Object -> Parser V1beta1RuleWithOperations)
 -> Value -> Parser V1beta1RuleWithOperations)
-> (Object -> Parser V1beta1RuleWithOperations)
-> Value
-> Parser V1beta1RuleWithOperations
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe Text
-> V1beta1RuleWithOperations
V1beta1RuleWithOperations
      (Maybe [Text]
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe Text
 -> V1beta1RuleWithOperations)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe Text
      -> V1beta1RuleWithOperations)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiGroups")
      Parser
  (Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe Text
   -> V1beta1RuleWithOperations)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [Text]
      -> Maybe [Text] -> Maybe Text -> V1beta1RuleWithOperations)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersions")
      Parser
  (Maybe [Text]
   -> Maybe [Text] -> Maybe Text -> V1beta1RuleWithOperations)
-> Parser (Maybe [Text])
-> Parser (Maybe [Text] -> Maybe Text -> V1beta1RuleWithOperations)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"operations")
      Parser (Maybe [Text] -> Maybe Text -> V1beta1RuleWithOperations)
-> Parser (Maybe [Text])
-> Parser (Maybe Text -> V1beta1RuleWithOperations)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resources")
      Parser (Maybe Text -> V1beta1RuleWithOperations)
-> Parser (Maybe Text) -> Parser V1beta1RuleWithOperations
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"scope")

-- | ToJSON V1beta1RuleWithOperations
instance A.ToJSON V1beta1RuleWithOperations where
  toJSON :: V1beta1RuleWithOperations -> Value
toJSON V1beta1RuleWithOperations {Maybe [Text]
Maybe Text
v1beta1RuleWithOperationsScope :: Maybe Text
v1beta1RuleWithOperationsResources :: Maybe [Text]
v1beta1RuleWithOperationsOperations :: Maybe [Text]
v1beta1RuleWithOperationsApiVersions :: Maybe [Text]
v1beta1RuleWithOperationsApiGroups :: Maybe [Text]
v1beta1RuleWithOperationsScope :: V1beta1RuleWithOperations -> Maybe Text
v1beta1RuleWithOperationsResources :: V1beta1RuleWithOperations -> Maybe [Text]
v1beta1RuleWithOperationsOperations :: V1beta1RuleWithOperations -> Maybe [Text]
v1beta1RuleWithOperationsApiVersions :: V1beta1RuleWithOperations -> Maybe [Text]
v1beta1RuleWithOperationsApiGroups :: V1beta1RuleWithOperations -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiGroups" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1RuleWithOperationsApiGroups
      , Text
"apiVersions" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1RuleWithOperationsApiVersions
      , Text
"operations" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1RuleWithOperationsOperations
      , Text
"resources" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1RuleWithOperationsResources
      , Text
"scope" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1RuleWithOperationsScope
      ]


-- | Construct a value of type 'V1beta1RuleWithOperations' (by applying it's required fields, if any)
mkV1beta1RuleWithOperations
  :: V1beta1RuleWithOperations
mkV1beta1RuleWithOperations :: V1beta1RuleWithOperations
mkV1beta1RuleWithOperations =
  V1beta1RuleWithOperations :: Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe Text
-> V1beta1RuleWithOperations
V1beta1RuleWithOperations
  { v1beta1RuleWithOperationsApiGroups :: Maybe [Text]
v1beta1RuleWithOperationsApiGroups = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1RuleWithOperationsApiVersions :: Maybe [Text]
v1beta1RuleWithOperationsApiVersions = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1RuleWithOperationsOperations :: Maybe [Text]
v1beta1RuleWithOperationsOperations = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1RuleWithOperationsResources :: Maybe [Text]
v1beta1RuleWithOperationsResources = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1RuleWithOperationsScope :: Maybe Text
v1beta1RuleWithOperationsScope = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1RuntimeClass
-- | V1beta1RuntimeClass
-- RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are (currently) manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod.  For more details, see https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md
data V1beta1RuntimeClass = V1beta1RuntimeClass
  { V1beta1RuntimeClass -> Maybe Text
v1beta1RuntimeClassApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1RuntimeClass -> Text
v1beta1RuntimeClassHandler :: !(Text) -- ^ /Required/ "handler" - Handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node &amp; CRI configuration.  It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \&quot;runc\&quot; might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must conform to the DNS Label (RFC 1123) requirements, and is immutable.
  , V1beta1RuntimeClass -> Maybe Text
v1beta1RuntimeClassKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1RuntimeClass -> Maybe V1ObjectMeta
v1beta1RuntimeClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1RuntimeClass -> Maybe V1beta1Overhead
v1beta1RuntimeClassOverhead :: !(Maybe V1beta1Overhead) -- ^ "overhead"
  , V1beta1RuntimeClass -> Maybe V1beta1Scheduling
v1beta1RuntimeClassScheduling :: !(Maybe V1beta1Scheduling) -- ^ "scheduling"
  } deriving (Int -> V1beta1RuntimeClass -> ShowS
[V1beta1RuntimeClass] -> ShowS
V1beta1RuntimeClass -> String
(Int -> V1beta1RuntimeClass -> ShowS)
-> (V1beta1RuntimeClass -> String)
-> ([V1beta1RuntimeClass] -> ShowS)
-> Show V1beta1RuntimeClass
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1RuntimeClass] -> ShowS
$cshowList :: [V1beta1RuntimeClass] -> ShowS
show :: V1beta1RuntimeClass -> String
$cshow :: V1beta1RuntimeClass -> String
showsPrec :: Int -> V1beta1RuntimeClass -> ShowS
$cshowsPrec :: Int -> V1beta1RuntimeClass -> ShowS
P.Show, V1beta1RuntimeClass -> V1beta1RuntimeClass -> Bool
(V1beta1RuntimeClass -> V1beta1RuntimeClass -> Bool)
-> (V1beta1RuntimeClass -> V1beta1RuntimeClass -> Bool)
-> Eq V1beta1RuntimeClass
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1RuntimeClass -> V1beta1RuntimeClass -> Bool
$c/= :: V1beta1RuntimeClass -> V1beta1RuntimeClass -> Bool
== :: V1beta1RuntimeClass -> V1beta1RuntimeClass -> Bool
$c== :: V1beta1RuntimeClass -> V1beta1RuntimeClass -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1RuntimeClass
instance A.FromJSON V1beta1RuntimeClass where
  parseJSON :: Value -> Parser V1beta1RuntimeClass
parseJSON = String
-> (Object -> Parser V1beta1RuntimeClass)
-> Value
-> Parser V1beta1RuntimeClass
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1RuntimeClass" ((Object -> Parser V1beta1RuntimeClass)
 -> Value -> Parser V1beta1RuntimeClass)
-> (Object -> Parser V1beta1RuntimeClass)
-> Value
-> Parser V1beta1RuntimeClass
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1Overhead
-> Maybe V1beta1Scheduling
-> V1beta1RuntimeClass
V1beta1RuntimeClass
      (Maybe Text
 -> Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1beta1Overhead
 -> Maybe V1beta1Scheduling
 -> V1beta1RuntimeClass)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1beta1Overhead
      -> Maybe V1beta1Scheduling
      -> V1beta1RuntimeClass)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Text
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1beta1Overhead
   -> Maybe V1beta1Scheduling
   -> V1beta1RuntimeClass)
-> Parser Text
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1beta1Overhead
      -> Maybe V1beta1Scheduling
      -> V1beta1RuntimeClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"handler")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1beta1Overhead
   -> Maybe V1beta1Scheduling
   -> V1beta1RuntimeClass)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1beta1Overhead
      -> Maybe V1beta1Scheduling
      -> V1beta1RuntimeClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1beta1Overhead
   -> Maybe V1beta1Scheduling
   -> V1beta1RuntimeClass)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1beta1Overhead
      -> Maybe V1beta1Scheduling -> V1beta1RuntimeClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1beta1Overhead
   -> Maybe V1beta1Scheduling -> V1beta1RuntimeClass)
-> Parser (Maybe V1beta1Overhead)
-> Parser (Maybe V1beta1Scheduling -> V1beta1RuntimeClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1Overhead)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"overhead")
      Parser (Maybe V1beta1Scheduling -> V1beta1RuntimeClass)
-> Parser (Maybe V1beta1Scheduling) -> Parser V1beta1RuntimeClass
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1Scheduling)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"scheduling")

-- | ToJSON V1beta1RuntimeClass
instance A.ToJSON V1beta1RuntimeClass where
  toJSON :: V1beta1RuntimeClass -> Value
toJSON V1beta1RuntimeClass {Maybe Text
Maybe V1beta1Scheduling
Maybe V1beta1Overhead
Maybe V1ObjectMeta
Text
v1beta1RuntimeClassScheduling :: Maybe V1beta1Scheduling
v1beta1RuntimeClassOverhead :: Maybe V1beta1Overhead
v1beta1RuntimeClassMetadata :: Maybe V1ObjectMeta
v1beta1RuntimeClassKind :: Maybe Text
v1beta1RuntimeClassHandler :: Text
v1beta1RuntimeClassApiVersion :: Maybe Text
v1beta1RuntimeClassScheduling :: V1beta1RuntimeClass -> Maybe V1beta1Scheduling
v1beta1RuntimeClassOverhead :: V1beta1RuntimeClass -> Maybe V1beta1Overhead
v1beta1RuntimeClassMetadata :: V1beta1RuntimeClass -> Maybe V1ObjectMeta
v1beta1RuntimeClassKind :: V1beta1RuntimeClass -> Maybe Text
v1beta1RuntimeClassHandler :: V1beta1RuntimeClass -> Text
v1beta1RuntimeClassApiVersion :: V1beta1RuntimeClass -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1RuntimeClassApiVersion
      , Text
"handler" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1RuntimeClassHandler
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1RuntimeClassKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1RuntimeClassMetadata
      , Text
"overhead" Text -> Maybe V1beta1Overhead -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1Overhead
v1beta1RuntimeClassOverhead
      , Text
"scheduling" Text -> Maybe V1beta1Scheduling -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1Scheduling
v1beta1RuntimeClassScheduling
      ]


-- | Construct a value of type 'V1beta1RuntimeClass' (by applying it's required fields, if any)
mkV1beta1RuntimeClass
  :: Text -- ^ 'v1beta1RuntimeClassHandler': Handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration.  It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must conform to the DNS Label (RFC 1123) requirements, and is immutable.
  -> V1beta1RuntimeClass
mkV1beta1RuntimeClass :: Text -> V1beta1RuntimeClass
mkV1beta1RuntimeClass Text
v1beta1RuntimeClassHandler =
  V1beta1RuntimeClass :: Maybe Text
-> Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1Overhead
-> Maybe V1beta1Scheduling
-> V1beta1RuntimeClass
V1beta1RuntimeClass
  { v1beta1RuntimeClassApiVersion :: Maybe Text
v1beta1RuntimeClassApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta1RuntimeClassHandler :: Text
v1beta1RuntimeClassHandler :: Text
v1beta1RuntimeClassHandler
  , v1beta1RuntimeClassKind :: Maybe Text
v1beta1RuntimeClassKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1RuntimeClassMetadata :: Maybe V1ObjectMeta
v1beta1RuntimeClassMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1RuntimeClassOverhead :: Maybe V1beta1Overhead
v1beta1RuntimeClassOverhead = Maybe V1beta1Overhead
forall a. Maybe a
Nothing
  , v1beta1RuntimeClassScheduling :: Maybe V1beta1Scheduling
v1beta1RuntimeClassScheduling = Maybe V1beta1Scheduling
forall a. Maybe a
Nothing
  }

-- ** V1beta1RuntimeClassList
-- | V1beta1RuntimeClassList
-- RuntimeClassList is a list of RuntimeClass objects.
data V1beta1RuntimeClassList = V1beta1RuntimeClassList
  { V1beta1RuntimeClassList -> Maybe Text
v1beta1RuntimeClassListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1RuntimeClassList -> [V1beta1RuntimeClass]
v1beta1RuntimeClassListItems :: !([V1beta1RuntimeClass]) -- ^ /Required/ "items" - Items is a list of schema objects.
  , V1beta1RuntimeClassList -> Maybe Text
v1beta1RuntimeClassListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1RuntimeClassList -> Maybe V1ListMeta
v1beta1RuntimeClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1RuntimeClassList -> ShowS
[V1beta1RuntimeClassList] -> ShowS
V1beta1RuntimeClassList -> String
(Int -> V1beta1RuntimeClassList -> ShowS)
-> (V1beta1RuntimeClassList -> String)
-> ([V1beta1RuntimeClassList] -> ShowS)
-> Show V1beta1RuntimeClassList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1RuntimeClassList] -> ShowS
$cshowList :: [V1beta1RuntimeClassList] -> ShowS
show :: V1beta1RuntimeClassList -> String
$cshow :: V1beta1RuntimeClassList -> String
showsPrec :: Int -> V1beta1RuntimeClassList -> ShowS
$cshowsPrec :: Int -> V1beta1RuntimeClassList -> ShowS
P.Show, V1beta1RuntimeClassList -> V1beta1RuntimeClassList -> Bool
(V1beta1RuntimeClassList -> V1beta1RuntimeClassList -> Bool)
-> (V1beta1RuntimeClassList -> V1beta1RuntimeClassList -> Bool)
-> Eq V1beta1RuntimeClassList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1RuntimeClassList -> V1beta1RuntimeClassList -> Bool
$c/= :: V1beta1RuntimeClassList -> V1beta1RuntimeClassList -> Bool
== :: V1beta1RuntimeClassList -> V1beta1RuntimeClassList -> Bool
$c== :: V1beta1RuntimeClassList -> V1beta1RuntimeClassList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1RuntimeClassList
instance A.FromJSON V1beta1RuntimeClassList where
  parseJSON :: Value -> Parser V1beta1RuntimeClassList
parseJSON = String
-> (Object -> Parser V1beta1RuntimeClassList)
-> Value
-> Parser V1beta1RuntimeClassList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1RuntimeClassList" ((Object -> Parser V1beta1RuntimeClassList)
 -> Value -> Parser V1beta1RuntimeClassList)
-> (Object -> Parser V1beta1RuntimeClassList)
-> Value
-> Parser V1beta1RuntimeClassList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1RuntimeClass]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1RuntimeClassList
V1beta1RuntimeClassList
      (Maybe Text
 -> [V1beta1RuntimeClass]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1RuntimeClassList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1RuntimeClass]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1RuntimeClassList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1RuntimeClass]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1RuntimeClassList)
-> Parser [V1beta1RuntimeClass]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1beta1RuntimeClassList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1RuntimeClass]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1RuntimeClassList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1RuntimeClassList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1RuntimeClassList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1RuntimeClassList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1RuntimeClassList
instance A.ToJSON V1beta1RuntimeClassList where
  toJSON :: V1beta1RuntimeClassList -> Value
toJSON V1beta1RuntimeClassList {[V1beta1RuntimeClass]
Maybe Text
Maybe V1ListMeta
v1beta1RuntimeClassListMetadata :: Maybe V1ListMeta
v1beta1RuntimeClassListKind :: Maybe Text
v1beta1RuntimeClassListItems :: [V1beta1RuntimeClass]
v1beta1RuntimeClassListApiVersion :: Maybe Text
v1beta1RuntimeClassListMetadata :: V1beta1RuntimeClassList -> Maybe V1ListMeta
v1beta1RuntimeClassListKind :: V1beta1RuntimeClassList -> Maybe Text
v1beta1RuntimeClassListItems :: V1beta1RuntimeClassList -> [V1beta1RuntimeClass]
v1beta1RuntimeClassListApiVersion :: V1beta1RuntimeClassList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1RuntimeClassListApiVersion
      , Text
"items" Text -> [V1beta1RuntimeClass] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1RuntimeClass]
v1beta1RuntimeClassListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1RuntimeClassListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1RuntimeClassListMetadata
      ]


-- | Construct a value of type 'V1beta1RuntimeClassList' (by applying it's required fields, if any)
mkV1beta1RuntimeClassList
  :: [V1beta1RuntimeClass] -- ^ 'v1beta1RuntimeClassListItems': Items is a list of schema objects.
  -> V1beta1RuntimeClassList
mkV1beta1RuntimeClassList :: [V1beta1RuntimeClass] -> V1beta1RuntimeClassList
mkV1beta1RuntimeClassList [V1beta1RuntimeClass]
v1beta1RuntimeClassListItems =
  V1beta1RuntimeClassList :: Maybe Text
-> [V1beta1RuntimeClass]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1RuntimeClassList
V1beta1RuntimeClassList
  { v1beta1RuntimeClassListApiVersion :: Maybe Text
v1beta1RuntimeClassListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1RuntimeClass]
v1beta1RuntimeClassListItems :: [V1beta1RuntimeClass]
v1beta1RuntimeClassListItems :: [V1beta1RuntimeClass]
v1beta1RuntimeClassListItems
  , v1beta1RuntimeClassListKind :: Maybe Text
v1beta1RuntimeClassListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1RuntimeClassListMetadata :: Maybe V1ListMeta
v1beta1RuntimeClassListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1Scheduling
-- | V1beta1Scheduling
-- Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.
data V1beta1Scheduling = V1beta1Scheduling
  { V1beta1Scheduling -> Maybe (Map String Text)
v1beta1SchedulingNodeSelector :: !(Maybe (Map.Map String Text)) -- ^ "nodeSelector" - nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod&#39;s existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.
  , V1beta1Scheduling -> Maybe [V1Toleration]
v1beta1SchedulingTolerations :: !(Maybe [V1Toleration]) -- ^ "tolerations" - tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.
  } deriving (Int -> V1beta1Scheduling -> ShowS
[V1beta1Scheduling] -> ShowS
V1beta1Scheduling -> String
(Int -> V1beta1Scheduling -> ShowS)
-> (V1beta1Scheduling -> String)
-> ([V1beta1Scheduling] -> ShowS)
-> Show V1beta1Scheduling
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1Scheduling] -> ShowS
$cshowList :: [V1beta1Scheduling] -> ShowS
show :: V1beta1Scheduling -> String
$cshow :: V1beta1Scheduling -> String
showsPrec :: Int -> V1beta1Scheduling -> ShowS
$cshowsPrec :: Int -> V1beta1Scheduling -> ShowS
P.Show, V1beta1Scheduling -> V1beta1Scheduling -> Bool
(V1beta1Scheduling -> V1beta1Scheduling -> Bool)
-> (V1beta1Scheduling -> V1beta1Scheduling -> Bool)
-> Eq V1beta1Scheduling
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1Scheduling -> V1beta1Scheduling -> Bool
$c/= :: V1beta1Scheduling -> V1beta1Scheduling -> Bool
== :: V1beta1Scheduling -> V1beta1Scheduling -> Bool
$c== :: V1beta1Scheduling -> V1beta1Scheduling -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1Scheduling
instance A.FromJSON V1beta1Scheduling where
  parseJSON :: Value -> Parser V1beta1Scheduling
parseJSON = String
-> (Object -> Parser V1beta1Scheduling)
-> Value
-> Parser V1beta1Scheduling
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1Scheduling" ((Object -> Parser V1beta1Scheduling)
 -> Value -> Parser V1beta1Scheduling)
-> (Object -> Parser V1beta1Scheduling)
-> Value
-> Parser V1beta1Scheduling
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe (Map String Text)
-> Maybe [V1Toleration] -> V1beta1Scheduling
V1beta1Scheduling
      (Maybe (Map String Text)
 -> Maybe [V1Toleration] -> V1beta1Scheduling)
-> Parser (Maybe (Map String Text))
-> Parser (Maybe [V1Toleration] -> V1beta1Scheduling)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nodeSelector")
      Parser (Maybe [V1Toleration] -> V1beta1Scheduling)
-> Parser (Maybe [V1Toleration]) -> Parser V1beta1Scheduling
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1Toleration])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"tolerations")

-- | ToJSON V1beta1Scheduling
instance A.ToJSON V1beta1Scheduling where
  toJSON :: V1beta1Scheduling -> Value
toJSON V1beta1Scheduling {Maybe [V1Toleration]
Maybe (Map String Text)
v1beta1SchedulingTolerations :: Maybe [V1Toleration]
v1beta1SchedulingNodeSelector :: Maybe (Map String Text)
v1beta1SchedulingTolerations :: V1beta1Scheduling -> Maybe [V1Toleration]
v1beta1SchedulingNodeSelector :: V1beta1Scheduling -> Maybe (Map String Text)
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"nodeSelector" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1beta1SchedulingNodeSelector
      , Text
"tolerations" Text -> Maybe [V1Toleration] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1Toleration]
v1beta1SchedulingTolerations
      ]


-- | Construct a value of type 'V1beta1Scheduling' (by applying it's required fields, if any)
mkV1beta1Scheduling
  :: V1beta1Scheduling
mkV1beta1Scheduling :: V1beta1Scheduling
mkV1beta1Scheduling =
  V1beta1Scheduling :: Maybe (Map String Text)
-> Maybe [V1Toleration] -> V1beta1Scheduling
V1beta1Scheduling
  { v1beta1SchedulingNodeSelector :: Maybe (Map String Text)
v1beta1SchedulingNodeSelector = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , v1beta1SchedulingTolerations :: Maybe [V1Toleration]
v1beta1SchedulingTolerations = Maybe [V1Toleration]
forall a. Maybe a
Nothing
  }

-- ** V1beta1SelfSubjectAccessReview
-- | V1beta1SelfSubjectAccessReview
-- SelfSubjectAccessReview checks whether or the current user can perform an action.  Not filling in a spec.namespace means \"in all namespaces\".  Self is a special case, because users should always be able to check whether they can perform an action
data V1beta1SelfSubjectAccessReview = V1beta1SelfSubjectAccessReview
  { V1beta1SelfSubjectAccessReview -> Maybe Text
v1beta1SelfSubjectAccessReviewApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1SelfSubjectAccessReview -> Maybe Text
v1beta1SelfSubjectAccessReviewKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1SelfSubjectAccessReview -> Maybe V1ObjectMeta
v1beta1SelfSubjectAccessReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1SelfSubjectAccessReview
-> V1beta1SelfSubjectAccessReviewSpec
v1beta1SelfSubjectAccessReviewSpec :: !(V1beta1SelfSubjectAccessReviewSpec) -- ^ /Required/ "spec"
  , V1beta1SelfSubjectAccessReview
-> Maybe V1beta1SubjectAccessReviewStatus
v1beta1SelfSubjectAccessReviewStatus :: !(Maybe V1beta1SubjectAccessReviewStatus) -- ^ "status"
  } deriving (Int -> V1beta1SelfSubjectAccessReview -> ShowS
[V1beta1SelfSubjectAccessReview] -> ShowS
V1beta1SelfSubjectAccessReview -> String
(Int -> V1beta1SelfSubjectAccessReview -> ShowS)
-> (V1beta1SelfSubjectAccessReview -> String)
-> ([V1beta1SelfSubjectAccessReview] -> ShowS)
-> Show V1beta1SelfSubjectAccessReview
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1SelfSubjectAccessReview] -> ShowS
$cshowList :: [V1beta1SelfSubjectAccessReview] -> ShowS
show :: V1beta1SelfSubjectAccessReview -> String
$cshow :: V1beta1SelfSubjectAccessReview -> String
showsPrec :: Int -> V1beta1SelfSubjectAccessReview -> ShowS
$cshowsPrec :: Int -> V1beta1SelfSubjectAccessReview -> ShowS
P.Show, V1beta1SelfSubjectAccessReview
-> V1beta1SelfSubjectAccessReview -> Bool
(V1beta1SelfSubjectAccessReview
 -> V1beta1SelfSubjectAccessReview -> Bool)
-> (V1beta1SelfSubjectAccessReview
    -> V1beta1SelfSubjectAccessReview -> Bool)
-> Eq V1beta1SelfSubjectAccessReview
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1SelfSubjectAccessReview
-> V1beta1SelfSubjectAccessReview -> Bool
$c/= :: V1beta1SelfSubjectAccessReview
-> V1beta1SelfSubjectAccessReview -> Bool
== :: V1beta1SelfSubjectAccessReview
-> V1beta1SelfSubjectAccessReview -> Bool
$c== :: V1beta1SelfSubjectAccessReview
-> V1beta1SelfSubjectAccessReview -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1SelfSubjectAccessReview
instance A.FromJSON V1beta1SelfSubjectAccessReview where
  parseJSON :: Value -> Parser V1beta1SelfSubjectAccessReview
parseJSON = String
-> (Object -> Parser V1beta1SelfSubjectAccessReview)
-> Value
-> Parser V1beta1SelfSubjectAccessReview
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1SelfSubjectAccessReview" ((Object -> Parser V1beta1SelfSubjectAccessReview)
 -> Value -> Parser V1beta1SelfSubjectAccessReview)
-> (Object -> Parser V1beta1SelfSubjectAccessReview)
-> Value
-> Parser V1beta1SelfSubjectAccessReview
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1SelfSubjectAccessReviewSpec
-> Maybe V1beta1SubjectAccessReviewStatus
-> V1beta1SelfSubjectAccessReview
V1beta1SelfSubjectAccessReview
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1beta1SelfSubjectAccessReviewSpec
 -> Maybe V1beta1SubjectAccessReviewStatus
 -> V1beta1SelfSubjectAccessReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1beta1SelfSubjectAccessReviewSpec
      -> Maybe V1beta1SubjectAccessReviewStatus
      -> V1beta1SelfSubjectAccessReview)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1beta1SelfSubjectAccessReviewSpec
   -> Maybe V1beta1SubjectAccessReviewStatus
   -> V1beta1SelfSubjectAccessReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1beta1SelfSubjectAccessReviewSpec
      -> Maybe V1beta1SubjectAccessReviewStatus
      -> V1beta1SelfSubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1beta1SelfSubjectAccessReviewSpec
   -> Maybe V1beta1SubjectAccessReviewStatus
   -> V1beta1SelfSubjectAccessReview)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1beta1SelfSubjectAccessReviewSpec
      -> Maybe V1beta1SubjectAccessReviewStatus
      -> V1beta1SelfSubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1beta1SelfSubjectAccessReviewSpec
   -> Maybe V1beta1SubjectAccessReviewStatus
   -> V1beta1SelfSubjectAccessReview)
-> Parser V1beta1SelfSubjectAccessReviewSpec
-> Parser
     (Maybe V1beta1SubjectAccessReviewStatus
      -> V1beta1SelfSubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1beta1SelfSubjectAccessReviewSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")
      Parser
  (Maybe V1beta1SubjectAccessReviewStatus
   -> V1beta1SelfSubjectAccessReview)
-> Parser (Maybe V1beta1SubjectAccessReviewStatus)
-> Parser V1beta1SelfSubjectAccessReview
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1SubjectAccessReviewStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta1SelfSubjectAccessReview
instance A.ToJSON V1beta1SelfSubjectAccessReview where
  toJSON :: V1beta1SelfSubjectAccessReview -> Value
toJSON V1beta1SelfSubjectAccessReview {Maybe Text
Maybe V1beta1SubjectAccessReviewStatus
Maybe V1ObjectMeta
V1beta1SelfSubjectAccessReviewSpec
v1beta1SelfSubjectAccessReviewStatus :: Maybe V1beta1SubjectAccessReviewStatus
v1beta1SelfSubjectAccessReviewSpec :: V1beta1SelfSubjectAccessReviewSpec
v1beta1SelfSubjectAccessReviewMetadata :: Maybe V1ObjectMeta
v1beta1SelfSubjectAccessReviewKind :: Maybe Text
v1beta1SelfSubjectAccessReviewApiVersion :: Maybe Text
v1beta1SelfSubjectAccessReviewStatus :: V1beta1SelfSubjectAccessReview
-> Maybe V1beta1SubjectAccessReviewStatus
v1beta1SelfSubjectAccessReviewSpec :: V1beta1SelfSubjectAccessReview
-> V1beta1SelfSubjectAccessReviewSpec
v1beta1SelfSubjectAccessReviewMetadata :: V1beta1SelfSubjectAccessReview -> Maybe V1ObjectMeta
v1beta1SelfSubjectAccessReviewKind :: V1beta1SelfSubjectAccessReview -> Maybe Text
v1beta1SelfSubjectAccessReviewApiVersion :: V1beta1SelfSubjectAccessReview -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1SelfSubjectAccessReviewApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1SelfSubjectAccessReviewKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1SelfSubjectAccessReviewMetadata
      , Text
"spec" Text -> V1beta1SelfSubjectAccessReviewSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1beta1SelfSubjectAccessReviewSpec
v1beta1SelfSubjectAccessReviewSpec
      , Text
"status" Text -> Maybe V1beta1SubjectAccessReviewStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1SubjectAccessReviewStatus
v1beta1SelfSubjectAccessReviewStatus
      ]


-- | Construct a value of type 'V1beta1SelfSubjectAccessReview' (by applying it's required fields, if any)
mkV1beta1SelfSubjectAccessReview
  :: V1beta1SelfSubjectAccessReviewSpec -- ^ 'v1beta1SelfSubjectAccessReviewSpec' 
  -> V1beta1SelfSubjectAccessReview
mkV1beta1SelfSubjectAccessReview :: V1beta1SelfSubjectAccessReviewSpec
-> V1beta1SelfSubjectAccessReview
mkV1beta1SelfSubjectAccessReview V1beta1SelfSubjectAccessReviewSpec
v1beta1SelfSubjectAccessReviewSpec =
  V1beta1SelfSubjectAccessReview :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1SelfSubjectAccessReviewSpec
-> Maybe V1beta1SubjectAccessReviewStatus
-> V1beta1SelfSubjectAccessReview
V1beta1SelfSubjectAccessReview
  { v1beta1SelfSubjectAccessReviewApiVersion :: Maybe Text
v1beta1SelfSubjectAccessReviewApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1SelfSubjectAccessReviewKind :: Maybe Text
v1beta1SelfSubjectAccessReviewKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1SelfSubjectAccessReviewMetadata :: Maybe V1ObjectMeta
v1beta1SelfSubjectAccessReviewMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1beta1SelfSubjectAccessReviewSpec
v1beta1SelfSubjectAccessReviewSpec :: V1beta1SelfSubjectAccessReviewSpec
v1beta1SelfSubjectAccessReviewSpec :: V1beta1SelfSubjectAccessReviewSpec
v1beta1SelfSubjectAccessReviewSpec
  , v1beta1SelfSubjectAccessReviewStatus :: Maybe V1beta1SubjectAccessReviewStatus
v1beta1SelfSubjectAccessReviewStatus = Maybe V1beta1SubjectAccessReviewStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta1SelfSubjectAccessReviewSpec
-- | V1beta1SelfSubjectAccessReviewSpec
-- SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set
data V1beta1SelfSubjectAccessReviewSpec = V1beta1SelfSubjectAccessReviewSpec
  { V1beta1SelfSubjectAccessReviewSpec
-> Maybe V1beta1NonResourceAttributes
v1beta1SelfSubjectAccessReviewSpecNonResourceAttributes :: !(Maybe V1beta1NonResourceAttributes) -- ^ "nonResourceAttributes"
  , V1beta1SelfSubjectAccessReviewSpec
-> Maybe V1beta1ResourceAttributes
v1beta1SelfSubjectAccessReviewSpecResourceAttributes :: !(Maybe V1beta1ResourceAttributes) -- ^ "resourceAttributes"
  } deriving (Int -> V1beta1SelfSubjectAccessReviewSpec -> ShowS
[V1beta1SelfSubjectAccessReviewSpec] -> ShowS
V1beta1SelfSubjectAccessReviewSpec -> String
(Int -> V1beta1SelfSubjectAccessReviewSpec -> ShowS)
-> (V1beta1SelfSubjectAccessReviewSpec -> String)
-> ([V1beta1SelfSubjectAccessReviewSpec] -> ShowS)
-> Show V1beta1SelfSubjectAccessReviewSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1SelfSubjectAccessReviewSpec] -> ShowS
$cshowList :: [V1beta1SelfSubjectAccessReviewSpec] -> ShowS
show :: V1beta1SelfSubjectAccessReviewSpec -> String
$cshow :: V1beta1SelfSubjectAccessReviewSpec -> String
showsPrec :: Int -> V1beta1SelfSubjectAccessReviewSpec -> ShowS
$cshowsPrec :: Int -> V1beta1SelfSubjectAccessReviewSpec -> ShowS
P.Show, V1beta1SelfSubjectAccessReviewSpec
-> V1beta1SelfSubjectAccessReviewSpec -> Bool
(V1beta1SelfSubjectAccessReviewSpec
 -> V1beta1SelfSubjectAccessReviewSpec -> Bool)
-> (V1beta1SelfSubjectAccessReviewSpec
    -> V1beta1SelfSubjectAccessReviewSpec -> Bool)
-> Eq V1beta1SelfSubjectAccessReviewSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1SelfSubjectAccessReviewSpec
-> V1beta1SelfSubjectAccessReviewSpec -> Bool
$c/= :: V1beta1SelfSubjectAccessReviewSpec
-> V1beta1SelfSubjectAccessReviewSpec -> Bool
== :: V1beta1SelfSubjectAccessReviewSpec
-> V1beta1SelfSubjectAccessReviewSpec -> Bool
$c== :: V1beta1SelfSubjectAccessReviewSpec
-> V1beta1SelfSubjectAccessReviewSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1SelfSubjectAccessReviewSpec
instance A.FromJSON V1beta1SelfSubjectAccessReviewSpec where
  parseJSON :: Value -> Parser V1beta1SelfSubjectAccessReviewSpec
parseJSON = String
-> (Object -> Parser V1beta1SelfSubjectAccessReviewSpec)
-> Value
-> Parser V1beta1SelfSubjectAccessReviewSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1SelfSubjectAccessReviewSpec" ((Object -> Parser V1beta1SelfSubjectAccessReviewSpec)
 -> Value -> Parser V1beta1SelfSubjectAccessReviewSpec)
-> (Object -> Parser V1beta1SelfSubjectAccessReviewSpec)
-> Value
-> Parser V1beta1SelfSubjectAccessReviewSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1beta1NonResourceAttributes
-> Maybe V1beta1ResourceAttributes
-> V1beta1SelfSubjectAccessReviewSpec
V1beta1SelfSubjectAccessReviewSpec
      (Maybe V1beta1NonResourceAttributes
 -> Maybe V1beta1ResourceAttributes
 -> V1beta1SelfSubjectAccessReviewSpec)
-> Parser (Maybe V1beta1NonResourceAttributes)
-> Parser
     (Maybe V1beta1ResourceAttributes
      -> V1beta1SelfSubjectAccessReviewSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1beta1NonResourceAttributes)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nonResourceAttributes")
      Parser
  (Maybe V1beta1ResourceAttributes
   -> V1beta1SelfSubjectAccessReviewSpec)
-> Parser (Maybe V1beta1ResourceAttributes)
-> Parser V1beta1SelfSubjectAccessReviewSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1ResourceAttributes)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resourceAttributes")

-- | ToJSON V1beta1SelfSubjectAccessReviewSpec
instance A.ToJSON V1beta1SelfSubjectAccessReviewSpec where
  toJSON :: V1beta1SelfSubjectAccessReviewSpec -> Value
toJSON V1beta1SelfSubjectAccessReviewSpec {Maybe V1beta1ResourceAttributes
Maybe V1beta1NonResourceAttributes
v1beta1SelfSubjectAccessReviewSpecResourceAttributes :: Maybe V1beta1ResourceAttributes
v1beta1SelfSubjectAccessReviewSpecNonResourceAttributes :: Maybe V1beta1NonResourceAttributes
v1beta1SelfSubjectAccessReviewSpecResourceAttributes :: V1beta1SelfSubjectAccessReviewSpec
-> Maybe V1beta1ResourceAttributes
v1beta1SelfSubjectAccessReviewSpecNonResourceAttributes :: V1beta1SelfSubjectAccessReviewSpec
-> Maybe V1beta1NonResourceAttributes
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"nonResourceAttributes" Text -> Maybe V1beta1NonResourceAttributes -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1NonResourceAttributes
v1beta1SelfSubjectAccessReviewSpecNonResourceAttributes
      , Text
"resourceAttributes" Text -> Maybe V1beta1ResourceAttributes -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1ResourceAttributes
v1beta1SelfSubjectAccessReviewSpecResourceAttributes
      ]


-- | Construct a value of type 'V1beta1SelfSubjectAccessReviewSpec' (by applying it's required fields, if any)
mkV1beta1SelfSubjectAccessReviewSpec
  :: V1beta1SelfSubjectAccessReviewSpec
mkV1beta1SelfSubjectAccessReviewSpec :: V1beta1SelfSubjectAccessReviewSpec
mkV1beta1SelfSubjectAccessReviewSpec =
  V1beta1SelfSubjectAccessReviewSpec :: Maybe V1beta1NonResourceAttributes
-> Maybe V1beta1ResourceAttributes
-> V1beta1SelfSubjectAccessReviewSpec
V1beta1SelfSubjectAccessReviewSpec
  { v1beta1SelfSubjectAccessReviewSpecNonResourceAttributes :: Maybe V1beta1NonResourceAttributes
v1beta1SelfSubjectAccessReviewSpecNonResourceAttributes = Maybe V1beta1NonResourceAttributes
forall a. Maybe a
Nothing
  , v1beta1SelfSubjectAccessReviewSpecResourceAttributes :: Maybe V1beta1ResourceAttributes
v1beta1SelfSubjectAccessReviewSpecResourceAttributes = Maybe V1beta1ResourceAttributes
forall a. Maybe a
Nothing
  }

-- ** V1beta1SelfSubjectRulesReview
-- | V1beta1SelfSubjectRulesReview
-- SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.
data V1beta1SelfSubjectRulesReview = V1beta1SelfSubjectRulesReview
  { V1beta1SelfSubjectRulesReview -> Maybe Text
v1beta1SelfSubjectRulesReviewApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1SelfSubjectRulesReview -> Maybe Text
v1beta1SelfSubjectRulesReviewKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1SelfSubjectRulesReview -> Maybe V1ObjectMeta
v1beta1SelfSubjectRulesReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1SelfSubjectRulesReview -> V1beta1SelfSubjectRulesReviewSpec
v1beta1SelfSubjectRulesReviewSpec :: !(V1beta1SelfSubjectRulesReviewSpec) -- ^ /Required/ "spec"
  , V1beta1SelfSubjectRulesReview
-> Maybe V1beta1SubjectRulesReviewStatus
v1beta1SelfSubjectRulesReviewStatus :: !(Maybe V1beta1SubjectRulesReviewStatus) -- ^ "status"
  } deriving (Int -> V1beta1SelfSubjectRulesReview -> ShowS
[V1beta1SelfSubjectRulesReview] -> ShowS
V1beta1SelfSubjectRulesReview -> String
(Int -> V1beta1SelfSubjectRulesReview -> ShowS)
-> (V1beta1SelfSubjectRulesReview -> String)
-> ([V1beta1SelfSubjectRulesReview] -> ShowS)
-> Show V1beta1SelfSubjectRulesReview
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1SelfSubjectRulesReview] -> ShowS
$cshowList :: [V1beta1SelfSubjectRulesReview] -> ShowS
show :: V1beta1SelfSubjectRulesReview -> String
$cshow :: V1beta1SelfSubjectRulesReview -> String
showsPrec :: Int -> V1beta1SelfSubjectRulesReview -> ShowS
$cshowsPrec :: Int -> V1beta1SelfSubjectRulesReview -> ShowS
P.Show, V1beta1SelfSubjectRulesReview
-> V1beta1SelfSubjectRulesReview -> Bool
(V1beta1SelfSubjectRulesReview
 -> V1beta1SelfSubjectRulesReview -> Bool)
-> (V1beta1SelfSubjectRulesReview
    -> V1beta1SelfSubjectRulesReview -> Bool)
-> Eq V1beta1SelfSubjectRulesReview
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1SelfSubjectRulesReview
-> V1beta1SelfSubjectRulesReview -> Bool
$c/= :: V1beta1SelfSubjectRulesReview
-> V1beta1SelfSubjectRulesReview -> Bool
== :: V1beta1SelfSubjectRulesReview
-> V1beta1SelfSubjectRulesReview -> Bool
$c== :: V1beta1SelfSubjectRulesReview
-> V1beta1SelfSubjectRulesReview -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1SelfSubjectRulesReview
instance A.FromJSON V1beta1SelfSubjectRulesReview where
  parseJSON :: Value -> Parser V1beta1SelfSubjectRulesReview
parseJSON = String
-> (Object -> Parser V1beta1SelfSubjectRulesReview)
-> Value
-> Parser V1beta1SelfSubjectRulesReview
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1SelfSubjectRulesReview" ((Object -> Parser V1beta1SelfSubjectRulesReview)
 -> Value -> Parser V1beta1SelfSubjectRulesReview)
-> (Object -> Parser V1beta1SelfSubjectRulesReview)
-> Value
-> Parser V1beta1SelfSubjectRulesReview
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1SelfSubjectRulesReviewSpec
-> Maybe V1beta1SubjectRulesReviewStatus
-> V1beta1SelfSubjectRulesReview
V1beta1SelfSubjectRulesReview
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1beta1SelfSubjectRulesReviewSpec
 -> Maybe V1beta1SubjectRulesReviewStatus
 -> V1beta1SelfSubjectRulesReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1beta1SelfSubjectRulesReviewSpec
      -> Maybe V1beta1SubjectRulesReviewStatus
      -> V1beta1SelfSubjectRulesReview)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1beta1SelfSubjectRulesReviewSpec
   -> Maybe V1beta1SubjectRulesReviewStatus
   -> V1beta1SelfSubjectRulesReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1beta1SelfSubjectRulesReviewSpec
      -> Maybe V1beta1SubjectRulesReviewStatus
      -> V1beta1SelfSubjectRulesReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1beta1SelfSubjectRulesReviewSpec
   -> Maybe V1beta1SubjectRulesReviewStatus
   -> V1beta1SelfSubjectRulesReview)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1beta1SelfSubjectRulesReviewSpec
      -> Maybe V1beta1SubjectRulesReviewStatus
      -> V1beta1SelfSubjectRulesReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1beta1SelfSubjectRulesReviewSpec
   -> Maybe V1beta1SubjectRulesReviewStatus
   -> V1beta1SelfSubjectRulesReview)
-> Parser V1beta1SelfSubjectRulesReviewSpec
-> Parser
     (Maybe V1beta1SubjectRulesReviewStatus
      -> V1beta1SelfSubjectRulesReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1beta1SelfSubjectRulesReviewSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")
      Parser
  (Maybe V1beta1SubjectRulesReviewStatus
   -> V1beta1SelfSubjectRulesReview)
-> Parser (Maybe V1beta1SubjectRulesReviewStatus)
-> Parser V1beta1SelfSubjectRulesReview
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1SubjectRulesReviewStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta1SelfSubjectRulesReview
instance A.ToJSON V1beta1SelfSubjectRulesReview where
  toJSON :: V1beta1SelfSubjectRulesReview -> Value
toJSON V1beta1SelfSubjectRulesReview {Maybe Text
Maybe V1beta1SubjectRulesReviewStatus
Maybe V1ObjectMeta
V1beta1SelfSubjectRulesReviewSpec
v1beta1SelfSubjectRulesReviewStatus :: Maybe V1beta1SubjectRulesReviewStatus
v1beta1SelfSubjectRulesReviewSpec :: V1beta1SelfSubjectRulesReviewSpec
v1beta1SelfSubjectRulesReviewMetadata :: Maybe V1ObjectMeta
v1beta1SelfSubjectRulesReviewKind :: Maybe Text
v1beta1SelfSubjectRulesReviewApiVersion :: Maybe Text
v1beta1SelfSubjectRulesReviewStatus :: V1beta1SelfSubjectRulesReview
-> Maybe V1beta1SubjectRulesReviewStatus
v1beta1SelfSubjectRulesReviewSpec :: V1beta1SelfSubjectRulesReview -> V1beta1SelfSubjectRulesReviewSpec
v1beta1SelfSubjectRulesReviewMetadata :: V1beta1SelfSubjectRulesReview -> Maybe V1ObjectMeta
v1beta1SelfSubjectRulesReviewKind :: V1beta1SelfSubjectRulesReview -> Maybe Text
v1beta1SelfSubjectRulesReviewApiVersion :: V1beta1SelfSubjectRulesReview -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1SelfSubjectRulesReviewApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1SelfSubjectRulesReviewKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1SelfSubjectRulesReviewMetadata
      , Text
"spec" Text -> V1beta1SelfSubjectRulesReviewSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1beta1SelfSubjectRulesReviewSpec
v1beta1SelfSubjectRulesReviewSpec
      , Text
"status" Text -> Maybe V1beta1SubjectRulesReviewStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1SubjectRulesReviewStatus
v1beta1SelfSubjectRulesReviewStatus
      ]


-- | Construct a value of type 'V1beta1SelfSubjectRulesReview' (by applying it's required fields, if any)
mkV1beta1SelfSubjectRulesReview
  :: V1beta1SelfSubjectRulesReviewSpec -- ^ 'v1beta1SelfSubjectRulesReviewSpec' 
  -> V1beta1SelfSubjectRulesReview
mkV1beta1SelfSubjectRulesReview :: V1beta1SelfSubjectRulesReviewSpec -> V1beta1SelfSubjectRulesReview
mkV1beta1SelfSubjectRulesReview V1beta1SelfSubjectRulesReviewSpec
v1beta1SelfSubjectRulesReviewSpec =
  V1beta1SelfSubjectRulesReview :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1SelfSubjectRulesReviewSpec
-> Maybe V1beta1SubjectRulesReviewStatus
-> V1beta1SelfSubjectRulesReview
V1beta1SelfSubjectRulesReview
  { v1beta1SelfSubjectRulesReviewApiVersion :: Maybe Text
v1beta1SelfSubjectRulesReviewApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1SelfSubjectRulesReviewKind :: Maybe Text
v1beta1SelfSubjectRulesReviewKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1SelfSubjectRulesReviewMetadata :: Maybe V1ObjectMeta
v1beta1SelfSubjectRulesReviewMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1beta1SelfSubjectRulesReviewSpec
v1beta1SelfSubjectRulesReviewSpec :: V1beta1SelfSubjectRulesReviewSpec
v1beta1SelfSubjectRulesReviewSpec :: V1beta1SelfSubjectRulesReviewSpec
v1beta1SelfSubjectRulesReviewSpec
  , v1beta1SelfSubjectRulesReviewStatus :: Maybe V1beta1SubjectRulesReviewStatus
v1beta1SelfSubjectRulesReviewStatus = Maybe V1beta1SubjectRulesReviewStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta1SelfSubjectRulesReviewSpec
-- | V1beta1SelfSubjectRulesReviewSpec
data V1beta1SelfSubjectRulesReviewSpec = V1beta1SelfSubjectRulesReviewSpec
  { V1beta1SelfSubjectRulesReviewSpec -> Maybe Text
v1beta1SelfSubjectRulesReviewSpecNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace to evaluate rules for. Required.
  } deriving (Int -> V1beta1SelfSubjectRulesReviewSpec -> ShowS
[V1beta1SelfSubjectRulesReviewSpec] -> ShowS
V1beta1SelfSubjectRulesReviewSpec -> String
(Int -> V1beta1SelfSubjectRulesReviewSpec -> ShowS)
-> (V1beta1SelfSubjectRulesReviewSpec -> String)
-> ([V1beta1SelfSubjectRulesReviewSpec] -> ShowS)
-> Show V1beta1SelfSubjectRulesReviewSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1SelfSubjectRulesReviewSpec] -> ShowS
$cshowList :: [V1beta1SelfSubjectRulesReviewSpec] -> ShowS
show :: V1beta1SelfSubjectRulesReviewSpec -> String
$cshow :: V1beta1SelfSubjectRulesReviewSpec -> String
showsPrec :: Int -> V1beta1SelfSubjectRulesReviewSpec -> ShowS
$cshowsPrec :: Int -> V1beta1SelfSubjectRulesReviewSpec -> ShowS
P.Show, V1beta1SelfSubjectRulesReviewSpec
-> V1beta1SelfSubjectRulesReviewSpec -> Bool
(V1beta1SelfSubjectRulesReviewSpec
 -> V1beta1SelfSubjectRulesReviewSpec -> Bool)
-> (V1beta1SelfSubjectRulesReviewSpec
    -> V1beta1SelfSubjectRulesReviewSpec -> Bool)
-> Eq V1beta1SelfSubjectRulesReviewSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1SelfSubjectRulesReviewSpec
-> V1beta1SelfSubjectRulesReviewSpec -> Bool
$c/= :: V1beta1SelfSubjectRulesReviewSpec
-> V1beta1SelfSubjectRulesReviewSpec -> Bool
== :: V1beta1SelfSubjectRulesReviewSpec
-> V1beta1SelfSubjectRulesReviewSpec -> Bool
$c== :: V1beta1SelfSubjectRulesReviewSpec
-> V1beta1SelfSubjectRulesReviewSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1SelfSubjectRulesReviewSpec
instance A.FromJSON V1beta1SelfSubjectRulesReviewSpec where
  parseJSON :: Value -> Parser V1beta1SelfSubjectRulesReviewSpec
parseJSON = String
-> (Object -> Parser V1beta1SelfSubjectRulesReviewSpec)
-> Value
-> Parser V1beta1SelfSubjectRulesReviewSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1SelfSubjectRulesReviewSpec" ((Object -> Parser V1beta1SelfSubjectRulesReviewSpec)
 -> Value -> Parser V1beta1SelfSubjectRulesReviewSpec)
-> (Object -> Parser V1beta1SelfSubjectRulesReviewSpec)
-> Value
-> Parser V1beta1SelfSubjectRulesReviewSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> V1beta1SelfSubjectRulesReviewSpec
V1beta1SelfSubjectRulesReviewSpec
      (Maybe Text -> V1beta1SelfSubjectRulesReviewSpec)
-> Parser (Maybe Text) -> Parser V1beta1SelfSubjectRulesReviewSpec
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespace")

-- | ToJSON V1beta1SelfSubjectRulesReviewSpec
instance A.ToJSON V1beta1SelfSubjectRulesReviewSpec where
  toJSON :: V1beta1SelfSubjectRulesReviewSpec -> Value
toJSON V1beta1SelfSubjectRulesReviewSpec {Maybe Text
v1beta1SelfSubjectRulesReviewSpecNamespace :: Maybe Text
v1beta1SelfSubjectRulesReviewSpecNamespace :: V1beta1SelfSubjectRulesReviewSpec -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"namespace" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1SelfSubjectRulesReviewSpecNamespace
      ]


-- | Construct a value of type 'V1beta1SelfSubjectRulesReviewSpec' (by applying it's required fields, if any)
mkV1beta1SelfSubjectRulesReviewSpec
  :: V1beta1SelfSubjectRulesReviewSpec
mkV1beta1SelfSubjectRulesReviewSpec :: V1beta1SelfSubjectRulesReviewSpec
mkV1beta1SelfSubjectRulesReviewSpec =
  V1beta1SelfSubjectRulesReviewSpec :: Maybe Text -> V1beta1SelfSubjectRulesReviewSpec
V1beta1SelfSubjectRulesReviewSpec
  { v1beta1SelfSubjectRulesReviewSpecNamespace :: Maybe Text
v1beta1SelfSubjectRulesReviewSpecNamespace = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1StatefulSet
-- | V1beta1StatefulSet
-- DEPRECATED - This group version of StatefulSet is deprecated by apps/v1beta2/StatefulSet. See the release notes for more information. StatefulSet represents a set of pods with consistent identities. Identities are defined as:  - Network: A single stable DNS and hostname.  - Storage: As many VolumeClaims as requested. The StatefulSet guarantees that a given network identity will always map to the same storage identity.
data V1beta1StatefulSet = V1beta1StatefulSet
  { V1beta1StatefulSet -> Maybe Text
v1beta1StatefulSetApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1StatefulSet -> Maybe Text
v1beta1StatefulSetKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1StatefulSet -> Maybe V1ObjectMeta
v1beta1StatefulSetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1StatefulSet -> Maybe V1beta1StatefulSetSpec
v1beta1StatefulSetSpec :: !(Maybe V1beta1StatefulSetSpec) -- ^ "spec"
  , V1beta1StatefulSet -> Maybe V1beta1StatefulSetStatus
v1beta1StatefulSetStatus :: !(Maybe V1beta1StatefulSetStatus) -- ^ "status"
  } deriving (Int -> V1beta1StatefulSet -> ShowS
[V1beta1StatefulSet] -> ShowS
V1beta1StatefulSet -> String
(Int -> V1beta1StatefulSet -> ShowS)
-> (V1beta1StatefulSet -> String)
-> ([V1beta1StatefulSet] -> ShowS)
-> Show V1beta1StatefulSet
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1StatefulSet] -> ShowS
$cshowList :: [V1beta1StatefulSet] -> ShowS
show :: V1beta1StatefulSet -> String
$cshow :: V1beta1StatefulSet -> String
showsPrec :: Int -> V1beta1StatefulSet -> ShowS
$cshowsPrec :: Int -> V1beta1StatefulSet -> ShowS
P.Show, V1beta1StatefulSet -> V1beta1StatefulSet -> Bool
(V1beta1StatefulSet -> V1beta1StatefulSet -> Bool)
-> (V1beta1StatefulSet -> V1beta1StatefulSet -> Bool)
-> Eq V1beta1StatefulSet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1StatefulSet -> V1beta1StatefulSet -> Bool
$c/= :: V1beta1StatefulSet -> V1beta1StatefulSet -> Bool
== :: V1beta1StatefulSet -> V1beta1StatefulSet -> Bool
$c== :: V1beta1StatefulSet -> V1beta1StatefulSet -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1StatefulSet
instance A.FromJSON V1beta1StatefulSet where
  parseJSON :: Value -> Parser V1beta1StatefulSet
parseJSON = String
-> (Object -> Parser V1beta1StatefulSet)
-> Value
-> Parser V1beta1StatefulSet
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1StatefulSet" ((Object -> Parser V1beta1StatefulSet)
 -> Value -> Parser V1beta1StatefulSet)
-> (Object -> Parser V1beta1StatefulSet)
-> Value
-> Parser V1beta1StatefulSet
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1StatefulSetSpec
-> Maybe V1beta1StatefulSetStatus
-> V1beta1StatefulSet
V1beta1StatefulSet
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1beta1StatefulSetSpec
 -> Maybe V1beta1StatefulSetStatus
 -> V1beta1StatefulSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1beta1StatefulSetSpec
      -> Maybe V1beta1StatefulSetStatus
      -> V1beta1StatefulSet)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1beta1StatefulSetSpec
   -> Maybe V1beta1StatefulSetStatus
   -> V1beta1StatefulSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1beta1StatefulSetSpec
      -> Maybe V1beta1StatefulSetStatus
      -> V1beta1StatefulSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1beta1StatefulSetSpec
   -> Maybe V1beta1StatefulSetStatus
   -> V1beta1StatefulSet)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1beta1StatefulSetSpec
      -> Maybe V1beta1StatefulSetStatus -> V1beta1StatefulSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1beta1StatefulSetSpec
   -> Maybe V1beta1StatefulSetStatus -> V1beta1StatefulSet)
-> Parser (Maybe V1beta1StatefulSetSpec)
-> Parser (Maybe V1beta1StatefulSetStatus -> V1beta1StatefulSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1StatefulSetSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1beta1StatefulSetStatus -> V1beta1StatefulSet)
-> Parser (Maybe V1beta1StatefulSetStatus)
-> Parser V1beta1StatefulSet
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1StatefulSetStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta1StatefulSet
instance A.ToJSON V1beta1StatefulSet where
  toJSON :: V1beta1StatefulSet -> Value
toJSON V1beta1StatefulSet {Maybe Text
Maybe V1beta1StatefulSetStatus
Maybe V1beta1StatefulSetSpec
Maybe V1ObjectMeta
v1beta1StatefulSetStatus :: Maybe V1beta1StatefulSetStatus
v1beta1StatefulSetSpec :: Maybe V1beta1StatefulSetSpec
v1beta1StatefulSetMetadata :: Maybe V1ObjectMeta
v1beta1StatefulSetKind :: Maybe Text
v1beta1StatefulSetApiVersion :: Maybe Text
v1beta1StatefulSetStatus :: V1beta1StatefulSet -> Maybe V1beta1StatefulSetStatus
v1beta1StatefulSetSpec :: V1beta1StatefulSet -> Maybe V1beta1StatefulSetSpec
v1beta1StatefulSetMetadata :: V1beta1StatefulSet -> Maybe V1ObjectMeta
v1beta1StatefulSetKind :: V1beta1StatefulSet -> Maybe Text
v1beta1StatefulSetApiVersion :: V1beta1StatefulSet -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1StatefulSetApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1StatefulSetKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1StatefulSetMetadata
      , Text
"spec" Text -> Maybe V1beta1StatefulSetSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1StatefulSetSpec
v1beta1StatefulSetSpec
      , Text
"status" Text -> Maybe V1beta1StatefulSetStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1StatefulSetStatus
v1beta1StatefulSetStatus
      ]


-- | Construct a value of type 'V1beta1StatefulSet' (by applying it's required fields, if any)
mkV1beta1StatefulSet
  :: V1beta1StatefulSet
mkV1beta1StatefulSet :: V1beta1StatefulSet
mkV1beta1StatefulSet =
  V1beta1StatefulSet :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta1StatefulSetSpec
-> Maybe V1beta1StatefulSetStatus
-> V1beta1StatefulSet
V1beta1StatefulSet
  { v1beta1StatefulSetApiVersion :: Maybe Text
v1beta1StatefulSetApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1StatefulSetKind :: Maybe Text
v1beta1StatefulSetKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1StatefulSetMetadata :: Maybe V1ObjectMeta
v1beta1StatefulSetMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1StatefulSetSpec :: Maybe V1beta1StatefulSetSpec
v1beta1StatefulSetSpec = Maybe V1beta1StatefulSetSpec
forall a. Maybe a
Nothing
  , v1beta1StatefulSetStatus :: Maybe V1beta1StatefulSetStatus
v1beta1StatefulSetStatus = Maybe V1beta1StatefulSetStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta1StatefulSetCondition
-- | V1beta1StatefulSetCondition
-- StatefulSetCondition describes the state of a statefulset at a certain point.
data V1beta1StatefulSetCondition = V1beta1StatefulSetCondition
  { V1beta1StatefulSetCondition -> Maybe DateTime
v1beta1StatefulSetConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.
  , V1beta1StatefulSetCondition -> Maybe Text
v1beta1StatefulSetConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.
  , V1beta1StatefulSetCondition -> Maybe Text
v1beta1StatefulSetConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition&#39;s last transition.
  , V1beta1StatefulSetCondition -> Text
v1beta1StatefulSetConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , V1beta1StatefulSetCondition -> Text
v1beta1StatefulSetConditionType :: !(Text) -- ^ /Required/ "type" - Type of statefulset condition.
  } deriving (Int -> V1beta1StatefulSetCondition -> ShowS
[V1beta1StatefulSetCondition] -> ShowS
V1beta1StatefulSetCondition -> String
(Int -> V1beta1StatefulSetCondition -> ShowS)
-> (V1beta1StatefulSetCondition -> String)
-> ([V1beta1StatefulSetCondition] -> ShowS)
-> Show V1beta1StatefulSetCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1StatefulSetCondition] -> ShowS
$cshowList :: [V1beta1StatefulSetCondition] -> ShowS
show :: V1beta1StatefulSetCondition -> String
$cshow :: V1beta1StatefulSetCondition -> String
showsPrec :: Int -> V1beta1StatefulSetCondition -> ShowS
$cshowsPrec :: Int -> V1beta1StatefulSetCondition -> ShowS
P.Show, V1beta1StatefulSetCondition -> V1beta1StatefulSetCondition -> Bool
(V1beta1StatefulSetCondition
 -> V1beta1StatefulSetCondition -> Bool)
-> (V1beta1StatefulSetCondition
    -> V1beta1StatefulSetCondition -> Bool)
-> Eq V1beta1StatefulSetCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1StatefulSetCondition -> V1beta1StatefulSetCondition -> Bool
$c/= :: V1beta1StatefulSetCondition -> V1beta1StatefulSetCondition -> Bool
== :: V1beta1StatefulSetCondition -> V1beta1StatefulSetCondition -> Bool
$c== :: V1beta1StatefulSetCondition -> V1beta1StatefulSetCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1StatefulSetCondition
instance A.FromJSON V1beta1StatefulSetCondition where
  parseJSON :: Value -> Parser V1beta1StatefulSetCondition
parseJSON = String
-> (Object -> Parser V1beta1StatefulSetCondition)
-> Value
-> Parser V1beta1StatefulSetCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1StatefulSetCondition" ((Object -> Parser V1beta1StatefulSetCondition)
 -> Value -> Parser V1beta1StatefulSetCondition)
-> (Object -> Parser V1beta1StatefulSetCondition)
-> Value
-> Parser V1beta1StatefulSetCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta1StatefulSetCondition
V1beta1StatefulSetCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1beta1StatefulSetCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text -> Text -> Text -> V1beta1StatefulSetCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text
   -> Maybe Text -> Text -> Text -> V1beta1StatefulSetCondition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Text -> Text -> V1beta1StatefulSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1beta1StatefulSetCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1beta1StatefulSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1beta1StatefulSetCondition)
-> Parser Text -> Parser (Text -> V1beta1StatefulSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1beta1StatefulSetCondition)
-> Parser Text -> Parser V1beta1StatefulSetCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1beta1StatefulSetCondition
instance A.ToJSON V1beta1StatefulSetCondition where
  toJSON :: V1beta1StatefulSetCondition -> Value
toJSON V1beta1StatefulSetCondition {Maybe Text
Maybe DateTime
Text
v1beta1StatefulSetConditionType :: Text
v1beta1StatefulSetConditionStatus :: Text
v1beta1StatefulSetConditionReason :: Maybe Text
v1beta1StatefulSetConditionMessage :: Maybe Text
v1beta1StatefulSetConditionLastTransitionTime :: Maybe DateTime
v1beta1StatefulSetConditionType :: V1beta1StatefulSetCondition -> Text
v1beta1StatefulSetConditionStatus :: V1beta1StatefulSetCondition -> Text
v1beta1StatefulSetConditionReason :: V1beta1StatefulSetCondition -> Maybe Text
v1beta1StatefulSetConditionMessage :: V1beta1StatefulSetCondition -> Maybe Text
v1beta1StatefulSetConditionLastTransitionTime :: V1beta1StatefulSetCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta1StatefulSetConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1StatefulSetConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1StatefulSetConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1StatefulSetConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1StatefulSetConditionType
      ]


-- | Construct a value of type 'V1beta1StatefulSetCondition' (by applying it's required fields, if any)
mkV1beta1StatefulSetCondition
  :: Text -- ^ 'v1beta1StatefulSetConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'v1beta1StatefulSetConditionType': Type of statefulset condition.
  -> V1beta1StatefulSetCondition
mkV1beta1StatefulSetCondition :: Text -> Text -> V1beta1StatefulSetCondition
mkV1beta1StatefulSetCondition Text
v1beta1StatefulSetConditionStatus Text
v1beta1StatefulSetConditionType =
  V1beta1StatefulSetCondition :: Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta1StatefulSetCondition
V1beta1StatefulSetCondition
  { v1beta1StatefulSetConditionLastTransitionTime :: Maybe DateTime
v1beta1StatefulSetConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1beta1StatefulSetConditionMessage :: Maybe Text
v1beta1StatefulSetConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1StatefulSetConditionReason :: Maybe Text
v1beta1StatefulSetConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta1StatefulSetConditionStatus :: Text
v1beta1StatefulSetConditionStatus :: Text
v1beta1StatefulSetConditionStatus
  , Text
v1beta1StatefulSetConditionType :: Text
v1beta1StatefulSetConditionType :: Text
v1beta1StatefulSetConditionType
  }

-- ** V1beta1StatefulSetList
-- | V1beta1StatefulSetList
-- StatefulSetList is a collection of StatefulSets.
data V1beta1StatefulSetList = V1beta1StatefulSetList
  { V1beta1StatefulSetList -> Maybe Text
v1beta1StatefulSetListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1StatefulSetList -> [V1beta1StatefulSet]
v1beta1StatefulSetListItems :: !([V1beta1StatefulSet]) -- ^ /Required/ "items"
  , V1beta1StatefulSetList -> Maybe Text
v1beta1StatefulSetListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1StatefulSetList -> Maybe V1ListMeta
v1beta1StatefulSetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1StatefulSetList -> ShowS
[V1beta1StatefulSetList] -> ShowS
V1beta1StatefulSetList -> String
(Int -> V1beta1StatefulSetList -> ShowS)
-> (V1beta1StatefulSetList -> String)
-> ([V1beta1StatefulSetList] -> ShowS)
-> Show V1beta1StatefulSetList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1StatefulSetList] -> ShowS
$cshowList :: [V1beta1StatefulSetList] -> ShowS
show :: V1beta1StatefulSetList -> String
$cshow :: V1beta1StatefulSetList -> String
showsPrec :: Int -> V1beta1StatefulSetList -> ShowS
$cshowsPrec :: Int -> V1beta1StatefulSetList -> ShowS
P.Show, V1beta1StatefulSetList -> V1beta1StatefulSetList -> Bool
(V1beta1StatefulSetList -> V1beta1StatefulSetList -> Bool)
-> (V1beta1StatefulSetList -> V1beta1StatefulSetList -> Bool)
-> Eq V1beta1StatefulSetList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1StatefulSetList -> V1beta1StatefulSetList -> Bool
$c/= :: V1beta1StatefulSetList -> V1beta1StatefulSetList -> Bool
== :: V1beta1StatefulSetList -> V1beta1StatefulSetList -> Bool
$c== :: V1beta1StatefulSetList -> V1beta1StatefulSetList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1StatefulSetList
instance A.FromJSON V1beta1StatefulSetList where
  parseJSON :: Value -> Parser V1beta1StatefulSetList
parseJSON = String
-> (Object -> Parser V1beta1StatefulSetList)
-> Value
-> Parser V1beta1StatefulSetList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1StatefulSetList" ((Object -> Parser V1beta1StatefulSetList)
 -> Value -> Parser V1beta1StatefulSetList)
-> (Object -> Parser V1beta1StatefulSetList)
-> Value
-> Parser V1beta1StatefulSetList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1StatefulSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1StatefulSetList
V1beta1StatefulSetList
      (Maybe Text
 -> [V1beta1StatefulSet]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1StatefulSetList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1StatefulSet]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1StatefulSetList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1StatefulSet]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1StatefulSetList)
-> Parser [V1beta1StatefulSet]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1beta1StatefulSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1StatefulSet]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1StatefulSetList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1StatefulSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1StatefulSetList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1StatefulSetList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1StatefulSetList
instance A.ToJSON V1beta1StatefulSetList where
  toJSON :: V1beta1StatefulSetList -> Value
toJSON V1beta1StatefulSetList {[V1beta1StatefulSet]
Maybe Text
Maybe V1ListMeta
v1beta1StatefulSetListMetadata :: Maybe V1ListMeta
v1beta1StatefulSetListKind :: Maybe Text
v1beta1StatefulSetListItems :: [V1beta1StatefulSet]
v1beta1StatefulSetListApiVersion :: Maybe Text
v1beta1StatefulSetListMetadata :: V1beta1StatefulSetList -> Maybe V1ListMeta
v1beta1StatefulSetListKind :: V1beta1StatefulSetList -> Maybe Text
v1beta1StatefulSetListItems :: V1beta1StatefulSetList -> [V1beta1StatefulSet]
v1beta1StatefulSetListApiVersion :: V1beta1StatefulSetList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1StatefulSetListApiVersion
      , Text
"items" Text -> [V1beta1StatefulSet] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1StatefulSet]
v1beta1StatefulSetListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1StatefulSetListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1StatefulSetListMetadata
      ]


-- | Construct a value of type 'V1beta1StatefulSetList' (by applying it's required fields, if any)
mkV1beta1StatefulSetList
  :: [V1beta1StatefulSet] -- ^ 'v1beta1StatefulSetListItems' 
  -> V1beta1StatefulSetList
mkV1beta1StatefulSetList :: [V1beta1StatefulSet] -> V1beta1StatefulSetList
mkV1beta1StatefulSetList [V1beta1StatefulSet]
v1beta1StatefulSetListItems =
  V1beta1StatefulSetList :: Maybe Text
-> [V1beta1StatefulSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1StatefulSetList
V1beta1StatefulSetList
  { v1beta1StatefulSetListApiVersion :: Maybe Text
v1beta1StatefulSetListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1StatefulSet]
v1beta1StatefulSetListItems :: [V1beta1StatefulSet]
v1beta1StatefulSetListItems :: [V1beta1StatefulSet]
v1beta1StatefulSetListItems
  , v1beta1StatefulSetListKind :: Maybe Text
v1beta1StatefulSetListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1StatefulSetListMetadata :: Maybe V1ListMeta
v1beta1StatefulSetListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1StatefulSetSpec
-- | V1beta1StatefulSetSpec
-- A StatefulSetSpec is the specification of a StatefulSet.
data V1beta1StatefulSetSpec = V1beta1StatefulSetSpec
  { V1beta1StatefulSetSpec -> Maybe Text
v1beta1StatefulSetSpecPodManagementPolicy :: !(Maybe Text) -- ^ "podManagementPolicy" - podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is &#x60;OrderedReady&#x60;, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is &#x60;Parallel&#x60; which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.
  , V1beta1StatefulSetSpec -> Maybe Int
v1beta1StatefulSetSpecReplicas :: !(Maybe Int) -- ^ "replicas" - replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.
  , V1beta1StatefulSetSpec -> Maybe Int
v1beta1StatefulSetSpecRevisionHistoryLimit :: !(Maybe Int) -- ^ "revisionHistoryLimit" - revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet&#39;s revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.
  , V1beta1StatefulSetSpec -> Maybe V1LabelSelector
v1beta1StatefulSetSpecSelector :: !(Maybe V1LabelSelector) -- ^ "selector"
  , V1beta1StatefulSetSpec -> Text
v1beta1StatefulSetSpecServiceName :: !(Text) -- ^ /Required/ "serviceName" - serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \&quot;pod-specific-string\&quot; is managed by the StatefulSet controller.
  , V1beta1StatefulSetSpec -> V1PodTemplateSpec
v1beta1StatefulSetSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"
  , V1beta1StatefulSetSpec -> Maybe V1beta1StatefulSetUpdateStrategy
v1beta1StatefulSetSpecUpdateStrategy :: !(Maybe V1beta1StatefulSetUpdateStrategy) -- ^ "updateStrategy"
  , V1beta1StatefulSetSpec -> Maybe [V1PersistentVolumeClaim]
v1beta1StatefulSetSpecVolumeClaimTemplates :: !(Maybe [V1PersistentVolumeClaim]) -- ^ "volumeClaimTemplates" - volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.
  } deriving (Int -> V1beta1StatefulSetSpec -> ShowS
[V1beta1StatefulSetSpec] -> ShowS
V1beta1StatefulSetSpec -> String
(Int -> V1beta1StatefulSetSpec -> ShowS)
-> (V1beta1StatefulSetSpec -> String)
-> ([V1beta1StatefulSetSpec] -> ShowS)
-> Show V1beta1StatefulSetSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1StatefulSetSpec] -> ShowS
$cshowList :: [V1beta1StatefulSetSpec] -> ShowS
show :: V1beta1StatefulSetSpec -> String
$cshow :: V1beta1StatefulSetSpec -> String
showsPrec :: Int -> V1beta1StatefulSetSpec -> ShowS
$cshowsPrec :: Int -> V1beta1StatefulSetSpec -> ShowS
P.Show, V1beta1StatefulSetSpec -> V1beta1StatefulSetSpec -> Bool
(V1beta1StatefulSetSpec -> V1beta1StatefulSetSpec -> Bool)
-> (V1beta1StatefulSetSpec -> V1beta1StatefulSetSpec -> Bool)
-> Eq V1beta1StatefulSetSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1StatefulSetSpec -> V1beta1StatefulSetSpec -> Bool
$c/= :: V1beta1StatefulSetSpec -> V1beta1StatefulSetSpec -> Bool
== :: V1beta1StatefulSetSpec -> V1beta1StatefulSetSpec -> Bool
$c== :: V1beta1StatefulSetSpec -> V1beta1StatefulSetSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1StatefulSetSpec
instance A.FromJSON V1beta1StatefulSetSpec where
  parseJSON :: Value -> Parser V1beta1StatefulSetSpec
parseJSON = String
-> (Object -> Parser V1beta1StatefulSetSpec)
-> Value
-> Parser V1beta1StatefulSetSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1StatefulSetSpec" ((Object -> Parser V1beta1StatefulSetSpec)
 -> Value -> Parser V1beta1StatefulSetSpec)
-> (Object -> Parser V1beta1StatefulSetSpec)
-> Value
-> Parser V1beta1StatefulSetSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe V1LabelSelector
-> Text
-> V1PodTemplateSpec
-> Maybe V1beta1StatefulSetUpdateStrategy
-> Maybe [V1PersistentVolumeClaim]
-> V1beta1StatefulSetSpec
V1beta1StatefulSetSpec
      (Maybe Text
 -> Maybe Int
 -> Maybe Int
 -> Maybe V1LabelSelector
 -> Text
 -> V1PodTemplateSpec
 -> Maybe V1beta1StatefulSetUpdateStrategy
 -> Maybe [V1PersistentVolumeClaim]
 -> V1beta1StatefulSetSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe V1LabelSelector
      -> Text
      -> V1PodTemplateSpec
      -> Maybe V1beta1StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim]
      -> V1beta1StatefulSetSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"podManagementPolicy")
      Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe V1LabelSelector
   -> Text
   -> V1PodTemplateSpec
   -> Maybe V1beta1StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim]
   -> V1beta1StatefulSetSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe V1LabelSelector
      -> Text
      -> V1PodTemplateSpec
      -> Maybe V1beta1StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim]
      -> V1beta1StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")
      Parser
  (Maybe Int
   -> Maybe V1LabelSelector
   -> Text
   -> V1PodTemplateSpec
   -> Maybe V1beta1StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim]
   -> V1beta1StatefulSetSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe V1LabelSelector
      -> Text
      -> V1PodTemplateSpec
      -> Maybe V1beta1StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim]
      -> V1beta1StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"revisionHistoryLimit")
      Parser
  (Maybe V1LabelSelector
   -> Text
   -> V1PodTemplateSpec
   -> Maybe V1beta1StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim]
   -> V1beta1StatefulSetSpec)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (Text
      -> V1PodTemplateSpec
      -> Maybe V1beta1StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim]
      -> V1beta1StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")
      Parser
  (Text
   -> V1PodTemplateSpec
   -> Maybe V1beta1StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim]
   -> V1beta1StatefulSetSpec)
-> Parser Text
-> Parser
     (V1PodTemplateSpec
      -> Maybe V1beta1StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim]
      -> V1beta1StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"serviceName")
      Parser
  (V1PodTemplateSpec
   -> Maybe V1beta1StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim]
   -> V1beta1StatefulSetSpec)
-> Parser V1PodTemplateSpec
-> Parser
     (Maybe V1beta1StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim] -> V1beta1StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1PodTemplateSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"template")
      Parser
  (Maybe V1beta1StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim] -> V1beta1StatefulSetSpec)
-> Parser (Maybe V1beta1StatefulSetUpdateStrategy)
-> Parser
     (Maybe [V1PersistentVolumeClaim] -> V1beta1StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1StatefulSetUpdateStrategy)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updateStrategy")
      Parser (Maybe [V1PersistentVolumeClaim] -> V1beta1StatefulSetSpec)
-> Parser (Maybe [V1PersistentVolumeClaim])
-> Parser V1beta1StatefulSetSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1PersistentVolumeClaim])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeClaimTemplates")

-- | ToJSON V1beta1StatefulSetSpec
instance A.ToJSON V1beta1StatefulSetSpec where
  toJSON :: V1beta1StatefulSetSpec -> Value
toJSON V1beta1StatefulSetSpec {Maybe Int
Maybe [V1PersistentVolumeClaim]
Maybe Text
Maybe V1beta1StatefulSetUpdateStrategy
Maybe V1LabelSelector
Text
V1PodTemplateSpec
v1beta1StatefulSetSpecVolumeClaimTemplates :: Maybe [V1PersistentVolumeClaim]
v1beta1StatefulSetSpecUpdateStrategy :: Maybe V1beta1StatefulSetUpdateStrategy
v1beta1StatefulSetSpecTemplate :: V1PodTemplateSpec
v1beta1StatefulSetSpecServiceName :: Text
v1beta1StatefulSetSpecSelector :: Maybe V1LabelSelector
v1beta1StatefulSetSpecRevisionHistoryLimit :: Maybe Int
v1beta1StatefulSetSpecReplicas :: Maybe Int
v1beta1StatefulSetSpecPodManagementPolicy :: Maybe Text
v1beta1StatefulSetSpecVolumeClaimTemplates :: V1beta1StatefulSetSpec -> Maybe [V1PersistentVolumeClaim]
v1beta1StatefulSetSpecUpdateStrategy :: V1beta1StatefulSetSpec -> Maybe V1beta1StatefulSetUpdateStrategy
v1beta1StatefulSetSpecTemplate :: V1beta1StatefulSetSpec -> V1PodTemplateSpec
v1beta1StatefulSetSpecServiceName :: V1beta1StatefulSetSpec -> Text
v1beta1StatefulSetSpecSelector :: V1beta1StatefulSetSpec -> Maybe V1LabelSelector
v1beta1StatefulSetSpecRevisionHistoryLimit :: V1beta1StatefulSetSpec -> Maybe Int
v1beta1StatefulSetSpecReplicas :: V1beta1StatefulSetSpec -> Maybe Int
v1beta1StatefulSetSpecPodManagementPolicy :: V1beta1StatefulSetSpec -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"podManagementPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1StatefulSetSpecPodManagementPolicy
      , Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1StatefulSetSpecReplicas
      , Text
"revisionHistoryLimit" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1StatefulSetSpecRevisionHistoryLimit
      , Text
"selector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1beta1StatefulSetSpecSelector
      , Text
"serviceName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1StatefulSetSpecServiceName
      , Text
"template" Text -> V1PodTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1PodTemplateSpec
v1beta1StatefulSetSpecTemplate
      , Text
"updateStrategy" Text -> Maybe V1beta1StatefulSetUpdateStrategy -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1StatefulSetUpdateStrategy
v1beta1StatefulSetSpecUpdateStrategy
      , Text
"volumeClaimTemplates" Text -> Maybe [V1PersistentVolumeClaim] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1PersistentVolumeClaim]
v1beta1StatefulSetSpecVolumeClaimTemplates
      ]


-- | Construct a value of type 'V1beta1StatefulSetSpec' (by applying it's required fields, if any)
mkV1beta1StatefulSetSpec
  :: Text -- ^ 'v1beta1StatefulSetSpecServiceName': serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.
  -> V1PodTemplateSpec -- ^ 'v1beta1StatefulSetSpecTemplate' 
  -> V1beta1StatefulSetSpec
mkV1beta1StatefulSetSpec :: Text -> V1PodTemplateSpec -> V1beta1StatefulSetSpec
mkV1beta1StatefulSetSpec Text
v1beta1StatefulSetSpecServiceName V1PodTemplateSpec
v1beta1StatefulSetSpecTemplate =
  V1beta1StatefulSetSpec :: Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe V1LabelSelector
-> Text
-> V1PodTemplateSpec
-> Maybe V1beta1StatefulSetUpdateStrategy
-> Maybe [V1PersistentVolumeClaim]
-> V1beta1StatefulSetSpec
V1beta1StatefulSetSpec
  { v1beta1StatefulSetSpecPodManagementPolicy :: Maybe Text
v1beta1StatefulSetSpecPodManagementPolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1StatefulSetSpecReplicas :: Maybe Int
v1beta1StatefulSetSpecReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1beta1StatefulSetSpecRevisionHistoryLimit :: Maybe Int
v1beta1StatefulSetSpecRevisionHistoryLimit = Maybe Int
forall a. Maybe a
Nothing
  , v1beta1StatefulSetSpecSelector :: Maybe V1LabelSelector
v1beta1StatefulSetSpecSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , Text
v1beta1StatefulSetSpecServiceName :: Text
v1beta1StatefulSetSpecServiceName :: Text
v1beta1StatefulSetSpecServiceName
  , V1PodTemplateSpec
v1beta1StatefulSetSpecTemplate :: V1PodTemplateSpec
v1beta1StatefulSetSpecTemplate :: V1PodTemplateSpec
v1beta1StatefulSetSpecTemplate
  , v1beta1StatefulSetSpecUpdateStrategy :: Maybe V1beta1StatefulSetUpdateStrategy
v1beta1StatefulSetSpecUpdateStrategy = Maybe V1beta1StatefulSetUpdateStrategy
forall a. Maybe a
Nothing
  , v1beta1StatefulSetSpecVolumeClaimTemplates :: Maybe [V1PersistentVolumeClaim]
v1beta1StatefulSetSpecVolumeClaimTemplates = Maybe [V1PersistentVolumeClaim]
forall a. Maybe a
Nothing
  }

-- ** V1beta1StatefulSetStatus
-- | V1beta1StatefulSetStatus
-- StatefulSetStatus represents the current state of a StatefulSet.
data V1beta1StatefulSetStatus = V1beta1StatefulSetStatus
  { V1beta1StatefulSetStatus -> Maybe Int
v1beta1StatefulSetStatusCollisionCount :: !(Maybe Int) -- ^ "collisionCount" - collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.
  , V1beta1StatefulSetStatus -> Maybe [V1beta1StatefulSetCondition]
v1beta1StatefulSetStatusConditions :: !(Maybe [V1beta1StatefulSetCondition]) -- ^ "conditions" - Represents the latest available observations of a statefulset&#39;s current state.
  , V1beta1StatefulSetStatus -> Maybe Int
v1beta1StatefulSetStatusCurrentReplicas :: !(Maybe Int) -- ^ "currentReplicas" - currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.
  , V1beta1StatefulSetStatus -> Maybe Text
v1beta1StatefulSetStatusCurrentRevision :: !(Maybe Text) -- ^ "currentRevision" - currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).
  , V1beta1StatefulSetStatus -> Maybe Integer
v1beta1StatefulSetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet&#39;s generation, which is updated on mutation by the API Server.
  , V1beta1StatefulSetStatus -> Maybe Int
v1beta1StatefulSetStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.
  , V1beta1StatefulSetStatus -> Int
v1beta1StatefulSetStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - replicas is the number of Pods created by the StatefulSet controller.
  , V1beta1StatefulSetStatus -> Maybe Text
v1beta1StatefulSetStatusUpdateRevision :: !(Maybe Text) -- ^ "updateRevision" - updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)
  , V1beta1StatefulSetStatus -> Maybe Int
v1beta1StatefulSetStatusUpdatedReplicas :: !(Maybe Int) -- ^ "updatedReplicas" - updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.
  } deriving (Int -> V1beta1StatefulSetStatus -> ShowS
[V1beta1StatefulSetStatus] -> ShowS
V1beta1StatefulSetStatus -> String
(Int -> V1beta1StatefulSetStatus -> ShowS)
-> (V1beta1StatefulSetStatus -> String)
-> ([V1beta1StatefulSetStatus] -> ShowS)
-> Show V1beta1StatefulSetStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1StatefulSetStatus] -> ShowS
$cshowList :: [V1beta1StatefulSetStatus] -> ShowS
show :: V1beta1StatefulSetStatus -> String
$cshow :: V1beta1StatefulSetStatus -> String
showsPrec :: Int -> V1beta1StatefulSetStatus -> ShowS
$cshowsPrec :: Int -> V1beta1StatefulSetStatus -> ShowS
P.Show, V1beta1StatefulSetStatus -> V1beta1StatefulSetStatus -> Bool
(V1beta1StatefulSetStatus -> V1beta1StatefulSetStatus -> Bool)
-> (V1beta1StatefulSetStatus -> V1beta1StatefulSetStatus -> Bool)
-> Eq V1beta1StatefulSetStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1StatefulSetStatus -> V1beta1StatefulSetStatus -> Bool
$c/= :: V1beta1StatefulSetStatus -> V1beta1StatefulSetStatus -> Bool
== :: V1beta1StatefulSetStatus -> V1beta1StatefulSetStatus -> Bool
$c== :: V1beta1StatefulSetStatus -> V1beta1StatefulSetStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1StatefulSetStatus
instance A.FromJSON V1beta1StatefulSetStatus where
  parseJSON :: Value -> Parser V1beta1StatefulSetStatus
parseJSON = String
-> (Object -> Parser V1beta1StatefulSetStatus)
-> Value
-> Parser V1beta1StatefulSetStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1StatefulSetStatus" ((Object -> Parser V1beta1StatefulSetStatus)
 -> Value -> Parser V1beta1StatefulSetStatus)
-> (Object -> Parser V1beta1StatefulSetStatus)
-> Value
-> Parser V1beta1StatefulSetStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe [V1beta1StatefulSetCondition]
-> Maybe Int
-> Maybe Text
-> Maybe Integer
-> Maybe Int
-> Int
-> Maybe Text
-> Maybe Int
-> V1beta1StatefulSetStatus
V1beta1StatefulSetStatus
      (Maybe Int
 -> Maybe [V1beta1StatefulSetCondition]
 -> Maybe Int
 -> Maybe Text
 -> Maybe Integer
 -> Maybe Int
 -> Int
 -> Maybe Text
 -> Maybe Int
 -> V1beta1StatefulSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe [V1beta1StatefulSetCondition]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Int
      -> Maybe Text
      -> Maybe Int
      -> V1beta1StatefulSetStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"collisionCount")
      Parser
  (Maybe [V1beta1StatefulSetCondition]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Int
   -> Maybe Text
   -> Maybe Int
   -> V1beta1StatefulSetStatus)
-> Parser (Maybe [V1beta1StatefulSetCondition])
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Int
      -> Maybe Text
      -> Maybe Int
      -> V1beta1StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1StatefulSetCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Int
   -> Maybe Text
   -> Maybe Int
   -> V1beta1StatefulSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Int
      -> Maybe Text
      -> Maybe Int
      -> V1beta1StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"currentReplicas")
      Parser
  (Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Int
   -> Maybe Text
   -> Maybe Int
   -> V1beta1StatefulSetStatus)
-> Parser (Maybe Text)
-> Parser
     (Maybe Integer
      -> Maybe Int
      -> Int
      -> Maybe Text
      -> Maybe Int
      -> V1beta1StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"currentRevision")
      Parser
  (Maybe Integer
   -> Maybe Int
   -> Int
   -> Maybe Text
   -> Maybe Int
   -> V1beta1StatefulSetStatus)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Int
      -> Int -> Maybe Text -> Maybe Int -> V1beta1StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")
      Parser
  (Maybe Int
   -> Int -> Maybe Text -> Maybe Int -> V1beta1StatefulSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Int -> Maybe Text -> Maybe Int -> V1beta1StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readyReplicas")
      Parser (Int -> Maybe Text -> Maybe Int -> V1beta1StatefulSetStatus)
-> Parser Int
-> Parser (Maybe Text -> Maybe Int -> V1beta1StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"replicas")
      Parser (Maybe Text -> Maybe Int -> V1beta1StatefulSetStatus)
-> Parser (Maybe Text)
-> Parser (Maybe Int -> V1beta1StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updateRevision")
      Parser (Maybe Int -> V1beta1StatefulSetStatus)
-> Parser (Maybe Int) -> Parser V1beta1StatefulSetStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updatedReplicas")

-- | ToJSON V1beta1StatefulSetStatus
instance A.ToJSON V1beta1StatefulSetStatus where
  toJSON :: V1beta1StatefulSetStatus -> Value
toJSON V1beta1StatefulSetStatus {Int
Maybe Int
Maybe Integer
Maybe [V1beta1StatefulSetCondition]
Maybe Text
v1beta1StatefulSetStatusUpdatedReplicas :: Maybe Int
v1beta1StatefulSetStatusUpdateRevision :: Maybe Text
v1beta1StatefulSetStatusReplicas :: Int
v1beta1StatefulSetStatusReadyReplicas :: Maybe Int
v1beta1StatefulSetStatusObservedGeneration :: Maybe Integer
v1beta1StatefulSetStatusCurrentRevision :: Maybe Text
v1beta1StatefulSetStatusCurrentReplicas :: Maybe Int
v1beta1StatefulSetStatusConditions :: Maybe [V1beta1StatefulSetCondition]
v1beta1StatefulSetStatusCollisionCount :: Maybe Int
v1beta1StatefulSetStatusUpdatedReplicas :: V1beta1StatefulSetStatus -> Maybe Int
v1beta1StatefulSetStatusUpdateRevision :: V1beta1StatefulSetStatus -> Maybe Text
v1beta1StatefulSetStatusReplicas :: V1beta1StatefulSetStatus -> Int
v1beta1StatefulSetStatusReadyReplicas :: V1beta1StatefulSetStatus -> Maybe Int
v1beta1StatefulSetStatusObservedGeneration :: V1beta1StatefulSetStatus -> Maybe Integer
v1beta1StatefulSetStatusCurrentRevision :: V1beta1StatefulSetStatus -> Maybe Text
v1beta1StatefulSetStatusCurrentReplicas :: V1beta1StatefulSetStatus -> Maybe Int
v1beta1StatefulSetStatusConditions :: V1beta1StatefulSetStatus -> Maybe [V1beta1StatefulSetCondition]
v1beta1StatefulSetStatusCollisionCount :: V1beta1StatefulSetStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"collisionCount" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1StatefulSetStatusCollisionCount
      , Text
"conditions" Text -> Maybe [V1beta1StatefulSetCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1StatefulSetCondition]
v1beta1StatefulSetStatusConditions
      , Text
"currentReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1StatefulSetStatusCurrentReplicas
      , Text
"currentRevision" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1StatefulSetStatusCurrentRevision
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1beta1StatefulSetStatusObservedGeneration
      , Text
"readyReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1StatefulSetStatusReadyReplicas
      , Text
"replicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta1StatefulSetStatusReplicas
      , Text
"updateRevision" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1StatefulSetStatusUpdateRevision
      , Text
"updatedReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1StatefulSetStatusUpdatedReplicas
      ]


-- | Construct a value of type 'V1beta1StatefulSetStatus' (by applying it's required fields, if any)
mkV1beta1StatefulSetStatus
  :: Int -- ^ 'v1beta1StatefulSetStatusReplicas': replicas is the number of Pods created by the StatefulSet controller.
  -> V1beta1StatefulSetStatus
mkV1beta1StatefulSetStatus :: Int -> V1beta1StatefulSetStatus
mkV1beta1StatefulSetStatus Int
v1beta1StatefulSetStatusReplicas =
  V1beta1StatefulSetStatus :: Maybe Int
-> Maybe [V1beta1StatefulSetCondition]
-> Maybe Int
-> Maybe Text
-> Maybe Integer
-> Maybe Int
-> Int
-> Maybe Text
-> Maybe Int
-> V1beta1StatefulSetStatus
V1beta1StatefulSetStatus
  { v1beta1StatefulSetStatusCollisionCount :: Maybe Int
v1beta1StatefulSetStatusCollisionCount = Maybe Int
forall a. Maybe a
Nothing
  , v1beta1StatefulSetStatusConditions :: Maybe [V1beta1StatefulSetCondition]
v1beta1StatefulSetStatusConditions = Maybe [V1beta1StatefulSetCondition]
forall a. Maybe a
Nothing
  , v1beta1StatefulSetStatusCurrentReplicas :: Maybe Int
v1beta1StatefulSetStatusCurrentReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1beta1StatefulSetStatusCurrentRevision :: Maybe Text
v1beta1StatefulSetStatusCurrentRevision = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1StatefulSetStatusObservedGeneration :: Maybe Integer
v1beta1StatefulSetStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  , v1beta1StatefulSetStatusReadyReplicas :: Maybe Int
v1beta1StatefulSetStatusReadyReplicas = Maybe Int
forall a. Maybe a
Nothing
  , Int
v1beta1StatefulSetStatusReplicas :: Int
v1beta1StatefulSetStatusReplicas :: Int
v1beta1StatefulSetStatusReplicas
  , v1beta1StatefulSetStatusUpdateRevision :: Maybe Text
v1beta1StatefulSetStatusUpdateRevision = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1StatefulSetStatusUpdatedReplicas :: Maybe Int
v1beta1StatefulSetStatusUpdatedReplicas = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1beta1StatefulSetUpdateStrategy
-- | V1beta1StatefulSetUpdateStrategy
-- StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.
data V1beta1StatefulSetUpdateStrategy = V1beta1StatefulSetUpdateStrategy
  { V1beta1StatefulSetUpdateStrategy
-> Maybe V1beta1RollingUpdateStatefulSetStrategy
v1beta1StatefulSetUpdateStrategyRollingUpdate :: !(Maybe V1beta1RollingUpdateStatefulSetStrategy) -- ^ "rollingUpdate"
  , V1beta1StatefulSetUpdateStrategy -> Maybe Text
v1beta1StatefulSetUpdateStrategyType :: !(Maybe Text) -- ^ "type" - Type indicates the type of the StatefulSetUpdateStrategy.
  } deriving (Int -> V1beta1StatefulSetUpdateStrategy -> ShowS
[V1beta1StatefulSetUpdateStrategy] -> ShowS
V1beta1StatefulSetUpdateStrategy -> String
(Int -> V1beta1StatefulSetUpdateStrategy -> ShowS)
-> (V1beta1StatefulSetUpdateStrategy -> String)
-> ([V1beta1StatefulSetUpdateStrategy] -> ShowS)
-> Show V1beta1StatefulSetUpdateStrategy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1StatefulSetUpdateStrategy] -> ShowS
$cshowList :: [V1beta1StatefulSetUpdateStrategy] -> ShowS
show :: V1beta1StatefulSetUpdateStrategy -> String
$cshow :: V1beta1StatefulSetUpdateStrategy -> String
showsPrec :: Int -> V1beta1StatefulSetUpdateStrategy -> ShowS
$cshowsPrec :: Int -> V1beta1StatefulSetUpdateStrategy -> ShowS
P.Show, V1beta1StatefulSetUpdateStrategy
-> V1beta1StatefulSetUpdateStrategy -> Bool
(V1beta1StatefulSetUpdateStrategy
 -> V1beta1StatefulSetUpdateStrategy -> Bool)
-> (V1beta1StatefulSetUpdateStrategy
    -> V1beta1StatefulSetUpdateStrategy -> Bool)
-> Eq V1beta1StatefulSetUpdateStrategy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1StatefulSetUpdateStrategy
-> V1beta1StatefulSetUpdateStrategy -> Bool
$c/= :: V1beta1StatefulSetUpdateStrategy
-> V1beta1StatefulSetUpdateStrategy -> Bool
== :: V1beta1StatefulSetUpdateStrategy
-> V1beta1StatefulSetUpdateStrategy -> Bool
$c== :: V1beta1StatefulSetUpdateStrategy
-> V1beta1StatefulSetUpdateStrategy -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1StatefulSetUpdateStrategy
instance A.FromJSON V1beta1StatefulSetUpdateStrategy where
  parseJSON :: Value -> Parser V1beta1StatefulSetUpdateStrategy
parseJSON = String
-> (Object -> Parser V1beta1StatefulSetUpdateStrategy)
-> Value
-> Parser V1beta1StatefulSetUpdateStrategy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1StatefulSetUpdateStrategy" ((Object -> Parser V1beta1StatefulSetUpdateStrategy)
 -> Value -> Parser V1beta1StatefulSetUpdateStrategy)
-> (Object -> Parser V1beta1StatefulSetUpdateStrategy)
-> Value
-> Parser V1beta1StatefulSetUpdateStrategy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1beta1RollingUpdateStatefulSetStrategy
-> Maybe Text -> V1beta1StatefulSetUpdateStrategy
V1beta1StatefulSetUpdateStrategy
      (Maybe V1beta1RollingUpdateStatefulSetStrategy
 -> Maybe Text -> V1beta1StatefulSetUpdateStrategy)
-> Parser (Maybe V1beta1RollingUpdateStatefulSetStrategy)
-> Parser (Maybe Text -> V1beta1StatefulSetUpdateStrategy)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object
-> Text -> Parser (Maybe V1beta1RollingUpdateStatefulSetStrategy)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rollingUpdate")
      Parser (Maybe Text -> V1beta1StatefulSetUpdateStrategy)
-> Parser (Maybe Text) -> Parser V1beta1StatefulSetUpdateStrategy
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")

-- | ToJSON V1beta1StatefulSetUpdateStrategy
instance A.ToJSON V1beta1StatefulSetUpdateStrategy where
  toJSON :: V1beta1StatefulSetUpdateStrategy -> Value
toJSON V1beta1StatefulSetUpdateStrategy {Maybe Text
Maybe V1beta1RollingUpdateStatefulSetStrategy
v1beta1StatefulSetUpdateStrategyType :: Maybe Text
v1beta1StatefulSetUpdateStrategyRollingUpdate :: Maybe V1beta1RollingUpdateStatefulSetStrategy
v1beta1StatefulSetUpdateStrategyType :: V1beta1StatefulSetUpdateStrategy -> Maybe Text
v1beta1StatefulSetUpdateStrategyRollingUpdate :: V1beta1StatefulSetUpdateStrategy
-> Maybe V1beta1RollingUpdateStatefulSetStrategy
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"rollingUpdate" Text
-> Maybe V1beta1RollingUpdateStatefulSetStrategy -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1RollingUpdateStatefulSetStrategy
v1beta1StatefulSetUpdateStrategyRollingUpdate
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1StatefulSetUpdateStrategyType
      ]


-- | Construct a value of type 'V1beta1StatefulSetUpdateStrategy' (by applying it's required fields, if any)
mkV1beta1StatefulSetUpdateStrategy
  :: V1beta1StatefulSetUpdateStrategy
mkV1beta1StatefulSetUpdateStrategy :: V1beta1StatefulSetUpdateStrategy
mkV1beta1StatefulSetUpdateStrategy =
  V1beta1StatefulSetUpdateStrategy :: Maybe V1beta1RollingUpdateStatefulSetStrategy
-> Maybe Text -> V1beta1StatefulSetUpdateStrategy
V1beta1StatefulSetUpdateStrategy
  { v1beta1StatefulSetUpdateStrategyRollingUpdate :: Maybe V1beta1RollingUpdateStatefulSetStrategy
v1beta1StatefulSetUpdateStrategyRollingUpdate = Maybe V1beta1RollingUpdateStatefulSetStrategy
forall a. Maybe a
Nothing
  , v1beta1StatefulSetUpdateStrategyType :: Maybe Text
v1beta1StatefulSetUpdateStrategyType = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1StorageClass
-- | V1beta1StorageClass
-- StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.  StorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.
data V1beta1StorageClass = V1beta1StorageClass
  { V1beta1StorageClass -> Maybe Bool
v1beta1StorageClassAllowVolumeExpansion :: !(Maybe Bool) -- ^ "allowVolumeExpansion" - AllowVolumeExpansion shows whether the storage class allow volume expand
  , V1beta1StorageClass -> Maybe [V1TopologySelectorTerm]
v1beta1StorageClassAllowedTopologies :: !(Maybe [V1TopologySelectorTerm]) -- ^ "allowedTopologies" - Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.
  , V1beta1StorageClass -> Maybe Text
v1beta1StorageClassApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1StorageClass -> Maybe Text
v1beta1StorageClassKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1StorageClass -> Maybe V1ObjectMeta
v1beta1StorageClassMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1StorageClass -> Maybe [Text]
v1beta1StorageClassMountOptions :: !(Maybe [Text]) -- ^ "mountOptions" - Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\&quot;ro\&quot;, \&quot;soft\&quot;]. Not validated - mount of the PVs will simply fail if one is invalid.
  , V1beta1StorageClass -> Maybe (Map String Text)
v1beta1StorageClassParameters :: !(Maybe (Map.Map String Text)) -- ^ "parameters" - Parameters holds the parameters for the provisioner that should create volumes of this storage class.
  , V1beta1StorageClass -> Text
v1beta1StorageClassProvisioner :: !(Text) -- ^ /Required/ "provisioner" - Provisioner indicates the type of the provisioner.
  , V1beta1StorageClass -> Maybe Text
v1beta1StorageClassReclaimPolicy :: !(Maybe Text) -- ^ "reclaimPolicy" - Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.
  , V1beta1StorageClass -> Maybe Text
v1beta1StorageClassVolumeBindingMode :: !(Maybe Text) -- ^ "volumeBindingMode" - VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound.  When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.
  } deriving (Int -> V1beta1StorageClass -> ShowS
[V1beta1StorageClass] -> ShowS
V1beta1StorageClass -> String
(Int -> V1beta1StorageClass -> ShowS)
-> (V1beta1StorageClass -> String)
-> ([V1beta1StorageClass] -> ShowS)
-> Show V1beta1StorageClass
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1StorageClass] -> ShowS
$cshowList :: [V1beta1StorageClass] -> ShowS
show :: V1beta1StorageClass -> String
$cshow :: V1beta1StorageClass -> String
showsPrec :: Int -> V1beta1StorageClass -> ShowS
$cshowsPrec :: Int -> V1beta1StorageClass -> ShowS
P.Show, V1beta1StorageClass -> V1beta1StorageClass -> Bool
(V1beta1StorageClass -> V1beta1StorageClass -> Bool)
-> (V1beta1StorageClass -> V1beta1StorageClass -> Bool)
-> Eq V1beta1StorageClass
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1StorageClass -> V1beta1StorageClass -> Bool
$c/= :: V1beta1StorageClass -> V1beta1StorageClass -> Bool
== :: V1beta1StorageClass -> V1beta1StorageClass -> Bool
$c== :: V1beta1StorageClass -> V1beta1StorageClass -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1StorageClass
instance A.FromJSON V1beta1StorageClass where
  parseJSON :: Value -> Parser V1beta1StorageClass
parseJSON = String
-> (Object -> Parser V1beta1StorageClass)
-> Value
-> Parser V1beta1StorageClass
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1StorageClass" ((Object -> Parser V1beta1StorageClass)
 -> Value -> Parser V1beta1StorageClass)
-> (Object -> Parser V1beta1StorageClass)
-> Value
-> Parser V1beta1StorageClass
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Bool
-> Maybe [V1TopologySelectorTerm]
-> Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [Text]
-> Maybe (Map String Text)
-> Text
-> Maybe Text
-> Maybe Text
-> V1beta1StorageClass
V1beta1StorageClass
      (Maybe Bool
 -> Maybe [V1TopologySelectorTerm]
 -> Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe [Text]
 -> Maybe (Map String Text)
 -> Text
 -> Maybe Text
 -> Maybe Text
 -> V1beta1StorageClass)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [V1TopologySelectorTerm]
      -> Maybe Text
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [Text]
      -> Maybe (Map String Text)
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> V1beta1StorageClass)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowVolumeExpansion")
      Parser
  (Maybe [V1TopologySelectorTerm]
   -> Maybe Text
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [Text]
   -> Maybe (Map String Text)
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> V1beta1StorageClass)
-> Parser (Maybe [V1TopologySelectorTerm])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [Text]
      -> Maybe (Map String Text)
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> V1beta1StorageClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1TopologySelectorTerm])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"allowedTopologies")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [Text]
   -> Maybe (Map String Text)
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> V1beta1StorageClass)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [Text]
      -> Maybe (Map String Text)
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> V1beta1StorageClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [Text]
   -> Maybe (Map String Text)
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> V1beta1StorageClass)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe [Text]
      -> Maybe (Map String Text)
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> V1beta1StorageClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe [Text]
   -> Maybe (Map String Text)
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> V1beta1StorageClass)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe [Text]
      -> Maybe (Map String Text)
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> V1beta1StorageClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe [Text]
   -> Maybe (Map String Text)
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> V1beta1StorageClass)
-> Parser (Maybe [Text])
-> Parser
     (Maybe (Map String Text)
      -> Text -> Maybe Text -> Maybe Text -> V1beta1StorageClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"mountOptions")
      Parser
  (Maybe (Map String Text)
   -> Text -> Maybe Text -> Maybe Text -> V1beta1StorageClass)
-> Parser (Maybe (Map String Text))
-> Parser (Text -> Maybe Text -> Maybe Text -> V1beta1StorageClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"parameters")
      Parser (Text -> Maybe Text -> Maybe Text -> V1beta1StorageClass)
-> Parser Text
-> Parser (Maybe Text -> Maybe Text -> V1beta1StorageClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"provisioner")
      Parser (Maybe Text -> Maybe Text -> V1beta1StorageClass)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1beta1StorageClass)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reclaimPolicy")
      Parser (Maybe Text -> V1beta1StorageClass)
-> Parser (Maybe Text) -> Parser V1beta1StorageClass
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeBindingMode")

-- | ToJSON V1beta1StorageClass
instance A.ToJSON V1beta1StorageClass where
  toJSON :: V1beta1StorageClass -> Value
toJSON V1beta1StorageClass {Maybe Bool
Maybe [Text]
Maybe [V1TopologySelectorTerm]
Maybe Text
Maybe (Map String Text)
Maybe V1ObjectMeta
Text
v1beta1StorageClassVolumeBindingMode :: Maybe Text
v1beta1StorageClassReclaimPolicy :: Maybe Text
v1beta1StorageClassProvisioner :: Text
v1beta1StorageClassParameters :: Maybe (Map String Text)
v1beta1StorageClassMountOptions :: Maybe [Text]
v1beta1StorageClassMetadata :: Maybe V1ObjectMeta
v1beta1StorageClassKind :: Maybe Text
v1beta1StorageClassApiVersion :: Maybe Text
v1beta1StorageClassAllowedTopologies :: Maybe [V1TopologySelectorTerm]
v1beta1StorageClassAllowVolumeExpansion :: Maybe Bool
v1beta1StorageClassVolumeBindingMode :: V1beta1StorageClass -> Maybe Text
v1beta1StorageClassReclaimPolicy :: V1beta1StorageClass -> Maybe Text
v1beta1StorageClassProvisioner :: V1beta1StorageClass -> Text
v1beta1StorageClassParameters :: V1beta1StorageClass -> Maybe (Map String Text)
v1beta1StorageClassMountOptions :: V1beta1StorageClass -> Maybe [Text]
v1beta1StorageClassMetadata :: V1beta1StorageClass -> Maybe V1ObjectMeta
v1beta1StorageClassKind :: V1beta1StorageClass -> Maybe Text
v1beta1StorageClassApiVersion :: V1beta1StorageClass -> Maybe Text
v1beta1StorageClassAllowedTopologies :: V1beta1StorageClass -> Maybe [V1TopologySelectorTerm]
v1beta1StorageClassAllowVolumeExpansion :: V1beta1StorageClass -> Maybe Bool
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"allowVolumeExpansion" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta1StorageClassAllowVolumeExpansion
      , Text
"allowedTopologies" Text -> Maybe [V1TopologySelectorTerm] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1TopologySelectorTerm]
v1beta1StorageClassAllowedTopologies
      , Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1StorageClassApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1StorageClassKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1StorageClassMetadata
      , Text
"mountOptions" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1StorageClassMountOptions
      , Text
"parameters" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1beta1StorageClassParameters
      , Text
"provisioner" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1StorageClassProvisioner
      , Text
"reclaimPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1StorageClassReclaimPolicy
      , Text
"volumeBindingMode" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1StorageClassVolumeBindingMode
      ]


-- | Construct a value of type 'V1beta1StorageClass' (by applying it's required fields, if any)
mkV1beta1StorageClass
  :: Text -- ^ 'v1beta1StorageClassProvisioner': Provisioner indicates the type of the provisioner.
  -> V1beta1StorageClass
mkV1beta1StorageClass :: Text -> V1beta1StorageClass
mkV1beta1StorageClass Text
v1beta1StorageClassProvisioner =
  V1beta1StorageClass :: Maybe Bool
-> Maybe [V1TopologySelectorTerm]
-> Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [Text]
-> Maybe (Map String Text)
-> Text
-> Maybe Text
-> Maybe Text
-> V1beta1StorageClass
V1beta1StorageClass
  { v1beta1StorageClassAllowVolumeExpansion :: Maybe Bool
v1beta1StorageClassAllowVolumeExpansion = Maybe Bool
forall a. Maybe a
Nothing
  , v1beta1StorageClassAllowedTopologies :: Maybe [V1TopologySelectorTerm]
v1beta1StorageClassAllowedTopologies = Maybe [V1TopologySelectorTerm]
forall a. Maybe a
Nothing
  , v1beta1StorageClassApiVersion :: Maybe Text
v1beta1StorageClassApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1StorageClassKind :: Maybe Text
v1beta1StorageClassKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1StorageClassMetadata :: Maybe V1ObjectMeta
v1beta1StorageClassMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1StorageClassMountOptions :: Maybe [Text]
v1beta1StorageClassMountOptions = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1StorageClassParameters :: Maybe (Map String Text)
v1beta1StorageClassParameters = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , Text
v1beta1StorageClassProvisioner :: Text
v1beta1StorageClassProvisioner :: Text
v1beta1StorageClassProvisioner
  , v1beta1StorageClassReclaimPolicy :: Maybe Text
v1beta1StorageClassReclaimPolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1StorageClassVolumeBindingMode :: Maybe Text
v1beta1StorageClassVolumeBindingMode = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1StorageClassList
-- | V1beta1StorageClassList
-- StorageClassList is a collection of storage classes.
data V1beta1StorageClassList = V1beta1StorageClassList
  { V1beta1StorageClassList -> Maybe Text
v1beta1StorageClassListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1StorageClassList -> [V1beta1StorageClass]
v1beta1StorageClassListItems :: !([V1beta1StorageClass]) -- ^ /Required/ "items" - Items is the list of StorageClasses
  , V1beta1StorageClassList -> Maybe Text
v1beta1StorageClassListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1StorageClassList -> Maybe V1ListMeta
v1beta1StorageClassListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1StorageClassList -> ShowS
[V1beta1StorageClassList] -> ShowS
V1beta1StorageClassList -> String
(Int -> V1beta1StorageClassList -> ShowS)
-> (V1beta1StorageClassList -> String)
-> ([V1beta1StorageClassList] -> ShowS)
-> Show V1beta1StorageClassList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1StorageClassList] -> ShowS
$cshowList :: [V1beta1StorageClassList] -> ShowS
show :: V1beta1StorageClassList -> String
$cshow :: V1beta1StorageClassList -> String
showsPrec :: Int -> V1beta1StorageClassList -> ShowS
$cshowsPrec :: Int -> V1beta1StorageClassList -> ShowS
P.Show, V1beta1StorageClassList -> V1beta1StorageClassList -> Bool
(V1beta1StorageClassList -> V1beta1StorageClassList -> Bool)
-> (V1beta1StorageClassList -> V1beta1StorageClassList -> Bool)
-> Eq V1beta1StorageClassList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1StorageClassList -> V1beta1StorageClassList -> Bool
$c/= :: V1beta1StorageClassList -> V1beta1StorageClassList -> Bool
== :: V1beta1StorageClassList -> V1beta1StorageClassList -> Bool
$c== :: V1beta1StorageClassList -> V1beta1StorageClassList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1StorageClassList
instance A.FromJSON V1beta1StorageClassList where
  parseJSON :: Value -> Parser V1beta1StorageClassList
parseJSON = String
-> (Object -> Parser V1beta1StorageClassList)
-> Value
-> Parser V1beta1StorageClassList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1StorageClassList" ((Object -> Parser V1beta1StorageClassList)
 -> Value -> Parser V1beta1StorageClassList)
-> (Object -> Parser V1beta1StorageClassList)
-> Value
-> Parser V1beta1StorageClassList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1StorageClass]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1StorageClassList
V1beta1StorageClassList
      (Maybe Text
 -> [V1beta1StorageClass]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1StorageClassList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1StorageClass]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1StorageClassList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1StorageClass]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1StorageClassList)
-> Parser [V1beta1StorageClass]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1beta1StorageClassList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1StorageClass]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta1StorageClassList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1StorageClassList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1StorageClassList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1StorageClassList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1StorageClassList
instance A.ToJSON V1beta1StorageClassList where
  toJSON :: V1beta1StorageClassList -> Value
toJSON V1beta1StorageClassList {[V1beta1StorageClass]
Maybe Text
Maybe V1ListMeta
v1beta1StorageClassListMetadata :: Maybe V1ListMeta
v1beta1StorageClassListKind :: Maybe Text
v1beta1StorageClassListItems :: [V1beta1StorageClass]
v1beta1StorageClassListApiVersion :: Maybe Text
v1beta1StorageClassListMetadata :: V1beta1StorageClassList -> Maybe V1ListMeta
v1beta1StorageClassListKind :: V1beta1StorageClassList -> Maybe Text
v1beta1StorageClassListItems :: V1beta1StorageClassList -> [V1beta1StorageClass]
v1beta1StorageClassListApiVersion :: V1beta1StorageClassList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1StorageClassListApiVersion
      , Text
"items" Text -> [V1beta1StorageClass] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1StorageClass]
v1beta1StorageClassListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1StorageClassListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1StorageClassListMetadata
      ]


-- | Construct a value of type 'V1beta1StorageClassList' (by applying it's required fields, if any)
mkV1beta1StorageClassList
  :: [V1beta1StorageClass] -- ^ 'v1beta1StorageClassListItems': Items is the list of StorageClasses
  -> V1beta1StorageClassList
mkV1beta1StorageClassList :: [V1beta1StorageClass] -> V1beta1StorageClassList
mkV1beta1StorageClassList [V1beta1StorageClass]
v1beta1StorageClassListItems =
  V1beta1StorageClassList :: Maybe Text
-> [V1beta1StorageClass]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1StorageClassList
V1beta1StorageClassList
  { v1beta1StorageClassListApiVersion :: Maybe Text
v1beta1StorageClassListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1StorageClass]
v1beta1StorageClassListItems :: [V1beta1StorageClass]
v1beta1StorageClassListItems :: [V1beta1StorageClass]
v1beta1StorageClassListItems
  , v1beta1StorageClassListKind :: Maybe Text
v1beta1StorageClassListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1StorageClassListMetadata :: Maybe V1ListMeta
v1beta1StorageClassListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1Subject
-- | V1beta1Subject
-- Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference, or a value for non-objects such as user and group names.
data V1beta1Subject = V1beta1Subject
  { V1beta1Subject -> Maybe Text
v1beta1SubjectApiGroup :: !(Maybe Text) -- ^ "apiGroup" - APIGroup holds the API group of the referenced subject. Defaults to \&quot;\&quot; for ServiceAccount subjects. Defaults to \&quot;rbac.authorization.k8s.io\&quot; for User and Group subjects.
  , V1beta1Subject -> Text
v1beta1SubjectKind :: !(Text) -- ^ /Required/ "kind" - Kind of object being referenced. Values defined by this API group are \&quot;User\&quot;, \&quot;Group\&quot;, and \&quot;ServiceAccount\&quot;. If the Authorizer does not recognized the kind value, the Authorizer should report an error.
  , V1beta1Subject -> Text
v1beta1SubjectName :: !(Text) -- ^ /Required/ "name" - Name of the object being referenced.
  , V1beta1Subject -> Maybe Text
v1beta1SubjectNamespace :: !(Maybe Text) -- ^ "namespace" - Namespace of the referenced object.  If the object kind is non-namespace, such as \&quot;User\&quot; or \&quot;Group\&quot;, and this value is not empty the Authorizer should report an error.
  } deriving (Int -> V1beta1Subject -> ShowS
[V1beta1Subject] -> ShowS
V1beta1Subject -> String
(Int -> V1beta1Subject -> ShowS)
-> (V1beta1Subject -> String)
-> ([V1beta1Subject] -> ShowS)
-> Show V1beta1Subject
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1Subject] -> ShowS
$cshowList :: [V1beta1Subject] -> ShowS
show :: V1beta1Subject -> String
$cshow :: V1beta1Subject -> String
showsPrec :: Int -> V1beta1Subject -> ShowS
$cshowsPrec :: Int -> V1beta1Subject -> ShowS
P.Show, V1beta1Subject -> V1beta1Subject -> Bool
(V1beta1Subject -> V1beta1Subject -> Bool)
-> (V1beta1Subject -> V1beta1Subject -> Bool) -> Eq V1beta1Subject
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1Subject -> V1beta1Subject -> Bool
$c/= :: V1beta1Subject -> V1beta1Subject -> Bool
== :: V1beta1Subject -> V1beta1Subject -> Bool
$c== :: V1beta1Subject -> V1beta1Subject -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1Subject
instance A.FromJSON V1beta1Subject where
  parseJSON :: Value -> Parser V1beta1Subject
parseJSON = String
-> (Object -> Parser V1beta1Subject)
-> Value
-> Parser V1beta1Subject
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1Subject" ((Object -> Parser V1beta1Subject)
 -> Value -> Parser V1beta1Subject)
-> (Object -> Parser V1beta1Subject)
-> Value
-> Parser V1beta1Subject
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Text -> Text -> Maybe Text -> V1beta1Subject
V1beta1Subject
      (Maybe Text -> Text -> Text -> Maybe Text -> V1beta1Subject)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> Maybe Text -> V1beta1Subject)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiGroup")
      Parser (Text -> Text -> Maybe Text -> V1beta1Subject)
-> Parser Text -> Parser (Text -> Maybe Text -> V1beta1Subject)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kind")
      Parser (Text -> Maybe Text -> V1beta1Subject)
-> Parser Text -> Parser (Maybe Text -> V1beta1Subject)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser (Maybe Text -> V1beta1Subject)
-> Parser (Maybe Text) -> Parser V1beta1Subject
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespace")

-- | ToJSON V1beta1Subject
instance A.ToJSON V1beta1Subject where
  toJSON :: V1beta1Subject -> Value
toJSON V1beta1Subject {Maybe Text
Text
v1beta1SubjectNamespace :: Maybe Text
v1beta1SubjectName :: Text
v1beta1SubjectKind :: Text
v1beta1SubjectApiGroup :: Maybe Text
v1beta1SubjectNamespace :: V1beta1Subject -> Maybe Text
v1beta1SubjectName :: V1beta1Subject -> Text
v1beta1SubjectKind :: V1beta1Subject -> Text
v1beta1SubjectApiGroup :: V1beta1Subject -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiGroup" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1SubjectApiGroup
      , Text
"kind" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1SubjectKind
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1SubjectName
      , Text
"namespace" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1SubjectNamespace
      ]


-- | Construct a value of type 'V1beta1Subject' (by applying it's required fields, if any)
mkV1beta1Subject
  :: Text -- ^ 'v1beta1SubjectKind': Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.
  -> Text -- ^ 'v1beta1SubjectName': Name of the object being referenced.
  -> V1beta1Subject
mkV1beta1Subject :: Text -> Text -> V1beta1Subject
mkV1beta1Subject Text
v1beta1SubjectKind Text
v1beta1SubjectName =
  V1beta1Subject :: Maybe Text -> Text -> Text -> Maybe Text -> V1beta1Subject
V1beta1Subject
  { v1beta1SubjectApiGroup :: Maybe Text
v1beta1SubjectApiGroup = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta1SubjectKind :: Text
v1beta1SubjectKind :: Text
v1beta1SubjectKind
  , Text
v1beta1SubjectName :: Text
v1beta1SubjectName :: Text
v1beta1SubjectName
  , v1beta1SubjectNamespace :: Maybe Text
v1beta1SubjectNamespace = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1SubjectAccessReview
-- | V1beta1SubjectAccessReview
-- SubjectAccessReview checks whether or not a user or group can perform an action.
data V1beta1SubjectAccessReview = V1beta1SubjectAccessReview
  { V1beta1SubjectAccessReview -> Maybe Text
v1beta1SubjectAccessReviewApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1SubjectAccessReview -> Maybe Text
v1beta1SubjectAccessReviewKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1SubjectAccessReview -> Maybe V1ObjectMeta
v1beta1SubjectAccessReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1SubjectAccessReview -> V1beta1SubjectAccessReviewSpec
v1beta1SubjectAccessReviewSpec :: !(V1beta1SubjectAccessReviewSpec) -- ^ /Required/ "spec"
  , V1beta1SubjectAccessReview
-> Maybe V1beta1SubjectAccessReviewStatus
v1beta1SubjectAccessReviewStatus :: !(Maybe V1beta1SubjectAccessReviewStatus) -- ^ "status"
  } deriving (Int -> V1beta1SubjectAccessReview -> ShowS
[V1beta1SubjectAccessReview] -> ShowS
V1beta1SubjectAccessReview -> String
(Int -> V1beta1SubjectAccessReview -> ShowS)
-> (V1beta1SubjectAccessReview -> String)
-> ([V1beta1SubjectAccessReview] -> ShowS)
-> Show V1beta1SubjectAccessReview
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1SubjectAccessReview] -> ShowS
$cshowList :: [V1beta1SubjectAccessReview] -> ShowS
show :: V1beta1SubjectAccessReview -> String
$cshow :: V1beta1SubjectAccessReview -> String
showsPrec :: Int -> V1beta1SubjectAccessReview -> ShowS
$cshowsPrec :: Int -> V1beta1SubjectAccessReview -> ShowS
P.Show, V1beta1SubjectAccessReview -> V1beta1SubjectAccessReview -> Bool
(V1beta1SubjectAccessReview -> V1beta1SubjectAccessReview -> Bool)
-> (V1beta1SubjectAccessReview
    -> V1beta1SubjectAccessReview -> Bool)
-> Eq V1beta1SubjectAccessReview
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1SubjectAccessReview -> V1beta1SubjectAccessReview -> Bool
$c/= :: V1beta1SubjectAccessReview -> V1beta1SubjectAccessReview -> Bool
== :: V1beta1SubjectAccessReview -> V1beta1SubjectAccessReview -> Bool
$c== :: V1beta1SubjectAccessReview -> V1beta1SubjectAccessReview -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1SubjectAccessReview
instance A.FromJSON V1beta1SubjectAccessReview where
  parseJSON :: Value -> Parser V1beta1SubjectAccessReview
parseJSON = String
-> (Object -> Parser V1beta1SubjectAccessReview)
-> Value
-> Parser V1beta1SubjectAccessReview
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1SubjectAccessReview" ((Object -> Parser V1beta1SubjectAccessReview)
 -> Value -> Parser V1beta1SubjectAccessReview)
-> (Object -> Parser V1beta1SubjectAccessReview)
-> Value
-> Parser V1beta1SubjectAccessReview
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1SubjectAccessReviewSpec
-> Maybe V1beta1SubjectAccessReviewStatus
-> V1beta1SubjectAccessReview
V1beta1SubjectAccessReview
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1beta1SubjectAccessReviewSpec
 -> Maybe V1beta1SubjectAccessReviewStatus
 -> V1beta1SubjectAccessReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1beta1SubjectAccessReviewSpec
      -> Maybe V1beta1SubjectAccessReviewStatus
      -> V1beta1SubjectAccessReview)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1beta1SubjectAccessReviewSpec
   -> Maybe V1beta1SubjectAccessReviewStatus
   -> V1beta1SubjectAccessReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1beta1SubjectAccessReviewSpec
      -> Maybe V1beta1SubjectAccessReviewStatus
      -> V1beta1SubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1beta1SubjectAccessReviewSpec
   -> Maybe V1beta1SubjectAccessReviewStatus
   -> V1beta1SubjectAccessReview)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1beta1SubjectAccessReviewSpec
      -> Maybe V1beta1SubjectAccessReviewStatus
      -> V1beta1SubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1beta1SubjectAccessReviewSpec
   -> Maybe V1beta1SubjectAccessReviewStatus
   -> V1beta1SubjectAccessReview)
-> Parser V1beta1SubjectAccessReviewSpec
-> Parser
     (Maybe V1beta1SubjectAccessReviewStatus
      -> V1beta1SubjectAccessReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1beta1SubjectAccessReviewSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")
      Parser
  (Maybe V1beta1SubjectAccessReviewStatus
   -> V1beta1SubjectAccessReview)
-> Parser (Maybe V1beta1SubjectAccessReviewStatus)
-> Parser V1beta1SubjectAccessReview
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1SubjectAccessReviewStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta1SubjectAccessReview
instance A.ToJSON V1beta1SubjectAccessReview where
  toJSON :: V1beta1SubjectAccessReview -> Value
toJSON V1beta1SubjectAccessReview {Maybe Text
Maybe V1beta1SubjectAccessReviewStatus
Maybe V1ObjectMeta
V1beta1SubjectAccessReviewSpec
v1beta1SubjectAccessReviewStatus :: Maybe V1beta1SubjectAccessReviewStatus
v1beta1SubjectAccessReviewSpec :: V1beta1SubjectAccessReviewSpec
v1beta1SubjectAccessReviewMetadata :: Maybe V1ObjectMeta
v1beta1SubjectAccessReviewKind :: Maybe Text
v1beta1SubjectAccessReviewApiVersion :: Maybe Text
v1beta1SubjectAccessReviewStatus :: V1beta1SubjectAccessReview
-> Maybe V1beta1SubjectAccessReviewStatus
v1beta1SubjectAccessReviewSpec :: V1beta1SubjectAccessReview -> V1beta1SubjectAccessReviewSpec
v1beta1SubjectAccessReviewMetadata :: V1beta1SubjectAccessReview -> Maybe V1ObjectMeta
v1beta1SubjectAccessReviewKind :: V1beta1SubjectAccessReview -> Maybe Text
v1beta1SubjectAccessReviewApiVersion :: V1beta1SubjectAccessReview -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1SubjectAccessReviewApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1SubjectAccessReviewKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1SubjectAccessReviewMetadata
      , Text
"spec" Text -> V1beta1SubjectAccessReviewSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1beta1SubjectAccessReviewSpec
v1beta1SubjectAccessReviewSpec
      , Text
"status" Text -> Maybe V1beta1SubjectAccessReviewStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1SubjectAccessReviewStatus
v1beta1SubjectAccessReviewStatus
      ]


-- | Construct a value of type 'V1beta1SubjectAccessReview' (by applying it's required fields, if any)
mkV1beta1SubjectAccessReview
  :: V1beta1SubjectAccessReviewSpec -- ^ 'v1beta1SubjectAccessReviewSpec' 
  -> V1beta1SubjectAccessReview
mkV1beta1SubjectAccessReview :: V1beta1SubjectAccessReviewSpec -> V1beta1SubjectAccessReview
mkV1beta1SubjectAccessReview V1beta1SubjectAccessReviewSpec
v1beta1SubjectAccessReviewSpec =
  V1beta1SubjectAccessReview :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1SubjectAccessReviewSpec
-> Maybe V1beta1SubjectAccessReviewStatus
-> V1beta1SubjectAccessReview
V1beta1SubjectAccessReview
  { v1beta1SubjectAccessReviewApiVersion :: Maybe Text
v1beta1SubjectAccessReviewApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1SubjectAccessReviewKind :: Maybe Text
v1beta1SubjectAccessReviewKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1SubjectAccessReviewMetadata :: Maybe V1ObjectMeta
v1beta1SubjectAccessReviewMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1beta1SubjectAccessReviewSpec
v1beta1SubjectAccessReviewSpec :: V1beta1SubjectAccessReviewSpec
v1beta1SubjectAccessReviewSpec :: V1beta1SubjectAccessReviewSpec
v1beta1SubjectAccessReviewSpec
  , v1beta1SubjectAccessReviewStatus :: Maybe V1beta1SubjectAccessReviewStatus
v1beta1SubjectAccessReviewStatus = Maybe V1beta1SubjectAccessReviewStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta1SubjectAccessReviewSpec
-- | V1beta1SubjectAccessReviewSpec
-- SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set
data V1beta1SubjectAccessReviewSpec = V1beta1SubjectAccessReviewSpec
  { V1beta1SubjectAccessReviewSpec -> Maybe (Map String [Text])
v1beta1SubjectAccessReviewSpecExtra :: !(Maybe (Map.Map String [Text])) -- ^ "extra" - Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer it needs a reflection here.
  , V1beta1SubjectAccessReviewSpec -> Maybe [Text]
v1beta1SubjectAccessReviewSpecGroup :: !(Maybe [Text]) -- ^ "group" - Groups is the groups you&#39;re testing for.
  , V1beta1SubjectAccessReviewSpec
-> Maybe V1beta1NonResourceAttributes
v1beta1SubjectAccessReviewSpecNonResourceAttributes :: !(Maybe V1beta1NonResourceAttributes) -- ^ "nonResourceAttributes"
  , V1beta1SubjectAccessReviewSpec -> Maybe V1beta1ResourceAttributes
v1beta1SubjectAccessReviewSpecResourceAttributes :: !(Maybe V1beta1ResourceAttributes) -- ^ "resourceAttributes"
  , V1beta1SubjectAccessReviewSpec -> Maybe Text
v1beta1SubjectAccessReviewSpecUid :: !(Maybe Text) -- ^ "uid" - UID information about the requesting user.
  , V1beta1SubjectAccessReviewSpec -> Maybe Text
v1beta1SubjectAccessReviewSpecUser :: !(Maybe Text) -- ^ "user" - User is the user you&#39;re testing for. If you specify \&quot;User\&quot; but not \&quot;Group\&quot;, then is it interpreted as \&quot;What if User were not a member of any groups
  } deriving (Int -> V1beta1SubjectAccessReviewSpec -> ShowS
[V1beta1SubjectAccessReviewSpec] -> ShowS
V1beta1SubjectAccessReviewSpec -> String
(Int -> V1beta1SubjectAccessReviewSpec -> ShowS)
-> (V1beta1SubjectAccessReviewSpec -> String)
-> ([V1beta1SubjectAccessReviewSpec] -> ShowS)
-> Show V1beta1SubjectAccessReviewSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1SubjectAccessReviewSpec] -> ShowS
$cshowList :: [V1beta1SubjectAccessReviewSpec] -> ShowS
show :: V1beta1SubjectAccessReviewSpec -> String
$cshow :: V1beta1SubjectAccessReviewSpec -> String
showsPrec :: Int -> V1beta1SubjectAccessReviewSpec -> ShowS
$cshowsPrec :: Int -> V1beta1SubjectAccessReviewSpec -> ShowS
P.Show, V1beta1SubjectAccessReviewSpec
-> V1beta1SubjectAccessReviewSpec -> Bool
(V1beta1SubjectAccessReviewSpec
 -> V1beta1SubjectAccessReviewSpec -> Bool)
-> (V1beta1SubjectAccessReviewSpec
    -> V1beta1SubjectAccessReviewSpec -> Bool)
-> Eq V1beta1SubjectAccessReviewSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1SubjectAccessReviewSpec
-> V1beta1SubjectAccessReviewSpec -> Bool
$c/= :: V1beta1SubjectAccessReviewSpec
-> V1beta1SubjectAccessReviewSpec -> Bool
== :: V1beta1SubjectAccessReviewSpec
-> V1beta1SubjectAccessReviewSpec -> Bool
$c== :: V1beta1SubjectAccessReviewSpec
-> V1beta1SubjectAccessReviewSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1SubjectAccessReviewSpec
instance A.FromJSON V1beta1SubjectAccessReviewSpec where
  parseJSON :: Value -> Parser V1beta1SubjectAccessReviewSpec
parseJSON = String
-> (Object -> Parser V1beta1SubjectAccessReviewSpec)
-> Value
-> Parser V1beta1SubjectAccessReviewSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1SubjectAccessReviewSpec" ((Object -> Parser V1beta1SubjectAccessReviewSpec)
 -> Value -> Parser V1beta1SubjectAccessReviewSpec)
-> (Object -> Parser V1beta1SubjectAccessReviewSpec)
-> Value
-> Parser V1beta1SubjectAccessReviewSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe (Map String [Text])
-> Maybe [Text]
-> Maybe V1beta1NonResourceAttributes
-> Maybe V1beta1ResourceAttributes
-> Maybe Text
-> Maybe Text
-> V1beta1SubjectAccessReviewSpec
V1beta1SubjectAccessReviewSpec
      (Maybe (Map String [Text])
 -> Maybe [Text]
 -> Maybe V1beta1NonResourceAttributes
 -> Maybe V1beta1ResourceAttributes
 -> Maybe Text
 -> Maybe Text
 -> V1beta1SubjectAccessReviewSpec)
-> Parser (Maybe (Map String [Text]))
-> Parser
     (Maybe [Text]
      -> Maybe V1beta1NonResourceAttributes
      -> Maybe V1beta1ResourceAttributes
      -> Maybe Text
      -> Maybe Text
      -> V1beta1SubjectAccessReviewSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe (Map String [Text]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"extra")
      Parser
  (Maybe [Text]
   -> Maybe V1beta1NonResourceAttributes
   -> Maybe V1beta1ResourceAttributes
   -> Maybe Text
   -> Maybe Text
   -> V1beta1SubjectAccessReviewSpec)
-> Parser (Maybe [Text])
-> Parser
     (Maybe V1beta1NonResourceAttributes
      -> Maybe V1beta1ResourceAttributes
      -> Maybe Text
      -> Maybe Text
      -> V1beta1SubjectAccessReviewSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"group")
      Parser
  (Maybe V1beta1NonResourceAttributes
   -> Maybe V1beta1ResourceAttributes
   -> Maybe Text
   -> Maybe Text
   -> V1beta1SubjectAccessReviewSpec)
-> Parser (Maybe V1beta1NonResourceAttributes)
-> Parser
     (Maybe V1beta1ResourceAttributes
      -> Maybe Text -> Maybe Text -> V1beta1SubjectAccessReviewSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1NonResourceAttributes)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"nonResourceAttributes")
      Parser
  (Maybe V1beta1ResourceAttributes
   -> Maybe Text -> Maybe Text -> V1beta1SubjectAccessReviewSpec)
-> Parser (Maybe V1beta1ResourceAttributes)
-> Parser
     (Maybe Text -> Maybe Text -> V1beta1SubjectAccessReviewSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1ResourceAttributes)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resourceAttributes")
      Parser (Maybe Text -> Maybe Text -> V1beta1SubjectAccessReviewSpec)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1beta1SubjectAccessReviewSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"uid")
      Parser (Maybe Text -> V1beta1SubjectAccessReviewSpec)
-> Parser (Maybe Text) -> Parser V1beta1SubjectAccessReviewSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"user")

-- | ToJSON V1beta1SubjectAccessReviewSpec
instance A.ToJSON V1beta1SubjectAccessReviewSpec where
  toJSON :: V1beta1SubjectAccessReviewSpec -> Value
toJSON V1beta1SubjectAccessReviewSpec {Maybe [Text]
Maybe Text
Maybe (Map String [Text])
Maybe V1beta1ResourceAttributes
Maybe V1beta1NonResourceAttributes
v1beta1SubjectAccessReviewSpecUser :: Maybe Text
v1beta1SubjectAccessReviewSpecUid :: Maybe Text
v1beta1SubjectAccessReviewSpecResourceAttributes :: Maybe V1beta1ResourceAttributes
v1beta1SubjectAccessReviewSpecNonResourceAttributes :: Maybe V1beta1NonResourceAttributes
v1beta1SubjectAccessReviewSpecGroup :: Maybe [Text]
v1beta1SubjectAccessReviewSpecExtra :: Maybe (Map String [Text])
v1beta1SubjectAccessReviewSpecUser :: V1beta1SubjectAccessReviewSpec -> Maybe Text
v1beta1SubjectAccessReviewSpecUid :: V1beta1SubjectAccessReviewSpec -> Maybe Text
v1beta1SubjectAccessReviewSpecResourceAttributes :: V1beta1SubjectAccessReviewSpec -> Maybe V1beta1ResourceAttributes
v1beta1SubjectAccessReviewSpecNonResourceAttributes :: V1beta1SubjectAccessReviewSpec
-> Maybe V1beta1NonResourceAttributes
v1beta1SubjectAccessReviewSpecGroup :: V1beta1SubjectAccessReviewSpec -> Maybe [Text]
v1beta1SubjectAccessReviewSpecExtra :: V1beta1SubjectAccessReviewSpec -> Maybe (Map String [Text])
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"extra" Text -> Maybe (Map String [Text]) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String [Text])
v1beta1SubjectAccessReviewSpecExtra
      , Text
"group" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1SubjectAccessReviewSpecGroup
      , Text
"nonResourceAttributes" Text -> Maybe V1beta1NonResourceAttributes -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1NonResourceAttributes
v1beta1SubjectAccessReviewSpecNonResourceAttributes
      , Text
"resourceAttributes" Text -> Maybe V1beta1ResourceAttributes -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1ResourceAttributes
v1beta1SubjectAccessReviewSpecResourceAttributes
      , Text
"uid" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1SubjectAccessReviewSpecUid
      , Text
"user" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1SubjectAccessReviewSpecUser
      ]


-- | Construct a value of type 'V1beta1SubjectAccessReviewSpec' (by applying it's required fields, if any)
mkV1beta1SubjectAccessReviewSpec
  :: V1beta1SubjectAccessReviewSpec
mkV1beta1SubjectAccessReviewSpec :: V1beta1SubjectAccessReviewSpec
mkV1beta1SubjectAccessReviewSpec =
  V1beta1SubjectAccessReviewSpec :: Maybe (Map String [Text])
-> Maybe [Text]
-> Maybe V1beta1NonResourceAttributes
-> Maybe V1beta1ResourceAttributes
-> Maybe Text
-> Maybe Text
-> V1beta1SubjectAccessReviewSpec
V1beta1SubjectAccessReviewSpec
  { v1beta1SubjectAccessReviewSpecExtra :: Maybe (Map String [Text])
v1beta1SubjectAccessReviewSpecExtra = Maybe (Map String [Text])
forall a. Maybe a
Nothing
  , v1beta1SubjectAccessReviewSpecGroup :: Maybe [Text]
v1beta1SubjectAccessReviewSpecGroup = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1SubjectAccessReviewSpecNonResourceAttributes :: Maybe V1beta1NonResourceAttributes
v1beta1SubjectAccessReviewSpecNonResourceAttributes = Maybe V1beta1NonResourceAttributes
forall a. Maybe a
Nothing
  , v1beta1SubjectAccessReviewSpecResourceAttributes :: Maybe V1beta1ResourceAttributes
v1beta1SubjectAccessReviewSpecResourceAttributes = Maybe V1beta1ResourceAttributes
forall a. Maybe a
Nothing
  , v1beta1SubjectAccessReviewSpecUid :: Maybe Text
v1beta1SubjectAccessReviewSpecUid = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1SubjectAccessReviewSpecUser :: Maybe Text
v1beta1SubjectAccessReviewSpecUser = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1SubjectAccessReviewStatus
-- | V1beta1SubjectAccessReviewStatus
-- SubjectAccessReviewStatus
data V1beta1SubjectAccessReviewStatus = V1beta1SubjectAccessReviewStatus
  { V1beta1SubjectAccessReviewStatus -> Bool
v1beta1SubjectAccessReviewStatusAllowed :: !(Bool) -- ^ /Required/ "allowed" - Allowed is required. True if the action would be allowed, false otherwise.
  , V1beta1SubjectAccessReviewStatus -> Maybe Bool
v1beta1SubjectAccessReviewStatusDenied :: !(Maybe Bool) -- ^ "denied" - Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.
  , V1beta1SubjectAccessReviewStatus -> Maybe Text
v1beta1SubjectAccessReviewStatusEvaluationError :: !(Maybe Text) -- ^ "evaluationError" - EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.
  , V1beta1SubjectAccessReviewStatus -> Maybe Text
v1beta1SubjectAccessReviewStatusReason :: !(Maybe Text) -- ^ "reason" - Reason is optional.  It indicates why a request was allowed or denied.
  } deriving (Int -> V1beta1SubjectAccessReviewStatus -> ShowS
[V1beta1SubjectAccessReviewStatus] -> ShowS
V1beta1SubjectAccessReviewStatus -> String
(Int -> V1beta1SubjectAccessReviewStatus -> ShowS)
-> (V1beta1SubjectAccessReviewStatus -> String)
-> ([V1beta1SubjectAccessReviewStatus] -> ShowS)
-> Show V1beta1SubjectAccessReviewStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1SubjectAccessReviewStatus] -> ShowS
$cshowList :: [V1beta1SubjectAccessReviewStatus] -> ShowS
show :: V1beta1SubjectAccessReviewStatus -> String
$cshow :: V1beta1SubjectAccessReviewStatus -> String
showsPrec :: Int -> V1beta1SubjectAccessReviewStatus -> ShowS
$cshowsPrec :: Int -> V1beta1SubjectAccessReviewStatus -> ShowS
P.Show, V1beta1SubjectAccessReviewStatus
-> V1beta1SubjectAccessReviewStatus -> Bool
(V1beta1SubjectAccessReviewStatus
 -> V1beta1SubjectAccessReviewStatus -> Bool)
-> (V1beta1SubjectAccessReviewStatus
    -> V1beta1SubjectAccessReviewStatus -> Bool)
-> Eq V1beta1SubjectAccessReviewStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1SubjectAccessReviewStatus
-> V1beta1SubjectAccessReviewStatus -> Bool
$c/= :: V1beta1SubjectAccessReviewStatus
-> V1beta1SubjectAccessReviewStatus -> Bool
== :: V1beta1SubjectAccessReviewStatus
-> V1beta1SubjectAccessReviewStatus -> Bool
$c== :: V1beta1SubjectAccessReviewStatus
-> V1beta1SubjectAccessReviewStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1SubjectAccessReviewStatus
instance A.FromJSON V1beta1SubjectAccessReviewStatus where
  parseJSON :: Value -> Parser V1beta1SubjectAccessReviewStatus
parseJSON = String
-> (Object -> Parser V1beta1SubjectAccessReviewStatus)
-> Value
-> Parser V1beta1SubjectAccessReviewStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1SubjectAccessReviewStatus" ((Object -> Parser V1beta1SubjectAccessReviewStatus)
 -> Value -> Parser V1beta1SubjectAccessReviewStatus)
-> (Object -> Parser V1beta1SubjectAccessReviewStatus)
-> Value
-> Parser V1beta1SubjectAccessReviewStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> V1beta1SubjectAccessReviewStatus
V1beta1SubjectAccessReviewStatus
      (Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> V1beta1SubjectAccessReviewStatus)
-> Parser Bool
-> Parser
     (Maybe Bool
      -> Maybe Text -> Maybe Text -> V1beta1SubjectAccessReviewStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"allowed")
      Parser
  (Maybe Bool
   -> Maybe Text -> Maybe Text -> V1beta1SubjectAccessReviewStatus)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text -> Maybe Text -> V1beta1SubjectAccessReviewStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"denied")
      Parser
  (Maybe Text -> Maybe Text -> V1beta1SubjectAccessReviewStatus)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> V1beta1SubjectAccessReviewStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"evaluationError")
      Parser (Maybe Text -> V1beta1SubjectAccessReviewStatus)
-> Parser (Maybe Text) -> Parser V1beta1SubjectAccessReviewStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")

-- | ToJSON V1beta1SubjectAccessReviewStatus
instance A.ToJSON V1beta1SubjectAccessReviewStatus where
  toJSON :: V1beta1SubjectAccessReviewStatus -> Value
toJSON V1beta1SubjectAccessReviewStatus {Bool
Maybe Bool
Maybe Text
v1beta1SubjectAccessReviewStatusReason :: Maybe Text
v1beta1SubjectAccessReviewStatusEvaluationError :: Maybe Text
v1beta1SubjectAccessReviewStatusDenied :: Maybe Bool
v1beta1SubjectAccessReviewStatusAllowed :: Bool
v1beta1SubjectAccessReviewStatusReason :: V1beta1SubjectAccessReviewStatus -> Maybe Text
v1beta1SubjectAccessReviewStatusEvaluationError :: V1beta1SubjectAccessReviewStatus -> Maybe Text
v1beta1SubjectAccessReviewStatusDenied :: V1beta1SubjectAccessReviewStatus -> Maybe Bool
v1beta1SubjectAccessReviewStatusAllowed :: V1beta1SubjectAccessReviewStatus -> Bool
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"allowed" Text -> Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Bool
v1beta1SubjectAccessReviewStatusAllowed
      , Text
"denied" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta1SubjectAccessReviewStatusDenied
      , Text
"evaluationError" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1SubjectAccessReviewStatusEvaluationError
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1SubjectAccessReviewStatusReason
      ]


-- | Construct a value of type 'V1beta1SubjectAccessReviewStatus' (by applying it's required fields, if any)
mkV1beta1SubjectAccessReviewStatus
  :: Bool -- ^ 'v1beta1SubjectAccessReviewStatusAllowed': Allowed is required. True if the action would be allowed, false otherwise.
  -> V1beta1SubjectAccessReviewStatus
mkV1beta1SubjectAccessReviewStatus :: Bool -> V1beta1SubjectAccessReviewStatus
mkV1beta1SubjectAccessReviewStatus Bool
v1beta1SubjectAccessReviewStatusAllowed =
  V1beta1SubjectAccessReviewStatus :: Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> V1beta1SubjectAccessReviewStatus
V1beta1SubjectAccessReviewStatus
  { Bool
v1beta1SubjectAccessReviewStatusAllowed :: Bool
v1beta1SubjectAccessReviewStatusAllowed :: Bool
v1beta1SubjectAccessReviewStatusAllowed
  , v1beta1SubjectAccessReviewStatusDenied :: Maybe Bool
v1beta1SubjectAccessReviewStatusDenied = Maybe Bool
forall a. Maybe a
Nothing
  , v1beta1SubjectAccessReviewStatusEvaluationError :: Maybe Text
v1beta1SubjectAccessReviewStatusEvaluationError = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1SubjectAccessReviewStatusReason :: Maybe Text
v1beta1SubjectAccessReviewStatusReason = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1SubjectRulesReviewStatus
-- | V1beta1SubjectRulesReviewStatus
-- SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.
data V1beta1SubjectRulesReviewStatus = V1beta1SubjectRulesReviewStatus
  { V1beta1SubjectRulesReviewStatus -> Maybe Text
v1beta1SubjectRulesReviewStatusEvaluationError :: !(Maybe Text) -- ^ "evaluationError" - EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn&#39;t support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.
  , V1beta1SubjectRulesReviewStatus -> Bool
v1beta1SubjectRulesReviewStatusIncomplete :: !(Bool) -- ^ /Required/ "incomplete" - Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn&#39;t support rules evaluation.
  , V1beta1SubjectRulesReviewStatus -> [V1beta1NonResourceRule]
v1beta1SubjectRulesReviewStatusNonResourceRules :: !([V1beta1NonResourceRule]) -- ^ /Required/ "nonResourceRules" - NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn&#39;t significant, may contain duplicates, and possibly be incomplete.
  , V1beta1SubjectRulesReviewStatus -> [V1beta1ResourceRule]
v1beta1SubjectRulesReviewStatusResourceRules :: !([V1beta1ResourceRule]) -- ^ /Required/ "resourceRules" - ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn&#39;t significant, may contain duplicates, and possibly be incomplete.
  } deriving (Int -> V1beta1SubjectRulesReviewStatus -> ShowS
[V1beta1SubjectRulesReviewStatus] -> ShowS
V1beta1SubjectRulesReviewStatus -> String
(Int -> V1beta1SubjectRulesReviewStatus -> ShowS)
-> (V1beta1SubjectRulesReviewStatus -> String)
-> ([V1beta1SubjectRulesReviewStatus] -> ShowS)
-> Show V1beta1SubjectRulesReviewStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1SubjectRulesReviewStatus] -> ShowS
$cshowList :: [V1beta1SubjectRulesReviewStatus] -> ShowS
show :: V1beta1SubjectRulesReviewStatus -> String
$cshow :: V1beta1SubjectRulesReviewStatus -> String
showsPrec :: Int -> V1beta1SubjectRulesReviewStatus -> ShowS
$cshowsPrec :: Int -> V1beta1SubjectRulesReviewStatus -> ShowS
P.Show, V1beta1SubjectRulesReviewStatus
-> V1beta1SubjectRulesReviewStatus -> Bool
(V1beta1SubjectRulesReviewStatus
 -> V1beta1SubjectRulesReviewStatus -> Bool)
-> (V1beta1SubjectRulesReviewStatus
    -> V1beta1SubjectRulesReviewStatus -> Bool)
-> Eq V1beta1SubjectRulesReviewStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1SubjectRulesReviewStatus
-> V1beta1SubjectRulesReviewStatus -> Bool
$c/= :: V1beta1SubjectRulesReviewStatus
-> V1beta1SubjectRulesReviewStatus -> Bool
== :: V1beta1SubjectRulesReviewStatus
-> V1beta1SubjectRulesReviewStatus -> Bool
$c== :: V1beta1SubjectRulesReviewStatus
-> V1beta1SubjectRulesReviewStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1SubjectRulesReviewStatus
instance A.FromJSON V1beta1SubjectRulesReviewStatus where
  parseJSON :: Value -> Parser V1beta1SubjectRulesReviewStatus
parseJSON = String
-> (Object -> Parser V1beta1SubjectRulesReviewStatus)
-> Value
-> Parser V1beta1SubjectRulesReviewStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1SubjectRulesReviewStatus" ((Object -> Parser V1beta1SubjectRulesReviewStatus)
 -> Value -> Parser V1beta1SubjectRulesReviewStatus)
-> (Object -> Parser V1beta1SubjectRulesReviewStatus)
-> Value
-> Parser V1beta1SubjectRulesReviewStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Bool
-> [V1beta1NonResourceRule]
-> [V1beta1ResourceRule]
-> V1beta1SubjectRulesReviewStatus
V1beta1SubjectRulesReviewStatus
      (Maybe Text
 -> Bool
 -> [V1beta1NonResourceRule]
 -> [V1beta1ResourceRule]
 -> V1beta1SubjectRulesReviewStatus)
-> Parser (Maybe Text)
-> Parser
     (Bool
      -> [V1beta1NonResourceRule]
      -> [V1beta1ResourceRule]
      -> V1beta1SubjectRulesReviewStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"evaluationError")
      Parser
  (Bool
   -> [V1beta1NonResourceRule]
   -> [V1beta1ResourceRule]
   -> V1beta1SubjectRulesReviewStatus)
-> Parser Bool
-> Parser
     ([V1beta1NonResourceRule]
      -> [V1beta1ResourceRule] -> V1beta1SubjectRulesReviewStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"incomplete")
      Parser
  ([V1beta1NonResourceRule]
   -> [V1beta1ResourceRule] -> V1beta1SubjectRulesReviewStatus)
-> Parser [V1beta1NonResourceRule]
-> Parser
     ([V1beta1ResourceRule] -> V1beta1SubjectRulesReviewStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1NonResourceRule]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"nonResourceRules")
      Parser ([V1beta1ResourceRule] -> V1beta1SubjectRulesReviewStatus)
-> Parser [V1beta1ResourceRule]
-> Parser V1beta1SubjectRulesReviewStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1ResourceRule]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"resourceRules")

-- | ToJSON V1beta1SubjectRulesReviewStatus
instance A.ToJSON V1beta1SubjectRulesReviewStatus where
  toJSON :: V1beta1SubjectRulesReviewStatus -> Value
toJSON V1beta1SubjectRulesReviewStatus {Bool
[V1beta1ResourceRule]
[V1beta1NonResourceRule]
Maybe Text
v1beta1SubjectRulesReviewStatusResourceRules :: [V1beta1ResourceRule]
v1beta1SubjectRulesReviewStatusNonResourceRules :: [V1beta1NonResourceRule]
v1beta1SubjectRulesReviewStatusIncomplete :: Bool
v1beta1SubjectRulesReviewStatusEvaluationError :: Maybe Text
v1beta1SubjectRulesReviewStatusResourceRules :: V1beta1SubjectRulesReviewStatus -> [V1beta1ResourceRule]
v1beta1SubjectRulesReviewStatusNonResourceRules :: V1beta1SubjectRulesReviewStatus -> [V1beta1NonResourceRule]
v1beta1SubjectRulesReviewStatusIncomplete :: V1beta1SubjectRulesReviewStatus -> Bool
v1beta1SubjectRulesReviewStatusEvaluationError :: V1beta1SubjectRulesReviewStatus -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"evaluationError" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1SubjectRulesReviewStatusEvaluationError
      , Text
"incomplete" Text -> Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Bool
v1beta1SubjectRulesReviewStatusIncomplete
      , Text
"nonResourceRules" Text -> [V1beta1NonResourceRule] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1NonResourceRule]
v1beta1SubjectRulesReviewStatusNonResourceRules
      , Text
"resourceRules" Text -> [V1beta1ResourceRule] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1ResourceRule]
v1beta1SubjectRulesReviewStatusResourceRules
      ]


-- | Construct a value of type 'V1beta1SubjectRulesReviewStatus' (by applying it's required fields, if any)
mkV1beta1SubjectRulesReviewStatus
  :: Bool -- ^ 'v1beta1SubjectRulesReviewStatusIncomplete': Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.
  -> [V1beta1NonResourceRule] -- ^ 'v1beta1SubjectRulesReviewStatusNonResourceRules': NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.
  -> [V1beta1ResourceRule] -- ^ 'v1beta1SubjectRulesReviewStatusResourceRules': ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.
  -> V1beta1SubjectRulesReviewStatus
mkV1beta1SubjectRulesReviewStatus :: Bool
-> [V1beta1NonResourceRule]
-> [V1beta1ResourceRule]
-> V1beta1SubjectRulesReviewStatus
mkV1beta1SubjectRulesReviewStatus Bool
v1beta1SubjectRulesReviewStatusIncomplete [V1beta1NonResourceRule]
v1beta1SubjectRulesReviewStatusNonResourceRules [V1beta1ResourceRule]
v1beta1SubjectRulesReviewStatusResourceRules =
  V1beta1SubjectRulesReviewStatus :: Maybe Text
-> Bool
-> [V1beta1NonResourceRule]
-> [V1beta1ResourceRule]
-> V1beta1SubjectRulesReviewStatus
V1beta1SubjectRulesReviewStatus
  { v1beta1SubjectRulesReviewStatusEvaluationError :: Maybe Text
v1beta1SubjectRulesReviewStatusEvaluationError = Maybe Text
forall a. Maybe a
Nothing
  , Bool
v1beta1SubjectRulesReviewStatusIncomplete :: Bool
v1beta1SubjectRulesReviewStatusIncomplete :: Bool
v1beta1SubjectRulesReviewStatusIncomplete
  , [V1beta1NonResourceRule]
v1beta1SubjectRulesReviewStatusNonResourceRules :: [V1beta1NonResourceRule]
v1beta1SubjectRulesReviewStatusNonResourceRules :: [V1beta1NonResourceRule]
v1beta1SubjectRulesReviewStatusNonResourceRules
  , [V1beta1ResourceRule]
v1beta1SubjectRulesReviewStatusResourceRules :: [V1beta1ResourceRule]
v1beta1SubjectRulesReviewStatusResourceRules :: [V1beta1ResourceRule]
v1beta1SubjectRulesReviewStatusResourceRules
  }

-- ** V1beta1TokenReview
-- | V1beta1TokenReview
-- TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.
data V1beta1TokenReview = V1beta1TokenReview
  { V1beta1TokenReview -> Maybe Text
v1beta1TokenReviewApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1TokenReview -> Maybe Text
v1beta1TokenReviewKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1TokenReview -> Maybe V1ObjectMeta
v1beta1TokenReviewMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1TokenReview -> V1beta1TokenReviewSpec
v1beta1TokenReviewSpec :: !(V1beta1TokenReviewSpec) -- ^ /Required/ "spec"
  , V1beta1TokenReview -> Maybe V1beta1TokenReviewStatus
v1beta1TokenReviewStatus :: !(Maybe V1beta1TokenReviewStatus) -- ^ "status"
  } deriving (Int -> V1beta1TokenReview -> ShowS
[V1beta1TokenReview] -> ShowS
V1beta1TokenReview -> String
(Int -> V1beta1TokenReview -> ShowS)
-> (V1beta1TokenReview -> String)
-> ([V1beta1TokenReview] -> ShowS)
-> Show V1beta1TokenReview
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1TokenReview] -> ShowS
$cshowList :: [V1beta1TokenReview] -> ShowS
show :: V1beta1TokenReview -> String
$cshow :: V1beta1TokenReview -> String
showsPrec :: Int -> V1beta1TokenReview -> ShowS
$cshowsPrec :: Int -> V1beta1TokenReview -> ShowS
P.Show, V1beta1TokenReview -> V1beta1TokenReview -> Bool
(V1beta1TokenReview -> V1beta1TokenReview -> Bool)
-> (V1beta1TokenReview -> V1beta1TokenReview -> Bool)
-> Eq V1beta1TokenReview
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1TokenReview -> V1beta1TokenReview -> Bool
$c/= :: V1beta1TokenReview -> V1beta1TokenReview -> Bool
== :: V1beta1TokenReview -> V1beta1TokenReview -> Bool
$c== :: V1beta1TokenReview -> V1beta1TokenReview -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1TokenReview
instance A.FromJSON V1beta1TokenReview where
  parseJSON :: Value -> Parser V1beta1TokenReview
parseJSON = String
-> (Object -> Parser V1beta1TokenReview)
-> Value
-> Parser V1beta1TokenReview
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1TokenReview" ((Object -> Parser V1beta1TokenReview)
 -> Value -> Parser V1beta1TokenReview)
-> (Object -> Parser V1beta1TokenReview)
-> Value
-> Parser V1beta1TokenReview
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1TokenReviewSpec
-> Maybe V1beta1TokenReviewStatus
-> V1beta1TokenReview
V1beta1TokenReview
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1beta1TokenReviewSpec
 -> Maybe V1beta1TokenReviewStatus
 -> V1beta1TokenReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1beta1TokenReviewSpec
      -> Maybe V1beta1TokenReviewStatus
      -> V1beta1TokenReview)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1beta1TokenReviewSpec
   -> Maybe V1beta1TokenReviewStatus
   -> V1beta1TokenReview)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1beta1TokenReviewSpec
      -> Maybe V1beta1TokenReviewStatus
      -> V1beta1TokenReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1beta1TokenReviewSpec
   -> Maybe V1beta1TokenReviewStatus
   -> V1beta1TokenReview)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1beta1TokenReviewSpec
      -> Maybe V1beta1TokenReviewStatus -> V1beta1TokenReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1beta1TokenReviewSpec
   -> Maybe V1beta1TokenReviewStatus -> V1beta1TokenReview)
-> Parser V1beta1TokenReviewSpec
-> Parser (Maybe V1beta1TokenReviewStatus -> V1beta1TokenReview)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1beta1TokenReviewSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")
      Parser (Maybe V1beta1TokenReviewStatus -> V1beta1TokenReview)
-> Parser (Maybe V1beta1TokenReviewStatus)
-> Parser V1beta1TokenReview
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1TokenReviewStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta1TokenReview
instance A.ToJSON V1beta1TokenReview where
  toJSON :: V1beta1TokenReview -> Value
toJSON V1beta1TokenReview {Maybe Text
Maybe V1beta1TokenReviewStatus
Maybe V1ObjectMeta
V1beta1TokenReviewSpec
v1beta1TokenReviewStatus :: Maybe V1beta1TokenReviewStatus
v1beta1TokenReviewSpec :: V1beta1TokenReviewSpec
v1beta1TokenReviewMetadata :: Maybe V1ObjectMeta
v1beta1TokenReviewKind :: Maybe Text
v1beta1TokenReviewApiVersion :: Maybe Text
v1beta1TokenReviewStatus :: V1beta1TokenReview -> Maybe V1beta1TokenReviewStatus
v1beta1TokenReviewSpec :: V1beta1TokenReview -> V1beta1TokenReviewSpec
v1beta1TokenReviewMetadata :: V1beta1TokenReview -> Maybe V1ObjectMeta
v1beta1TokenReviewKind :: V1beta1TokenReview -> Maybe Text
v1beta1TokenReviewApiVersion :: V1beta1TokenReview -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1TokenReviewApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1TokenReviewKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1TokenReviewMetadata
      , Text
"spec" Text -> V1beta1TokenReviewSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1beta1TokenReviewSpec
v1beta1TokenReviewSpec
      , Text
"status" Text -> Maybe V1beta1TokenReviewStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1TokenReviewStatus
v1beta1TokenReviewStatus
      ]


-- | Construct a value of type 'V1beta1TokenReview' (by applying it's required fields, if any)
mkV1beta1TokenReview
  :: V1beta1TokenReviewSpec -- ^ 'v1beta1TokenReviewSpec' 
  -> V1beta1TokenReview
mkV1beta1TokenReview :: V1beta1TokenReviewSpec -> V1beta1TokenReview
mkV1beta1TokenReview V1beta1TokenReviewSpec
v1beta1TokenReviewSpec =
  V1beta1TokenReview :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1TokenReviewSpec
-> Maybe V1beta1TokenReviewStatus
-> V1beta1TokenReview
V1beta1TokenReview
  { v1beta1TokenReviewApiVersion :: Maybe Text
v1beta1TokenReviewApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1TokenReviewKind :: Maybe Text
v1beta1TokenReviewKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1TokenReviewMetadata :: Maybe V1ObjectMeta
v1beta1TokenReviewMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1beta1TokenReviewSpec
v1beta1TokenReviewSpec :: V1beta1TokenReviewSpec
v1beta1TokenReviewSpec :: V1beta1TokenReviewSpec
v1beta1TokenReviewSpec
  , v1beta1TokenReviewStatus :: Maybe V1beta1TokenReviewStatus
v1beta1TokenReviewStatus = Maybe V1beta1TokenReviewStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta1TokenReviewSpec
-- | V1beta1TokenReviewSpec
-- TokenReviewSpec is a description of the token authentication request.
data V1beta1TokenReviewSpec = V1beta1TokenReviewSpec
  { V1beta1TokenReviewSpec -> Maybe [Text]
v1beta1TokenReviewSpecAudiences :: !(Maybe [Text]) -- ^ "audiences" - Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.
  , V1beta1TokenReviewSpec -> Maybe Text
v1beta1TokenReviewSpecToken :: !(Maybe Text) -- ^ "token" - Token is the opaque bearer token.
  } deriving (Int -> V1beta1TokenReviewSpec -> ShowS
[V1beta1TokenReviewSpec] -> ShowS
V1beta1TokenReviewSpec -> String
(Int -> V1beta1TokenReviewSpec -> ShowS)
-> (V1beta1TokenReviewSpec -> String)
-> ([V1beta1TokenReviewSpec] -> ShowS)
-> Show V1beta1TokenReviewSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1TokenReviewSpec] -> ShowS
$cshowList :: [V1beta1TokenReviewSpec] -> ShowS
show :: V1beta1TokenReviewSpec -> String
$cshow :: V1beta1TokenReviewSpec -> String
showsPrec :: Int -> V1beta1TokenReviewSpec -> ShowS
$cshowsPrec :: Int -> V1beta1TokenReviewSpec -> ShowS
P.Show, V1beta1TokenReviewSpec -> V1beta1TokenReviewSpec -> Bool
(V1beta1TokenReviewSpec -> V1beta1TokenReviewSpec -> Bool)
-> (V1beta1TokenReviewSpec -> V1beta1TokenReviewSpec -> Bool)
-> Eq V1beta1TokenReviewSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1TokenReviewSpec -> V1beta1TokenReviewSpec -> Bool
$c/= :: V1beta1TokenReviewSpec -> V1beta1TokenReviewSpec -> Bool
== :: V1beta1TokenReviewSpec -> V1beta1TokenReviewSpec -> Bool
$c== :: V1beta1TokenReviewSpec -> V1beta1TokenReviewSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1TokenReviewSpec
instance A.FromJSON V1beta1TokenReviewSpec where
  parseJSON :: Value -> Parser V1beta1TokenReviewSpec
parseJSON = String
-> (Object -> Parser V1beta1TokenReviewSpec)
-> Value
-> Parser V1beta1TokenReviewSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1TokenReviewSpec" ((Object -> Parser V1beta1TokenReviewSpec)
 -> Value -> Parser V1beta1TokenReviewSpec)
-> (Object -> Parser V1beta1TokenReviewSpec)
-> Value
-> Parser V1beta1TokenReviewSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text] -> Maybe Text -> V1beta1TokenReviewSpec
V1beta1TokenReviewSpec
      (Maybe [Text] -> Maybe Text -> V1beta1TokenReviewSpec)
-> Parser (Maybe [Text])
-> Parser (Maybe Text -> V1beta1TokenReviewSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"audiences")
      Parser (Maybe Text -> V1beta1TokenReviewSpec)
-> Parser (Maybe Text) -> Parser V1beta1TokenReviewSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"token")

-- | ToJSON V1beta1TokenReviewSpec
instance A.ToJSON V1beta1TokenReviewSpec where
  toJSON :: V1beta1TokenReviewSpec -> Value
toJSON V1beta1TokenReviewSpec {Maybe [Text]
Maybe Text
v1beta1TokenReviewSpecToken :: Maybe Text
v1beta1TokenReviewSpecAudiences :: Maybe [Text]
v1beta1TokenReviewSpecToken :: V1beta1TokenReviewSpec -> Maybe Text
v1beta1TokenReviewSpecAudiences :: V1beta1TokenReviewSpec -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"audiences" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1TokenReviewSpecAudiences
      , Text
"token" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1TokenReviewSpecToken
      ]


-- | Construct a value of type 'V1beta1TokenReviewSpec' (by applying it's required fields, if any)
mkV1beta1TokenReviewSpec
  :: V1beta1TokenReviewSpec
mkV1beta1TokenReviewSpec :: V1beta1TokenReviewSpec
mkV1beta1TokenReviewSpec =
  V1beta1TokenReviewSpec :: Maybe [Text] -> Maybe Text -> V1beta1TokenReviewSpec
V1beta1TokenReviewSpec
  { v1beta1TokenReviewSpecAudiences :: Maybe [Text]
v1beta1TokenReviewSpecAudiences = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1TokenReviewSpecToken :: Maybe Text
v1beta1TokenReviewSpecToken = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1TokenReviewStatus
-- | V1beta1TokenReviewStatus
-- TokenReviewStatus is the result of the token authentication request.
data V1beta1TokenReviewStatus = V1beta1TokenReviewStatus
  { V1beta1TokenReviewStatus -> Maybe [Text]
v1beta1TokenReviewStatusAudiences :: !(Maybe [Text]) -- ^ "audiences" - Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token&#39;s audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \&quot;true\&quot;, the token is valid against the audience of the Kubernetes API server.
  , V1beta1TokenReviewStatus -> Maybe Bool
v1beta1TokenReviewStatusAuthenticated :: !(Maybe Bool) -- ^ "authenticated" - Authenticated indicates that the token was associated with a known user.
  , V1beta1TokenReviewStatus -> Maybe Text
v1beta1TokenReviewStatusError :: !(Maybe Text) -- ^ "error" - Error indicates that the token couldn&#39;t be checked
  , V1beta1TokenReviewStatus -> Maybe V1beta1UserInfo
v1beta1TokenReviewStatusUser :: !(Maybe V1beta1UserInfo) -- ^ "user"
  } deriving (Int -> V1beta1TokenReviewStatus -> ShowS
[V1beta1TokenReviewStatus] -> ShowS
V1beta1TokenReviewStatus -> String
(Int -> V1beta1TokenReviewStatus -> ShowS)
-> (V1beta1TokenReviewStatus -> String)
-> ([V1beta1TokenReviewStatus] -> ShowS)
-> Show V1beta1TokenReviewStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1TokenReviewStatus] -> ShowS
$cshowList :: [V1beta1TokenReviewStatus] -> ShowS
show :: V1beta1TokenReviewStatus -> String
$cshow :: V1beta1TokenReviewStatus -> String
showsPrec :: Int -> V1beta1TokenReviewStatus -> ShowS
$cshowsPrec :: Int -> V1beta1TokenReviewStatus -> ShowS
P.Show, V1beta1TokenReviewStatus -> V1beta1TokenReviewStatus -> Bool
(V1beta1TokenReviewStatus -> V1beta1TokenReviewStatus -> Bool)
-> (V1beta1TokenReviewStatus -> V1beta1TokenReviewStatus -> Bool)
-> Eq V1beta1TokenReviewStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1TokenReviewStatus -> V1beta1TokenReviewStatus -> Bool
$c/= :: V1beta1TokenReviewStatus -> V1beta1TokenReviewStatus -> Bool
== :: V1beta1TokenReviewStatus -> V1beta1TokenReviewStatus -> Bool
$c== :: V1beta1TokenReviewStatus -> V1beta1TokenReviewStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1TokenReviewStatus
instance A.FromJSON V1beta1TokenReviewStatus where
  parseJSON :: Value -> Parser V1beta1TokenReviewStatus
parseJSON = String
-> (Object -> Parser V1beta1TokenReviewStatus)
-> Value
-> Parser V1beta1TokenReviewStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1TokenReviewStatus" ((Object -> Parser V1beta1TokenReviewStatus)
 -> Value -> Parser V1beta1TokenReviewStatus)
-> (Object -> Parser V1beta1TokenReviewStatus)
-> Value
-> Parser V1beta1TokenReviewStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> Maybe Bool
-> Maybe Text
-> Maybe V1beta1UserInfo
-> V1beta1TokenReviewStatus
V1beta1TokenReviewStatus
      (Maybe [Text]
 -> Maybe Bool
 -> Maybe Text
 -> Maybe V1beta1UserInfo
 -> V1beta1TokenReviewStatus)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Bool
      -> Maybe Text -> Maybe V1beta1UserInfo -> V1beta1TokenReviewStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"audiences")
      Parser
  (Maybe Bool
   -> Maybe Text -> Maybe V1beta1UserInfo -> V1beta1TokenReviewStatus)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text -> Maybe V1beta1UserInfo -> V1beta1TokenReviewStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"authenticated")
      Parser
  (Maybe Text -> Maybe V1beta1UserInfo -> V1beta1TokenReviewStatus)
-> Parser (Maybe Text)
-> Parser (Maybe V1beta1UserInfo -> V1beta1TokenReviewStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"error")
      Parser (Maybe V1beta1UserInfo -> V1beta1TokenReviewStatus)
-> Parser (Maybe V1beta1UserInfo)
-> Parser V1beta1TokenReviewStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1UserInfo)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"user")

-- | ToJSON V1beta1TokenReviewStatus
instance A.ToJSON V1beta1TokenReviewStatus where
  toJSON :: V1beta1TokenReviewStatus -> Value
toJSON V1beta1TokenReviewStatus {Maybe Bool
Maybe [Text]
Maybe Text
Maybe V1beta1UserInfo
v1beta1TokenReviewStatusUser :: Maybe V1beta1UserInfo
v1beta1TokenReviewStatusError :: Maybe Text
v1beta1TokenReviewStatusAuthenticated :: Maybe Bool
v1beta1TokenReviewStatusAudiences :: Maybe [Text]
v1beta1TokenReviewStatusUser :: V1beta1TokenReviewStatus -> Maybe V1beta1UserInfo
v1beta1TokenReviewStatusError :: V1beta1TokenReviewStatus -> Maybe Text
v1beta1TokenReviewStatusAuthenticated :: V1beta1TokenReviewStatus -> Maybe Bool
v1beta1TokenReviewStatusAudiences :: V1beta1TokenReviewStatus -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"audiences" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1TokenReviewStatusAudiences
      , Text
"authenticated" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta1TokenReviewStatusAuthenticated
      , Text
"error" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1TokenReviewStatusError
      , Text
"user" Text -> Maybe V1beta1UserInfo -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1UserInfo
v1beta1TokenReviewStatusUser
      ]


-- | Construct a value of type 'V1beta1TokenReviewStatus' (by applying it's required fields, if any)
mkV1beta1TokenReviewStatus
  :: V1beta1TokenReviewStatus
mkV1beta1TokenReviewStatus :: V1beta1TokenReviewStatus
mkV1beta1TokenReviewStatus =
  V1beta1TokenReviewStatus :: Maybe [Text]
-> Maybe Bool
-> Maybe Text
-> Maybe V1beta1UserInfo
-> V1beta1TokenReviewStatus
V1beta1TokenReviewStatus
  { v1beta1TokenReviewStatusAudiences :: Maybe [Text]
v1beta1TokenReviewStatusAudiences = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1TokenReviewStatusAuthenticated :: Maybe Bool
v1beta1TokenReviewStatusAuthenticated = Maybe Bool
forall a. Maybe a
Nothing
  , v1beta1TokenReviewStatusError :: Maybe Text
v1beta1TokenReviewStatusError = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1TokenReviewStatusUser :: Maybe V1beta1UserInfo
v1beta1TokenReviewStatusUser = Maybe V1beta1UserInfo
forall a. Maybe a
Nothing
  }

-- ** V1beta1UserInfo
-- | V1beta1UserInfo
-- UserInfo holds the information about the user needed to implement the user.Info interface.
data V1beta1UserInfo = V1beta1UserInfo
  { V1beta1UserInfo -> Maybe (Map String [Text])
v1beta1UserInfoExtra :: !(Maybe (Map.Map String [Text])) -- ^ "extra" - Any additional information provided by the authenticator.
  , V1beta1UserInfo -> Maybe [Text]
v1beta1UserInfoGroups :: !(Maybe [Text]) -- ^ "groups" - The names of groups this user is a part of.
  , V1beta1UserInfo -> Maybe Text
v1beta1UserInfoUid :: !(Maybe Text) -- ^ "uid" - A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.
  , V1beta1UserInfo -> Maybe Text
v1beta1UserInfoUsername :: !(Maybe Text) -- ^ "username" - The name that uniquely identifies this user among all active users.
  } deriving (Int -> V1beta1UserInfo -> ShowS
[V1beta1UserInfo] -> ShowS
V1beta1UserInfo -> String
(Int -> V1beta1UserInfo -> ShowS)
-> (V1beta1UserInfo -> String)
-> ([V1beta1UserInfo] -> ShowS)
-> Show V1beta1UserInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1UserInfo] -> ShowS
$cshowList :: [V1beta1UserInfo] -> ShowS
show :: V1beta1UserInfo -> String
$cshow :: V1beta1UserInfo -> String
showsPrec :: Int -> V1beta1UserInfo -> ShowS
$cshowsPrec :: Int -> V1beta1UserInfo -> ShowS
P.Show, V1beta1UserInfo -> V1beta1UserInfo -> Bool
(V1beta1UserInfo -> V1beta1UserInfo -> Bool)
-> (V1beta1UserInfo -> V1beta1UserInfo -> Bool)
-> Eq V1beta1UserInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1UserInfo -> V1beta1UserInfo -> Bool
$c/= :: V1beta1UserInfo -> V1beta1UserInfo -> Bool
== :: V1beta1UserInfo -> V1beta1UserInfo -> Bool
$c== :: V1beta1UserInfo -> V1beta1UserInfo -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1UserInfo
instance A.FromJSON V1beta1UserInfo where
  parseJSON :: Value -> Parser V1beta1UserInfo
parseJSON = String
-> (Object -> Parser V1beta1UserInfo)
-> Value
-> Parser V1beta1UserInfo
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1UserInfo" ((Object -> Parser V1beta1UserInfo)
 -> Value -> Parser V1beta1UserInfo)
-> (Object -> Parser V1beta1UserInfo)
-> Value
-> Parser V1beta1UserInfo
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe (Map String [Text])
-> Maybe [Text] -> Maybe Text -> Maybe Text -> V1beta1UserInfo
V1beta1UserInfo
      (Maybe (Map String [Text])
 -> Maybe [Text] -> Maybe Text -> Maybe Text -> V1beta1UserInfo)
-> Parser (Maybe (Map String [Text]))
-> Parser
     (Maybe [Text] -> Maybe Text -> Maybe Text -> V1beta1UserInfo)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe (Map String [Text]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"extra")
      Parser
  (Maybe [Text] -> Maybe Text -> Maybe Text -> V1beta1UserInfo)
-> Parser (Maybe [Text])
-> Parser (Maybe Text -> Maybe Text -> V1beta1UserInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"groups")
      Parser (Maybe Text -> Maybe Text -> V1beta1UserInfo)
-> Parser (Maybe Text) -> Parser (Maybe Text -> V1beta1UserInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"uid")
      Parser (Maybe Text -> V1beta1UserInfo)
-> Parser (Maybe Text) -> Parser V1beta1UserInfo
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"username")

-- | ToJSON V1beta1UserInfo
instance A.ToJSON V1beta1UserInfo where
  toJSON :: V1beta1UserInfo -> Value
toJSON V1beta1UserInfo {Maybe [Text]
Maybe Text
Maybe (Map String [Text])
v1beta1UserInfoUsername :: Maybe Text
v1beta1UserInfoUid :: Maybe Text
v1beta1UserInfoGroups :: Maybe [Text]
v1beta1UserInfoExtra :: Maybe (Map String [Text])
v1beta1UserInfoUsername :: V1beta1UserInfo -> Maybe Text
v1beta1UserInfoUid :: V1beta1UserInfo -> Maybe Text
v1beta1UserInfoGroups :: V1beta1UserInfo -> Maybe [Text]
v1beta1UserInfoExtra :: V1beta1UserInfo -> Maybe (Map String [Text])
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"extra" Text -> Maybe (Map String [Text]) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String [Text])
v1beta1UserInfoExtra
      , Text
"groups" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1UserInfoGroups
      , Text
"uid" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1UserInfoUid
      , Text
"username" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1UserInfoUsername
      ]


-- | Construct a value of type 'V1beta1UserInfo' (by applying it's required fields, if any)
mkV1beta1UserInfo
  :: V1beta1UserInfo
mkV1beta1UserInfo :: V1beta1UserInfo
mkV1beta1UserInfo =
  V1beta1UserInfo :: Maybe (Map String [Text])
-> Maybe [Text] -> Maybe Text -> Maybe Text -> V1beta1UserInfo
V1beta1UserInfo
  { v1beta1UserInfoExtra :: Maybe (Map String [Text])
v1beta1UserInfoExtra = Maybe (Map String [Text])
forall a. Maybe a
Nothing
  , v1beta1UserInfoGroups :: Maybe [Text]
v1beta1UserInfoGroups = Maybe [Text]
forall a. Maybe a
Nothing
  , v1beta1UserInfoUid :: Maybe Text
v1beta1UserInfoUid = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1UserInfoUsername :: Maybe Text
v1beta1UserInfoUsername = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1ValidatingWebhook
-- | V1beta1ValidatingWebhook
-- ValidatingWebhook describes an admission webhook and the resources and operations it applies to.
data V1beta1ValidatingWebhook = V1beta1ValidatingWebhook
  { V1beta1ValidatingWebhook -> Maybe [Text]
v1beta1ValidatingWebhookAdmissionReviewVersions :: !(Maybe [Text]) -- ^ "admissionReviewVersions" - AdmissionReviewVersions is an ordered list of preferred &#x60;AdmissionReview&#x60; versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to &#x60;[&#39;v1beta1&#39;]&#x60;.
  , V1beta1ValidatingWebhook
-> AdmissionregistrationV1beta1WebhookClientConfig
v1beta1ValidatingWebhookClientConfig :: !(AdmissionregistrationV1beta1WebhookClientConfig) -- ^ /Required/ "clientConfig"
  , V1beta1ValidatingWebhook -> Maybe Text
v1beta1ValidatingWebhookFailurePolicy :: !(Maybe Text) -- ^ "failurePolicy" - FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.
  , V1beta1ValidatingWebhook -> Maybe Text
v1beta1ValidatingWebhookMatchPolicy :: !(Maybe Text) -- ^ "matchPolicy" - matchPolicy defines how the \&quot;rules\&quot; list is used to match incoming requests. Allowed values are \&quot;Exact\&quot; or \&quot;Equivalent\&quot;.  - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \&quot;rules\&quot; only included &#x60;apiGroups:[\&quot;apps\&quot;], apiVersions:[\&quot;v1\&quot;], resources: [\&quot;deployments\&quot;]&#x60;, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.  - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \&quot;rules\&quot; only included &#x60;apiGroups:[\&quot;apps\&quot;], apiVersions:[\&quot;v1\&quot;], resources: [\&quot;deployments\&quot;]&#x60;, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.  Defaults to \&quot;Exact\&quot;
  , V1beta1ValidatingWebhook -> Text
v1beta1ValidatingWebhookName :: !(Text) -- ^ /Required/ "name" - The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \&quot;imagepolicy\&quot; is the name of the webhook, and kubernetes.io is the name of the organization. Required.
  , V1beta1ValidatingWebhook -> Maybe V1LabelSelector
v1beta1ValidatingWebhookNamespaceSelector :: !(Maybe V1LabelSelector) -- ^ "namespaceSelector"
  , V1beta1ValidatingWebhook -> Maybe V1LabelSelector
v1beta1ValidatingWebhookObjectSelector :: !(Maybe V1LabelSelector) -- ^ "objectSelector"
  , V1beta1ValidatingWebhook -> Maybe [V1beta1RuleWithOperations]
v1beta1ValidatingWebhookRules :: !(Maybe [V1beta1RuleWithOperations]) -- ^ "rules" - Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.
  , V1beta1ValidatingWebhook -> Maybe Text
v1beta1ValidatingWebhookSideEffects :: !(Maybe Text) -- ^ "sideEffects" - SideEffects states whether this webhookk has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects &#x3D;&#x3D; Unknown or Some. Defaults to Unknown.
  , V1beta1ValidatingWebhook -> Maybe Int
v1beta1ValidatingWebhookTimeoutSeconds :: !(Maybe Int) -- ^ "timeoutSeconds" - TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.
  } deriving (Int -> V1beta1ValidatingWebhook -> ShowS
[V1beta1ValidatingWebhook] -> ShowS
V1beta1ValidatingWebhook -> String
(Int -> V1beta1ValidatingWebhook -> ShowS)
-> (V1beta1ValidatingWebhook -> String)
-> ([V1beta1ValidatingWebhook] -> ShowS)
-> Show V1beta1ValidatingWebhook
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ValidatingWebhook] -> ShowS
$cshowList :: [V1beta1ValidatingWebhook] -> ShowS
show :: V1beta1ValidatingWebhook -> String
$cshow :: V1beta1ValidatingWebhook -> String
showsPrec :: Int -> V1beta1ValidatingWebhook -> ShowS
$cshowsPrec :: Int -> V1beta1ValidatingWebhook -> ShowS
P.Show, V1beta1ValidatingWebhook -> V1beta1ValidatingWebhook -> Bool
(V1beta1ValidatingWebhook -> V1beta1ValidatingWebhook -> Bool)
-> (V1beta1ValidatingWebhook -> V1beta1ValidatingWebhook -> Bool)
-> Eq V1beta1ValidatingWebhook
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ValidatingWebhook -> V1beta1ValidatingWebhook -> Bool
$c/= :: V1beta1ValidatingWebhook -> V1beta1ValidatingWebhook -> Bool
== :: V1beta1ValidatingWebhook -> V1beta1ValidatingWebhook -> Bool
$c== :: V1beta1ValidatingWebhook -> V1beta1ValidatingWebhook -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ValidatingWebhook
instance A.FromJSON V1beta1ValidatingWebhook where
  parseJSON :: Value -> Parser V1beta1ValidatingWebhook
parseJSON = String
-> (Object -> Parser V1beta1ValidatingWebhook)
-> Value
-> Parser V1beta1ValidatingWebhook
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ValidatingWebhook" ((Object -> Parser V1beta1ValidatingWebhook)
 -> Value -> Parser V1beta1ValidatingWebhook)
-> (Object -> Parser V1beta1ValidatingWebhook)
-> Value
-> Parser V1beta1ValidatingWebhook
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [Text]
-> AdmissionregistrationV1beta1WebhookClientConfig
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe V1LabelSelector
-> Maybe V1LabelSelector
-> Maybe [V1beta1RuleWithOperations]
-> Maybe Text
-> Maybe Int
-> V1beta1ValidatingWebhook
V1beta1ValidatingWebhook
      (Maybe [Text]
 -> AdmissionregistrationV1beta1WebhookClientConfig
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Maybe V1LabelSelector
 -> Maybe V1LabelSelector
 -> Maybe [V1beta1RuleWithOperations]
 -> Maybe Text
 -> Maybe Int
 -> V1beta1ValidatingWebhook)
-> Parser (Maybe [Text])
-> Parser
     (AdmissionregistrationV1beta1WebhookClientConfig
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe [V1beta1RuleWithOperations]
      -> Maybe Text
      -> Maybe Int
      -> V1beta1ValidatingWebhook)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"admissionReviewVersions")
      Parser
  (AdmissionregistrationV1beta1WebhookClientConfig
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe [V1beta1RuleWithOperations]
   -> Maybe Text
   -> Maybe Int
   -> V1beta1ValidatingWebhook)
-> Parser AdmissionregistrationV1beta1WebhookClientConfig
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe [V1beta1RuleWithOperations]
      -> Maybe Text
      -> Maybe Int
      -> V1beta1ValidatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser AdmissionregistrationV1beta1WebhookClientConfig
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"clientConfig")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe [V1beta1RuleWithOperations]
   -> Maybe Text
   -> Maybe Int
   -> V1beta1ValidatingWebhook)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text
      -> Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe [V1beta1RuleWithOperations]
      -> Maybe Text
      -> Maybe Int
      -> V1beta1ValidatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"failurePolicy")
      Parser
  (Maybe Text
   -> Text
   -> Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe [V1beta1RuleWithOperations]
   -> Maybe Text
   -> Maybe Int
   -> V1beta1ValidatingWebhook)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe [V1beta1RuleWithOperations]
      -> Maybe Text
      -> Maybe Int
      -> V1beta1ValidatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"matchPolicy")
      Parser
  (Text
   -> Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe [V1beta1RuleWithOperations]
   -> Maybe Text
   -> Maybe Int
   -> V1beta1ValidatingWebhook)
-> Parser Text
-> Parser
     (Maybe V1LabelSelector
      -> Maybe V1LabelSelector
      -> Maybe [V1beta1RuleWithOperations]
      -> Maybe Text
      -> Maybe Int
      -> V1beta1ValidatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser
  (Maybe V1LabelSelector
   -> Maybe V1LabelSelector
   -> Maybe [V1beta1RuleWithOperations]
   -> Maybe Text
   -> Maybe Int
   -> V1beta1ValidatingWebhook)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (Maybe V1LabelSelector
      -> Maybe [V1beta1RuleWithOperations]
      -> Maybe Text
      -> Maybe Int
      -> V1beta1ValidatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"namespaceSelector")
      Parser
  (Maybe V1LabelSelector
   -> Maybe [V1beta1RuleWithOperations]
   -> Maybe Text
   -> Maybe Int
   -> V1beta1ValidatingWebhook)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (Maybe [V1beta1RuleWithOperations]
      -> Maybe Text -> Maybe Int -> V1beta1ValidatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"objectSelector")
      Parser
  (Maybe [V1beta1RuleWithOperations]
   -> Maybe Text -> Maybe Int -> V1beta1ValidatingWebhook)
-> Parser (Maybe [V1beta1RuleWithOperations])
-> Parser (Maybe Text -> Maybe Int -> V1beta1ValidatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1RuleWithOperations])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rules")
      Parser (Maybe Text -> Maybe Int -> V1beta1ValidatingWebhook)
-> Parser (Maybe Text)
-> Parser (Maybe Int -> V1beta1ValidatingWebhook)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"sideEffects")
      Parser (Maybe Int -> V1beta1ValidatingWebhook)
-> Parser (Maybe Int) -> Parser V1beta1ValidatingWebhook
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"timeoutSeconds")

-- | ToJSON V1beta1ValidatingWebhook
instance A.ToJSON V1beta1ValidatingWebhook where
  toJSON :: V1beta1ValidatingWebhook -> Value
toJSON V1beta1ValidatingWebhook {Maybe Int
Maybe [Text]
Maybe [V1beta1RuleWithOperations]
Maybe Text
Maybe V1LabelSelector
Text
AdmissionregistrationV1beta1WebhookClientConfig
v1beta1ValidatingWebhookTimeoutSeconds :: Maybe Int
v1beta1ValidatingWebhookSideEffects :: Maybe Text
v1beta1ValidatingWebhookRules :: Maybe [V1beta1RuleWithOperations]
v1beta1ValidatingWebhookObjectSelector :: Maybe V1LabelSelector
v1beta1ValidatingWebhookNamespaceSelector :: Maybe V1LabelSelector
v1beta1ValidatingWebhookName :: Text
v1beta1ValidatingWebhookMatchPolicy :: Maybe Text
v1beta1ValidatingWebhookFailurePolicy :: Maybe Text
v1beta1ValidatingWebhookClientConfig :: AdmissionregistrationV1beta1WebhookClientConfig
v1beta1ValidatingWebhookAdmissionReviewVersions :: Maybe [Text]
v1beta1ValidatingWebhookTimeoutSeconds :: V1beta1ValidatingWebhook -> Maybe Int
v1beta1ValidatingWebhookSideEffects :: V1beta1ValidatingWebhook -> Maybe Text
v1beta1ValidatingWebhookRules :: V1beta1ValidatingWebhook -> Maybe [V1beta1RuleWithOperations]
v1beta1ValidatingWebhookObjectSelector :: V1beta1ValidatingWebhook -> Maybe V1LabelSelector
v1beta1ValidatingWebhookNamespaceSelector :: V1beta1ValidatingWebhook -> Maybe V1LabelSelector
v1beta1ValidatingWebhookName :: V1beta1ValidatingWebhook -> Text
v1beta1ValidatingWebhookMatchPolicy :: V1beta1ValidatingWebhook -> Maybe Text
v1beta1ValidatingWebhookFailurePolicy :: V1beta1ValidatingWebhook -> Maybe Text
v1beta1ValidatingWebhookClientConfig :: V1beta1ValidatingWebhook
-> AdmissionregistrationV1beta1WebhookClientConfig
v1beta1ValidatingWebhookAdmissionReviewVersions :: V1beta1ValidatingWebhook -> Maybe [Text]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"admissionReviewVersions" Text -> Maybe [Text] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [Text]
v1beta1ValidatingWebhookAdmissionReviewVersions
      , Text
"clientConfig" Text
-> AdmissionregistrationV1beta1WebhookClientConfig -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= AdmissionregistrationV1beta1WebhookClientConfig
v1beta1ValidatingWebhookClientConfig
      , Text
"failurePolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ValidatingWebhookFailurePolicy
      , Text
"matchPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ValidatingWebhookMatchPolicy
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1ValidatingWebhookName
      , Text
"namespaceSelector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1beta1ValidatingWebhookNamespaceSelector
      , Text
"objectSelector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v1beta1ValidatingWebhookObjectSelector
      , Text
"rules" Text -> Maybe [V1beta1RuleWithOperations] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1RuleWithOperations]
v1beta1ValidatingWebhookRules
      , Text
"sideEffects" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ValidatingWebhookSideEffects
      , Text
"timeoutSeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1ValidatingWebhookTimeoutSeconds
      ]


-- | Construct a value of type 'V1beta1ValidatingWebhook' (by applying it's required fields, if any)
mkV1beta1ValidatingWebhook
  :: AdmissionregistrationV1beta1WebhookClientConfig -- ^ 'v1beta1ValidatingWebhookClientConfig' 
  -> Text -- ^ 'v1beta1ValidatingWebhookName': The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.
  -> V1beta1ValidatingWebhook
mkV1beta1ValidatingWebhook :: AdmissionregistrationV1beta1WebhookClientConfig
-> Text -> V1beta1ValidatingWebhook
mkV1beta1ValidatingWebhook AdmissionregistrationV1beta1WebhookClientConfig
v1beta1ValidatingWebhookClientConfig Text
v1beta1ValidatingWebhookName =
  V1beta1ValidatingWebhook :: Maybe [Text]
-> AdmissionregistrationV1beta1WebhookClientConfig
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe V1LabelSelector
-> Maybe V1LabelSelector
-> Maybe [V1beta1RuleWithOperations]
-> Maybe Text
-> Maybe Int
-> V1beta1ValidatingWebhook
V1beta1ValidatingWebhook
  { v1beta1ValidatingWebhookAdmissionReviewVersions :: Maybe [Text]
v1beta1ValidatingWebhookAdmissionReviewVersions = Maybe [Text]
forall a. Maybe a
Nothing
  , AdmissionregistrationV1beta1WebhookClientConfig
v1beta1ValidatingWebhookClientConfig :: AdmissionregistrationV1beta1WebhookClientConfig
v1beta1ValidatingWebhookClientConfig :: AdmissionregistrationV1beta1WebhookClientConfig
v1beta1ValidatingWebhookClientConfig
  , v1beta1ValidatingWebhookFailurePolicy :: Maybe Text
v1beta1ValidatingWebhookFailurePolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ValidatingWebhookMatchPolicy :: Maybe Text
v1beta1ValidatingWebhookMatchPolicy = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta1ValidatingWebhookName :: Text
v1beta1ValidatingWebhookName :: Text
v1beta1ValidatingWebhookName
  , v1beta1ValidatingWebhookNamespaceSelector :: Maybe V1LabelSelector
v1beta1ValidatingWebhookNamespaceSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , v1beta1ValidatingWebhookObjectSelector :: Maybe V1LabelSelector
v1beta1ValidatingWebhookObjectSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , v1beta1ValidatingWebhookRules :: Maybe [V1beta1RuleWithOperations]
v1beta1ValidatingWebhookRules = Maybe [V1beta1RuleWithOperations]
forall a. Maybe a
Nothing
  , v1beta1ValidatingWebhookSideEffects :: Maybe Text
v1beta1ValidatingWebhookSideEffects = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ValidatingWebhookTimeoutSeconds :: Maybe Int
v1beta1ValidatingWebhookTimeoutSeconds = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1beta1ValidatingWebhookConfiguration
-- | V1beta1ValidatingWebhookConfiguration
-- ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration instead.
data V1beta1ValidatingWebhookConfiguration = V1beta1ValidatingWebhookConfiguration
  { V1beta1ValidatingWebhookConfiguration -> Maybe Text
v1beta1ValidatingWebhookConfigurationApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1ValidatingWebhookConfiguration -> Maybe Text
v1beta1ValidatingWebhookConfigurationKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1ValidatingWebhookConfiguration -> Maybe V1ObjectMeta
v1beta1ValidatingWebhookConfigurationMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1ValidatingWebhookConfiguration
-> Maybe [V1beta1ValidatingWebhook]
v1beta1ValidatingWebhookConfigurationWebhooks :: !(Maybe [V1beta1ValidatingWebhook]) -- ^ "webhooks" - Webhooks is a list of webhooks and the affected resources and operations.
  } deriving (Int -> V1beta1ValidatingWebhookConfiguration -> ShowS
[V1beta1ValidatingWebhookConfiguration] -> ShowS
V1beta1ValidatingWebhookConfiguration -> String
(Int -> V1beta1ValidatingWebhookConfiguration -> ShowS)
-> (V1beta1ValidatingWebhookConfiguration -> String)
-> ([V1beta1ValidatingWebhookConfiguration] -> ShowS)
-> Show V1beta1ValidatingWebhookConfiguration
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ValidatingWebhookConfiguration] -> ShowS
$cshowList :: [V1beta1ValidatingWebhookConfiguration] -> ShowS
show :: V1beta1ValidatingWebhookConfiguration -> String
$cshow :: V1beta1ValidatingWebhookConfiguration -> String
showsPrec :: Int -> V1beta1ValidatingWebhookConfiguration -> ShowS
$cshowsPrec :: Int -> V1beta1ValidatingWebhookConfiguration -> ShowS
P.Show, V1beta1ValidatingWebhookConfiguration
-> V1beta1ValidatingWebhookConfiguration -> Bool
(V1beta1ValidatingWebhookConfiguration
 -> V1beta1ValidatingWebhookConfiguration -> Bool)
-> (V1beta1ValidatingWebhookConfiguration
    -> V1beta1ValidatingWebhookConfiguration -> Bool)
-> Eq V1beta1ValidatingWebhookConfiguration
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ValidatingWebhookConfiguration
-> V1beta1ValidatingWebhookConfiguration -> Bool
$c/= :: V1beta1ValidatingWebhookConfiguration
-> V1beta1ValidatingWebhookConfiguration -> Bool
== :: V1beta1ValidatingWebhookConfiguration
-> V1beta1ValidatingWebhookConfiguration -> Bool
$c== :: V1beta1ValidatingWebhookConfiguration
-> V1beta1ValidatingWebhookConfiguration -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ValidatingWebhookConfiguration
instance A.FromJSON V1beta1ValidatingWebhookConfiguration where
  parseJSON :: Value -> Parser V1beta1ValidatingWebhookConfiguration
parseJSON = String
-> (Object -> Parser V1beta1ValidatingWebhookConfiguration)
-> Value
-> Parser V1beta1ValidatingWebhookConfiguration
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ValidatingWebhookConfiguration" ((Object -> Parser V1beta1ValidatingWebhookConfiguration)
 -> Value -> Parser V1beta1ValidatingWebhookConfiguration)
-> (Object -> Parser V1beta1ValidatingWebhookConfiguration)
-> Value
-> Parser V1beta1ValidatingWebhookConfiguration
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1beta1ValidatingWebhook]
-> V1beta1ValidatingWebhookConfiguration
V1beta1ValidatingWebhookConfiguration
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe [V1beta1ValidatingWebhook]
 -> V1beta1ValidatingWebhookConfiguration)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe [V1beta1ValidatingWebhook]
      -> V1beta1ValidatingWebhookConfiguration)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe [V1beta1ValidatingWebhook]
   -> V1beta1ValidatingWebhookConfiguration)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe [V1beta1ValidatingWebhook]
      -> V1beta1ValidatingWebhookConfiguration)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe [V1beta1ValidatingWebhook]
   -> V1beta1ValidatingWebhookConfiguration)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe [V1beta1ValidatingWebhook]
      -> V1beta1ValidatingWebhookConfiguration)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe [V1beta1ValidatingWebhook]
   -> V1beta1ValidatingWebhookConfiguration)
-> Parser (Maybe [V1beta1ValidatingWebhook])
-> Parser V1beta1ValidatingWebhookConfiguration
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta1ValidatingWebhook])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"webhooks")

-- | ToJSON V1beta1ValidatingWebhookConfiguration
instance A.ToJSON V1beta1ValidatingWebhookConfiguration where
  toJSON :: V1beta1ValidatingWebhookConfiguration -> Value
toJSON V1beta1ValidatingWebhookConfiguration {Maybe [V1beta1ValidatingWebhook]
Maybe Text
Maybe V1ObjectMeta
v1beta1ValidatingWebhookConfigurationWebhooks :: Maybe [V1beta1ValidatingWebhook]
v1beta1ValidatingWebhookConfigurationMetadata :: Maybe V1ObjectMeta
v1beta1ValidatingWebhookConfigurationKind :: Maybe Text
v1beta1ValidatingWebhookConfigurationApiVersion :: Maybe Text
v1beta1ValidatingWebhookConfigurationWebhooks :: V1beta1ValidatingWebhookConfiguration
-> Maybe [V1beta1ValidatingWebhook]
v1beta1ValidatingWebhookConfigurationMetadata :: V1beta1ValidatingWebhookConfiguration -> Maybe V1ObjectMeta
v1beta1ValidatingWebhookConfigurationKind :: V1beta1ValidatingWebhookConfiguration -> Maybe Text
v1beta1ValidatingWebhookConfigurationApiVersion :: V1beta1ValidatingWebhookConfiguration -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ValidatingWebhookConfigurationApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ValidatingWebhookConfigurationKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1ValidatingWebhookConfigurationMetadata
      , Text
"webhooks" Text -> Maybe [V1beta1ValidatingWebhook] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta1ValidatingWebhook]
v1beta1ValidatingWebhookConfigurationWebhooks
      ]


-- | Construct a value of type 'V1beta1ValidatingWebhookConfiguration' (by applying it's required fields, if any)
mkV1beta1ValidatingWebhookConfiguration
  :: V1beta1ValidatingWebhookConfiguration
mkV1beta1ValidatingWebhookConfiguration :: V1beta1ValidatingWebhookConfiguration
mkV1beta1ValidatingWebhookConfiguration =
  V1beta1ValidatingWebhookConfiguration :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe [V1beta1ValidatingWebhook]
-> V1beta1ValidatingWebhookConfiguration
V1beta1ValidatingWebhookConfiguration
  { v1beta1ValidatingWebhookConfigurationApiVersion :: Maybe Text
v1beta1ValidatingWebhookConfigurationApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ValidatingWebhookConfigurationKind :: Maybe Text
v1beta1ValidatingWebhookConfigurationKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ValidatingWebhookConfigurationMetadata :: Maybe V1ObjectMeta
v1beta1ValidatingWebhookConfigurationMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta1ValidatingWebhookConfigurationWebhooks :: Maybe [V1beta1ValidatingWebhook]
v1beta1ValidatingWebhookConfigurationWebhooks = Maybe [V1beta1ValidatingWebhook]
forall a. Maybe a
Nothing
  }

-- ** V1beta1ValidatingWebhookConfigurationList
-- | V1beta1ValidatingWebhookConfigurationList
-- ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.
data V1beta1ValidatingWebhookConfigurationList = V1beta1ValidatingWebhookConfigurationList
  { V1beta1ValidatingWebhookConfigurationList -> Maybe Text
v1beta1ValidatingWebhookConfigurationListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1ValidatingWebhookConfigurationList
-> [V1beta1ValidatingWebhookConfiguration]
v1beta1ValidatingWebhookConfigurationListItems :: !([V1beta1ValidatingWebhookConfiguration]) -- ^ /Required/ "items" - List of ValidatingWebhookConfiguration.
  , V1beta1ValidatingWebhookConfigurationList -> Maybe Text
v1beta1ValidatingWebhookConfigurationListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1ValidatingWebhookConfigurationList -> Maybe V1ListMeta
v1beta1ValidatingWebhookConfigurationListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1ValidatingWebhookConfigurationList -> ShowS
[V1beta1ValidatingWebhookConfigurationList] -> ShowS
V1beta1ValidatingWebhookConfigurationList -> String
(Int -> V1beta1ValidatingWebhookConfigurationList -> ShowS)
-> (V1beta1ValidatingWebhookConfigurationList -> String)
-> ([V1beta1ValidatingWebhookConfigurationList] -> ShowS)
-> Show V1beta1ValidatingWebhookConfigurationList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1ValidatingWebhookConfigurationList] -> ShowS
$cshowList :: [V1beta1ValidatingWebhookConfigurationList] -> ShowS
show :: V1beta1ValidatingWebhookConfigurationList -> String
$cshow :: V1beta1ValidatingWebhookConfigurationList -> String
showsPrec :: Int -> V1beta1ValidatingWebhookConfigurationList -> ShowS
$cshowsPrec :: Int -> V1beta1ValidatingWebhookConfigurationList -> ShowS
P.Show, V1beta1ValidatingWebhookConfigurationList
-> V1beta1ValidatingWebhookConfigurationList -> Bool
(V1beta1ValidatingWebhookConfigurationList
 -> V1beta1ValidatingWebhookConfigurationList -> Bool)
-> (V1beta1ValidatingWebhookConfigurationList
    -> V1beta1ValidatingWebhookConfigurationList -> Bool)
-> Eq V1beta1ValidatingWebhookConfigurationList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1ValidatingWebhookConfigurationList
-> V1beta1ValidatingWebhookConfigurationList -> Bool
$c/= :: V1beta1ValidatingWebhookConfigurationList
-> V1beta1ValidatingWebhookConfigurationList -> Bool
== :: V1beta1ValidatingWebhookConfigurationList
-> V1beta1ValidatingWebhookConfigurationList -> Bool
$c== :: V1beta1ValidatingWebhookConfigurationList
-> V1beta1ValidatingWebhookConfigurationList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1ValidatingWebhookConfigurationList
instance A.FromJSON V1beta1ValidatingWebhookConfigurationList where
  parseJSON :: Value -> Parser V1beta1ValidatingWebhookConfigurationList
parseJSON = String
-> (Object -> Parser V1beta1ValidatingWebhookConfigurationList)
-> Value
-> Parser V1beta1ValidatingWebhookConfigurationList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1ValidatingWebhookConfigurationList" ((Object -> Parser V1beta1ValidatingWebhookConfigurationList)
 -> Value -> Parser V1beta1ValidatingWebhookConfigurationList)
-> (Object -> Parser V1beta1ValidatingWebhookConfigurationList)
-> Value
-> Parser V1beta1ValidatingWebhookConfigurationList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1ValidatingWebhookConfiguration]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1ValidatingWebhookConfigurationList
V1beta1ValidatingWebhookConfigurationList
      (Maybe Text
 -> [V1beta1ValidatingWebhookConfiguration]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1ValidatingWebhookConfigurationList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1ValidatingWebhookConfiguration]
      -> Maybe Text
      -> Maybe V1ListMeta
      -> V1beta1ValidatingWebhookConfigurationList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1ValidatingWebhookConfiguration]
   -> Maybe Text
   -> Maybe V1ListMeta
   -> V1beta1ValidatingWebhookConfigurationList)
-> Parser [V1beta1ValidatingWebhookConfiguration]
-> Parser
     (Maybe Text
      -> Maybe V1ListMeta -> V1beta1ValidatingWebhookConfigurationList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1ValidatingWebhookConfiguration]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text
   -> Maybe V1ListMeta -> V1beta1ValidatingWebhookConfigurationList)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ListMeta -> V1beta1ValidatingWebhookConfigurationList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ListMeta -> V1beta1ValidatingWebhookConfigurationList)
-> Parser (Maybe V1ListMeta)
-> Parser V1beta1ValidatingWebhookConfigurationList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1ValidatingWebhookConfigurationList
instance A.ToJSON V1beta1ValidatingWebhookConfigurationList where
  toJSON :: V1beta1ValidatingWebhookConfigurationList -> Value
toJSON V1beta1ValidatingWebhookConfigurationList {[V1beta1ValidatingWebhookConfiguration]
Maybe Text
Maybe V1ListMeta
v1beta1ValidatingWebhookConfigurationListMetadata :: Maybe V1ListMeta
v1beta1ValidatingWebhookConfigurationListKind :: Maybe Text
v1beta1ValidatingWebhookConfigurationListItems :: [V1beta1ValidatingWebhookConfiguration]
v1beta1ValidatingWebhookConfigurationListApiVersion :: Maybe Text
v1beta1ValidatingWebhookConfigurationListMetadata :: V1beta1ValidatingWebhookConfigurationList -> Maybe V1ListMeta
v1beta1ValidatingWebhookConfigurationListKind :: V1beta1ValidatingWebhookConfigurationList -> Maybe Text
v1beta1ValidatingWebhookConfigurationListItems :: V1beta1ValidatingWebhookConfigurationList
-> [V1beta1ValidatingWebhookConfiguration]
v1beta1ValidatingWebhookConfigurationListApiVersion :: V1beta1ValidatingWebhookConfigurationList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ValidatingWebhookConfigurationListApiVersion
      , Text
"items" Text -> [V1beta1ValidatingWebhookConfiguration] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1ValidatingWebhookConfiguration]
v1beta1ValidatingWebhookConfigurationListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1ValidatingWebhookConfigurationListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1ValidatingWebhookConfigurationListMetadata
      ]


-- | Construct a value of type 'V1beta1ValidatingWebhookConfigurationList' (by applying it's required fields, if any)
mkV1beta1ValidatingWebhookConfigurationList
  :: [V1beta1ValidatingWebhookConfiguration] -- ^ 'v1beta1ValidatingWebhookConfigurationListItems': List of ValidatingWebhookConfiguration.
  -> V1beta1ValidatingWebhookConfigurationList
mkV1beta1ValidatingWebhookConfigurationList :: [V1beta1ValidatingWebhookConfiguration]
-> V1beta1ValidatingWebhookConfigurationList
mkV1beta1ValidatingWebhookConfigurationList [V1beta1ValidatingWebhookConfiguration]
v1beta1ValidatingWebhookConfigurationListItems =
  V1beta1ValidatingWebhookConfigurationList :: Maybe Text
-> [V1beta1ValidatingWebhookConfiguration]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1ValidatingWebhookConfigurationList
V1beta1ValidatingWebhookConfigurationList
  { v1beta1ValidatingWebhookConfigurationListApiVersion :: Maybe Text
v1beta1ValidatingWebhookConfigurationListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1ValidatingWebhookConfiguration]
v1beta1ValidatingWebhookConfigurationListItems :: [V1beta1ValidatingWebhookConfiguration]
v1beta1ValidatingWebhookConfigurationListItems :: [V1beta1ValidatingWebhookConfiguration]
v1beta1ValidatingWebhookConfigurationListItems
  , v1beta1ValidatingWebhookConfigurationListKind :: Maybe Text
v1beta1ValidatingWebhookConfigurationListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1ValidatingWebhookConfigurationListMetadata :: Maybe V1ListMeta
v1beta1ValidatingWebhookConfigurationListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1VolumeAttachment
-- | V1beta1VolumeAttachment
-- VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.  VolumeAttachment objects are non-namespaced.
data V1beta1VolumeAttachment = V1beta1VolumeAttachment
  { V1beta1VolumeAttachment -> Maybe Text
v1beta1VolumeAttachmentApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1VolumeAttachment -> Maybe Text
v1beta1VolumeAttachmentKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1VolumeAttachment -> Maybe V1ObjectMeta
v1beta1VolumeAttachmentMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta1VolumeAttachment -> V1beta1VolumeAttachmentSpec
v1beta1VolumeAttachmentSpec :: !(V1beta1VolumeAttachmentSpec) -- ^ /Required/ "spec"
  , V1beta1VolumeAttachment -> Maybe V1beta1VolumeAttachmentStatus
v1beta1VolumeAttachmentStatus :: !(Maybe V1beta1VolumeAttachmentStatus) -- ^ "status"
  } deriving (Int -> V1beta1VolumeAttachment -> ShowS
[V1beta1VolumeAttachment] -> ShowS
V1beta1VolumeAttachment -> String
(Int -> V1beta1VolumeAttachment -> ShowS)
-> (V1beta1VolumeAttachment -> String)
-> ([V1beta1VolumeAttachment] -> ShowS)
-> Show V1beta1VolumeAttachment
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1VolumeAttachment] -> ShowS
$cshowList :: [V1beta1VolumeAttachment] -> ShowS
show :: V1beta1VolumeAttachment -> String
$cshow :: V1beta1VolumeAttachment -> String
showsPrec :: Int -> V1beta1VolumeAttachment -> ShowS
$cshowsPrec :: Int -> V1beta1VolumeAttachment -> ShowS
P.Show, V1beta1VolumeAttachment -> V1beta1VolumeAttachment -> Bool
(V1beta1VolumeAttachment -> V1beta1VolumeAttachment -> Bool)
-> (V1beta1VolumeAttachment -> V1beta1VolumeAttachment -> Bool)
-> Eq V1beta1VolumeAttachment
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1VolumeAttachment -> V1beta1VolumeAttachment -> Bool
$c/= :: V1beta1VolumeAttachment -> V1beta1VolumeAttachment -> Bool
== :: V1beta1VolumeAttachment -> V1beta1VolumeAttachment -> Bool
$c== :: V1beta1VolumeAttachment -> V1beta1VolumeAttachment -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1VolumeAttachment
instance A.FromJSON V1beta1VolumeAttachment where
  parseJSON :: Value -> Parser V1beta1VolumeAttachment
parseJSON = String
-> (Object -> Parser V1beta1VolumeAttachment)
-> Value
-> Parser V1beta1VolumeAttachment
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1VolumeAttachment" ((Object -> Parser V1beta1VolumeAttachment)
 -> Value -> Parser V1beta1VolumeAttachment)
-> (Object -> Parser V1beta1VolumeAttachment)
-> Value
-> Parser V1beta1VolumeAttachment
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1VolumeAttachmentSpec
-> Maybe V1beta1VolumeAttachmentStatus
-> V1beta1VolumeAttachment
V1beta1VolumeAttachment
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> V1beta1VolumeAttachmentSpec
 -> Maybe V1beta1VolumeAttachmentStatus
 -> V1beta1VolumeAttachment)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> V1beta1VolumeAttachmentSpec
      -> Maybe V1beta1VolumeAttachmentStatus
      -> V1beta1VolumeAttachment)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> V1beta1VolumeAttachmentSpec
   -> Maybe V1beta1VolumeAttachmentStatus
   -> V1beta1VolumeAttachment)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> V1beta1VolumeAttachmentSpec
      -> Maybe V1beta1VolumeAttachmentStatus
      -> V1beta1VolumeAttachment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> V1beta1VolumeAttachmentSpec
   -> Maybe V1beta1VolumeAttachmentStatus
   -> V1beta1VolumeAttachment)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (V1beta1VolumeAttachmentSpec
      -> Maybe V1beta1VolumeAttachmentStatus -> V1beta1VolumeAttachment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (V1beta1VolumeAttachmentSpec
   -> Maybe V1beta1VolumeAttachmentStatus -> V1beta1VolumeAttachment)
-> Parser V1beta1VolumeAttachmentSpec
-> Parser
     (Maybe V1beta1VolumeAttachmentStatus -> V1beta1VolumeAttachment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1beta1VolumeAttachmentSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"spec")
      Parser
  (Maybe V1beta1VolumeAttachmentStatus -> V1beta1VolumeAttachment)
-> Parser (Maybe V1beta1VolumeAttachmentStatus)
-> Parser V1beta1VolumeAttachment
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1VolumeAttachmentStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta1VolumeAttachment
instance A.ToJSON V1beta1VolumeAttachment where
  toJSON :: V1beta1VolumeAttachment -> Value
toJSON V1beta1VolumeAttachment {Maybe Text
Maybe V1beta1VolumeAttachmentStatus
Maybe V1ObjectMeta
V1beta1VolumeAttachmentSpec
v1beta1VolumeAttachmentStatus :: Maybe V1beta1VolumeAttachmentStatus
v1beta1VolumeAttachmentSpec :: V1beta1VolumeAttachmentSpec
v1beta1VolumeAttachmentMetadata :: Maybe V1ObjectMeta
v1beta1VolumeAttachmentKind :: Maybe Text
v1beta1VolumeAttachmentApiVersion :: Maybe Text
v1beta1VolumeAttachmentStatus :: V1beta1VolumeAttachment -> Maybe V1beta1VolumeAttachmentStatus
v1beta1VolumeAttachmentSpec :: V1beta1VolumeAttachment -> V1beta1VolumeAttachmentSpec
v1beta1VolumeAttachmentMetadata :: V1beta1VolumeAttachment -> Maybe V1ObjectMeta
v1beta1VolumeAttachmentKind :: V1beta1VolumeAttachment -> Maybe Text
v1beta1VolumeAttachmentApiVersion :: V1beta1VolumeAttachment -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1VolumeAttachmentApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1VolumeAttachmentKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta1VolumeAttachmentMetadata
      , Text
"spec" Text -> V1beta1VolumeAttachmentSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1beta1VolumeAttachmentSpec
v1beta1VolumeAttachmentSpec
      , Text
"status" Text -> Maybe V1beta1VolumeAttachmentStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1VolumeAttachmentStatus
v1beta1VolumeAttachmentStatus
      ]


-- | Construct a value of type 'V1beta1VolumeAttachment' (by applying it's required fields, if any)
mkV1beta1VolumeAttachment
  :: V1beta1VolumeAttachmentSpec -- ^ 'v1beta1VolumeAttachmentSpec' 
  -> V1beta1VolumeAttachment
mkV1beta1VolumeAttachment :: V1beta1VolumeAttachmentSpec -> V1beta1VolumeAttachment
mkV1beta1VolumeAttachment V1beta1VolumeAttachmentSpec
v1beta1VolumeAttachmentSpec =
  V1beta1VolumeAttachment :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> V1beta1VolumeAttachmentSpec
-> Maybe V1beta1VolumeAttachmentStatus
-> V1beta1VolumeAttachment
V1beta1VolumeAttachment
  { v1beta1VolumeAttachmentApiVersion :: Maybe Text
v1beta1VolumeAttachmentApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1VolumeAttachmentKind :: Maybe Text
v1beta1VolumeAttachmentKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1VolumeAttachmentMetadata :: Maybe V1ObjectMeta
v1beta1VolumeAttachmentMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , V1beta1VolumeAttachmentSpec
v1beta1VolumeAttachmentSpec :: V1beta1VolumeAttachmentSpec
v1beta1VolumeAttachmentSpec :: V1beta1VolumeAttachmentSpec
v1beta1VolumeAttachmentSpec
  , v1beta1VolumeAttachmentStatus :: Maybe V1beta1VolumeAttachmentStatus
v1beta1VolumeAttachmentStatus = Maybe V1beta1VolumeAttachmentStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta1VolumeAttachmentList
-- | V1beta1VolumeAttachmentList
-- VolumeAttachmentList is a collection of VolumeAttachment objects.
data V1beta1VolumeAttachmentList = V1beta1VolumeAttachmentList
  { V1beta1VolumeAttachmentList -> Maybe Text
v1beta1VolumeAttachmentListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta1VolumeAttachmentList -> [V1beta1VolumeAttachment]
v1beta1VolumeAttachmentListItems :: !([V1beta1VolumeAttachment]) -- ^ /Required/ "items" - Items is the list of VolumeAttachments
  , V1beta1VolumeAttachmentList -> Maybe Text
v1beta1VolumeAttachmentListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta1VolumeAttachmentList -> Maybe V1ListMeta
v1beta1VolumeAttachmentListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta1VolumeAttachmentList -> ShowS
[V1beta1VolumeAttachmentList] -> ShowS
V1beta1VolumeAttachmentList -> String
(Int -> V1beta1VolumeAttachmentList -> ShowS)
-> (V1beta1VolumeAttachmentList -> String)
-> ([V1beta1VolumeAttachmentList] -> ShowS)
-> Show V1beta1VolumeAttachmentList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1VolumeAttachmentList] -> ShowS
$cshowList :: [V1beta1VolumeAttachmentList] -> ShowS
show :: V1beta1VolumeAttachmentList -> String
$cshow :: V1beta1VolumeAttachmentList -> String
showsPrec :: Int -> V1beta1VolumeAttachmentList -> ShowS
$cshowsPrec :: Int -> V1beta1VolumeAttachmentList -> ShowS
P.Show, V1beta1VolumeAttachmentList -> V1beta1VolumeAttachmentList -> Bool
(V1beta1VolumeAttachmentList
 -> V1beta1VolumeAttachmentList -> Bool)
-> (V1beta1VolumeAttachmentList
    -> V1beta1VolumeAttachmentList -> Bool)
-> Eq V1beta1VolumeAttachmentList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1VolumeAttachmentList -> V1beta1VolumeAttachmentList -> Bool
$c/= :: V1beta1VolumeAttachmentList -> V1beta1VolumeAttachmentList -> Bool
== :: V1beta1VolumeAttachmentList -> V1beta1VolumeAttachmentList -> Bool
$c== :: V1beta1VolumeAttachmentList -> V1beta1VolumeAttachmentList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1VolumeAttachmentList
instance A.FromJSON V1beta1VolumeAttachmentList where
  parseJSON :: Value -> Parser V1beta1VolumeAttachmentList
parseJSON = String
-> (Object -> Parser V1beta1VolumeAttachmentList)
-> Value
-> Parser V1beta1VolumeAttachmentList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1VolumeAttachmentList" ((Object -> Parser V1beta1VolumeAttachmentList)
 -> Value -> Parser V1beta1VolumeAttachmentList)
-> (Object -> Parser V1beta1VolumeAttachmentList)
-> Value
-> Parser V1beta1VolumeAttachmentList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta1VolumeAttachment]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1VolumeAttachmentList
V1beta1VolumeAttachmentList
      (Maybe Text
 -> [V1beta1VolumeAttachment]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta1VolumeAttachmentList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta1VolumeAttachment]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta1VolumeAttachmentList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta1VolumeAttachment]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta1VolumeAttachmentList)
-> Parser [V1beta1VolumeAttachment]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1beta1VolumeAttachmentList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta1VolumeAttachment]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> V1beta1VolumeAttachmentList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta1VolumeAttachmentList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta1VolumeAttachmentList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta1VolumeAttachmentList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta1VolumeAttachmentList
instance A.ToJSON V1beta1VolumeAttachmentList where
  toJSON :: V1beta1VolumeAttachmentList -> Value
toJSON V1beta1VolumeAttachmentList {[V1beta1VolumeAttachment]
Maybe Text
Maybe V1ListMeta
v1beta1VolumeAttachmentListMetadata :: Maybe V1ListMeta
v1beta1VolumeAttachmentListKind :: Maybe Text
v1beta1VolumeAttachmentListItems :: [V1beta1VolumeAttachment]
v1beta1VolumeAttachmentListApiVersion :: Maybe Text
v1beta1VolumeAttachmentListMetadata :: V1beta1VolumeAttachmentList -> Maybe V1ListMeta
v1beta1VolumeAttachmentListKind :: V1beta1VolumeAttachmentList -> Maybe Text
v1beta1VolumeAttachmentListItems :: V1beta1VolumeAttachmentList -> [V1beta1VolumeAttachment]
v1beta1VolumeAttachmentListApiVersion :: V1beta1VolumeAttachmentList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1VolumeAttachmentListApiVersion
      , Text
"items" Text -> [V1beta1VolumeAttachment] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta1VolumeAttachment]
v1beta1VolumeAttachmentListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1VolumeAttachmentListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta1VolumeAttachmentListMetadata
      ]


-- | Construct a value of type 'V1beta1VolumeAttachmentList' (by applying it's required fields, if any)
mkV1beta1VolumeAttachmentList
  :: [V1beta1VolumeAttachment] -- ^ 'v1beta1VolumeAttachmentListItems': Items is the list of VolumeAttachments
  -> V1beta1VolumeAttachmentList
mkV1beta1VolumeAttachmentList :: [V1beta1VolumeAttachment] -> V1beta1VolumeAttachmentList
mkV1beta1VolumeAttachmentList [V1beta1VolumeAttachment]
v1beta1VolumeAttachmentListItems =
  V1beta1VolumeAttachmentList :: Maybe Text
-> [V1beta1VolumeAttachment]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta1VolumeAttachmentList
V1beta1VolumeAttachmentList
  { v1beta1VolumeAttachmentListApiVersion :: Maybe Text
v1beta1VolumeAttachmentListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta1VolumeAttachment]
v1beta1VolumeAttachmentListItems :: [V1beta1VolumeAttachment]
v1beta1VolumeAttachmentListItems :: [V1beta1VolumeAttachment]
v1beta1VolumeAttachmentListItems
  , v1beta1VolumeAttachmentListKind :: Maybe Text
v1beta1VolumeAttachmentListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1VolumeAttachmentListMetadata :: Maybe V1ListMeta
v1beta1VolumeAttachmentListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta1VolumeAttachmentSource
-- | V1beta1VolumeAttachmentSource
-- VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.
data V1beta1VolumeAttachmentSource = V1beta1VolumeAttachmentSource
  { V1beta1VolumeAttachmentSource -> Maybe V1PersistentVolumeSpec
v1beta1VolumeAttachmentSourceInlineVolumeSpec :: !(Maybe V1PersistentVolumeSpec) -- ^ "inlineVolumeSpec"
  , V1beta1VolumeAttachmentSource -> Maybe Text
v1beta1VolumeAttachmentSourcePersistentVolumeName :: !(Maybe Text) -- ^ "persistentVolumeName" - Name of the persistent volume to attach.
  } deriving (Int -> V1beta1VolumeAttachmentSource -> ShowS
[V1beta1VolumeAttachmentSource] -> ShowS
V1beta1VolumeAttachmentSource -> String
(Int -> V1beta1VolumeAttachmentSource -> ShowS)
-> (V1beta1VolumeAttachmentSource -> String)
-> ([V1beta1VolumeAttachmentSource] -> ShowS)
-> Show V1beta1VolumeAttachmentSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1VolumeAttachmentSource] -> ShowS
$cshowList :: [V1beta1VolumeAttachmentSource] -> ShowS
show :: V1beta1VolumeAttachmentSource -> String
$cshow :: V1beta1VolumeAttachmentSource -> String
showsPrec :: Int -> V1beta1VolumeAttachmentSource -> ShowS
$cshowsPrec :: Int -> V1beta1VolumeAttachmentSource -> ShowS
P.Show, V1beta1VolumeAttachmentSource
-> V1beta1VolumeAttachmentSource -> Bool
(V1beta1VolumeAttachmentSource
 -> V1beta1VolumeAttachmentSource -> Bool)
-> (V1beta1VolumeAttachmentSource
    -> V1beta1VolumeAttachmentSource -> Bool)
-> Eq V1beta1VolumeAttachmentSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1VolumeAttachmentSource
-> V1beta1VolumeAttachmentSource -> Bool
$c/= :: V1beta1VolumeAttachmentSource
-> V1beta1VolumeAttachmentSource -> Bool
== :: V1beta1VolumeAttachmentSource
-> V1beta1VolumeAttachmentSource -> Bool
$c== :: V1beta1VolumeAttachmentSource
-> V1beta1VolumeAttachmentSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1VolumeAttachmentSource
instance A.FromJSON V1beta1VolumeAttachmentSource where
  parseJSON :: Value -> Parser V1beta1VolumeAttachmentSource
parseJSON = String
-> (Object -> Parser V1beta1VolumeAttachmentSource)
-> Value
-> Parser V1beta1VolumeAttachmentSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1VolumeAttachmentSource" ((Object -> Parser V1beta1VolumeAttachmentSource)
 -> Value -> Parser V1beta1VolumeAttachmentSource)
-> (Object -> Parser V1beta1VolumeAttachmentSource)
-> Value
-> Parser V1beta1VolumeAttachmentSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1PersistentVolumeSpec
-> Maybe Text -> V1beta1VolumeAttachmentSource
V1beta1VolumeAttachmentSource
      (Maybe V1PersistentVolumeSpec
 -> Maybe Text -> V1beta1VolumeAttachmentSource)
-> Parser (Maybe V1PersistentVolumeSpec)
-> Parser (Maybe Text -> V1beta1VolumeAttachmentSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1PersistentVolumeSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"inlineVolumeSpec")
      Parser (Maybe Text -> V1beta1VolumeAttachmentSource)
-> Parser (Maybe Text) -> Parser V1beta1VolumeAttachmentSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"persistentVolumeName")

-- | ToJSON V1beta1VolumeAttachmentSource
instance A.ToJSON V1beta1VolumeAttachmentSource where
  toJSON :: V1beta1VolumeAttachmentSource -> Value
toJSON V1beta1VolumeAttachmentSource {Maybe Text
Maybe V1PersistentVolumeSpec
v1beta1VolumeAttachmentSourcePersistentVolumeName :: Maybe Text
v1beta1VolumeAttachmentSourceInlineVolumeSpec :: Maybe V1PersistentVolumeSpec
v1beta1VolumeAttachmentSourcePersistentVolumeName :: V1beta1VolumeAttachmentSource -> Maybe Text
v1beta1VolumeAttachmentSourceInlineVolumeSpec :: V1beta1VolumeAttachmentSource -> Maybe V1PersistentVolumeSpec
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"inlineVolumeSpec" Text -> Maybe V1PersistentVolumeSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PersistentVolumeSpec
v1beta1VolumeAttachmentSourceInlineVolumeSpec
      , Text
"persistentVolumeName" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1VolumeAttachmentSourcePersistentVolumeName
      ]


-- | Construct a value of type 'V1beta1VolumeAttachmentSource' (by applying it's required fields, if any)
mkV1beta1VolumeAttachmentSource
  :: V1beta1VolumeAttachmentSource
mkV1beta1VolumeAttachmentSource :: V1beta1VolumeAttachmentSource
mkV1beta1VolumeAttachmentSource =
  V1beta1VolumeAttachmentSource :: Maybe V1PersistentVolumeSpec
-> Maybe Text -> V1beta1VolumeAttachmentSource
V1beta1VolumeAttachmentSource
  { v1beta1VolumeAttachmentSourceInlineVolumeSpec :: Maybe V1PersistentVolumeSpec
v1beta1VolumeAttachmentSourceInlineVolumeSpec = Maybe V1PersistentVolumeSpec
forall a. Maybe a
Nothing
  , v1beta1VolumeAttachmentSourcePersistentVolumeName :: Maybe Text
v1beta1VolumeAttachmentSourcePersistentVolumeName = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta1VolumeAttachmentSpec
-- | V1beta1VolumeAttachmentSpec
-- VolumeAttachmentSpec is the specification of a VolumeAttachment request.
data V1beta1VolumeAttachmentSpec = V1beta1VolumeAttachmentSpec
  { V1beta1VolumeAttachmentSpec -> Text
v1beta1VolumeAttachmentSpecAttacher :: !(Text) -- ^ /Required/ "attacher" - Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().
  , V1beta1VolumeAttachmentSpec -> Text
v1beta1VolumeAttachmentSpecNodeName :: !(Text) -- ^ /Required/ "nodeName" - The node that the volume should be attached to.
  , V1beta1VolumeAttachmentSpec -> V1beta1VolumeAttachmentSource
v1beta1VolumeAttachmentSpecSource :: !(V1beta1VolumeAttachmentSource) -- ^ /Required/ "source"
  } deriving (Int -> V1beta1VolumeAttachmentSpec -> ShowS
[V1beta1VolumeAttachmentSpec] -> ShowS
V1beta1VolumeAttachmentSpec -> String
(Int -> V1beta1VolumeAttachmentSpec -> ShowS)
-> (V1beta1VolumeAttachmentSpec -> String)
-> ([V1beta1VolumeAttachmentSpec] -> ShowS)
-> Show V1beta1VolumeAttachmentSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1VolumeAttachmentSpec] -> ShowS
$cshowList :: [V1beta1VolumeAttachmentSpec] -> ShowS
show :: V1beta1VolumeAttachmentSpec -> String
$cshow :: V1beta1VolumeAttachmentSpec -> String
showsPrec :: Int -> V1beta1VolumeAttachmentSpec -> ShowS
$cshowsPrec :: Int -> V1beta1VolumeAttachmentSpec -> ShowS
P.Show, V1beta1VolumeAttachmentSpec -> V1beta1VolumeAttachmentSpec -> Bool
(V1beta1VolumeAttachmentSpec
 -> V1beta1VolumeAttachmentSpec -> Bool)
-> (V1beta1VolumeAttachmentSpec
    -> V1beta1VolumeAttachmentSpec -> Bool)
-> Eq V1beta1VolumeAttachmentSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1VolumeAttachmentSpec -> V1beta1VolumeAttachmentSpec -> Bool
$c/= :: V1beta1VolumeAttachmentSpec -> V1beta1VolumeAttachmentSpec -> Bool
== :: V1beta1VolumeAttachmentSpec -> V1beta1VolumeAttachmentSpec -> Bool
$c== :: V1beta1VolumeAttachmentSpec -> V1beta1VolumeAttachmentSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1VolumeAttachmentSpec
instance A.FromJSON V1beta1VolumeAttachmentSpec where
  parseJSON :: Value -> Parser V1beta1VolumeAttachmentSpec
parseJSON = String
-> (Object -> Parser V1beta1VolumeAttachmentSpec)
-> Value
-> Parser V1beta1VolumeAttachmentSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1VolumeAttachmentSpec" ((Object -> Parser V1beta1VolumeAttachmentSpec)
 -> Value -> Parser V1beta1VolumeAttachmentSpec)
-> (Object -> Parser V1beta1VolumeAttachmentSpec)
-> Value
-> Parser V1beta1VolumeAttachmentSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Text
-> V1beta1VolumeAttachmentSource
-> V1beta1VolumeAttachmentSpec
V1beta1VolumeAttachmentSpec
      (Text
 -> Text
 -> V1beta1VolumeAttachmentSource
 -> V1beta1VolumeAttachmentSpec)
-> Parser Text
-> Parser
     (Text
      -> V1beta1VolumeAttachmentSource -> V1beta1VolumeAttachmentSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"attacher")
      Parser
  (Text
   -> V1beta1VolumeAttachmentSource -> V1beta1VolumeAttachmentSpec)
-> Parser Text
-> Parser
     (V1beta1VolumeAttachmentSource -> V1beta1VolumeAttachmentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"nodeName")
      Parser
  (V1beta1VolumeAttachmentSource -> V1beta1VolumeAttachmentSpec)
-> Parser V1beta1VolumeAttachmentSource
-> Parser V1beta1VolumeAttachmentSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1beta1VolumeAttachmentSource
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"source")

-- | ToJSON V1beta1VolumeAttachmentSpec
instance A.ToJSON V1beta1VolumeAttachmentSpec where
  toJSON :: V1beta1VolumeAttachmentSpec -> Value
toJSON V1beta1VolumeAttachmentSpec {Text
V1beta1VolumeAttachmentSource
v1beta1VolumeAttachmentSpecSource :: V1beta1VolumeAttachmentSource
v1beta1VolumeAttachmentSpecNodeName :: Text
v1beta1VolumeAttachmentSpecAttacher :: Text
v1beta1VolumeAttachmentSpecSource :: V1beta1VolumeAttachmentSpec -> V1beta1VolumeAttachmentSource
v1beta1VolumeAttachmentSpecNodeName :: V1beta1VolumeAttachmentSpec -> Text
v1beta1VolumeAttachmentSpecAttacher :: V1beta1VolumeAttachmentSpec -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"attacher" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1VolumeAttachmentSpecAttacher
      , Text
"nodeName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta1VolumeAttachmentSpecNodeName
      , Text
"source" Text -> V1beta1VolumeAttachmentSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1beta1VolumeAttachmentSource
v1beta1VolumeAttachmentSpecSource
      ]


-- | Construct a value of type 'V1beta1VolumeAttachmentSpec' (by applying it's required fields, if any)
mkV1beta1VolumeAttachmentSpec
  :: Text -- ^ 'v1beta1VolumeAttachmentSpecAttacher': Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().
  -> Text -- ^ 'v1beta1VolumeAttachmentSpecNodeName': The node that the volume should be attached to.
  -> V1beta1VolumeAttachmentSource -- ^ 'v1beta1VolumeAttachmentSpecSource' 
  -> V1beta1VolumeAttachmentSpec
mkV1beta1VolumeAttachmentSpec :: Text
-> Text
-> V1beta1VolumeAttachmentSource
-> V1beta1VolumeAttachmentSpec
mkV1beta1VolumeAttachmentSpec Text
v1beta1VolumeAttachmentSpecAttacher Text
v1beta1VolumeAttachmentSpecNodeName V1beta1VolumeAttachmentSource
v1beta1VolumeAttachmentSpecSource =
  V1beta1VolumeAttachmentSpec :: Text
-> Text
-> V1beta1VolumeAttachmentSource
-> V1beta1VolumeAttachmentSpec
V1beta1VolumeAttachmentSpec
  { Text
v1beta1VolumeAttachmentSpecAttacher :: Text
v1beta1VolumeAttachmentSpecAttacher :: Text
v1beta1VolumeAttachmentSpecAttacher
  , Text
v1beta1VolumeAttachmentSpecNodeName :: Text
v1beta1VolumeAttachmentSpecNodeName :: Text
v1beta1VolumeAttachmentSpecNodeName
  , V1beta1VolumeAttachmentSource
v1beta1VolumeAttachmentSpecSource :: V1beta1VolumeAttachmentSource
v1beta1VolumeAttachmentSpecSource :: V1beta1VolumeAttachmentSource
v1beta1VolumeAttachmentSpecSource
  }

-- ** V1beta1VolumeAttachmentStatus
-- | V1beta1VolumeAttachmentStatus
-- VolumeAttachmentStatus is the status of a VolumeAttachment request.
data V1beta1VolumeAttachmentStatus = V1beta1VolumeAttachmentStatus
  { V1beta1VolumeAttachmentStatus -> Maybe V1beta1VolumeError
v1beta1VolumeAttachmentStatusAttachError :: !(Maybe V1beta1VolumeError) -- ^ "attachError"
  , V1beta1VolumeAttachmentStatus -> Bool
v1beta1VolumeAttachmentStatusAttached :: !(Bool) -- ^ /Required/ "attached" - Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.
  , V1beta1VolumeAttachmentStatus -> Maybe (Map String Text)
v1beta1VolumeAttachmentStatusAttachmentMetadata :: !(Maybe (Map.Map String Text)) -- ^ "attachmentMetadata" - Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.
  , V1beta1VolumeAttachmentStatus -> Maybe V1beta1VolumeError
v1beta1VolumeAttachmentStatusDetachError :: !(Maybe V1beta1VolumeError) -- ^ "detachError"
  } deriving (Int -> V1beta1VolumeAttachmentStatus -> ShowS
[V1beta1VolumeAttachmentStatus] -> ShowS
V1beta1VolumeAttachmentStatus -> String
(Int -> V1beta1VolumeAttachmentStatus -> ShowS)
-> (V1beta1VolumeAttachmentStatus -> String)
-> ([V1beta1VolumeAttachmentStatus] -> ShowS)
-> Show V1beta1VolumeAttachmentStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1VolumeAttachmentStatus] -> ShowS
$cshowList :: [V1beta1VolumeAttachmentStatus] -> ShowS
show :: V1beta1VolumeAttachmentStatus -> String
$cshow :: V1beta1VolumeAttachmentStatus -> String
showsPrec :: Int -> V1beta1VolumeAttachmentStatus -> ShowS
$cshowsPrec :: Int -> V1beta1VolumeAttachmentStatus -> ShowS
P.Show, V1beta1VolumeAttachmentStatus
-> V1beta1VolumeAttachmentStatus -> Bool
(V1beta1VolumeAttachmentStatus
 -> V1beta1VolumeAttachmentStatus -> Bool)
-> (V1beta1VolumeAttachmentStatus
    -> V1beta1VolumeAttachmentStatus -> Bool)
-> Eq V1beta1VolumeAttachmentStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1VolumeAttachmentStatus
-> V1beta1VolumeAttachmentStatus -> Bool
$c/= :: V1beta1VolumeAttachmentStatus
-> V1beta1VolumeAttachmentStatus -> Bool
== :: V1beta1VolumeAttachmentStatus
-> V1beta1VolumeAttachmentStatus -> Bool
$c== :: V1beta1VolumeAttachmentStatus
-> V1beta1VolumeAttachmentStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1VolumeAttachmentStatus
instance A.FromJSON V1beta1VolumeAttachmentStatus where
  parseJSON :: Value -> Parser V1beta1VolumeAttachmentStatus
parseJSON = String
-> (Object -> Parser V1beta1VolumeAttachmentStatus)
-> Value
-> Parser V1beta1VolumeAttachmentStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1VolumeAttachmentStatus" ((Object -> Parser V1beta1VolumeAttachmentStatus)
 -> Value -> Parser V1beta1VolumeAttachmentStatus)
-> (Object -> Parser V1beta1VolumeAttachmentStatus)
-> Value
-> Parser V1beta1VolumeAttachmentStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1beta1VolumeError
-> Bool
-> Maybe (Map String Text)
-> Maybe V1beta1VolumeError
-> V1beta1VolumeAttachmentStatus
V1beta1VolumeAttachmentStatus
      (Maybe V1beta1VolumeError
 -> Bool
 -> Maybe (Map String Text)
 -> Maybe V1beta1VolumeError
 -> V1beta1VolumeAttachmentStatus)
-> Parser (Maybe V1beta1VolumeError)
-> Parser
     (Bool
      -> Maybe (Map String Text)
      -> Maybe V1beta1VolumeError
      -> V1beta1VolumeAttachmentStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1beta1VolumeError)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"attachError")
      Parser
  (Bool
   -> Maybe (Map String Text)
   -> Maybe V1beta1VolumeError
   -> V1beta1VolumeAttachmentStatus)
-> Parser Bool
-> Parser
     (Maybe (Map String Text)
      -> Maybe V1beta1VolumeError -> V1beta1VolumeAttachmentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"attached")
      Parser
  (Maybe (Map String Text)
   -> Maybe V1beta1VolumeError -> V1beta1VolumeAttachmentStatus)
-> Parser (Maybe (Map String Text))
-> Parser
     (Maybe V1beta1VolumeError -> V1beta1VolumeAttachmentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"attachmentMetadata")
      Parser (Maybe V1beta1VolumeError -> V1beta1VolumeAttachmentStatus)
-> Parser (Maybe V1beta1VolumeError)
-> Parser V1beta1VolumeAttachmentStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta1VolumeError)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"detachError")

-- | ToJSON V1beta1VolumeAttachmentStatus
instance A.ToJSON V1beta1VolumeAttachmentStatus where
  toJSON :: V1beta1VolumeAttachmentStatus -> Value
toJSON V1beta1VolumeAttachmentStatus {Bool
Maybe (Map String Text)
Maybe V1beta1VolumeError
v1beta1VolumeAttachmentStatusDetachError :: Maybe V1beta1VolumeError
v1beta1VolumeAttachmentStatusAttachmentMetadata :: Maybe (Map String Text)
v1beta1VolumeAttachmentStatusAttached :: Bool
v1beta1VolumeAttachmentStatusAttachError :: Maybe V1beta1VolumeError
v1beta1VolumeAttachmentStatusDetachError :: V1beta1VolumeAttachmentStatus -> Maybe V1beta1VolumeError
v1beta1VolumeAttachmentStatusAttachmentMetadata :: V1beta1VolumeAttachmentStatus -> Maybe (Map String Text)
v1beta1VolumeAttachmentStatusAttached :: V1beta1VolumeAttachmentStatus -> Bool
v1beta1VolumeAttachmentStatusAttachError :: V1beta1VolumeAttachmentStatus -> Maybe V1beta1VolumeError
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"attachError" Text -> Maybe V1beta1VolumeError -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1VolumeError
v1beta1VolumeAttachmentStatusAttachError
      , Text
"attached" Text -> Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Bool
v1beta1VolumeAttachmentStatusAttached
      , Text
"attachmentMetadata" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1beta1VolumeAttachmentStatusAttachmentMetadata
      , Text
"detachError" Text -> Maybe V1beta1VolumeError -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta1VolumeError
v1beta1VolumeAttachmentStatusDetachError
      ]


-- | Construct a value of type 'V1beta1VolumeAttachmentStatus' (by applying it's required fields, if any)
mkV1beta1VolumeAttachmentStatus
  :: Bool -- ^ 'v1beta1VolumeAttachmentStatusAttached': Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.
  -> V1beta1VolumeAttachmentStatus
mkV1beta1VolumeAttachmentStatus :: Bool -> V1beta1VolumeAttachmentStatus
mkV1beta1VolumeAttachmentStatus Bool
v1beta1VolumeAttachmentStatusAttached =
  V1beta1VolumeAttachmentStatus :: Maybe V1beta1VolumeError
-> Bool
-> Maybe (Map String Text)
-> Maybe V1beta1VolumeError
-> V1beta1VolumeAttachmentStatus
V1beta1VolumeAttachmentStatus
  { v1beta1VolumeAttachmentStatusAttachError :: Maybe V1beta1VolumeError
v1beta1VolumeAttachmentStatusAttachError = Maybe V1beta1VolumeError
forall a. Maybe a
Nothing
  , Bool
v1beta1VolumeAttachmentStatusAttached :: Bool
v1beta1VolumeAttachmentStatusAttached :: Bool
v1beta1VolumeAttachmentStatusAttached
  , v1beta1VolumeAttachmentStatusAttachmentMetadata :: Maybe (Map String Text)
v1beta1VolumeAttachmentStatusAttachmentMetadata = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , v1beta1VolumeAttachmentStatusDetachError :: Maybe V1beta1VolumeError
v1beta1VolumeAttachmentStatusDetachError = Maybe V1beta1VolumeError
forall a. Maybe a
Nothing
  }

-- ** V1beta1VolumeError
-- | V1beta1VolumeError
-- VolumeError captures an error encountered during a volume operation.
data V1beta1VolumeError = V1beta1VolumeError
  { V1beta1VolumeError -> Maybe Text
v1beta1VolumeErrorMessage :: !(Maybe Text) -- ^ "message" - String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.
  , V1beta1VolumeError -> Maybe DateTime
v1beta1VolumeErrorTime :: !(Maybe DateTime) -- ^ "time" - Time the error was encountered.
  } deriving (Int -> V1beta1VolumeError -> ShowS
[V1beta1VolumeError] -> ShowS
V1beta1VolumeError -> String
(Int -> V1beta1VolumeError -> ShowS)
-> (V1beta1VolumeError -> String)
-> ([V1beta1VolumeError] -> ShowS)
-> Show V1beta1VolumeError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1VolumeError] -> ShowS
$cshowList :: [V1beta1VolumeError] -> ShowS
show :: V1beta1VolumeError -> String
$cshow :: V1beta1VolumeError -> String
showsPrec :: Int -> V1beta1VolumeError -> ShowS
$cshowsPrec :: Int -> V1beta1VolumeError -> ShowS
P.Show, V1beta1VolumeError -> V1beta1VolumeError -> Bool
(V1beta1VolumeError -> V1beta1VolumeError -> Bool)
-> (V1beta1VolumeError -> V1beta1VolumeError -> Bool)
-> Eq V1beta1VolumeError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1VolumeError -> V1beta1VolumeError -> Bool
$c/= :: V1beta1VolumeError -> V1beta1VolumeError -> Bool
== :: V1beta1VolumeError -> V1beta1VolumeError -> Bool
$c== :: V1beta1VolumeError -> V1beta1VolumeError -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1VolumeError
instance A.FromJSON V1beta1VolumeError where
  parseJSON :: Value -> Parser V1beta1VolumeError
parseJSON = String
-> (Object -> Parser V1beta1VolumeError)
-> Value
-> Parser V1beta1VolumeError
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1VolumeError" ((Object -> Parser V1beta1VolumeError)
 -> Value -> Parser V1beta1VolumeError)
-> (Object -> Parser V1beta1VolumeError)
-> Value
-> Parser V1beta1VolumeError
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Maybe DateTime -> V1beta1VolumeError
V1beta1VolumeError
      (Maybe Text -> Maybe DateTime -> V1beta1VolumeError)
-> Parser (Maybe Text)
-> Parser (Maybe DateTime -> V1beta1VolumeError)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe DateTime -> V1beta1VolumeError)
-> Parser (Maybe DateTime) -> Parser V1beta1VolumeError
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"time")

-- | ToJSON V1beta1VolumeError
instance A.ToJSON V1beta1VolumeError where
  toJSON :: V1beta1VolumeError -> Value
toJSON V1beta1VolumeError {Maybe Text
Maybe DateTime
v1beta1VolumeErrorTime :: Maybe DateTime
v1beta1VolumeErrorMessage :: Maybe Text
v1beta1VolumeErrorTime :: V1beta1VolumeError -> Maybe DateTime
v1beta1VolumeErrorMessage :: V1beta1VolumeError -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta1VolumeErrorMessage
      , Text
"time" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta1VolumeErrorTime
      ]


-- | Construct a value of type 'V1beta1VolumeError' (by applying it's required fields, if any)
mkV1beta1VolumeError
  :: V1beta1VolumeError
mkV1beta1VolumeError :: V1beta1VolumeError
mkV1beta1VolumeError =
  V1beta1VolumeError :: Maybe Text -> Maybe DateTime -> V1beta1VolumeError
V1beta1VolumeError
  { v1beta1VolumeErrorMessage :: Maybe Text
v1beta1VolumeErrorMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1beta1VolumeErrorTime :: Maybe DateTime
v1beta1VolumeErrorTime = Maybe DateTime
forall a. Maybe a
Nothing
  }

-- ** V1beta1VolumeNodeResources
-- | V1beta1VolumeNodeResources
-- VolumeNodeResources is a set of resource limits for scheduling of volumes.
data V1beta1VolumeNodeResources = V1beta1VolumeNodeResources
  { V1beta1VolumeNodeResources -> Maybe Int
v1beta1VolumeNodeResourcesCount :: !(Maybe Int) -- ^ "count" - Maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is nil, then the supported number of volumes on this node is unbounded.
  } deriving (Int -> V1beta1VolumeNodeResources -> ShowS
[V1beta1VolumeNodeResources] -> ShowS
V1beta1VolumeNodeResources -> String
(Int -> V1beta1VolumeNodeResources -> ShowS)
-> (V1beta1VolumeNodeResources -> String)
-> ([V1beta1VolumeNodeResources] -> ShowS)
-> Show V1beta1VolumeNodeResources
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta1VolumeNodeResources] -> ShowS
$cshowList :: [V1beta1VolumeNodeResources] -> ShowS
show :: V1beta1VolumeNodeResources -> String
$cshow :: V1beta1VolumeNodeResources -> String
showsPrec :: Int -> V1beta1VolumeNodeResources -> ShowS
$cshowsPrec :: Int -> V1beta1VolumeNodeResources -> ShowS
P.Show, V1beta1VolumeNodeResources -> V1beta1VolumeNodeResources -> Bool
(V1beta1VolumeNodeResources -> V1beta1VolumeNodeResources -> Bool)
-> (V1beta1VolumeNodeResources
    -> V1beta1VolumeNodeResources -> Bool)
-> Eq V1beta1VolumeNodeResources
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta1VolumeNodeResources -> V1beta1VolumeNodeResources -> Bool
$c/= :: V1beta1VolumeNodeResources -> V1beta1VolumeNodeResources -> Bool
== :: V1beta1VolumeNodeResources -> V1beta1VolumeNodeResources -> Bool
$c== :: V1beta1VolumeNodeResources -> V1beta1VolumeNodeResources -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta1VolumeNodeResources
instance A.FromJSON V1beta1VolumeNodeResources where
  parseJSON :: Value -> Parser V1beta1VolumeNodeResources
parseJSON = String
-> (Object -> Parser V1beta1VolumeNodeResources)
-> Value
-> Parser V1beta1VolumeNodeResources
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta1VolumeNodeResources" ((Object -> Parser V1beta1VolumeNodeResources)
 -> Value -> Parser V1beta1VolumeNodeResources)
-> (Object -> Parser V1beta1VolumeNodeResources)
-> Value
-> Parser V1beta1VolumeNodeResources
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int -> V1beta1VolumeNodeResources
V1beta1VolumeNodeResources
      (Maybe Int -> V1beta1VolumeNodeResources)
-> Parser (Maybe Int) -> Parser V1beta1VolumeNodeResources
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"count")

-- | ToJSON V1beta1VolumeNodeResources
instance A.ToJSON V1beta1VolumeNodeResources where
  toJSON :: V1beta1VolumeNodeResources -> Value
toJSON V1beta1VolumeNodeResources {Maybe Int
v1beta1VolumeNodeResourcesCount :: Maybe Int
v1beta1VolumeNodeResourcesCount :: V1beta1VolumeNodeResources -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"count" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta1VolumeNodeResourcesCount
      ]


-- | Construct a value of type 'V1beta1VolumeNodeResources' (by applying it's required fields, if any)
mkV1beta1VolumeNodeResources
  :: V1beta1VolumeNodeResources
mkV1beta1VolumeNodeResources :: V1beta1VolumeNodeResources
mkV1beta1VolumeNodeResources =
  V1beta1VolumeNodeResources :: Maybe Int -> V1beta1VolumeNodeResources
V1beta1VolumeNodeResources
  { v1beta1VolumeNodeResourcesCount :: Maybe Int
v1beta1VolumeNodeResourcesCount = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1beta2ControllerRevision
-- | V1beta2ControllerRevision
-- DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.
data V1beta2ControllerRevision = V1beta2ControllerRevision
  { V1beta2ControllerRevision -> Maybe Text
v1beta2ControllerRevisionApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta2ControllerRevision -> Maybe Value
v1beta2ControllerRevisionData :: !(Maybe A.Value) -- ^ "data" - Data is the serialized representation of the state.
  , V1beta2ControllerRevision -> Maybe Text
v1beta2ControllerRevisionKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta2ControllerRevision -> Maybe V1ObjectMeta
v1beta2ControllerRevisionMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta2ControllerRevision -> Integer
v1beta2ControllerRevisionRevision :: !(Integer) -- ^ /Required/ "revision" - Revision indicates the revision of the state represented by Data.
  } deriving (Int -> V1beta2ControllerRevision -> ShowS
[V1beta2ControllerRevision] -> ShowS
V1beta2ControllerRevision -> String
(Int -> V1beta2ControllerRevision -> ShowS)
-> (V1beta2ControllerRevision -> String)
-> ([V1beta2ControllerRevision] -> ShowS)
-> Show V1beta2ControllerRevision
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2ControllerRevision] -> ShowS
$cshowList :: [V1beta2ControllerRevision] -> ShowS
show :: V1beta2ControllerRevision -> String
$cshow :: V1beta2ControllerRevision -> String
showsPrec :: Int -> V1beta2ControllerRevision -> ShowS
$cshowsPrec :: Int -> V1beta2ControllerRevision -> ShowS
P.Show, V1beta2ControllerRevision -> V1beta2ControllerRevision -> Bool
(V1beta2ControllerRevision -> V1beta2ControllerRevision -> Bool)
-> (V1beta2ControllerRevision -> V1beta2ControllerRevision -> Bool)
-> Eq V1beta2ControllerRevision
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2ControllerRevision -> V1beta2ControllerRevision -> Bool
$c/= :: V1beta2ControllerRevision -> V1beta2ControllerRevision -> Bool
== :: V1beta2ControllerRevision -> V1beta2ControllerRevision -> Bool
$c== :: V1beta2ControllerRevision -> V1beta2ControllerRevision -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2ControllerRevision
instance A.FromJSON V1beta2ControllerRevision where
  parseJSON :: Value -> Parser V1beta2ControllerRevision
parseJSON = String
-> (Object -> Parser V1beta2ControllerRevision)
-> Value
-> Parser V1beta2ControllerRevision
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2ControllerRevision" ((Object -> Parser V1beta2ControllerRevision)
 -> Value -> Parser V1beta2ControllerRevision)
-> (Object -> Parser V1beta2ControllerRevision)
-> Value
-> Parser V1beta2ControllerRevision
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Value
-> Maybe Text
-> Maybe V1ObjectMeta
-> Integer
-> V1beta2ControllerRevision
V1beta2ControllerRevision
      (Maybe Text
 -> Maybe Value
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Integer
 -> V1beta2ControllerRevision)
-> Parser (Maybe Text)
-> Parser
     (Maybe Value
      -> Maybe Text
      -> Maybe V1ObjectMeta
      -> Integer
      -> V1beta2ControllerRevision)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Value
   -> Maybe Text
   -> Maybe V1ObjectMeta
   -> Integer
   -> V1beta2ControllerRevision)
-> Parser (Maybe Value)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta -> Integer -> V1beta2ControllerRevision)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"data")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta -> Integer -> V1beta2ControllerRevision)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta -> Integer -> V1beta2ControllerRevision)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ObjectMeta -> Integer -> V1beta2ControllerRevision)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Integer -> V1beta2ControllerRevision)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Integer -> V1beta2ControllerRevision)
-> Parser Integer -> Parser V1beta2ControllerRevision
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Integer
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"revision")

-- | ToJSON V1beta2ControllerRevision
instance A.ToJSON V1beta2ControllerRevision where
  toJSON :: V1beta2ControllerRevision -> Value
toJSON V1beta2ControllerRevision {Integer
Maybe Text
Maybe Value
Maybe V1ObjectMeta
v1beta2ControllerRevisionRevision :: Integer
v1beta2ControllerRevisionMetadata :: Maybe V1ObjectMeta
v1beta2ControllerRevisionKind :: Maybe Text
v1beta2ControllerRevisionData :: Maybe Value
v1beta2ControllerRevisionApiVersion :: Maybe Text
v1beta2ControllerRevisionRevision :: V1beta2ControllerRevision -> Integer
v1beta2ControllerRevisionMetadata :: V1beta2ControllerRevision -> Maybe V1ObjectMeta
v1beta2ControllerRevisionKind :: V1beta2ControllerRevision -> Maybe Text
v1beta2ControllerRevisionData :: V1beta2ControllerRevision -> Maybe Value
v1beta2ControllerRevisionApiVersion :: V1beta2ControllerRevision -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2ControllerRevisionApiVersion
      , Text
"data" Text -> Maybe Value -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Value
v1beta2ControllerRevisionData
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2ControllerRevisionKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta2ControllerRevisionMetadata
      , Text
"revision" Text -> Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Integer
v1beta2ControllerRevisionRevision
      ]


-- | Construct a value of type 'V1beta2ControllerRevision' (by applying it's required fields, if any)
mkV1beta2ControllerRevision
  :: Integer -- ^ 'v1beta2ControllerRevisionRevision': Revision indicates the revision of the state represented by Data.
  -> V1beta2ControllerRevision
mkV1beta2ControllerRevision :: Integer -> V1beta2ControllerRevision
mkV1beta2ControllerRevision Integer
v1beta2ControllerRevisionRevision =
  V1beta2ControllerRevision :: Maybe Text
-> Maybe Value
-> Maybe Text
-> Maybe V1ObjectMeta
-> Integer
-> V1beta2ControllerRevision
V1beta2ControllerRevision
  { v1beta2ControllerRevisionApiVersion :: Maybe Text
v1beta2ControllerRevisionApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2ControllerRevisionData :: Maybe Value
v1beta2ControllerRevisionData = Maybe Value
forall a. Maybe a
Nothing
  , v1beta2ControllerRevisionKind :: Maybe Text
v1beta2ControllerRevisionKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2ControllerRevisionMetadata :: Maybe V1ObjectMeta
v1beta2ControllerRevisionMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , Integer
v1beta2ControllerRevisionRevision :: Integer
v1beta2ControllerRevisionRevision :: Integer
v1beta2ControllerRevisionRevision
  }

-- ** V1beta2ControllerRevisionList
-- | V1beta2ControllerRevisionList
-- ControllerRevisionList is a resource containing a list of ControllerRevision objects.
data V1beta2ControllerRevisionList = V1beta2ControllerRevisionList
  { V1beta2ControllerRevisionList -> Maybe Text
v1beta2ControllerRevisionListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta2ControllerRevisionList -> [V1beta2ControllerRevision]
v1beta2ControllerRevisionListItems :: !([V1beta2ControllerRevision]) -- ^ /Required/ "items" - Items is the list of ControllerRevisions
  , V1beta2ControllerRevisionList -> Maybe Text
v1beta2ControllerRevisionListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta2ControllerRevisionList -> Maybe V1ListMeta
v1beta2ControllerRevisionListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta2ControllerRevisionList -> ShowS
[V1beta2ControllerRevisionList] -> ShowS
V1beta2ControllerRevisionList -> String
(Int -> V1beta2ControllerRevisionList -> ShowS)
-> (V1beta2ControllerRevisionList -> String)
-> ([V1beta2ControllerRevisionList] -> ShowS)
-> Show V1beta2ControllerRevisionList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2ControllerRevisionList] -> ShowS
$cshowList :: [V1beta2ControllerRevisionList] -> ShowS
show :: V1beta2ControllerRevisionList -> String
$cshow :: V1beta2ControllerRevisionList -> String
showsPrec :: Int -> V1beta2ControllerRevisionList -> ShowS
$cshowsPrec :: Int -> V1beta2ControllerRevisionList -> ShowS
P.Show, V1beta2ControllerRevisionList
-> V1beta2ControllerRevisionList -> Bool
(V1beta2ControllerRevisionList
 -> V1beta2ControllerRevisionList -> Bool)
-> (V1beta2ControllerRevisionList
    -> V1beta2ControllerRevisionList -> Bool)
-> Eq V1beta2ControllerRevisionList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2ControllerRevisionList
-> V1beta2ControllerRevisionList -> Bool
$c/= :: V1beta2ControllerRevisionList
-> V1beta2ControllerRevisionList -> Bool
== :: V1beta2ControllerRevisionList
-> V1beta2ControllerRevisionList -> Bool
$c== :: V1beta2ControllerRevisionList
-> V1beta2ControllerRevisionList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2ControllerRevisionList
instance A.FromJSON V1beta2ControllerRevisionList where
  parseJSON :: Value -> Parser V1beta2ControllerRevisionList
parseJSON = String
-> (Object -> Parser V1beta2ControllerRevisionList)
-> Value
-> Parser V1beta2ControllerRevisionList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2ControllerRevisionList" ((Object -> Parser V1beta2ControllerRevisionList)
 -> Value -> Parser V1beta2ControllerRevisionList)
-> (Object -> Parser V1beta2ControllerRevisionList)
-> Value
-> Parser V1beta2ControllerRevisionList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta2ControllerRevision]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta2ControllerRevisionList
V1beta2ControllerRevisionList
      (Maybe Text
 -> [V1beta2ControllerRevision]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta2ControllerRevisionList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta2ControllerRevision]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta2ControllerRevisionList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta2ControllerRevision]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta2ControllerRevisionList)
-> Parser [V1beta2ControllerRevision]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1beta2ControllerRevisionList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta2ControllerRevision]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text -> Maybe V1ListMeta -> V1beta2ControllerRevisionList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta2ControllerRevisionList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta2ControllerRevisionList)
-> Parser (Maybe V1ListMeta)
-> Parser V1beta2ControllerRevisionList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta2ControllerRevisionList
instance A.ToJSON V1beta2ControllerRevisionList where
  toJSON :: V1beta2ControllerRevisionList -> Value
toJSON V1beta2ControllerRevisionList {[V1beta2ControllerRevision]
Maybe Text
Maybe V1ListMeta
v1beta2ControllerRevisionListMetadata :: Maybe V1ListMeta
v1beta2ControllerRevisionListKind :: Maybe Text
v1beta2ControllerRevisionListItems :: [V1beta2ControllerRevision]
v1beta2ControllerRevisionListApiVersion :: Maybe Text
v1beta2ControllerRevisionListMetadata :: V1beta2ControllerRevisionList -> Maybe V1ListMeta
v1beta2ControllerRevisionListKind :: V1beta2ControllerRevisionList -> Maybe Text
v1beta2ControllerRevisionListItems :: V1beta2ControllerRevisionList -> [V1beta2ControllerRevision]
v1beta2ControllerRevisionListApiVersion :: V1beta2ControllerRevisionList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2ControllerRevisionListApiVersion
      , Text
"items" Text -> [V1beta2ControllerRevision] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta2ControllerRevision]
v1beta2ControllerRevisionListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2ControllerRevisionListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta2ControllerRevisionListMetadata
      ]


-- | Construct a value of type 'V1beta2ControllerRevisionList' (by applying it's required fields, if any)
mkV1beta2ControllerRevisionList
  :: [V1beta2ControllerRevision] -- ^ 'v1beta2ControllerRevisionListItems': Items is the list of ControllerRevisions
  -> V1beta2ControllerRevisionList
mkV1beta2ControllerRevisionList :: [V1beta2ControllerRevision] -> V1beta2ControllerRevisionList
mkV1beta2ControllerRevisionList [V1beta2ControllerRevision]
v1beta2ControllerRevisionListItems =
  V1beta2ControllerRevisionList :: Maybe Text
-> [V1beta2ControllerRevision]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta2ControllerRevisionList
V1beta2ControllerRevisionList
  { v1beta2ControllerRevisionListApiVersion :: Maybe Text
v1beta2ControllerRevisionListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta2ControllerRevision]
v1beta2ControllerRevisionListItems :: [V1beta2ControllerRevision]
v1beta2ControllerRevisionListItems :: [V1beta2ControllerRevision]
v1beta2ControllerRevisionListItems
  , v1beta2ControllerRevisionListKind :: Maybe Text
v1beta2ControllerRevisionListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2ControllerRevisionListMetadata :: Maybe V1ListMeta
v1beta2ControllerRevisionListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta2DaemonSet
-- | V1beta2DaemonSet
-- DEPRECATED - This group version of DaemonSet is deprecated by apps/v1/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set.
data V1beta2DaemonSet = V1beta2DaemonSet
  { V1beta2DaemonSet -> Maybe Text
v1beta2DaemonSetApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta2DaemonSet -> Maybe Text
v1beta2DaemonSetKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta2DaemonSet -> Maybe V1ObjectMeta
v1beta2DaemonSetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta2DaemonSet -> Maybe V1beta2DaemonSetSpec
v1beta2DaemonSetSpec :: !(Maybe V1beta2DaemonSetSpec) -- ^ "spec"
  , V1beta2DaemonSet -> Maybe V1beta2DaemonSetStatus
v1beta2DaemonSetStatus :: !(Maybe V1beta2DaemonSetStatus) -- ^ "status"
  } deriving (Int -> V1beta2DaemonSet -> ShowS
[V1beta2DaemonSet] -> ShowS
V1beta2DaemonSet -> String
(Int -> V1beta2DaemonSet -> ShowS)
-> (V1beta2DaemonSet -> String)
-> ([V1beta2DaemonSet] -> ShowS)
-> Show V1beta2DaemonSet
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2DaemonSet] -> ShowS
$cshowList :: [V1beta2DaemonSet] -> ShowS
show :: V1beta2DaemonSet -> String
$cshow :: V1beta2DaemonSet -> String
showsPrec :: Int -> V1beta2DaemonSet -> ShowS
$cshowsPrec :: Int -> V1beta2DaemonSet -> ShowS
P.Show, V1beta2DaemonSet -> V1beta2DaemonSet -> Bool
(V1beta2DaemonSet -> V1beta2DaemonSet -> Bool)
-> (V1beta2DaemonSet -> V1beta2DaemonSet -> Bool)
-> Eq V1beta2DaemonSet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2DaemonSet -> V1beta2DaemonSet -> Bool
$c/= :: V1beta2DaemonSet -> V1beta2DaemonSet -> Bool
== :: V1beta2DaemonSet -> V1beta2DaemonSet -> Bool
$c== :: V1beta2DaemonSet -> V1beta2DaemonSet -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2DaemonSet
instance A.FromJSON V1beta2DaemonSet where
  parseJSON :: Value -> Parser V1beta2DaemonSet
parseJSON = String
-> (Object -> Parser V1beta2DaemonSet)
-> Value
-> Parser V1beta2DaemonSet
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2DaemonSet" ((Object -> Parser V1beta2DaemonSet)
 -> Value -> Parser V1beta2DaemonSet)
-> (Object -> Parser V1beta2DaemonSet)
-> Value
-> Parser V1beta2DaemonSet
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta2DaemonSetSpec
-> Maybe V1beta2DaemonSetStatus
-> V1beta2DaemonSet
V1beta2DaemonSet
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1beta2DaemonSetSpec
 -> Maybe V1beta2DaemonSetStatus
 -> V1beta2DaemonSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1beta2DaemonSetSpec
      -> Maybe V1beta2DaemonSetStatus
      -> V1beta2DaemonSet)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1beta2DaemonSetSpec
   -> Maybe V1beta2DaemonSetStatus
   -> V1beta2DaemonSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1beta2DaemonSetSpec
      -> Maybe V1beta2DaemonSetStatus
      -> V1beta2DaemonSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1beta2DaemonSetSpec
   -> Maybe V1beta2DaemonSetStatus
   -> V1beta2DaemonSet)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1beta2DaemonSetSpec
      -> Maybe V1beta2DaemonSetStatus -> V1beta2DaemonSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1beta2DaemonSetSpec
   -> Maybe V1beta2DaemonSetStatus -> V1beta2DaemonSet)
-> Parser (Maybe V1beta2DaemonSetSpec)
-> Parser (Maybe V1beta2DaemonSetStatus -> V1beta2DaemonSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta2DaemonSetSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1beta2DaemonSetStatus -> V1beta2DaemonSet)
-> Parser (Maybe V1beta2DaemonSetStatus) -> Parser V1beta2DaemonSet
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta2DaemonSetStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta2DaemonSet
instance A.ToJSON V1beta2DaemonSet where
  toJSON :: V1beta2DaemonSet -> Value
toJSON V1beta2DaemonSet {Maybe Text
Maybe V1beta2DaemonSetStatus
Maybe V1beta2DaemonSetSpec
Maybe V1ObjectMeta
v1beta2DaemonSetStatus :: Maybe V1beta2DaemonSetStatus
v1beta2DaemonSetSpec :: Maybe V1beta2DaemonSetSpec
v1beta2DaemonSetMetadata :: Maybe V1ObjectMeta
v1beta2DaemonSetKind :: Maybe Text
v1beta2DaemonSetApiVersion :: Maybe Text
v1beta2DaemonSetStatus :: V1beta2DaemonSet -> Maybe V1beta2DaemonSetStatus
v1beta2DaemonSetSpec :: V1beta2DaemonSet -> Maybe V1beta2DaemonSetSpec
v1beta2DaemonSetMetadata :: V1beta2DaemonSet -> Maybe V1ObjectMeta
v1beta2DaemonSetKind :: V1beta2DaemonSet -> Maybe Text
v1beta2DaemonSetApiVersion :: V1beta2DaemonSet -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2DaemonSetApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2DaemonSetKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta2DaemonSetMetadata
      , Text
"spec" Text -> Maybe V1beta2DaemonSetSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta2DaemonSetSpec
v1beta2DaemonSetSpec
      , Text
"status" Text -> Maybe V1beta2DaemonSetStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta2DaemonSetStatus
v1beta2DaemonSetStatus
      ]


-- | Construct a value of type 'V1beta2DaemonSet' (by applying it's required fields, if any)
mkV1beta2DaemonSet
  :: V1beta2DaemonSet
mkV1beta2DaemonSet :: V1beta2DaemonSet
mkV1beta2DaemonSet =
  V1beta2DaemonSet :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta2DaemonSetSpec
-> Maybe V1beta2DaemonSetStatus
-> V1beta2DaemonSet
V1beta2DaemonSet
  { v1beta2DaemonSetApiVersion :: Maybe Text
v1beta2DaemonSetApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2DaemonSetKind :: Maybe Text
v1beta2DaemonSetKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2DaemonSetMetadata :: Maybe V1ObjectMeta
v1beta2DaemonSetMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta2DaemonSetSpec :: Maybe V1beta2DaemonSetSpec
v1beta2DaemonSetSpec = Maybe V1beta2DaemonSetSpec
forall a. Maybe a
Nothing
  , v1beta2DaemonSetStatus :: Maybe V1beta2DaemonSetStatus
v1beta2DaemonSetStatus = Maybe V1beta2DaemonSetStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta2DaemonSetCondition
-- | V1beta2DaemonSetCondition
-- DaemonSetCondition describes the state of a DaemonSet at a certain point.
data V1beta2DaemonSetCondition = V1beta2DaemonSetCondition
  { V1beta2DaemonSetCondition -> Maybe DateTime
v1beta2DaemonSetConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.
  , V1beta2DaemonSetCondition -> Maybe Text
v1beta2DaemonSetConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.
  , V1beta2DaemonSetCondition -> Maybe Text
v1beta2DaemonSetConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition&#39;s last transition.
  , V1beta2DaemonSetCondition -> Text
v1beta2DaemonSetConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , V1beta2DaemonSetCondition -> Text
v1beta2DaemonSetConditionType :: !(Text) -- ^ /Required/ "type" - Type of DaemonSet condition.
  } deriving (Int -> V1beta2DaemonSetCondition -> ShowS
[V1beta2DaemonSetCondition] -> ShowS
V1beta2DaemonSetCondition -> String
(Int -> V1beta2DaemonSetCondition -> ShowS)
-> (V1beta2DaemonSetCondition -> String)
-> ([V1beta2DaemonSetCondition] -> ShowS)
-> Show V1beta2DaemonSetCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2DaemonSetCondition] -> ShowS
$cshowList :: [V1beta2DaemonSetCondition] -> ShowS
show :: V1beta2DaemonSetCondition -> String
$cshow :: V1beta2DaemonSetCondition -> String
showsPrec :: Int -> V1beta2DaemonSetCondition -> ShowS
$cshowsPrec :: Int -> V1beta2DaemonSetCondition -> ShowS
P.Show, V1beta2DaemonSetCondition -> V1beta2DaemonSetCondition -> Bool
(V1beta2DaemonSetCondition -> V1beta2DaemonSetCondition -> Bool)
-> (V1beta2DaemonSetCondition -> V1beta2DaemonSetCondition -> Bool)
-> Eq V1beta2DaemonSetCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2DaemonSetCondition -> V1beta2DaemonSetCondition -> Bool
$c/= :: V1beta2DaemonSetCondition -> V1beta2DaemonSetCondition -> Bool
== :: V1beta2DaemonSetCondition -> V1beta2DaemonSetCondition -> Bool
$c== :: V1beta2DaemonSetCondition -> V1beta2DaemonSetCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2DaemonSetCondition
instance A.FromJSON V1beta2DaemonSetCondition where
  parseJSON :: Value -> Parser V1beta2DaemonSetCondition
parseJSON = String
-> (Object -> Parser V1beta2DaemonSetCondition)
-> Value
-> Parser V1beta2DaemonSetCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2DaemonSetCondition" ((Object -> Parser V1beta2DaemonSetCondition)
 -> Value -> Parser V1beta2DaemonSetCondition)
-> (Object -> Parser V1beta2DaemonSetCondition)
-> Value
-> Parser V1beta2DaemonSetCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta2DaemonSetCondition
V1beta2DaemonSetCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1beta2DaemonSetCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text -> Text -> Text -> V1beta2DaemonSetCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text
   -> Maybe Text -> Text -> Text -> V1beta2DaemonSetCondition)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Text -> Text -> V1beta2DaemonSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1beta2DaemonSetCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1beta2DaemonSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1beta2DaemonSetCondition)
-> Parser Text -> Parser (Text -> V1beta2DaemonSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1beta2DaemonSetCondition)
-> Parser Text -> Parser V1beta2DaemonSetCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1beta2DaemonSetCondition
instance A.ToJSON V1beta2DaemonSetCondition where
  toJSON :: V1beta2DaemonSetCondition -> Value
toJSON V1beta2DaemonSetCondition {Maybe Text
Maybe DateTime
Text
v1beta2DaemonSetConditionType :: Text
v1beta2DaemonSetConditionStatus :: Text
v1beta2DaemonSetConditionReason :: Maybe Text
v1beta2DaemonSetConditionMessage :: Maybe Text
v1beta2DaemonSetConditionLastTransitionTime :: Maybe DateTime
v1beta2DaemonSetConditionType :: V1beta2DaemonSetCondition -> Text
v1beta2DaemonSetConditionStatus :: V1beta2DaemonSetCondition -> Text
v1beta2DaemonSetConditionReason :: V1beta2DaemonSetCondition -> Maybe Text
v1beta2DaemonSetConditionMessage :: V1beta2DaemonSetCondition -> Maybe Text
v1beta2DaemonSetConditionLastTransitionTime :: V1beta2DaemonSetCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta2DaemonSetConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2DaemonSetConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2DaemonSetConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta2DaemonSetConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta2DaemonSetConditionType
      ]


-- | Construct a value of type 'V1beta2DaemonSetCondition' (by applying it's required fields, if any)
mkV1beta2DaemonSetCondition
  :: Text -- ^ 'v1beta2DaemonSetConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'v1beta2DaemonSetConditionType': Type of DaemonSet condition.
  -> V1beta2DaemonSetCondition
mkV1beta2DaemonSetCondition :: Text -> Text -> V1beta2DaemonSetCondition
mkV1beta2DaemonSetCondition Text
v1beta2DaemonSetConditionStatus Text
v1beta2DaemonSetConditionType =
  V1beta2DaemonSetCondition :: Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta2DaemonSetCondition
V1beta2DaemonSetCondition
  { v1beta2DaemonSetConditionLastTransitionTime :: Maybe DateTime
v1beta2DaemonSetConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1beta2DaemonSetConditionMessage :: Maybe Text
v1beta2DaemonSetConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2DaemonSetConditionReason :: Maybe Text
v1beta2DaemonSetConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta2DaemonSetConditionStatus :: Text
v1beta2DaemonSetConditionStatus :: Text
v1beta2DaemonSetConditionStatus
  , Text
v1beta2DaemonSetConditionType :: Text
v1beta2DaemonSetConditionType :: Text
v1beta2DaemonSetConditionType
  }

-- ** V1beta2DaemonSetList
-- | V1beta2DaemonSetList
-- DaemonSetList is a collection of daemon sets.
data V1beta2DaemonSetList = V1beta2DaemonSetList
  { V1beta2DaemonSetList -> Maybe Text
v1beta2DaemonSetListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta2DaemonSetList -> [V1beta2DaemonSet]
v1beta2DaemonSetListItems :: !([V1beta2DaemonSet]) -- ^ /Required/ "items" - A list of daemon sets.
  , V1beta2DaemonSetList -> Maybe Text
v1beta2DaemonSetListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta2DaemonSetList -> Maybe V1ListMeta
v1beta2DaemonSetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta2DaemonSetList -> ShowS
[V1beta2DaemonSetList] -> ShowS
V1beta2DaemonSetList -> String
(Int -> V1beta2DaemonSetList -> ShowS)
-> (V1beta2DaemonSetList -> String)
-> ([V1beta2DaemonSetList] -> ShowS)
-> Show V1beta2DaemonSetList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2DaemonSetList] -> ShowS
$cshowList :: [V1beta2DaemonSetList] -> ShowS
show :: V1beta2DaemonSetList -> String
$cshow :: V1beta2DaemonSetList -> String
showsPrec :: Int -> V1beta2DaemonSetList -> ShowS
$cshowsPrec :: Int -> V1beta2DaemonSetList -> ShowS
P.Show, V1beta2DaemonSetList -> V1beta2DaemonSetList -> Bool
(V1beta2DaemonSetList -> V1beta2DaemonSetList -> Bool)
-> (V1beta2DaemonSetList -> V1beta2DaemonSetList -> Bool)
-> Eq V1beta2DaemonSetList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2DaemonSetList -> V1beta2DaemonSetList -> Bool
$c/= :: V1beta2DaemonSetList -> V1beta2DaemonSetList -> Bool
== :: V1beta2DaemonSetList -> V1beta2DaemonSetList -> Bool
$c== :: V1beta2DaemonSetList -> V1beta2DaemonSetList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2DaemonSetList
instance A.FromJSON V1beta2DaemonSetList where
  parseJSON :: Value -> Parser V1beta2DaemonSetList
parseJSON = String
-> (Object -> Parser V1beta2DaemonSetList)
-> Value
-> Parser V1beta2DaemonSetList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2DaemonSetList" ((Object -> Parser V1beta2DaemonSetList)
 -> Value -> Parser V1beta2DaemonSetList)
-> (Object -> Parser V1beta2DaemonSetList)
-> Value
-> Parser V1beta2DaemonSetList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta2DaemonSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta2DaemonSetList
V1beta2DaemonSetList
      (Maybe Text
 -> [V1beta2DaemonSet]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta2DaemonSetList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta2DaemonSet]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta2DaemonSetList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta2DaemonSet]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta2DaemonSetList)
-> Parser [V1beta2DaemonSet]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1beta2DaemonSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta2DaemonSet]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta2DaemonSetList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta2DaemonSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta2DaemonSetList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta2DaemonSetList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta2DaemonSetList
instance A.ToJSON V1beta2DaemonSetList where
  toJSON :: V1beta2DaemonSetList -> Value
toJSON V1beta2DaemonSetList {[V1beta2DaemonSet]
Maybe Text
Maybe V1ListMeta
v1beta2DaemonSetListMetadata :: Maybe V1ListMeta
v1beta2DaemonSetListKind :: Maybe Text
v1beta2DaemonSetListItems :: [V1beta2DaemonSet]
v1beta2DaemonSetListApiVersion :: Maybe Text
v1beta2DaemonSetListMetadata :: V1beta2DaemonSetList -> Maybe V1ListMeta
v1beta2DaemonSetListKind :: V1beta2DaemonSetList -> Maybe Text
v1beta2DaemonSetListItems :: V1beta2DaemonSetList -> [V1beta2DaemonSet]
v1beta2DaemonSetListApiVersion :: V1beta2DaemonSetList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2DaemonSetListApiVersion
      , Text
"items" Text -> [V1beta2DaemonSet] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta2DaemonSet]
v1beta2DaemonSetListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2DaemonSetListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta2DaemonSetListMetadata
      ]


-- | Construct a value of type 'V1beta2DaemonSetList' (by applying it's required fields, if any)
mkV1beta2DaemonSetList
  :: [V1beta2DaemonSet] -- ^ 'v1beta2DaemonSetListItems': A list of daemon sets.
  -> V1beta2DaemonSetList
mkV1beta2DaemonSetList :: [V1beta2DaemonSet] -> V1beta2DaemonSetList
mkV1beta2DaemonSetList [V1beta2DaemonSet]
v1beta2DaemonSetListItems =
  V1beta2DaemonSetList :: Maybe Text
-> [V1beta2DaemonSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta2DaemonSetList
V1beta2DaemonSetList
  { v1beta2DaemonSetListApiVersion :: Maybe Text
v1beta2DaemonSetListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta2DaemonSet]
v1beta2DaemonSetListItems :: [V1beta2DaemonSet]
v1beta2DaemonSetListItems :: [V1beta2DaemonSet]
v1beta2DaemonSetListItems
  , v1beta2DaemonSetListKind :: Maybe Text
v1beta2DaemonSetListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2DaemonSetListMetadata :: Maybe V1ListMeta
v1beta2DaemonSetListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta2DaemonSetSpec
-- | V1beta2DaemonSetSpec
-- DaemonSetSpec is the specification of a daemon set.
data V1beta2DaemonSetSpec = V1beta2DaemonSetSpec
  { V1beta2DaemonSetSpec -> Maybe Int
v1beta2DaemonSetSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).
  , V1beta2DaemonSetSpec -> Maybe Int
v1beta2DaemonSetSpecRevisionHistoryLimit :: !(Maybe Int) -- ^ "revisionHistoryLimit" - The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.
  , V1beta2DaemonSetSpec -> V1LabelSelector
v1beta2DaemonSetSpecSelector :: !(V1LabelSelector) -- ^ /Required/ "selector"
  , V1beta2DaemonSetSpec -> V1PodTemplateSpec
v1beta2DaemonSetSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"
  , V1beta2DaemonSetSpec -> Maybe V1beta2DaemonSetUpdateStrategy
v1beta2DaemonSetSpecUpdateStrategy :: !(Maybe V1beta2DaemonSetUpdateStrategy) -- ^ "updateStrategy"
  } deriving (Int -> V1beta2DaemonSetSpec -> ShowS
[V1beta2DaemonSetSpec] -> ShowS
V1beta2DaemonSetSpec -> String
(Int -> V1beta2DaemonSetSpec -> ShowS)
-> (V1beta2DaemonSetSpec -> String)
-> ([V1beta2DaemonSetSpec] -> ShowS)
-> Show V1beta2DaemonSetSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2DaemonSetSpec] -> ShowS
$cshowList :: [V1beta2DaemonSetSpec] -> ShowS
show :: V1beta2DaemonSetSpec -> String
$cshow :: V1beta2DaemonSetSpec -> String
showsPrec :: Int -> V1beta2DaemonSetSpec -> ShowS
$cshowsPrec :: Int -> V1beta2DaemonSetSpec -> ShowS
P.Show, V1beta2DaemonSetSpec -> V1beta2DaemonSetSpec -> Bool
(V1beta2DaemonSetSpec -> V1beta2DaemonSetSpec -> Bool)
-> (V1beta2DaemonSetSpec -> V1beta2DaemonSetSpec -> Bool)
-> Eq V1beta2DaemonSetSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2DaemonSetSpec -> V1beta2DaemonSetSpec -> Bool
$c/= :: V1beta2DaemonSetSpec -> V1beta2DaemonSetSpec -> Bool
== :: V1beta2DaemonSetSpec -> V1beta2DaemonSetSpec -> Bool
$c== :: V1beta2DaemonSetSpec -> V1beta2DaemonSetSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2DaemonSetSpec
instance A.FromJSON V1beta2DaemonSetSpec where
  parseJSON :: Value -> Parser V1beta2DaemonSetSpec
parseJSON = String
-> (Object -> Parser V1beta2DaemonSetSpec)
-> Value
-> Parser V1beta2DaemonSetSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2DaemonSetSpec" ((Object -> Parser V1beta2DaemonSetSpec)
 -> Value -> Parser V1beta2DaemonSetSpec)
-> (Object -> Parser V1beta2DaemonSetSpec)
-> Value
-> Parser V1beta2DaemonSetSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Int
-> V1LabelSelector
-> V1PodTemplateSpec
-> Maybe V1beta2DaemonSetUpdateStrategy
-> V1beta2DaemonSetSpec
V1beta2DaemonSetSpec
      (Maybe Int
 -> Maybe Int
 -> V1LabelSelector
 -> V1PodTemplateSpec
 -> Maybe V1beta2DaemonSetUpdateStrategy
 -> V1beta2DaemonSetSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> V1LabelSelector
      -> V1PodTemplateSpec
      -> Maybe V1beta2DaemonSetUpdateStrategy
      -> V1beta2DaemonSetSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minReadySeconds")
      Parser
  (Maybe Int
   -> V1LabelSelector
   -> V1PodTemplateSpec
   -> Maybe V1beta2DaemonSetUpdateStrategy
   -> V1beta2DaemonSetSpec)
-> Parser (Maybe Int)
-> Parser
     (V1LabelSelector
      -> V1PodTemplateSpec
      -> Maybe V1beta2DaemonSetUpdateStrategy
      -> V1beta2DaemonSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"revisionHistoryLimit")
      Parser
  (V1LabelSelector
   -> V1PodTemplateSpec
   -> Maybe V1beta2DaemonSetUpdateStrategy
   -> V1beta2DaemonSetSpec)
-> Parser V1LabelSelector
-> Parser
     (V1PodTemplateSpec
      -> Maybe V1beta2DaemonSetUpdateStrategy -> V1beta2DaemonSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1LabelSelector
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"selector")
      Parser
  (V1PodTemplateSpec
   -> Maybe V1beta2DaemonSetUpdateStrategy -> V1beta2DaemonSetSpec)
-> Parser V1PodTemplateSpec
-> Parser
     (Maybe V1beta2DaemonSetUpdateStrategy -> V1beta2DaemonSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1PodTemplateSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"template")
      Parser
  (Maybe V1beta2DaemonSetUpdateStrategy -> V1beta2DaemonSetSpec)
-> Parser (Maybe V1beta2DaemonSetUpdateStrategy)
-> Parser V1beta2DaemonSetSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta2DaemonSetUpdateStrategy)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updateStrategy")

-- | ToJSON V1beta2DaemonSetSpec
instance A.ToJSON V1beta2DaemonSetSpec where
  toJSON :: V1beta2DaemonSetSpec -> Value
toJSON V1beta2DaemonSetSpec {Maybe Int
Maybe V1beta2DaemonSetUpdateStrategy
V1PodTemplateSpec
V1LabelSelector
v1beta2DaemonSetSpecUpdateStrategy :: Maybe V1beta2DaemonSetUpdateStrategy
v1beta2DaemonSetSpecTemplate :: V1PodTemplateSpec
v1beta2DaemonSetSpecSelector :: V1LabelSelector
v1beta2DaemonSetSpecRevisionHistoryLimit :: Maybe Int
v1beta2DaemonSetSpecMinReadySeconds :: Maybe Int
v1beta2DaemonSetSpecUpdateStrategy :: V1beta2DaemonSetSpec -> Maybe V1beta2DaemonSetUpdateStrategy
v1beta2DaemonSetSpecTemplate :: V1beta2DaemonSetSpec -> V1PodTemplateSpec
v1beta2DaemonSetSpecSelector :: V1beta2DaemonSetSpec -> V1LabelSelector
v1beta2DaemonSetSpecRevisionHistoryLimit :: V1beta2DaemonSetSpec -> Maybe Int
v1beta2DaemonSetSpecMinReadySeconds :: V1beta2DaemonSetSpec -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"minReadySeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2DaemonSetSpecMinReadySeconds
      , Text
"revisionHistoryLimit" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2DaemonSetSpecRevisionHistoryLimit
      , Text
"selector" Text -> V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1LabelSelector
v1beta2DaemonSetSpecSelector
      , Text
"template" Text -> V1PodTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1PodTemplateSpec
v1beta2DaemonSetSpecTemplate
      , Text
"updateStrategy" Text -> Maybe V1beta2DaemonSetUpdateStrategy -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta2DaemonSetUpdateStrategy
v1beta2DaemonSetSpecUpdateStrategy
      ]


-- | Construct a value of type 'V1beta2DaemonSetSpec' (by applying it's required fields, if any)
mkV1beta2DaemonSetSpec
  :: V1LabelSelector -- ^ 'v1beta2DaemonSetSpecSelector' 
  -> V1PodTemplateSpec -- ^ 'v1beta2DaemonSetSpecTemplate' 
  -> V1beta2DaemonSetSpec
mkV1beta2DaemonSetSpec :: V1LabelSelector -> V1PodTemplateSpec -> V1beta2DaemonSetSpec
mkV1beta2DaemonSetSpec V1LabelSelector
v1beta2DaemonSetSpecSelector V1PodTemplateSpec
v1beta2DaemonSetSpecTemplate =
  V1beta2DaemonSetSpec :: Maybe Int
-> Maybe Int
-> V1LabelSelector
-> V1PodTemplateSpec
-> Maybe V1beta2DaemonSetUpdateStrategy
-> V1beta2DaemonSetSpec
V1beta2DaemonSetSpec
  { v1beta2DaemonSetSpecMinReadySeconds :: Maybe Int
v1beta2DaemonSetSpecMinReadySeconds = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2DaemonSetSpecRevisionHistoryLimit :: Maybe Int
v1beta2DaemonSetSpecRevisionHistoryLimit = Maybe Int
forall a. Maybe a
Nothing
  , V1LabelSelector
v1beta2DaemonSetSpecSelector :: V1LabelSelector
v1beta2DaemonSetSpecSelector :: V1LabelSelector
v1beta2DaemonSetSpecSelector
  , V1PodTemplateSpec
v1beta2DaemonSetSpecTemplate :: V1PodTemplateSpec
v1beta2DaemonSetSpecTemplate :: V1PodTemplateSpec
v1beta2DaemonSetSpecTemplate
  , v1beta2DaemonSetSpecUpdateStrategy :: Maybe V1beta2DaemonSetUpdateStrategy
v1beta2DaemonSetSpecUpdateStrategy = Maybe V1beta2DaemonSetUpdateStrategy
forall a. Maybe a
Nothing
  }

-- ** V1beta2DaemonSetStatus
-- | V1beta2DaemonSetStatus
-- DaemonSetStatus represents the current status of a daemon set.
data V1beta2DaemonSetStatus = V1beta2DaemonSetStatus
  { V1beta2DaemonSetStatus -> Maybe Int
v1beta2DaemonSetStatusCollisionCount :: !(Maybe Int) -- ^ "collisionCount" - Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.
  , V1beta2DaemonSetStatus -> Maybe [V1beta2DaemonSetCondition]
v1beta2DaemonSetStatusConditions :: !(Maybe [V1beta2DaemonSetCondition]) -- ^ "conditions" - Represents the latest available observations of a DaemonSet&#39;s current state.
  , V1beta2DaemonSetStatus -> Int
v1beta2DaemonSetStatusCurrentNumberScheduled :: !(Int) -- ^ /Required/ "currentNumberScheduled" - The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  , V1beta2DaemonSetStatus -> Int
v1beta2DaemonSetStatusDesiredNumberScheduled :: !(Int) -- ^ /Required/ "desiredNumberScheduled" - The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  , V1beta2DaemonSetStatus -> Maybe Int
v1beta2DaemonSetStatusNumberAvailable :: !(Maybe Int) -- ^ "numberAvailable" - The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)
  , V1beta2DaemonSetStatus -> Int
v1beta2DaemonSetStatusNumberMisscheduled :: !(Int) -- ^ /Required/ "numberMisscheduled" - The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  , V1beta2DaemonSetStatus -> Int
v1beta2DaemonSetStatusNumberReady :: !(Int) -- ^ /Required/ "numberReady" - The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.
  , V1beta2DaemonSetStatus -> Maybe Int
v1beta2DaemonSetStatusNumberUnavailable :: !(Maybe Int) -- ^ "numberUnavailable" - The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)
  , V1beta2DaemonSetStatus -> Maybe Integer
v1beta2DaemonSetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - The most recent generation observed by the daemon set controller.
  , V1beta2DaemonSetStatus -> Maybe Int
v1beta2DaemonSetStatusUpdatedNumberScheduled :: !(Maybe Int) -- ^ "updatedNumberScheduled" - The total number of nodes that are running updated daemon pod
  } deriving (Int -> V1beta2DaemonSetStatus -> ShowS
[V1beta2DaemonSetStatus] -> ShowS
V1beta2DaemonSetStatus -> String
(Int -> V1beta2DaemonSetStatus -> ShowS)
-> (V1beta2DaemonSetStatus -> String)
-> ([V1beta2DaemonSetStatus] -> ShowS)
-> Show V1beta2DaemonSetStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2DaemonSetStatus] -> ShowS
$cshowList :: [V1beta2DaemonSetStatus] -> ShowS
show :: V1beta2DaemonSetStatus -> String
$cshow :: V1beta2DaemonSetStatus -> String
showsPrec :: Int -> V1beta2DaemonSetStatus -> ShowS
$cshowsPrec :: Int -> V1beta2DaemonSetStatus -> ShowS
P.Show, V1beta2DaemonSetStatus -> V1beta2DaemonSetStatus -> Bool
(V1beta2DaemonSetStatus -> V1beta2DaemonSetStatus -> Bool)
-> (V1beta2DaemonSetStatus -> V1beta2DaemonSetStatus -> Bool)
-> Eq V1beta2DaemonSetStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2DaemonSetStatus -> V1beta2DaemonSetStatus -> Bool
$c/= :: V1beta2DaemonSetStatus -> V1beta2DaemonSetStatus -> Bool
== :: V1beta2DaemonSetStatus -> V1beta2DaemonSetStatus -> Bool
$c== :: V1beta2DaemonSetStatus -> V1beta2DaemonSetStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2DaemonSetStatus
instance A.FromJSON V1beta2DaemonSetStatus where
  parseJSON :: Value -> Parser V1beta2DaemonSetStatus
parseJSON = String
-> (Object -> Parser V1beta2DaemonSetStatus)
-> Value
-> Parser V1beta2DaemonSetStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2DaemonSetStatus" ((Object -> Parser V1beta2DaemonSetStatus)
 -> Value -> Parser V1beta2DaemonSetStatus)
-> (Object -> Parser V1beta2DaemonSetStatus)
-> Value
-> Parser V1beta2DaemonSetStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe [V1beta2DaemonSetCondition]
-> Int
-> Int
-> Maybe Int
-> Int
-> Int
-> Maybe Int
-> Maybe Integer
-> Maybe Int
-> V1beta2DaemonSetStatus
V1beta2DaemonSetStatus
      (Maybe Int
 -> Maybe [V1beta2DaemonSetCondition]
 -> Int
 -> Int
 -> Maybe Int
 -> Int
 -> Int
 -> Maybe Int
 -> Maybe Integer
 -> Maybe Int
 -> V1beta2DaemonSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe [V1beta2DaemonSetCondition]
      -> Int
      -> Int
      -> Maybe Int
      -> Int
      -> Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1beta2DaemonSetStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"collisionCount")
      Parser
  (Maybe [V1beta2DaemonSetCondition]
   -> Int
   -> Int
   -> Maybe Int
   -> Int
   -> Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1beta2DaemonSetStatus)
-> Parser (Maybe [V1beta2DaemonSetCondition])
-> Parser
     (Int
      -> Int
      -> Maybe Int
      -> Int
      -> Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1beta2DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta2DaemonSetCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Int
   -> Int
   -> Maybe Int
   -> Int
   -> Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1beta2DaemonSetStatus)
-> Parser Int
-> Parser
     (Int
      -> Maybe Int
      -> Int
      -> Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1beta2DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"currentNumberScheduled")
      Parser
  (Int
   -> Maybe Int
   -> Int
   -> Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1beta2DaemonSetStatus)
-> Parser Int
-> Parser
     (Maybe Int
      -> Int
      -> Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1beta2DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"desiredNumberScheduled")
      Parser
  (Maybe Int
   -> Int
   -> Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1beta2DaemonSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Int
      -> Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1beta2DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"numberAvailable")
      Parser
  (Int
   -> Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1beta2DaemonSetStatus)
-> Parser Int
-> Parser
     (Int
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> V1beta2DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"numberMisscheduled")
      Parser
  (Int
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> V1beta2DaemonSetStatus)
-> Parser Int
-> Parser
     (Maybe Int -> Maybe Integer -> Maybe Int -> V1beta2DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"numberReady")
      Parser
  (Maybe Int -> Maybe Integer -> Maybe Int -> V1beta2DaemonSetStatus)
-> Parser (Maybe Int)
-> Parser (Maybe Integer -> Maybe Int -> V1beta2DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"numberUnavailable")
      Parser (Maybe Integer -> Maybe Int -> V1beta2DaemonSetStatus)
-> Parser (Maybe Integer)
-> Parser (Maybe Int -> V1beta2DaemonSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")
      Parser (Maybe Int -> V1beta2DaemonSetStatus)
-> Parser (Maybe Int) -> Parser V1beta2DaemonSetStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updatedNumberScheduled")

-- | ToJSON V1beta2DaemonSetStatus
instance A.ToJSON V1beta2DaemonSetStatus where
  toJSON :: V1beta2DaemonSetStatus -> Value
toJSON V1beta2DaemonSetStatus {Int
Maybe Int
Maybe Integer
Maybe [V1beta2DaemonSetCondition]
v1beta2DaemonSetStatusUpdatedNumberScheduled :: Maybe Int
v1beta2DaemonSetStatusObservedGeneration :: Maybe Integer
v1beta2DaemonSetStatusNumberUnavailable :: Maybe Int
v1beta2DaemonSetStatusNumberReady :: Int
v1beta2DaemonSetStatusNumberMisscheduled :: Int
v1beta2DaemonSetStatusNumberAvailable :: Maybe Int
v1beta2DaemonSetStatusDesiredNumberScheduled :: Int
v1beta2DaemonSetStatusCurrentNumberScheduled :: Int
v1beta2DaemonSetStatusConditions :: Maybe [V1beta2DaemonSetCondition]
v1beta2DaemonSetStatusCollisionCount :: Maybe Int
v1beta2DaemonSetStatusUpdatedNumberScheduled :: V1beta2DaemonSetStatus -> Maybe Int
v1beta2DaemonSetStatusObservedGeneration :: V1beta2DaemonSetStatus -> Maybe Integer
v1beta2DaemonSetStatusNumberUnavailable :: V1beta2DaemonSetStatus -> Maybe Int
v1beta2DaemonSetStatusNumberReady :: V1beta2DaemonSetStatus -> Int
v1beta2DaemonSetStatusNumberMisscheduled :: V1beta2DaemonSetStatus -> Int
v1beta2DaemonSetStatusNumberAvailable :: V1beta2DaemonSetStatus -> Maybe Int
v1beta2DaemonSetStatusDesiredNumberScheduled :: V1beta2DaemonSetStatus -> Int
v1beta2DaemonSetStatusCurrentNumberScheduled :: V1beta2DaemonSetStatus -> Int
v1beta2DaemonSetStatusConditions :: V1beta2DaemonSetStatus -> Maybe [V1beta2DaemonSetCondition]
v1beta2DaemonSetStatusCollisionCount :: V1beta2DaemonSetStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"collisionCount" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2DaemonSetStatusCollisionCount
      , Text
"conditions" Text -> Maybe [V1beta2DaemonSetCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta2DaemonSetCondition]
v1beta2DaemonSetStatusConditions
      , Text
"currentNumberScheduled" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta2DaemonSetStatusCurrentNumberScheduled
      , Text
"desiredNumberScheduled" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta2DaemonSetStatusDesiredNumberScheduled
      , Text
"numberAvailable" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2DaemonSetStatusNumberAvailable
      , Text
"numberMisscheduled" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta2DaemonSetStatusNumberMisscheduled
      , Text
"numberReady" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta2DaemonSetStatusNumberReady
      , Text
"numberUnavailable" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2DaemonSetStatusNumberUnavailable
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1beta2DaemonSetStatusObservedGeneration
      , Text
"updatedNumberScheduled" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2DaemonSetStatusUpdatedNumberScheduled
      ]


-- | Construct a value of type 'V1beta2DaemonSetStatus' (by applying it's required fields, if any)
mkV1beta2DaemonSetStatus
  :: Int -- ^ 'v1beta2DaemonSetStatusCurrentNumberScheduled': The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  -> Int -- ^ 'v1beta2DaemonSetStatusDesiredNumberScheduled': The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  -> Int -- ^ 'v1beta2DaemonSetStatusNumberMisscheduled': The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
  -> Int -- ^ 'v1beta2DaemonSetStatusNumberReady': The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.
  -> V1beta2DaemonSetStatus
mkV1beta2DaemonSetStatus :: Int -> Int -> Int -> Int -> V1beta2DaemonSetStatus
mkV1beta2DaemonSetStatus Int
v1beta2DaemonSetStatusCurrentNumberScheduled Int
v1beta2DaemonSetStatusDesiredNumberScheduled Int
v1beta2DaemonSetStatusNumberMisscheduled Int
v1beta2DaemonSetStatusNumberReady =
  V1beta2DaemonSetStatus :: Maybe Int
-> Maybe [V1beta2DaemonSetCondition]
-> Int
-> Int
-> Maybe Int
-> Int
-> Int
-> Maybe Int
-> Maybe Integer
-> Maybe Int
-> V1beta2DaemonSetStatus
V1beta2DaemonSetStatus
  { v1beta2DaemonSetStatusCollisionCount :: Maybe Int
v1beta2DaemonSetStatusCollisionCount = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2DaemonSetStatusConditions :: Maybe [V1beta2DaemonSetCondition]
v1beta2DaemonSetStatusConditions = Maybe [V1beta2DaemonSetCondition]
forall a. Maybe a
Nothing
  , Int
v1beta2DaemonSetStatusCurrentNumberScheduled :: Int
v1beta2DaemonSetStatusCurrentNumberScheduled :: Int
v1beta2DaemonSetStatusCurrentNumberScheduled
  , Int
v1beta2DaemonSetStatusDesiredNumberScheduled :: Int
v1beta2DaemonSetStatusDesiredNumberScheduled :: Int
v1beta2DaemonSetStatusDesiredNumberScheduled
  , v1beta2DaemonSetStatusNumberAvailable :: Maybe Int
v1beta2DaemonSetStatusNumberAvailable = Maybe Int
forall a. Maybe a
Nothing
  , Int
v1beta2DaemonSetStatusNumberMisscheduled :: Int
v1beta2DaemonSetStatusNumberMisscheduled :: Int
v1beta2DaemonSetStatusNumberMisscheduled
  , Int
v1beta2DaemonSetStatusNumberReady :: Int
v1beta2DaemonSetStatusNumberReady :: Int
v1beta2DaemonSetStatusNumberReady
  , v1beta2DaemonSetStatusNumberUnavailable :: Maybe Int
v1beta2DaemonSetStatusNumberUnavailable = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2DaemonSetStatusObservedGeneration :: Maybe Integer
v1beta2DaemonSetStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  , v1beta2DaemonSetStatusUpdatedNumberScheduled :: Maybe Int
v1beta2DaemonSetStatusUpdatedNumberScheduled = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1beta2DaemonSetUpdateStrategy
-- | V1beta2DaemonSetUpdateStrategy
-- DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.
data V1beta2DaemonSetUpdateStrategy = V1beta2DaemonSetUpdateStrategy
  { V1beta2DaemonSetUpdateStrategy
-> Maybe V1beta2RollingUpdateDaemonSet
v1beta2DaemonSetUpdateStrategyRollingUpdate :: !(Maybe V1beta2RollingUpdateDaemonSet) -- ^ "rollingUpdate"
  , V1beta2DaemonSetUpdateStrategy -> Maybe Text
v1beta2DaemonSetUpdateStrategyType :: !(Maybe Text) -- ^ "type" - Type of daemon set update. Can be \&quot;RollingUpdate\&quot; or \&quot;OnDelete\&quot;. Default is RollingUpdate.
  } deriving (Int -> V1beta2DaemonSetUpdateStrategy -> ShowS
[V1beta2DaemonSetUpdateStrategy] -> ShowS
V1beta2DaemonSetUpdateStrategy -> String
(Int -> V1beta2DaemonSetUpdateStrategy -> ShowS)
-> (V1beta2DaemonSetUpdateStrategy -> String)
-> ([V1beta2DaemonSetUpdateStrategy] -> ShowS)
-> Show V1beta2DaemonSetUpdateStrategy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2DaemonSetUpdateStrategy] -> ShowS
$cshowList :: [V1beta2DaemonSetUpdateStrategy] -> ShowS
show :: V1beta2DaemonSetUpdateStrategy -> String
$cshow :: V1beta2DaemonSetUpdateStrategy -> String
showsPrec :: Int -> V1beta2DaemonSetUpdateStrategy -> ShowS
$cshowsPrec :: Int -> V1beta2DaemonSetUpdateStrategy -> ShowS
P.Show, V1beta2DaemonSetUpdateStrategy
-> V1beta2DaemonSetUpdateStrategy -> Bool
(V1beta2DaemonSetUpdateStrategy
 -> V1beta2DaemonSetUpdateStrategy -> Bool)
-> (V1beta2DaemonSetUpdateStrategy
    -> V1beta2DaemonSetUpdateStrategy -> Bool)
-> Eq V1beta2DaemonSetUpdateStrategy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2DaemonSetUpdateStrategy
-> V1beta2DaemonSetUpdateStrategy -> Bool
$c/= :: V1beta2DaemonSetUpdateStrategy
-> V1beta2DaemonSetUpdateStrategy -> Bool
== :: V1beta2DaemonSetUpdateStrategy
-> V1beta2DaemonSetUpdateStrategy -> Bool
$c== :: V1beta2DaemonSetUpdateStrategy
-> V1beta2DaemonSetUpdateStrategy -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2DaemonSetUpdateStrategy
instance A.FromJSON V1beta2DaemonSetUpdateStrategy where
  parseJSON :: Value -> Parser V1beta2DaemonSetUpdateStrategy
parseJSON = String
-> (Object -> Parser V1beta2DaemonSetUpdateStrategy)
-> Value
-> Parser V1beta2DaemonSetUpdateStrategy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2DaemonSetUpdateStrategy" ((Object -> Parser V1beta2DaemonSetUpdateStrategy)
 -> Value -> Parser V1beta2DaemonSetUpdateStrategy)
-> (Object -> Parser V1beta2DaemonSetUpdateStrategy)
-> Value
-> Parser V1beta2DaemonSetUpdateStrategy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1beta2RollingUpdateDaemonSet
-> Maybe Text -> V1beta2DaemonSetUpdateStrategy
V1beta2DaemonSetUpdateStrategy
      (Maybe V1beta2RollingUpdateDaemonSet
 -> Maybe Text -> V1beta2DaemonSetUpdateStrategy)
-> Parser (Maybe V1beta2RollingUpdateDaemonSet)
-> Parser (Maybe Text -> V1beta2DaemonSetUpdateStrategy)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1beta2RollingUpdateDaemonSet)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rollingUpdate")
      Parser (Maybe Text -> V1beta2DaemonSetUpdateStrategy)
-> Parser (Maybe Text) -> Parser V1beta2DaemonSetUpdateStrategy
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")

-- | ToJSON V1beta2DaemonSetUpdateStrategy
instance A.ToJSON V1beta2DaemonSetUpdateStrategy where
  toJSON :: V1beta2DaemonSetUpdateStrategy -> Value
toJSON V1beta2DaemonSetUpdateStrategy {Maybe Text
Maybe V1beta2RollingUpdateDaemonSet
v1beta2DaemonSetUpdateStrategyType :: Maybe Text
v1beta2DaemonSetUpdateStrategyRollingUpdate :: Maybe V1beta2RollingUpdateDaemonSet
v1beta2DaemonSetUpdateStrategyType :: V1beta2DaemonSetUpdateStrategy -> Maybe Text
v1beta2DaemonSetUpdateStrategyRollingUpdate :: V1beta2DaemonSetUpdateStrategy
-> Maybe V1beta2RollingUpdateDaemonSet
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"rollingUpdate" Text -> Maybe V1beta2RollingUpdateDaemonSet -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta2RollingUpdateDaemonSet
v1beta2DaemonSetUpdateStrategyRollingUpdate
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2DaemonSetUpdateStrategyType
      ]


-- | Construct a value of type 'V1beta2DaemonSetUpdateStrategy' (by applying it's required fields, if any)
mkV1beta2DaemonSetUpdateStrategy
  :: V1beta2DaemonSetUpdateStrategy
mkV1beta2DaemonSetUpdateStrategy :: V1beta2DaemonSetUpdateStrategy
mkV1beta2DaemonSetUpdateStrategy =
  V1beta2DaemonSetUpdateStrategy :: Maybe V1beta2RollingUpdateDaemonSet
-> Maybe Text -> V1beta2DaemonSetUpdateStrategy
V1beta2DaemonSetUpdateStrategy
  { v1beta2DaemonSetUpdateStrategyRollingUpdate :: Maybe V1beta2RollingUpdateDaemonSet
v1beta2DaemonSetUpdateStrategyRollingUpdate = Maybe V1beta2RollingUpdateDaemonSet
forall a. Maybe a
Nothing
  , v1beta2DaemonSetUpdateStrategyType :: Maybe Text
v1beta2DaemonSetUpdateStrategyType = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta2Deployment
-- | V1beta2Deployment
-- DEPRECATED - This group version of Deployment is deprecated by apps/v1/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.
data V1beta2Deployment = V1beta2Deployment
  { V1beta2Deployment -> Maybe Text
v1beta2DeploymentApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta2Deployment -> Maybe Text
v1beta2DeploymentKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta2Deployment -> Maybe V1ObjectMeta
v1beta2DeploymentMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta2Deployment -> Maybe V1beta2DeploymentSpec
v1beta2DeploymentSpec :: !(Maybe V1beta2DeploymentSpec) -- ^ "spec"
  , V1beta2Deployment -> Maybe V1beta2DeploymentStatus
v1beta2DeploymentStatus :: !(Maybe V1beta2DeploymentStatus) -- ^ "status"
  } deriving (Int -> V1beta2Deployment -> ShowS
[V1beta2Deployment] -> ShowS
V1beta2Deployment -> String
(Int -> V1beta2Deployment -> ShowS)
-> (V1beta2Deployment -> String)
-> ([V1beta2Deployment] -> ShowS)
-> Show V1beta2Deployment
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2Deployment] -> ShowS
$cshowList :: [V1beta2Deployment] -> ShowS
show :: V1beta2Deployment -> String
$cshow :: V1beta2Deployment -> String
showsPrec :: Int -> V1beta2Deployment -> ShowS
$cshowsPrec :: Int -> V1beta2Deployment -> ShowS
P.Show, V1beta2Deployment -> V1beta2Deployment -> Bool
(V1beta2Deployment -> V1beta2Deployment -> Bool)
-> (V1beta2Deployment -> V1beta2Deployment -> Bool)
-> Eq V1beta2Deployment
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2Deployment -> V1beta2Deployment -> Bool
$c/= :: V1beta2Deployment -> V1beta2Deployment -> Bool
== :: V1beta2Deployment -> V1beta2Deployment -> Bool
$c== :: V1beta2Deployment -> V1beta2Deployment -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2Deployment
instance A.FromJSON V1beta2Deployment where
  parseJSON :: Value -> Parser V1beta2Deployment
parseJSON = String
-> (Object -> Parser V1beta2Deployment)
-> Value
-> Parser V1beta2Deployment
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2Deployment" ((Object -> Parser V1beta2Deployment)
 -> Value -> Parser V1beta2Deployment)
-> (Object -> Parser V1beta2Deployment)
-> Value
-> Parser V1beta2Deployment
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta2DeploymentSpec
-> Maybe V1beta2DeploymentStatus
-> V1beta2Deployment
V1beta2Deployment
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1beta2DeploymentSpec
 -> Maybe V1beta2DeploymentStatus
 -> V1beta2Deployment)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1beta2DeploymentSpec
      -> Maybe V1beta2DeploymentStatus
      -> V1beta2Deployment)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1beta2DeploymentSpec
   -> Maybe V1beta2DeploymentStatus
   -> V1beta2Deployment)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1beta2DeploymentSpec
      -> Maybe V1beta2DeploymentStatus
      -> V1beta2Deployment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1beta2DeploymentSpec
   -> Maybe V1beta2DeploymentStatus
   -> V1beta2Deployment)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1beta2DeploymentSpec
      -> Maybe V1beta2DeploymentStatus -> V1beta2Deployment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1beta2DeploymentSpec
   -> Maybe V1beta2DeploymentStatus -> V1beta2Deployment)
-> Parser (Maybe V1beta2DeploymentSpec)
-> Parser (Maybe V1beta2DeploymentStatus -> V1beta2Deployment)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta2DeploymentSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1beta2DeploymentStatus -> V1beta2Deployment)
-> Parser (Maybe V1beta2DeploymentStatus)
-> Parser V1beta2Deployment
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta2DeploymentStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta2Deployment
instance A.ToJSON V1beta2Deployment where
  toJSON :: V1beta2Deployment -> Value
toJSON V1beta2Deployment {Maybe Text
Maybe V1beta2DeploymentStatus
Maybe V1beta2DeploymentSpec
Maybe V1ObjectMeta
v1beta2DeploymentStatus :: Maybe V1beta2DeploymentStatus
v1beta2DeploymentSpec :: Maybe V1beta2DeploymentSpec
v1beta2DeploymentMetadata :: Maybe V1ObjectMeta
v1beta2DeploymentKind :: Maybe Text
v1beta2DeploymentApiVersion :: Maybe Text
v1beta2DeploymentStatus :: V1beta2Deployment -> Maybe V1beta2DeploymentStatus
v1beta2DeploymentSpec :: V1beta2Deployment -> Maybe V1beta2DeploymentSpec
v1beta2DeploymentMetadata :: V1beta2Deployment -> Maybe V1ObjectMeta
v1beta2DeploymentKind :: V1beta2Deployment -> Maybe Text
v1beta2DeploymentApiVersion :: V1beta2Deployment -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2DeploymentApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2DeploymentKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta2DeploymentMetadata
      , Text
"spec" Text -> Maybe V1beta2DeploymentSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta2DeploymentSpec
v1beta2DeploymentSpec
      , Text
"status" Text -> Maybe V1beta2DeploymentStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta2DeploymentStatus
v1beta2DeploymentStatus
      ]


-- | Construct a value of type 'V1beta2Deployment' (by applying it's required fields, if any)
mkV1beta2Deployment
  :: V1beta2Deployment
mkV1beta2Deployment :: V1beta2Deployment
mkV1beta2Deployment =
  V1beta2Deployment :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta2DeploymentSpec
-> Maybe V1beta2DeploymentStatus
-> V1beta2Deployment
V1beta2Deployment
  { v1beta2DeploymentApiVersion :: Maybe Text
v1beta2DeploymentApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2DeploymentKind :: Maybe Text
v1beta2DeploymentKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2DeploymentMetadata :: Maybe V1ObjectMeta
v1beta2DeploymentMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta2DeploymentSpec :: Maybe V1beta2DeploymentSpec
v1beta2DeploymentSpec = Maybe V1beta2DeploymentSpec
forall a. Maybe a
Nothing
  , v1beta2DeploymentStatus :: Maybe V1beta2DeploymentStatus
v1beta2DeploymentStatus = Maybe V1beta2DeploymentStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta2DeploymentCondition
-- | V1beta2DeploymentCondition
-- DeploymentCondition describes the state of a deployment at a certain point.
data V1beta2DeploymentCondition = V1beta2DeploymentCondition
  { V1beta2DeploymentCondition -> Maybe DateTime
v1beta2DeploymentConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.
  , V1beta2DeploymentCondition -> Maybe DateTime
v1beta2DeploymentConditionLastUpdateTime :: !(Maybe DateTime) -- ^ "lastUpdateTime" - The last time this condition was updated.
  , V1beta2DeploymentCondition -> Maybe Text
v1beta2DeploymentConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.
  , V1beta2DeploymentCondition -> Maybe Text
v1beta2DeploymentConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition&#39;s last transition.
  , V1beta2DeploymentCondition -> Text
v1beta2DeploymentConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , V1beta2DeploymentCondition -> Text
v1beta2DeploymentConditionType :: !(Text) -- ^ /Required/ "type" - Type of deployment condition.
  } deriving (Int -> V1beta2DeploymentCondition -> ShowS
[V1beta2DeploymentCondition] -> ShowS
V1beta2DeploymentCondition -> String
(Int -> V1beta2DeploymentCondition -> ShowS)
-> (V1beta2DeploymentCondition -> String)
-> ([V1beta2DeploymentCondition] -> ShowS)
-> Show V1beta2DeploymentCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2DeploymentCondition] -> ShowS
$cshowList :: [V1beta2DeploymentCondition] -> ShowS
show :: V1beta2DeploymentCondition -> String
$cshow :: V1beta2DeploymentCondition -> String
showsPrec :: Int -> V1beta2DeploymentCondition -> ShowS
$cshowsPrec :: Int -> V1beta2DeploymentCondition -> ShowS
P.Show, V1beta2DeploymentCondition -> V1beta2DeploymentCondition -> Bool
(V1beta2DeploymentCondition -> V1beta2DeploymentCondition -> Bool)
-> (V1beta2DeploymentCondition
    -> V1beta2DeploymentCondition -> Bool)
-> Eq V1beta2DeploymentCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2DeploymentCondition -> V1beta2DeploymentCondition -> Bool
$c/= :: V1beta2DeploymentCondition -> V1beta2DeploymentCondition -> Bool
== :: V1beta2DeploymentCondition -> V1beta2DeploymentCondition -> Bool
$c== :: V1beta2DeploymentCondition -> V1beta2DeploymentCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2DeploymentCondition
instance A.FromJSON V1beta2DeploymentCondition where
  parseJSON :: Value -> Parser V1beta2DeploymentCondition
parseJSON = String
-> (Object -> Parser V1beta2DeploymentCondition)
-> Value
-> Parser V1beta2DeploymentCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2DeploymentCondition" ((Object -> Parser V1beta2DeploymentCondition)
 -> Value -> Parser V1beta2DeploymentCondition)
-> (Object -> Parser V1beta2DeploymentCondition)
-> Value
-> Parser V1beta2DeploymentCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta2DeploymentCondition
V1beta2DeploymentCondition
      (Maybe DateTime
 -> Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1beta2DeploymentCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe DateTime
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Text
      -> V1beta2DeploymentCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe DateTime
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Text
   -> V1beta2DeploymentCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text -> Text -> Text -> V1beta2DeploymentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastUpdateTime")
      Parser
  (Maybe Text
   -> Maybe Text -> Text -> Text -> V1beta2DeploymentCondition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Text -> Text -> V1beta2DeploymentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1beta2DeploymentCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1beta2DeploymentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1beta2DeploymentCondition)
-> Parser Text -> Parser (Text -> V1beta2DeploymentCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1beta2DeploymentCondition)
-> Parser Text -> Parser V1beta2DeploymentCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1beta2DeploymentCondition
instance A.ToJSON V1beta2DeploymentCondition where
  toJSON :: V1beta2DeploymentCondition -> Value
toJSON V1beta2DeploymentCondition {Maybe Text
Maybe DateTime
Text
v1beta2DeploymentConditionType :: Text
v1beta2DeploymentConditionStatus :: Text
v1beta2DeploymentConditionReason :: Maybe Text
v1beta2DeploymentConditionMessage :: Maybe Text
v1beta2DeploymentConditionLastUpdateTime :: Maybe DateTime
v1beta2DeploymentConditionLastTransitionTime :: Maybe DateTime
v1beta2DeploymentConditionType :: V1beta2DeploymentCondition -> Text
v1beta2DeploymentConditionStatus :: V1beta2DeploymentCondition -> Text
v1beta2DeploymentConditionReason :: V1beta2DeploymentCondition -> Maybe Text
v1beta2DeploymentConditionMessage :: V1beta2DeploymentCondition -> Maybe Text
v1beta2DeploymentConditionLastUpdateTime :: V1beta2DeploymentCondition -> Maybe DateTime
v1beta2DeploymentConditionLastTransitionTime :: V1beta2DeploymentCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta2DeploymentConditionLastTransitionTime
      , Text
"lastUpdateTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta2DeploymentConditionLastUpdateTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2DeploymentConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2DeploymentConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta2DeploymentConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta2DeploymentConditionType
      ]


-- | Construct a value of type 'V1beta2DeploymentCondition' (by applying it's required fields, if any)
mkV1beta2DeploymentCondition
  :: Text -- ^ 'v1beta2DeploymentConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'v1beta2DeploymentConditionType': Type of deployment condition.
  -> V1beta2DeploymentCondition
mkV1beta2DeploymentCondition :: Text -> Text -> V1beta2DeploymentCondition
mkV1beta2DeploymentCondition Text
v1beta2DeploymentConditionStatus Text
v1beta2DeploymentConditionType =
  V1beta2DeploymentCondition :: Maybe DateTime
-> Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta2DeploymentCondition
V1beta2DeploymentCondition
  { v1beta2DeploymentConditionLastTransitionTime :: Maybe DateTime
v1beta2DeploymentConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1beta2DeploymentConditionLastUpdateTime :: Maybe DateTime
v1beta2DeploymentConditionLastUpdateTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1beta2DeploymentConditionMessage :: Maybe Text
v1beta2DeploymentConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2DeploymentConditionReason :: Maybe Text
v1beta2DeploymentConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta2DeploymentConditionStatus :: Text
v1beta2DeploymentConditionStatus :: Text
v1beta2DeploymentConditionStatus
  , Text
v1beta2DeploymentConditionType :: Text
v1beta2DeploymentConditionType :: Text
v1beta2DeploymentConditionType
  }

-- ** V1beta2DeploymentList
-- | V1beta2DeploymentList
-- DeploymentList is a list of Deployments.
data V1beta2DeploymentList = V1beta2DeploymentList
  { V1beta2DeploymentList -> Maybe Text
v1beta2DeploymentListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta2DeploymentList -> [V1beta2Deployment]
v1beta2DeploymentListItems :: !([V1beta2Deployment]) -- ^ /Required/ "items" - Items is the list of Deployments.
  , V1beta2DeploymentList -> Maybe Text
v1beta2DeploymentListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta2DeploymentList -> Maybe V1ListMeta
v1beta2DeploymentListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta2DeploymentList -> ShowS
[V1beta2DeploymentList] -> ShowS
V1beta2DeploymentList -> String
(Int -> V1beta2DeploymentList -> ShowS)
-> (V1beta2DeploymentList -> String)
-> ([V1beta2DeploymentList] -> ShowS)
-> Show V1beta2DeploymentList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2DeploymentList] -> ShowS
$cshowList :: [V1beta2DeploymentList] -> ShowS
show :: V1beta2DeploymentList -> String
$cshow :: V1beta2DeploymentList -> String
showsPrec :: Int -> V1beta2DeploymentList -> ShowS
$cshowsPrec :: Int -> V1beta2DeploymentList -> ShowS
P.Show, V1beta2DeploymentList -> V1beta2DeploymentList -> Bool
(V1beta2DeploymentList -> V1beta2DeploymentList -> Bool)
-> (V1beta2DeploymentList -> V1beta2DeploymentList -> Bool)
-> Eq V1beta2DeploymentList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2DeploymentList -> V1beta2DeploymentList -> Bool
$c/= :: V1beta2DeploymentList -> V1beta2DeploymentList -> Bool
== :: V1beta2DeploymentList -> V1beta2DeploymentList -> Bool
$c== :: V1beta2DeploymentList -> V1beta2DeploymentList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2DeploymentList
instance A.FromJSON V1beta2DeploymentList where
  parseJSON :: Value -> Parser V1beta2DeploymentList
parseJSON = String
-> (Object -> Parser V1beta2DeploymentList)
-> Value
-> Parser V1beta2DeploymentList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2DeploymentList" ((Object -> Parser V1beta2DeploymentList)
 -> Value -> Parser V1beta2DeploymentList)
-> (Object -> Parser V1beta2DeploymentList)
-> Value
-> Parser V1beta2DeploymentList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta2Deployment]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta2DeploymentList
V1beta2DeploymentList
      (Maybe Text
 -> [V1beta2Deployment]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta2DeploymentList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta2Deployment]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta2DeploymentList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta2Deployment]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta2DeploymentList)
-> Parser [V1beta2Deployment]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1beta2DeploymentList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta2Deployment]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta2DeploymentList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta2DeploymentList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta2DeploymentList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta2DeploymentList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta2DeploymentList
instance A.ToJSON V1beta2DeploymentList where
  toJSON :: V1beta2DeploymentList -> Value
toJSON V1beta2DeploymentList {[V1beta2Deployment]
Maybe Text
Maybe V1ListMeta
v1beta2DeploymentListMetadata :: Maybe V1ListMeta
v1beta2DeploymentListKind :: Maybe Text
v1beta2DeploymentListItems :: [V1beta2Deployment]
v1beta2DeploymentListApiVersion :: Maybe Text
v1beta2DeploymentListMetadata :: V1beta2DeploymentList -> Maybe V1ListMeta
v1beta2DeploymentListKind :: V1beta2DeploymentList -> Maybe Text
v1beta2DeploymentListItems :: V1beta2DeploymentList -> [V1beta2Deployment]
v1beta2DeploymentListApiVersion :: V1beta2DeploymentList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2DeploymentListApiVersion
      , Text
"items" Text -> [V1beta2Deployment] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta2Deployment]
v1beta2DeploymentListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2DeploymentListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta2DeploymentListMetadata
      ]


-- | Construct a value of type 'V1beta2DeploymentList' (by applying it's required fields, if any)
mkV1beta2DeploymentList
  :: [V1beta2Deployment] -- ^ 'v1beta2DeploymentListItems': Items is the list of Deployments.
  -> V1beta2DeploymentList
mkV1beta2DeploymentList :: [V1beta2Deployment] -> V1beta2DeploymentList
mkV1beta2DeploymentList [V1beta2Deployment]
v1beta2DeploymentListItems =
  V1beta2DeploymentList :: Maybe Text
-> [V1beta2Deployment]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta2DeploymentList
V1beta2DeploymentList
  { v1beta2DeploymentListApiVersion :: Maybe Text
v1beta2DeploymentListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta2Deployment]
v1beta2DeploymentListItems :: [V1beta2Deployment]
v1beta2DeploymentListItems :: [V1beta2Deployment]
v1beta2DeploymentListItems
  , v1beta2DeploymentListKind :: Maybe Text
v1beta2DeploymentListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2DeploymentListMetadata :: Maybe V1ListMeta
v1beta2DeploymentListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta2DeploymentSpec
-- | V1beta2DeploymentSpec
-- DeploymentSpec is the specification of the desired behavior of the Deployment.
data V1beta2DeploymentSpec = V1beta2DeploymentSpec
  { V1beta2DeploymentSpec -> Maybe Int
v1beta2DeploymentSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)
  , V1beta2DeploymentSpec -> Maybe Bool
v1beta2DeploymentSpecPaused :: !(Maybe Bool) -- ^ "paused" - Indicates that the deployment is paused.
  , V1beta2DeploymentSpec -> Maybe Int
v1beta2DeploymentSpecProgressDeadlineSeconds :: !(Maybe Int) -- ^ "progressDeadlineSeconds" - The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.
  , V1beta2DeploymentSpec -> Maybe Int
v1beta2DeploymentSpecReplicas :: !(Maybe Int) -- ^ "replicas" - Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.
  , V1beta2DeploymentSpec -> Maybe Int
v1beta2DeploymentSpecRevisionHistoryLimit :: !(Maybe Int) -- ^ "revisionHistoryLimit" - The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.
  , V1beta2DeploymentSpec -> V1LabelSelector
v1beta2DeploymentSpecSelector :: !(V1LabelSelector) -- ^ /Required/ "selector"
  , V1beta2DeploymentSpec -> Maybe V1beta2DeploymentStrategy
v1beta2DeploymentSpecStrategy :: !(Maybe V1beta2DeploymentStrategy) -- ^ "strategy"
  , V1beta2DeploymentSpec -> V1PodTemplateSpec
v1beta2DeploymentSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"
  } deriving (Int -> V1beta2DeploymentSpec -> ShowS
[V1beta2DeploymentSpec] -> ShowS
V1beta2DeploymentSpec -> String
(Int -> V1beta2DeploymentSpec -> ShowS)
-> (V1beta2DeploymentSpec -> String)
-> ([V1beta2DeploymentSpec] -> ShowS)
-> Show V1beta2DeploymentSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2DeploymentSpec] -> ShowS
$cshowList :: [V1beta2DeploymentSpec] -> ShowS
show :: V1beta2DeploymentSpec -> String
$cshow :: V1beta2DeploymentSpec -> String
showsPrec :: Int -> V1beta2DeploymentSpec -> ShowS
$cshowsPrec :: Int -> V1beta2DeploymentSpec -> ShowS
P.Show, V1beta2DeploymentSpec -> V1beta2DeploymentSpec -> Bool
(V1beta2DeploymentSpec -> V1beta2DeploymentSpec -> Bool)
-> (V1beta2DeploymentSpec -> V1beta2DeploymentSpec -> Bool)
-> Eq V1beta2DeploymentSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2DeploymentSpec -> V1beta2DeploymentSpec -> Bool
$c/= :: V1beta2DeploymentSpec -> V1beta2DeploymentSpec -> Bool
== :: V1beta2DeploymentSpec -> V1beta2DeploymentSpec -> Bool
$c== :: V1beta2DeploymentSpec -> V1beta2DeploymentSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2DeploymentSpec
instance A.FromJSON V1beta2DeploymentSpec where
  parseJSON :: Value -> Parser V1beta2DeploymentSpec
parseJSON = String
-> (Object -> Parser V1beta2DeploymentSpec)
-> Value
-> Parser V1beta2DeploymentSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2DeploymentSpec" ((Object -> Parser V1beta2DeploymentSpec)
 -> Value -> Parser V1beta2DeploymentSpec)
-> (Object -> Parser V1beta2DeploymentSpec)
-> Value
-> Parser V1beta2DeploymentSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Bool
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> V1LabelSelector
-> Maybe V1beta2DeploymentStrategy
-> V1PodTemplateSpec
-> V1beta2DeploymentSpec
V1beta2DeploymentSpec
      (Maybe Int
 -> Maybe Bool
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> V1LabelSelector
 -> Maybe V1beta2DeploymentStrategy
 -> V1PodTemplateSpec
 -> V1beta2DeploymentSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> V1LabelSelector
      -> Maybe V1beta2DeploymentStrategy
      -> V1PodTemplateSpec
      -> V1beta2DeploymentSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minReadySeconds")
      Parser
  (Maybe Bool
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> V1LabelSelector
   -> Maybe V1beta2DeploymentStrategy
   -> V1PodTemplateSpec
   -> V1beta2DeploymentSpec)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> V1LabelSelector
      -> Maybe V1beta2DeploymentStrategy
      -> V1PodTemplateSpec
      -> V1beta2DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"paused")
      Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> V1LabelSelector
   -> Maybe V1beta2DeploymentStrategy
   -> V1PodTemplateSpec
   -> V1beta2DeploymentSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> V1LabelSelector
      -> Maybe V1beta2DeploymentStrategy
      -> V1PodTemplateSpec
      -> V1beta2DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"progressDeadlineSeconds")
      Parser
  (Maybe Int
   -> Maybe Int
   -> V1LabelSelector
   -> Maybe V1beta2DeploymentStrategy
   -> V1PodTemplateSpec
   -> V1beta2DeploymentSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> V1LabelSelector
      -> Maybe V1beta2DeploymentStrategy
      -> V1PodTemplateSpec
      -> V1beta2DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")
      Parser
  (Maybe Int
   -> V1LabelSelector
   -> Maybe V1beta2DeploymentStrategy
   -> V1PodTemplateSpec
   -> V1beta2DeploymentSpec)
-> Parser (Maybe Int)
-> Parser
     (V1LabelSelector
      -> Maybe V1beta2DeploymentStrategy
      -> V1PodTemplateSpec
      -> V1beta2DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"revisionHistoryLimit")
      Parser
  (V1LabelSelector
   -> Maybe V1beta2DeploymentStrategy
   -> V1PodTemplateSpec
   -> V1beta2DeploymentSpec)
-> Parser V1LabelSelector
-> Parser
     (Maybe V1beta2DeploymentStrategy
      -> V1PodTemplateSpec -> V1beta2DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1LabelSelector
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"selector")
      Parser
  (Maybe V1beta2DeploymentStrategy
   -> V1PodTemplateSpec -> V1beta2DeploymentSpec)
-> Parser (Maybe V1beta2DeploymentStrategy)
-> Parser (V1PodTemplateSpec -> V1beta2DeploymentSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta2DeploymentStrategy)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"strategy")
      Parser (V1PodTemplateSpec -> V1beta2DeploymentSpec)
-> Parser V1PodTemplateSpec -> Parser V1beta2DeploymentSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1PodTemplateSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"template")

-- | ToJSON V1beta2DeploymentSpec
instance A.ToJSON V1beta2DeploymentSpec where
  toJSON :: V1beta2DeploymentSpec -> Value
toJSON V1beta2DeploymentSpec {Maybe Bool
Maybe Int
Maybe V1beta2DeploymentStrategy
V1PodTemplateSpec
V1LabelSelector
v1beta2DeploymentSpecTemplate :: V1PodTemplateSpec
v1beta2DeploymentSpecStrategy :: Maybe V1beta2DeploymentStrategy
v1beta2DeploymentSpecSelector :: V1LabelSelector
v1beta2DeploymentSpecRevisionHistoryLimit :: Maybe Int
v1beta2DeploymentSpecReplicas :: Maybe Int
v1beta2DeploymentSpecProgressDeadlineSeconds :: Maybe Int
v1beta2DeploymentSpecPaused :: Maybe Bool
v1beta2DeploymentSpecMinReadySeconds :: Maybe Int
v1beta2DeploymentSpecTemplate :: V1beta2DeploymentSpec -> V1PodTemplateSpec
v1beta2DeploymentSpecStrategy :: V1beta2DeploymentSpec -> Maybe V1beta2DeploymentStrategy
v1beta2DeploymentSpecSelector :: V1beta2DeploymentSpec -> V1LabelSelector
v1beta2DeploymentSpecRevisionHistoryLimit :: V1beta2DeploymentSpec -> Maybe Int
v1beta2DeploymentSpecReplicas :: V1beta2DeploymentSpec -> Maybe Int
v1beta2DeploymentSpecProgressDeadlineSeconds :: V1beta2DeploymentSpec -> Maybe Int
v1beta2DeploymentSpecPaused :: V1beta2DeploymentSpec -> Maybe Bool
v1beta2DeploymentSpecMinReadySeconds :: V1beta2DeploymentSpec -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"minReadySeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2DeploymentSpecMinReadySeconds
      , Text
"paused" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v1beta2DeploymentSpecPaused
      , Text
"progressDeadlineSeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2DeploymentSpecProgressDeadlineSeconds
      , Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2DeploymentSpecReplicas
      , Text
"revisionHistoryLimit" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2DeploymentSpecRevisionHistoryLimit
      , Text
"selector" Text -> V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1LabelSelector
v1beta2DeploymentSpecSelector
      , Text
"strategy" Text -> Maybe V1beta2DeploymentStrategy -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta2DeploymentStrategy
v1beta2DeploymentSpecStrategy
      , Text
"template" Text -> V1PodTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1PodTemplateSpec
v1beta2DeploymentSpecTemplate
      ]


-- | Construct a value of type 'V1beta2DeploymentSpec' (by applying it's required fields, if any)
mkV1beta2DeploymentSpec
  :: V1LabelSelector -- ^ 'v1beta2DeploymentSpecSelector' 
  -> V1PodTemplateSpec -- ^ 'v1beta2DeploymentSpecTemplate' 
  -> V1beta2DeploymentSpec
mkV1beta2DeploymentSpec :: V1LabelSelector -> V1PodTemplateSpec -> V1beta2DeploymentSpec
mkV1beta2DeploymentSpec V1LabelSelector
v1beta2DeploymentSpecSelector V1PodTemplateSpec
v1beta2DeploymentSpecTemplate =
  V1beta2DeploymentSpec :: Maybe Int
-> Maybe Bool
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> V1LabelSelector
-> Maybe V1beta2DeploymentStrategy
-> V1PodTemplateSpec
-> V1beta2DeploymentSpec
V1beta2DeploymentSpec
  { v1beta2DeploymentSpecMinReadySeconds :: Maybe Int
v1beta2DeploymentSpecMinReadySeconds = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2DeploymentSpecPaused :: Maybe Bool
v1beta2DeploymentSpecPaused = Maybe Bool
forall a. Maybe a
Nothing
  , v1beta2DeploymentSpecProgressDeadlineSeconds :: Maybe Int
v1beta2DeploymentSpecProgressDeadlineSeconds = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2DeploymentSpecReplicas :: Maybe Int
v1beta2DeploymentSpecReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2DeploymentSpecRevisionHistoryLimit :: Maybe Int
v1beta2DeploymentSpecRevisionHistoryLimit = Maybe Int
forall a. Maybe a
Nothing
  , V1LabelSelector
v1beta2DeploymentSpecSelector :: V1LabelSelector
v1beta2DeploymentSpecSelector :: V1LabelSelector
v1beta2DeploymentSpecSelector
  , v1beta2DeploymentSpecStrategy :: Maybe V1beta2DeploymentStrategy
v1beta2DeploymentSpecStrategy = Maybe V1beta2DeploymentStrategy
forall a. Maybe a
Nothing
  , V1PodTemplateSpec
v1beta2DeploymentSpecTemplate :: V1PodTemplateSpec
v1beta2DeploymentSpecTemplate :: V1PodTemplateSpec
v1beta2DeploymentSpecTemplate
  }

-- ** V1beta2DeploymentStatus
-- | V1beta2DeploymentStatus
-- DeploymentStatus is the most recently observed status of the Deployment.
data V1beta2DeploymentStatus = V1beta2DeploymentStatus
  { V1beta2DeploymentStatus -> Maybe Int
v1beta2DeploymentStatusAvailableReplicas :: !(Maybe Int) -- ^ "availableReplicas" - Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.
  , V1beta2DeploymentStatus -> Maybe Int
v1beta2DeploymentStatusCollisionCount :: !(Maybe Int) -- ^ "collisionCount" - Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.
  , V1beta2DeploymentStatus -> Maybe [V1beta2DeploymentCondition]
v1beta2DeploymentStatusConditions :: !(Maybe [V1beta2DeploymentCondition]) -- ^ "conditions" - Represents the latest available observations of a deployment&#39;s current state.
  , V1beta2DeploymentStatus -> Maybe Integer
v1beta2DeploymentStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - The generation observed by the deployment controller.
  , V1beta2DeploymentStatus -> Maybe Int
v1beta2DeploymentStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - Total number of ready pods targeted by this deployment.
  , V1beta2DeploymentStatus -> Maybe Int
v1beta2DeploymentStatusReplicas :: !(Maybe Int) -- ^ "replicas" - Total number of non-terminated pods targeted by this deployment (their labels match the selector).
  , V1beta2DeploymentStatus -> Maybe Int
v1beta2DeploymentStatusUnavailableReplicas :: !(Maybe Int) -- ^ "unavailableReplicas" - Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.
  , V1beta2DeploymentStatus -> Maybe Int
v1beta2DeploymentStatusUpdatedReplicas :: !(Maybe Int) -- ^ "updatedReplicas" - Total number of non-terminated pods targeted by this deployment that have the desired template spec.
  } deriving (Int -> V1beta2DeploymentStatus -> ShowS
[V1beta2DeploymentStatus] -> ShowS
V1beta2DeploymentStatus -> String
(Int -> V1beta2DeploymentStatus -> ShowS)
-> (V1beta2DeploymentStatus -> String)
-> ([V1beta2DeploymentStatus] -> ShowS)
-> Show V1beta2DeploymentStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2DeploymentStatus] -> ShowS
$cshowList :: [V1beta2DeploymentStatus] -> ShowS
show :: V1beta2DeploymentStatus -> String
$cshow :: V1beta2DeploymentStatus -> String
showsPrec :: Int -> V1beta2DeploymentStatus -> ShowS
$cshowsPrec :: Int -> V1beta2DeploymentStatus -> ShowS
P.Show, V1beta2DeploymentStatus -> V1beta2DeploymentStatus -> Bool
(V1beta2DeploymentStatus -> V1beta2DeploymentStatus -> Bool)
-> (V1beta2DeploymentStatus -> V1beta2DeploymentStatus -> Bool)
-> Eq V1beta2DeploymentStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2DeploymentStatus -> V1beta2DeploymentStatus -> Bool
$c/= :: V1beta2DeploymentStatus -> V1beta2DeploymentStatus -> Bool
== :: V1beta2DeploymentStatus -> V1beta2DeploymentStatus -> Bool
$c== :: V1beta2DeploymentStatus -> V1beta2DeploymentStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2DeploymentStatus
instance A.FromJSON V1beta2DeploymentStatus where
  parseJSON :: Value -> Parser V1beta2DeploymentStatus
parseJSON = String
-> (Object -> Parser V1beta2DeploymentStatus)
-> Value
-> Parser V1beta2DeploymentStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2DeploymentStatus" ((Object -> Parser V1beta2DeploymentStatus)
 -> Value -> Parser V1beta2DeploymentStatus)
-> (Object -> Parser V1beta2DeploymentStatus)
-> Value
-> Parser V1beta2DeploymentStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Int
-> Maybe [V1beta2DeploymentCondition]
-> Maybe Integer
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> V1beta2DeploymentStatus
V1beta2DeploymentStatus
      (Maybe Int
 -> Maybe Int
 -> Maybe [V1beta2DeploymentCondition]
 -> Maybe Integer
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> V1beta2DeploymentStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe [V1beta2DeploymentCondition]
      -> Maybe Integer
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> V1beta2DeploymentStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"availableReplicas")
      Parser
  (Maybe Int
   -> Maybe [V1beta2DeploymentCondition]
   -> Maybe Integer
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> V1beta2DeploymentStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe [V1beta2DeploymentCondition]
      -> Maybe Integer
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> V1beta2DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"collisionCount")
      Parser
  (Maybe [V1beta2DeploymentCondition]
   -> Maybe Integer
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> V1beta2DeploymentStatus)
-> Parser (Maybe [V1beta2DeploymentCondition])
-> Parser
     (Maybe Integer
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> V1beta2DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta2DeploymentCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Maybe Integer
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> V1beta2DeploymentStatus)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Int
      -> Maybe Int -> Maybe Int -> Maybe Int -> V1beta2DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")
      Parser
  (Maybe Int
   -> Maybe Int -> Maybe Int -> Maybe Int -> V1beta2DeploymentStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int -> Maybe Int -> Maybe Int -> V1beta2DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readyReplicas")
      Parser
  (Maybe Int -> Maybe Int -> Maybe Int -> V1beta2DeploymentStatus)
-> Parser (Maybe Int)
-> Parser (Maybe Int -> Maybe Int -> V1beta2DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")
      Parser (Maybe Int -> Maybe Int -> V1beta2DeploymentStatus)
-> Parser (Maybe Int)
-> Parser (Maybe Int -> V1beta2DeploymentStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"unavailableReplicas")
      Parser (Maybe Int -> V1beta2DeploymentStatus)
-> Parser (Maybe Int) -> Parser V1beta2DeploymentStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updatedReplicas")

-- | ToJSON V1beta2DeploymentStatus
instance A.ToJSON V1beta2DeploymentStatus where
  toJSON :: V1beta2DeploymentStatus -> Value
toJSON V1beta2DeploymentStatus {Maybe Int
Maybe Integer
Maybe [V1beta2DeploymentCondition]
v1beta2DeploymentStatusUpdatedReplicas :: Maybe Int
v1beta2DeploymentStatusUnavailableReplicas :: Maybe Int
v1beta2DeploymentStatusReplicas :: Maybe Int
v1beta2DeploymentStatusReadyReplicas :: Maybe Int
v1beta2DeploymentStatusObservedGeneration :: Maybe Integer
v1beta2DeploymentStatusConditions :: Maybe [V1beta2DeploymentCondition]
v1beta2DeploymentStatusCollisionCount :: Maybe Int
v1beta2DeploymentStatusAvailableReplicas :: Maybe Int
v1beta2DeploymentStatusUpdatedReplicas :: V1beta2DeploymentStatus -> Maybe Int
v1beta2DeploymentStatusUnavailableReplicas :: V1beta2DeploymentStatus -> Maybe Int
v1beta2DeploymentStatusReplicas :: V1beta2DeploymentStatus -> Maybe Int
v1beta2DeploymentStatusReadyReplicas :: V1beta2DeploymentStatus -> Maybe Int
v1beta2DeploymentStatusObservedGeneration :: V1beta2DeploymentStatus -> Maybe Integer
v1beta2DeploymentStatusConditions :: V1beta2DeploymentStatus -> Maybe [V1beta2DeploymentCondition]
v1beta2DeploymentStatusCollisionCount :: V1beta2DeploymentStatus -> Maybe Int
v1beta2DeploymentStatusAvailableReplicas :: V1beta2DeploymentStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"availableReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2DeploymentStatusAvailableReplicas
      , Text
"collisionCount" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2DeploymentStatusCollisionCount
      , Text
"conditions" Text -> Maybe [V1beta2DeploymentCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta2DeploymentCondition]
v1beta2DeploymentStatusConditions
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1beta2DeploymentStatusObservedGeneration
      , Text
"readyReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2DeploymentStatusReadyReplicas
      , Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2DeploymentStatusReplicas
      , Text
"unavailableReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2DeploymentStatusUnavailableReplicas
      , Text
"updatedReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2DeploymentStatusUpdatedReplicas
      ]


-- | Construct a value of type 'V1beta2DeploymentStatus' (by applying it's required fields, if any)
mkV1beta2DeploymentStatus
  :: V1beta2DeploymentStatus
mkV1beta2DeploymentStatus :: V1beta2DeploymentStatus
mkV1beta2DeploymentStatus =
  V1beta2DeploymentStatus :: Maybe Int
-> Maybe Int
-> Maybe [V1beta2DeploymentCondition]
-> Maybe Integer
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> V1beta2DeploymentStatus
V1beta2DeploymentStatus
  { v1beta2DeploymentStatusAvailableReplicas :: Maybe Int
v1beta2DeploymentStatusAvailableReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2DeploymentStatusCollisionCount :: Maybe Int
v1beta2DeploymentStatusCollisionCount = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2DeploymentStatusConditions :: Maybe [V1beta2DeploymentCondition]
v1beta2DeploymentStatusConditions = Maybe [V1beta2DeploymentCondition]
forall a. Maybe a
Nothing
  , v1beta2DeploymentStatusObservedGeneration :: Maybe Integer
v1beta2DeploymentStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  , v1beta2DeploymentStatusReadyReplicas :: Maybe Int
v1beta2DeploymentStatusReadyReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2DeploymentStatusReplicas :: Maybe Int
v1beta2DeploymentStatusReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2DeploymentStatusUnavailableReplicas :: Maybe Int
v1beta2DeploymentStatusUnavailableReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2DeploymentStatusUpdatedReplicas :: Maybe Int
v1beta2DeploymentStatusUpdatedReplicas = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1beta2DeploymentStrategy
-- | V1beta2DeploymentStrategy
-- DeploymentStrategy describes how to replace existing pods with new ones.
data V1beta2DeploymentStrategy = V1beta2DeploymentStrategy
  { V1beta2DeploymentStrategy -> Maybe V1beta2RollingUpdateDeployment
v1beta2DeploymentStrategyRollingUpdate :: !(Maybe V1beta2RollingUpdateDeployment) -- ^ "rollingUpdate"
  , V1beta2DeploymentStrategy -> Maybe Text
v1beta2DeploymentStrategyType :: !(Maybe Text) -- ^ "type" - Type of deployment. Can be \&quot;Recreate\&quot; or \&quot;RollingUpdate\&quot;. Default is RollingUpdate.
  } deriving (Int -> V1beta2DeploymentStrategy -> ShowS
[V1beta2DeploymentStrategy] -> ShowS
V1beta2DeploymentStrategy -> String
(Int -> V1beta2DeploymentStrategy -> ShowS)
-> (V1beta2DeploymentStrategy -> String)
-> ([V1beta2DeploymentStrategy] -> ShowS)
-> Show V1beta2DeploymentStrategy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2DeploymentStrategy] -> ShowS
$cshowList :: [V1beta2DeploymentStrategy] -> ShowS
show :: V1beta2DeploymentStrategy -> String
$cshow :: V1beta2DeploymentStrategy -> String
showsPrec :: Int -> V1beta2DeploymentStrategy -> ShowS
$cshowsPrec :: Int -> V1beta2DeploymentStrategy -> ShowS
P.Show, V1beta2DeploymentStrategy -> V1beta2DeploymentStrategy -> Bool
(V1beta2DeploymentStrategy -> V1beta2DeploymentStrategy -> Bool)
-> (V1beta2DeploymentStrategy -> V1beta2DeploymentStrategy -> Bool)
-> Eq V1beta2DeploymentStrategy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2DeploymentStrategy -> V1beta2DeploymentStrategy -> Bool
$c/= :: V1beta2DeploymentStrategy -> V1beta2DeploymentStrategy -> Bool
== :: V1beta2DeploymentStrategy -> V1beta2DeploymentStrategy -> Bool
$c== :: V1beta2DeploymentStrategy -> V1beta2DeploymentStrategy -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2DeploymentStrategy
instance A.FromJSON V1beta2DeploymentStrategy where
  parseJSON :: Value -> Parser V1beta2DeploymentStrategy
parseJSON = String
-> (Object -> Parser V1beta2DeploymentStrategy)
-> Value
-> Parser V1beta2DeploymentStrategy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2DeploymentStrategy" ((Object -> Parser V1beta2DeploymentStrategy)
 -> Value -> Parser V1beta2DeploymentStrategy)
-> (Object -> Parser V1beta2DeploymentStrategy)
-> Value
-> Parser V1beta2DeploymentStrategy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1beta2RollingUpdateDeployment
-> Maybe Text -> V1beta2DeploymentStrategy
V1beta2DeploymentStrategy
      (Maybe V1beta2RollingUpdateDeployment
 -> Maybe Text -> V1beta2DeploymentStrategy)
-> Parser (Maybe V1beta2RollingUpdateDeployment)
-> Parser (Maybe Text -> V1beta2DeploymentStrategy)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1beta2RollingUpdateDeployment)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rollingUpdate")
      Parser (Maybe Text -> V1beta2DeploymentStrategy)
-> Parser (Maybe Text) -> Parser V1beta2DeploymentStrategy
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")

-- | ToJSON V1beta2DeploymentStrategy
instance A.ToJSON V1beta2DeploymentStrategy where
  toJSON :: V1beta2DeploymentStrategy -> Value
toJSON V1beta2DeploymentStrategy {Maybe Text
Maybe V1beta2RollingUpdateDeployment
v1beta2DeploymentStrategyType :: Maybe Text
v1beta2DeploymentStrategyRollingUpdate :: Maybe V1beta2RollingUpdateDeployment
v1beta2DeploymentStrategyType :: V1beta2DeploymentStrategy -> Maybe Text
v1beta2DeploymentStrategyRollingUpdate :: V1beta2DeploymentStrategy -> Maybe V1beta2RollingUpdateDeployment
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"rollingUpdate" Text -> Maybe V1beta2RollingUpdateDeployment -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta2RollingUpdateDeployment
v1beta2DeploymentStrategyRollingUpdate
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2DeploymentStrategyType
      ]


-- | Construct a value of type 'V1beta2DeploymentStrategy' (by applying it's required fields, if any)
mkV1beta2DeploymentStrategy
  :: V1beta2DeploymentStrategy
mkV1beta2DeploymentStrategy :: V1beta2DeploymentStrategy
mkV1beta2DeploymentStrategy =
  V1beta2DeploymentStrategy :: Maybe V1beta2RollingUpdateDeployment
-> Maybe Text -> V1beta2DeploymentStrategy
V1beta2DeploymentStrategy
  { v1beta2DeploymentStrategyRollingUpdate :: Maybe V1beta2RollingUpdateDeployment
v1beta2DeploymentStrategyRollingUpdate = Maybe V1beta2RollingUpdateDeployment
forall a. Maybe a
Nothing
  , v1beta2DeploymentStrategyType :: Maybe Text
v1beta2DeploymentStrategyType = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta2ReplicaSet
-- | V1beta2ReplicaSet
-- DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1/ReplicaSet. See the release notes for more information. ReplicaSet ensures that a specified number of pod replicas are running at any given time.
data V1beta2ReplicaSet = V1beta2ReplicaSet
  { V1beta2ReplicaSet -> Maybe Text
v1beta2ReplicaSetApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta2ReplicaSet -> Maybe Text
v1beta2ReplicaSetKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta2ReplicaSet -> Maybe V1ObjectMeta
v1beta2ReplicaSetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta2ReplicaSet -> Maybe V1beta2ReplicaSetSpec
v1beta2ReplicaSetSpec :: !(Maybe V1beta2ReplicaSetSpec) -- ^ "spec"
  , V1beta2ReplicaSet -> Maybe V1beta2ReplicaSetStatus
v1beta2ReplicaSetStatus :: !(Maybe V1beta2ReplicaSetStatus) -- ^ "status"
  } deriving (Int -> V1beta2ReplicaSet -> ShowS
[V1beta2ReplicaSet] -> ShowS
V1beta2ReplicaSet -> String
(Int -> V1beta2ReplicaSet -> ShowS)
-> (V1beta2ReplicaSet -> String)
-> ([V1beta2ReplicaSet] -> ShowS)
-> Show V1beta2ReplicaSet
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2ReplicaSet] -> ShowS
$cshowList :: [V1beta2ReplicaSet] -> ShowS
show :: V1beta2ReplicaSet -> String
$cshow :: V1beta2ReplicaSet -> String
showsPrec :: Int -> V1beta2ReplicaSet -> ShowS
$cshowsPrec :: Int -> V1beta2ReplicaSet -> ShowS
P.Show, V1beta2ReplicaSet -> V1beta2ReplicaSet -> Bool
(V1beta2ReplicaSet -> V1beta2ReplicaSet -> Bool)
-> (V1beta2ReplicaSet -> V1beta2ReplicaSet -> Bool)
-> Eq V1beta2ReplicaSet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2ReplicaSet -> V1beta2ReplicaSet -> Bool
$c/= :: V1beta2ReplicaSet -> V1beta2ReplicaSet -> Bool
== :: V1beta2ReplicaSet -> V1beta2ReplicaSet -> Bool
$c== :: V1beta2ReplicaSet -> V1beta2ReplicaSet -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2ReplicaSet
instance A.FromJSON V1beta2ReplicaSet where
  parseJSON :: Value -> Parser V1beta2ReplicaSet
parseJSON = String
-> (Object -> Parser V1beta2ReplicaSet)
-> Value
-> Parser V1beta2ReplicaSet
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2ReplicaSet" ((Object -> Parser V1beta2ReplicaSet)
 -> Value -> Parser V1beta2ReplicaSet)
-> (Object -> Parser V1beta2ReplicaSet)
-> Value
-> Parser V1beta2ReplicaSet
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta2ReplicaSetSpec
-> Maybe V1beta2ReplicaSetStatus
-> V1beta2ReplicaSet
V1beta2ReplicaSet
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1beta2ReplicaSetSpec
 -> Maybe V1beta2ReplicaSetStatus
 -> V1beta2ReplicaSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1beta2ReplicaSetSpec
      -> Maybe V1beta2ReplicaSetStatus
      -> V1beta2ReplicaSet)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1beta2ReplicaSetSpec
   -> Maybe V1beta2ReplicaSetStatus
   -> V1beta2ReplicaSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1beta2ReplicaSetSpec
      -> Maybe V1beta2ReplicaSetStatus
      -> V1beta2ReplicaSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1beta2ReplicaSetSpec
   -> Maybe V1beta2ReplicaSetStatus
   -> V1beta2ReplicaSet)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1beta2ReplicaSetSpec
      -> Maybe V1beta2ReplicaSetStatus -> V1beta2ReplicaSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1beta2ReplicaSetSpec
   -> Maybe V1beta2ReplicaSetStatus -> V1beta2ReplicaSet)
-> Parser (Maybe V1beta2ReplicaSetSpec)
-> Parser (Maybe V1beta2ReplicaSetStatus -> V1beta2ReplicaSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta2ReplicaSetSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1beta2ReplicaSetStatus -> V1beta2ReplicaSet)
-> Parser (Maybe V1beta2ReplicaSetStatus)
-> Parser V1beta2ReplicaSet
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta2ReplicaSetStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta2ReplicaSet
instance A.ToJSON V1beta2ReplicaSet where
  toJSON :: V1beta2ReplicaSet -> Value
toJSON V1beta2ReplicaSet {Maybe Text
Maybe V1beta2ReplicaSetStatus
Maybe V1beta2ReplicaSetSpec
Maybe V1ObjectMeta
v1beta2ReplicaSetStatus :: Maybe V1beta2ReplicaSetStatus
v1beta2ReplicaSetSpec :: Maybe V1beta2ReplicaSetSpec
v1beta2ReplicaSetMetadata :: Maybe V1ObjectMeta
v1beta2ReplicaSetKind :: Maybe Text
v1beta2ReplicaSetApiVersion :: Maybe Text
v1beta2ReplicaSetStatus :: V1beta2ReplicaSet -> Maybe V1beta2ReplicaSetStatus
v1beta2ReplicaSetSpec :: V1beta2ReplicaSet -> Maybe V1beta2ReplicaSetSpec
v1beta2ReplicaSetMetadata :: V1beta2ReplicaSet -> Maybe V1ObjectMeta
v1beta2ReplicaSetKind :: V1beta2ReplicaSet -> Maybe Text
v1beta2ReplicaSetApiVersion :: V1beta2ReplicaSet -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2ReplicaSetApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2ReplicaSetKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta2ReplicaSetMetadata
      , Text
"spec" Text -> Maybe V1beta2ReplicaSetSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta2ReplicaSetSpec
v1beta2ReplicaSetSpec
      , Text
"status" Text -> Maybe V1beta2ReplicaSetStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta2ReplicaSetStatus
v1beta2ReplicaSetStatus
      ]


-- | Construct a value of type 'V1beta2ReplicaSet' (by applying it's required fields, if any)
mkV1beta2ReplicaSet
  :: V1beta2ReplicaSet
mkV1beta2ReplicaSet :: V1beta2ReplicaSet
mkV1beta2ReplicaSet =
  V1beta2ReplicaSet :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta2ReplicaSetSpec
-> Maybe V1beta2ReplicaSetStatus
-> V1beta2ReplicaSet
V1beta2ReplicaSet
  { v1beta2ReplicaSetApiVersion :: Maybe Text
v1beta2ReplicaSetApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2ReplicaSetKind :: Maybe Text
v1beta2ReplicaSetKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2ReplicaSetMetadata :: Maybe V1ObjectMeta
v1beta2ReplicaSetMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta2ReplicaSetSpec :: Maybe V1beta2ReplicaSetSpec
v1beta2ReplicaSetSpec = Maybe V1beta2ReplicaSetSpec
forall a. Maybe a
Nothing
  , v1beta2ReplicaSetStatus :: Maybe V1beta2ReplicaSetStatus
v1beta2ReplicaSetStatus = Maybe V1beta2ReplicaSetStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta2ReplicaSetCondition
-- | V1beta2ReplicaSetCondition
-- ReplicaSetCondition describes the state of a replica set at a certain point.
data V1beta2ReplicaSetCondition = V1beta2ReplicaSetCondition
  { V1beta2ReplicaSetCondition -> Maybe DateTime
v1beta2ReplicaSetConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - The last time the condition transitioned from one status to another.
  , V1beta2ReplicaSetCondition -> Maybe Text
v1beta2ReplicaSetConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.
  , V1beta2ReplicaSetCondition -> Maybe Text
v1beta2ReplicaSetConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition&#39;s last transition.
  , V1beta2ReplicaSetCondition -> Text
v1beta2ReplicaSetConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , V1beta2ReplicaSetCondition -> Text
v1beta2ReplicaSetConditionType :: !(Text) -- ^ /Required/ "type" - Type of replica set condition.
  } deriving (Int -> V1beta2ReplicaSetCondition -> ShowS
[V1beta2ReplicaSetCondition] -> ShowS
V1beta2ReplicaSetCondition -> String
(Int -> V1beta2ReplicaSetCondition -> ShowS)
-> (V1beta2ReplicaSetCondition -> String)
-> ([V1beta2ReplicaSetCondition] -> ShowS)
-> Show V1beta2ReplicaSetCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2ReplicaSetCondition] -> ShowS
$cshowList :: [V1beta2ReplicaSetCondition] -> ShowS
show :: V1beta2ReplicaSetCondition -> String
$cshow :: V1beta2ReplicaSetCondition -> String
showsPrec :: Int -> V1beta2ReplicaSetCondition -> ShowS
$cshowsPrec :: Int -> V1beta2ReplicaSetCondition -> ShowS
P.Show, V1beta2ReplicaSetCondition -> V1beta2ReplicaSetCondition -> Bool
(V1beta2ReplicaSetCondition -> V1beta2ReplicaSetCondition -> Bool)
-> (V1beta2ReplicaSetCondition
    -> V1beta2ReplicaSetCondition -> Bool)
-> Eq V1beta2ReplicaSetCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2ReplicaSetCondition -> V1beta2ReplicaSetCondition -> Bool
$c/= :: V1beta2ReplicaSetCondition -> V1beta2ReplicaSetCondition -> Bool
== :: V1beta2ReplicaSetCondition -> V1beta2ReplicaSetCondition -> Bool
$c== :: V1beta2ReplicaSetCondition -> V1beta2ReplicaSetCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2ReplicaSetCondition
instance A.FromJSON V1beta2ReplicaSetCondition where
  parseJSON :: Value -> Parser V1beta2ReplicaSetCondition
parseJSON = String
-> (Object -> Parser V1beta2ReplicaSetCondition)
-> Value
-> Parser V1beta2ReplicaSetCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2ReplicaSetCondition" ((Object -> Parser V1beta2ReplicaSetCondition)
 -> Value -> Parser V1beta2ReplicaSetCondition)
-> (Object -> Parser V1beta2ReplicaSetCondition)
-> Value
-> Parser V1beta2ReplicaSetCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta2ReplicaSetCondition
V1beta2ReplicaSetCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1beta2ReplicaSetCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text -> Text -> Text -> V1beta2ReplicaSetCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text
   -> Maybe Text -> Text -> Text -> V1beta2ReplicaSetCondition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Text -> Text -> V1beta2ReplicaSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1beta2ReplicaSetCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1beta2ReplicaSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1beta2ReplicaSetCondition)
-> Parser Text -> Parser (Text -> V1beta2ReplicaSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1beta2ReplicaSetCondition)
-> Parser Text -> Parser V1beta2ReplicaSetCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1beta2ReplicaSetCondition
instance A.ToJSON V1beta2ReplicaSetCondition where
  toJSON :: V1beta2ReplicaSetCondition -> Value
toJSON V1beta2ReplicaSetCondition {Maybe Text
Maybe DateTime
Text
v1beta2ReplicaSetConditionType :: Text
v1beta2ReplicaSetConditionStatus :: Text
v1beta2ReplicaSetConditionReason :: Maybe Text
v1beta2ReplicaSetConditionMessage :: Maybe Text
v1beta2ReplicaSetConditionLastTransitionTime :: Maybe DateTime
v1beta2ReplicaSetConditionType :: V1beta2ReplicaSetCondition -> Text
v1beta2ReplicaSetConditionStatus :: V1beta2ReplicaSetCondition -> Text
v1beta2ReplicaSetConditionReason :: V1beta2ReplicaSetCondition -> Maybe Text
v1beta2ReplicaSetConditionMessage :: V1beta2ReplicaSetCondition -> Maybe Text
v1beta2ReplicaSetConditionLastTransitionTime :: V1beta2ReplicaSetCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta2ReplicaSetConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2ReplicaSetConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2ReplicaSetConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta2ReplicaSetConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta2ReplicaSetConditionType
      ]


-- | Construct a value of type 'V1beta2ReplicaSetCondition' (by applying it's required fields, if any)
mkV1beta2ReplicaSetCondition
  :: Text -- ^ 'v1beta2ReplicaSetConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'v1beta2ReplicaSetConditionType': Type of replica set condition.
  -> V1beta2ReplicaSetCondition
mkV1beta2ReplicaSetCondition :: Text -> Text -> V1beta2ReplicaSetCondition
mkV1beta2ReplicaSetCondition Text
v1beta2ReplicaSetConditionStatus Text
v1beta2ReplicaSetConditionType =
  V1beta2ReplicaSetCondition :: Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta2ReplicaSetCondition
V1beta2ReplicaSetCondition
  { v1beta2ReplicaSetConditionLastTransitionTime :: Maybe DateTime
v1beta2ReplicaSetConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1beta2ReplicaSetConditionMessage :: Maybe Text
v1beta2ReplicaSetConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2ReplicaSetConditionReason :: Maybe Text
v1beta2ReplicaSetConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta2ReplicaSetConditionStatus :: Text
v1beta2ReplicaSetConditionStatus :: Text
v1beta2ReplicaSetConditionStatus
  , Text
v1beta2ReplicaSetConditionType :: Text
v1beta2ReplicaSetConditionType :: Text
v1beta2ReplicaSetConditionType
  }

-- ** V1beta2ReplicaSetList
-- | V1beta2ReplicaSetList
-- ReplicaSetList is a collection of ReplicaSets.
data V1beta2ReplicaSetList = V1beta2ReplicaSetList
  { V1beta2ReplicaSetList -> Maybe Text
v1beta2ReplicaSetListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta2ReplicaSetList -> [V1beta2ReplicaSet]
v1beta2ReplicaSetListItems :: !([V1beta2ReplicaSet]) -- ^ /Required/ "items" - List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
  , V1beta2ReplicaSetList -> Maybe Text
v1beta2ReplicaSetListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta2ReplicaSetList -> Maybe V1ListMeta
v1beta2ReplicaSetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta2ReplicaSetList -> ShowS
[V1beta2ReplicaSetList] -> ShowS
V1beta2ReplicaSetList -> String
(Int -> V1beta2ReplicaSetList -> ShowS)
-> (V1beta2ReplicaSetList -> String)
-> ([V1beta2ReplicaSetList] -> ShowS)
-> Show V1beta2ReplicaSetList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2ReplicaSetList] -> ShowS
$cshowList :: [V1beta2ReplicaSetList] -> ShowS
show :: V1beta2ReplicaSetList -> String
$cshow :: V1beta2ReplicaSetList -> String
showsPrec :: Int -> V1beta2ReplicaSetList -> ShowS
$cshowsPrec :: Int -> V1beta2ReplicaSetList -> ShowS
P.Show, V1beta2ReplicaSetList -> V1beta2ReplicaSetList -> Bool
(V1beta2ReplicaSetList -> V1beta2ReplicaSetList -> Bool)
-> (V1beta2ReplicaSetList -> V1beta2ReplicaSetList -> Bool)
-> Eq V1beta2ReplicaSetList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2ReplicaSetList -> V1beta2ReplicaSetList -> Bool
$c/= :: V1beta2ReplicaSetList -> V1beta2ReplicaSetList -> Bool
== :: V1beta2ReplicaSetList -> V1beta2ReplicaSetList -> Bool
$c== :: V1beta2ReplicaSetList -> V1beta2ReplicaSetList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2ReplicaSetList
instance A.FromJSON V1beta2ReplicaSetList where
  parseJSON :: Value -> Parser V1beta2ReplicaSetList
parseJSON = String
-> (Object -> Parser V1beta2ReplicaSetList)
-> Value
-> Parser V1beta2ReplicaSetList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2ReplicaSetList" ((Object -> Parser V1beta2ReplicaSetList)
 -> Value -> Parser V1beta2ReplicaSetList)
-> (Object -> Parser V1beta2ReplicaSetList)
-> Value
-> Parser V1beta2ReplicaSetList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta2ReplicaSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta2ReplicaSetList
V1beta2ReplicaSetList
      (Maybe Text
 -> [V1beta2ReplicaSet]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta2ReplicaSetList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta2ReplicaSet]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta2ReplicaSetList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta2ReplicaSet]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta2ReplicaSetList)
-> Parser [V1beta2ReplicaSet]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V1beta2ReplicaSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta2ReplicaSet]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta2ReplicaSetList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta2ReplicaSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta2ReplicaSetList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta2ReplicaSetList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta2ReplicaSetList
instance A.ToJSON V1beta2ReplicaSetList where
  toJSON :: V1beta2ReplicaSetList -> Value
toJSON V1beta2ReplicaSetList {[V1beta2ReplicaSet]
Maybe Text
Maybe V1ListMeta
v1beta2ReplicaSetListMetadata :: Maybe V1ListMeta
v1beta2ReplicaSetListKind :: Maybe Text
v1beta2ReplicaSetListItems :: [V1beta2ReplicaSet]
v1beta2ReplicaSetListApiVersion :: Maybe Text
v1beta2ReplicaSetListMetadata :: V1beta2ReplicaSetList -> Maybe V1ListMeta
v1beta2ReplicaSetListKind :: V1beta2ReplicaSetList -> Maybe Text
v1beta2ReplicaSetListItems :: V1beta2ReplicaSetList -> [V1beta2ReplicaSet]
v1beta2ReplicaSetListApiVersion :: V1beta2ReplicaSetList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2ReplicaSetListApiVersion
      , Text
"items" Text -> [V1beta2ReplicaSet] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta2ReplicaSet]
v1beta2ReplicaSetListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2ReplicaSetListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta2ReplicaSetListMetadata
      ]


-- | Construct a value of type 'V1beta2ReplicaSetList' (by applying it's required fields, if any)
mkV1beta2ReplicaSetList
  :: [V1beta2ReplicaSet] -- ^ 'v1beta2ReplicaSetListItems': List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
  -> V1beta2ReplicaSetList
mkV1beta2ReplicaSetList :: [V1beta2ReplicaSet] -> V1beta2ReplicaSetList
mkV1beta2ReplicaSetList [V1beta2ReplicaSet]
v1beta2ReplicaSetListItems =
  V1beta2ReplicaSetList :: Maybe Text
-> [V1beta2ReplicaSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta2ReplicaSetList
V1beta2ReplicaSetList
  { v1beta2ReplicaSetListApiVersion :: Maybe Text
v1beta2ReplicaSetListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta2ReplicaSet]
v1beta2ReplicaSetListItems :: [V1beta2ReplicaSet]
v1beta2ReplicaSetListItems :: [V1beta2ReplicaSet]
v1beta2ReplicaSetListItems
  , v1beta2ReplicaSetListKind :: Maybe Text
v1beta2ReplicaSetListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2ReplicaSetListMetadata :: Maybe V1ListMeta
v1beta2ReplicaSetListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta2ReplicaSetSpec
-- | V1beta2ReplicaSetSpec
-- ReplicaSetSpec is the specification of a ReplicaSet.
data V1beta2ReplicaSetSpec = V1beta2ReplicaSetSpec
  { V1beta2ReplicaSetSpec -> Maybe Int
v1beta2ReplicaSetSpecMinReadySeconds :: !(Maybe Int) -- ^ "minReadySeconds" - Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)
  , V1beta2ReplicaSetSpec -> Maybe Int
v1beta2ReplicaSetSpecReplicas :: !(Maybe Int) -- ^ "replicas" - Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller
  , V1beta2ReplicaSetSpec -> V1LabelSelector
v1beta2ReplicaSetSpecSelector :: !(V1LabelSelector) -- ^ /Required/ "selector"
  , V1beta2ReplicaSetSpec -> Maybe V1PodTemplateSpec
v1beta2ReplicaSetSpecTemplate :: !(Maybe V1PodTemplateSpec) -- ^ "template"
  } deriving (Int -> V1beta2ReplicaSetSpec -> ShowS
[V1beta2ReplicaSetSpec] -> ShowS
V1beta2ReplicaSetSpec -> String
(Int -> V1beta2ReplicaSetSpec -> ShowS)
-> (V1beta2ReplicaSetSpec -> String)
-> ([V1beta2ReplicaSetSpec] -> ShowS)
-> Show V1beta2ReplicaSetSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2ReplicaSetSpec] -> ShowS
$cshowList :: [V1beta2ReplicaSetSpec] -> ShowS
show :: V1beta2ReplicaSetSpec -> String
$cshow :: V1beta2ReplicaSetSpec -> String
showsPrec :: Int -> V1beta2ReplicaSetSpec -> ShowS
$cshowsPrec :: Int -> V1beta2ReplicaSetSpec -> ShowS
P.Show, V1beta2ReplicaSetSpec -> V1beta2ReplicaSetSpec -> Bool
(V1beta2ReplicaSetSpec -> V1beta2ReplicaSetSpec -> Bool)
-> (V1beta2ReplicaSetSpec -> V1beta2ReplicaSetSpec -> Bool)
-> Eq V1beta2ReplicaSetSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2ReplicaSetSpec -> V1beta2ReplicaSetSpec -> Bool
$c/= :: V1beta2ReplicaSetSpec -> V1beta2ReplicaSetSpec -> Bool
== :: V1beta2ReplicaSetSpec -> V1beta2ReplicaSetSpec -> Bool
$c== :: V1beta2ReplicaSetSpec -> V1beta2ReplicaSetSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2ReplicaSetSpec
instance A.FromJSON V1beta2ReplicaSetSpec where
  parseJSON :: Value -> Parser V1beta2ReplicaSetSpec
parseJSON = String
-> (Object -> Parser V1beta2ReplicaSetSpec)
-> Value
-> Parser V1beta2ReplicaSetSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2ReplicaSetSpec" ((Object -> Parser V1beta2ReplicaSetSpec)
 -> Value -> Parser V1beta2ReplicaSetSpec)
-> (Object -> Parser V1beta2ReplicaSetSpec)
-> Value
-> Parser V1beta2ReplicaSetSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Int
-> V1LabelSelector
-> Maybe V1PodTemplateSpec
-> V1beta2ReplicaSetSpec
V1beta2ReplicaSetSpec
      (Maybe Int
 -> Maybe Int
 -> V1LabelSelector
 -> Maybe V1PodTemplateSpec
 -> V1beta2ReplicaSetSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> V1LabelSelector
      -> Maybe V1PodTemplateSpec
      -> V1beta2ReplicaSetSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minReadySeconds")
      Parser
  (Maybe Int
   -> V1LabelSelector
   -> Maybe V1PodTemplateSpec
   -> V1beta2ReplicaSetSpec)
-> Parser (Maybe Int)
-> Parser
     (V1LabelSelector
      -> Maybe V1PodTemplateSpec -> V1beta2ReplicaSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")
      Parser
  (V1LabelSelector
   -> Maybe V1PodTemplateSpec -> V1beta2ReplicaSetSpec)
-> Parser V1LabelSelector
-> Parser (Maybe V1PodTemplateSpec -> V1beta2ReplicaSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1LabelSelector
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"selector")
      Parser (Maybe V1PodTemplateSpec -> V1beta2ReplicaSetSpec)
-> Parser (Maybe V1PodTemplateSpec) -> Parser V1beta2ReplicaSetSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1PodTemplateSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"template")

-- | ToJSON V1beta2ReplicaSetSpec
instance A.ToJSON V1beta2ReplicaSetSpec where
  toJSON :: V1beta2ReplicaSetSpec -> Value
toJSON V1beta2ReplicaSetSpec {Maybe Int
Maybe V1PodTemplateSpec
V1LabelSelector
v1beta2ReplicaSetSpecTemplate :: Maybe V1PodTemplateSpec
v1beta2ReplicaSetSpecSelector :: V1LabelSelector
v1beta2ReplicaSetSpecReplicas :: Maybe Int
v1beta2ReplicaSetSpecMinReadySeconds :: Maybe Int
v1beta2ReplicaSetSpecTemplate :: V1beta2ReplicaSetSpec -> Maybe V1PodTemplateSpec
v1beta2ReplicaSetSpecSelector :: V1beta2ReplicaSetSpec -> V1LabelSelector
v1beta2ReplicaSetSpecReplicas :: V1beta2ReplicaSetSpec -> Maybe Int
v1beta2ReplicaSetSpecMinReadySeconds :: V1beta2ReplicaSetSpec -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"minReadySeconds" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2ReplicaSetSpecMinReadySeconds
      , Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2ReplicaSetSpecReplicas
      , Text
"selector" Text -> V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1LabelSelector
v1beta2ReplicaSetSpecSelector
      , Text
"template" Text -> Maybe V1PodTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1PodTemplateSpec
v1beta2ReplicaSetSpecTemplate
      ]


-- | Construct a value of type 'V1beta2ReplicaSetSpec' (by applying it's required fields, if any)
mkV1beta2ReplicaSetSpec
  :: V1LabelSelector -- ^ 'v1beta2ReplicaSetSpecSelector' 
  -> V1beta2ReplicaSetSpec
mkV1beta2ReplicaSetSpec :: V1LabelSelector -> V1beta2ReplicaSetSpec
mkV1beta2ReplicaSetSpec V1LabelSelector
v1beta2ReplicaSetSpecSelector =
  V1beta2ReplicaSetSpec :: Maybe Int
-> Maybe Int
-> V1LabelSelector
-> Maybe V1PodTemplateSpec
-> V1beta2ReplicaSetSpec
V1beta2ReplicaSetSpec
  { v1beta2ReplicaSetSpecMinReadySeconds :: Maybe Int
v1beta2ReplicaSetSpecMinReadySeconds = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2ReplicaSetSpecReplicas :: Maybe Int
v1beta2ReplicaSetSpecReplicas = Maybe Int
forall a. Maybe a
Nothing
  , V1LabelSelector
v1beta2ReplicaSetSpecSelector :: V1LabelSelector
v1beta2ReplicaSetSpecSelector :: V1LabelSelector
v1beta2ReplicaSetSpecSelector
  , v1beta2ReplicaSetSpecTemplate :: Maybe V1PodTemplateSpec
v1beta2ReplicaSetSpecTemplate = Maybe V1PodTemplateSpec
forall a. Maybe a
Nothing
  }

-- ** V1beta2ReplicaSetStatus
-- | V1beta2ReplicaSetStatus
-- ReplicaSetStatus represents the current status of a ReplicaSet.
data V1beta2ReplicaSetStatus = V1beta2ReplicaSetStatus
  { V1beta2ReplicaSetStatus -> Maybe Int
v1beta2ReplicaSetStatusAvailableReplicas :: !(Maybe Int) -- ^ "availableReplicas" - The number of available replicas (ready for at least minReadySeconds) for this replica set.
  , V1beta2ReplicaSetStatus -> Maybe [V1beta2ReplicaSetCondition]
v1beta2ReplicaSetStatusConditions :: !(Maybe [V1beta2ReplicaSetCondition]) -- ^ "conditions" - Represents the latest available observations of a replica set&#39;s current state.
  , V1beta2ReplicaSetStatus -> Maybe Int
v1beta2ReplicaSetStatusFullyLabeledReplicas :: !(Maybe Int) -- ^ "fullyLabeledReplicas" - The number of pods that have labels matching the labels of the pod template of the replicaset.
  , V1beta2ReplicaSetStatus -> Maybe Integer
v1beta2ReplicaSetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - ObservedGeneration reflects the generation of the most recently observed ReplicaSet.
  , V1beta2ReplicaSetStatus -> Maybe Int
v1beta2ReplicaSetStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - The number of ready replicas for this replica set.
  , V1beta2ReplicaSetStatus -> Int
v1beta2ReplicaSetStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller
  } deriving (Int -> V1beta2ReplicaSetStatus -> ShowS
[V1beta2ReplicaSetStatus] -> ShowS
V1beta2ReplicaSetStatus -> String
(Int -> V1beta2ReplicaSetStatus -> ShowS)
-> (V1beta2ReplicaSetStatus -> String)
-> ([V1beta2ReplicaSetStatus] -> ShowS)
-> Show V1beta2ReplicaSetStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2ReplicaSetStatus] -> ShowS
$cshowList :: [V1beta2ReplicaSetStatus] -> ShowS
show :: V1beta2ReplicaSetStatus -> String
$cshow :: V1beta2ReplicaSetStatus -> String
showsPrec :: Int -> V1beta2ReplicaSetStatus -> ShowS
$cshowsPrec :: Int -> V1beta2ReplicaSetStatus -> ShowS
P.Show, V1beta2ReplicaSetStatus -> V1beta2ReplicaSetStatus -> Bool
(V1beta2ReplicaSetStatus -> V1beta2ReplicaSetStatus -> Bool)
-> (V1beta2ReplicaSetStatus -> V1beta2ReplicaSetStatus -> Bool)
-> Eq V1beta2ReplicaSetStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2ReplicaSetStatus -> V1beta2ReplicaSetStatus -> Bool
$c/= :: V1beta2ReplicaSetStatus -> V1beta2ReplicaSetStatus -> Bool
== :: V1beta2ReplicaSetStatus -> V1beta2ReplicaSetStatus -> Bool
$c== :: V1beta2ReplicaSetStatus -> V1beta2ReplicaSetStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2ReplicaSetStatus
instance A.FromJSON V1beta2ReplicaSetStatus where
  parseJSON :: Value -> Parser V1beta2ReplicaSetStatus
parseJSON = String
-> (Object -> Parser V1beta2ReplicaSetStatus)
-> Value
-> Parser V1beta2ReplicaSetStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2ReplicaSetStatus" ((Object -> Parser V1beta2ReplicaSetStatus)
 -> Value -> Parser V1beta2ReplicaSetStatus)
-> (Object -> Parser V1beta2ReplicaSetStatus)
-> Value
-> Parser V1beta2ReplicaSetStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe [V1beta2ReplicaSetCondition]
-> Maybe Int
-> Maybe Integer
-> Maybe Int
-> Int
-> V1beta2ReplicaSetStatus
V1beta2ReplicaSetStatus
      (Maybe Int
 -> Maybe [V1beta2ReplicaSetCondition]
 -> Maybe Int
 -> Maybe Integer
 -> Maybe Int
 -> Int
 -> V1beta2ReplicaSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe [V1beta2ReplicaSetCondition]
      -> Maybe Int
      -> Maybe Integer
      -> Maybe Int
      -> Int
      -> V1beta2ReplicaSetStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"availableReplicas")
      Parser
  (Maybe [V1beta2ReplicaSetCondition]
   -> Maybe Int
   -> Maybe Integer
   -> Maybe Int
   -> Int
   -> V1beta2ReplicaSetStatus)
-> Parser (Maybe [V1beta2ReplicaSetCondition])
-> Parser
     (Maybe Int
      -> Maybe Integer -> Maybe Int -> Int -> V1beta2ReplicaSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta2ReplicaSetCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Maybe Int
   -> Maybe Integer -> Maybe Int -> Int -> V1beta2ReplicaSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe Integer -> Maybe Int -> Int -> V1beta2ReplicaSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"fullyLabeledReplicas")
      Parser
  (Maybe Integer -> Maybe Int -> Int -> V1beta2ReplicaSetStatus)
-> Parser (Maybe Integer)
-> Parser (Maybe Int -> Int -> V1beta2ReplicaSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")
      Parser (Maybe Int -> Int -> V1beta2ReplicaSetStatus)
-> Parser (Maybe Int) -> Parser (Int -> V1beta2ReplicaSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readyReplicas")
      Parser (Int -> V1beta2ReplicaSetStatus)
-> Parser Int -> Parser V1beta2ReplicaSetStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"replicas")

-- | ToJSON V1beta2ReplicaSetStatus
instance A.ToJSON V1beta2ReplicaSetStatus where
  toJSON :: V1beta2ReplicaSetStatus -> Value
toJSON V1beta2ReplicaSetStatus {Int
Maybe Int
Maybe Integer
Maybe [V1beta2ReplicaSetCondition]
v1beta2ReplicaSetStatusReplicas :: Int
v1beta2ReplicaSetStatusReadyReplicas :: Maybe Int
v1beta2ReplicaSetStatusObservedGeneration :: Maybe Integer
v1beta2ReplicaSetStatusFullyLabeledReplicas :: Maybe Int
v1beta2ReplicaSetStatusConditions :: Maybe [V1beta2ReplicaSetCondition]
v1beta2ReplicaSetStatusAvailableReplicas :: Maybe Int
v1beta2ReplicaSetStatusReplicas :: V1beta2ReplicaSetStatus -> Int
v1beta2ReplicaSetStatusReadyReplicas :: V1beta2ReplicaSetStatus -> Maybe Int
v1beta2ReplicaSetStatusObservedGeneration :: V1beta2ReplicaSetStatus -> Maybe Integer
v1beta2ReplicaSetStatusFullyLabeledReplicas :: V1beta2ReplicaSetStatus -> Maybe Int
v1beta2ReplicaSetStatusConditions :: V1beta2ReplicaSetStatus -> Maybe [V1beta2ReplicaSetCondition]
v1beta2ReplicaSetStatusAvailableReplicas :: V1beta2ReplicaSetStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"availableReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2ReplicaSetStatusAvailableReplicas
      , Text
"conditions" Text -> Maybe [V1beta2ReplicaSetCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta2ReplicaSetCondition]
v1beta2ReplicaSetStatusConditions
      , Text
"fullyLabeledReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2ReplicaSetStatusFullyLabeledReplicas
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1beta2ReplicaSetStatusObservedGeneration
      , Text
"readyReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2ReplicaSetStatusReadyReplicas
      , Text
"replicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta2ReplicaSetStatusReplicas
      ]


-- | Construct a value of type 'V1beta2ReplicaSetStatus' (by applying it's required fields, if any)
mkV1beta2ReplicaSetStatus
  :: Int -- ^ 'v1beta2ReplicaSetStatusReplicas': Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller
  -> V1beta2ReplicaSetStatus
mkV1beta2ReplicaSetStatus :: Int -> V1beta2ReplicaSetStatus
mkV1beta2ReplicaSetStatus Int
v1beta2ReplicaSetStatusReplicas =
  V1beta2ReplicaSetStatus :: Maybe Int
-> Maybe [V1beta2ReplicaSetCondition]
-> Maybe Int
-> Maybe Integer
-> Maybe Int
-> Int
-> V1beta2ReplicaSetStatus
V1beta2ReplicaSetStatus
  { v1beta2ReplicaSetStatusAvailableReplicas :: Maybe Int
v1beta2ReplicaSetStatusAvailableReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2ReplicaSetStatusConditions :: Maybe [V1beta2ReplicaSetCondition]
v1beta2ReplicaSetStatusConditions = Maybe [V1beta2ReplicaSetCondition]
forall a. Maybe a
Nothing
  , v1beta2ReplicaSetStatusFullyLabeledReplicas :: Maybe Int
v1beta2ReplicaSetStatusFullyLabeledReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2ReplicaSetStatusObservedGeneration :: Maybe Integer
v1beta2ReplicaSetStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  , v1beta2ReplicaSetStatusReadyReplicas :: Maybe Int
v1beta2ReplicaSetStatusReadyReplicas = Maybe Int
forall a. Maybe a
Nothing
  , Int
v1beta2ReplicaSetStatusReplicas :: Int
v1beta2ReplicaSetStatusReplicas :: Int
v1beta2ReplicaSetStatusReplicas
  }

-- ** V1beta2RollingUpdateDaemonSet
-- | V1beta2RollingUpdateDaemonSet
-- Spec to control the desired behavior of daemon set rolling update.
data V1beta2RollingUpdateDaemonSet = V1beta2RollingUpdateDaemonSet
  { V1beta2RollingUpdateDaemonSet -> Maybe IntOrString
v1beta2RollingUpdateDaemonSetMaxUnavailable :: !(Maybe IntOrString) -- ^ "maxUnavailable"
  } deriving (Int -> V1beta2RollingUpdateDaemonSet -> ShowS
[V1beta2RollingUpdateDaemonSet] -> ShowS
V1beta2RollingUpdateDaemonSet -> String
(Int -> V1beta2RollingUpdateDaemonSet -> ShowS)
-> (V1beta2RollingUpdateDaemonSet -> String)
-> ([V1beta2RollingUpdateDaemonSet] -> ShowS)
-> Show V1beta2RollingUpdateDaemonSet
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2RollingUpdateDaemonSet] -> ShowS
$cshowList :: [V1beta2RollingUpdateDaemonSet] -> ShowS
show :: V1beta2RollingUpdateDaemonSet -> String
$cshow :: V1beta2RollingUpdateDaemonSet -> String
showsPrec :: Int -> V1beta2RollingUpdateDaemonSet -> ShowS
$cshowsPrec :: Int -> V1beta2RollingUpdateDaemonSet -> ShowS
P.Show, V1beta2RollingUpdateDaemonSet
-> V1beta2RollingUpdateDaemonSet -> Bool
(V1beta2RollingUpdateDaemonSet
 -> V1beta2RollingUpdateDaemonSet -> Bool)
-> (V1beta2RollingUpdateDaemonSet
    -> V1beta2RollingUpdateDaemonSet -> Bool)
-> Eq V1beta2RollingUpdateDaemonSet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2RollingUpdateDaemonSet
-> V1beta2RollingUpdateDaemonSet -> Bool
$c/= :: V1beta2RollingUpdateDaemonSet
-> V1beta2RollingUpdateDaemonSet -> Bool
== :: V1beta2RollingUpdateDaemonSet
-> V1beta2RollingUpdateDaemonSet -> Bool
$c== :: V1beta2RollingUpdateDaemonSet
-> V1beta2RollingUpdateDaemonSet -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2RollingUpdateDaemonSet
instance A.FromJSON V1beta2RollingUpdateDaemonSet where
  parseJSON :: Value -> Parser V1beta2RollingUpdateDaemonSet
parseJSON = String
-> (Object -> Parser V1beta2RollingUpdateDaemonSet)
-> Value
-> Parser V1beta2RollingUpdateDaemonSet
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2RollingUpdateDaemonSet" ((Object -> Parser V1beta2RollingUpdateDaemonSet)
 -> Value -> Parser V1beta2RollingUpdateDaemonSet)
-> (Object -> Parser V1beta2RollingUpdateDaemonSet)
-> Value
-> Parser V1beta2RollingUpdateDaemonSet
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe IntOrString -> V1beta2RollingUpdateDaemonSet
V1beta2RollingUpdateDaemonSet
      (Maybe IntOrString -> V1beta2RollingUpdateDaemonSet)
-> Parser (Maybe IntOrString)
-> Parser V1beta2RollingUpdateDaemonSet
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe IntOrString)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxUnavailable")

-- | ToJSON V1beta2RollingUpdateDaemonSet
instance A.ToJSON V1beta2RollingUpdateDaemonSet where
  toJSON :: V1beta2RollingUpdateDaemonSet -> Value
toJSON V1beta2RollingUpdateDaemonSet {Maybe IntOrString
v1beta2RollingUpdateDaemonSetMaxUnavailable :: Maybe IntOrString
v1beta2RollingUpdateDaemonSetMaxUnavailable :: V1beta2RollingUpdateDaemonSet -> Maybe IntOrString
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"maxUnavailable" Text -> Maybe IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe IntOrString
v1beta2RollingUpdateDaemonSetMaxUnavailable
      ]


-- | Construct a value of type 'V1beta2RollingUpdateDaemonSet' (by applying it's required fields, if any)
mkV1beta2RollingUpdateDaemonSet
  :: V1beta2RollingUpdateDaemonSet
mkV1beta2RollingUpdateDaemonSet :: V1beta2RollingUpdateDaemonSet
mkV1beta2RollingUpdateDaemonSet =
  V1beta2RollingUpdateDaemonSet :: Maybe IntOrString -> V1beta2RollingUpdateDaemonSet
V1beta2RollingUpdateDaemonSet
  { v1beta2RollingUpdateDaemonSetMaxUnavailable :: Maybe IntOrString
v1beta2RollingUpdateDaemonSetMaxUnavailable = Maybe IntOrString
forall a. Maybe a
Nothing
  }

-- ** V1beta2RollingUpdateDeployment
-- | V1beta2RollingUpdateDeployment
-- Spec to control the desired behavior of rolling update.
data V1beta2RollingUpdateDeployment = V1beta2RollingUpdateDeployment
  { V1beta2RollingUpdateDeployment -> Maybe IntOrString
v1beta2RollingUpdateDeploymentMaxSurge :: !(Maybe IntOrString) -- ^ "maxSurge"
  , V1beta2RollingUpdateDeployment -> Maybe IntOrString
v1beta2RollingUpdateDeploymentMaxUnavailable :: !(Maybe IntOrString) -- ^ "maxUnavailable"
  } deriving (Int -> V1beta2RollingUpdateDeployment -> ShowS
[V1beta2RollingUpdateDeployment] -> ShowS
V1beta2RollingUpdateDeployment -> String
(Int -> V1beta2RollingUpdateDeployment -> ShowS)
-> (V1beta2RollingUpdateDeployment -> String)
-> ([V1beta2RollingUpdateDeployment] -> ShowS)
-> Show V1beta2RollingUpdateDeployment
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2RollingUpdateDeployment] -> ShowS
$cshowList :: [V1beta2RollingUpdateDeployment] -> ShowS
show :: V1beta2RollingUpdateDeployment -> String
$cshow :: V1beta2RollingUpdateDeployment -> String
showsPrec :: Int -> V1beta2RollingUpdateDeployment -> ShowS
$cshowsPrec :: Int -> V1beta2RollingUpdateDeployment -> ShowS
P.Show, V1beta2RollingUpdateDeployment
-> V1beta2RollingUpdateDeployment -> Bool
(V1beta2RollingUpdateDeployment
 -> V1beta2RollingUpdateDeployment -> Bool)
-> (V1beta2RollingUpdateDeployment
    -> V1beta2RollingUpdateDeployment -> Bool)
-> Eq V1beta2RollingUpdateDeployment
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2RollingUpdateDeployment
-> V1beta2RollingUpdateDeployment -> Bool
$c/= :: V1beta2RollingUpdateDeployment
-> V1beta2RollingUpdateDeployment -> Bool
== :: V1beta2RollingUpdateDeployment
-> V1beta2RollingUpdateDeployment -> Bool
$c== :: V1beta2RollingUpdateDeployment
-> V1beta2RollingUpdateDeployment -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2RollingUpdateDeployment
instance A.FromJSON V1beta2RollingUpdateDeployment where
  parseJSON :: Value -> Parser V1beta2RollingUpdateDeployment
parseJSON = String
-> (Object -> Parser V1beta2RollingUpdateDeployment)
-> Value
-> Parser V1beta2RollingUpdateDeployment
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2RollingUpdateDeployment" ((Object -> Parser V1beta2RollingUpdateDeployment)
 -> Value -> Parser V1beta2RollingUpdateDeployment)
-> (Object -> Parser V1beta2RollingUpdateDeployment)
-> Value
-> Parser V1beta2RollingUpdateDeployment
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe IntOrString
-> Maybe IntOrString -> V1beta2RollingUpdateDeployment
V1beta2RollingUpdateDeployment
      (Maybe IntOrString
 -> Maybe IntOrString -> V1beta2RollingUpdateDeployment)
-> Parser (Maybe IntOrString)
-> Parser (Maybe IntOrString -> V1beta2RollingUpdateDeployment)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe IntOrString)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxSurge")
      Parser (Maybe IntOrString -> V1beta2RollingUpdateDeployment)
-> Parser (Maybe IntOrString)
-> Parser V1beta2RollingUpdateDeployment
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe IntOrString)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"maxUnavailable")

-- | ToJSON V1beta2RollingUpdateDeployment
instance A.ToJSON V1beta2RollingUpdateDeployment where
  toJSON :: V1beta2RollingUpdateDeployment -> Value
toJSON V1beta2RollingUpdateDeployment {Maybe IntOrString
v1beta2RollingUpdateDeploymentMaxUnavailable :: Maybe IntOrString
v1beta2RollingUpdateDeploymentMaxSurge :: Maybe IntOrString
v1beta2RollingUpdateDeploymentMaxUnavailable :: V1beta2RollingUpdateDeployment -> Maybe IntOrString
v1beta2RollingUpdateDeploymentMaxSurge :: V1beta2RollingUpdateDeployment -> Maybe IntOrString
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"maxSurge" Text -> Maybe IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe IntOrString
v1beta2RollingUpdateDeploymentMaxSurge
      , Text
"maxUnavailable" Text -> Maybe IntOrString -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe IntOrString
v1beta2RollingUpdateDeploymentMaxUnavailable
      ]


-- | Construct a value of type 'V1beta2RollingUpdateDeployment' (by applying it's required fields, if any)
mkV1beta2RollingUpdateDeployment
  :: V1beta2RollingUpdateDeployment
mkV1beta2RollingUpdateDeployment :: V1beta2RollingUpdateDeployment
mkV1beta2RollingUpdateDeployment =
  V1beta2RollingUpdateDeployment :: Maybe IntOrString
-> Maybe IntOrString -> V1beta2RollingUpdateDeployment
V1beta2RollingUpdateDeployment
  { v1beta2RollingUpdateDeploymentMaxSurge :: Maybe IntOrString
v1beta2RollingUpdateDeploymentMaxSurge = Maybe IntOrString
forall a. Maybe a
Nothing
  , v1beta2RollingUpdateDeploymentMaxUnavailable :: Maybe IntOrString
v1beta2RollingUpdateDeploymentMaxUnavailable = Maybe IntOrString
forall a. Maybe a
Nothing
  }

-- ** V1beta2RollingUpdateStatefulSetStrategy
-- | V1beta2RollingUpdateStatefulSetStrategy
-- RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.
data V1beta2RollingUpdateStatefulSetStrategy = V1beta2RollingUpdateStatefulSetStrategy
  { V1beta2RollingUpdateStatefulSetStrategy -> Maybe Int
v1beta2RollingUpdateStatefulSetStrategyPartition :: !(Maybe Int) -- ^ "partition" - Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.
  } deriving (Int -> V1beta2RollingUpdateStatefulSetStrategy -> ShowS
[V1beta2RollingUpdateStatefulSetStrategy] -> ShowS
V1beta2RollingUpdateStatefulSetStrategy -> String
(Int -> V1beta2RollingUpdateStatefulSetStrategy -> ShowS)
-> (V1beta2RollingUpdateStatefulSetStrategy -> String)
-> ([V1beta2RollingUpdateStatefulSetStrategy] -> ShowS)
-> Show V1beta2RollingUpdateStatefulSetStrategy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2RollingUpdateStatefulSetStrategy] -> ShowS
$cshowList :: [V1beta2RollingUpdateStatefulSetStrategy] -> ShowS
show :: V1beta2RollingUpdateStatefulSetStrategy -> String
$cshow :: V1beta2RollingUpdateStatefulSetStrategy -> String
showsPrec :: Int -> V1beta2RollingUpdateStatefulSetStrategy -> ShowS
$cshowsPrec :: Int -> V1beta2RollingUpdateStatefulSetStrategy -> ShowS
P.Show, V1beta2RollingUpdateStatefulSetStrategy
-> V1beta2RollingUpdateStatefulSetStrategy -> Bool
(V1beta2RollingUpdateStatefulSetStrategy
 -> V1beta2RollingUpdateStatefulSetStrategy -> Bool)
-> (V1beta2RollingUpdateStatefulSetStrategy
    -> V1beta2RollingUpdateStatefulSetStrategy -> Bool)
-> Eq V1beta2RollingUpdateStatefulSetStrategy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2RollingUpdateStatefulSetStrategy
-> V1beta2RollingUpdateStatefulSetStrategy -> Bool
$c/= :: V1beta2RollingUpdateStatefulSetStrategy
-> V1beta2RollingUpdateStatefulSetStrategy -> Bool
== :: V1beta2RollingUpdateStatefulSetStrategy
-> V1beta2RollingUpdateStatefulSetStrategy -> Bool
$c== :: V1beta2RollingUpdateStatefulSetStrategy
-> V1beta2RollingUpdateStatefulSetStrategy -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2RollingUpdateStatefulSetStrategy
instance A.FromJSON V1beta2RollingUpdateStatefulSetStrategy where
  parseJSON :: Value -> Parser V1beta2RollingUpdateStatefulSetStrategy
parseJSON = String
-> (Object -> Parser V1beta2RollingUpdateStatefulSetStrategy)
-> Value
-> Parser V1beta2RollingUpdateStatefulSetStrategy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2RollingUpdateStatefulSetStrategy" ((Object -> Parser V1beta2RollingUpdateStatefulSetStrategy)
 -> Value -> Parser V1beta2RollingUpdateStatefulSetStrategy)
-> (Object -> Parser V1beta2RollingUpdateStatefulSetStrategy)
-> Value
-> Parser V1beta2RollingUpdateStatefulSetStrategy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int -> V1beta2RollingUpdateStatefulSetStrategy
V1beta2RollingUpdateStatefulSetStrategy
      (Maybe Int -> V1beta2RollingUpdateStatefulSetStrategy)
-> Parser (Maybe Int)
-> Parser V1beta2RollingUpdateStatefulSetStrategy
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"partition")

-- | ToJSON V1beta2RollingUpdateStatefulSetStrategy
instance A.ToJSON V1beta2RollingUpdateStatefulSetStrategy where
  toJSON :: V1beta2RollingUpdateStatefulSetStrategy -> Value
toJSON V1beta2RollingUpdateStatefulSetStrategy {Maybe Int
v1beta2RollingUpdateStatefulSetStrategyPartition :: Maybe Int
v1beta2RollingUpdateStatefulSetStrategyPartition :: V1beta2RollingUpdateStatefulSetStrategy -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"partition" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2RollingUpdateStatefulSetStrategyPartition
      ]


-- | Construct a value of type 'V1beta2RollingUpdateStatefulSetStrategy' (by applying it's required fields, if any)
mkV1beta2RollingUpdateStatefulSetStrategy
  :: V1beta2RollingUpdateStatefulSetStrategy
mkV1beta2RollingUpdateStatefulSetStrategy :: V1beta2RollingUpdateStatefulSetStrategy
mkV1beta2RollingUpdateStatefulSetStrategy =
  V1beta2RollingUpdateStatefulSetStrategy :: Maybe Int -> V1beta2RollingUpdateStatefulSetStrategy
V1beta2RollingUpdateStatefulSetStrategy
  { v1beta2RollingUpdateStatefulSetStrategyPartition :: Maybe Int
v1beta2RollingUpdateStatefulSetStrategyPartition = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1beta2Scale
-- | V1beta2Scale
-- Scale represents a scaling request for a resource.
data V1beta2Scale = V1beta2Scale
  { V1beta2Scale -> Maybe Text
v1beta2ScaleApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta2Scale -> Maybe Text
v1beta2ScaleKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta2Scale -> Maybe V1ObjectMeta
v1beta2ScaleMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta2Scale -> Maybe V1beta2ScaleSpec
v1beta2ScaleSpec :: !(Maybe V1beta2ScaleSpec) -- ^ "spec"
  , V1beta2Scale -> Maybe V1beta2ScaleStatus
v1beta2ScaleStatus :: !(Maybe V1beta2ScaleStatus) -- ^ "status"
  } deriving (Int -> V1beta2Scale -> ShowS
[V1beta2Scale] -> ShowS
V1beta2Scale -> String
(Int -> V1beta2Scale -> ShowS)
-> (V1beta2Scale -> String)
-> ([V1beta2Scale] -> ShowS)
-> Show V1beta2Scale
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2Scale] -> ShowS
$cshowList :: [V1beta2Scale] -> ShowS
show :: V1beta2Scale -> String
$cshow :: V1beta2Scale -> String
showsPrec :: Int -> V1beta2Scale -> ShowS
$cshowsPrec :: Int -> V1beta2Scale -> ShowS
P.Show, V1beta2Scale -> V1beta2Scale -> Bool
(V1beta2Scale -> V1beta2Scale -> Bool)
-> (V1beta2Scale -> V1beta2Scale -> Bool) -> Eq V1beta2Scale
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2Scale -> V1beta2Scale -> Bool
$c/= :: V1beta2Scale -> V1beta2Scale -> Bool
== :: V1beta2Scale -> V1beta2Scale -> Bool
$c== :: V1beta2Scale -> V1beta2Scale -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2Scale
instance A.FromJSON V1beta2Scale where
  parseJSON :: Value -> Parser V1beta2Scale
parseJSON = String
-> (Object -> Parser V1beta2Scale) -> Value -> Parser V1beta2Scale
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2Scale" ((Object -> Parser V1beta2Scale) -> Value -> Parser V1beta2Scale)
-> (Object -> Parser V1beta2Scale) -> Value -> Parser V1beta2Scale
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta2ScaleSpec
-> Maybe V1beta2ScaleStatus
-> V1beta2Scale
V1beta2Scale
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1beta2ScaleSpec
 -> Maybe V1beta2ScaleStatus
 -> V1beta2Scale)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1beta2ScaleSpec
      -> Maybe V1beta2ScaleStatus
      -> V1beta2Scale)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1beta2ScaleSpec
   -> Maybe V1beta2ScaleStatus
   -> V1beta2Scale)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1beta2ScaleSpec
      -> Maybe V1beta2ScaleStatus
      -> V1beta2Scale)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1beta2ScaleSpec
   -> Maybe V1beta2ScaleStatus
   -> V1beta2Scale)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1beta2ScaleSpec
      -> Maybe V1beta2ScaleStatus -> V1beta2Scale)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1beta2ScaleSpec
   -> Maybe V1beta2ScaleStatus -> V1beta2Scale)
-> Parser (Maybe V1beta2ScaleSpec)
-> Parser (Maybe V1beta2ScaleStatus -> V1beta2Scale)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta2ScaleSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1beta2ScaleStatus -> V1beta2Scale)
-> Parser (Maybe V1beta2ScaleStatus) -> Parser V1beta2Scale
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta2ScaleStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta2Scale
instance A.ToJSON V1beta2Scale where
  toJSON :: V1beta2Scale -> Value
toJSON V1beta2Scale {Maybe Text
Maybe V1beta2ScaleStatus
Maybe V1beta2ScaleSpec
Maybe V1ObjectMeta
v1beta2ScaleStatus :: Maybe V1beta2ScaleStatus
v1beta2ScaleSpec :: Maybe V1beta2ScaleSpec
v1beta2ScaleMetadata :: Maybe V1ObjectMeta
v1beta2ScaleKind :: Maybe Text
v1beta2ScaleApiVersion :: Maybe Text
v1beta2ScaleStatus :: V1beta2Scale -> Maybe V1beta2ScaleStatus
v1beta2ScaleSpec :: V1beta2Scale -> Maybe V1beta2ScaleSpec
v1beta2ScaleMetadata :: V1beta2Scale -> Maybe V1ObjectMeta
v1beta2ScaleKind :: V1beta2Scale -> Maybe Text
v1beta2ScaleApiVersion :: V1beta2Scale -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2ScaleApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2ScaleKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta2ScaleMetadata
      , Text
"spec" Text -> Maybe V1beta2ScaleSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta2ScaleSpec
v1beta2ScaleSpec
      , Text
"status" Text -> Maybe V1beta2ScaleStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta2ScaleStatus
v1beta2ScaleStatus
      ]


-- | Construct a value of type 'V1beta2Scale' (by applying it's required fields, if any)
mkV1beta2Scale
  :: V1beta2Scale
mkV1beta2Scale :: V1beta2Scale
mkV1beta2Scale =
  V1beta2Scale :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta2ScaleSpec
-> Maybe V1beta2ScaleStatus
-> V1beta2Scale
V1beta2Scale
  { v1beta2ScaleApiVersion :: Maybe Text
v1beta2ScaleApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2ScaleKind :: Maybe Text
v1beta2ScaleKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2ScaleMetadata :: Maybe V1ObjectMeta
v1beta2ScaleMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta2ScaleSpec :: Maybe V1beta2ScaleSpec
v1beta2ScaleSpec = Maybe V1beta2ScaleSpec
forall a. Maybe a
Nothing
  , v1beta2ScaleStatus :: Maybe V1beta2ScaleStatus
v1beta2ScaleStatus = Maybe V1beta2ScaleStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta2ScaleSpec
-- | V1beta2ScaleSpec
-- ScaleSpec describes the attributes of a scale subresource
data V1beta2ScaleSpec = V1beta2ScaleSpec
  { V1beta2ScaleSpec -> Maybe Int
v1beta2ScaleSpecReplicas :: !(Maybe Int) -- ^ "replicas" - desired number of instances for the scaled object.
  } deriving (Int -> V1beta2ScaleSpec -> ShowS
[V1beta2ScaleSpec] -> ShowS
V1beta2ScaleSpec -> String
(Int -> V1beta2ScaleSpec -> ShowS)
-> (V1beta2ScaleSpec -> String)
-> ([V1beta2ScaleSpec] -> ShowS)
-> Show V1beta2ScaleSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2ScaleSpec] -> ShowS
$cshowList :: [V1beta2ScaleSpec] -> ShowS
show :: V1beta2ScaleSpec -> String
$cshow :: V1beta2ScaleSpec -> String
showsPrec :: Int -> V1beta2ScaleSpec -> ShowS
$cshowsPrec :: Int -> V1beta2ScaleSpec -> ShowS
P.Show, V1beta2ScaleSpec -> V1beta2ScaleSpec -> Bool
(V1beta2ScaleSpec -> V1beta2ScaleSpec -> Bool)
-> (V1beta2ScaleSpec -> V1beta2ScaleSpec -> Bool)
-> Eq V1beta2ScaleSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2ScaleSpec -> V1beta2ScaleSpec -> Bool
$c/= :: V1beta2ScaleSpec -> V1beta2ScaleSpec -> Bool
== :: V1beta2ScaleSpec -> V1beta2ScaleSpec -> Bool
$c== :: V1beta2ScaleSpec -> V1beta2ScaleSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2ScaleSpec
instance A.FromJSON V1beta2ScaleSpec where
  parseJSON :: Value -> Parser V1beta2ScaleSpec
parseJSON = String
-> (Object -> Parser V1beta2ScaleSpec)
-> Value
-> Parser V1beta2ScaleSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2ScaleSpec" ((Object -> Parser V1beta2ScaleSpec)
 -> Value -> Parser V1beta2ScaleSpec)
-> (Object -> Parser V1beta2ScaleSpec)
-> Value
-> Parser V1beta2ScaleSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int -> V1beta2ScaleSpec
V1beta2ScaleSpec
      (Maybe Int -> V1beta2ScaleSpec)
-> Parser (Maybe Int) -> Parser V1beta2ScaleSpec
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")

-- | ToJSON V1beta2ScaleSpec
instance A.ToJSON V1beta2ScaleSpec where
  toJSON :: V1beta2ScaleSpec -> Value
toJSON V1beta2ScaleSpec {Maybe Int
v1beta2ScaleSpecReplicas :: Maybe Int
v1beta2ScaleSpecReplicas :: V1beta2ScaleSpec -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2ScaleSpecReplicas
      ]


-- | Construct a value of type 'V1beta2ScaleSpec' (by applying it's required fields, if any)
mkV1beta2ScaleSpec
  :: V1beta2ScaleSpec
mkV1beta2ScaleSpec :: V1beta2ScaleSpec
mkV1beta2ScaleSpec =
  V1beta2ScaleSpec :: Maybe Int -> V1beta2ScaleSpec
V1beta2ScaleSpec
  { v1beta2ScaleSpecReplicas :: Maybe Int
v1beta2ScaleSpecReplicas = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1beta2ScaleStatus
-- | V1beta2ScaleStatus
-- ScaleStatus represents the current status of a scale subresource.
data V1beta2ScaleStatus = V1beta2ScaleStatus
  { V1beta2ScaleStatus -> Int
v1beta2ScaleStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - actual number of observed instances of the scaled object.
  , V1beta2ScaleStatus -> Maybe (Map String Text)
v1beta2ScaleStatusSelector :: !(Maybe (Map.Map String Text)) -- ^ "selector" - label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors
  , V1beta2ScaleStatus -> Maybe Text
v1beta2ScaleStatusTargetSelector :: !(Maybe Text) -- ^ "targetSelector" - label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
  } deriving (Int -> V1beta2ScaleStatus -> ShowS
[V1beta2ScaleStatus] -> ShowS
V1beta2ScaleStatus -> String
(Int -> V1beta2ScaleStatus -> ShowS)
-> (V1beta2ScaleStatus -> String)
-> ([V1beta2ScaleStatus] -> ShowS)
-> Show V1beta2ScaleStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2ScaleStatus] -> ShowS
$cshowList :: [V1beta2ScaleStatus] -> ShowS
show :: V1beta2ScaleStatus -> String
$cshow :: V1beta2ScaleStatus -> String
showsPrec :: Int -> V1beta2ScaleStatus -> ShowS
$cshowsPrec :: Int -> V1beta2ScaleStatus -> ShowS
P.Show, V1beta2ScaleStatus -> V1beta2ScaleStatus -> Bool
(V1beta2ScaleStatus -> V1beta2ScaleStatus -> Bool)
-> (V1beta2ScaleStatus -> V1beta2ScaleStatus -> Bool)
-> Eq V1beta2ScaleStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2ScaleStatus -> V1beta2ScaleStatus -> Bool
$c/= :: V1beta2ScaleStatus -> V1beta2ScaleStatus -> Bool
== :: V1beta2ScaleStatus -> V1beta2ScaleStatus -> Bool
$c== :: V1beta2ScaleStatus -> V1beta2ScaleStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2ScaleStatus
instance A.FromJSON V1beta2ScaleStatus where
  parseJSON :: Value -> Parser V1beta2ScaleStatus
parseJSON = String
-> (Object -> Parser V1beta2ScaleStatus)
-> Value
-> Parser V1beta2ScaleStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2ScaleStatus" ((Object -> Parser V1beta2ScaleStatus)
 -> Value -> Parser V1beta2ScaleStatus)
-> (Object -> Parser V1beta2ScaleStatus)
-> Value
-> Parser V1beta2ScaleStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Int -> Maybe (Map String Text) -> Maybe Text -> V1beta2ScaleStatus
V1beta2ScaleStatus
      (Int
 -> Maybe (Map String Text) -> Maybe Text -> V1beta2ScaleStatus)
-> Parser Int
-> Parser
     (Maybe (Map String Text) -> Maybe Text -> V1beta2ScaleStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"replicas")
      Parser
  (Maybe (Map String Text) -> Maybe Text -> V1beta2ScaleStatus)
-> Parser (Maybe (Map String Text))
-> Parser (Maybe Text -> V1beta2ScaleStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe (Map String Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")
      Parser (Maybe Text -> V1beta2ScaleStatus)
-> Parser (Maybe Text) -> Parser V1beta2ScaleStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"targetSelector")

-- | ToJSON V1beta2ScaleStatus
instance A.ToJSON V1beta2ScaleStatus where
  toJSON :: V1beta2ScaleStatus -> Value
toJSON V1beta2ScaleStatus {Int
Maybe Text
Maybe (Map String Text)
v1beta2ScaleStatusTargetSelector :: Maybe Text
v1beta2ScaleStatusSelector :: Maybe (Map String Text)
v1beta2ScaleStatusReplicas :: Int
v1beta2ScaleStatusTargetSelector :: V1beta2ScaleStatus -> Maybe Text
v1beta2ScaleStatusSelector :: V1beta2ScaleStatus -> Maybe (Map String Text)
v1beta2ScaleStatusReplicas :: V1beta2ScaleStatus -> Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"replicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta2ScaleStatusReplicas
      , Text
"selector" Text -> Maybe (Map String Text) -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe (Map String Text)
v1beta2ScaleStatusSelector
      , Text
"targetSelector" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2ScaleStatusTargetSelector
      ]


-- | Construct a value of type 'V1beta2ScaleStatus' (by applying it's required fields, if any)
mkV1beta2ScaleStatus
  :: Int -- ^ 'v1beta2ScaleStatusReplicas': actual number of observed instances of the scaled object.
  -> V1beta2ScaleStatus
mkV1beta2ScaleStatus :: Int -> V1beta2ScaleStatus
mkV1beta2ScaleStatus Int
v1beta2ScaleStatusReplicas =
  V1beta2ScaleStatus :: Int -> Maybe (Map String Text) -> Maybe Text -> V1beta2ScaleStatus
V1beta2ScaleStatus
  { Int
v1beta2ScaleStatusReplicas :: Int
v1beta2ScaleStatusReplicas :: Int
v1beta2ScaleStatusReplicas
  , v1beta2ScaleStatusSelector :: Maybe (Map String Text)
v1beta2ScaleStatusSelector = Maybe (Map String Text)
forall a. Maybe a
Nothing
  , v1beta2ScaleStatusTargetSelector :: Maybe Text
v1beta2ScaleStatusTargetSelector = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V1beta2StatefulSet
-- | V1beta2StatefulSet
-- DEPRECATED - This group version of StatefulSet is deprecated by apps/v1/StatefulSet. See the release notes for more information. StatefulSet represents a set of pods with consistent identities. Identities are defined as:  - Network: A single stable DNS and hostname.  - Storage: As many VolumeClaims as requested. The StatefulSet guarantees that a given network identity will always map to the same storage identity.
data V1beta2StatefulSet = V1beta2StatefulSet
  { V1beta2StatefulSet -> Maybe Text
v1beta2StatefulSetApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta2StatefulSet -> Maybe Text
v1beta2StatefulSetKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta2StatefulSet -> Maybe V1ObjectMeta
v1beta2StatefulSetMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V1beta2StatefulSet -> Maybe V1beta2StatefulSetSpec
v1beta2StatefulSetSpec :: !(Maybe V1beta2StatefulSetSpec) -- ^ "spec"
  , V1beta2StatefulSet -> Maybe V1beta2StatefulSetStatus
v1beta2StatefulSetStatus :: !(Maybe V1beta2StatefulSetStatus) -- ^ "status"
  } deriving (Int -> V1beta2StatefulSet -> ShowS
[V1beta2StatefulSet] -> ShowS
V1beta2StatefulSet -> String
(Int -> V1beta2StatefulSet -> ShowS)
-> (V1beta2StatefulSet -> String)
-> ([V1beta2StatefulSet] -> ShowS)
-> Show V1beta2StatefulSet
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2StatefulSet] -> ShowS
$cshowList :: [V1beta2StatefulSet] -> ShowS
show :: V1beta2StatefulSet -> String
$cshow :: V1beta2StatefulSet -> String
showsPrec :: Int -> V1beta2StatefulSet -> ShowS
$cshowsPrec :: Int -> V1beta2StatefulSet -> ShowS
P.Show, V1beta2StatefulSet -> V1beta2StatefulSet -> Bool
(V1beta2StatefulSet -> V1beta2StatefulSet -> Bool)
-> (V1beta2StatefulSet -> V1beta2StatefulSet -> Bool)
-> Eq V1beta2StatefulSet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2StatefulSet -> V1beta2StatefulSet -> Bool
$c/= :: V1beta2StatefulSet -> V1beta2StatefulSet -> Bool
== :: V1beta2StatefulSet -> V1beta2StatefulSet -> Bool
$c== :: V1beta2StatefulSet -> V1beta2StatefulSet -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2StatefulSet
instance A.FromJSON V1beta2StatefulSet where
  parseJSON :: Value -> Parser V1beta2StatefulSet
parseJSON = String
-> (Object -> Parser V1beta2StatefulSet)
-> Value
-> Parser V1beta2StatefulSet
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2StatefulSet" ((Object -> Parser V1beta2StatefulSet)
 -> Value -> Parser V1beta2StatefulSet)
-> (Object -> Parser V1beta2StatefulSet)
-> Value
-> Parser V1beta2StatefulSet
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta2StatefulSetSpec
-> Maybe V1beta2StatefulSetStatus
-> V1beta2StatefulSet
V1beta2StatefulSet
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V1beta2StatefulSetSpec
 -> Maybe V1beta2StatefulSetStatus
 -> V1beta2StatefulSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V1beta2StatefulSetSpec
      -> Maybe V1beta2StatefulSetStatus
      -> V1beta2StatefulSet)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V1beta2StatefulSetSpec
   -> Maybe V1beta2StatefulSetStatus
   -> V1beta2StatefulSet)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V1beta2StatefulSetSpec
      -> Maybe V1beta2StatefulSetStatus
      -> V1beta2StatefulSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V1beta2StatefulSetSpec
   -> Maybe V1beta2StatefulSetStatus
   -> V1beta2StatefulSet)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V1beta2StatefulSetSpec
      -> Maybe V1beta2StatefulSetStatus -> V1beta2StatefulSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V1beta2StatefulSetSpec
   -> Maybe V1beta2StatefulSetStatus -> V1beta2StatefulSet)
-> Parser (Maybe V1beta2StatefulSetSpec)
-> Parser (Maybe V1beta2StatefulSetStatus -> V1beta2StatefulSet)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta2StatefulSetSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V1beta2StatefulSetStatus -> V1beta2StatefulSet)
-> Parser (Maybe V1beta2StatefulSetStatus)
-> Parser V1beta2StatefulSet
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta2StatefulSetStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V1beta2StatefulSet
instance A.ToJSON V1beta2StatefulSet where
  toJSON :: V1beta2StatefulSet -> Value
toJSON V1beta2StatefulSet {Maybe Text
Maybe V1beta2StatefulSetStatus
Maybe V1beta2StatefulSetSpec
Maybe V1ObjectMeta
v1beta2StatefulSetStatus :: Maybe V1beta2StatefulSetStatus
v1beta2StatefulSetSpec :: Maybe V1beta2StatefulSetSpec
v1beta2StatefulSetMetadata :: Maybe V1ObjectMeta
v1beta2StatefulSetKind :: Maybe Text
v1beta2StatefulSetApiVersion :: Maybe Text
v1beta2StatefulSetStatus :: V1beta2StatefulSet -> Maybe V1beta2StatefulSetStatus
v1beta2StatefulSetSpec :: V1beta2StatefulSet -> Maybe V1beta2StatefulSetSpec
v1beta2StatefulSetMetadata :: V1beta2StatefulSet -> Maybe V1ObjectMeta
v1beta2StatefulSetKind :: V1beta2StatefulSet -> Maybe Text
v1beta2StatefulSetApiVersion :: V1beta2StatefulSet -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2StatefulSetApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2StatefulSetKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v1beta2StatefulSetMetadata
      , Text
"spec" Text -> Maybe V1beta2StatefulSetSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta2StatefulSetSpec
v1beta2StatefulSetSpec
      , Text
"status" Text -> Maybe V1beta2StatefulSetStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta2StatefulSetStatus
v1beta2StatefulSetStatus
      ]


-- | Construct a value of type 'V1beta2StatefulSet' (by applying it's required fields, if any)
mkV1beta2StatefulSet
  :: V1beta2StatefulSet
mkV1beta2StatefulSet :: V1beta2StatefulSet
mkV1beta2StatefulSet =
  V1beta2StatefulSet :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V1beta2StatefulSetSpec
-> Maybe V1beta2StatefulSetStatus
-> V1beta2StatefulSet
V1beta2StatefulSet
  { v1beta2StatefulSetApiVersion :: Maybe Text
v1beta2StatefulSetApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2StatefulSetKind :: Maybe Text
v1beta2StatefulSetKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2StatefulSetMetadata :: Maybe V1ObjectMeta
v1beta2StatefulSetMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v1beta2StatefulSetSpec :: Maybe V1beta2StatefulSetSpec
v1beta2StatefulSetSpec = Maybe V1beta2StatefulSetSpec
forall a. Maybe a
Nothing
  , v1beta2StatefulSetStatus :: Maybe V1beta2StatefulSetStatus
v1beta2StatefulSetStatus = Maybe V1beta2StatefulSetStatus
forall a. Maybe a
Nothing
  }

-- ** V1beta2StatefulSetCondition
-- | V1beta2StatefulSetCondition
-- StatefulSetCondition describes the state of a statefulset at a certain point.
data V1beta2StatefulSetCondition = V1beta2StatefulSetCondition
  { V1beta2StatefulSetCondition -> Maybe DateTime
v1beta2StatefulSetConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - Last time the condition transitioned from one status to another.
  , V1beta2StatefulSetCondition -> Maybe Text
v1beta2StatefulSetConditionMessage :: !(Maybe Text) -- ^ "message" - A human readable message indicating details about the transition.
  , V1beta2StatefulSetCondition -> Maybe Text
v1beta2StatefulSetConditionReason :: !(Maybe Text) -- ^ "reason" - The reason for the condition&#39;s last transition.
  , V1beta2StatefulSetCondition -> Text
v1beta2StatefulSetConditionStatus :: !(Text) -- ^ /Required/ "status" - Status of the condition, one of True, False, Unknown.
  , V1beta2StatefulSetCondition -> Text
v1beta2StatefulSetConditionType :: !(Text) -- ^ /Required/ "type" - Type of statefulset condition.
  } deriving (Int -> V1beta2StatefulSetCondition -> ShowS
[V1beta2StatefulSetCondition] -> ShowS
V1beta2StatefulSetCondition -> String
(Int -> V1beta2StatefulSetCondition -> ShowS)
-> (V1beta2StatefulSetCondition -> String)
-> ([V1beta2StatefulSetCondition] -> ShowS)
-> Show V1beta2StatefulSetCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2StatefulSetCondition] -> ShowS
$cshowList :: [V1beta2StatefulSetCondition] -> ShowS
show :: V1beta2StatefulSetCondition -> String
$cshow :: V1beta2StatefulSetCondition -> String
showsPrec :: Int -> V1beta2StatefulSetCondition -> ShowS
$cshowsPrec :: Int -> V1beta2StatefulSetCondition -> ShowS
P.Show, V1beta2StatefulSetCondition -> V1beta2StatefulSetCondition -> Bool
(V1beta2StatefulSetCondition
 -> V1beta2StatefulSetCondition -> Bool)
-> (V1beta2StatefulSetCondition
    -> V1beta2StatefulSetCondition -> Bool)
-> Eq V1beta2StatefulSetCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2StatefulSetCondition -> V1beta2StatefulSetCondition -> Bool
$c/= :: V1beta2StatefulSetCondition -> V1beta2StatefulSetCondition -> Bool
== :: V1beta2StatefulSetCondition -> V1beta2StatefulSetCondition -> Bool
$c== :: V1beta2StatefulSetCondition -> V1beta2StatefulSetCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2StatefulSetCondition
instance A.FromJSON V1beta2StatefulSetCondition where
  parseJSON :: Value -> Parser V1beta2StatefulSetCondition
parseJSON = String
-> (Object -> Parser V1beta2StatefulSetCondition)
-> Value
-> Parser V1beta2StatefulSetCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2StatefulSetCondition" ((Object -> Parser V1beta2StatefulSetCondition)
 -> Value -> Parser V1beta2StatefulSetCondition)
-> (Object -> Parser V1beta2StatefulSetCondition)
-> Value
-> Parser V1beta2StatefulSetCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta2StatefulSetCondition
V1beta2StatefulSetCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V1beta2StatefulSetCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text -> Text -> Text -> V1beta2StatefulSetCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text
   -> Maybe Text -> Text -> Text -> V1beta2StatefulSetCondition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Text -> Text -> V1beta2StatefulSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser (Maybe Text -> Text -> Text -> V1beta2StatefulSetCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V1beta2StatefulSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V1beta2StatefulSetCondition)
-> Parser Text -> Parser (Text -> V1beta2StatefulSetCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V1beta2StatefulSetCondition)
-> Parser Text -> Parser V1beta2StatefulSetCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V1beta2StatefulSetCondition
instance A.ToJSON V1beta2StatefulSetCondition where
  toJSON :: V1beta2StatefulSetCondition -> Value
toJSON V1beta2StatefulSetCondition {Maybe Text
Maybe DateTime
Text
v1beta2StatefulSetConditionType :: Text
v1beta2StatefulSetConditionStatus :: Text
v1beta2StatefulSetConditionReason :: Maybe Text
v1beta2StatefulSetConditionMessage :: Maybe Text
v1beta2StatefulSetConditionLastTransitionTime :: Maybe DateTime
v1beta2StatefulSetConditionType :: V1beta2StatefulSetCondition -> Text
v1beta2StatefulSetConditionStatus :: V1beta2StatefulSetCondition -> Text
v1beta2StatefulSetConditionReason :: V1beta2StatefulSetCondition -> Maybe Text
v1beta2StatefulSetConditionMessage :: V1beta2StatefulSetCondition -> Maybe Text
v1beta2StatefulSetConditionLastTransitionTime :: V1beta2StatefulSetCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v1beta2StatefulSetConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2StatefulSetConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2StatefulSetConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta2StatefulSetConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta2StatefulSetConditionType
      ]


-- | Construct a value of type 'V1beta2StatefulSetCondition' (by applying it's required fields, if any)
mkV1beta2StatefulSetCondition
  :: Text -- ^ 'v1beta2StatefulSetConditionStatus': Status of the condition, one of True, False, Unknown.
  -> Text -- ^ 'v1beta2StatefulSetConditionType': Type of statefulset condition.
  -> V1beta2StatefulSetCondition
mkV1beta2StatefulSetCondition :: Text -> Text -> V1beta2StatefulSetCondition
mkV1beta2StatefulSetCondition Text
v1beta2StatefulSetConditionStatus Text
v1beta2StatefulSetConditionType =
  V1beta2StatefulSetCondition :: Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V1beta2StatefulSetCondition
V1beta2StatefulSetCondition
  { v1beta2StatefulSetConditionLastTransitionTime :: Maybe DateTime
v1beta2StatefulSetConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v1beta2StatefulSetConditionMessage :: Maybe Text
v1beta2StatefulSetConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2StatefulSetConditionReason :: Maybe Text
v1beta2StatefulSetConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v1beta2StatefulSetConditionStatus :: Text
v1beta2StatefulSetConditionStatus :: Text
v1beta2StatefulSetConditionStatus
  , Text
v1beta2StatefulSetConditionType :: Text
v1beta2StatefulSetConditionType :: Text
v1beta2StatefulSetConditionType
  }

-- ** V1beta2StatefulSetList
-- | V1beta2StatefulSetList
-- StatefulSetList is a collection of StatefulSets.
data V1beta2StatefulSetList = V1beta2StatefulSetList
  { V1beta2StatefulSetList -> Maybe Text
v1beta2StatefulSetListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V1beta2StatefulSetList -> [V1beta2StatefulSet]
v1beta2StatefulSetListItems :: !([V1beta2StatefulSet]) -- ^ /Required/ "items"
  , V1beta2StatefulSetList -> Maybe Text
v1beta2StatefulSetListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V1beta2StatefulSetList -> Maybe V1ListMeta
v1beta2StatefulSetListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V1beta2StatefulSetList -> ShowS
[V1beta2StatefulSetList] -> ShowS
V1beta2StatefulSetList -> String
(Int -> V1beta2StatefulSetList -> ShowS)
-> (V1beta2StatefulSetList -> String)
-> ([V1beta2StatefulSetList] -> ShowS)
-> Show V1beta2StatefulSetList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2StatefulSetList] -> ShowS
$cshowList :: [V1beta2StatefulSetList] -> ShowS
show :: V1beta2StatefulSetList -> String
$cshow :: V1beta2StatefulSetList -> String
showsPrec :: Int -> V1beta2StatefulSetList -> ShowS
$cshowsPrec :: Int -> V1beta2StatefulSetList -> ShowS
P.Show, V1beta2StatefulSetList -> V1beta2StatefulSetList -> Bool
(V1beta2StatefulSetList -> V1beta2StatefulSetList -> Bool)
-> (V1beta2StatefulSetList -> V1beta2StatefulSetList -> Bool)
-> Eq V1beta2StatefulSetList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2StatefulSetList -> V1beta2StatefulSetList -> Bool
$c/= :: V1beta2StatefulSetList -> V1beta2StatefulSetList -> Bool
== :: V1beta2StatefulSetList -> V1beta2StatefulSetList -> Bool
$c== :: V1beta2StatefulSetList -> V1beta2StatefulSetList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2StatefulSetList
instance A.FromJSON V1beta2StatefulSetList where
  parseJSON :: Value -> Parser V1beta2StatefulSetList
parseJSON = String
-> (Object -> Parser V1beta2StatefulSetList)
-> Value
-> Parser V1beta2StatefulSetList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2StatefulSetList" ((Object -> Parser V1beta2StatefulSetList)
 -> Value -> Parser V1beta2StatefulSetList)
-> (Object -> Parser V1beta2StatefulSetList)
-> Value
-> Parser V1beta2StatefulSetList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V1beta2StatefulSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta2StatefulSetList
V1beta2StatefulSetList
      (Maybe Text
 -> [V1beta2StatefulSet]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V1beta2StatefulSetList)
-> Parser (Maybe Text)
-> Parser
     ([V1beta2StatefulSet]
      -> Maybe Text -> Maybe V1ListMeta -> V1beta2StatefulSetList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V1beta2StatefulSet]
   -> Maybe Text -> Maybe V1ListMeta -> V1beta2StatefulSetList)
-> Parser [V1beta2StatefulSet]
-> Parser
     (Maybe Text -> Maybe V1ListMeta -> V1beta2StatefulSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V1beta2StatefulSet]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V1beta2StatefulSetList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V1beta2StatefulSetList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V1beta2StatefulSetList)
-> Parser (Maybe V1ListMeta) -> Parser V1beta2StatefulSetList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V1beta2StatefulSetList
instance A.ToJSON V1beta2StatefulSetList where
  toJSON :: V1beta2StatefulSetList -> Value
toJSON V1beta2StatefulSetList {[V1beta2StatefulSet]
Maybe Text
Maybe V1ListMeta
v1beta2StatefulSetListMetadata :: Maybe V1ListMeta
v1beta2StatefulSetListKind :: Maybe Text
v1beta2StatefulSetListItems :: [V1beta2StatefulSet]
v1beta2StatefulSetListApiVersion :: Maybe Text
v1beta2StatefulSetListMetadata :: V1beta2StatefulSetList -> Maybe V1ListMeta
v1beta2StatefulSetListKind :: V1beta2StatefulSetList -> Maybe Text
v1beta2StatefulSetListItems :: V1beta2StatefulSetList -> [V1beta2StatefulSet]
v1beta2StatefulSetListApiVersion :: V1beta2StatefulSetList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2StatefulSetListApiVersion
      , Text
"items" Text -> [V1beta2StatefulSet] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V1beta2StatefulSet]
v1beta2StatefulSetListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2StatefulSetListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v1beta2StatefulSetListMetadata
      ]


-- | Construct a value of type 'V1beta2StatefulSetList' (by applying it's required fields, if any)
mkV1beta2StatefulSetList
  :: [V1beta2StatefulSet] -- ^ 'v1beta2StatefulSetListItems' 
  -> V1beta2StatefulSetList
mkV1beta2StatefulSetList :: [V1beta2StatefulSet] -> V1beta2StatefulSetList
mkV1beta2StatefulSetList [V1beta2StatefulSet]
v1beta2StatefulSetListItems =
  V1beta2StatefulSetList :: Maybe Text
-> [V1beta2StatefulSet]
-> Maybe Text
-> Maybe V1ListMeta
-> V1beta2StatefulSetList
V1beta2StatefulSetList
  { v1beta2StatefulSetListApiVersion :: Maybe Text
v1beta2StatefulSetListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V1beta2StatefulSet]
v1beta2StatefulSetListItems :: [V1beta2StatefulSet]
v1beta2StatefulSetListItems :: [V1beta2StatefulSet]
v1beta2StatefulSetListItems
  , v1beta2StatefulSetListKind :: Maybe Text
v1beta2StatefulSetListKind = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2StatefulSetListMetadata :: Maybe V1ListMeta
v1beta2StatefulSetListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V1beta2StatefulSetSpec
-- | V1beta2StatefulSetSpec
-- A StatefulSetSpec is the specification of a StatefulSet.
data V1beta2StatefulSetSpec = V1beta2StatefulSetSpec
  { V1beta2StatefulSetSpec -> Maybe Text
v1beta2StatefulSetSpecPodManagementPolicy :: !(Maybe Text) -- ^ "podManagementPolicy" - podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is &#x60;OrderedReady&#x60;, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is &#x60;Parallel&#x60; which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.
  , V1beta2StatefulSetSpec -> Maybe Int
v1beta2StatefulSetSpecReplicas :: !(Maybe Int) -- ^ "replicas" - replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.
  , V1beta2StatefulSetSpec -> Maybe Int
v1beta2StatefulSetSpecRevisionHistoryLimit :: !(Maybe Int) -- ^ "revisionHistoryLimit" - revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet&#39;s revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.
  , V1beta2StatefulSetSpec -> V1LabelSelector
v1beta2StatefulSetSpecSelector :: !(V1LabelSelector) -- ^ /Required/ "selector"
  , V1beta2StatefulSetSpec -> Text
v1beta2StatefulSetSpecServiceName :: !(Text) -- ^ /Required/ "serviceName" - serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \&quot;pod-specific-string\&quot; is managed by the StatefulSet controller.
  , V1beta2StatefulSetSpec -> V1PodTemplateSpec
v1beta2StatefulSetSpecTemplate :: !(V1PodTemplateSpec) -- ^ /Required/ "template"
  , V1beta2StatefulSetSpec -> Maybe V1beta2StatefulSetUpdateStrategy
v1beta2StatefulSetSpecUpdateStrategy :: !(Maybe V1beta2StatefulSetUpdateStrategy) -- ^ "updateStrategy"
  , V1beta2StatefulSetSpec -> Maybe [V1PersistentVolumeClaim]
v1beta2StatefulSetSpecVolumeClaimTemplates :: !(Maybe [V1PersistentVolumeClaim]) -- ^ "volumeClaimTemplates" - volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.
  } deriving (Int -> V1beta2StatefulSetSpec -> ShowS
[V1beta2StatefulSetSpec] -> ShowS
V1beta2StatefulSetSpec -> String
(Int -> V1beta2StatefulSetSpec -> ShowS)
-> (V1beta2StatefulSetSpec -> String)
-> ([V1beta2StatefulSetSpec] -> ShowS)
-> Show V1beta2StatefulSetSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2StatefulSetSpec] -> ShowS
$cshowList :: [V1beta2StatefulSetSpec] -> ShowS
show :: V1beta2StatefulSetSpec -> String
$cshow :: V1beta2StatefulSetSpec -> String
showsPrec :: Int -> V1beta2StatefulSetSpec -> ShowS
$cshowsPrec :: Int -> V1beta2StatefulSetSpec -> ShowS
P.Show, V1beta2StatefulSetSpec -> V1beta2StatefulSetSpec -> Bool
(V1beta2StatefulSetSpec -> V1beta2StatefulSetSpec -> Bool)
-> (V1beta2StatefulSetSpec -> V1beta2StatefulSetSpec -> Bool)
-> Eq V1beta2StatefulSetSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2StatefulSetSpec -> V1beta2StatefulSetSpec -> Bool
$c/= :: V1beta2StatefulSetSpec -> V1beta2StatefulSetSpec -> Bool
== :: V1beta2StatefulSetSpec -> V1beta2StatefulSetSpec -> Bool
$c== :: V1beta2StatefulSetSpec -> V1beta2StatefulSetSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2StatefulSetSpec
instance A.FromJSON V1beta2StatefulSetSpec where
  parseJSON :: Value -> Parser V1beta2StatefulSetSpec
parseJSON = String
-> (Object -> Parser V1beta2StatefulSetSpec)
-> Value
-> Parser V1beta2StatefulSetSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2StatefulSetSpec" ((Object -> Parser V1beta2StatefulSetSpec)
 -> Value -> Parser V1beta2StatefulSetSpec)
-> (Object -> Parser V1beta2StatefulSetSpec)
-> Value
-> Parser V1beta2StatefulSetSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Int
-> Maybe Int
-> V1LabelSelector
-> Text
-> V1PodTemplateSpec
-> Maybe V1beta2StatefulSetUpdateStrategy
-> Maybe [V1PersistentVolumeClaim]
-> V1beta2StatefulSetSpec
V1beta2StatefulSetSpec
      (Maybe Text
 -> Maybe Int
 -> Maybe Int
 -> V1LabelSelector
 -> Text
 -> V1PodTemplateSpec
 -> Maybe V1beta2StatefulSetUpdateStrategy
 -> Maybe [V1PersistentVolumeClaim]
 -> V1beta2StatefulSetSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> V1LabelSelector
      -> Text
      -> V1PodTemplateSpec
      -> Maybe V1beta2StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim]
      -> V1beta2StatefulSetSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"podManagementPolicy")
      Parser
  (Maybe Int
   -> Maybe Int
   -> V1LabelSelector
   -> Text
   -> V1PodTemplateSpec
   -> Maybe V1beta2StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim]
   -> V1beta2StatefulSetSpec)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> V1LabelSelector
      -> Text
      -> V1PodTemplateSpec
      -> Maybe V1beta2StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim]
      -> V1beta2StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"replicas")
      Parser
  (Maybe Int
   -> V1LabelSelector
   -> Text
   -> V1PodTemplateSpec
   -> Maybe V1beta2StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim]
   -> V1beta2StatefulSetSpec)
-> Parser (Maybe Int)
-> Parser
     (V1LabelSelector
      -> Text
      -> V1PodTemplateSpec
      -> Maybe V1beta2StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim]
      -> V1beta2StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"revisionHistoryLimit")
      Parser
  (V1LabelSelector
   -> Text
   -> V1PodTemplateSpec
   -> Maybe V1beta2StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim]
   -> V1beta2StatefulSetSpec)
-> Parser V1LabelSelector
-> Parser
     (Text
      -> V1PodTemplateSpec
      -> Maybe V1beta2StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim]
      -> V1beta2StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1LabelSelector
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"selector")
      Parser
  (Text
   -> V1PodTemplateSpec
   -> Maybe V1beta2StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim]
   -> V1beta2StatefulSetSpec)
-> Parser Text
-> Parser
     (V1PodTemplateSpec
      -> Maybe V1beta2StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim]
      -> V1beta2StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"serviceName")
      Parser
  (V1PodTemplateSpec
   -> Maybe V1beta2StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim]
   -> V1beta2StatefulSetSpec)
-> Parser V1PodTemplateSpec
-> Parser
     (Maybe V1beta2StatefulSetUpdateStrategy
      -> Maybe [V1PersistentVolumeClaim] -> V1beta2StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V1PodTemplateSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"template")
      Parser
  (Maybe V1beta2StatefulSetUpdateStrategy
   -> Maybe [V1PersistentVolumeClaim] -> V1beta2StatefulSetSpec)
-> Parser (Maybe V1beta2StatefulSetUpdateStrategy)
-> Parser
     (Maybe [V1PersistentVolumeClaim] -> V1beta2StatefulSetSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1beta2StatefulSetUpdateStrategy)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updateStrategy")
      Parser (Maybe [V1PersistentVolumeClaim] -> V1beta2StatefulSetSpec)
-> Parser (Maybe [V1PersistentVolumeClaim])
-> Parser V1beta2StatefulSetSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1PersistentVolumeClaim])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"volumeClaimTemplates")

-- | ToJSON V1beta2StatefulSetSpec
instance A.ToJSON V1beta2StatefulSetSpec where
  toJSON :: V1beta2StatefulSetSpec -> Value
toJSON V1beta2StatefulSetSpec {Maybe Int
Maybe [V1PersistentVolumeClaim]
Maybe Text
Maybe V1beta2StatefulSetUpdateStrategy
Text
V1PodTemplateSpec
V1LabelSelector
v1beta2StatefulSetSpecVolumeClaimTemplates :: Maybe [V1PersistentVolumeClaim]
v1beta2StatefulSetSpecUpdateStrategy :: Maybe V1beta2StatefulSetUpdateStrategy
v1beta2StatefulSetSpecTemplate :: V1PodTemplateSpec
v1beta2StatefulSetSpecServiceName :: Text
v1beta2StatefulSetSpecSelector :: V1LabelSelector
v1beta2StatefulSetSpecRevisionHistoryLimit :: Maybe Int
v1beta2StatefulSetSpecReplicas :: Maybe Int
v1beta2StatefulSetSpecPodManagementPolicy :: Maybe Text
v1beta2StatefulSetSpecVolumeClaimTemplates :: V1beta2StatefulSetSpec -> Maybe [V1PersistentVolumeClaim]
v1beta2StatefulSetSpecUpdateStrategy :: V1beta2StatefulSetSpec -> Maybe V1beta2StatefulSetUpdateStrategy
v1beta2StatefulSetSpecTemplate :: V1beta2StatefulSetSpec -> V1PodTemplateSpec
v1beta2StatefulSetSpecServiceName :: V1beta2StatefulSetSpec -> Text
v1beta2StatefulSetSpecSelector :: V1beta2StatefulSetSpec -> V1LabelSelector
v1beta2StatefulSetSpecRevisionHistoryLimit :: V1beta2StatefulSetSpec -> Maybe Int
v1beta2StatefulSetSpecReplicas :: V1beta2StatefulSetSpec -> Maybe Int
v1beta2StatefulSetSpecPodManagementPolicy :: V1beta2StatefulSetSpec -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"podManagementPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2StatefulSetSpecPodManagementPolicy
      , Text
"replicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2StatefulSetSpecReplicas
      , Text
"revisionHistoryLimit" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2StatefulSetSpecRevisionHistoryLimit
      , Text
"selector" Text -> V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1LabelSelector
v1beta2StatefulSetSpecSelector
      , Text
"serviceName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v1beta2StatefulSetSpecServiceName
      , Text
"template" Text -> V1PodTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V1PodTemplateSpec
v1beta2StatefulSetSpecTemplate
      , Text
"updateStrategy" Text -> Maybe V1beta2StatefulSetUpdateStrategy -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta2StatefulSetUpdateStrategy
v1beta2StatefulSetSpecUpdateStrategy
      , Text
"volumeClaimTemplates" Text -> Maybe [V1PersistentVolumeClaim] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1PersistentVolumeClaim]
v1beta2StatefulSetSpecVolumeClaimTemplates
      ]


-- | Construct a value of type 'V1beta2StatefulSetSpec' (by applying it's required fields, if any)
mkV1beta2StatefulSetSpec
  :: V1LabelSelector -- ^ 'v1beta2StatefulSetSpecSelector' 
  -> Text -- ^ 'v1beta2StatefulSetSpecServiceName': serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.
  -> V1PodTemplateSpec -- ^ 'v1beta2StatefulSetSpecTemplate' 
  -> V1beta2StatefulSetSpec
mkV1beta2StatefulSetSpec :: V1LabelSelector
-> Text -> V1PodTemplateSpec -> V1beta2StatefulSetSpec
mkV1beta2StatefulSetSpec V1LabelSelector
v1beta2StatefulSetSpecSelector Text
v1beta2StatefulSetSpecServiceName V1PodTemplateSpec
v1beta2StatefulSetSpecTemplate =
  V1beta2StatefulSetSpec :: Maybe Text
-> Maybe Int
-> Maybe Int
-> V1LabelSelector
-> Text
-> V1PodTemplateSpec
-> Maybe V1beta2StatefulSetUpdateStrategy
-> Maybe [V1PersistentVolumeClaim]
-> V1beta2StatefulSetSpec
V1beta2StatefulSetSpec
  { v1beta2StatefulSetSpecPodManagementPolicy :: Maybe Text
v1beta2StatefulSetSpecPodManagementPolicy = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2StatefulSetSpecReplicas :: Maybe Int
v1beta2StatefulSetSpecReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2StatefulSetSpecRevisionHistoryLimit :: Maybe Int
v1beta2StatefulSetSpecRevisionHistoryLimit = Maybe Int
forall a. Maybe a
Nothing
  , V1LabelSelector
v1beta2StatefulSetSpecSelector :: V1LabelSelector
v1beta2StatefulSetSpecSelector :: V1LabelSelector
v1beta2StatefulSetSpecSelector
  , Text
v1beta2StatefulSetSpecServiceName :: Text
v1beta2StatefulSetSpecServiceName :: Text
v1beta2StatefulSetSpecServiceName
  , V1PodTemplateSpec
v1beta2StatefulSetSpecTemplate :: V1PodTemplateSpec
v1beta2StatefulSetSpecTemplate :: V1PodTemplateSpec
v1beta2StatefulSetSpecTemplate
  , v1beta2StatefulSetSpecUpdateStrategy :: Maybe V1beta2StatefulSetUpdateStrategy
v1beta2StatefulSetSpecUpdateStrategy = Maybe V1beta2StatefulSetUpdateStrategy
forall a. Maybe a
Nothing
  , v1beta2StatefulSetSpecVolumeClaimTemplates :: Maybe [V1PersistentVolumeClaim]
v1beta2StatefulSetSpecVolumeClaimTemplates = Maybe [V1PersistentVolumeClaim]
forall a. Maybe a
Nothing
  }

-- ** V1beta2StatefulSetStatus
-- | V1beta2StatefulSetStatus
-- StatefulSetStatus represents the current state of a StatefulSet.
data V1beta2StatefulSetStatus = V1beta2StatefulSetStatus
  { V1beta2StatefulSetStatus -> Maybe Int
v1beta2StatefulSetStatusCollisionCount :: !(Maybe Int) -- ^ "collisionCount" - collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.
  , V1beta2StatefulSetStatus -> Maybe [V1beta2StatefulSetCondition]
v1beta2StatefulSetStatusConditions :: !(Maybe [V1beta2StatefulSetCondition]) -- ^ "conditions" - Represents the latest available observations of a statefulset&#39;s current state.
  , V1beta2StatefulSetStatus -> Maybe Int
v1beta2StatefulSetStatusCurrentReplicas :: !(Maybe Int) -- ^ "currentReplicas" - currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.
  , V1beta2StatefulSetStatus -> Maybe Text
v1beta2StatefulSetStatusCurrentRevision :: !(Maybe Text) -- ^ "currentRevision" - currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).
  , V1beta2StatefulSetStatus -> Maybe Integer
v1beta2StatefulSetStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet&#39;s generation, which is updated on mutation by the API Server.
  , V1beta2StatefulSetStatus -> Maybe Int
v1beta2StatefulSetStatusReadyReplicas :: !(Maybe Int) -- ^ "readyReplicas" - readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.
  , V1beta2StatefulSetStatus -> Int
v1beta2StatefulSetStatusReplicas :: !(Int) -- ^ /Required/ "replicas" - replicas is the number of Pods created by the StatefulSet controller.
  , V1beta2StatefulSetStatus -> Maybe Text
v1beta2StatefulSetStatusUpdateRevision :: !(Maybe Text) -- ^ "updateRevision" - updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)
  , V1beta2StatefulSetStatus -> Maybe Int
v1beta2StatefulSetStatusUpdatedReplicas :: !(Maybe Int) -- ^ "updatedReplicas" - updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.
  } deriving (Int -> V1beta2StatefulSetStatus -> ShowS
[V1beta2StatefulSetStatus] -> ShowS
V1beta2StatefulSetStatus -> String
(Int -> V1beta2StatefulSetStatus -> ShowS)
-> (V1beta2StatefulSetStatus -> String)
-> ([V1beta2StatefulSetStatus] -> ShowS)
-> Show V1beta2StatefulSetStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2StatefulSetStatus] -> ShowS
$cshowList :: [V1beta2StatefulSetStatus] -> ShowS
show :: V1beta2StatefulSetStatus -> String
$cshow :: V1beta2StatefulSetStatus -> String
showsPrec :: Int -> V1beta2StatefulSetStatus -> ShowS
$cshowsPrec :: Int -> V1beta2StatefulSetStatus -> ShowS
P.Show, V1beta2StatefulSetStatus -> V1beta2StatefulSetStatus -> Bool
(V1beta2StatefulSetStatus -> V1beta2StatefulSetStatus -> Bool)
-> (V1beta2StatefulSetStatus -> V1beta2StatefulSetStatus -> Bool)
-> Eq V1beta2StatefulSetStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2StatefulSetStatus -> V1beta2StatefulSetStatus -> Bool
$c/= :: V1beta2StatefulSetStatus -> V1beta2StatefulSetStatus -> Bool
== :: V1beta2StatefulSetStatus -> V1beta2StatefulSetStatus -> Bool
$c== :: V1beta2StatefulSetStatus -> V1beta2StatefulSetStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2StatefulSetStatus
instance A.FromJSON V1beta2StatefulSetStatus where
  parseJSON :: Value -> Parser V1beta2StatefulSetStatus
parseJSON = String
-> (Object -> Parser V1beta2StatefulSetStatus)
-> Value
-> Parser V1beta2StatefulSetStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2StatefulSetStatus" ((Object -> Parser V1beta2StatefulSetStatus)
 -> Value -> Parser V1beta2StatefulSetStatus)
-> (Object -> Parser V1beta2StatefulSetStatus)
-> Value
-> Parser V1beta2StatefulSetStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe [V1beta2StatefulSetCondition]
-> Maybe Int
-> Maybe Text
-> Maybe Integer
-> Maybe Int
-> Int
-> Maybe Text
-> Maybe Int
-> V1beta2StatefulSetStatus
V1beta2StatefulSetStatus
      (Maybe Int
 -> Maybe [V1beta2StatefulSetCondition]
 -> Maybe Int
 -> Maybe Text
 -> Maybe Integer
 -> Maybe Int
 -> Int
 -> Maybe Text
 -> Maybe Int
 -> V1beta2StatefulSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe [V1beta2StatefulSetCondition]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Int
      -> Maybe Text
      -> Maybe Int
      -> V1beta2StatefulSetStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"collisionCount")
      Parser
  (Maybe [V1beta2StatefulSetCondition]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Int
   -> Maybe Text
   -> Maybe Int
   -> V1beta2StatefulSetStatus)
-> Parser (Maybe [V1beta2StatefulSetCondition])
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Int
      -> Maybe Text
      -> Maybe Int
      -> V1beta2StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V1beta2StatefulSetCondition])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"conditions")
      Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Int
   -> Maybe Text
   -> Maybe Int
   -> V1beta2StatefulSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Int
      -> Maybe Text
      -> Maybe Int
      -> V1beta2StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"currentReplicas")
      Parser
  (Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Int
   -> Maybe Text
   -> Maybe Int
   -> V1beta2StatefulSetStatus)
-> Parser (Maybe Text)
-> Parser
     (Maybe Integer
      -> Maybe Int
      -> Int
      -> Maybe Text
      -> Maybe Int
      -> V1beta2StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"currentRevision")
      Parser
  (Maybe Integer
   -> Maybe Int
   -> Int
   -> Maybe Text
   -> Maybe Int
   -> V1beta2StatefulSetStatus)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Int
      -> Int -> Maybe Text -> Maybe Int -> V1beta2StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")
      Parser
  (Maybe Int
   -> Int -> Maybe Text -> Maybe Int -> V1beta2StatefulSetStatus)
-> Parser (Maybe Int)
-> Parser
     (Int -> Maybe Text -> Maybe Int -> V1beta2StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"readyReplicas")
      Parser (Int -> Maybe Text -> Maybe Int -> V1beta2StatefulSetStatus)
-> Parser Int
-> Parser (Maybe Text -> Maybe Int -> V1beta2StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"replicas")
      Parser (Maybe Text -> Maybe Int -> V1beta2StatefulSetStatus)
-> Parser (Maybe Text)
-> Parser (Maybe Int -> V1beta2StatefulSetStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updateRevision")
      Parser (Maybe Int -> V1beta2StatefulSetStatus)
-> Parser (Maybe Int) -> Parser V1beta2StatefulSetStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"updatedReplicas")

-- | ToJSON V1beta2StatefulSetStatus
instance A.ToJSON V1beta2StatefulSetStatus where
  toJSON :: V1beta2StatefulSetStatus -> Value
toJSON V1beta2StatefulSetStatus {Int
Maybe Int
Maybe Integer
Maybe [V1beta2StatefulSetCondition]
Maybe Text
v1beta2StatefulSetStatusUpdatedReplicas :: Maybe Int
v1beta2StatefulSetStatusUpdateRevision :: Maybe Text
v1beta2StatefulSetStatusReplicas :: Int
v1beta2StatefulSetStatusReadyReplicas :: Maybe Int
v1beta2StatefulSetStatusObservedGeneration :: Maybe Integer
v1beta2StatefulSetStatusCurrentRevision :: Maybe Text
v1beta2StatefulSetStatusCurrentReplicas :: Maybe Int
v1beta2StatefulSetStatusConditions :: Maybe [V1beta2StatefulSetCondition]
v1beta2StatefulSetStatusCollisionCount :: Maybe Int
v1beta2StatefulSetStatusUpdatedReplicas :: V1beta2StatefulSetStatus -> Maybe Int
v1beta2StatefulSetStatusUpdateRevision :: V1beta2StatefulSetStatus -> Maybe Text
v1beta2StatefulSetStatusReplicas :: V1beta2StatefulSetStatus -> Int
v1beta2StatefulSetStatusReadyReplicas :: V1beta2StatefulSetStatus -> Maybe Int
v1beta2StatefulSetStatusObservedGeneration :: V1beta2StatefulSetStatus -> Maybe Integer
v1beta2StatefulSetStatusCurrentRevision :: V1beta2StatefulSetStatus -> Maybe Text
v1beta2StatefulSetStatusCurrentReplicas :: V1beta2StatefulSetStatus -> Maybe Int
v1beta2StatefulSetStatusConditions :: V1beta2StatefulSetStatus -> Maybe [V1beta2StatefulSetCondition]
v1beta2StatefulSetStatusCollisionCount :: V1beta2StatefulSetStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"collisionCount" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2StatefulSetStatusCollisionCount
      , Text
"conditions" Text -> Maybe [V1beta2StatefulSetCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1beta2StatefulSetCondition]
v1beta2StatefulSetStatusConditions
      , Text
"currentReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2StatefulSetStatusCurrentReplicas
      , Text
"currentRevision" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2StatefulSetStatusCurrentRevision
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v1beta2StatefulSetStatusObservedGeneration
      , Text
"readyReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2StatefulSetStatusReadyReplicas
      , Text
"replicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v1beta2StatefulSetStatusReplicas
      , Text
"updateRevision" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2StatefulSetStatusUpdateRevision
      , Text
"updatedReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v1beta2StatefulSetStatusUpdatedReplicas
      ]


-- | Construct a value of type 'V1beta2StatefulSetStatus' (by applying it's required fields, if any)
mkV1beta2StatefulSetStatus
  :: Int -- ^ 'v1beta2StatefulSetStatusReplicas': replicas is the number of Pods created by the StatefulSet controller.
  -> V1beta2StatefulSetStatus
mkV1beta2StatefulSetStatus :: Int -> V1beta2StatefulSetStatus
mkV1beta2StatefulSetStatus Int
v1beta2StatefulSetStatusReplicas =
  V1beta2StatefulSetStatus :: Maybe Int
-> Maybe [V1beta2StatefulSetCondition]
-> Maybe Int
-> Maybe Text
-> Maybe Integer
-> Maybe Int
-> Int
-> Maybe Text
-> Maybe Int
-> V1beta2StatefulSetStatus
V1beta2StatefulSetStatus
  { v1beta2StatefulSetStatusCollisionCount :: Maybe Int
v1beta2StatefulSetStatusCollisionCount = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2StatefulSetStatusConditions :: Maybe [V1beta2StatefulSetCondition]
v1beta2StatefulSetStatusConditions = Maybe [V1beta2StatefulSetCondition]
forall a. Maybe a
Nothing
  , v1beta2StatefulSetStatusCurrentReplicas :: Maybe Int
v1beta2StatefulSetStatusCurrentReplicas = Maybe Int
forall a. Maybe a
Nothing
  , v1beta2StatefulSetStatusCurrentRevision :: Maybe Text
v1beta2StatefulSetStatusCurrentRevision = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2StatefulSetStatusObservedGeneration :: Maybe Integer
v1beta2StatefulSetStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  , v1beta2StatefulSetStatusReadyReplicas :: Maybe Int
v1beta2StatefulSetStatusReadyReplicas = Maybe Int
forall a. Maybe a
Nothing
  , Int
v1beta2StatefulSetStatusReplicas :: Int
v1beta2StatefulSetStatusReplicas :: Int
v1beta2StatefulSetStatusReplicas
  , v1beta2StatefulSetStatusUpdateRevision :: Maybe Text
v1beta2StatefulSetStatusUpdateRevision = Maybe Text
forall a. Maybe a
Nothing
  , v1beta2StatefulSetStatusUpdatedReplicas :: Maybe Int
v1beta2StatefulSetStatusUpdatedReplicas = Maybe Int
forall a. Maybe a
Nothing
  }

-- ** V1beta2StatefulSetUpdateStrategy
-- | V1beta2StatefulSetUpdateStrategy
-- StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.
data V1beta2StatefulSetUpdateStrategy = V1beta2StatefulSetUpdateStrategy
  { V1beta2StatefulSetUpdateStrategy
-> Maybe V1beta2RollingUpdateStatefulSetStrategy
v1beta2StatefulSetUpdateStrategyRollingUpdate :: !(Maybe V1beta2RollingUpdateStatefulSetStrategy) -- ^ "rollingUpdate"
  , V1beta2StatefulSetUpdateStrategy -> Maybe Text
v1beta2StatefulSetUpdateStrategyType :: !(Maybe Text) -- ^ "type" - Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.
  } deriving (Int -> V1beta2StatefulSetUpdateStrategy -> ShowS
[V1beta2StatefulSetUpdateStrategy] -> ShowS
V1beta2StatefulSetUpdateStrategy -> String
(Int -> V1beta2StatefulSetUpdateStrategy -> ShowS)
-> (V1beta2StatefulSetUpdateStrategy -> String)
-> ([V1beta2StatefulSetUpdateStrategy] -> ShowS)
-> Show V1beta2StatefulSetUpdateStrategy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V1beta2StatefulSetUpdateStrategy] -> ShowS
$cshowList :: [V1beta2StatefulSetUpdateStrategy] -> ShowS
show :: V1beta2StatefulSetUpdateStrategy -> String
$cshow :: V1beta2StatefulSetUpdateStrategy -> String
showsPrec :: Int -> V1beta2StatefulSetUpdateStrategy -> ShowS
$cshowsPrec :: Int -> V1beta2StatefulSetUpdateStrategy -> ShowS
P.Show, V1beta2StatefulSetUpdateStrategy
-> V1beta2StatefulSetUpdateStrategy -> Bool
(V1beta2StatefulSetUpdateStrategy
 -> V1beta2StatefulSetUpdateStrategy -> Bool)
-> (V1beta2StatefulSetUpdateStrategy
    -> V1beta2StatefulSetUpdateStrategy -> Bool)
-> Eq V1beta2StatefulSetUpdateStrategy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V1beta2StatefulSetUpdateStrategy
-> V1beta2StatefulSetUpdateStrategy -> Bool
$c/= :: V1beta2StatefulSetUpdateStrategy
-> V1beta2StatefulSetUpdateStrategy -> Bool
== :: V1beta2StatefulSetUpdateStrategy
-> V1beta2StatefulSetUpdateStrategy -> Bool
$c== :: V1beta2StatefulSetUpdateStrategy
-> V1beta2StatefulSetUpdateStrategy -> Bool
P.Eq, P.Typeable)

-- | FromJSON V1beta2StatefulSetUpdateStrategy
instance A.FromJSON V1beta2StatefulSetUpdateStrategy where
  parseJSON :: Value -> Parser V1beta2StatefulSetUpdateStrategy
parseJSON = String
-> (Object -> Parser V1beta2StatefulSetUpdateStrategy)
-> Value
-> Parser V1beta2StatefulSetUpdateStrategy
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V1beta2StatefulSetUpdateStrategy" ((Object -> Parser V1beta2StatefulSetUpdateStrategy)
 -> Value -> Parser V1beta2StatefulSetUpdateStrategy)
-> (Object -> Parser V1beta2StatefulSetUpdateStrategy)
-> Value
-> Parser V1beta2StatefulSetUpdateStrategy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1beta2RollingUpdateStatefulSetStrategy
-> Maybe Text -> V1beta2StatefulSetUpdateStrategy
V1beta2StatefulSetUpdateStrategy
      (Maybe V1beta2RollingUpdateStatefulSetStrategy
 -> Maybe Text -> V1beta2StatefulSetUpdateStrategy)
-> Parser (Maybe V1beta2RollingUpdateStatefulSetStrategy)
-> Parser (Maybe Text -> V1beta2StatefulSetUpdateStrategy)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object
-> Text -> Parser (Maybe V1beta2RollingUpdateStatefulSetStrategy)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"rollingUpdate")
      Parser (Maybe Text -> V1beta2StatefulSetUpdateStrategy)
-> Parser (Maybe Text) -> Parser V1beta2StatefulSetUpdateStrategy
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"type")

-- | ToJSON V1beta2StatefulSetUpdateStrategy
instance A.ToJSON V1beta2StatefulSetUpdateStrategy where
  toJSON :: V1beta2StatefulSetUpdateStrategy -> Value
toJSON V1beta2StatefulSetUpdateStrategy {Maybe Text
Maybe V1beta2RollingUpdateStatefulSetStrategy
v1beta2StatefulSetUpdateStrategyType :: Maybe Text
v1beta2StatefulSetUpdateStrategyRollingUpdate :: Maybe V1beta2RollingUpdateStatefulSetStrategy
v1beta2StatefulSetUpdateStrategyType :: V1beta2StatefulSetUpdateStrategy -> Maybe Text
v1beta2StatefulSetUpdateStrategyRollingUpdate :: V1beta2StatefulSetUpdateStrategy
-> Maybe V1beta2RollingUpdateStatefulSetStrategy
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"rollingUpdate" Text
-> Maybe V1beta2RollingUpdateStatefulSetStrategy -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1beta2RollingUpdateStatefulSetStrategy
v1beta2StatefulSetUpdateStrategyRollingUpdate
      , Text
"type" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v1beta2StatefulSetUpdateStrategyType
      ]


-- | Construct a value of type 'V1beta2StatefulSetUpdateStrategy' (by applying it's required fields, if any)
mkV1beta2StatefulSetUpdateStrategy
  :: V1beta2StatefulSetUpdateStrategy
mkV1beta2StatefulSetUpdateStrategy :: V1beta2StatefulSetUpdateStrategy
mkV1beta2StatefulSetUpdateStrategy =
  V1beta2StatefulSetUpdateStrategy :: Maybe V1beta2RollingUpdateStatefulSetStrategy
-> Maybe Text -> V1beta2StatefulSetUpdateStrategy
V1beta2StatefulSetUpdateStrategy
  { v1beta2StatefulSetUpdateStrategyRollingUpdate :: Maybe V1beta2RollingUpdateStatefulSetStrategy
v1beta2StatefulSetUpdateStrategyRollingUpdate = Maybe V1beta2RollingUpdateStatefulSetStrategy
forall a. Maybe a
Nothing
  , v1beta2StatefulSetUpdateStrategyType :: Maybe Text
v1beta2StatefulSetUpdateStrategyType = Maybe Text
forall a. Maybe a
Nothing
  }

-- ** V2alpha1CronJob
-- | V2alpha1CronJob
-- CronJob represents the configuration of a single cron job.
data V2alpha1CronJob = V2alpha1CronJob
  { V2alpha1CronJob -> Maybe Text
v2alpha1CronJobApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V2alpha1CronJob -> Maybe Text
v2alpha1CronJobKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V2alpha1CronJob -> Maybe V1ObjectMeta
v2alpha1CronJobMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V2alpha1CronJob -> Maybe V2alpha1CronJobSpec
v2alpha1CronJobSpec :: !(Maybe V2alpha1CronJobSpec) -- ^ "spec"
  , V2alpha1CronJob -> Maybe V2alpha1CronJobStatus
v2alpha1CronJobStatus :: !(Maybe V2alpha1CronJobStatus) -- ^ "status"
  } deriving (Int -> V2alpha1CronJob -> ShowS
[V2alpha1CronJob] -> ShowS
V2alpha1CronJob -> String
(Int -> V2alpha1CronJob -> ShowS)
-> (V2alpha1CronJob -> String)
-> ([V2alpha1CronJob] -> ShowS)
-> Show V2alpha1CronJob
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2alpha1CronJob] -> ShowS
$cshowList :: [V2alpha1CronJob] -> ShowS
show :: V2alpha1CronJob -> String
$cshow :: V2alpha1CronJob -> String
showsPrec :: Int -> V2alpha1CronJob -> ShowS
$cshowsPrec :: Int -> V2alpha1CronJob -> ShowS
P.Show, V2alpha1CronJob -> V2alpha1CronJob -> Bool
(V2alpha1CronJob -> V2alpha1CronJob -> Bool)
-> (V2alpha1CronJob -> V2alpha1CronJob -> Bool)
-> Eq V2alpha1CronJob
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2alpha1CronJob -> V2alpha1CronJob -> Bool
$c/= :: V2alpha1CronJob -> V2alpha1CronJob -> Bool
== :: V2alpha1CronJob -> V2alpha1CronJob -> Bool
$c== :: V2alpha1CronJob -> V2alpha1CronJob -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2alpha1CronJob
instance A.FromJSON V2alpha1CronJob where
  parseJSON :: Value -> Parser V2alpha1CronJob
parseJSON = String
-> (Object -> Parser V2alpha1CronJob)
-> Value
-> Parser V2alpha1CronJob
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2alpha1CronJob" ((Object -> Parser V2alpha1CronJob)
 -> Value -> Parser V2alpha1CronJob)
-> (Object -> Parser V2alpha1CronJob)
-> Value
-> Parser V2alpha1CronJob
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V2alpha1CronJobSpec
-> Maybe V2alpha1CronJobStatus
-> V2alpha1CronJob
V2alpha1CronJob
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V2alpha1CronJobSpec
 -> Maybe V2alpha1CronJobStatus
 -> V2alpha1CronJob)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V2alpha1CronJobSpec
      -> Maybe V2alpha1CronJobStatus
      -> V2alpha1CronJob)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V2alpha1CronJobSpec
   -> Maybe V2alpha1CronJobStatus
   -> V2alpha1CronJob)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V2alpha1CronJobSpec
      -> Maybe V2alpha1CronJobStatus
      -> V2alpha1CronJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V2alpha1CronJobSpec
   -> Maybe V2alpha1CronJobStatus
   -> V2alpha1CronJob)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V2alpha1CronJobSpec
      -> Maybe V2alpha1CronJobStatus -> V2alpha1CronJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V2alpha1CronJobSpec
   -> Maybe V2alpha1CronJobStatus -> V2alpha1CronJob)
-> Parser (Maybe V2alpha1CronJobSpec)
-> Parser (Maybe V2alpha1CronJobStatus -> V2alpha1CronJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V2alpha1CronJobSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser (Maybe V2alpha1CronJobStatus -> V2alpha1CronJob)
-> Parser (Maybe V2alpha1CronJobStatus) -> Parser V2alpha1CronJob
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V2alpha1CronJobStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V2alpha1CronJob
instance A.ToJSON V2alpha1CronJob where
  toJSON :: V2alpha1CronJob -> Value
toJSON V2alpha1CronJob {Maybe Text
Maybe V2alpha1CronJobStatus
Maybe V2alpha1CronJobSpec
Maybe V1ObjectMeta
v2alpha1CronJobStatus :: Maybe V2alpha1CronJobStatus
v2alpha1CronJobSpec :: Maybe V2alpha1CronJobSpec
v2alpha1CronJobMetadata :: Maybe V1ObjectMeta
v2alpha1CronJobKind :: Maybe Text
v2alpha1CronJobApiVersion :: Maybe Text
v2alpha1CronJobStatus :: V2alpha1CronJob -> Maybe V2alpha1CronJobStatus
v2alpha1CronJobSpec :: V2alpha1CronJob -> Maybe V2alpha1CronJobSpec
v2alpha1CronJobMetadata :: V2alpha1CronJob -> Maybe V1ObjectMeta
v2alpha1CronJobKind :: V2alpha1CronJob -> Maybe Text
v2alpha1CronJobApiVersion :: V2alpha1CronJob -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2alpha1CronJobApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2alpha1CronJobKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v2alpha1CronJobMetadata
      , Text
"spec" Text -> Maybe V2alpha1CronJobSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2alpha1CronJobSpec
v2alpha1CronJobSpec
      , Text
"status" Text -> Maybe V2alpha1CronJobStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2alpha1CronJobStatus
v2alpha1CronJobStatus
      ]


-- | Construct a value of type 'V2alpha1CronJob' (by applying it's required fields, if any)
mkV2alpha1CronJob
  :: V2alpha1CronJob
mkV2alpha1CronJob :: V2alpha1CronJob
mkV2alpha1CronJob =
  V2alpha1CronJob :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V2alpha1CronJobSpec
-> Maybe V2alpha1CronJobStatus
-> V2alpha1CronJob
V2alpha1CronJob
  { v2alpha1CronJobApiVersion :: Maybe Text
v2alpha1CronJobApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v2alpha1CronJobKind :: Maybe Text
v2alpha1CronJobKind = Maybe Text
forall a. Maybe a
Nothing
  , v2alpha1CronJobMetadata :: Maybe V1ObjectMeta
v2alpha1CronJobMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v2alpha1CronJobSpec :: Maybe V2alpha1CronJobSpec
v2alpha1CronJobSpec = Maybe V2alpha1CronJobSpec
forall a. Maybe a
Nothing
  , v2alpha1CronJobStatus :: Maybe V2alpha1CronJobStatus
v2alpha1CronJobStatus = Maybe V2alpha1CronJobStatus
forall a. Maybe a
Nothing
  }

-- ** V2alpha1CronJobList
-- | V2alpha1CronJobList
-- CronJobList is a collection of cron jobs.
data V2alpha1CronJobList = V2alpha1CronJobList
  { V2alpha1CronJobList -> Maybe Text
v2alpha1CronJobListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V2alpha1CronJobList -> [V2alpha1CronJob]
v2alpha1CronJobListItems :: !([V2alpha1CronJob]) -- ^ /Required/ "items" - items is the list of CronJobs.
  , V2alpha1CronJobList -> Maybe Text
v2alpha1CronJobListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V2alpha1CronJobList -> Maybe V1ListMeta
v2alpha1CronJobListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V2alpha1CronJobList -> ShowS
[V2alpha1CronJobList] -> ShowS
V2alpha1CronJobList -> String
(Int -> V2alpha1CronJobList -> ShowS)
-> (V2alpha1CronJobList -> String)
-> ([V2alpha1CronJobList] -> ShowS)
-> Show V2alpha1CronJobList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2alpha1CronJobList] -> ShowS
$cshowList :: [V2alpha1CronJobList] -> ShowS
show :: V2alpha1CronJobList -> String
$cshow :: V2alpha1CronJobList -> String
showsPrec :: Int -> V2alpha1CronJobList -> ShowS
$cshowsPrec :: Int -> V2alpha1CronJobList -> ShowS
P.Show, V2alpha1CronJobList -> V2alpha1CronJobList -> Bool
(V2alpha1CronJobList -> V2alpha1CronJobList -> Bool)
-> (V2alpha1CronJobList -> V2alpha1CronJobList -> Bool)
-> Eq V2alpha1CronJobList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2alpha1CronJobList -> V2alpha1CronJobList -> Bool
$c/= :: V2alpha1CronJobList -> V2alpha1CronJobList -> Bool
== :: V2alpha1CronJobList -> V2alpha1CronJobList -> Bool
$c== :: V2alpha1CronJobList -> V2alpha1CronJobList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2alpha1CronJobList
instance A.FromJSON V2alpha1CronJobList where
  parseJSON :: Value -> Parser V2alpha1CronJobList
parseJSON = String
-> (Object -> Parser V2alpha1CronJobList)
-> Value
-> Parser V2alpha1CronJobList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2alpha1CronJobList" ((Object -> Parser V2alpha1CronJobList)
 -> Value -> Parser V2alpha1CronJobList)
-> (Object -> Parser V2alpha1CronJobList)
-> Value
-> Parser V2alpha1CronJobList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V2alpha1CronJob]
-> Maybe Text
-> Maybe V1ListMeta
-> V2alpha1CronJobList
V2alpha1CronJobList
      (Maybe Text
 -> [V2alpha1CronJob]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V2alpha1CronJobList)
-> Parser (Maybe Text)
-> Parser
     ([V2alpha1CronJob]
      -> Maybe Text -> Maybe V1ListMeta -> V2alpha1CronJobList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V2alpha1CronJob]
   -> Maybe Text -> Maybe V1ListMeta -> V2alpha1CronJobList)
-> Parser [V2alpha1CronJob]
-> Parser (Maybe Text -> Maybe V1ListMeta -> V2alpha1CronJobList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V2alpha1CronJob]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser (Maybe Text -> Maybe V1ListMeta -> V2alpha1CronJobList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V2alpha1CronJobList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V2alpha1CronJobList)
-> Parser (Maybe V1ListMeta) -> Parser V2alpha1CronJobList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V2alpha1CronJobList
instance A.ToJSON V2alpha1CronJobList where
  toJSON :: V2alpha1CronJobList -> Value
toJSON V2alpha1CronJobList {[V2alpha1CronJob]
Maybe Text
Maybe V1ListMeta
v2alpha1CronJobListMetadata :: Maybe V1ListMeta
v2alpha1CronJobListKind :: Maybe Text
v2alpha1CronJobListItems :: [V2alpha1CronJob]
v2alpha1CronJobListApiVersion :: Maybe Text
v2alpha1CronJobListMetadata :: V2alpha1CronJobList -> Maybe V1ListMeta
v2alpha1CronJobListKind :: V2alpha1CronJobList -> Maybe Text
v2alpha1CronJobListItems :: V2alpha1CronJobList -> [V2alpha1CronJob]
v2alpha1CronJobListApiVersion :: V2alpha1CronJobList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2alpha1CronJobListApiVersion
      , Text
"items" Text -> [V2alpha1CronJob] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V2alpha1CronJob]
v2alpha1CronJobListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2alpha1CronJobListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v2alpha1CronJobListMetadata
      ]


-- | Construct a value of type 'V2alpha1CronJobList' (by applying it's required fields, if any)
mkV2alpha1CronJobList
  :: [V2alpha1CronJob] -- ^ 'v2alpha1CronJobListItems': items is the list of CronJobs.
  -> V2alpha1CronJobList
mkV2alpha1CronJobList :: [V2alpha1CronJob] -> V2alpha1CronJobList
mkV2alpha1CronJobList [V2alpha1CronJob]
v2alpha1CronJobListItems =
  V2alpha1CronJobList :: Maybe Text
-> [V2alpha1CronJob]
-> Maybe Text
-> Maybe V1ListMeta
-> V2alpha1CronJobList
V2alpha1CronJobList
  { v2alpha1CronJobListApiVersion :: Maybe Text
v2alpha1CronJobListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V2alpha1CronJob]
v2alpha1CronJobListItems :: [V2alpha1CronJob]
v2alpha1CronJobListItems :: [V2alpha1CronJob]
v2alpha1CronJobListItems
  , v2alpha1CronJobListKind :: Maybe Text
v2alpha1CronJobListKind = Maybe Text
forall a. Maybe a
Nothing
  , v2alpha1CronJobListMetadata :: Maybe V1ListMeta
v2alpha1CronJobListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V2alpha1CronJobSpec
-- | V2alpha1CronJobSpec
-- CronJobSpec describes how the job execution will look like and when it will actually run.
data V2alpha1CronJobSpec = V2alpha1CronJobSpec
  { V2alpha1CronJobSpec -> Maybe Text
v2alpha1CronJobSpecConcurrencyPolicy :: !(Maybe Text) -- ^ "concurrencyPolicy" - Specifies how to treat concurrent executions of a Job. Valid values are: - \&quot;Allow\&quot; (default): allows CronJobs to run concurrently; - \&quot;Forbid\&quot;: forbids concurrent runs, skipping next run if previous run hasn&#39;t finished yet; - \&quot;Replace\&quot;: cancels currently running job and replaces it with a new one
  , V2alpha1CronJobSpec -> Maybe Int
v2alpha1CronJobSpecFailedJobsHistoryLimit :: !(Maybe Int) -- ^ "failedJobsHistoryLimit" - The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified.
  , V2alpha1CronJobSpec -> V2alpha1JobTemplateSpec
v2alpha1CronJobSpecJobTemplate :: !(V2alpha1JobTemplateSpec) -- ^ /Required/ "jobTemplate"
  , V2alpha1CronJobSpec -> Text
v2alpha1CronJobSpecSchedule :: !(Text) -- ^ /Required/ "schedule" - The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.
  , V2alpha1CronJobSpec -> Maybe Integer
v2alpha1CronJobSpecStartingDeadlineSeconds :: !(Maybe Integer) -- ^ "startingDeadlineSeconds" - Optional deadline in seconds for starting the job if it misses scheduled time for any reason.  Missed jobs executions will be counted as failed ones.
  , V2alpha1CronJobSpec -> Maybe Int
v2alpha1CronJobSpecSuccessfulJobsHistoryLimit :: !(Maybe Int) -- ^ "successfulJobsHistoryLimit" - The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified.
  , V2alpha1CronJobSpec -> Maybe Bool
v2alpha1CronJobSpecSuspend :: !(Maybe Bool) -- ^ "suspend" - This flag tells the controller to suspend subsequent executions, it does not apply to already started executions.  Defaults to false.
  } deriving (Int -> V2alpha1CronJobSpec -> ShowS
[V2alpha1CronJobSpec] -> ShowS
V2alpha1CronJobSpec -> String
(Int -> V2alpha1CronJobSpec -> ShowS)
-> (V2alpha1CronJobSpec -> String)
-> ([V2alpha1CronJobSpec] -> ShowS)
-> Show V2alpha1CronJobSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2alpha1CronJobSpec] -> ShowS
$cshowList :: [V2alpha1CronJobSpec] -> ShowS
show :: V2alpha1CronJobSpec -> String
$cshow :: V2alpha1CronJobSpec -> String
showsPrec :: Int -> V2alpha1CronJobSpec -> ShowS
$cshowsPrec :: Int -> V2alpha1CronJobSpec -> ShowS
P.Show, V2alpha1CronJobSpec -> V2alpha1CronJobSpec -> Bool
(V2alpha1CronJobSpec -> V2alpha1CronJobSpec -> Bool)
-> (V2alpha1CronJobSpec -> V2alpha1CronJobSpec -> Bool)
-> Eq V2alpha1CronJobSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2alpha1CronJobSpec -> V2alpha1CronJobSpec -> Bool
$c/= :: V2alpha1CronJobSpec -> V2alpha1CronJobSpec -> Bool
== :: V2alpha1CronJobSpec -> V2alpha1CronJobSpec -> Bool
$c== :: V2alpha1CronJobSpec -> V2alpha1CronJobSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2alpha1CronJobSpec
instance A.FromJSON V2alpha1CronJobSpec where
  parseJSON :: Value -> Parser V2alpha1CronJobSpec
parseJSON = String
-> (Object -> Parser V2alpha1CronJobSpec)
-> Value
-> Parser V2alpha1CronJobSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2alpha1CronJobSpec" ((Object -> Parser V2alpha1CronJobSpec)
 -> Value -> Parser V2alpha1CronJobSpec)
-> (Object -> Parser V2alpha1CronJobSpec)
-> Value
-> Parser V2alpha1CronJobSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Int
-> V2alpha1JobTemplateSpec
-> Text
-> Maybe Integer
-> Maybe Int
-> Maybe Bool
-> V2alpha1CronJobSpec
V2alpha1CronJobSpec
      (Maybe Text
 -> Maybe Int
 -> V2alpha1JobTemplateSpec
 -> Text
 -> Maybe Integer
 -> Maybe Int
 -> Maybe Bool
 -> V2alpha1CronJobSpec)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> V2alpha1JobTemplateSpec
      -> Text
      -> Maybe Integer
      -> Maybe Int
      -> Maybe Bool
      -> V2alpha1CronJobSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"concurrencyPolicy")
      Parser
  (Maybe Int
   -> V2alpha1JobTemplateSpec
   -> Text
   -> Maybe Integer
   -> Maybe Int
   -> Maybe Bool
   -> V2alpha1CronJobSpec)
-> Parser (Maybe Int)
-> Parser
     (V2alpha1JobTemplateSpec
      -> Text
      -> Maybe Integer
      -> Maybe Int
      -> Maybe Bool
      -> V2alpha1CronJobSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"failedJobsHistoryLimit")
      Parser
  (V2alpha1JobTemplateSpec
   -> Text
   -> Maybe Integer
   -> Maybe Int
   -> Maybe Bool
   -> V2alpha1CronJobSpec)
-> Parser V2alpha1JobTemplateSpec
-> Parser
     (Text
      -> Maybe Integer -> Maybe Int -> Maybe Bool -> V2alpha1CronJobSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V2alpha1JobTemplateSpec
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"jobTemplate")
      Parser
  (Text
   -> Maybe Integer -> Maybe Int -> Maybe Bool -> V2alpha1CronJobSpec)
-> Parser Text
-> Parser
     (Maybe Integer -> Maybe Int -> Maybe Bool -> V2alpha1CronJobSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"schedule")
      Parser
  (Maybe Integer -> Maybe Int -> Maybe Bool -> V2alpha1CronJobSpec)
-> Parser (Maybe Integer)
-> Parser (Maybe Int -> Maybe Bool -> V2alpha1CronJobSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"startingDeadlineSeconds")
      Parser (Maybe Int -> Maybe Bool -> V2alpha1CronJobSpec)
-> Parser (Maybe Int) -> Parser (Maybe Bool -> V2alpha1CronJobSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"successfulJobsHistoryLimit")
      Parser (Maybe Bool -> V2alpha1CronJobSpec)
-> Parser (Maybe Bool) -> Parser V2alpha1CronJobSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"suspend")

-- | ToJSON V2alpha1CronJobSpec
instance A.ToJSON V2alpha1CronJobSpec where
  toJSON :: V2alpha1CronJobSpec -> Value
toJSON V2alpha1CronJobSpec {Maybe Bool
Maybe Int
Maybe Integer
Maybe Text
Text
V2alpha1JobTemplateSpec
v2alpha1CronJobSpecSuspend :: Maybe Bool
v2alpha1CronJobSpecSuccessfulJobsHistoryLimit :: Maybe Int
v2alpha1CronJobSpecStartingDeadlineSeconds :: Maybe Integer
v2alpha1CronJobSpecSchedule :: Text
v2alpha1CronJobSpecJobTemplate :: V2alpha1JobTemplateSpec
v2alpha1CronJobSpecFailedJobsHistoryLimit :: Maybe Int
v2alpha1CronJobSpecConcurrencyPolicy :: Maybe Text
v2alpha1CronJobSpecSuspend :: V2alpha1CronJobSpec -> Maybe Bool
v2alpha1CronJobSpecSuccessfulJobsHistoryLimit :: V2alpha1CronJobSpec -> Maybe Int
v2alpha1CronJobSpecStartingDeadlineSeconds :: V2alpha1CronJobSpec -> Maybe Integer
v2alpha1CronJobSpecSchedule :: V2alpha1CronJobSpec -> Text
v2alpha1CronJobSpecJobTemplate :: V2alpha1CronJobSpec -> V2alpha1JobTemplateSpec
v2alpha1CronJobSpecFailedJobsHistoryLimit :: V2alpha1CronJobSpec -> Maybe Int
v2alpha1CronJobSpecConcurrencyPolicy :: V2alpha1CronJobSpec -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"concurrencyPolicy" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2alpha1CronJobSpecConcurrencyPolicy
      , Text
"failedJobsHistoryLimit" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v2alpha1CronJobSpecFailedJobsHistoryLimit
      , Text
"jobTemplate" Text -> V2alpha1JobTemplateSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2alpha1JobTemplateSpec
v2alpha1CronJobSpecJobTemplate
      , Text
"schedule" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2alpha1CronJobSpecSchedule
      , Text
"startingDeadlineSeconds" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v2alpha1CronJobSpecStartingDeadlineSeconds
      , Text
"successfulJobsHistoryLimit" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v2alpha1CronJobSpecSuccessfulJobsHistoryLimit
      , Text
"suspend" Text -> Maybe Bool -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Bool
v2alpha1CronJobSpecSuspend
      ]


-- | Construct a value of type 'V2alpha1CronJobSpec' (by applying it's required fields, if any)
mkV2alpha1CronJobSpec
  :: V2alpha1JobTemplateSpec -- ^ 'v2alpha1CronJobSpecJobTemplate' 
  -> Text -- ^ 'v2alpha1CronJobSpecSchedule': The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.
  -> V2alpha1CronJobSpec
mkV2alpha1CronJobSpec :: V2alpha1JobTemplateSpec -> Text -> V2alpha1CronJobSpec
mkV2alpha1CronJobSpec V2alpha1JobTemplateSpec
v2alpha1CronJobSpecJobTemplate Text
v2alpha1CronJobSpecSchedule =
  V2alpha1CronJobSpec :: Maybe Text
-> Maybe Int
-> V2alpha1JobTemplateSpec
-> Text
-> Maybe Integer
-> Maybe Int
-> Maybe Bool
-> V2alpha1CronJobSpec
V2alpha1CronJobSpec
  { v2alpha1CronJobSpecConcurrencyPolicy :: Maybe Text
v2alpha1CronJobSpecConcurrencyPolicy = Maybe Text
forall a. Maybe a
Nothing
  , v2alpha1CronJobSpecFailedJobsHistoryLimit :: Maybe Int
v2alpha1CronJobSpecFailedJobsHistoryLimit = Maybe Int
forall a. Maybe a
Nothing
  , V2alpha1JobTemplateSpec
v2alpha1CronJobSpecJobTemplate :: V2alpha1JobTemplateSpec
v2alpha1CronJobSpecJobTemplate :: V2alpha1JobTemplateSpec
v2alpha1CronJobSpecJobTemplate
  , Text
v2alpha1CronJobSpecSchedule :: Text
v2alpha1CronJobSpecSchedule :: Text
v2alpha1CronJobSpecSchedule
  , v2alpha1CronJobSpecStartingDeadlineSeconds :: Maybe Integer
v2alpha1CronJobSpecStartingDeadlineSeconds = Maybe Integer
forall a. Maybe a
Nothing
  , v2alpha1CronJobSpecSuccessfulJobsHistoryLimit :: Maybe Int
v2alpha1CronJobSpecSuccessfulJobsHistoryLimit = Maybe Int
forall a. Maybe a
Nothing
  , v2alpha1CronJobSpecSuspend :: Maybe Bool
v2alpha1CronJobSpecSuspend = Maybe Bool
forall a. Maybe a
Nothing
  }

-- ** V2alpha1CronJobStatus
-- | V2alpha1CronJobStatus
-- CronJobStatus represents the current state of a cron job.
data V2alpha1CronJobStatus = V2alpha1CronJobStatus
  { V2alpha1CronJobStatus -> Maybe [V1ObjectReference]
v2alpha1CronJobStatusActive :: !(Maybe [V1ObjectReference]) -- ^ "active" - A list of pointers to currently running jobs.
  , V2alpha1CronJobStatus -> Maybe DateTime
v2alpha1CronJobStatusLastScheduleTime :: !(Maybe DateTime) -- ^ "lastScheduleTime" - Information when was the last time the job was successfully scheduled.
  } deriving (Int -> V2alpha1CronJobStatus -> ShowS
[V2alpha1CronJobStatus] -> ShowS
V2alpha1CronJobStatus -> String
(Int -> V2alpha1CronJobStatus -> ShowS)
-> (V2alpha1CronJobStatus -> String)
-> ([V2alpha1CronJobStatus] -> ShowS)
-> Show V2alpha1CronJobStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2alpha1CronJobStatus] -> ShowS
$cshowList :: [V2alpha1CronJobStatus] -> ShowS
show :: V2alpha1CronJobStatus -> String
$cshow :: V2alpha1CronJobStatus -> String
showsPrec :: Int -> V2alpha1CronJobStatus -> ShowS
$cshowsPrec :: Int -> V2alpha1CronJobStatus -> ShowS
P.Show, V2alpha1CronJobStatus -> V2alpha1CronJobStatus -> Bool
(V2alpha1CronJobStatus -> V2alpha1CronJobStatus -> Bool)
-> (V2alpha1CronJobStatus -> V2alpha1CronJobStatus -> Bool)
-> Eq V2alpha1CronJobStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2alpha1CronJobStatus -> V2alpha1CronJobStatus -> Bool
$c/= :: V2alpha1CronJobStatus -> V2alpha1CronJobStatus -> Bool
== :: V2alpha1CronJobStatus -> V2alpha1CronJobStatus -> Bool
$c== :: V2alpha1CronJobStatus -> V2alpha1CronJobStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2alpha1CronJobStatus
instance A.FromJSON V2alpha1CronJobStatus where
  parseJSON :: Value -> Parser V2alpha1CronJobStatus
parseJSON = String
-> (Object -> Parser V2alpha1CronJobStatus)
-> Value
-> Parser V2alpha1CronJobStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2alpha1CronJobStatus" ((Object -> Parser V2alpha1CronJobStatus)
 -> Value -> Parser V2alpha1CronJobStatus)
-> (Object -> Parser V2alpha1CronJobStatus)
-> Value
-> Parser V2alpha1CronJobStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe [V1ObjectReference]
-> Maybe DateTime -> V2alpha1CronJobStatus
V2alpha1CronJobStatus
      (Maybe [V1ObjectReference]
 -> Maybe DateTime -> V2alpha1CronJobStatus)
-> Parser (Maybe [V1ObjectReference])
-> Parser (Maybe DateTime -> V2alpha1CronJobStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe [V1ObjectReference])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"active")
      Parser (Maybe DateTime -> V2alpha1CronJobStatus)
-> Parser (Maybe DateTime) -> Parser V2alpha1CronJobStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastScheduleTime")

-- | ToJSON V2alpha1CronJobStatus
instance A.ToJSON V2alpha1CronJobStatus where
  toJSON :: V2alpha1CronJobStatus -> Value
toJSON V2alpha1CronJobStatus {Maybe [V1ObjectReference]
Maybe DateTime
v2alpha1CronJobStatusLastScheduleTime :: Maybe DateTime
v2alpha1CronJobStatusActive :: Maybe [V1ObjectReference]
v2alpha1CronJobStatusLastScheduleTime :: V2alpha1CronJobStatus -> Maybe DateTime
v2alpha1CronJobStatusActive :: V2alpha1CronJobStatus -> Maybe [V1ObjectReference]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"active" Text -> Maybe [V1ObjectReference] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V1ObjectReference]
v2alpha1CronJobStatusActive
      , Text
"lastScheduleTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v2alpha1CronJobStatusLastScheduleTime
      ]


-- | Construct a value of type 'V2alpha1CronJobStatus' (by applying it's required fields, if any)
mkV2alpha1CronJobStatus
  :: V2alpha1CronJobStatus
mkV2alpha1CronJobStatus :: V2alpha1CronJobStatus
mkV2alpha1CronJobStatus =
  V2alpha1CronJobStatus :: Maybe [V1ObjectReference]
-> Maybe DateTime -> V2alpha1CronJobStatus
V2alpha1CronJobStatus
  { v2alpha1CronJobStatusActive :: Maybe [V1ObjectReference]
v2alpha1CronJobStatusActive = Maybe [V1ObjectReference]
forall a. Maybe a
Nothing
  , v2alpha1CronJobStatusLastScheduleTime :: Maybe DateTime
v2alpha1CronJobStatusLastScheduleTime = Maybe DateTime
forall a. Maybe a
Nothing
  }

-- ** V2alpha1JobTemplateSpec
-- | V2alpha1JobTemplateSpec
-- JobTemplateSpec describes the data a Job should have when created from a template
data V2alpha1JobTemplateSpec = V2alpha1JobTemplateSpec
  { V2alpha1JobTemplateSpec -> Maybe V1ObjectMeta
v2alpha1JobTemplateSpecMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V2alpha1JobTemplateSpec -> Maybe V1JobSpec
v2alpha1JobTemplateSpecSpec :: !(Maybe V1JobSpec) -- ^ "spec"
  } deriving (Int -> V2alpha1JobTemplateSpec -> ShowS
[V2alpha1JobTemplateSpec] -> ShowS
V2alpha1JobTemplateSpec -> String
(Int -> V2alpha1JobTemplateSpec -> ShowS)
-> (V2alpha1JobTemplateSpec -> String)
-> ([V2alpha1JobTemplateSpec] -> ShowS)
-> Show V2alpha1JobTemplateSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2alpha1JobTemplateSpec] -> ShowS
$cshowList :: [V2alpha1JobTemplateSpec] -> ShowS
show :: V2alpha1JobTemplateSpec -> String
$cshow :: V2alpha1JobTemplateSpec -> String
showsPrec :: Int -> V2alpha1JobTemplateSpec -> ShowS
$cshowsPrec :: Int -> V2alpha1JobTemplateSpec -> ShowS
P.Show, V2alpha1JobTemplateSpec -> V2alpha1JobTemplateSpec -> Bool
(V2alpha1JobTemplateSpec -> V2alpha1JobTemplateSpec -> Bool)
-> (V2alpha1JobTemplateSpec -> V2alpha1JobTemplateSpec -> Bool)
-> Eq V2alpha1JobTemplateSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2alpha1JobTemplateSpec -> V2alpha1JobTemplateSpec -> Bool
$c/= :: V2alpha1JobTemplateSpec -> V2alpha1JobTemplateSpec -> Bool
== :: V2alpha1JobTemplateSpec -> V2alpha1JobTemplateSpec -> Bool
$c== :: V2alpha1JobTemplateSpec -> V2alpha1JobTemplateSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2alpha1JobTemplateSpec
instance A.FromJSON V2alpha1JobTemplateSpec where
  parseJSON :: Value -> Parser V2alpha1JobTemplateSpec
parseJSON = String
-> (Object -> Parser V2alpha1JobTemplateSpec)
-> Value
-> Parser V2alpha1JobTemplateSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2alpha1JobTemplateSpec" ((Object -> Parser V2alpha1JobTemplateSpec)
 -> Value -> Parser V2alpha1JobTemplateSpec)
-> (Object -> Parser V2alpha1JobTemplateSpec)
-> Value
-> Parser V2alpha1JobTemplateSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V1ObjectMeta -> Maybe V1JobSpec -> V2alpha1JobTemplateSpec
V2alpha1JobTemplateSpec
      (Maybe V1ObjectMeta -> Maybe V1JobSpec -> V2alpha1JobTemplateSpec)
-> Parser (Maybe V1ObjectMeta)
-> Parser (Maybe V1JobSpec -> V2alpha1JobTemplateSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser (Maybe V1JobSpec -> V2alpha1JobTemplateSpec)
-> Parser (Maybe V1JobSpec) -> Parser V2alpha1JobTemplateSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1JobSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")

-- | ToJSON V2alpha1JobTemplateSpec
instance A.ToJSON V2alpha1JobTemplateSpec where
  toJSON :: V2alpha1JobTemplateSpec -> Value
toJSON V2alpha1JobTemplateSpec {Maybe V1ObjectMeta
Maybe V1JobSpec
v2alpha1JobTemplateSpecSpec :: Maybe V1JobSpec
v2alpha1JobTemplateSpecMetadata :: Maybe V1ObjectMeta
v2alpha1JobTemplateSpecSpec :: V2alpha1JobTemplateSpec -> Maybe V1JobSpec
v2alpha1JobTemplateSpecMetadata :: V2alpha1JobTemplateSpec -> Maybe V1ObjectMeta
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v2alpha1JobTemplateSpecMetadata
      , Text
"spec" Text -> Maybe V1JobSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1JobSpec
v2alpha1JobTemplateSpecSpec
      ]


-- | Construct a value of type 'V2alpha1JobTemplateSpec' (by applying it's required fields, if any)
mkV2alpha1JobTemplateSpec
  :: V2alpha1JobTemplateSpec
mkV2alpha1JobTemplateSpec :: V2alpha1JobTemplateSpec
mkV2alpha1JobTemplateSpec =
  V2alpha1JobTemplateSpec :: Maybe V1ObjectMeta -> Maybe V1JobSpec -> V2alpha1JobTemplateSpec
V2alpha1JobTemplateSpec
  { v2alpha1JobTemplateSpecMetadata :: Maybe V1ObjectMeta
v2alpha1JobTemplateSpecMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v2alpha1JobTemplateSpecSpec :: Maybe V1JobSpec
v2alpha1JobTemplateSpecSpec = Maybe V1JobSpec
forall a. Maybe a
Nothing
  }

-- ** V2beta1CrossVersionObjectReference
-- | V2beta1CrossVersionObjectReference
-- CrossVersionObjectReference contains enough information to let you identify the referred resource.
data V2beta1CrossVersionObjectReference = V2beta1CrossVersionObjectReference
  { V2beta1CrossVersionObjectReference -> Maybe Text
v2beta1CrossVersionObjectReferenceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - API version of the referent
  , V2beta1CrossVersionObjectReference -> Text
v2beta1CrossVersionObjectReferenceKind :: !(Text) -- ^ /Required/ "kind" - Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\&quot;
  , V2beta1CrossVersionObjectReference -> Text
v2beta1CrossVersionObjectReferenceName :: !(Text) -- ^ /Required/ "name" - Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names
  } deriving (Int -> V2beta1CrossVersionObjectReference -> ShowS
[V2beta1CrossVersionObjectReference] -> ShowS
V2beta1CrossVersionObjectReference -> String
(Int -> V2beta1CrossVersionObjectReference -> ShowS)
-> (V2beta1CrossVersionObjectReference -> String)
-> ([V2beta1CrossVersionObjectReference] -> ShowS)
-> Show V2beta1CrossVersionObjectReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta1CrossVersionObjectReference] -> ShowS
$cshowList :: [V2beta1CrossVersionObjectReference] -> ShowS
show :: V2beta1CrossVersionObjectReference -> String
$cshow :: V2beta1CrossVersionObjectReference -> String
showsPrec :: Int -> V2beta1CrossVersionObjectReference -> ShowS
$cshowsPrec :: Int -> V2beta1CrossVersionObjectReference -> ShowS
P.Show, V2beta1CrossVersionObjectReference
-> V2beta1CrossVersionObjectReference -> Bool
(V2beta1CrossVersionObjectReference
 -> V2beta1CrossVersionObjectReference -> Bool)
-> (V2beta1CrossVersionObjectReference
    -> V2beta1CrossVersionObjectReference -> Bool)
-> Eq V2beta1CrossVersionObjectReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta1CrossVersionObjectReference
-> V2beta1CrossVersionObjectReference -> Bool
$c/= :: V2beta1CrossVersionObjectReference
-> V2beta1CrossVersionObjectReference -> Bool
== :: V2beta1CrossVersionObjectReference
-> V2beta1CrossVersionObjectReference -> Bool
$c== :: V2beta1CrossVersionObjectReference
-> V2beta1CrossVersionObjectReference -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta1CrossVersionObjectReference
instance A.FromJSON V2beta1CrossVersionObjectReference where
  parseJSON :: Value -> Parser V2beta1CrossVersionObjectReference
parseJSON = String
-> (Object -> Parser V2beta1CrossVersionObjectReference)
-> Value
-> Parser V2beta1CrossVersionObjectReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta1CrossVersionObjectReference" ((Object -> Parser V2beta1CrossVersionObjectReference)
 -> Value -> Parser V2beta1CrossVersionObjectReference)
-> (Object -> Parser V2beta1CrossVersionObjectReference)
-> Value
-> Parser V2beta1CrossVersionObjectReference
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Text -> Text -> V2beta1CrossVersionObjectReference
V2beta1CrossVersionObjectReference
      (Maybe Text -> Text -> Text -> V2beta1CrossVersionObjectReference)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V2beta1CrossVersionObjectReference)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser (Text -> Text -> V2beta1CrossVersionObjectReference)
-> Parser Text
-> Parser (Text -> V2beta1CrossVersionObjectReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kind")
      Parser (Text -> V2beta1CrossVersionObjectReference)
-> Parser Text -> Parser V2beta1CrossVersionObjectReference
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")

-- | ToJSON V2beta1CrossVersionObjectReference
instance A.ToJSON V2beta1CrossVersionObjectReference where
  toJSON :: V2beta1CrossVersionObjectReference -> Value
toJSON V2beta1CrossVersionObjectReference {Maybe Text
Text
v2beta1CrossVersionObjectReferenceName :: Text
v2beta1CrossVersionObjectReferenceKind :: Text
v2beta1CrossVersionObjectReferenceApiVersion :: Maybe Text
v2beta1CrossVersionObjectReferenceName :: V2beta1CrossVersionObjectReference -> Text
v2beta1CrossVersionObjectReferenceKind :: V2beta1CrossVersionObjectReference -> Text
v2beta1CrossVersionObjectReferenceApiVersion :: V2beta1CrossVersionObjectReference -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2beta1CrossVersionObjectReferenceApiVersion
      , Text
"kind" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta1CrossVersionObjectReferenceKind
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta1CrossVersionObjectReferenceName
      ]


-- | Construct a value of type 'V2beta1CrossVersionObjectReference' (by applying it's required fields, if any)
mkV2beta1CrossVersionObjectReference
  :: Text -- ^ 'v2beta1CrossVersionObjectReferenceKind': Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\"
  -> Text -- ^ 'v2beta1CrossVersionObjectReferenceName': Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names
  -> V2beta1CrossVersionObjectReference
mkV2beta1CrossVersionObjectReference :: Text -> Text -> V2beta1CrossVersionObjectReference
mkV2beta1CrossVersionObjectReference Text
v2beta1CrossVersionObjectReferenceKind Text
v2beta1CrossVersionObjectReferenceName =
  V2beta1CrossVersionObjectReference :: Maybe Text -> Text -> Text -> V2beta1CrossVersionObjectReference
V2beta1CrossVersionObjectReference
  { v2beta1CrossVersionObjectReferenceApiVersion :: Maybe Text
v2beta1CrossVersionObjectReferenceApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , Text
v2beta1CrossVersionObjectReferenceKind :: Text
v2beta1CrossVersionObjectReferenceKind :: Text
v2beta1CrossVersionObjectReferenceKind
  , Text
v2beta1CrossVersionObjectReferenceName :: Text
v2beta1CrossVersionObjectReferenceName :: Text
v2beta1CrossVersionObjectReferenceName
  }

-- ** V2beta1ExternalMetricSource
-- | V2beta1ExternalMetricSource
-- ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). Exactly one \"target\" type should be set.
data V2beta1ExternalMetricSource = V2beta1ExternalMetricSource
  { V2beta1ExternalMetricSource -> Text
v2beta1ExternalMetricSourceMetricName :: !(Text) -- ^ /Required/ "metricName" - metricName is the name of the metric in question.
  , V2beta1ExternalMetricSource -> Maybe V1LabelSelector
v2beta1ExternalMetricSourceMetricSelector :: !(Maybe V1LabelSelector) -- ^ "metricSelector"
  , V2beta1ExternalMetricSource -> Maybe Quantity
v2beta1ExternalMetricSourceTargetAverageValue :: !(Maybe Quantity) -- ^ "targetAverageValue"
  , V2beta1ExternalMetricSource -> Maybe Quantity
v2beta1ExternalMetricSourceTargetValue :: !(Maybe Quantity) -- ^ "targetValue"
  } deriving (Int -> V2beta1ExternalMetricSource -> ShowS
[V2beta1ExternalMetricSource] -> ShowS
V2beta1ExternalMetricSource -> String
(Int -> V2beta1ExternalMetricSource -> ShowS)
-> (V2beta1ExternalMetricSource -> String)
-> ([V2beta1ExternalMetricSource] -> ShowS)
-> Show V2beta1ExternalMetricSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta1ExternalMetricSource] -> ShowS
$cshowList :: [V2beta1ExternalMetricSource] -> ShowS
show :: V2beta1ExternalMetricSource -> String
$cshow :: V2beta1ExternalMetricSource -> String
showsPrec :: Int -> V2beta1ExternalMetricSource -> ShowS
$cshowsPrec :: Int -> V2beta1ExternalMetricSource -> ShowS
P.Show, V2beta1ExternalMetricSource -> V2beta1ExternalMetricSource -> Bool
(V2beta1ExternalMetricSource
 -> V2beta1ExternalMetricSource -> Bool)
-> (V2beta1ExternalMetricSource
    -> V2beta1ExternalMetricSource -> Bool)
-> Eq V2beta1ExternalMetricSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta1ExternalMetricSource -> V2beta1ExternalMetricSource -> Bool
$c/= :: V2beta1ExternalMetricSource -> V2beta1ExternalMetricSource -> Bool
== :: V2beta1ExternalMetricSource -> V2beta1ExternalMetricSource -> Bool
$c== :: V2beta1ExternalMetricSource -> V2beta1ExternalMetricSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta1ExternalMetricSource
instance A.FromJSON V2beta1ExternalMetricSource where
  parseJSON :: Value -> Parser V2beta1ExternalMetricSource
parseJSON = String
-> (Object -> Parser V2beta1ExternalMetricSource)
-> Value
-> Parser V2beta1ExternalMetricSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta1ExternalMetricSource" ((Object -> Parser V2beta1ExternalMetricSource)
 -> Value -> Parser V2beta1ExternalMetricSource)
-> (Object -> Parser V2beta1ExternalMetricSource)
-> Value
-> Parser V2beta1ExternalMetricSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Maybe V1LabelSelector
-> Maybe Quantity
-> Maybe Quantity
-> V2beta1ExternalMetricSource
V2beta1ExternalMetricSource
      (Text
 -> Maybe V1LabelSelector
 -> Maybe Quantity
 -> Maybe Quantity
 -> V2beta1ExternalMetricSource)
-> Parser Text
-> Parser
     (Maybe V1LabelSelector
      -> Maybe Quantity -> Maybe Quantity -> V2beta1ExternalMetricSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"metricName")
      Parser
  (Maybe V1LabelSelector
   -> Maybe Quantity -> Maybe Quantity -> V2beta1ExternalMetricSource)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (Maybe Quantity -> Maybe Quantity -> V2beta1ExternalMetricSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metricSelector")
      Parser
  (Maybe Quantity -> Maybe Quantity -> V2beta1ExternalMetricSource)
-> Parser (Maybe Quantity)
-> Parser (Maybe Quantity -> V2beta1ExternalMetricSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Quantity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"targetAverageValue")
      Parser (Maybe Quantity -> V2beta1ExternalMetricSource)
-> Parser (Maybe Quantity) -> Parser V2beta1ExternalMetricSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Quantity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"targetValue")

-- | ToJSON V2beta1ExternalMetricSource
instance A.ToJSON V2beta1ExternalMetricSource where
  toJSON :: V2beta1ExternalMetricSource -> Value
toJSON V2beta1ExternalMetricSource {Maybe Quantity
Maybe V1LabelSelector
Text
v2beta1ExternalMetricSourceTargetValue :: Maybe Quantity
v2beta1ExternalMetricSourceTargetAverageValue :: Maybe Quantity
v2beta1ExternalMetricSourceMetricSelector :: Maybe V1LabelSelector
v2beta1ExternalMetricSourceMetricName :: Text
v2beta1ExternalMetricSourceTargetValue :: V2beta1ExternalMetricSource -> Maybe Quantity
v2beta1ExternalMetricSourceTargetAverageValue :: V2beta1ExternalMetricSource -> Maybe Quantity
v2beta1ExternalMetricSourceMetricSelector :: V2beta1ExternalMetricSource -> Maybe V1LabelSelector
v2beta1ExternalMetricSourceMetricName :: V2beta1ExternalMetricSource -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"metricName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta1ExternalMetricSourceMetricName
      , Text
"metricSelector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v2beta1ExternalMetricSourceMetricSelector
      , Text
"targetAverageValue" Text -> Maybe Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Quantity
v2beta1ExternalMetricSourceTargetAverageValue
      , Text
"targetValue" Text -> Maybe Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Quantity
v2beta1ExternalMetricSourceTargetValue
      ]


-- | Construct a value of type 'V2beta1ExternalMetricSource' (by applying it's required fields, if any)
mkV2beta1ExternalMetricSource
  :: Text -- ^ 'v2beta1ExternalMetricSourceMetricName': metricName is the name of the metric in question.
  -> V2beta1ExternalMetricSource
mkV2beta1ExternalMetricSource :: Text -> V2beta1ExternalMetricSource
mkV2beta1ExternalMetricSource Text
v2beta1ExternalMetricSourceMetricName =
  V2beta1ExternalMetricSource :: Text
-> Maybe V1LabelSelector
-> Maybe Quantity
-> Maybe Quantity
-> V2beta1ExternalMetricSource
V2beta1ExternalMetricSource
  { Text
v2beta1ExternalMetricSourceMetricName :: Text
v2beta1ExternalMetricSourceMetricName :: Text
v2beta1ExternalMetricSourceMetricName
  , v2beta1ExternalMetricSourceMetricSelector :: Maybe V1LabelSelector
v2beta1ExternalMetricSourceMetricSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , v2beta1ExternalMetricSourceTargetAverageValue :: Maybe Quantity
v2beta1ExternalMetricSourceTargetAverageValue = Maybe Quantity
forall a. Maybe a
Nothing
  , v2beta1ExternalMetricSourceTargetValue :: Maybe Quantity
v2beta1ExternalMetricSourceTargetValue = Maybe Quantity
forall a. Maybe a
Nothing
  }

-- ** V2beta1ExternalMetricStatus
-- | V2beta1ExternalMetricStatus
-- ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.
data V2beta1ExternalMetricStatus = V2beta1ExternalMetricStatus
  { V2beta1ExternalMetricStatus -> Maybe Quantity
v2beta1ExternalMetricStatusCurrentAverageValue :: !(Maybe Quantity) -- ^ "currentAverageValue"
  , V2beta1ExternalMetricStatus -> Quantity
v2beta1ExternalMetricStatusCurrentValue :: !(Quantity) -- ^ /Required/ "currentValue"
  , V2beta1ExternalMetricStatus -> Text
v2beta1ExternalMetricStatusMetricName :: !(Text) -- ^ /Required/ "metricName" - metricName is the name of a metric used for autoscaling in metric system.
  , V2beta1ExternalMetricStatus -> Maybe V1LabelSelector
v2beta1ExternalMetricStatusMetricSelector :: !(Maybe V1LabelSelector) -- ^ "metricSelector"
  } deriving (Int -> V2beta1ExternalMetricStatus -> ShowS
[V2beta1ExternalMetricStatus] -> ShowS
V2beta1ExternalMetricStatus -> String
(Int -> V2beta1ExternalMetricStatus -> ShowS)
-> (V2beta1ExternalMetricStatus -> String)
-> ([V2beta1ExternalMetricStatus] -> ShowS)
-> Show V2beta1ExternalMetricStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta1ExternalMetricStatus] -> ShowS
$cshowList :: [V2beta1ExternalMetricStatus] -> ShowS
show :: V2beta1ExternalMetricStatus -> String
$cshow :: V2beta1ExternalMetricStatus -> String
showsPrec :: Int -> V2beta1ExternalMetricStatus -> ShowS
$cshowsPrec :: Int -> V2beta1ExternalMetricStatus -> ShowS
P.Show, V2beta1ExternalMetricStatus -> V2beta1ExternalMetricStatus -> Bool
(V2beta1ExternalMetricStatus
 -> V2beta1ExternalMetricStatus -> Bool)
-> (V2beta1ExternalMetricStatus
    -> V2beta1ExternalMetricStatus -> Bool)
-> Eq V2beta1ExternalMetricStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta1ExternalMetricStatus -> V2beta1ExternalMetricStatus -> Bool
$c/= :: V2beta1ExternalMetricStatus -> V2beta1ExternalMetricStatus -> Bool
== :: V2beta1ExternalMetricStatus -> V2beta1ExternalMetricStatus -> Bool
$c== :: V2beta1ExternalMetricStatus -> V2beta1ExternalMetricStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta1ExternalMetricStatus
instance A.FromJSON V2beta1ExternalMetricStatus where
  parseJSON :: Value -> Parser V2beta1ExternalMetricStatus
parseJSON = String
-> (Object -> Parser V2beta1ExternalMetricStatus)
-> Value
-> Parser V2beta1ExternalMetricStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta1ExternalMetricStatus" ((Object -> Parser V2beta1ExternalMetricStatus)
 -> Value -> Parser V2beta1ExternalMetricStatus)
-> (Object -> Parser V2beta1ExternalMetricStatus)
-> Value
-> Parser V2beta1ExternalMetricStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Quantity
-> Quantity
-> Text
-> Maybe V1LabelSelector
-> V2beta1ExternalMetricStatus
V2beta1ExternalMetricStatus
      (Maybe Quantity
 -> Quantity
 -> Text
 -> Maybe V1LabelSelector
 -> V2beta1ExternalMetricStatus)
-> Parser (Maybe Quantity)
-> Parser
     (Quantity
      -> Text -> Maybe V1LabelSelector -> V2beta1ExternalMetricStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Quantity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"currentAverageValue")
      Parser
  (Quantity
   -> Text -> Maybe V1LabelSelector -> V2beta1ExternalMetricStatus)
-> Parser Quantity
-> Parser
     (Text -> Maybe V1LabelSelector -> V2beta1ExternalMetricStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Quantity
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"currentValue")
      Parser
  (Text -> Maybe V1LabelSelector -> V2beta1ExternalMetricStatus)
-> Parser Text
-> Parser (Maybe V1LabelSelector -> V2beta1ExternalMetricStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"metricName")
      Parser (Maybe V1LabelSelector -> V2beta1ExternalMetricStatus)
-> Parser (Maybe V1LabelSelector)
-> Parser V2beta1ExternalMetricStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metricSelector")

-- | ToJSON V2beta1ExternalMetricStatus
instance A.ToJSON V2beta1ExternalMetricStatus where
  toJSON :: V2beta1ExternalMetricStatus -> Value
toJSON V2beta1ExternalMetricStatus {Maybe Quantity
Maybe V1LabelSelector
Text
Quantity
v2beta1ExternalMetricStatusMetricSelector :: Maybe V1LabelSelector
v2beta1ExternalMetricStatusMetricName :: Text
v2beta1ExternalMetricStatusCurrentValue :: Quantity
v2beta1ExternalMetricStatusCurrentAverageValue :: Maybe Quantity
v2beta1ExternalMetricStatusMetricSelector :: V2beta1ExternalMetricStatus -> Maybe V1LabelSelector
v2beta1ExternalMetricStatusMetricName :: V2beta1ExternalMetricStatus -> Text
v2beta1ExternalMetricStatusCurrentValue :: V2beta1ExternalMetricStatus -> Quantity
v2beta1ExternalMetricStatusCurrentAverageValue :: V2beta1ExternalMetricStatus -> Maybe Quantity
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"currentAverageValue" Text -> Maybe Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Quantity
v2beta1ExternalMetricStatusCurrentAverageValue
      , Text
"currentValue" Text -> Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Quantity
v2beta1ExternalMetricStatusCurrentValue
      , Text
"metricName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta1ExternalMetricStatusMetricName
      , Text
"metricSelector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v2beta1ExternalMetricStatusMetricSelector
      ]


-- | Construct a value of type 'V2beta1ExternalMetricStatus' (by applying it's required fields, if any)
mkV2beta1ExternalMetricStatus
  :: Quantity -- ^ 'v2beta1ExternalMetricStatusCurrentValue' 
  -> Text -- ^ 'v2beta1ExternalMetricStatusMetricName': metricName is the name of a metric used for autoscaling in metric system.
  -> V2beta1ExternalMetricStatus
mkV2beta1ExternalMetricStatus :: Quantity -> Text -> V2beta1ExternalMetricStatus
mkV2beta1ExternalMetricStatus Quantity
v2beta1ExternalMetricStatusCurrentValue Text
v2beta1ExternalMetricStatusMetricName =
  V2beta1ExternalMetricStatus :: Maybe Quantity
-> Quantity
-> Text
-> Maybe V1LabelSelector
-> V2beta1ExternalMetricStatus
V2beta1ExternalMetricStatus
  { v2beta1ExternalMetricStatusCurrentAverageValue :: Maybe Quantity
v2beta1ExternalMetricStatusCurrentAverageValue = Maybe Quantity
forall a. Maybe a
Nothing
  , Quantity
v2beta1ExternalMetricStatusCurrentValue :: Quantity
v2beta1ExternalMetricStatusCurrentValue :: Quantity
v2beta1ExternalMetricStatusCurrentValue
  , Text
v2beta1ExternalMetricStatusMetricName :: Text
v2beta1ExternalMetricStatusMetricName :: Text
v2beta1ExternalMetricStatusMetricName
  , v2beta1ExternalMetricStatusMetricSelector :: Maybe V1LabelSelector
v2beta1ExternalMetricStatusMetricSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  }

-- ** V2beta1HorizontalPodAutoscaler
-- | V2beta1HorizontalPodAutoscaler
-- HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.
data V2beta1HorizontalPodAutoscaler = V2beta1HorizontalPodAutoscaler
  { V2beta1HorizontalPodAutoscaler -> Maybe Text
v2beta1HorizontalPodAutoscalerApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V2beta1HorizontalPodAutoscaler -> Maybe Text
v2beta1HorizontalPodAutoscalerKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V2beta1HorizontalPodAutoscaler -> Maybe V1ObjectMeta
v2beta1HorizontalPodAutoscalerMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V2beta1HorizontalPodAutoscaler
-> Maybe V2beta1HorizontalPodAutoscalerSpec
v2beta1HorizontalPodAutoscalerSpec :: !(Maybe V2beta1HorizontalPodAutoscalerSpec) -- ^ "spec"
  , V2beta1HorizontalPodAutoscaler
-> Maybe V2beta1HorizontalPodAutoscalerStatus
v2beta1HorizontalPodAutoscalerStatus :: !(Maybe V2beta1HorizontalPodAutoscalerStatus) -- ^ "status"
  } deriving (Int -> V2beta1HorizontalPodAutoscaler -> ShowS
[V2beta1HorizontalPodAutoscaler] -> ShowS
V2beta1HorizontalPodAutoscaler -> String
(Int -> V2beta1HorizontalPodAutoscaler -> ShowS)
-> (V2beta1HorizontalPodAutoscaler -> String)
-> ([V2beta1HorizontalPodAutoscaler] -> ShowS)
-> Show V2beta1HorizontalPodAutoscaler
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta1HorizontalPodAutoscaler] -> ShowS
$cshowList :: [V2beta1HorizontalPodAutoscaler] -> ShowS
show :: V2beta1HorizontalPodAutoscaler -> String
$cshow :: V2beta1HorizontalPodAutoscaler -> String
showsPrec :: Int -> V2beta1HorizontalPodAutoscaler -> ShowS
$cshowsPrec :: Int -> V2beta1HorizontalPodAutoscaler -> ShowS
P.Show, V2beta1HorizontalPodAutoscaler
-> V2beta1HorizontalPodAutoscaler -> Bool
(V2beta1HorizontalPodAutoscaler
 -> V2beta1HorizontalPodAutoscaler -> Bool)
-> (V2beta1HorizontalPodAutoscaler
    -> V2beta1HorizontalPodAutoscaler -> Bool)
-> Eq V2beta1HorizontalPodAutoscaler
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta1HorizontalPodAutoscaler
-> V2beta1HorizontalPodAutoscaler -> Bool
$c/= :: V2beta1HorizontalPodAutoscaler
-> V2beta1HorizontalPodAutoscaler -> Bool
== :: V2beta1HorizontalPodAutoscaler
-> V2beta1HorizontalPodAutoscaler -> Bool
$c== :: V2beta1HorizontalPodAutoscaler
-> V2beta1HorizontalPodAutoscaler -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta1HorizontalPodAutoscaler
instance A.FromJSON V2beta1HorizontalPodAutoscaler where
  parseJSON :: Value -> Parser V2beta1HorizontalPodAutoscaler
parseJSON = String
-> (Object -> Parser V2beta1HorizontalPodAutoscaler)
-> Value
-> Parser V2beta1HorizontalPodAutoscaler
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta1HorizontalPodAutoscaler" ((Object -> Parser V2beta1HorizontalPodAutoscaler)
 -> Value -> Parser V2beta1HorizontalPodAutoscaler)
-> (Object -> Parser V2beta1HorizontalPodAutoscaler)
-> Value
-> Parser V2beta1HorizontalPodAutoscaler
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V2beta1HorizontalPodAutoscalerSpec
-> Maybe V2beta1HorizontalPodAutoscalerStatus
-> V2beta1HorizontalPodAutoscaler
V2beta1HorizontalPodAutoscaler
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V2beta1HorizontalPodAutoscalerSpec
 -> Maybe V2beta1HorizontalPodAutoscalerStatus
 -> V2beta1HorizontalPodAutoscaler)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V2beta1HorizontalPodAutoscalerSpec
      -> Maybe V2beta1HorizontalPodAutoscalerStatus
      -> V2beta1HorizontalPodAutoscaler)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V2beta1HorizontalPodAutoscalerSpec
   -> Maybe V2beta1HorizontalPodAutoscalerStatus
   -> V2beta1HorizontalPodAutoscaler)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V2beta1HorizontalPodAutoscalerSpec
      -> Maybe V2beta1HorizontalPodAutoscalerStatus
      -> V2beta1HorizontalPodAutoscaler)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V2beta1HorizontalPodAutoscalerSpec
   -> Maybe V2beta1HorizontalPodAutoscalerStatus
   -> V2beta1HorizontalPodAutoscaler)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V2beta1HorizontalPodAutoscalerSpec
      -> Maybe V2beta1HorizontalPodAutoscalerStatus
      -> V2beta1HorizontalPodAutoscaler)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V2beta1HorizontalPodAutoscalerSpec
   -> Maybe V2beta1HorizontalPodAutoscalerStatus
   -> V2beta1HorizontalPodAutoscaler)
-> Parser (Maybe V2beta1HorizontalPodAutoscalerSpec)
-> Parser
     (Maybe V2beta1HorizontalPodAutoscalerStatus
      -> V2beta1HorizontalPodAutoscaler)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V2beta1HorizontalPodAutoscalerSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser
  (Maybe V2beta1HorizontalPodAutoscalerStatus
   -> V2beta1HorizontalPodAutoscaler)
-> Parser (Maybe V2beta1HorizontalPodAutoscalerStatus)
-> Parser V2beta1HorizontalPodAutoscaler
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe V2beta1HorizontalPodAutoscalerStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V2beta1HorizontalPodAutoscaler
instance A.ToJSON V2beta1HorizontalPodAutoscaler where
  toJSON :: V2beta1HorizontalPodAutoscaler -> Value
toJSON V2beta1HorizontalPodAutoscaler {Maybe Text
Maybe V2beta1HorizontalPodAutoscalerStatus
Maybe V2beta1HorizontalPodAutoscalerSpec
Maybe V1ObjectMeta
v2beta1HorizontalPodAutoscalerStatus :: Maybe V2beta1HorizontalPodAutoscalerStatus
v2beta1HorizontalPodAutoscalerSpec :: Maybe V2beta1HorizontalPodAutoscalerSpec
v2beta1HorizontalPodAutoscalerMetadata :: Maybe V1ObjectMeta
v2beta1HorizontalPodAutoscalerKind :: Maybe Text
v2beta1HorizontalPodAutoscalerApiVersion :: Maybe Text
v2beta1HorizontalPodAutoscalerStatus :: V2beta1HorizontalPodAutoscaler
-> Maybe V2beta1HorizontalPodAutoscalerStatus
v2beta1HorizontalPodAutoscalerSpec :: V2beta1HorizontalPodAutoscaler
-> Maybe V2beta1HorizontalPodAutoscalerSpec
v2beta1HorizontalPodAutoscalerMetadata :: V2beta1HorizontalPodAutoscaler -> Maybe V1ObjectMeta
v2beta1HorizontalPodAutoscalerKind :: V2beta1HorizontalPodAutoscaler -> Maybe Text
v2beta1HorizontalPodAutoscalerApiVersion :: V2beta1HorizontalPodAutoscaler -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2beta1HorizontalPodAutoscalerApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2beta1HorizontalPodAutoscalerKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v2beta1HorizontalPodAutoscalerMetadata
      , Text
"spec" Text -> Maybe V2beta1HorizontalPodAutoscalerSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta1HorizontalPodAutoscalerSpec
v2beta1HorizontalPodAutoscalerSpec
      , Text
"status" Text -> Maybe V2beta1HorizontalPodAutoscalerStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta1HorizontalPodAutoscalerStatus
v2beta1HorizontalPodAutoscalerStatus
      ]


-- | Construct a value of type 'V2beta1HorizontalPodAutoscaler' (by applying it's required fields, if any)
mkV2beta1HorizontalPodAutoscaler
  :: V2beta1HorizontalPodAutoscaler
mkV2beta1HorizontalPodAutoscaler :: V2beta1HorizontalPodAutoscaler
mkV2beta1HorizontalPodAutoscaler =
  V2beta1HorizontalPodAutoscaler :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V2beta1HorizontalPodAutoscalerSpec
-> Maybe V2beta1HorizontalPodAutoscalerStatus
-> V2beta1HorizontalPodAutoscaler
V2beta1HorizontalPodAutoscaler
  { v2beta1HorizontalPodAutoscalerApiVersion :: Maybe Text
v2beta1HorizontalPodAutoscalerApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v2beta1HorizontalPodAutoscalerKind :: Maybe Text
v2beta1HorizontalPodAutoscalerKind = Maybe Text
forall a. Maybe a
Nothing
  , v2beta1HorizontalPodAutoscalerMetadata :: Maybe V1ObjectMeta
v2beta1HorizontalPodAutoscalerMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v2beta1HorizontalPodAutoscalerSpec :: Maybe V2beta1HorizontalPodAutoscalerSpec
v2beta1HorizontalPodAutoscalerSpec = Maybe V2beta1HorizontalPodAutoscalerSpec
forall a. Maybe a
Nothing
  , v2beta1HorizontalPodAutoscalerStatus :: Maybe V2beta1HorizontalPodAutoscalerStatus
v2beta1HorizontalPodAutoscalerStatus = Maybe V2beta1HorizontalPodAutoscalerStatus
forall a. Maybe a
Nothing
  }

-- ** V2beta1HorizontalPodAutoscalerCondition
-- | V2beta1HorizontalPodAutoscalerCondition
-- HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.
data V2beta1HorizontalPodAutoscalerCondition = V2beta1HorizontalPodAutoscalerCondition
  { V2beta1HorizontalPodAutoscalerCondition -> Maybe DateTime
v2beta1HorizontalPodAutoscalerConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - lastTransitionTime is the last time the condition transitioned from one status to another
  , V2beta1HorizontalPodAutoscalerCondition -> Maybe Text
v2beta1HorizontalPodAutoscalerConditionMessage :: !(Maybe Text) -- ^ "message" - message is a human-readable explanation containing details about the transition
  , V2beta1HorizontalPodAutoscalerCondition -> Maybe Text
v2beta1HorizontalPodAutoscalerConditionReason :: !(Maybe Text) -- ^ "reason" - reason is the reason for the condition&#39;s last transition.
  , V2beta1HorizontalPodAutoscalerCondition -> Text
v2beta1HorizontalPodAutoscalerConditionStatus :: !(Text) -- ^ /Required/ "status" - status is the status of the condition (True, False, Unknown)
  , V2beta1HorizontalPodAutoscalerCondition -> Text
v2beta1HorizontalPodAutoscalerConditionType :: !(Text) -- ^ /Required/ "type" - type describes the current condition
  } deriving (Int -> V2beta1HorizontalPodAutoscalerCondition -> ShowS
[V2beta1HorizontalPodAutoscalerCondition] -> ShowS
V2beta1HorizontalPodAutoscalerCondition -> String
(Int -> V2beta1HorizontalPodAutoscalerCondition -> ShowS)
-> (V2beta1HorizontalPodAutoscalerCondition -> String)
-> ([V2beta1HorizontalPodAutoscalerCondition] -> ShowS)
-> Show V2beta1HorizontalPodAutoscalerCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta1HorizontalPodAutoscalerCondition] -> ShowS
$cshowList :: [V2beta1HorizontalPodAutoscalerCondition] -> ShowS
show :: V2beta1HorizontalPodAutoscalerCondition -> String
$cshow :: V2beta1HorizontalPodAutoscalerCondition -> String
showsPrec :: Int -> V2beta1HorizontalPodAutoscalerCondition -> ShowS
$cshowsPrec :: Int -> V2beta1HorizontalPodAutoscalerCondition -> ShowS
P.Show, V2beta1HorizontalPodAutoscalerCondition
-> V2beta1HorizontalPodAutoscalerCondition -> Bool
(V2beta1HorizontalPodAutoscalerCondition
 -> V2beta1HorizontalPodAutoscalerCondition -> Bool)
-> (V2beta1HorizontalPodAutoscalerCondition
    -> V2beta1HorizontalPodAutoscalerCondition -> Bool)
-> Eq V2beta1HorizontalPodAutoscalerCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta1HorizontalPodAutoscalerCondition
-> V2beta1HorizontalPodAutoscalerCondition -> Bool
$c/= :: V2beta1HorizontalPodAutoscalerCondition
-> V2beta1HorizontalPodAutoscalerCondition -> Bool
== :: V2beta1HorizontalPodAutoscalerCondition
-> V2beta1HorizontalPodAutoscalerCondition -> Bool
$c== :: V2beta1HorizontalPodAutoscalerCondition
-> V2beta1HorizontalPodAutoscalerCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta1HorizontalPodAutoscalerCondition
instance A.FromJSON V2beta1HorizontalPodAutoscalerCondition where
  parseJSON :: Value -> Parser V2beta1HorizontalPodAutoscalerCondition
parseJSON = String
-> (Object -> Parser V2beta1HorizontalPodAutoscalerCondition)
-> Value
-> Parser V2beta1HorizontalPodAutoscalerCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta1HorizontalPodAutoscalerCondition" ((Object -> Parser V2beta1HorizontalPodAutoscalerCondition)
 -> Value -> Parser V2beta1HorizontalPodAutoscalerCondition)
-> (Object -> Parser V2beta1HorizontalPodAutoscalerCondition)
-> Value
-> Parser V2beta1HorizontalPodAutoscalerCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V2beta1HorizontalPodAutoscalerCondition
V2beta1HorizontalPodAutoscalerCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V2beta1HorizontalPodAutoscalerCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Text
      -> Text
      -> V2beta1HorizontalPodAutoscalerCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Text
   -> Text
   -> V2beta1HorizontalPodAutoscalerCondition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text -> Text -> V2beta1HorizontalPodAutoscalerCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser
  (Maybe Text
   -> Text -> Text -> V2beta1HorizontalPodAutoscalerCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V2beta1HorizontalPodAutoscalerCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V2beta1HorizontalPodAutoscalerCondition)
-> Parser Text
-> Parser (Text -> V2beta1HorizontalPodAutoscalerCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V2beta1HorizontalPodAutoscalerCondition)
-> Parser Text -> Parser V2beta1HorizontalPodAutoscalerCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V2beta1HorizontalPodAutoscalerCondition
instance A.ToJSON V2beta1HorizontalPodAutoscalerCondition where
  toJSON :: V2beta1HorizontalPodAutoscalerCondition -> Value
toJSON V2beta1HorizontalPodAutoscalerCondition {Maybe Text
Maybe DateTime
Text
v2beta1HorizontalPodAutoscalerConditionType :: Text
v2beta1HorizontalPodAutoscalerConditionStatus :: Text
v2beta1HorizontalPodAutoscalerConditionReason :: Maybe Text
v2beta1HorizontalPodAutoscalerConditionMessage :: Maybe Text
v2beta1HorizontalPodAutoscalerConditionLastTransitionTime :: Maybe DateTime
v2beta1HorizontalPodAutoscalerConditionType :: V2beta1HorizontalPodAutoscalerCondition -> Text
v2beta1HorizontalPodAutoscalerConditionStatus :: V2beta1HorizontalPodAutoscalerCondition -> Text
v2beta1HorizontalPodAutoscalerConditionReason :: V2beta1HorizontalPodAutoscalerCondition -> Maybe Text
v2beta1HorizontalPodAutoscalerConditionMessage :: V2beta1HorizontalPodAutoscalerCondition -> Maybe Text
v2beta1HorizontalPodAutoscalerConditionLastTransitionTime :: V2beta1HorizontalPodAutoscalerCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v2beta1HorizontalPodAutoscalerConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2beta1HorizontalPodAutoscalerConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2beta1HorizontalPodAutoscalerConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta1HorizontalPodAutoscalerConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta1HorizontalPodAutoscalerConditionType
      ]


-- | Construct a value of type 'V2beta1HorizontalPodAutoscalerCondition' (by applying it's required fields, if any)
mkV2beta1HorizontalPodAutoscalerCondition
  :: Text -- ^ 'v2beta1HorizontalPodAutoscalerConditionStatus': status is the status of the condition (True, False, Unknown)
  -> Text -- ^ 'v2beta1HorizontalPodAutoscalerConditionType': type describes the current condition
  -> V2beta1HorizontalPodAutoscalerCondition
mkV2beta1HorizontalPodAutoscalerCondition :: Text -> Text -> V2beta1HorizontalPodAutoscalerCondition
mkV2beta1HorizontalPodAutoscalerCondition Text
v2beta1HorizontalPodAutoscalerConditionStatus Text
v2beta1HorizontalPodAutoscalerConditionType =
  V2beta1HorizontalPodAutoscalerCondition :: Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V2beta1HorizontalPodAutoscalerCondition
V2beta1HorizontalPodAutoscalerCondition
  { v2beta1HorizontalPodAutoscalerConditionLastTransitionTime :: Maybe DateTime
v2beta1HorizontalPodAutoscalerConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v2beta1HorizontalPodAutoscalerConditionMessage :: Maybe Text
v2beta1HorizontalPodAutoscalerConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v2beta1HorizontalPodAutoscalerConditionReason :: Maybe Text
v2beta1HorizontalPodAutoscalerConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v2beta1HorizontalPodAutoscalerConditionStatus :: Text
v2beta1HorizontalPodAutoscalerConditionStatus :: Text
v2beta1HorizontalPodAutoscalerConditionStatus
  , Text
v2beta1HorizontalPodAutoscalerConditionType :: Text
v2beta1HorizontalPodAutoscalerConditionType :: Text
v2beta1HorizontalPodAutoscalerConditionType
  }

-- ** V2beta1HorizontalPodAutoscalerList
-- | V2beta1HorizontalPodAutoscalerList
-- HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.
data V2beta1HorizontalPodAutoscalerList = V2beta1HorizontalPodAutoscalerList
  { V2beta1HorizontalPodAutoscalerList -> Maybe Text
v2beta1HorizontalPodAutoscalerListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V2beta1HorizontalPodAutoscalerList
-> [V2beta1HorizontalPodAutoscaler]
v2beta1HorizontalPodAutoscalerListItems :: !([V2beta1HorizontalPodAutoscaler]) -- ^ /Required/ "items" - items is the list of horizontal pod autoscaler objects.
  , V2beta1HorizontalPodAutoscalerList -> Maybe Text
v2beta1HorizontalPodAutoscalerListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V2beta1HorizontalPodAutoscalerList -> Maybe V1ListMeta
v2beta1HorizontalPodAutoscalerListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V2beta1HorizontalPodAutoscalerList -> ShowS
[V2beta1HorizontalPodAutoscalerList] -> ShowS
V2beta1HorizontalPodAutoscalerList -> String
(Int -> V2beta1HorizontalPodAutoscalerList -> ShowS)
-> (V2beta1HorizontalPodAutoscalerList -> String)
-> ([V2beta1HorizontalPodAutoscalerList] -> ShowS)
-> Show V2beta1HorizontalPodAutoscalerList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta1HorizontalPodAutoscalerList] -> ShowS
$cshowList :: [V2beta1HorizontalPodAutoscalerList] -> ShowS
show :: V2beta1HorizontalPodAutoscalerList -> String
$cshow :: V2beta1HorizontalPodAutoscalerList -> String
showsPrec :: Int -> V2beta1HorizontalPodAutoscalerList -> ShowS
$cshowsPrec :: Int -> V2beta1HorizontalPodAutoscalerList -> ShowS
P.Show, V2beta1HorizontalPodAutoscalerList
-> V2beta1HorizontalPodAutoscalerList -> Bool
(V2beta1HorizontalPodAutoscalerList
 -> V2beta1HorizontalPodAutoscalerList -> Bool)
-> (V2beta1HorizontalPodAutoscalerList
    -> V2beta1HorizontalPodAutoscalerList -> Bool)
-> Eq V2beta1HorizontalPodAutoscalerList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta1HorizontalPodAutoscalerList
-> V2beta1HorizontalPodAutoscalerList -> Bool
$c/= :: V2beta1HorizontalPodAutoscalerList
-> V2beta1HorizontalPodAutoscalerList -> Bool
== :: V2beta1HorizontalPodAutoscalerList
-> V2beta1HorizontalPodAutoscalerList -> Bool
$c== :: V2beta1HorizontalPodAutoscalerList
-> V2beta1HorizontalPodAutoscalerList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta1HorizontalPodAutoscalerList
instance A.FromJSON V2beta1HorizontalPodAutoscalerList where
  parseJSON :: Value -> Parser V2beta1HorizontalPodAutoscalerList
parseJSON = String
-> (Object -> Parser V2beta1HorizontalPodAutoscalerList)
-> Value
-> Parser V2beta1HorizontalPodAutoscalerList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta1HorizontalPodAutoscalerList" ((Object -> Parser V2beta1HorizontalPodAutoscalerList)
 -> Value -> Parser V2beta1HorizontalPodAutoscalerList)
-> (Object -> Parser V2beta1HorizontalPodAutoscalerList)
-> Value
-> Parser V2beta1HorizontalPodAutoscalerList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V2beta1HorizontalPodAutoscaler]
-> Maybe Text
-> Maybe V1ListMeta
-> V2beta1HorizontalPodAutoscalerList
V2beta1HorizontalPodAutoscalerList
      (Maybe Text
 -> [V2beta1HorizontalPodAutoscaler]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V2beta1HorizontalPodAutoscalerList)
-> Parser (Maybe Text)
-> Parser
     ([V2beta1HorizontalPodAutoscaler]
      -> Maybe Text
      -> Maybe V1ListMeta
      -> V2beta1HorizontalPodAutoscalerList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V2beta1HorizontalPodAutoscaler]
   -> Maybe Text
   -> Maybe V1ListMeta
   -> V2beta1HorizontalPodAutoscalerList)
-> Parser [V2beta1HorizontalPodAutoscaler]
-> Parser
     (Maybe Text
      -> Maybe V1ListMeta -> V2beta1HorizontalPodAutoscalerList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V2beta1HorizontalPodAutoscaler]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text
   -> Maybe V1ListMeta -> V2beta1HorizontalPodAutoscalerList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V2beta1HorizontalPodAutoscalerList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V2beta1HorizontalPodAutoscalerList)
-> Parser (Maybe V1ListMeta)
-> Parser V2beta1HorizontalPodAutoscalerList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V2beta1HorizontalPodAutoscalerList
instance A.ToJSON V2beta1HorizontalPodAutoscalerList where
  toJSON :: V2beta1HorizontalPodAutoscalerList -> Value
toJSON V2beta1HorizontalPodAutoscalerList {[V2beta1HorizontalPodAutoscaler]
Maybe Text
Maybe V1ListMeta
v2beta1HorizontalPodAutoscalerListMetadata :: Maybe V1ListMeta
v2beta1HorizontalPodAutoscalerListKind :: Maybe Text
v2beta1HorizontalPodAutoscalerListItems :: [V2beta1HorizontalPodAutoscaler]
v2beta1HorizontalPodAutoscalerListApiVersion :: Maybe Text
v2beta1HorizontalPodAutoscalerListMetadata :: V2beta1HorizontalPodAutoscalerList -> Maybe V1ListMeta
v2beta1HorizontalPodAutoscalerListKind :: V2beta1HorizontalPodAutoscalerList -> Maybe Text
v2beta1HorizontalPodAutoscalerListItems :: V2beta1HorizontalPodAutoscalerList
-> [V2beta1HorizontalPodAutoscaler]
v2beta1HorizontalPodAutoscalerListApiVersion :: V2beta1HorizontalPodAutoscalerList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2beta1HorizontalPodAutoscalerListApiVersion
      , Text
"items" Text -> [V2beta1HorizontalPodAutoscaler] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V2beta1HorizontalPodAutoscaler]
v2beta1HorizontalPodAutoscalerListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2beta1HorizontalPodAutoscalerListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v2beta1HorizontalPodAutoscalerListMetadata
      ]


-- | Construct a value of type 'V2beta1HorizontalPodAutoscalerList' (by applying it's required fields, if any)
mkV2beta1HorizontalPodAutoscalerList
  :: [V2beta1HorizontalPodAutoscaler] -- ^ 'v2beta1HorizontalPodAutoscalerListItems': items is the list of horizontal pod autoscaler objects.
  -> V2beta1HorizontalPodAutoscalerList
mkV2beta1HorizontalPodAutoscalerList :: [V2beta1HorizontalPodAutoscaler]
-> V2beta1HorizontalPodAutoscalerList
mkV2beta1HorizontalPodAutoscalerList [V2beta1HorizontalPodAutoscaler]
v2beta1HorizontalPodAutoscalerListItems =
  V2beta1HorizontalPodAutoscalerList :: Maybe Text
-> [V2beta1HorizontalPodAutoscaler]
-> Maybe Text
-> Maybe V1ListMeta
-> V2beta1HorizontalPodAutoscalerList
V2beta1HorizontalPodAutoscalerList
  { v2beta1HorizontalPodAutoscalerListApiVersion :: Maybe Text
v2beta1HorizontalPodAutoscalerListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V2beta1HorizontalPodAutoscaler]
v2beta1HorizontalPodAutoscalerListItems :: [V2beta1HorizontalPodAutoscaler]
v2beta1HorizontalPodAutoscalerListItems :: [V2beta1HorizontalPodAutoscaler]
v2beta1HorizontalPodAutoscalerListItems
  , v2beta1HorizontalPodAutoscalerListKind :: Maybe Text
v2beta1HorizontalPodAutoscalerListKind = Maybe Text
forall a. Maybe a
Nothing
  , v2beta1HorizontalPodAutoscalerListMetadata :: Maybe V1ListMeta
v2beta1HorizontalPodAutoscalerListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V2beta1HorizontalPodAutoscalerSpec
-- | V2beta1HorizontalPodAutoscalerSpec
-- HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.
data V2beta1HorizontalPodAutoscalerSpec = V2beta1HorizontalPodAutoscalerSpec
  { V2beta1HorizontalPodAutoscalerSpec -> Int
v2beta1HorizontalPodAutoscalerSpecMaxReplicas :: !(Int) -- ^ /Required/ "maxReplicas" - maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.
  , V2beta1HorizontalPodAutoscalerSpec -> Maybe [V2beta1MetricSpec]
v2beta1HorizontalPodAutoscalerSpecMetrics :: !(Maybe [V2beta1MetricSpec]) -- ^ "metrics" - metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used).  The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods.  Ergo, metrics used must decrease as the pod count is increased, and vice-versa.  See the individual metric source types for more information about how each type of metric must respond.
  , V2beta1HorizontalPodAutoscalerSpec -> Maybe Int
v2beta1HorizontalPodAutoscalerSpecMinReplicas :: !(Maybe Int) -- ^ "minReplicas" - minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.  Scaling is active as long as at least one metric value is available.
  , V2beta1HorizontalPodAutoscalerSpec
-> V2beta1CrossVersionObjectReference
v2beta1HorizontalPodAutoscalerSpecScaleTargetRef :: !(V2beta1CrossVersionObjectReference) -- ^ /Required/ "scaleTargetRef"
  } deriving (Int -> V2beta1HorizontalPodAutoscalerSpec -> ShowS
[V2beta1HorizontalPodAutoscalerSpec] -> ShowS
V2beta1HorizontalPodAutoscalerSpec -> String
(Int -> V2beta1HorizontalPodAutoscalerSpec -> ShowS)
-> (V2beta1HorizontalPodAutoscalerSpec -> String)
-> ([V2beta1HorizontalPodAutoscalerSpec] -> ShowS)
-> Show V2beta1HorizontalPodAutoscalerSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta1HorizontalPodAutoscalerSpec] -> ShowS
$cshowList :: [V2beta1HorizontalPodAutoscalerSpec] -> ShowS
show :: V2beta1HorizontalPodAutoscalerSpec -> String
$cshow :: V2beta1HorizontalPodAutoscalerSpec -> String
showsPrec :: Int -> V2beta1HorizontalPodAutoscalerSpec -> ShowS
$cshowsPrec :: Int -> V2beta1HorizontalPodAutoscalerSpec -> ShowS
P.Show, V2beta1HorizontalPodAutoscalerSpec
-> V2beta1HorizontalPodAutoscalerSpec -> Bool
(V2beta1HorizontalPodAutoscalerSpec
 -> V2beta1HorizontalPodAutoscalerSpec -> Bool)
-> (V2beta1HorizontalPodAutoscalerSpec
    -> V2beta1HorizontalPodAutoscalerSpec -> Bool)
-> Eq V2beta1HorizontalPodAutoscalerSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta1HorizontalPodAutoscalerSpec
-> V2beta1HorizontalPodAutoscalerSpec -> Bool
$c/= :: V2beta1HorizontalPodAutoscalerSpec
-> V2beta1HorizontalPodAutoscalerSpec -> Bool
== :: V2beta1HorizontalPodAutoscalerSpec
-> V2beta1HorizontalPodAutoscalerSpec -> Bool
$c== :: V2beta1HorizontalPodAutoscalerSpec
-> V2beta1HorizontalPodAutoscalerSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta1HorizontalPodAutoscalerSpec
instance A.FromJSON V2beta1HorizontalPodAutoscalerSpec where
  parseJSON :: Value -> Parser V2beta1HorizontalPodAutoscalerSpec
parseJSON = String
-> (Object -> Parser V2beta1HorizontalPodAutoscalerSpec)
-> Value
-> Parser V2beta1HorizontalPodAutoscalerSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta1HorizontalPodAutoscalerSpec" ((Object -> Parser V2beta1HorizontalPodAutoscalerSpec)
 -> Value -> Parser V2beta1HorizontalPodAutoscalerSpec)
-> (Object -> Parser V2beta1HorizontalPodAutoscalerSpec)
-> Value
-> Parser V2beta1HorizontalPodAutoscalerSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Int
-> Maybe [V2beta1MetricSpec]
-> Maybe Int
-> V2beta1CrossVersionObjectReference
-> V2beta1HorizontalPodAutoscalerSpec
V2beta1HorizontalPodAutoscalerSpec
      (Int
 -> Maybe [V2beta1MetricSpec]
 -> Maybe Int
 -> V2beta1CrossVersionObjectReference
 -> V2beta1HorizontalPodAutoscalerSpec)
-> Parser Int
-> Parser
     (Maybe [V2beta1MetricSpec]
      -> Maybe Int
      -> V2beta1CrossVersionObjectReference
      -> V2beta1HorizontalPodAutoscalerSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"maxReplicas")
      Parser
  (Maybe [V2beta1MetricSpec]
   -> Maybe Int
   -> V2beta1CrossVersionObjectReference
   -> V2beta1HorizontalPodAutoscalerSpec)
-> Parser (Maybe [V2beta1MetricSpec])
-> Parser
     (Maybe Int
      -> V2beta1CrossVersionObjectReference
      -> V2beta1HorizontalPodAutoscalerSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V2beta1MetricSpec])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metrics")
      Parser
  (Maybe Int
   -> V2beta1CrossVersionObjectReference
   -> V2beta1HorizontalPodAutoscalerSpec)
-> Parser (Maybe Int)
-> Parser
     (V2beta1CrossVersionObjectReference
      -> V2beta1HorizontalPodAutoscalerSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minReplicas")
      Parser
  (V2beta1CrossVersionObjectReference
   -> V2beta1HorizontalPodAutoscalerSpec)
-> Parser V2beta1CrossVersionObjectReference
-> Parser V2beta1HorizontalPodAutoscalerSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V2beta1CrossVersionObjectReference
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"scaleTargetRef")

-- | ToJSON V2beta1HorizontalPodAutoscalerSpec
instance A.ToJSON V2beta1HorizontalPodAutoscalerSpec where
  toJSON :: V2beta1HorizontalPodAutoscalerSpec -> Value
toJSON V2beta1HorizontalPodAutoscalerSpec {Int
Maybe Int
Maybe [V2beta1MetricSpec]
V2beta1CrossVersionObjectReference
v2beta1HorizontalPodAutoscalerSpecScaleTargetRef :: V2beta1CrossVersionObjectReference
v2beta1HorizontalPodAutoscalerSpecMinReplicas :: Maybe Int
v2beta1HorizontalPodAutoscalerSpecMetrics :: Maybe [V2beta1MetricSpec]
v2beta1HorizontalPodAutoscalerSpecMaxReplicas :: Int
v2beta1HorizontalPodAutoscalerSpecScaleTargetRef :: V2beta1HorizontalPodAutoscalerSpec
-> V2beta1CrossVersionObjectReference
v2beta1HorizontalPodAutoscalerSpecMinReplicas :: V2beta1HorizontalPodAutoscalerSpec -> Maybe Int
v2beta1HorizontalPodAutoscalerSpecMetrics :: V2beta1HorizontalPodAutoscalerSpec -> Maybe [V2beta1MetricSpec]
v2beta1HorizontalPodAutoscalerSpecMaxReplicas :: V2beta1HorizontalPodAutoscalerSpec -> Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"maxReplicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v2beta1HorizontalPodAutoscalerSpecMaxReplicas
      , Text
"metrics" Text -> Maybe [V2beta1MetricSpec] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V2beta1MetricSpec]
v2beta1HorizontalPodAutoscalerSpecMetrics
      , Text
"minReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v2beta1HorizontalPodAutoscalerSpecMinReplicas
      , Text
"scaleTargetRef" Text -> V2beta1CrossVersionObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta1CrossVersionObjectReference
v2beta1HorizontalPodAutoscalerSpecScaleTargetRef
      ]


-- | Construct a value of type 'V2beta1HorizontalPodAutoscalerSpec' (by applying it's required fields, if any)
mkV2beta1HorizontalPodAutoscalerSpec
  :: Int -- ^ 'v2beta1HorizontalPodAutoscalerSpecMaxReplicas': maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.
  -> V2beta1CrossVersionObjectReference -- ^ 'v2beta1HorizontalPodAutoscalerSpecScaleTargetRef' 
  -> V2beta1HorizontalPodAutoscalerSpec
mkV2beta1HorizontalPodAutoscalerSpec :: Int
-> V2beta1CrossVersionObjectReference
-> V2beta1HorizontalPodAutoscalerSpec
mkV2beta1HorizontalPodAutoscalerSpec Int
v2beta1HorizontalPodAutoscalerSpecMaxReplicas V2beta1CrossVersionObjectReference
v2beta1HorizontalPodAutoscalerSpecScaleTargetRef =
  V2beta1HorizontalPodAutoscalerSpec :: Int
-> Maybe [V2beta1MetricSpec]
-> Maybe Int
-> V2beta1CrossVersionObjectReference
-> V2beta1HorizontalPodAutoscalerSpec
V2beta1HorizontalPodAutoscalerSpec
  { Int
v2beta1HorizontalPodAutoscalerSpecMaxReplicas :: Int
v2beta1HorizontalPodAutoscalerSpecMaxReplicas :: Int
v2beta1HorizontalPodAutoscalerSpecMaxReplicas
  , v2beta1HorizontalPodAutoscalerSpecMetrics :: Maybe [V2beta1MetricSpec]
v2beta1HorizontalPodAutoscalerSpecMetrics = Maybe [V2beta1MetricSpec]
forall a. Maybe a
Nothing
  , v2beta1HorizontalPodAutoscalerSpecMinReplicas :: Maybe Int
v2beta1HorizontalPodAutoscalerSpecMinReplicas = Maybe Int
forall a. Maybe a
Nothing
  , V2beta1CrossVersionObjectReference
v2beta1HorizontalPodAutoscalerSpecScaleTargetRef :: V2beta1CrossVersionObjectReference
v2beta1HorizontalPodAutoscalerSpecScaleTargetRef :: V2beta1CrossVersionObjectReference
v2beta1HorizontalPodAutoscalerSpecScaleTargetRef
  }

-- ** V2beta1HorizontalPodAutoscalerStatus
-- | V2beta1HorizontalPodAutoscalerStatus
-- HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.
data V2beta1HorizontalPodAutoscalerStatus = V2beta1HorizontalPodAutoscalerStatus
  { V2beta1HorizontalPodAutoscalerStatus
-> [V2beta1HorizontalPodAutoscalerCondition]
v2beta1HorizontalPodAutoscalerStatusConditions :: !([V2beta1HorizontalPodAutoscalerCondition]) -- ^ /Required/ "conditions" - conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.
  , V2beta1HorizontalPodAutoscalerStatus -> Maybe [V2beta1MetricStatus]
v2beta1HorizontalPodAutoscalerStatusCurrentMetrics :: !(Maybe [V2beta1MetricStatus]) -- ^ "currentMetrics" - currentMetrics is the last read state of the metrics used by this autoscaler.
  , V2beta1HorizontalPodAutoscalerStatus -> Int
v2beta1HorizontalPodAutoscalerStatusCurrentReplicas :: !(Int) -- ^ /Required/ "currentReplicas" - currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.
  , V2beta1HorizontalPodAutoscalerStatus -> Int
v2beta1HorizontalPodAutoscalerStatusDesiredReplicas :: !(Int) -- ^ /Required/ "desiredReplicas" - desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.
  , V2beta1HorizontalPodAutoscalerStatus -> Maybe DateTime
v2beta1HorizontalPodAutoscalerStatusLastScaleTime :: !(Maybe DateTime) -- ^ "lastScaleTime" - lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed.
  , V2beta1HorizontalPodAutoscalerStatus -> Maybe Integer
v2beta1HorizontalPodAutoscalerStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - observedGeneration is the most recent generation observed by this autoscaler.
  } deriving (Int -> V2beta1HorizontalPodAutoscalerStatus -> ShowS
[V2beta1HorizontalPodAutoscalerStatus] -> ShowS
V2beta1HorizontalPodAutoscalerStatus -> String
(Int -> V2beta1HorizontalPodAutoscalerStatus -> ShowS)
-> (V2beta1HorizontalPodAutoscalerStatus -> String)
-> ([V2beta1HorizontalPodAutoscalerStatus] -> ShowS)
-> Show V2beta1HorizontalPodAutoscalerStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta1HorizontalPodAutoscalerStatus] -> ShowS
$cshowList :: [V2beta1HorizontalPodAutoscalerStatus] -> ShowS
show :: V2beta1HorizontalPodAutoscalerStatus -> String
$cshow :: V2beta1HorizontalPodAutoscalerStatus -> String
showsPrec :: Int -> V2beta1HorizontalPodAutoscalerStatus -> ShowS
$cshowsPrec :: Int -> V2beta1HorizontalPodAutoscalerStatus -> ShowS
P.Show, V2beta1HorizontalPodAutoscalerStatus
-> V2beta1HorizontalPodAutoscalerStatus -> Bool
(V2beta1HorizontalPodAutoscalerStatus
 -> V2beta1HorizontalPodAutoscalerStatus -> Bool)
-> (V2beta1HorizontalPodAutoscalerStatus
    -> V2beta1HorizontalPodAutoscalerStatus -> Bool)
-> Eq V2beta1HorizontalPodAutoscalerStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta1HorizontalPodAutoscalerStatus
-> V2beta1HorizontalPodAutoscalerStatus -> Bool
$c/= :: V2beta1HorizontalPodAutoscalerStatus
-> V2beta1HorizontalPodAutoscalerStatus -> Bool
== :: V2beta1HorizontalPodAutoscalerStatus
-> V2beta1HorizontalPodAutoscalerStatus -> Bool
$c== :: V2beta1HorizontalPodAutoscalerStatus
-> V2beta1HorizontalPodAutoscalerStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta1HorizontalPodAutoscalerStatus
instance A.FromJSON V2beta1HorizontalPodAutoscalerStatus where
  parseJSON :: Value -> Parser V2beta1HorizontalPodAutoscalerStatus
parseJSON = String
-> (Object -> Parser V2beta1HorizontalPodAutoscalerStatus)
-> Value
-> Parser V2beta1HorizontalPodAutoscalerStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta1HorizontalPodAutoscalerStatus" ((Object -> Parser V2beta1HorizontalPodAutoscalerStatus)
 -> Value -> Parser V2beta1HorizontalPodAutoscalerStatus)
-> (Object -> Parser V2beta1HorizontalPodAutoscalerStatus)
-> Value
-> Parser V2beta1HorizontalPodAutoscalerStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    [V2beta1HorizontalPodAutoscalerCondition]
-> Maybe [V2beta1MetricStatus]
-> Int
-> Int
-> Maybe DateTime
-> Maybe Integer
-> V2beta1HorizontalPodAutoscalerStatus
V2beta1HorizontalPodAutoscalerStatus
      ([V2beta1HorizontalPodAutoscalerCondition]
 -> Maybe [V2beta1MetricStatus]
 -> Int
 -> Int
 -> Maybe DateTime
 -> Maybe Integer
 -> V2beta1HorizontalPodAutoscalerStatus)
-> Parser [V2beta1HorizontalPodAutoscalerCondition]
-> Parser
     (Maybe [V2beta1MetricStatus]
      -> Int
      -> Int
      -> Maybe DateTime
      -> Maybe Integer
      -> V2beta1HorizontalPodAutoscalerStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser [V2beta1HorizontalPodAutoscalerCondition]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"conditions")
      Parser
  (Maybe [V2beta1MetricStatus]
   -> Int
   -> Int
   -> Maybe DateTime
   -> Maybe Integer
   -> V2beta1HorizontalPodAutoscalerStatus)
-> Parser (Maybe [V2beta1MetricStatus])
-> Parser
     (Int
      -> Int
      -> Maybe DateTime
      -> Maybe Integer
      -> V2beta1HorizontalPodAutoscalerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V2beta1MetricStatus])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"currentMetrics")
      Parser
  (Int
   -> Int
   -> Maybe DateTime
   -> Maybe Integer
   -> V2beta1HorizontalPodAutoscalerStatus)
-> Parser Int
-> Parser
     (Int
      -> Maybe DateTime
      -> Maybe Integer
      -> V2beta1HorizontalPodAutoscalerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"currentReplicas")
      Parser
  (Int
   -> Maybe DateTime
   -> Maybe Integer
   -> V2beta1HorizontalPodAutoscalerStatus)
-> Parser Int
-> Parser
     (Maybe DateTime
      -> Maybe Integer -> V2beta1HorizontalPodAutoscalerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"desiredReplicas")
      Parser
  (Maybe DateTime
   -> Maybe Integer -> V2beta1HorizontalPodAutoscalerStatus)
-> Parser (Maybe DateTime)
-> Parser (Maybe Integer -> V2beta1HorizontalPodAutoscalerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastScaleTime")
      Parser (Maybe Integer -> V2beta1HorizontalPodAutoscalerStatus)
-> Parser (Maybe Integer)
-> Parser V2beta1HorizontalPodAutoscalerStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")

-- | ToJSON V2beta1HorizontalPodAutoscalerStatus
instance A.ToJSON V2beta1HorizontalPodAutoscalerStatus where
  toJSON :: V2beta1HorizontalPodAutoscalerStatus -> Value
toJSON V2beta1HorizontalPodAutoscalerStatus {Int
[V2beta1HorizontalPodAutoscalerCondition]
Maybe Integer
Maybe [V2beta1MetricStatus]
Maybe DateTime
v2beta1HorizontalPodAutoscalerStatusObservedGeneration :: Maybe Integer
v2beta1HorizontalPodAutoscalerStatusLastScaleTime :: Maybe DateTime
v2beta1HorizontalPodAutoscalerStatusDesiredReplicas :: Int
v2beta1HorizontalPodAutoscalerStatusCurrentReplicas :: Int
v2beta1HorizontalPodAutoscalerStatusCurrentMetrics :: Maybe [V2beta1MetricStatus]
v2beta1HorizontalPodAutoscalerStatusConditions :: [V2beta1HorizontalPodAutoscalerCondition]
v2beta1HorizontalPodAutoscalerStatusObservedGeneration :: V2beta1HorizontalPodAutoscalerStatus -> Maybe Integer
v2beta1HorizontalPodAutoscalerStatusLastScaleTime :: V2beta1HorizontalPodAutoscalerStatus -> Maybe DateTime
v2beta1HorizontalPodAutoscalerStatusDesiredReplicas :: V2beta1HorizontalPodAutoscalerStatus -> Int
v2beta1HorizontalPodAutoscalerStatusCurrentReplicas :: V2beta1HorizontalPodAutoscalerStatus -> Int
v2beta1HorizontalPodAutoscalerStatusCurrentMetrics :: V2beta1HorizontalPodAutoscalerStatus -> Maybe [V2beta1MetricStatus]
v2beta1HorizontalPodAutoscalerStatusConditions :: V2beta1HorizontalPodAutoscalerStatus
-> [V2beta1HorizontalPodAutoscalerCondition]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"conditions" Text -> [V2beta1HorizontalPodAutoscalerCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V2beta1HorizontalPodAutoscalerCondition]
v2beta1HorizontalPodAutoscalerStatusConditions
      , Text
"currentMetrics" Text -> Maybe [V2beta1MetricStatus] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V2beta1MetricStatus]
v2beta1HorizontalPodAutoscalerStatusCurrentMetrics
      , Text
"currentReplicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v2beta1HorizontalPodAutoscalerStatusCurrentReplicas
      , Text
"desiredReplicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v2beta1HorizontalPodAutoscalerStatusDesiredReplicas
      , Text
"lastScaleTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v2beta1HorizontalPodAutoscalerStatusLastScaleTime
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v2beta1HorizontalPodAutoscalerStatusObservedGeneration
      ]


-- | Construct a value of type 'V2beta1HorizontalPodAutoscalerStatus' (by applying it's required fields, if any)
mkV2beta1HorizontalPodAutoscalerStatus
  :: [V2beta1HorizontalPodAutoscalerCondition] -- ^ 'v2beta1HorizontalPodAutoscalerStatusConditions': conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.
  -> Int -- ^ 'v2beta1HorizontalPodAutoscalerStatusCurrentReplicas': currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.
  -> Int -- ^ 'v2beta1HorizontalPodAutoscalerStatusDesiredReplicas': desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.
  -> V2beta1HorizontalPodAutoscalerStatus
mkV2beta1HorizontalPodAutoscalerStatus :: [V2beta1HorizontalPodAutoscalerCondition]
-> Int -> Int -> V2beta1HorizontalPodAutoscalerStatus
mkV2beta1HorizontalPodAutoscalerStatus [V2beta1HorizontalPodAutoscalerCondition]
v2beta1HorizontalPodAutoscalerStatusConditions Int
v2beta1HorizontalPodAutoscalerStatusCurrentReplicas Int
v2beta1HorizontalPodAutoscalerStatusDesiredReplicas =
  V2beta1HorizontalPodAutoscalerStatus :: [V2beta1HorizontalPodAutoscalerCondition]
-> Maybe [V2beta1MetricStatus]
-> Int
-> Int
-> Maybe DateTime
-> Maybe Integer
-> V2beta1HorizontalPodAutoscalerStatus
V2beta1HorizontalPodAutoscalerStatus
  { [V2beta1HorizontalPodAutoscalerCondition]
v2beta1HorizontalPodAutoscalerStatusConditions :: [V2beta1HorizontalPodAutoscalerCondition]
v2beta1HorizontalPodAutoscalerStatusConditions :: [V2beta1HorizontalPodAutoscalerCondition]
v2beta1HorizontalPodAutoscalerStatusConditions
  , v2beta1HorizontalPodAutoscalerStatusCurrentMetrics :: Maybe [V2beta1MetricStatus]
v2beta1HorizontalPodAutoscalerStatusCurrentMetrics = Maybe [V2beta1MetricStatus]
forall a. Maybe a
Nothing
  , Int
v2beta1HorizontalPodAutoscalerStatusCurrentReplicas :: Int
v2beta1HorizontalPodAutoscalerStatusCurrentReplicas :: Int
v2beta1HorizontalPodAutoscalerStatusCurrentReplicas
  , Int
v2beta1HorizontalPodAutoscalerStatusDesiredReplicas :: Int
v2beta1HorizontalPodAutoscalerStatusDesiredReplicas :: Int
v2beta1HorizontalPodAutoscalerStatusDesiredReplicas
  , v2beta1HorizontalPodAutoscalerStatusLastScaleTime :: Maybe DateTime
v2beta1HorizontalPodAutoscalerStatusLastScaleTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v2beta1HorizontalPodAutoscalerStatusObservedGeneration :: Maybe Integer
v2beta1HorizontalPodAutoscalerStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  }

-- ** V2beta1MetricSpec
-- | V2beta1MetricSpec
-- MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).
data V2beta1MetricSpec = V2beta1MetricSpec
  { V2beta1MetricSpec -> Maybe V2beta1ExternalMetricSource
v2beta1MetricSpecExternal :: !(Maybe V2beta1ExternalMetricSource) -- ^ "external"
  , V2beta1MetricSpec -> Maybe V2beta1ObjectMetricSource
v2beta1MetricSpecObject :: !(Maybe V2beta1ObjectMetricSource) -- ^ "object"
  , V2beta1MetricSpec -> Maybe V2beta1PodsMetricSource
v2beta1MetricSpecPods :: !(Maybe V2beta1PodsMetricSource) -- ^ "pods"
  , V2beta1MetricSpec -> Maybe V2beta1ResourceMetricSource
v2beta1MetricSpecResource :: !(Maybe V2beta1ResourceMetricSource) -- ^ "resource"
  , V2beta1MetricSpec -> Text
v2beta1MetricSpecType :: !(Text) -- ^ /Required/ "type" - type is the type of metric source.  It should be one of \&quot;Object\&quot;, \&quot;Pods\&quot; or \&quot;Resource\&quot;, each mapping to a matching field in the object.
  } deriving (Int -> V2beta1MetricSpec -> ShowS
[V2beta1MetricSpec] -> ShowS
V2beta1MetricSpec -> String
(Int -> V2beta1MetricSpec -> ShowS)
-> (V2beta1MetricSpec -> String)
-> ([V2beta1MetricSpec] -> ShowS)
-> Show V2beta1MetricSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta1MetricSpec] -> ShowS
$cshowList :: [V2beta1MetricSpec] -> ShowS
show :: V2beta1MetricSpec -> String
$cshow :: V2beta1MetricSpec -> String
showsPrec :: Int -> V2beta1MetricSpec -> ShowS
$cshowsPrec :: Int -> V2beta1MetricSpec -> ShowS
P.Show, V2beta1MetricSpec -> V2beta1MetricSpec -> Bool
(V2beta1MetricSpec -> V2beta1MetricSpec -> Bool)
-> (V2beta1MetricSpec -> V2beta1MetricSpec -> Bool)
-> Eq V2beta1MetricSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta1MetricSpec -> V2beta1MetricSpec -> Bool
$c/= :: V2beta1MetricSpec -> V2beta1MetricSpec -> Bool
== :: V2beta1MetricSpec -> V2beta1MetricSpec -> Bool
$c== :: V2beta1MetricSpec -> V2beta1MetricSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta1MetricSpec
instance A.FromJSON V2beta1MetricSpec where
  parseJSON :: Value -> Parser V2beta1MetricSpec
parseJSON = String
-> (Object -> Parser V2beta1MetricSpec)
-> Value
-> Parser V2beta1MetricSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta1MetricSpec" ((Object -> Parser V2beta1MetricSpec)
 -> Value -> Parser V2beta1MetricSpec)
-> (Object -> Parser V2beta1MetricSpec)
-> Value
-> Parser V2beta1MetricSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V2beta1ExternalMetricSource
-> Maybe V2beta1ObjectMetricSource
-> Maybe V2beta1PodsMetricSource
-> Maybe V2beta1ResourceMetricSource
-> Text
-> V2beta1MetricSpec
V2beta1MetricSpec
      (Maybe V2beta1ExternalMetricSource
 -> Maybe V2beta1ObjectMetricSource
 -> Maybe V2beta1PodsMetricSource
 -> Maybe V2beta1ResourceMetricSource
 -> Text
 -> V2beta1MetricSpec)
-> Parser (Maybe V2beta1ExternalMetricSource)
-> Parser
     (Maybe V2beta1ObjectMetricSource
      -> Maybe V2beta1PodsMetricSource
      -> Maybe V2beta1ResourceMetricSource
      -> Text
      -> V2beta1MetricSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V2beta1ExternalMetricSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"external")
      Parser
  (Maybe V2beta1ObjectMetricSource
   -> Maybe V2beta1PodsMetricSource
   -> Maybe V2beta1ResourceMetricSource
   -> Text
   -> V2beta1MetricSpec)
-> Parser (Maybe V2beta1ObjectMetricSource)
-> Parser
     (Maybe V2beta1PodsMetricSource
      -> Maybe V2beta1ResourceMetricSource -> Text -> V2beta1MetricSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V2beta1ObjectMetricSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"object")
      Parser
  (Maybe V2beta1PodsMetricSource
   -> Maybe V2beta1ResourceMetricSource -> Text -> V2beta1MetricSpec)
-> Parser (Maybe V2beta1PodsMetricSource)
-> Parser
     (Maybe V2beta1ResourceMetricSource -> Text -> V2beta1MetricSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V2beta1PodsMetricSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"pods")
      Parser
  (Maybe V2beta1ResourceMetricSource -> Text -> V2beta1MetricSpec)
-> Parser (Maybe V2beta1ResourceMetricSource)
-> Parser (Text -> V2beta1MetricSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V2beta1ResourceMetricSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resource")
      Parser (Text -> V2beta1MetricSpec)
-> Parser Text -> Parser V2beta1MetricSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V2beta1MetricSpec
instance A.ToJSON V2beta1MetricSpec where
  toJSON :: V2beta1MetricSpec -> Value
toJSON V2beta1MetricSpec {Maybe V2beta1ResourceMetricSource
Maybe V2beta1PodsMetricSource
Maybe V2beta1ObjectMetricSource
Maybe V2beta1ExternalMetricSource
Text
v2beta1MetricSpecType :: Text
v2beta1MetricSpecResource :: Maybe V2beta1ResourceMetricSource
v2beta1MetricSpecPods :: Maybe V2beta1PodsMetricSource
v2beta1MetricSpecObject :: Maybe V2beta1ObjectMetricSource
v2beta1MetricSpecExternal :: Maybe V2beta1ExternalMetricSource
v2beta1MetricSpecType :: V2beta1MetricSpec -> Text
v2beta1MetricSpecResource :: V2beta1MetricSpec -> Maybe V2beta1ResourceMetricSource
v2beta1MetricSpecPods :: V2beta1MetricSpec -> Maybe V2beta1PodsMetricSource
v2beta1MetricSpecObject :: V2beta1MetricSpec -> Maybe V2beta1ObjectMetricSource
v2beta1MetricSpecExternal :: V2beta1MetricSpec -> Maybe V2beta1ExternalMetricSource
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"external" Text -> Maybe V2beta1ExternalMetricSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta1ExternalMetricSource
v2beta1MetricSpecExternal
      , Text
"object" Text -> Maybe V2beta1ObjectMetricSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta1ObjectMetricSource
v2beta1MetricSpecObject
      , Text
"pods" Text -> Maybe V2beta1PodsMetricSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta1PodsMetricSource
v2beta1MetricSpecPods
      , Text
"resource" Text -> Maybe V2beta1ResourceMetricSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta1ResourceMetricSource
v2beta1MetricSpecResource
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta1MetricSpecType
      ]


-- | Construct a value of type 'V2beta1MetricSpec' (by applying it's required fields, if any)
mkV2beta1MetricSpec
  :: Text -- ^ 'v2beta1MetricSpecType': type is the type of metric source.  It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.
  -> V2beta1MetricSpec
mkV2beta1MetricSpec :: Text -> V2beta1MetricSpec
mkV2beta1MetricSpec Text
v2beta1MetricSpecType =
  V2beta1MetricSpec :: Maybe V2beta1ExternalMetricSource
-> Maybe V2beta1ObjectMetricSource
-> Maybe V2beta1PodsMetricSource
-> Maybe V2beta1ResourceMetricSource
-> Text
-> V2beta1MetricSpec
V2beta1MetricSpec
  { v2beta1MetricSpecExternal :: Maybe V2beta1ExternalMetricSource
v2beta1MetricSpecExternal = Maybe V2beta1ExternalMetricSource
forall a. Maybe a
Nothing
  , v2beta1MetricSpecObject :: Maybe V2beta1ObjectMetricSource
v2beta1MetricSpecObject = Maybe V2beta1ObjectMetricSource
forall a. Maybe a
Nothing
  , v2beta1MetricSpecPods :: Maybe V2beta1PodsMetricSource
v2beta1MetricSpecPods = Maybe V2beta1PodsMetricSource
forall a. Maybe a
Nothing
  , v2beta1MetricSpecResource :: Maybe V2beta1ResourceMetricSource
v2beta1MetricSpecResource = Maybe V2beta1ResourceMetricSource
forall a. Maybe a
Nothing
  , Text
v2beta1MetricSpecType :: Text
v2beta1MetricSpecType :: Text
v2beta1MetricSpecType
  }

-- ** V2beta1MetricStatus
-- | V2beta1MetricStatus
-- MetricStatus describes the last-read state of a single metric.
data V2beta1MetricStatus = V2beta1MetricStatus
  { V2beta1MetricStatus -> Maybe V2beta1ExternalMetricStatus
v2beta1MetricStatusExternal :: !(Maybe V2beta1ExternalMetricStatus) -- ^ "external"
  , V2beta1MetricStatus -> Maybe V2beta1ObjectMetricStatus
v2beta1MetricStatusObject :: !(Maybe V2beta1ObjectMetricStatus) -- ^ "object"
  , V2beta1MetricStatus -> Maybe V2beta1PodsMetricStatus
v2beta1MetricStatusPods :: !(Maybe V2beta1PodsMetricStatus) -- ^ "pods"
  , V2beta1MetricStatus -> Maybe V2beta1ResourceMetricStatus
v2beta1MetricStatusResource :: !(Maybe V2beta1ResourceMetricStatus) -- ^ "resource"
  , V2beta1MetricStatus -> Text
v2beta1MetricStatusType :: !(Text) -- ^ /Required/ "type" - type is the type of metric source.  It will be one of \&quot;Object\&quot;, \&quot;Pods\&quot; or \&quot;Resource\&quot;, each corresponds to a matching field in the object.
  } deriving (Int -> V2beta1MetricStatus -> ShowS
[V2beta1MetricStatus] -> ShowS
V2beta1MetricStatus -> String
(Int -> V2beta1MetricStatus -> ShowS)
-> (V2beta1MetricStatus -> String)
-> ([V2beta1MetricStatus] -> ShowS)
-> Show V2beta1MetricStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta1MetricStatus] -> ShowS
$cshowList :: [V2beta1MetricStatus] -> ShowS
show :: V2beta1MetricStatus -> String
$cshow :: V2beta1MetricStatus -> String
showsPrec :: Int -> V2beta1MetricStatus -> ShowS
$cshowsPrec :: Int -> V2beta1MetricStatus -> ShowS
P.Show, V2beta1MetricStatus -> V2beta1MetricStatus -> Bool
(V2beta1MetricStatus -> V2beta1MetricStatus -> Bool)
-> (V2beta1MetricStatus -> V2beta1MetricStatus -> Bool)
-> Eq V2beta1MetricStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta1MetricStatus -> V2beta1MetricStatus -> Bool
$c/= :: V2beta1MetricStatus -> V2beta1MetricStatus -> Bool
== :: V2beta1MetricStatus -> V2beta1MetricStatus -> Bool
$c== :: V2beta1MetricStatus -> V2beta1MetricStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta1MetricStatus
instance A.FromJSON V2beta1MetricStatus where
  parseJSON :: Value -> Parser V2beta1MetricStatus
parseJSON = String
-> (Object -> Parser V2beta1MetricStatus)
-> Value
-> Parser V2beta1MetricStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta1MetricStatus" ((Object -> Parser V2beta1MetricStatus)
 -> Value -> Parser V2beta1MetricStatus)
-> (Object -> Parser V2beta1MetricStatus)
-> Value
-> Parser V2beta1MetricStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V2beta1ExternalMetricStatus
-> Maybe V2beta1ObjectMetricStatus
-> Maybe V2beta1PodsMetricStatus
-> Maybe V2beta1ResourceMetricStatus
-> Text
-> V2beta1MetricStatus
V2beta1MetricStatus
      (Maybe V2beta1ExternalMetricStatus
 -> Maybe V2beta1ObjectMetricStatus
 -> Maybe V2beta1PodsMetricStatus
 -> Maybe V2beta1ResourceMetricStatus
 -> Text
 -> V2beta1MetricStatus)
-> Parser (Maybe V2beta1ExternalMetricStatus)
-> Parser
     (Maybe V2beta1ObjectMetricStatus
      -> Maybe V2beta1PodsMetricStatus
      -> Maybe V2beta1ResourceMetricStatus
      -> Text
      -> V2beta1MetricStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V2beta1ExternalMetricStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"external")
      Parser
  (Maybe V2beta1ObjectMetricStatus
   -> Maybe V2beta1PodsMetricStatus
   -> Maybe V2beta1ResourceMetricStatus
   -> Text
   -> V2beta1MetricStatus)
-> Parser (Maybe V2beta1ObjectMetricStatus)
-> Parser
     (Maybe V2beta1PodsMetricStatus
      -> Maybe V2beta1ResourceMetricStatus
      -> Text
      -> V2beta1MetricStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V2beta1ObjectMetricStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"object")
      Parser
  (Maybe V2beta1PodsMetricStatus
   -> Maybe V2beta1ResourceMetricStatus
   -> Text
   -> V2beta1MetricStatus)
-> Parser (Maybe V2beta1PodsMetricStatus)
-> Parser
     (Maybe V2beta1ResourceMetricStatus -> Text -> V2beta1MetricStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V2beta1PodsMetricStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"pods")
      Parser
  (Maybe V2beta1ResourceMetricStatus -> Text -> V2beta1MetricStatus)
-> Parser (Maybe V2beta1ResourceMetricStatus)
-> Parser (Text -> V2beta1MetricStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V2beta1ResourceMetricStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resource")
      Parser (Text -> V2beta1MetricStatus)
-> Parser Text -> Parser V2beta1MetricStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V2beta1MetricStatus
instance A.ToJSON V2beta1MetricStatus where
  toJSON :: V2beta1MetricStatus -> Value
toJSON V2beta1MetricStatus {Maybe V2beta1ResourceMetricStatus
Maybe V2beta1PodsMetricStatus
Maybe V2beta1ObjectMetricStatus
Maybe V2beta1ExternalMetricStatus
Text
v2beta1MetricStatusType :: Text
v2beta1MetricStatusResource :: Maybe V2beta1ResourceMetricStatus
v2beta1MetricStatusPods :: Maybe V2beta1PodsMetricStatus
v2beta1MetricStatusObject :: Maybe V2beta1ObjectMetricStatus
v2beta1MetricStatusExternal :: Maybe V2beta1ExternalMetricStatus
v2beta1MetricStatusType :: V2beta1MetricStatus -> Text
v2beta1MetricStatusResource :: V2beta1MetricStatus -> Maybe V2beta1ResourceMetricStatus
v2beta1MetricStatusPods :: V2beta1MetricStatus -> Maybe V2beta1PodsMetricStatus
v2beta1MetricStatusObject :: V2beta1MetricStatus -> Maybe V2beta1ObjectMetricStatus
v2beta1MetricStatusExternal :: V2beta1MetricStatus -> Maybe V2beta1ExternalMetricStatus
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"external" Text -> Maybe V2beta1ExternalMetricStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta1ExternalMetricStatus
v2beta1MetricStatusExternal
      , Text
"object" Text -> Maybe V2beta1ObjectMetricStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta1ObjectMetricStatus
v2beta1MetricStatusObject
      , Text
"pods" Text -> Maybe V2beta1PodsMetricStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta1PodsMetricStatus
v2beta1MetricStatusPods
      , Text
"resource" Text -> Maybe V2beta1ResourceMetricStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta1ResourceMetricStatus
v2beta1MetricStatusResource
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta1MetricStatusType
      ]


-- | Construct a value of type 'V2beta1MetricStatus' (by applying it's required fields, if any)
mkV2beta1MetricStatus
  :: Text -- ^ 'v2beta1MetricStatusType': type is the type of metric source.  It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.
  -> V2beta1MetricStatus
mkV2beta1MetricStatus :: Text -> V2beta1MetricStatus
mkV2beta1MetricStatus Text
v2beta1MetricStatusType =
  V2beta1MetricStatus :: Maybe V2beta1ExternalMetricStatus
-> Maybe V2beta1ObjectMetricStatus
-> Maybe V2beta1PodsMetricStatus
-> Maybe V2beta1ResourceMetricStatus
-> Text
-> V2beta1MetricStatus
V2beta1MetricStatus
  { v2beta1MetricStatusExternal :: Maybe V2beta1ExternalMetricStatus
v2beta1MetricStatusExternal = Maybe V2beta1ExternalMetricStatus
forall a. Maybe a
Nothing
  , v2beta1MetricStatusObject :: Maybe V2beta1ObjectMetricStatus
v2beta1MetricStatusObject = Maybe V2beta1ObjectMetricStatus
forall a. Maybe a
Nothing
  , v2beta1MetricStatusPods :: Maybe V2beta1PodsMetricStatus
v2beta1MetricStatusPods = Maybe V2beta1PodsMetricStatus
forall a. Maybe a
Nothing
  , v2beta1MetricStatusResource :: Maybe V2beta1ResourceMetricStatus
v2beta1MetricStatusResource = Maybe V2beta1ResourceMetricStatus
forall a. Maybe a
Nothing
  , Text
v2beta1MetricStatusType :: Text
v2beta1MetricStatusType :: Text
v2beta1MetricStatusType
  }

-- ** V2beta1ObjectMetricSource
-- | V2beta1ObjectMetricSource
-- ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).
data V2beta1ObjectMetricSource = V2beta1ObjectMetricSource
  { V2beta1ObjectMetricSource -> Maybe Quantity
v2beta1ObjectMetricSourceAverageValue :: !(Maybe Quantity) -- ^ "averageValue"
  , V2beta1ObjectMetricSource -> Text
v2beta1ObjectMetricSourceMetricName :: !(Text) -- ^ /Required/ "metricName" - metricName is the name of the metric in question.
  , V2beta1ObjectMetricSource -> Maybe V1LabelSelector
v2beta1ObjectMetricSourceSelector :: !(Maybe V1LabelSelector) -- ^ "selector"
  , V2beta1ObjectMetricSource -> V2beta1CrossVersionObjectReference
v2beta1ObjectMetricSourceTarget :: !(V2beta1CrossVersionObjectReference) -- ^ /Required/ "target"
  , V2beta1ObjectMetricSource -> Quantity
v2beta1ObjectMetricSourceTargetValue :: !(Quantity) -- ^ /Required/ "targetValue"
  } deriving (Int -> V2beta1ObjectMetricSource -> ShowS
[V2beta1ObjectMetricSource] -> ShowS
V2beta1ObjectMetricSource -> String
(Int -> V2beta1ObjectMetricSource -> ShowS)
-> (V2beta1ObjectMetricSource -> String)
-> ([V2beta1ObjectMetricSource] -> ShowS)
-> Show V2beta1ObjectMetricSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta1ObjectMetricSource] -> ShowS
$cshowList :: [V2beta1ObjectMetricSource] -> ShowS
show :: V2beta1ObjectMetricSource -> String
$cshow :: V2beta1ObjectMetricSource -> String
showsPrec :: Int -> V2beta1ObjectMetricSource -> ShowS
$cshowsPrec :: Int -> V2beta1ObjectMetricSource -> ShowS
P.Show, V2beta1ObjectMetricSource -> V2beta1ObjectMetricSource -> Bool
(V2beta1ObjectMetricSource -> V2beta1ObjectMetricSource -> Bool)
-> (V2beta1ObjectMetricSource -> V2beta1ObjectMetricSource -> Bool)
-> Eq V2beta1ObjectMetricSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta1ObjectMetricSource -> V2beta1ObjectMetricSource -> Bool
$c/= :: V2beta1ObjectMetricSource -> V2beta1ObjectMetricSource -> Bool
== :: V2beta1ObjectMetricSource -> V2beta1ObjectMetricSource -> Bool
$c== :: V2beta1ObjectMetricSource -> V2beta1ObjectMetricSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta1ObjectMetricSource
instance A.FromJSON V2beta1ObjectMetricSource where
  parseJSON :: Value -> Parser V2beta1ObjectMetricSource
parseJSON = String
-> (Object -> Parser V2beta1ObjectMetricSource)
-> Value
-> Parser V2beta1ObjectMetricSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta1ObjectMetricSource" ((Object -> Parser V2beta1ObjectMetricSource)
 -> Value -> Parser V2beta1ObjectMetricSource)
-> (Object -> Parser V2beta1ObjectMetricSource)
-> Value
-> Parser V2beta1ObjectMetricSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Quantity
-> Text
-> Maybe V1LabelSelector
-> V2beta1CrossVersionObjectReference
-> Quantity
-> V2beta1ObjectMetricSource
V2beta1ObjectMetricSource
      (Maybe Quantity
 -> Text
 -> Maybe V1LabelSelector
 -> V2beta1CrossVersionObjectReference
 -> Quantity
 -> V2beta1ObjectMetricSource)
-> Parser (Maybe Quantity)
-> Parser
     (Text
      -> Maybe V1LabelSelector
      -> V2beta1CrossVersionObjectReference
      -> Quantity
      -> V2beta1ObjectMetricSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Quantity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"averageValue")
      Parser
  (Text
   -> Maybe V1LabelSelector
   -> V2beta1CrossVersionObjectReference
   -> Quantity
   -> V2beta1ObjectMetricSource)
-> Parser Text
-> Parser
     (Maybe V1LabelSelector
      -> V2beta1CrossVersionObjectReference
      -> Quantity
      -> V2beta1ObjectMetricSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"metricName")
      Parser
  (Maybe V1LabelSelector
   -> V2beta1CrossVersionObjectReference
   -> Quantity
   -> V2beta1ObjectMetricSource)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (V2beta1CrossVersionObjectReference
      -> Quantity -> V2beta1ObjectMetricSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")
      Parser
  (V2beta1CrossVersionObjectReference
   -> Quantity -> V2beta1ObjectMetricSource)
-> Parser V2beta1CrossVersionObjectReference
-> Parser (Quantity -> V2beta1ObjectMetricSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V2beta1CrossVersionObjectReference
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"target")
      Parser (Quantity -> V2beta1ObjectMetricSource)
-> Parser Quantity -> Parser V2beta1ObjectMetricSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Quantity
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"targetValue")

-- | ToJSON V2beta1ObjectMetricSource
instance A.ToJSON V2beta1ObjectMetricSource where
  toJSON :: V2beta1ObjectMetricSource -> Value
toJSON V2beta1ObjectMetricSource {Maybe Quantity
Maybe V1LabelSelector
Text
Quantity
V2beta1CrossVersionObjectReference
v2beta1ObjectMetricSourceTargetValue :: Quantity
v2beta1ObjectMetricSourceTarget :: V2beta1CrossVersionObjectReference
v2beta1ObjectMetricSourceSelector :: Maybe V1LabelSelector
v2beta1ObjectMetricSourceMetricName :: Text
v2beta1ObjectMetricSourceAverageValue :: Maybe Quantity
v2beta1ObjectMetricSourceTargetValue :: V2beta1ObjectMetricSource -> Quantity
v2beta1ObjectMetricSourceTarget :: V2beta1ObjectMetricSource -> V2beta1CrossVersionObjectReference
v2beta1ObjectMetricSourceSelector :: V2beta1ObjectMetricSource -> Maybe V1LabelSelector
v2beta1ObjectMetricSourceMetricName :: V2beta1ObjectMetricSource -> Text
v2beta1ObjectMetricSourceAverageValue :: V2beta1ObjectMetricSource -> Maybe Quantity
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"averageValue" Text -> Maybe Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Quantity
v2beta1ObjectMetricSourceAverageValue
      , Text
"metricName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta1ObjectMetricSourceMetricName
      , Text
"selector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v2beta1ObjectMetricSourceSelector
      , Text
"target" Text -> V2beta1CrossVersionObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta1CrossVersionObjectReference
v2beta1ObjectMetricSourceTarget
      , Text
"targetValue" Text -> Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Quantity
v2beta1ObjectMetricSourceTargetValue
      ]


-- | Construct a value of type 'V2beta1ObjectMetricSource' (by applying it's required fields, if any)
mkV2beta1ObjectMetricSource
  :: Text -- ^ 'v2beta1ObjectMetricSourceMetricName': metricName is the name of the metric in question.
  -> V2beta1CrossVersionObjectReference -- ^ 'v2beta1ObjectMetricSourceTarget' 
  -> Quantity -- ^ 'v2beta1ObjectMetricSourceTargetValue' 
  -> V2beta1ObjectMetricSource
mkV2beta1ObjectMetricSource :: Text
-> V2beta1CrossVersionObjectReference
-> Quantity
-> V2beta1ObjectMetricSource
mkV2beta1ObjectMetricSource Text
v2beta1ObjectMetricSourceMetricName V2beta1CrossVersionObjectReference
v2beta1ObjectMetricSourceTarget Quantity
v2beta1ObjectMetricSourceTargetValue =
  V2beta1ObjectMetricSource :: Maybe Quantity
-> Text
-> Maybe V1LabelSelector
-> V2beta1CrossVersionObjectReference
-> Quantity
-> V2beta1ObjectMetricSource
V2beta1ObjectMetricSource
  { v2beta1ObjectMetricSourceAverageValue :: Maybe Quantity
v2beta1ObjectMetricSourceAverageValue = Maybe Quantity
forall a. Maybe a
Nothing
  , Text
v2beta1ObjectMetricSourceMetricName :: Text
v2beta1ObjectMetricSourceMetricName :: Text
v2beta1ObjectMetricSourceMetricName
  , v2beta1ObjectMetricSourceSelector :: Maybe V1LabelSelector
v2beta1ObjectMetricSourceSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , V2beta1CrossVersionObjectReference
v2beta1ObjectMetricSourceTarget :: V2beta1CrossVersionObjectReference
v2beta1ObjectMetricSourceTarget :: V2beta1CrossVersionObjectReference
v2beta1ObjectMetricSourceTarget
  , Quantity
v2beta1ObjectMetricSourceTargetValue :: Quantity
v2beta1ObjectMetricSourceTargetValue :: Quantity
v2beta1ObjectMetricSourceTargetValue
  }

-- ** V2beta1ObjectMetricStatus
-- | V2beta1ObjectMetricStatus
-- ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).
data V2beta1ObjectMetricStatus = V2beta1ObjectMetricStatus
  { V2beta1ObjectMetricStatus -> Maybe Quantity
v2beta1ObjectMetricStatusAverageValue :: !(Maybe Quantity) -- ^ "averageValue"
  , V2beta1ObjectMetricStatus -> Quantity
v2beta1ObjectMetricStatusCurrentValue :: !(Quantity) -- ^ /Required/ "currentValue"
  , V2beta1ObjectMetricStatus -> Text
v2beta1ObjectMetricStatusMetricName :: !(Text) -- ^ /Required/ "metricName" - metricName is the name of the metric in question.
  , V2beta1ObjectMetricStatus -> Maybe V1LabelSelector
v2beta1ObjectMetricStatusSelector :: !(Maybe V1LabelSelector) -- ^ "selector"
  , V2beta1ObjectMetricStatus -> V2beta1CrossVersionObjectReference
v2beta1ObjectMetricStatusTarget :: !(V2beta1CrossVersionObjectReference) -- ^ /Required/ "target"
  } deriving (Int -> V2beta1ObjectMetricStatus -> ShowS
[V2beta1ObjectMetricStatus] -> ShowS
V2beta1ObjectMetricStatus -> String
(Int -> V2beta1ObjectMetricStatus -> ShowS)
-> (V2beta1ObjectMetricStatus -> String)
-> ([V2beta1ObjectMetricStatus] -> ShowS)
-> Show V2beta1ObjectMetricStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta1ObjectMetricStatus] -> ShowS
$cshowList :: [V2beta1ObjectMetricStatus] -> ShowS
show :: V2beta1ObjectMetricStatus -> String
$cshow :: V2beta1ObjectMetricStatus -> String
showsPrec :: Int -> V2beta1ObjectMetricStatus -> ShowS
$cshowsPrec :: Int -> V2beta1ObjectMetricStatus -> ShowS
P.Show, V2beta1ObjectMetricStatus -> V2beta1ObjectMetricStatus -> Bool
(V2beta1ObjectMetricStatus -> V2beta1ObjectMetricStatus -> Bool)
-> (V2beta1ObjectMetricStatus -> V2beta1ObjectMetricStatus -> Bool)
-> Eq V2beta1ObjectMetricStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta1ObjectMetricStatus -> V2beta1ObjectMetricStatus -> Bool
$c/= :: V2beta1ObjectMetricStatus -> V2beta1ObjectMetricStatus -> Bool
== :: V2beta1ObjectMetricStatus -> V2beta1ObjectMetricStatus -> Bool
$c== :: V2beta1ObjectMetricStatus -> V2beta1ObjectMetricStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta1ObjectMetricStatus
instance A.FromJSON V2beta1ObjectMetricStatus where
  parseJSON :: Value -> Parser V2beta1ObjectMetricStatus
parseJSON = String
-> (Object -> Parser V2beta1ObjectMetricStatus)
-> Value
-> Parser V2beta1ObjectMetricStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta1ObjectMetricStatus" ((Object -> Parser V2beta1ObjectMetricStatus)
 -> Value -> Parser V2beta1ObjectMetricStatus)
-> (Object -> Parser V2beta1ObjectMetricStatus)
-> Value
-> Parser V2beta1ObjectMetricStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Quantity
-> Quantity
-> Text
-> Maybe V1LabelSelector
-> V2beta1CrossVersionObjectReference
-> V2beta1ObjectMetricStatus
V2beta1ObjectMetricStatus
      (Maybe Quantity
 -> Quantity
 -> Text
 -> Maybe V1LabelSelector
 -> V2beta1CrossVersionObjectReference
 -> V2beta1ObjectMetricStatus)
-> Parser (Maybe Quantity)
-> Parser
     (Quantity
      -> Text
      -> Maybe V1LabelSelector
      -> V2beta1CrossVersionObjectReference
      -> V2beta1ObjectMetricStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Quantity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"averageValue")
      Parser
  (Quantity
   -> Text
   -> Maybe V1LabelSelector
   -> V2beta1CrossVersionObjectReference
   -> V2beta1ObjectMetricStatus)
-> Parser Quantity
-> Parser
     (Text
      -> Maybe V1LabelSelector
      -> V2beta1CrossVersionObjectReference
      -> V2beta1ObjectMetricStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Quantity
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"currentValue")
      Parser
  (Text
   -> Maybe V1LabelSelector
   -> V2beta1CrossVersionObjectReference
   -> V2beta1ObjectMetricStatus)
-> Parser Text
-> Parser
     (Maybe V1LabelSelector
      -> V2beta1CrossVersionObjectReference -> V2beta1ObjectMetricStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"metricName")
      Parser
  (Maybe V1LabelSelector
   -> V2beta1CrossVersionObjectReference -> V2beta1ObjectMetricStatus)
-> Parser (Maybe V1LabelSelector)
-> Parser
     (V2beta1CrossVersionObjectReference -> V2beta1ObjectMetricStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")
      Parser
  (V2beta1CrossVersionObjectReference -> V2beta1ObjectMetricStatus)
-> Parser V2beta1CrossVersionObjectReference
-> Parser V2beta1ObjectMetricStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V2beta1CrossVersionObjectReference
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"target")

-- | ToJSON V2beta1ObjectMetricStatus
instance A.ToJSON V2beta1ObjectMetricStatus where
  toJSON :: V2beta1ObjectMetricStatus -> Value
toJSON V2beta1ObjectMetricStatus {Maybe Quantity
Maybe V1LabelSelector
Text
Quantity
V2beta1CrossVersionObjectReference
v2beta1ObjectMetricStatusTarget :: V2beta1CrossVersionObjectReference
v2beta1ObjectMetricStatusSelector :: Maybe V1LabelSelector
v2beta1ObjectMetricStatusMetricName :: Text
v2beta1ObjectMetricStatusCurrentValue :: Quantity
v2beta1ObjectMetricStatusAverageValue :: Maybe Quantity
v2beta1ObjectMetricStatusTarget :: V2beta1ObjectMetricStatus -> V2beta1CrossVersionObjectReference
v2beta1ObjectMetricStatusSelector :: V2beta1ObjectMetricStatus -> Maybe V1LabelSelector
v2beta1ObjectMetricStatusMetricName :: V2beta1ObjectMetricStatus -> Text
v2beta1ObjectMetricStatusCurrentValue :: V2beta1ObjectMetricStatus -> Quantity
v2beta1ObjectMetricStatusAverageValue :: V2beta1ObjectMetricStatus -> Maybe Quantity
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"averageValue" Text -> Maybe Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Quantity
v2beta1ObjectMetricStatusAverageValue
      , Text
"currentValue" Text -> Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Quantity
v2beta1ObjectMetricStatusCurrentValue
      , Text
"metricName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta1ObjectMetricStatusMetricName
      , Text
"selector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v2beta1ObjectMetricStatusSelector
      , Text
"target" Text -> V2beta1CrossVersionObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta1CrossVersionObjectReference
v2beta1ObjectMetricStatusTarget
      ]


-- | Construct a value of type 'V2beta1ObjectMetricStatus' (by applying it's required fields, if any)
mkV2beta1ObjectMetricStatus
  :: Quantity -- ^ 'v2beta1ObjectMetricStatusCurrentValue' 
  -> Text -- ^ 'v2beta1ObjectMetricStatusMetricName': metricName is the name of the metric in question.
  -> V2beta1CrossVersionObjectReference -- ^ 'v2beta1ObjectMetricStatusTarget' 
  -> V2beta1ObjectMetricStatus
mkV2beta1ObjectMetricStatus :: Quantity
-> Text
-> V2beta1CrossVersionObjectReference
-> V2beta1ObjectMetricStatus
mkV2beta1ObjectMetricStatus Quantity
v2beta1ObjectMetricStatusCurrentValue Text
v2beta1ObjectMetricStatusMetricName V2beta1CrossVersionObjectReference
v2beta1ObjectMetricStatusTarget =
  V2beta1ObjectMetricStatus :: Maybe Quantity
-> Quantity
-> Text
-> Maybe V1LabelSelector
-> V2beta1CrossVersionObjectReference
-> V2beta1ObjectMetricStatus
V2beta1ObjectMetricStatus
  { v2beta1ObjectMetricStatusAverageValue :: Maybe Quantity
v2beta1ObjectMetricStatusAverageValue = Maybe Quantity
forall a. Maybe a
Nothing
  , Quantity
v2beta1ObjectMetricStatusCurrentValue :: Quantity
v2beta1ObjectMetricStatusCurrentValue :: Quantity
v2beta1ObjectMetricStatusCurrentValue
  , Text
v2beta1ObjectMetricStatusMetricName :: Text
v2beta1ObjectMetricStatusMetricName :: Text
v2beta1ObjectMetricStatusMetricName
  , v2beta1ObjectMetricStatusSelector :: Maybe V1LabelSelector
v2beta1ObjectMetricStatusSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , V2beta1CrossVersionObjectReference
v2beta1ObjectMetricStatusTarget :: V2beta1CrossVersionObjectReference
v2beta1ObjectMetricStatusTarget :: V2beta1CrossVersionObjectReference
v2beta1ObjectMetricStatusTarget
  }

-- ** V2beta1PodsMetricSource
-- | V2beta1PodsMetricSource
-- PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.
data V2beta1PodsMetricSource = V2beta1PodsMetricSource
  { V2beta1PodsMetricSource -> Text
v2beta1PodsMetricSourceMetricName :: !(Text) -- ^ /Required/ "metricName" - metricName is the name of the metric in question
  , V2beta1PodsMetricSource -> Maybe V1LabelSelector
v2beta1PodsMetricSourceSelector :: !(Maybe V1LabelSelector) -- ^ "selector"
  , V2beta1PodsMetricSource -> Quantity
v2beta1PodsMetricSourceTargetAverageValue :: !(Quantity) -- ^ /Required/ "targetAverageValue"
  } deriving (Int -> V2beta1PodsMetricSource -> ShowS
[V2beta1PodsMetricSource] -> ShowS
V2beta1PodsMetricSource -> String
(Int -> V2beta1PodsMetricSource -> ShowS)
-> (V2beta1PodsMetricSource -> String)
-> ([V2beta1PodsMetricSource] -> ShowS)
-> Show V2beta1PodsMetricSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta1PodsMetricSource] -> ShowS
$cshowList :: [V2beta1PodsMetricSource] -> ShowS
show :: V2beta1PodsMetricSource -> String
$cshow :: V2beta1PodsMetricSource -> String
showsPrec :: Int -> V2beta1PodsMetricSource -> ShowS
$cshowsPrec :: Int -> V2beta1PodsMetricSource -> ShowS
P.Show, V2beta1PodsMetricSource -> V2beta1PodsMetricSource -> Bool
(V2beta1PodsMetricSource -> V2beta1PodsMetricSource -> Bool)
-> (V2beta1PodsMetricSource -> V2beta1PodsMetricSource -> Bool)
-> Eq V2beta1PodsMetricSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta1PodsMetricSource -> V2beta1PodsMetricSource -> Bool
$c/= :: V2beta1PodsMetricSource -> V2beta1PodsMetricSource -> Bool
== :: V2beta1PodsMetricSource -> V2beta1PodsMetricSource -> Bool
$c== :: V2beta1PodsMetricSource -> V2beta1PodsMetricSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta1PodsMetricSource
instance A.FromJSON V2beta1PodsMetricSource where
  parseJSON :: Value -> Parser V2beta1PodsMetricSource
parseJSON = String
-> (Object -> Parser V2beta1PodsMetricSource)
-> Value
-> Parser V2beta1PodsMetricSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta1PodsMetricSource" ((Object -> Parser V2beta1PodsMetricSource)
 -> Value -> Parser V2beta1PodsMetricSource)
-> (Object -> Parser V2beta1PodsMetricSource)
-> Value
-> Parser V2beta1PodsMetricSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Maybe V1LabelSelector -> Quantity -> V2beta1PodsMetricSource
V2beta1PodsMetricSource
      (Text
 -> Maybe V1LabelSelector -> Quantity -> V2beta1PodsMetricSource)
-> Parser Text
-> Parser
     (Maybe V1LabelSelector -> Quantity -> V2beta1PodsMetricSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"metricName")
      Parser
  (Maybe V1LabelSelector -> Quantity -> V2beta1PodsMetricSource)
-> Parser (Maybe V1LabelSelector)
-> Parser (Quantity -> V2beta1PodsMetricSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")
      Parser (Quantity -> V2beta1PodsMetricSource)
-> Parser Quantity -> Parser V2beta1PodsMetricSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Quantity
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"targetAverageValue")

-- | ToJSON V2beta1PodsMetricSource
instance A.ToJSON V2beta1PodsMetricSource where
  toJSON :: V2beta1PodsMetricSource -> Value
toJSON V2beta1PodsMetricSource {Maybe V1LabelSelector
Text
Quantity
v2beta1PodsMetricSourceTargetAverageValue :: Quantity
v2beta1PodsMetricSourceSelector :: Maybe V1LabelSelector
v2beta1PodsMetricSourceMetricName :: Text
v2beta1PodsMetricSourceTargetAverageValue :: V2beta1PodsMetricSource -> Quantity
v2beta1PodsMetricSourceSelector :: V2beta1PodsMetricSource -> Maybe V1LabelSelector
v2beta1PodsMetricSourceMetricName :: V2beta1PodsMetricSource -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"metricName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta1PodsMetricSourceMetricName
      , Text
"selector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v2beta1PodsMetricSourceSelector
      , Text
"targetAverageValue" Text -> Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Quantity
v2beta1PodsMetricSourceTargetAverageValue
      ]


-- | Construct a value of type 'V2beta1PodsMetricSource' (by applying it's required fields, if any)
mkV2beta1PodsMetricSource
  :: Text -- ^ 'v2beta1PodsMetricSourceMetricName': metricName is the name of the metric in question
  -> Quantity -- ^ 'v2beta1PodsMetricSourceTargetAverageValue' 
  -> V2beta1PodsMetricSource
mkV2beta1PodsMetricSource :: Text -> Quantity -> V2beta1PodsMetricSource
mkV2beta1PodsMetricSource Text
v2beta1PodsMetricSourceMetricName Quantity
v2beta1PodsMetricSourceTargetAverageValue =
  V2beta1PodsMetricSource :: Text
-> Maybe V1LabelSelector -> Quantity -> V2beta1PodsMetricSource
V2beta1PodsMetricSource
  { Text
v2beta1PodsMetricSourceMetricName :: Text
v2beta1PodsMetricSourceMetricName :: Text
v2beta1PodsMetricSourceMetricName
  , v2beta1PodsMetricSourceSelector :: Maybe V1LabelSelector
v2beta1PodsMetricSourceSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  , Quantity
v2beta1PodsMetricSourceTargetAverageValue :: Quantity
v2beta1PodsMetricSourceTargetAverageValue :: Quantity
v2beta1PodsMetricSourceTargetAverageValue
  }

-- ** V2beta1PodsMetricStatus
-- | V2beta1PodsMetricStatus
-- PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).
data V2beta1PodsMetricStatus = V2beta1PodsMetricStatus
  { V2beta1PodsMetricStatus -> Quantity
v2beta1PodsMetricStatusCurrentAverageValue :: !(Quantity) -- ^ /Required/ "currentAverageValue"
  , V2beta1PodsMetricStatus -> Text
v2beta1PodsMetricStatusMetricName :: !(Text) -- ^ /Required/ "metricName" - metricName is the name of the metric in question
  , V2beta1PodsMetricStatus -> Maybe V1LabelSelector
v2beta1PodsMetricStatusSelector :: !(Maybe V1LabelSelector) -- ^ "selector"
  } deriving (Int -> V2beta1PodsMetricStatus -> ShowS
[V2beta1PodsMetricStatus] -> ShowS
V2beta1PodsMetricStatus -> String
(Int -> V2beta1PodsMetricStatus -> ShowS)
-> (V2beta1PodsMetricStatus -> String)
-> ([V2beta1PodsMetricStatus] -> ShowS)
-> Show V2beta1PodsMetricStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta1PodsMetricStatus] -> ShowS
$cshowList :: [V2beta1PodsMetricStatus] -> ShowS
show :: V2beta1PodsMetricStatus -> String
$cshow :: V2beta1PodsMetricStatus -> String
showsPrec :: Int -> V2beta1PodsMetricStatus -> ShowS
$cshowsPrec :: Int -> V2beta1PodsMetricStatus -> ShowS
P.Show, V2beta1PodsMetricStatus -> V2beta1PodsMetricStatus -> Bool
(V2beta1PodsMetricStatus -> V2beta1PodsMetricStatus -> Bool)
-> (V2beta1PodsMetricStatus -> V2beta1PodsMetricStatus -> Bool)
-> Eq V2beta1PodsMetricStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta1PodsMetricStatus -> V2beta1PodsMetricStatus -> Bool
$c/= :: V2beta1PodsMetricStatus -> V2beta1PodsMetricStatus -> Bool
== :: V2beta1PodsMetricStatus -> V2beta1PodsMetricStatus -> Bool
$c== :: V2beta1PodsMetricStatus -> V2beta1PodsMetricStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta1PodsMetricStatus
instance A.FromJSON V2beta1PodsMetricStatus where
  parseJSON :: Value -> Parser V2beta1PodsMetricStatus
parseJSON = String
-> (Object -> Parser V2beta1PodsMetricStatus)
-> Value
-> Parser V2beta1PodsMetricStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta1PodsMetricStatus" ((Object -> Parser V2beta1PodsMetricStatus)
 -> Value -> Parser V2beta1PodsMetricStatus)
-> (Object -> Parser V2beta1PodsMetricStatus)
-> Value
-> Parser V2beta1PodsMetricStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Quantity
-> Text -> Maybe V1LabelSelector -> V2beta1PodsMetricStatus
V2beta1PodsMetricStatus
      (Quantity
 -> Text -> Maybe V1LabelSelector -> V2beta1PodsMetricStatus)
-> Parser Quantity
-> Parser
     (Text -> Maybe V1LabelSelector -> V2beta1PodsMetricStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Quantity
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"currentAverageValue")
      Parser (Text -> Maybe V1LabelSelector -> V2beta1PodsMetricStatus)
-> Parser Text
-> Parser (Maybe V1LabelSelector -> V2beta1PodsMetricStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"metricName")
      Parser (Maybe V1LabelSelector -> V2beta1PodsMetricStatus)
-> Parser (Maybe V1LabelSelector) -> Parser V2beta1PodsMetricStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")

-- | ToJSON V2beta1PodsMetricStatus
instance A.ToJSON V2beta1PodsMetricStatus where
  toJSON :: V2beta1PodsMetricStatus -> Value
toJSON V2beta1PodsMetricStatus {Maybe V1LabelSelector
Text
Quantity
v2beta1PodsMetricStatusSelector :: Maybe V1LabelSelector
v2beta1PodsMetricStatusMetricName :: Text
v2beta1PodsMetricStatusCurrentAverageValue :: Quantity
v2beta1PodsMetricStatusSelector :: V2beta1PodsMetricStatus -> Maybe V1LabelSelector
v2beta1PodsMetricStatusMetricName :: V2beta1PodsMetricStatus -> Text
v2beta1PodsMetricStatusCurrentAverageValue :: V2beta1PodsMetricStatus -> Quantity
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"currentAverageValue" Text -> Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Quantity
v2beta1PodsMetricStatusCurrentAverageValue
      , Text
"metricName" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta1PodsMetricStatusMetricName
      , Text
"selector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v2beta1PodsMetricStatusSelector
      ]


-- | Construct a value of type 'V2beta1PodsMetricStatus' (by applying it's required fields, if any)
mkV2beta1PodsMetricStatus
  :: Quantity -- ^ 'v2beta1PodsMetricStatusCurrentAverageValue' 
  -> Text -- ^ 'v2beta1PodsMetricStatusMetricName': metricName is the name of the metric in question
  -> V2beta1PodsMetricStatus
mkV2beta1PodsMetricStatus :: Quantity -> Text -> V2beta1PodsMetricStatus
mkV2beta1PodsMetricStatus Quantity
v2beta1PodsMetricStatusCurrentAverageValue Text
v2beta1PodsMetricStatusMetricName =
  V2beta1PodsMetricStatus :: Quantity
-> Text -> Maybe V1LabelSelector -> V2beta1PodsMetricStatus
V2beta1PodsMetricStatus
  { Quantity
v2beta1PodsMetricStatusCurrentAverageValue :: Quantity
v2beta1PodsMetricStatusCurrentAverageValue :: Quantity
v2beta1PodsMetricStatusCurrentAverageValue
  , Text
v2beta1PodsMetricStatusMetricName :: Text
v2beta1PodsMetricStatusMetricName :: Text
v2beta1PodsMetricStatusMetricName
  , v2beta1PodsMetricStatusSelector :: Maybe V1LabelSelector
v2beta1PodsMetricStatusSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  }

-- ** V2beta1ResourceMetricSource
-- | V2beta1ResourceMetricSource
-- ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  The values will be averaged together before being compared to the target.  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.  Only one \"target\" type should be set.
data V2beta1ResourceMetricSource = V2beta1ResourceMetricSource
  { V2beta1ResourceMetricSource -> Text
v2beta1ResourceMetricSourceName :: !(Text) -- ^ /Required/ "name" - name is the name of the resource in question.
  , V2beta1ResourceMetricSource -> Maybe Int
v2beta1ResourceMetricSourceTargetAverageUtilization :: !(Maybe Int) -- ^ "targetAverageUtilization" - targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.
  , V2beta1ResourceMetricSource -> Maybe Quantity
v2beta1ResourceMetricSourceTargetAverageValue :: !(Maybe Quantity) -- ^ "targetAverageValue"
  } deriving (Int -> V2beta1ResourceMetricSource -> ShowS
[V2beta1ResourceMetricSource] -> ShowS
V2beta1ResourceMetricSource -> String
(Int -> V2beta1ResourceMetricSource -> ShowS)
-> (V2beta1ResourceMetricSource -> String)
-> ([V2beta1ResourceMetricSource] -> ShowS)
-> Show V2beta1ResourceMetricSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta1ResourceMetricSource] -> ShowS
$cshowList :: [V2beta1ResourceMetricSource] -> ShowS
show :: V2beta1ResourceMetricSource -> String
$cshow :: V2beta1ResourceMetricSource -> String
showsPrec :: Int -> V2beta1ResourceMetricSource -> ShowS
$cshowsPrec :: Int -> V2beta1ResourceMetricSource -> ShowS
P.Show, V2beta1ResourceMetricSource -> V2beta1ResourceMetricSource -> Bool
(V2beta1ResourceMetricSource
 -> V2beta1ResourceMetricSource -> Bool)
-> (V2beta1ResourceMetricSource
    -> V2beta1ResourceMetricSource -> Bool)
-> Eq V2beta1ResourceMetricSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta1ResourceMetricSource -> V2beta1ResourceMetricSource -> Bool
$c/= :: V2beta1ResourceMetricSource -> V2beta1ResourceMetricSource -> Bool
== :: V2beta1ResourceMetricSource -> V2beta1ResourceMetricSource -> Bool
$c== :: V2beta1ResourceMetricSource -> V2beta1ResourceMetricSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta1ResourceMetricSource
instance A.FromJSON V2beta1ResourceMetricSource where
  parseJSON :: Value -> Parser V2beta1ResourceMetricSource
parseJSON = String
-> (Object -> Parser V2beta1ResourceMetricSource)
-> Value
-> Parser V2beta1ResourceMetricSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta1ResourceMetricSource" ((Object -> Parser V2beta1ResourceMetricSource)
 -> Value -> Parser V2beta1ResourceMetricSource)
-> (Object -> Parser V2beta1ResourceMetricSource)
-> Value
-> Parser V2beta1ResourceMetricSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Maybe Int -> Maybe Quantity -> V2beta1ResourceMetricSource
V2beta1ResourceMetricSource
      (Text
 -> Maybe Int -> Maybe Quantity -> V2beta1ResourceMetricSource)
-> Parser Text
-> Parser
     (Maybe Int -> Maybe Quantity -> V2beta1ResourceMetricSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser (Maybe Int -> Maybe Quantity -> V2beta1ResourceMetricSource)
-> Parser (Maybe Int)
-> Parser (Maybe Quantity -> V2beta1ResourceMetricSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"targetAverageUtilization")
      Parser (Maybe Quantity -> V2beta1ResourceMetricSource)
-> Parser (Maybe Quantity) -> Parser V2beta1ResourceMetricSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Quantity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"targetAverageValue")

-- | ToJSON V2beta1ResourceMetricSource
instance A.ToJSON V2beta1ResourceMetricSource where
  toJSON :: V2beta1ResourceMetricSource -> Value
toJSON V2beta1ResourceMetricSource {Maybe Int
Maybe Quantity
Text
v2beta1ResourceMetricSourceTargetAverageValue :: Maybe Quantity
v2beta1ResourceMetricSourceTargetAverageUtilization :: Maybe Int
v2beta1ResourceMetricSourceName :: Text
v2beta1ResourceMetricSourceTargetAverageValue :: V2beta1ResourceMetricSource -> Maybe Quantity
v2beta1ResourceMetricSourceTargetAverageUtilization :: V2beta1ResourceMetricSource -> Maybe Int
v2beta1ResourceMetricSourceName :: V2beta1ResourceMetricSource -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta1ResourceMetricSourceName
      , Text
"targetAverageUtilization" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v2beta1ResourceMetricSourceTargetAverageUtilization
      , Text
"targetAverageValue" Text -> Maybe Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Quantity
v2beta1ResourceMetricSourceTargetAverageValue
      ]


-- | Construct a value of type 'V2beta1ResourceMetricSource' (by applying it's required fields, if any)
mkV2beta1ResourceMetricSource
  :: Text -- ^ 'v2beta1ResourceMetricSourceName': name is the name of the resource in question.
  -> V2beta1ResourceMetricSource
mkV2beta1ResourceMetricSource :: Text -> V2beta1ResourceMetricSource
mkV2beta1ResourceMetricSource Text
v2beta1ResourceMetricSourceName =
  V2beta1ResourceMetricSource :: Text -> Maybe Int -> Maybe Quantity -> V2beta1ResourceMetricSource
V2beta1ResourceMetricSource
  { Text
v2beta1ResourceMetricSourceName :: Text
v2beta1ResourceMetricSourceName :: Text
v2beta1ResourceMetricSourceName
  , v2beta1ResourceMetricSourceTargetAverageUtilization :: Maybe Int
v2beta1ResourceMetricSourceTargetAverageUtilization = Maybe Int
forall a. Maybe a
Nothing
  , v2beta1ResourceMetricSourceTargetAverageValue :: Maybe Quantity
v2beta1ResourceMetricSourceTargetAverageValue = Maybe Quantity
forall a. Maybe a
Nothing
  }

-- ** V2beta1ResourceMetricStatus
-- | V2beta1ResourceMetricStatus
-- ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.
data V2beta1ResourceMetricStatus = V2beta1ResourceMetricStatus
  { V2beta1ResourceMetricStatus -> Maybe Int
v2beta1ResourceMetricStatusCurrentAverageUtilization :: !(Maybe Int) -- ^ "currentAverageUtilization" - currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.  It will only be present if &#x60;targetAverageValue&#x60; was set in the corresponding metric specification.
  , V2beta1ResourceMetricStatus -> Quantity
v2beta1ResourceMetricStatusCurrentAverageValue :: !(Quantity) -- ^ /Required/ "currentAverageValue"
  , V2beta1ResourceMetricStatus -> Text
v2beta1ResourceMetricStatusName :: !(Text) -- ^ /Required/ "name" - name is the name of the resource in question.
  } deriving (Int -> V2beta1ResourceMetricStatus -> ShowS
[V2beta1ResourceMetricStatus] -> ShowS
V2beta1ResourceMetricStatus -> String
(Int -> V2beta1ResourceMetricStatus -> ShowS)
-> (V2beta1ResourceMetricStatus -> String)
-> ([V2beta1ResourceMetricStatus] -> ShowS)
-> Show V2beta1ResourceMetricStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta1ResourceMetricStatus] -> ShowS
$cshowList :: [V2beta1ResourceMetricStatus] -> ShowS
show :: V2beta1ResourceMetricStatus -> String
$cshow :: V2beta1ResourceMetricStatus -> String
showsPrec :: Int -> V2beta1ResourceMetricStatus -> ShowS
$cshowsPrec :: Int -> V2beta1ResourceMetricStatus -> ShowS
P.Show, V2beta1ResourceMetricStatus -> V2beta1ResourceMetricStatus -> Bool
(V2beta1ResourceMetricStatus
 -> V2beta1ResourceMetricStatus -> Bool)
-> (V2beta1ResourceMetricStatus
    -> V2beta1ResourceMetricStatus -> Bool)
-> Eq V2beta1ResourceMetricStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta1ResourceMetricStatus -> V2beta1ResourceMetricStatus -> Bool
$c/= :: V2beta1ResourceMetricStatus -> V2beta1ResourceMetricStatus -> Bool
== :: V2beta1ResourceMetricStatus -> V2beta1ResourceMetricStatus -> Bool
$c== :: V2beta1ResourceMetricStatus -> V2beta1ResourceMetricStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta1ResourceMetricStatus
instance A.FromJSON V2beta1ResourceMetricStatus where
  parseJSON :: Value -> Parser V2beta1ResourceMetricStatus
parseJSON = String
-> (Object -> Parser V2beta1ResourceMetricStatus)
-> Value
-> Parser V2beta1ResourceMetricStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta1ResourceMetricStatus" ((Object -> Parser V2beta1ResourceMetricStatus)
 -> Value -> Parser V2beta1ResourceMetricStatus)
-> (Object -> Parser V2beta1ResourceMetricStatus)
-> Value
-> Parser V2beta1ResourceMetricStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int -> Quantity -> Text -> V2beta1ResourceMetricStatus
V2beta1ResourceMetricStatus
      (Maybe Int -> Quantity -> Text -> V2beta1ResourceMetricStatus)
-> Parser (Maybe Int)
-> Parser (Quantity -> Text -> V2beta1ResourceMetricStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"currentAverageUtilization")
      Parser (Quantity -> Text -> V2beta1ResourceMetricStatus)
-> Parser Quantity -> Parser (Text -> V2beta1ResourceMetricStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Quantity
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"currentAverageValue")
      Parser (Text -> V2beta1ResourceMetricStatus)
-> Parser Text -> Parser V2beta1ResourceMetricStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")

-- | ToJSON V2beta1ResourceMetricStatus
instance A.ToJSON V2beta1ResourceMetricStatus where
  toJSON :: V2beta1ResourceMetricStatus -> Value
toJSON V2beta1ResourceMetricStatus {Maybe Int
Text
Quantity
v2beta1ResourceMetricStatusName :: Text
v2beta1ResourceMetricStatusCurrentAverageValue :: Quantity
v2beta1ResourceMetricStatusCurrentAverageUtilization :: Maybe Int
v2beta1ResourceMetricStatusName :: V2beta1ResourceMetricStatus -> Text
v2beta1ResourceMetricStatusCurrentAverageValue :: V2beta1ResourceMetricStatus -> Quantity
v2beta1ResourceMetricStatusCurrentAverageUtilization :: V2beta1ResourceMetricStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"currentAverageUtilization" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v2beta1ResourceMetricStatusCurrentAverageUtilization
      , Text
"currentAverageValue" Text -> Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Quantity
v2beta1ResourceMetricStatusCurrentAverageValue
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta1ResourceMetricStatusName
      ]


-- | Construct a value of type 'V2beta1ResourceMetricStatus' (by applying it's required fields, if any)
mkV2beta1ResourceMetricStatus
  :: Quantity -- ^ 'v2beta1ResourceMetricStatusCurrentAverageValue' 
  -> Text -- ^ 'v2beta1ResourceMetricStatusName': name is the name of the resource in question.
  -> V2beta1ResourceMetricStatus
mkV2beta1ResourceMetricStatus :: Quantity -> Text -> V2beta1ResourceMetricStatus
mkV2beta1ResourceMetricStatus Quantity
v2beta1ResourceMetricStatusCurrentAverageValue Text
v2beta1ResourceMetricStatusName =
  V2beta1ResourceMetricStatus :: Maybe Int -> Quantity -> Text -> V2beta1ResourceMetricStatus
V2beta1ResourceMetricStatus
  { v2beta1ResourceMetricStatusCurrentAverageUtilization :: Maybe Int
v2beta1ResourceMetricStatusCurrentAverageUtilization = Maybe Int
forall a. Maybe a
Nothing
  , Quantity
v2beta1ResourceMetricStatusCurrentAverageValue :: Quantity
v2beta1ResourceMetricStatusCurrentAverageValue :: Quantity
v2beta1ResourceMetricStatusCurrentAverageValue
  , Text
v2beta1ResourceMetricStatusName :: Text
v2beta1ResourceMetricStatusName :: Text
v2beta1ResourceMetricStatusName
  }

-- ** V2beta2CrossVersionObjectReference
-- | V2beta2CrossVersionObjectReference
-- CrossVersionObjectReference contains enough information to let you identify the referred resource.
data V2beta2CrossVersionObjectReference = V2beta2CrossVersionObjectReference
  { V2beta2CrossVersionObjectReference -> Maybe Text
v2beta2CrossVersionObjectReferenceApiVersion :: !(Maybe Text) -- ^ "apiVersion" - API version of the referent
  , V2beta2CrossVersionObjectReference -> Text
v2beta2CrossVersionObjectReferenceKind :: !(Text) -- ^ /Required/ "kind" - Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\&quot;
  , V2beta2CrossVersionObjectReference -> Text
v2beta2CrossVersionObjectReferenceName :: !(Text) -- ^ /Required/ "name" - Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names
  } deriving (Int -> V2beta2CrossVersionObjectReference -> ShowS
[V2beta2CrossVersionObjectReference] -> ShowS
V2beta2CrossVersionObjectReference -> String
(Int -> V2beta2CrossVersionObjectReference -> ShowS)
-> (V2beta2CrossVersionObjectReference -> String)
-> ([V2beta2CrossVersionObjectReference] -> ShowS)
-> Show V2beta2CrossVersionObjectReference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2CrossVersionObjectReference] -> ShowS
$cshowList :: [V2beta2CrossVersionObjectReference] -> ShowS
show :: V2beta2CrossVersionObjectReference -> String
$cshow :: V2beta2CrossVersionObjectReference -> String
showsPrec :: Int -> V2beta2CrossVersionObjectReference -> ShowS
$cshowsPrec :: Int -> V2beta2CrossVersionObjectReference -> ShowS
P.Show, V2beta2CrossVersionObjectReference
-> V2beta2CrossVersionObjectReference -> Bool
(V2beta2CrossVersionObjectReference
 -> V2beta2CrossVersionObjectReference -> Bool)
-> (V2beta2CrossVersionObjectReference
    -> V2beta2CrossVersionObjectReference -> Bool)
-> Eq V2beta2CrossVersionObjectReference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2CrossVersionObjectReference
-> V2beta2CrossVersionObjectReference -> Bool
$c/= :: V2beta2CrossVersionObjectReference
-> V2beta2CrossVersionObjectReference -> Bool
== :: V2beta2CrossVersionObjectReference
-> V2beta2CrossVersionObjectReference -> Bool
$c== :: V2beta2CrossVersionObjectReference
-> V2beta2CrossVersionObjectReference -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2CrossVersionObjectReference
instance A.FromJSON V2beta2CrossVersionObjectReference where
  parseJSON :: Value -> Parser V2beta2CrossVersionObjectReference
parseJSON = String
-> (Object -> Parser V2beta2CrossVersionObjectReference)
-> Value
-> Parser V2beta2CrossVersionObjectReference
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2CrossVersionObjectReference" ((Object -> Parser V2beta2CrossVersionObjectReference)
 -> Value -> Parser V2beta2CrossVersionObjectReference)
-> (Object -> Parser V2beta2CrossVersionObjectReference)
-> Value
-> Parser V2beta2CrossVersionObjectReference
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text -> Text -> Text -> V2beta2CrossVersionObjectReference
V2beta2CrossVersionObjectReference
      (Maybe Text -> Text -> Text -> V2beta2CrossVersionObjectReference)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V2beta2CrossVersionObjectReference)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser (Text -> Text -> V2beta2CrossVersionObjectReference)
-> Parser Text
-> Parser (Text -> V2beta2CrossVersionObjectReference)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"kind")
      Parser (Text -> V2beta2CrossVersionObjectReference)
-> Parser Text -> Parser V2beta2CrossVersionObjectReference
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")

-- | ToJSON V2beta2CrossVersionObjectReference
instance A.ToJSON V2beta2CrossVersionObjectReference where
  toJSON :: V2beta2CrossVersionObjectReference -> Value
toJSON V2beta2CrossVersionObjectReference {Maybe Text
Text
v2beta2CrossVersionObjectReferenceName :: Text
v2beta2CrossVersionObjectReferenceKind :: Text
v2beta2CrossVersionObjectReferenceApiVersion :: Maybe Text
v2beta2CrossVersionObjectReferenceName :: V2beta2CrossVersionObjectReference -> Text
v2beta2CrossVersionObjectReferenceKind :: V2beta2CrossVersionObjectReference -> Text
v2beta2CrossVersionObjectReferenceApiVersion :: V2beta2CrossVersionObjectReference -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2beta2CrossVersionObjectReferenceApiVersion
      , Text
"kind" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta2CrossVersionObjectReferenceKind
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta2CrossVersionObjectReferenceName
      ]


-- | Construct a value of type 'V2beta2CrossVersionObjectReference' (by applying it's required fields, if any)
mkV2beta2CrossVersionObjectReference
  :: Text -- ^ 'v2beta2CrossVersionObjectReferenceKind': Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\"
  -> Text -- ^ 'v2beta2CrossVersionObjectReferenceName': Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names
  -> V2beta2CrossVersionObjectReference
mkV2beta2CrossVersionObjectReference :: Text -> Text -> V2beta2CrossVersionObjectReference
mkV2beta2CrossVersionObjectReference Text
v2beta2CrossVersionObjectReferenceKind Text
v2beta2CrossVersionObjectReferenceName =
  V2beta2CrossVersionObjectReference :: Maybe Text -> Text -> Text -> V2beta2CrossVersionObjectReference
V2beta2CrossVersionObjectReference
  { v2beta2CrossVersionObjectReferenceApiVersion :: Maybe Text
v2beta2CrossVersionObjectReferenceApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , Text
v2beta2CrossVersionObjectReferenceKind :: Text
v2beta2CrossVersionObjectReferenceKind :: Text
v2beta2CrossVersionObjectReferenceKind
  , Text
v2beta2CrossVersionObjectReferenceName :: Text
v2beta2CrossVersionObjectReferenceName :: Text
v2beta2CrossVersionObjectReferenceName
  }

-- ** V2beta2ExternalMetricSource
-- | V2beta2ExternalMetricSource
-- ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).
data V2beta2ExternalMetricSource = V2beta2ExternalMetricSource
  { V2beta2ExternalMetricSource -> V2beta2MetricIdentifier
v2beta2ExternalMetricSourceMetric :: !(V2beta2MetricIdentifier) -- ^ /Required/ "metric"
  , V2beta2ExternalMetricSource -> V2beta2MetricTarget
v2beta2ExternalMetricSourceTarget :: !(V2beta2MetricTarget) -- ^ /Required/ "target"
  } deriving (Int -> V2beta2ExternalMetricSource -> ShowS
[V2beta2ExternalMetricSource] -> ShowS
V2beta2ExternalMetricSource -> String
(Int -> V2beta2ExternalMetricSource -> ShowS)
-> (V2beta2ExternalMetricSource -> String)
-> ([V2beta2ExternalMetricSource] -> ShowS)
-> Show V2beta2ExternalMetricSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2ExternalMetricSource] -> ShowS
$cshowList :: [V2beta2ExternalMetricSource] -> ShowS
show :: V2beta2ExternalMetricSource -> String
$cshow :: V2beta2ExternalMetricSource -> String
showsPrec :: Int -> V2beta2ExternalMetricSource -> ShowS
$cshowsPrec :: Int -> V2beta2ExternalMetricSource -> ShowS
P.Show, V2beta2ExternalMetricSource -> V2beta2ExternalMetricSource -> Bool
(V2beta2ExternalMetricSource
 -> V2beta2ExternalMetricSource -> Bool)
-> (V2beta2ExternalMetricSource
    -> V2beta2ExternalMetricSource -> Bool)
-> Eq V2beta2ExternalMetricSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2ExternalMetricSource -> V2beta2ExternalMetricSource -> Bool
$c/= :: V2beta2ExternalMetricSource -> V2beta2ExternalMetricSource -> Bool
== :: V2beta2ExternalMetricSource -> V2beta2ExternalMetricSource -> Bool
$c== :: V2beta2ExternalMetricSource -> V2beta2ExternalMetricSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2ExternalMetricSource
instance A.FromJSON V2beta2ExternalMetricSource where
  parseJSON :: Value -> Parser V2beta2ExternalMetricSource
parseJSON = String
-> (Object -> Parser V2beta2ExternalMetricSource)
-> Value
-> Parser V2beta2ExternalMetricSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2ExternalMetricSource" ((Object -> Parser V2beta2ExternalMetricSource)
 -> Value -> Parser V2beta2ExternalMetricSource)
-> (Object -> Parser V2beta2ExternalMetricSource)
-> Value
-> Parser V2beta2ExternalMetricSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    V2beta2MetricIdentifier
-> V2beta2MetricTarget -> V2beta2ExternalMetricSource
V2beta2ExternalMetricSource
      (V2beta2MetricIdentifier
 -> V2beta2MetricTarget -> V2beta2ExternalMetricSource)
-> Parser V2beta2MetricIdentifier
-> Parser (V2beta2MetricTarget -> V2beta2ExternalMetricSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser V2beta2MetricIdentifier
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"metric")
      Parser (V2beta2MetricTarget -> V2beta2ExternalMetricSource)
-> Parser V2beta2MetricTarget -> Parser V2beta2ExternalMetricSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V2beta2MetricTarget
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"target")

-- | ToJSON V2beta2ExternalMetricSource
instance A.ToJSON V2beta2ExternalMetricSource where
  toJSON :: V2beta2ExternalMetricSource -> Value
toJSON V2beta2ExternalMetricSource {V2beta2MetricTarget
V2beta2MetricIdentifier
v2beta2ExternalMetricSourceTarget :: V2beta2MetricTarget
v2beta2ExternalMetricSourceMetric :: V2beta2MetricIdentifier
v2beta2ExternalMetricSourceTarget :: V2beta2ExternalMetricSource -> V2beta2MetricTarget
v2beta2ExternalMetricSourceMetric :: V2beta2ExternalMetricSource -> V2beta2MetricIdentifier
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"metric" Text -> V2beta2MetricIdentifier -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2MetricIdentifier
v2beta2ExternalMetricSourceMetric
      , Text
"target" Text -> V2beta2MetricTarget -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2MetricTarget
v2beta2ExternalMetricSourceTarget
      ]


-- | Construct a value of type 'V2beta2ExternalMetricSource' (by applying it's required fields, if any)
mkV2beta2ExternalMetricSource
  :: V2beta2MetricIdentifier -- ^ 'v2beta2ExternalMetricSourceMetric' 
  -> V2beta2MetricTarget -- ^ 'v2beta2ExternalMetricSourceTarget' 
  -> V2beta2ExternalMetricSource
mkV2beta2ExternalMetricSource :: V2beta2MetricIdentifier
-> V2beta2MetricTarget -> V2beta2ExternalMetricSource
mkV2beta2ExternalMetricSource V2beta2MetricIdentifier
v2beta2ExternalMetricSourceMetric V2beta2MetricTarget
v2beta2ExternalMetricSourceTarget =
  V2beta2ExternalMetricSource :: V2beta2MetricIdentifier
-> V2beta2MetricTarget -> V2beta2ExternalMetricSource
V2beta2ExternalMetricSource
  { V2beta2MetricIdentifier
v2beta2ExternalMetricSourceMetric :: V2beta2MetricIdentifier
v2beta2ExternalMetricSourceMetric :: V2beta2MetricIdentifier
v2beta2ExternalMetricSourceMetric
  , V2beta2MetricTarget
v2beta2ExternalMetricSourceTarget :: V2beta2MetricTarget
v2beta2ExternalMetricSourceTarget :: V2beta2MetricTarget
v2beta2ExternalMetricSourceTarget
  }

-- ** V2beta2ExternalMetricStatus
-- | V2beta2ExternalMetricStatus
-- ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.
data V2beta2ExternalMetricStatus = V2beta2ExternalMetricStatus
  { V2beta2ExternalMetricStatus -> V2beta2MetricValueStatus
v2beta2ExternalMetricStatusCurrent :: !(V2beta2MetricValueStatus) -- ^ /Required/ "current"
  , V2beta2ExternalMetricStatus -> V2beta2MetricIdentifier
v2beta2ExternalMetricStatusMetric :: !(V2beta2MetricIdentifier) -- ^ /Required/ "metric"
  } deriving (Int -> V2beta2ExternalMetricStatus -> ShowS
[V2beta2ExternalMetricStatus] -> ShowS
V2beta2ExternalMetricStatus -> String
(Int -> V2beta2ExternalMetricStatus -> ShowS)
-> (V2beta2ExternalMetricStatus -> String)
-> ([V2beta2ExternalMetricStatus] -> ShowS)
-> Show V2beta2ExternalMetricStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2ExternalMetricStatus] -> ShowS
$cshowList :: [V2beta2ExternalMetricStatus] -> ShowS
show :: V2beta2ExternalMetricStatus -> String
$cshow :: V2beta2ExternalMetricStatus -> String
showsPrec :: Int -> V2beta2ExternalMetricStatus -> ShowS
$cshowsPrec :: Int -> V2beta2ExternalMetricStatus -> ShowS
P.Show, V2beta2ExternalMetricStatus -> V2beta2ExternalMetricStatus -> Bool
(V2beta2ExternalMetricStatus
 -> V2beta2ExternalMetricStatus -> Bool)
-> (V2beta2ExternalMetricStatus
    -> V2beta2ExternalMetricStatus -> Bool)
-> Eq V2beta2ExternalMetricStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2ExternalMetricStatus -> V2beta2ExternalMetricStatus -> Bool
$c/= :: V2beta2ExternalMetricStatus -> V2beta2ExternalMetricStatus -> Bool
== :: V2beta2ExternalMetricStatus -> V2beta2ExternalMetricStatus -> Bool
$c== :: V2beta2ExternalMetricStatus -> V2beta2ExternalMetricStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2ExternalMetricStatus
instance A.FromJSON V2beta2ExternalMetricStatus where
  parseJSON :: Value -> Parser V2beta2ExternalMetricStatus
parseJSON = String
-> (Object -> Parser V2beta2ExternalMetricStatus)
-> Value
-> Parser V2beta2ExternalMetricStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2ExternalMetricStatus" ((Object -> Parser V2beta2ExternalMetricStatus)
 -> Value -> Parser V2beta2ExternalMetricStatus)
-> (Object -> Parser V2beta2ExternalMetricStatus)
-> Value
-> Parser V2beta2ExternalMetricStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    V2beta2MetricValueStatus
-> V2beta2MetricIdentifier -> V2beta2ExternalMetricStatus
V2beta2ExternalMetricStatus
      (V2beta2MetricValueStatus
 -> V2beta2MetricIdentifier -> V2beta2ExternalMetricStatus)
-> Parser V2beta2MetricValueStatus
-> Parser (V2beta2MetricIdentifier -> V2beta2ExternalMetricStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser V2beta2MetricValueStatus
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"current")
      Parser (V2beta2MetricIdentifier -> V2beta2ExternalMetricStatus)
-> Parser V2beta2MetricIdentifier
-> Parser V2beta2ExternalMetricStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V2beta2MetricIdentifier
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"metric")

-- | ToJSON V2beta2ExternalMetricStatus
instance A.ToJSON V2beta2ExternalMetricStatus where
  toJSON :: V2beta2ExternalMetricStatus -> Value
toJSON V2beta2ExternalMetricStatus {V2beta2MetricValueStatus
V2beta2MetricIdentifier
v2beta2ExternalMetricStatusMetric :: V2beta2MetricIdentifier
v2beta2ExternalMetricStatusCurrent :: V2beta2MetricValueStatus
v2beta2ExternalMetricStatusMetric :: V2beta2ExternalMetricStatus -> V2beta2MetricIdentifier
v2beta2ExternalMetricStatusCurrent :: V2beta2ExternalMetricStatus -> V2beta2MetricValueStatus
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"current" Text -> V2beta2MetricValueStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2MetricValueStatus
v2beta2ExternalMetricStatusCurrent
      , Text
"metric" Text -> V2beta2MetricIdentifier -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2MetricIdentifier
v2beta2ExternalMetricStatusMetric
      ]


-- | Construct a value of type 'V2beta2ExternalMetricStatus' (by applying it's required fields, if any)
mkV2beta2ExternalMetricStatus
  :: V2beta2MetricValueStatus -- ^ 'v2beta2ExternalMetricStatusCurrent' 
  -> V2beta2MetricIdentifier -- ^ 'v2beta2ExternalMetricStatusMetric' 
  -> V2beta2ExternalMetricStatus
mkV2beta2ExternalMetricStatus :: V2beta2MetricValueStatus
-> V2beta2MetricIdentifier -> V2beta2ExternalMetricStatus
mkV2beta2ExternalMetricStatus V2beta2MetricValueStatus
v2beta2ExternalMetricStatusCurrent V2beta2MetricIdentifier
v2beta2ExternalMetricStatusMetric =
  V2beta2ExternalMetricStatus :: V2beta2MetricValueStatus
-> V2beta2MetricIdentifier -> V2beta2ExternalMetricStatus
V2beta2ExternalMetricStatus
  { V2beta2MetricValueStatus
v2beta2ExternalMetricStatusCurrent :: V2beta2MetricValueStatus
v2beta2ExternalMetricStatusCurrent :: V2beta2MetricValueStatus
v2beta2ExternalMetricStatusCurrent
  , V2beta2MetricIdentifier
v2beta2ExternalMetricStatusMetric :: V2beta2MetricIdentifier
v2beta2ExternalMetricStatusMetric :: V2beta2MetricIdentifier
v2beta2ExternalMetricStatusMetric
  }

-- ** V2beta2HorizontalPodAutoscaler
-- | V2beta2HorizontalPodAutoscaler
-- HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.
data V2beta2HorizontalPodAutoscaler = V2beta2HorizontalPodAutoscaler
  { V2beta2HorizontalPodAutoscaler -> Maybe Text
v2beta2HorizontalPodAutoscalerApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V2beta2HorizontalPodAutoscaler -> Maybe Text
v2beta2HorizontalPodAutoscalerKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V2beta2HorizontalPodAutoscaler -> Maybe V1ObjectMeta
v2beta2HorizontalPodAutoscalerMetadata :: !(Maybe V1ObjectMeta) -- ^ "metadata"
  , V2beta2HorizontalPodAutoscaler
-> Maybe V2beta2HorizontalPodAutoscalerSpec
v2beta2HorizontalPodAutoscalerSpec :: !(Maybe V2beta2HorizontalPodAutoscalerSpec) -- ^ "spec"
  , V2beta2HorizontalPodAutoscaler
-> Maybe V2beta2HorizontalPodAutoscalerStatus
v2beta2HorizontalPodAutoscalerStatus :: !(Maybe V2beta2HorizontalPodAutoscalerStatus) -- ^ "status"
  } deriving (Int -> V2beta2HorizontalPodAutoscaler -> ShowS
[V2beta2HorizontalPodAutoscaler] -> ShowS
V2beta2HorizontalPodAutoscaler -> String
(Int -> V2beta2HorizontalPodAutoscaler -> ShowS)
-> (V2beta2HorizontalPodAutoscaler -> String)
-> ([V2beta2HorizontalPodAutoscaler] -> ShowS)
-> Show V2beta2HorizontalPodAutoscaler
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2HorizontalPodAutoscaler] -> ShowS
$cshowList :: [V2beta2HorizontalPodAutoscaler] -> ShowS
show :: V2beta2HorizontalPodAutoscaler -> String
$cshow :: V2beta2HorizontalPodAutoscaler -> String
showsPrec :: Int -> V2beta2HorizontalPodAutoscaler -> ShowS
$cshowsPrec :: Int -> V2beta2HorizontalPodAutoscaler -> ShowS
P.Show, V2beta2HorizontalPodAutoscaler
-> V2beta2HorizontalPodAutoscaler -> Bool
(V2beta2HorizontalPodAutoscaler
 -> V2beta2HorizontalPodAutoscaler -> Bool)
-> (V2beta2HorizontalPodAutoscaler
    -> V2beta2HorizontalPodAutoscaler -> Bool)
-> Eq V2beta2HorizontalPodAutoscaler
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2HorizontalPodAutoscaler
-> V2beta2HorizontalPodAutoscaler -> Bool
$c/= :: V2beta2HorizontalPodAutoscaler
-> V2beta2HorizontalPodAutoscaler -> Bool
== :: V2beta2HorizontalPodAutoscaler
-> V2beta2HorizontalPodAutoscaler -> Bool
$c== :: V2beta2HorizontalPodAutoscaler
-> V2beta2HorizontalPodAutoscaler -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2HorizontalPodAutoscaler
instance A.FromJSON V2beta2HorizontalPodAutoscaler where
  parseJSON :: Value -> Parser V2beta2HorizontalPodAutoscaler
parseJSON = String
-> (Object -> Parser V2beta2HorizontalPodAutoscaler)
-> Value
-> Parser V2beta2HorizontalPodAutoscaler
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2HorizontalPodAutoscaler" ((Object -> Parser V2beta2HorizontalPodAutoscaler)
 -> Value -> Parser V2beta2HorizontalPodAutoscaler)
-> (Object -> Parser V2beta2HorizontalPodAutoscaler)
-> Value
-> Parser V2beta2HorizontalPodAutoscaler
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V2beta2HorizontalPodAutoscalerSpec
-> Maybe V2beta2HorizontalPodAutoscalerStatus
-> V2beta2HorizontalPodAutoscaler
V2beta2HorizontalPodAutoscaler
      (Maybe Text
 -> Maybe Text
 -> Maybe V1ObjectMeta
 -> Maybe V2beta2HorizontalPodAutoscalerSpec
 -> Maybe V2beta2HorizontalPodAutoscalerStatus
 -> V2beta2HorizontalPodAutoscaler)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe V1ObjectMeta
      -> Maybe V2beta2HorizontalPodAutoscalerSpec
      -> Maybe V2beta2HorizontalPodAutoscalerStatus
      -> V2beta2HorizontalPodAutoscaler)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  (Maybe Text
   -> Maybe V1ObjectMeta
   -> Maybe V2beta2HorizontalPodAutoscalerSpec
   -> Maybe V2beta2HorizontalPodAutoscalerStatus
   -> V2beta2HorizontalPodAutoscaler)
-> Parser (Maybe Text)
-> Parser
     (Maybe V1ObjectMeta
      -> Maybe V2beta2HorizontalPodAutoscalerSpec
      -> Maybe V2beta2HorizontalPodAutoscalerStatus
      -> V2beta2HorizontalPodAutoscaler)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser
  (Maybe V1ObjectMeta
   -> Maybe V2beta2HorizontalPodAutoscalerSpec
   -> Maybe V2beta2HorizontalPodAutoscalerStatus
   -> V2beta2HorizontalPodAutoscaler)
-> Parser (Maybe V1ObjectMeta)
-> Parser
     (Maybe V2beta2HorizontalPodAutoscalerSpec
      -> Maybe V2beta2HorizontalPodAutoscalerStatus
      -> V2beta2HorizontalPodAutoscaler)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ObjectMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")
      Parser
  (Maybe V2beta2HorizontalPodAutoscalerSpec
   -> Maybe V2beta2HorizontalPodAutoscalerStatus
   -> V2beta2HorizontalPodAutoscaler)
-> Parser (Maybe V2beta2HorizontalPodAutoscalerSpec)
-> Parser
     (Maybe V2beta2HorizontalPodAutoscalerStatus
      -> V2beta2HorizontalPodAutoscaler)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V2beta2HorizontalPodAutoscalerSpec)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"spec")
      Parser
  (Maybe V2beta2HorizontalPodAutoscalerStatus
   -> V2beta2HorizontalPodAutoscaler)
-> Parser (Maybe V2beta2HorizontalPodAutoscalerStatus)
-> Parser V2beta2HorizontalPodAutoscaler
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object
-> Text -> Parser (Maybe V2beta2HorizontalPodAutoscalerStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"status")

-- | ToJSON V2beta2HorizontalPodAutoscaler
instance A.ToJSON V2beta2HorizontalPodAutoscaler where
  toJSON :: V2beta2HorizontalPodAutoscaler -> Value
toJSON V2beta2HorizontalPodAutoscaler {Maybe Text
Maybe V2beta2HorizontalPodAutoscalerStatus
Maybe V2beta2HorizontalPodAutoscalerSpec
Maybe V1ObjectMeta
v2beta2HorizontalPodAutoscalerStatus :: Maybe V2beta2HorizontalPodAutoscalerStatus
v2beta2HorizontalPodAutoscalerSpec :: Maybe V2beta2HorizontalPodAutoscalerSpec
v2beta2HorizontalPodAutoscalerMetadata :: Maybe V1ObjectMeta
v2beta2HorizontalPodAutoscalerKind :: Maybe Text
v2beta2HorizontalPodAutoscalerApiVersion :: Maybe Text
v2beta2HorizontalPodAutoscalerStatus :: V2beta2HorizontalPodAutoscaler
-> Maybe V2beta2HorizontalPodAutoscalerStatus
v2beta2HorizontalPodAutoscalerSpec :: V2beta2HorizontalPodAutoscaler
-> Maybe V2beta2HorizontalPodAutoscalerSpec
v2beta2HorizontalPodAutoscalerMetadata :: V2beta2HorizontalPodAutoscaler -> Maybe V1ObjectMeta
v2beta2HorizontalPodAutoscalerKind :: V2beta2HorizontalPodAutoscaler -> Maybe Text
v2beta2HorizontalPodAutoscalerApiVersion :: V2beta2HorizontalPodAutoscaler -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2beta2HorizontalPodAutoscalerApiVersion
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2beta2HorizontalPodAutoscalerKind
      , Text
"metadata" Text -> Maybe V1ObjectMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ObjectMeta
v2beta2HorizontalPodAutoscalerMetadata
      , Text
"spec" Text -> Maybe V2beta2HorizontalPodAutoscalerSpec -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta2HorizontalPodAutoscalerSpec
v2beta2HorizontalPodAutoscalerSpec
      , Text
"status" Text -> Maybe V2beta2HorizontalPodAutoscalerStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta2HorizontalPodAutoscalerStatus
v2beta2HorizontalPodAutoscalerStatus
      ]


-- | Construct a value of type 'V2beta2HorizontalPodAutoscaler' (by applying it's required fields, if any)
mkV2beta2HorizontalPodAutoscaler
  :: V2beta2HorizontalPodAutoscaler
mkV2beta2HorizontalPodAutoscaler :: V2beta2HorizontalPodAutoscaler
mkV2beta2HorizontalPodAutoscaler =
  V2beta2HorizontalPodAutoscaler :: Maybe Text
-> Maybe Text
-> Maybe V1ObjectMeta
-> Maybe V2beta2HorizontalPodAutoscalerSpec
-> Maybe V2beta2HorizontalPodAutoscalerStatus
-> V2beta2HorizontalPodAutoscaler
V2beta2HorizontalPodAutoscaler
  { v2beta2HorizontalPodAutoscalerApiVersion :: Maybe Text
v2beta2HorizontalPodAutoscalerApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , v2beta2HorizontalPodAutoscalerKind :: Maybe Text
v2beta2HorizontalPodAutoscalerKind = Maybe Text
forall a. Maybe a
Nothing
  , v2beta2HorizontalPodAutoscalerMetadata :: Maybe V1ObjectMeta
v2beta2HorizontalPodAutoscalerMetadata = Maybe V1ObjectMeta
forall a. Maybe a
Nothing
  , v2beta2HorizontalPodAutoscalerSpec :: Maybe V2beta2HorizontalPodAutoscalerSpec
v2beta2HorizontalPodAutoscalerSpec = Maybe V2beta2HorizontalPodAutoscalerSpec
forall a. Maybe a
Nothing
  , v2beta2HorizontalPodAutoscalerStatus :: Maybe V2beta2HorizontalPodAutoscalerStatus
v2beta2HorizontalPodAutoscalerStatus = Maybe V2beta2HorizontalPodAutoscalerStatus
forall a. Maybe a
Nothing
  }

-- ** V2beta2HorizontalPodAutoscalerCondition
-- | V2beta2HorizontalPodAutoscalerCondition
-- HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.
data V2beta2HorizontalPodAutoscalerCondition = V2beta2HorizontalPodAutoscalerCondition
  { V2beta2HorizontalPodAutoscalerCondition -> Maybe DateTime
v2beta2HorizontalPodAutoscalerConditionLastTransitionTime :: !(Maybe DateTime) -- ^ "lastTransitionTime" - lastTransitionTime is the last time the condition transitioned from one status to another
  , V2beta2HorizontalPodAutoscalerCondition -> Maybe Text
v2beta2HorizontalPodAutoscalerConditionMessage :: !(Maybe Text) -- ^ "message" - message is a human-readable explanation containing details about the transition
  , V2beta2HorizontalPodAutoscalerCondition -> Maybe Text
v2beta2HorizontalPodAutoscalerConditionReason :: !(Maybe Text) -- ^ "reason" - reason is the reason for the condition&#39;s last transition.
  , V2beta2HorizontalPodAutoscalerCondition -> Text
v2beta2HorizontalPodAutoscalerConditionStatus :: !(Text) -- ^ /Required/ "status" - status is the status of the condition (True, False, Unknown)
  , V2beta2HorizontalPodAutoscalerCondition -> Text
v2beta2HorizontalPodAutoscalerConditionType :: !(Text) -- ^ /Required/ "type" - type describes the current condition
  } deriving (Int -> V2beta2HorizontalPodAutoscalerCondition -> ShowS
[V2beta2HorizontalPodAutoscalerCondition] -> ShowS
V2beta2HorizontalPodAutoscalerCondition -> String
(Int -> V2beta2HorizontalPodAutoscalerCondition -> ShowS)
-> (V2beta2HorizontalPodAutoscalerCondition -> String)
-> ([V2beta2HorizontalPodAutoscalerCondition] -> ShowS)
-> Show V2beta2HorizontalPodAutoscalerCondition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2HorizontalPodAutoscalerCondition] -> ShowS
$cshowList :: [V2beta2HorizontalPodAutoscalerCondition] -> ShowS
show :: V2beta2HorizontalPodAutoscalerCondition -> String
$cshow :: V2beta2HorizontalPodAutoscalerCondition -> String
showsPrec :: Int -> V2beta2HorizontalPodAutoscalerCondition -> ShowS
$cshowsPrec :: Int -> V2beta2HorizontalPodAutoscalerCondition -> ShowS
P.Show, V2beta2HorizontalPodAutoscalerCondition
-> V2beta2HorizontalPodAutoscalerCondition -> Bool
(V2beta2HorizontalPodAutoscalerCondition
 -> V2beta2HorizontalPodAutoscalerCondition -> Bool)
-> (V2beta2HorizontalPodAutoscalerCondition
    -> V2beta2HorizontalPodAutoscalerCondition -> Bool)
-> Eq V2beta2HorizontalPodAutoscalerCondition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2HorizontalPodAutoscalerCondition
-> V2beta2HorizontalPodAutoscalerCondition -> Bool
$c/= :: V2beta2HorizontalPodAutoscalerCondition
-> V2beta2HorizontalPodAutoscalerCondition -> Bool
== :: V2beta2HorizontalPodAutoscalerCondition
-> V2beta2HorizontalPodAutoscalerCondition -> Bool
$c== :: V2beta2HorizontalPodAutoscalerCondition
-> V2beta2HorizontalPodAutoscalerCondition -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2HorizontalPodAutoscalerCondition
instance A.FromJSON V2beta2HorizontalPodAutoscalerCondition where
  parseJSON :: Value -> Parser V2beta2HorizontalPodAutoscalerCondition
parseJSON = String
-> (Object -> Parser V2beta2HorizontalPodAutoscalerCondition)
-> Value
-> Parser V2beta2HorizontalPodAutoscalerCondition
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2HorizontalPodAutoscalerCondition" ((Object -> Parser V2beta2HorizontalPodAutoscalerCondition)
 -> Value -> Parser V2beta2HorizontalPodAutoscalerCondition)
-> (Object -> Parser V2beta2HorizontalPodAutoscalerCondition)
-> Value
-> Parser V2beta2HorizontalPodAutoscalerCondition
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V2beta2HorizontalPodAutoscalerCondition
V2beta2HorizontalPodAutoscalerCondition
      (Maybe DateTime
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Text
 -> V2beta2HorizontalPodAutoscalerCondition)
-> Parser (Maybe DateTime)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Text
      -> Text
      -> V2beta2HorizontalPodAutoscalerCondition)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastTransitionTime")
      Parser
  (Maybe Text
   -> Maybe Text
   -> Text
   -> Text
   -> V2beta2HorizontalPodAutoscalerCondition)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text -> Text -> V2beta2HorizontalPodAutoscalerCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"message")
      Parser
  (Maybe Text
   -> Text -> Text -> V2beta2HorizontalPodAutoscalerCondition)
-> Parser (Maybe Text)
-> Parser (Text -> Text -> V2beta2HorizontalPodAutoscalerCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"reason")
      Parser (Text -> Text -> V2beta2HorizontalPodAutoscalerCondition)
-> Parser Text
-> Parser (Text -> V2beta2HorizontalPodAutoscalerCondition)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"status")
      Parser (Text -> V2beta2HorizontalPodAutoscalerCondition)
-> Parser Text -> Parser V2beta2HorizontalPodAutoscalerCondition
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V2beta2HorizontalPodAutoscalerCondition
instance A.ToJSON V2beta2HorizontalPodAutoscalerCondition where
  toJSON :: V2beta2HorizontalPodAutoscalerCondition -> Value
toJSON V2beta2HorizontalPodAutoscalerCondition {Maybe Text
Maybe DateTime
Text
v2beta2HorizontalPodAutoscalerConditionType :: Text
v2beta2HorizontalPodAutoscalerConditionStatus :: Text
v2beta2HorizontalPodAutoscalerConditionReason :: Maybe Text
v2beta2HorizontalPodAutoscalerConditionMessage :: Maybe Text
v2beta2HorizontalPodAutoscalerConditionLastTransitionTime :: Maybe DateTime
v2beta2HorizontalPodAutoscalerConditionType :: V2beta2HorizontalPodAutoscalerCondition -> Text
v2beta2HorizontalPodAutoscalerConditionStatus :: V2beta2HorizontalPodAutoscalerCondition -> Text
v2beta2HorizontalPodAutoscalerConditionReason :: V2beta2HorizontalPodAutoscalerCondition -> Maybe Text
v2beta2HorizontalPodAutoscalerConditionMessage :: V2beta2HorizontalPodAutoscalerCondition -> Maybe Text
v2beta2HorizontalPodAutoscalerConditionLastTransitionTime :: V2beta2HorizontalPodAutoscalerCondition -> Maybe DateTime
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"lastTransitionTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v2beta2HorizontalPodAutoscalerConditionLastTransitionTime
      , Text
"message" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2beta2HorizontalPodAutoscalerConditionMessage
      , Text
"reason" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2beta2HorizontalPodAutoscalerConditionReason
      , Text
"status" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta2HorizontalPodAutoscalerConditionStatus
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta2HorizontalPodAutoscalerConditionType
      ]


-- | Construct a value of type 'V2beta2HorizontalPodAutoscalerCondition' (by applying it's required fields, if any)
mkV2beta2HorizontalPodAutoscalerCondition
  :: Text -- ^ 'v2beta2HorizontalPodAutoscalerConditionStatus': status is the status of the condition (True, False, Unknown)
  -> Text -- ^ 'v2beta2HorizontalPodAutoscalerConditionType': type describes the current condition
  -> V2beta2HorizontalPodAutoscalerCondition
mkV2beta2HorizontalPodAutoscalerCondition :: Text -> Text -> V2beta2HorizontalPodAutoscalerCondition
mkV2beta2HorizontalPodAutoscalerCondition Text
v2beta2HorizontalPodAutoscalerConditionStatus Text
v2beta2HorizontalPodAutoscalerConditionType =
  V2beta2HorizontalPodAutoscalerCondition :: Maybe DateTime
-> Maybe Text
-> Maybe Text
-> Text
-> Text
-> V2beta2HorizontalPodAutoscalerCondition
V2beta2HorizontalPodAutoscalerCondition
  { v2beta2HorizontalPodAutoscalerConditionLastTransitionTime :: Maybe DateTime
v2beta2HorizontalPodAutoscalerConditionLastTransitionTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v2beta2HorizontalPodAutoscalerConditionMessage :: Maybe Text
v2beta2HorizontalPodAutoscalerConditionMessage = Maybe Text
forall a. Maybe a
Nothing
  , v2beta2HorizontalPodAutoscalerConditionReason :: Maybe Text
v2beta2HorizontalPodAutoscalerConditionReason = Maybe Text
forall a. Maybe a
Nothing
  , Text
v2beta2HorizontalPodAutoscalerConditionStatus :: Text
v2beta2HorizontalPodAutoscalerConditionStatus :: Text
v2beta2HorizontalPodAutoscalerConditionStatus
  , Text
v2beta2HorizontalPodAutoscalerConditionType :: Text
v2beta2HorizontalPodAutoscalerConditionType :: Text
v2beta2HorizontalPodAutoscalerConditionType
  }

-- ** V2beta2HorizontalPodAutoscalerList
-- | V2beta2HorizontalPodAutoscalerList
-- HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.
data V2beta2HorizontalPodAutoscalerList = V2beta2HorizontalPodAutoscalerList
  { V2beta2HorizontalPodAutoscalerList -> Maybe Text
v2beta2HorizontalPodAutoscalerListApiVersion :: !(Maybe Text) -- ^ "apiVersion" - APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  , V2beta2HorizontalPodAutoscalerList
-> [V2beta2HorizontalPodAutoscaler]
v2beta2HorizontalPodAutoscalerListItems :: !([V2beta2HorizontalPodAutoscaler]) -- ^ /Required/ "items" - items is the list of horizontal pod autoscaler objects.
  , V2beta2HorizontalPodAutoscalerList -> Maybe Text
v2beta2HorizontalPodAutoscalerListKind :: !(Maybe Text) -- ^ "kind" - Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  , V2beta2HorizontalPodAutoscalerList -> Maybe V1ListMeta
v2beta2HorizontalPodAutoscalerListMetadata :: !(Maybe V1ListMeta) -- ^ "metadata"
  } deriving (Int -> V2beta2HorizontalPodAutoscalerList -> ShowS
[V2beta2HorizontalPodAutoscalerList] -> ShowS
V2beta2HorizontalPodAutoscalerList -> String
(Int -> V2beta2HorizontalPodAutoscalerList -> ShowS)
-> (V2beta2HorizontalPodAutoscalerList -> String)
-> ([V2beta2HorizontalPodAutoscalerList] -> ShowS)
-> Show V2beta2HorizontalPodAutoscalerList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2HorizontalPodAutoscalerList] -> ShowS
$cshowList :: [V2beta2HorizontalPodAutoscalerList] -> ShowS
show :: V2beta2HorizontalPodAutoscalerList -> String
$cshow :: V2beta2HorizontalPodAutoscalerList -> String
showsPrec :: Int -> V2beta2HorizontalPodAutoscalerList -> ShowS
$cshowsPrec :: Int -> V2beta2HorizontalPodAutoscalerList -> ShowS
P.Show, V2beta2HorizontalPodAutoscalerList
-> V2beta2HorizontalPodAutoscalerList -> Bool
(V2beta2HorizontalPodAutoscalerList
 -> V2beta2HorizontalPodAutoscalerList -> Bool)
-> (V2beta2HorizontalPodAutoscalerList
    -> V2beta2HorizontalPodAutoscalerList -> Bool)
-> Eq V2beta2HorizontalPodAutoscalerList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2HorizontalPodAutoscalerList
-> V2beta2HorizontalPodAutoscalerList -> Bool
$c/= :: V2beta2HorizontalPodAutoscalerList
-> V2beta2HorizontalPodAutoscalerList -> Bool
== :: V2beta2HorizontalPodAutoscalerList
-> V2beta2HorizontalPodAutoscalerList -> Bool
$c== :: V2beta2HorizontalPodAutoscalerList
-> V2beta2HorizontalPodAutoscalerList -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2HorizontalPodAutoscalerList
instance A.FromJSON V2beta2HorizontalPodAutoscalerList where
  parseJSON :: Value -> Parser V2beta2HorizontalPodAutoscalerList
parseJSON = String
-> (Object -> Parser V2beta2HorizontalPodAutoscalerList)
-> Value
-> Parser V2beta2HorizontalPodAutoscalerList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2HorizontalPodAutoscalerList" ((Object -> Parser V2beta2HorizontalPodAutoscalerList)
 -> Value -> Parser V2beta2HorizontalPodAutoscalerList)
-> (Object -> Parser V2beta2HorizontalPodAutoscalerList)
-> Value
-> Parser V2beta2HorizontalPodAutoscalerList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Text
-> [V2beta2HorizontalPodAutoscaler]
-> Maybe Text
-> Maybe V1ListMeta
-> V2beta2HorizontalPodAutoscalerList
V2beta2HorizontalPodAutoscalerList
      (Maybe Text
 -> [V2beta2HorizontalPodAutoscaler]
 -> Maybe Text
 -> Maybe V1ListMeta
 -> V2beta2HorizontalPodAutoscalerList)
-> Parser (Maybe Text)
-> Parser
     ([V2beta2HorizontalPodAutoscaler]
      -> Maybe Text
      -> Maybe V1ListMeta
      -> V2beta2HorizontalPodAutoscalerList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"apiVersion")
      Parser
  ([V2beta2HorizontalPodAutoscaler]
   -> Maybe Text
   -> Maybe V1ListMeta
   -> V2beta2HorizontalPodAutoscalerList)
-> Parser [V2beta2HorizontalPodAutoscaler]
-> Parser
     (Maybe Text
      -> Maybe V1ListMeta -> V2beta2HorizontalPodAutoscalerList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser [V2beta2HorizontalPodAutoscaler]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"items")
      Parser
  (Maybe Text
   -> Maybe V1ListMeta -> V2beta2HorizontalPodAutoscalerList)
-> Parser (Maybe Text)
-> Parser (Maybe V1ListMeta -> V2beta2HorizontalPodAutoscalerList)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"kind")
      Parser (Maybe V1ListMeta -> V2beta2HorizontalPodAutoscalerList)
-> Parser (Maybe V1ListMeta)
-> Parser V2beta2HorizontalPodAutoscalerList
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1ListMeta)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metadata")

-- | ToJSON V2beta2HorizontalPodAutoscalerList
instance A.ToJSON V2beta2HorizontalPodAutoscalerList where
  toJSON :: V2beta2HorizontalPodAutoscalerList -> Value
toJSON V2beta2HorizontalPodAutoscalerList {[V2beta2HorizontalPodAutoscaler]
Maybe Text
Maybe V1ListMeta
v2beta2HorizontalPodAutoscalerListMetadata :: Maybe V1ListMeta
v2beta2HorizontalPodAutoscalerListKind :: Maybe Text
v2beta2HorizontalPodAutoscalerListItems :: [V2beta2HorizontalPodAutoscaler]
v2beta2HorizontalPodAutoscalerListApiVersion :: Maybe Text
v2beta2HorizontalPodAutoscalerListMetadata :: V2beta2HorizontalPodAutoscalerList -> Maybe V1ListMeta
v2beta2HorizontalPodAutoscalerListKind :: V2beta2HorizontalPodAutoscalerList -> Maybe Text
v2beta2HorizontalPodAutoscalerListItems :: V2beta2HorizontalPodAutoscalerList
-> [V2beta2HorizontalPodAutoscaler]
v2beta2HorizontalPodAutoscalerListApiVersion :: V2beta2HorizontalPodAutoscalerList -> Maybe Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"apiVersion" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2beta2HorizontalPodAutoscalerListApiVersion
      , Text
"items" Text -> [V2beta2HorizontalPodAutoscaler] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V2beta2HorizontalPodAutoscaler]
v2beta2HorizontalPodAutoscalerListItems
      , Text
"kind" Text -> Maybe Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Text
v2beta2HorizontalPodAutoscalerListKind
      , Text
"metadata" Text -> Maybe V1ListMeta -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1ListMeta
v2beta2HorizontalPodAutoscalerListMetadata
      ]


-- | Construct a value of type 'V2beta2HorizontalPodAutoscalerList' (by applying it's required fields, if any)
mkV2beta2HorizontalPodAutoscalerList
  :: [V2beta2HorizontalPodAutoscaler] -- ^ 'v2beta2HorizontalPodAutoscalerListItems': items is the list of horizontal pod autoscaler objects.
  -> V2beta2HorizontalPodAutoscalerList
mkV2beta2HorizontalPodAutoscalerList :: [V2beta2HorizontalPodAutoscaler]
-> V2beta2HorizontalPodAutoscalerList
mkV2beta2HorizontalPodAutoscalerList [V2beta2HorizontalPodAutoscaler]
v2beta2HorizontalPodAutoscalerListItems =
  V2beta2HorizontalPodAutoscalerList :: Maybe Text
-> [V2beta2HorizontalPodAutoscaler]
-> Maybe Text
-> Maybe V1ListMeta
-> V2beta2HorizontalPodAutoscalerList
V2beta2HorizontalPodAutoscalerList
  { v2beta2HorizontalPodAutoscalerListApiVersion :: Maybe Text
v2beta2HorizontalPodAutoscalerListApiVersion = Maybe Text
forall a. Maybe a
Nothing
  , [V2beta2HorizontalPodAutoscaler]
v2beta2HorizontalPodAutoscalerListItems :: [V2beta2HorizontalPodAutoscaler]
v2beta2HorizontalPodAutoscalerListItems :: [V2beta2HorizontalPodAutoscaler]
v2beta2HorizontalPodAutoscalerListItems
  , v2beta2HorizontalPodAutoscalerListKind :: Maybe Text
v2beta2HorizontalPodAutoscalerListKind = Maybe Text
forall a. Maybe a
Nothing
  , v2beta2HorizontalPodAutoscalerListMetadata :: Maybe V1ListMeta
v2beta2HorizontalPodAutoscalerListMetadata = Maybe V1ListMeta
forall a. Maybe a
Nothing
  }

-- ** V2beta2HorizontalPodAutoscalerSpec
-- | V2beta2HorizontalPodAutoscalerSpec
-- HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.
data V2beta2HorizontalPodAutoscalerSpec = V2beta2HorizontalPodAutoscalerSpec
  { V2beta2HorizontalPodAutoscalerSpec -> Int
v2beta2HorizontalPodAutoscalerSpecMaxReplicas :: !(Int) -- ^ /Required/ "maxReplicas" - maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.
  , V2beta2HorizontalPodAutoscalerSpec -> Maybe [V2beta2MetricSpec]
v2beta2HorizontalPodAutoscalerSpecMetrics :: !(Maybe [V2beta2MetricSpec]) -- ^ "metrics" - metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used).  The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods.  Ergo, metrics used must decrease as the pod count is increased, and vice-versa.  See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.
  , V2beta2HorizontalPodAutoscalerSpec -> Maybe Int
v2beta2HorizontalPodAutoscalerSpecMinReplicas :: !(Maybe Int) -- ^ "minReplicas" - minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.  Scaling is active as long as at least one metric value is available.
  , V2beta2HorizontalPodAutoscalerSpec
-> V2beta2CrossVersionObjectReference
v2beta2HorizontalPodAutoscalerSpecScaleTargetRef :: !(V2beta2CrossVersionObjectReference) -- ^ /Required/ "scaleTargetRef"
  } deriving (Int -> V2beta2HorizontalPodAutoscalerSpec -> ShowS
[V2beta2HorizontalPodAutoscalerSpec] -> ShowS
V2beta2HorizontalPodAutoscalerSpec -> String
(Int -> V2beta2HorizontalPodAutoscalerSpec -> ShowS)
-> (V2beta2HorizontalPodAutoscalerSpec -> String)
-> ([V2beta2HorizontalPodAutoscalerSpec] -> ShowS)
-> Show V2beta2HorizontalPodAutoscalerSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2HorizontalPodAutoscalerSpec] -> ShowS
$cshowList :: [V2beta2HorizontalPodAutoscalerSpec] -> ShowS
show :: V2beta2HorizontalPodAutoscalerSpec -> String
$cshow :: V2beta2HorizontalPodAutoscalerSpec -> String
showsPrec :: Int -> V2beta2HorizontalPodAutoscalerSpec -> ShowS
$cshowsPrec :: Int -> V2beta2HorizontalPodAutoscalerSpec -> ShowS
P.Show, V2beta2HorizontalPodAutoscalerSpec
-> V2beta2HorizontalPodAutoscalerSpec -> Bool
(V2beta2HorizontalPodAutoscalerSpec
 -> V2beta2HorizontalPodAutoscalerSpec -> Bool)
-> (V2beta2HorizontalPodAutoscalerSpec
    -> V2beta2HorizontalPodAutoscalerSpec -> Bool)
-> Eq V2beta2HorizontalPodAutoscalerSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2HorizontalPodAutoscalerSpec
-> V2beta2HorizontalPodAutoscalerSpec -> Bool
$c/= :: V2beta2HorizontalPodAutoscalerSpec
-> V2beta2HorizontalPodAutoscalerSpec -> Bool
== :: V2beta2HorizontalPodAutoscalerSpec
-> V2beta2HorizontalPodAutoscalerSpec -> Bool
$c== :: V2beta2HorizontalPodAutoscalerSpec
-> V2beta2HorizontalPodAutoscalerSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2HorizontalPodAutoscalerSpec
instance A.FromJSON V2beta2HorizontalPodAutoscalerSpec where
  parseJSON :: Value -> Parser V2beta2HorizontalPodAutoscalerSpec
parseJSON = String
-> (Object -> Parser V2beta2HorizontalPodAutoscalerSpec)
-> Value
-> Parser V2beta2HorizontalPodAutoscalerSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2HorizontalPodAutoscalerSpec" ((Object -> Parser V2beta2HorizontalPodAutoscalerSpec)
 -> Value -> Parser V2beta2HorizontalPodAutoscalerSpec)
-> (Object -> Parser V2beta2HorizontalPodAutoscalerSpec)
-> Value
-> Parser V2beta2HorizontalPodAutoscalerSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Int
-> Maybe [V2beta2MetricSpec]
-> Maybe Int
-> V2beta2CrossVersionObjectReference
-> V2beta2HorizontalPodAutoscalerSpec
V2beta2HorizontalPodAutoscalerSpec
      (Int
 -> Maybe [V2beta2MetricSpec]
 -> Maybe Int
 -> V2beta2CrossVersionObjectReference
 -> V2beta2HorizontalPodAutoscalerSpec)
-> Parser Int
-> Parser
     (Maybe [V2beta2MetricSpec]
      -> Maybe Int
      -> V2beta2CrossVersionObjectReference
      -> V2beta2HorizontalPodAutoscalerSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"maxReplicas")
      Parser
  (Maybe [V2beta2MetricSpec]
   -> Maybe Int
   -> V2beta2CrossVersionObjectReference
   -> V2beta2HorizontalPodAutoscalerSpec)
-> Parser (Maybe [V2beta2MetricSpec])
-> Parser
     (Maybe Int
      -> V2beta2CrossVersionObjectReference
      -> V2beta2HorizontalPodAutoscalerSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V2beta2MetricSpec])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"metrics")
      Parser
  (Maybe Int
   -> V2beta2CrossVersionObjectReference
   -> V2beta2HorizontalPodAutoscalerSpec)
-> Parser (Maybe Int)
-> Parser
     (V2beta2CrossVersionObjectReference
      -> V2beta2HorizontalPodAutoscalerSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"minReplicas")
      Parser
  (V2beta2CrossVersionObjectReference
   -> V2beta2HorizontalPodAutoscalerSpec)
-> Parser V2beta2CrossVersionObjectReference
-> Parser V2beta2HorizontalPodAutoscalerSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V2beta2CrossVersionObjectReference
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"scaleTargetRef")

-- | ToJSON V2beta2HorizontalPodAutoscalerSpec
instance A.ToJSON V2beta2HorizontalPodAutoscalerSpec where
  toJSON :: V2beta2HorizontalPodAutoscalerSpec -> Value
toJSON V2beta2HorizontalPodAutoscalerSpec {Int
Maybe Int
Maybe [V2beta2MetricSpec]
V2beta2CrossVersionObjectReference
v2beta2HorizontalPodAutoscalerSpecScaleTargetRef :: V2beta2CrossVersionObjectReference
v2beta2HorizontalPodAutoscalerSpecMinReplicas :: Maybe Int
v2beta2HorizontalPodAutoscalerSpecMetrics :: Maybe [V2beta2MetricSpec]
v2beta2HorizontalPodAutoscalerSpecMaxReplicas :: Int
v2beta2HorizontalPodAutoscalerSpecScaleTargetRef :: V2beta2HorizontalPodAutoscalerSpec
-> V2beta2CrossVersionObjectReference
v2beta2HorizontalPodAutoscalerSpecMinReplicas :: V2beta2HorizontalPodAutoscalerSpec -> Maybe Int
v2beta2HorizontalPodAutoscalerSpecMetrics :: V2beta2HorizontalPodAutoscalerSpec -> Maybe [V2beta2MetricSpec]
v2beta2HorizontalPodAutoscalerSpecMaxReplicas :: V2beta2HorizontalPodAutoscalerSpec -> Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"maxReplicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v2beta2HorizontalPodAutoscalerSpecMaxReplicas
      , Text
"metrics" Text -> Maybe [V2beta2MetricSpec] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V2beta2MetricSpec]
v2beta2HorizontalPodAutoscalerSpecMetrics
      , Text
"minReplicas" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v2beta2HorizontalPodAutoscalerSpecMinReplicas
      , Text
"scaleTargetRef" Text -> V2beta2CrossVersionObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2CrossVersionObjectReference
v2beta2HorizontalPodAutoscalerSpecScaleTargetRef
      ]


-- | Construct a value of type 'V2beta2HorizontalPodAutoscalerSpec' (by applying it's required fields, if any)
mkV2beta2HorizontalPodAutoscalerSpec
  :: Int -- ^ 'v2beta2HorizontalPodAutoscalerSpecMaxReplicas': maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.
  -> V2beta2CrossVersionObjectReference -- ^ 'v2beta2HorizontalPodAutoscalerSpecScaleTargetRef' 
  -> V2beta2HorizontalPodAutoscalerSpec
mkV2beta2HorizontalPodAutoscalerSpec :: Int
-> V2beta2CrossVersionObjectReference
-> V2beta2HorizontalPodAutoscalerSpec
mkV2beta2HorizontalPodAutoscalerSpec Int
v2beta2HorizontalPodAutoscalerSpecMaxReplicas V2beta2CrossVersionObjectReference
v2beta2HorizontalPodAutoscalerSpecScaleTargetRef =
  V2beta2HorizontalPodAutoscalerSpec :: Int
-> Maybe [V2beta2MetricSpec]
-> Maybe Int
-> V2beta2CrossVersionObjectReference
-> V2beta2HorizontalPodAutoscalerSpec
V2beta2HorizontalPodAutoscalerSpec
  { Int
v2beta2HorizontalPodAutoscalerSpecMaxReplicas :: Int
v2beta2HorizontalPodAutoscalerSpecMaxReplicas :: Int
v2beta2HorizontalPodAutoscalerSpecMaxReplicas
  , v2beta2HorizontalPodAutoscalerSpecMetrics :: Maybe [V2beta2MetricSpec]
v2beta2HorizontalPodAutoscalerSpecMetrics = Maybe [V2beta2MetricSpec]
forall a. Maybe a
Nothing
  , v2beta2HorizontalPodAutoscalerSpecMinReplicas :: Maybe Int
v2beta2HorizontalPodAutoscalerSpecMinReplicas = Maybe Int
forall a. Maybe a
Nothing
  , V2beta2CrossVersionObjectReference
v2beta2HorizontalPodAutoscalerSpecScaleTargetRef :: V2beta2CrossVersionObjectReference
v2beta2HorizontalPodAutoscalerSpecScaleTargetRef :: V2beta2CrossVersionObjectReference
v2beta2HorizontalPodAutoscalerSpecScaleTargetRef
  }

-- ** V2beta2HorizontalPodAutoscalerStatus
-- | V2beta2HorizontalPodAutoscalerStatus
-- HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.
data V2beta2HorizontalPodAutoscalerStatus = V2beta2HorizontalPodAutoscalerStatus
  { V2beta2HorizontalPodAutoscalerStatus
-> [V2beta2HorizontalPodAutoscalerCondition]
v2beta2HorizontalPodAutoscalerStatusConditions :: !([V2beta2HorizontalPodAutoscalerCondition]) -- ^ /Required/ "conditions" - conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.
  , V2beta2HorizontalPodAutoscalerStatus -> Maybe [V2beta2MetricStatus]
v2beta2HorizontalPodAutoscalerStatusCurrentMetrics :: !(Maybe [V2beta2MetricStatus]) -- ^ "currentMetrics" - currentMetrics is the last read state of the metrics used by this autoscaler.
  , V2beta2HorizontalPodAutoscalerStatus -> Int
v2beta2HorizontalPodAutoscalerStatusCurrentReplicas :: !(Int) -- ^ /Required/ "currentReplicas" - currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.
  , V2beta2HorizontalPodAutoscalerStatus -> Int
v2beta2HorizontalPodAutoscalerStatusDesiredReplicas :: !(Int) -- ^ /Required/ "desiredReplicas" - desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.
  , V2beta2HorizontalPodAutoscalerStatus -> Maybe DateTime
v2beta2HorizontalPodAutoscalerStatusLastScaleTime :: !(Maybe DateTime) -- ^ "lastScaleTime" - lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed.
  , V2beta2HorizontalPodAutoscalerStatus -> Maybe Integer
v2beta2HorizontalPodAutoscalerStatusObservedGeneration :: !(Maybe Integer) -- ^ "observedGeneration" - observedGeneration is the most recent generation observed by this autoscaler.
  } deriving (Int -> V2beta2HorizontalPodAutoscalerStatus -> ShowS
[V2beta2HorizontalPodAutoscalerStatus] -> ShowS
V2beta2HorizontalPodAutoscalerStatus -> String
(Int -> V2beta2HorizontalPodAutoscalerStatus -> ShowS)
-> (V2beta2HorizontalPodAutoscalerStatus -> String)
-> ([V2beta2HorizontalPodAutoscalerStatus] -> ShowS)
-> Show V2beta2HorizontalPodAutoscalerStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2HorizontalPodAutoscalerStatus] -> ShowS
$cshowList :: [V2beta2HorizontalPodAutoscalerStatus] -> ShowS
show :: V2beta2HorizontalPodAutoscalerStatus -> String
$cshow :: V2beta2HorizontalPodAutoscalerStatus -> String
showsPrec :: Int -> V2beta2HorizontalPodAutoscalerStatus -> ShowS
$cshowsPrec :: Int -> V2beta2HorizontalPodAutoscalerStatus -> ShowS
P.Show, V2beta2HorizontalPodAutoscalerStatus
-> V2beta2HorizontalPodAutoscalerStatus -> Bool
(V2beta2HorizontalPodAutoscalerStatus
 -> V2beta2HorizontalPodAutoscalerStatus -> Bool)
-> (V2beta2HorizontalPodAutoscalerStatus
    -> V2beta2HorizontalPodAutoscalerStatus -> Bool)
-> Eq V2beta2HorizontalPodAutoscalerStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2HorizontalPodAutoscalerStatus
-> V2beta2HorizontalPodAutoscalerStatus -> Bool
$c/= :: V2beta2HorizontalPodAutoscalerStatus
-> V2beta2HorizontalPodAutoscalerStatus -> Bool
== :: V2beta2HorizontalPodAutoscalerStatus
-> V2beta2HorizontalPodAutoscalerStatus -> Bool
$c== :: V2beta2HorizontalPodAutoscalerStatus
-> V2beta2HorizontalPodAutoscalerStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2HorizontalPodAutoscalerStatus
instance A.FromJSON V2beta2HorizontalPodAutoscalerStatus where
  parseJSON :: Value -> Parser V2beta2HorizontalPodAutoscalerStatus
parseJSON = String
-> (Object -> Parser V2beta2HorizontalPodAutoscalerStatus)
-> Value
-> Parser V2beta2HorizontalPodAutoscalerStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2HorizontalPodAutoscalerStatus" ((Object -> Parser V2beta2HorizontalPodAutoscalerStatus)
 -> Value -> Parser V2beta2HorizontalPodAutoscalerStatus)
-> (Object -> Parser V2beta2HorizontalPodAutoscalerStatus)
-> Value
-> Parser V2beta2HorizontalPodAutoscalerStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    [V2beta2HorizontalPodAutoscalerCondition]
-> Maybe [V2beta2MetricStatus]
-> Int
-> Int
-> Maybe DateTime
-> Maybe Integer
-> V2beta2HorizontalPodAutoscalerStatus
V2beta2HorizontalPodAutoscalerStatus
      ([V2beta2HorizontalPodAutoscalerCondition]
 -> Maybe [V2beta2MetricStatus]
 -> Int
 -> Int
 -> Maybe DateTime
 -> Maybe Integer
 -> V2beta2HorizontalPodAutoscalerStatus)
-> Parser [V2beta2HorizontalPodAutoscalerCondition]
-> Parser
     (Maybe [V2beta2MetricStatus]
      -> Int
      -> Int
      -> Maybe DateTime
      -> Maybe Integer
      -> V2beta2HorizontalPodAutoscalerStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser [V2beta2HorizontalPodAutoscalerCondition]
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"conditions")
      Parser
  (Maybe [V2beta2MetricStatus]
   -> Int
   -> Int
   -> Maybe DateTime
   -> Maybe Integer
   -> V2beta2HorizontalPodAutoscalerStatus)
-> Parser (Maybe [V2beta2MetricStatus])
-> Parser
     (Int
      -> Int
      -> Maybe DateTime
      -> Maybe Integer
      -> V2beta2HorizontalPodAutoscalerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe [V2beta2MetricStatus])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"currentMetrics")
      Parser
  (Int
   -> Int
   -> Maybe DateTime
   -> Maybe Integer
   -> V2beta2HorizontalPodAutoscalerStatus)
-> Parser Int
-> Parser
     (Int
      -> Maybe DateTime
      -> Maybe Integer
      -> V2beta2HorizontalPodAutoscalerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"currentReplicas")
      Parser
  (Int
   -> Maybe DateTime
   -> Maybe Integer
   -> V2beta2HorizontalPodAutoscalerStatus)
-> Parser Int
-> Parser
     (Maybe DateTime
      -> Maybe Integer -> V2beta2HorizontalPodAutoscalerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"desiredReplicas")
      Parser
  (Maybe DateTime
   -> Maybe Integer -> V2beta2HorizontalPodAutoscalerStatus)
-> Parser (Maybe DateTime)
-> Parser (Maybe Integer -> V2beta2HorizontalPodAutoscalerStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe DateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"lastScaleTime")
      Parser (Maybe Integer -> V2beta2HorizontalPodAutoscalerStatus)
-> Parser (Maybe Integer)
-> Parser V2beta2HorizontalPodAutoscalerStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"observedGeneration")

-- | ToJSON V2beta2HorizontalPodAutoscalerStatus
instance A.ToJSON V2beta2HorizontalPodAutoscalerStatus where
  toJSON :: V2beta2HorizontalPodAutoscalerStatus -> Value
toJSON V2beta2HorizontalPodAutoscalerStatus {Int
[V2beta2HorizontalPodAutoscalerCondition]
Maybe Integer
Maybe [V2beta2MetricStatus]
Maybe DateTime
v2beta2HorizontalPodAutoscalerStatusObservedGeneration :: Maybe Integer
v2beta2HorizontalPodAutoscalerStatusLastScaleTime :: Maybe DateTime
v2beta2HorizontalPodAutoscalerStatusDesiredReplicas :: Int
v2beta2HorizontalPodAutoscalerStatusCurrentReplicas :: Int
v2beta2HorizontalPodAutoscalerStatusCurrentMetrics :: Maybe [V2beta2MetricStatus]
v2beta2HorizontalPodAutoscalerStatusConditions :: [V2beta2HorizontalPodAutoscalerCondition]
v2beta2HorizontalPodAutoscalerStatusObservedGeneration :: V2beta2HorizontalPodAutoscalerStatus -> Maybe Integer
v2beta2HorizontalPodAutoscalerStatusLastScaleTime :: V2beta2HorizontalPodAutoscalerStatus -> Maybe DateTime
v2beta2HorizontalPodAutoscalerStatusDesiredReplicas :: V2beta2HorizontalPodAutoscalerStatus -> Int
v2beta2HorizontalPodAutoscalerStatusCurrentReplicas :: V2beta2HorizontalPodAutoscalerStatus -> Int
v2beta2HorizontalPodAutoscalerStatusCurrentMetrics :: V2beta2HorizontalPodAutoscalerStatus -> Maybe [V2beta2MetricStatus]
v2beta2HorizontalPodAutoscalerStatusConditions :: V2beta2HorizontalPodAutoscalerStatus
-> [V2beta2HorizontalPodAutoscalerCondition]
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"conditions" Text -> [V2beta2HorizontalPodAutoscalerCondition] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= [V2beta2HorizontalPodAutoscalerCondition]
v2beta2HorizontalPodAutoscalerStatusConditions
      , Text
"currentMetrics" Text -> Maybe [V2beta2MetricStatus] -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe [V2beta2MetricStatus]
v2beta2HorizontalPodAutoscalerStatusCurrentMetrics
      , Text
"currentReplicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v2beta2HorizontalPodAutoscalerStatusCurrentReplicas
      , Text
"desiredReplicas" Text -> Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Int
v2beta2HorizontalPodAutoscalerStatusDesiredReplicas
      , Text
"lastScaleTime" Text -> Maybe DateTime -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe DateTime
v2beta2HorizontalPodAutoscalerStatusLastScaleTime
      , Text
"observedGeneration" Text -> Maybe Integer -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Integer
v2beta2HorizontalPodAutoscalerStatusObservedGeneration
      ]


-- | Construct a value of type 'V2beta2HorizontalPodAutoscalerStatus' (by applying it's required fields, if any)
mkV2beta2HorizontalPodAutoscalerStatus
  :: [V2beta2HorizontalPodAutoscalerCondition] -- ^ 'v2beta2HorizontalPodAutoscalerStatusConditions': conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.
  -> Int -- ^ 'v2beta2HorizontalPodAutoscalerStatusCurrentReplicas': currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.
  -> Int -- ^ 'v2beta2HorizontalPodAutoscalerStatusDesiredReplicas': desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.
  -> V2beta2HorizontalPodAutoscalerStatus
mkV2beta2HorizontalPodAutoscalerStatus :: [V2beta2HorizontalPodAutoscalerCondition]
-> Int -> Int -> V2beta2HorizontalPodAutoscalerStatus
mkV2beta2HorizontalPodAutoscalerStatus [V2beta2HorizontalPodAutoscalerCondition]
v2beta2HorizontalPodAutoscalerStatusConditions Int
v2beta2HorizontalPodAutoscalerStatusCurrentReplicas Int
v2beta2HorizontalPodAutoscalerStatusDesiredReplicas =
  V2beta2HorizontalPodAutoscalerStatus :: [V2beta2HorizontalPodAutoscalerCondition]
-> Maybe [V2beta2MetricStatus]
-> Int
-> Int
-> Maybe DateTime
-> Maybe Integer
-> V2beta2HorizontalPodAutoscalerStatus
V2beta2HorizontalPodAutoscalerStatus
  { [V2beta2HorizontalPodAutoscalerCondition]
v2beta2HorizontalPodAutoscalerStatusConditions :: [V2beta2HorizontalPodAutoscalerCondition]
v2beta2HorizontalPodAutoscalerStatusConditions :: [V2beta2HorizontalPodAutoscalerCondition]
v2beta2HorizontalPodAutoscalerStatusConditions
  , v2beta2HorizontalPodAutoscalerStatusCurrentMetrics :: Maybe [V2beta2MetricStatus]
v2beta2HorizontalPodAutoscalerStatusCurrentMetrics = Maybe [V2beta2MetricStatus]
forall a. Maybe a
Nothing
  , Int
v2beta2HorizontalPodAutoscalerStatusCurrentReplicas :: Int
v2beta2HorizontalPodAutoscalerStatusCurrentReplicas :: Int
v2beta2HorizontalPodAutoscalerStatusCurrentReplicas
  , Int
v2beta2HorizontalPodAutoscalerStatusDesiredReplicas :: Int
v2beta2HorizontalPodAutoscalerStatusDesiredReplicas :: Int
v2beta2HorizontalPodAutoscalerStatusDesiredReplicas
  , v2beta2HorizontalPodAutoscalerStatusLastScaleTime :: Maybe DateTime
v2beta2HorizontalPodAutoscalerStatusLastScaleTime = Maybe DateTime
forall a. Maybe a
Nothing
  , v2beta2HorizontalPodAutoscalerStatusObservedGeneration :: Maybe Integer
v2beta2HorizontalPodAutoscalerStatusObservedGeneration = Maybe Integer
forall a. Maybe a
Nothing
  }

-- ** V2beta2MetricIdentifier
-- | V2beta2MetricIdentifier
-- MetricIdentifier defines the name and optionally selector for a metric
data V2beta2MetricIdentifier = V2beta2MetricIdentifier
  { V2beta2MetricIdentifier -> Text
v2beta2MetricIdentifierName :: !(Text) -- ^ /Required/ "name" - name is the name of the given metric
  , V2beta2MetricIdentifier -> Maybe V1LabelSelector
v2beta2MetricIdentifierSelector :: !(Maybe V1LabelSelector) -- ^ "selector"
  } deriving (Int -> V2beta2MetricIdentifier -> ShowS
[V2beta2MetricIdentifier] -> ShowS
V2beta2MetricIdentifier -> String
(Int -> V2beta2MetricIdentifier -> ShowS)
-> (V2beta2MetricIdentifier -> String)
-> ([V2beta2MetricIdentifier] -> ShowS)
-> Show V2beta2MetricIdentifier
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2MetricIdentifier] -> ShowS
$cshowList :: [V2beta2MetricIdentifier] -> ShowS
show :: V2beta2MetricIdentifier -> String
$cshow :: V2beta2MetricIdentifier -> String
showsPrec :: Int -> V2beta2MetricIdentifier -> ShowS
$cshowsPrec :: Int -> V2beta2MetricIdentifier -> ShowS
P.Show, V2beta2MetricIdentifier -> V2beta2MetricIdentifier -> Bool
(V2beta2MetricIdentifier -> V2beta2MetricIdentifier -> Bool)
-> (V2beta2MetricIdentifier -> V2beta2MetricIdentifier -> Bool)
-> Eq V2beta2MetricIdentifier
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2MetricIdentifier -> V2beta2MetricIdentifier -> Bool
$c/= :: V2beta2MetricIdentifier -> V2beta2MetricIdentifier -> Bool
== :: V2beta2MetricIdentifier -> V2beta2MetricIdentifier -> Bool
$c== :: V2beta2MetricIdentifier -> V2beta2MetricIdentifier -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2MetricIdentifier
instance A.FromJSON V2beta2MetricIdentifier where
  parseJSON :: Value -> Parser V2beta2MetricIdentifier
parseJSON = String
-> (Object -> Parser V2beta2MetricIdentifier)
-> Value
-> Parser V2beta2MetricIdentifier
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2MetricIdentifier" ((Object -> Parser V2beta2MetricIdentifier)
 -> Value -> Parser V2beta2MetricIdentifier)
-> (Object -> Parser V2beta2MetricIdentifier)
-> Value
-> Parser V2beta2MetricIdentifier
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> Maybe V1LabelSelector -> V2beta2MetricIdentifier
V2beta2MetricIdentifier
      (Text -> Maybe V1LabelSelector -> V2beta2MetricIdentifier)
-> Parser Text
-> Parser (Maybe V1LabelSelector -> V2beta2MetricIdentifier)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser (Maybe V1LabelSelector -> V2beta2MetricIdentifier)
-> Parser (Maybe V1LabelSelector) -> Parser V2beta2MetricIdentifier
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V1LabelSelector)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"selector")

-- | ToJSON V2beta2MetricIdentifier
instance A.ToJSON V2beta2MetricIdentifier where
  toJSON :: V2beta2MetricIdentifier -> Value
toJSON V2beta2MetricIdentifier {Maybe V1LabelSelector
Text
v2beta2MetricIdentifierSelector :: Maybe V1LabelSelector
v2beta2MetricIdentifierName :: Text
v2beta2MetricIdentifierSelector :: V2beta2MetricIdentifier -> Maybe V1LabelSelector
v2beta2MetricIdentifierName :: V2beta2MetricIdentifier -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta2MetricIdentifierName
      , Text
"selector" Text -> Maybe V1LabelSelector -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V1LabelSelector
v2beta2MetricIdentifierSelector
      ]


-- | Construct a value of type 'V2beta2MetricIdentifier' (by applying it's required fields, if any)
mkV2beta2MetricIdentifier
  :: Text -- ^ 'v2beta2MetricIdentifierName': name is the name of the given metric
  -> V2beta2MetricIdentifier
mkV2beta2MetricIdentifier :: Text -> V2beta2MetricIdentifier
mkV2beta2MetricIdentifier Text
v2beta2MetricIdentifierName =
  V2beta2MetricIdentifier :: Text -> Maybe V1LabelSelector -> V2beta2MetricIdentifier
V2beta2MetricIdentifier
  { Text
v2beta2MetricIdentifierName :: Text
v2beta2MetricIdentifierName :: Text
v2beta2MetricIdentifierName
  , v2beta2MetricIdentifierSelector :: Maybe V1LabelSelector
v2beta2MetricIdentifierSelector = Maybe V1LabelSelector
forall a. Maybe a
Nothing
  }

-- ** V2beta2MetricSpec
-- | V2beta2MetricSpec
-- MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).
data V2beta2MetricSpec = V2beta2MetricSpec
  { V2beta2MetricSpec -> Maybe V2beta2ExternalMetricSource
v2beta2MetricSpecExternal :: !(Maybe V2beta2ExternalMetricSource) -- ^ "external"
  , V2beta2MetricSpec -> Maybe V2beta2ObjectMetricSource
v2beta2MetricSpecObject :: !(Maybe V2beta2ObjectMetricSource) -- ^ "object"
  , V2beta2MetricSpec -> Maybe V2beta2PodsMetricSource
v2beta2MetricSpecPods :: !(Maybe V2beta2PodsMetricSource) -- ^ "pods"
  , V2beta2MetricSpec -> Maybe V2beta2ResourceMetricSource
v2beta2MetricSpecResource :: !(Maybe V2beta2ResourceMetricSource) -- ^ "resource"
  , V2beta2MetricSpec -> Text
v2beta2MetricSpecType :: !(Text) -- ^ /Required/ "type" - type is the type of metric source.  It should be one of \&quot;Object\&quot;, \&quot;Pods\&quot; or \&quot;Resource\&quot;, each mapping to a matching field in the object.
  } deriving (Int -> V2beta2MetricSpec -> ShowS
[V2beta2MetricSpec] -> ShowS
V2beta2MetricSpec -> String
(Int -> V2beta2MetricSpec -> ShowS)
-> (V2beta2MetricSpec -> String)
-> ([V2beta2MetricSpec] -> ShowS)
-> Show V2beta2MetricSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2MetricSpec] -> ShowS
$cshowList :: [V2beta2MetricSpec] -> ShowS
show :: V2beta2MetricSpec -> String
$cshow :: V2beta2MetricSpec -> String
showsPrec :: Int -> V2beta2MetricSpec -> ShowS
$cshowsPrec :: Int -> V2beta2MetricSpec -> ShowS
P.Show, V2beta2MetricSpec -> V2beta2MetricSpec -> Bool
(V2beta2MetricSpec -> V2beta2MetricSpec -> Bool)
-> (V2beta2MetricSpec -> V2beta2MetricSpec -> Bool)
-> Eq V2beta2MetricSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2MetricSpec -> V2beta2MetricSpec -> Bool
$c/= :: V2beta2MetricSpec -> V2beta2MetricSpec -> Bool
== :: V2beta2MetricSpec -> V2beta2MetricSpec -> Bool
$c== :: V2beta2MetricSpec -> V2beta2MetricSpec -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2MetricSpec
instance A.FromJSON V2beta2MetricSpec where
  parseJSON :: Value -> Parser V2beta2MetricSpec
parseJSON = String
-> (Object -> Parser V2beta2MetricSpec)
-> Value
-> Parser V2beta2MetricSpec
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2MetricSpec" ((Object -> Parser V2beta2MetricSpec)
 -> Value -> Parser V2beta2MetricSpec)
-> (Object -> Parser V2beta2MetricSpec)
-> Value
-> Parser V2beta2MetricSpec
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V2beta2ExternalMetricSource
-> Maybe V2beta2ObjectMetricSource
-> Maybe V2beta2PodsMetricSource
-> Maybe V2beta2ResourceMetricSource
-> Text
-> V2beta2MetricSpec
V2beta2MetricSpec
      (Maybe V2beta2ExternalMetricSource
 -> Maybe V2beta2ObjectMetricSource
 -> Maybe V2beta2PodsMetricSource
 -> Maybe V2beta2ResourceMetricSource
 -> Text
 -> V2beta2MetricSpec)
-> Parser (Maybe V2beta2ExternalMetricSource)
-> Parser
     (Maybe V2beta2ObjectMetricSource
      -> Maybe V2beta2PodsMetricSource
      -> Maybe V2beta2ResourceMetricSource
      -> Text
      -> V2beta2MetricSpec)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V2beta2ExternalMetricSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"external")
      Parser
  (Maybe V2beta2ObjectMetricSource
   -> Maybe V2beta2PodsMetricSource
   -> Maybe V2beta2ResourceMetricSource
   -> Text
   -> V2beta2MetricSpec)
-> Parser (Maybe V2beta2ObjectMetricSource)
-> Parser
     (Maybe V2beta2PodsMetricSource
      -> Maybe V2beta2ResourceMetricSource -> Text -> V2beta2MetricSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V2beta2ObjectMetricSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"object")
      Parser
  (Maybe V2beta2PodsMetricSource
   -> Maybe V2beta2ResourceMetricSource -> Text -> V2beta2MetricSpec)
-> Parser (Maybe V2beta2PodsMetricSource)
-> Parser
     (Maybe V2beta2ResourceMetricSource -> Text -> V2beta2MetricSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V2beta2PodsMetricSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"pods")
      Parser
  (Maybe V2beta2ResourceMetricSource -> Text -> V2beta2MetricSpec)
-> Parser (Maybe V2beta2ResourceMetricSource)
-> Parser (Text -> V2beta2MetricSpec)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V2beta2ResourceMetricSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resource")
      Parser (Text -> V2beta2MetricSpec)
-> Parser Text -> Parser V2beta2MetricSpec
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V2beta2MetricSpec
instance A.ToJSON V2beta2MetricSpec where
  toJSON :: V2beta2MetricSpec -> Value
toJSON V2beta2MetricSpec {Maybe V2beta2ResourceMetricSource
Maybe V2beta2PodsMetricSource
Maybe V2beta2ObjectMetricSource
Maybe V2beta2ExternalMetricSource
Text
v2beta2MetricSpecType :: Text
v2beta2MetricSpecResource :: Maybe V2beta2ResourceMetricSource
v2beta2MetricSpecPods :: Maybe V2beta2PodsMetricSource
v2beta2MetricSpecObject :: Maybe V2beta2ObjectMetricSource
v2beta2MetricSpecExternal :: Maybe V2beta2ExternalMetricSource
v2beta2MetricSpecType :: V2beta2MetricSpec -> Text
v2beta2MetricSpecResource :: V2beta2MetricSpec -> Maybe V2beta2ResourceMetricSource
v2beta2MetricSpecPods :: V2beta2MetricSpec -> Maybe V2beta2PodsMetricSource
v2beta2MetricSpecObject :: V2beta2MetricSpec -> Maybe V2beta2ObjectMetricSource
v2beta2MetricSpecExternal :: V2beta2MetricSpec -> Maybe V2beta2ExternalMetricSource
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"external" Text -> Maybe V2beta2ExternalMetricSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta2ExternalMetricSource
v2beta2MetricSpecExternal
      , Text
"object" Text -> Maybe V2beta2ObjectMetricSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta2ObjectMetricSource
v2beta2MetricSpecObject
      , Text
"pods" Text -> Maybe V2beta2PodsMetricSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta2PodsMetricSource
v2beta2MetricSpecPods
      , Text
"resource" Text -> Maybe V2beta2ResourceMetricSource -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta2ResourceMetricSource
v2beta2MetricSpecResource
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta2MetricSpecType
      ]


-- | Construct a value of type 'V2beta2MetricSpec' (by applying it's required fields, if any)
mkV2beta2MetricSpec
  :: Text -- ^ 'v2beta2MetricSpecType': type is the type of metric source.  It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.
  -> V2beta2MetricSpec
mkV2beta2MetricSpec :: Text -> V2beta2MetricSpec
mkV2beta2MetricSpec Text
v2beta2MetricSpecType =
  V2beta2MetricSpec :: Maybe V2beta2ExternalMetricSource
-> Maybe V2beta2ObjectMetricSource
-> Maybe V2beta2PodsMetricSource
-> Maybe V2beta2ResourceMetricSource
-> Text
-> V2beta2MetricSpec
V2beta2MetricSpec
  { v2beta2MetricSpecExternal :: Maybe V2beta2ExternalMetricSource
v2beta2MetricSpecExternal = Maybe V2beta2ExternalMetricSource
forall a. Maybe a
Nothing
  , v2beta2MetricSpecObject :: Maybe V2beta2ObjectMetricSource
v2beta2MetricSpecObject = Maybe V2beta2ObjectMetricSource
forall a. Maybe a
Nothing
  , v2beta2MetricSpecPods :: Maybe V2beta2PodsMetricSource
v2beta2MetricSpecPods = Maybe V2beta2PodsMetricSource
forall a. Maybe a
Nothing
  , v2beta2MetricSpecResource :: Maybe V2beta2ResourceMetricSource
v2beta2MetricSpecResource = Maybe V2beta2ResourceMetricSource
forall a. Maybe a
Nothing
  , Text
v2beta2MetricSpecType :: Text
v2beta2MetricSpecType :: Text
v2beta2MetricSpecType
  }

-- ** V2beta2MetricStatus
-- | V2beta2MetricStatus
-- MetricStatus describes the last-read state of a single metric.
data V2beta2MetricStatus = V2beta2MetricStatus
  { V2beta2MetricStatus -> Maybe V2beta2ExternalMetricStatus
v2beta2MetricStatusExternal :: !(Maybe V2beta2ExternalMetricStatus) -- ^ "external"
  , V2beta2MetricStatus -> Maybe V2beta2ObjectMetricStatus
v2beta2MetricStatusObject :: !(Maybe V2beta2ObjectMetricStatus) -- ^ "object"
  , V2beta2MetricStatus -> Maybe V2beta2PodsMetricStatus
v2beta2MetricStatusPods :: !(Maybe V2beta2PodsMetricStatus) -- ^ "pods"
  , V2beta2MetricStatus -> Maybe V2beta2ResourceMetricStatus
v2beta2MetricStatusResource :: !(Maybe V2beta2ResourceMetricStatus) -- ^ "resource"
  , V2beta2MetricStatus -> Text
v2beta2MetricStatusType :: !(Text) -- ^ /Required/ "type" - type is the type of metric source.  It will be one of \&quot;Object\&quot;, \&quot;Pods\&quot; or \&quot;Resource\&quot;, each corresponds to a matching field in the object.
  } deriving (Int -> V2beta2MetricStatus -> ShowS
[V2beta2MetricStatus] -> ShowS
V2beta2MetricStatus -> String
(Int -> V2beta2MetricStatus -> ShowS)
-> (V2beta2MetricStatus -> String)
-> ([V2beta2MetricStatus] -> ShowS)
-> Show V2beta2MetricStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2MetricStatus] -> ShowS
$cshowList :: [V2beta2MetricStatus] -> ShowS
show :: V2beta2MetricStatus -> String
$cshow :: V2beta2MetricStatus -> String
showsPrec :: Int -> V2beta2MetricStatus -> ShowS
$cshowsPrec :: Int -> V2beta2MetricStatus -> ShowS
P.Show, V2beta2MetricStatus -> V2beta2MetricStatus -> Bool
(V2beta2MetricStatus -> V2beta2MetricStatus -> Bool)
-> (V2beta2MetricStatus -> V2beta2MetricStatus -> Bool)
-> Eq V2beta2MetricStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2MetricStatus -> V2beta2MetricStatus -> Bool
$c/= :: V2beta2MetricStatus -> V2beta2MetricStatus -> Bool
== :: V2beta2MetricStatus -> V2beta2MetricStatus -> Bool
$c== :: V2beta2MetricStatus -> V2beta2MetricStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2MetricStatus
instance A.FromJSON V2beta2MetricStatus where
  parseJSON :: Value -> Parser V2beta2MetricStatus
parseJSON = String
-> (Object -> Parser V2beta2MetricStatus)
-> Value
-> Parser V2beta2MetricStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2MetricStatus" ((Object -> Parser V2beta2MetricStatus)
 -> Value -> Parser V2beta2MetricStatus)
-> (Object -> Parser V2beta2MetricStatus)
-> Value
-> Parser V2beta2MetricStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe V2beta2ExternalMetricStatus
-> Maybe V2beta2ObjectMetricStatus
-> Maybe V2beta2PodsMetricStatus
-> Maybe V2beta2ResourceMetricStatus
-> Text
-> V2beta2MetricStatus
V2beta2MetricStatus
      (Maybe V2beta2ExternalMetricStatus
 -> Maybe V2beta2ObjectMetricStatus
 -> Maybe V2beta2PodsMetricStatus
 -> Maybe V2beta2ResourceMetricStatus
 -> Text
 -> V2beta2MetricStatus)
-> Parser (Maybe V2beta2ExternalMetricStatus)
-> Parser
     (Maybe V2beta2ObjectMetricStatus
      -> Maybe V2beta2PodsMetricStatus
      -> Maybe V2beta2ResourceMetricStatus
      -> Text
      -> V2beta2MetricStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe V2beta2ExternalMetricStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"external")
      Parser
  (Maybe V2beta2ObjectMetricStatus
   -> Maybe V2beta2PodsMetricStatus
   -> Maybe V2beta2ResourceMetricStatus
   -> Text
   -> V2beta2MetricStatus)
-> Parser (Maybe V2beta2ObjectMetricStatus)
-> Parser
     (Maybe V2beta2PodsMetricStatus
      -> Maybe V2beta2ResourceMetricStatus
      -> Text
      -> V2beta2MetricStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V2beta2ObjectMetricStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"object")
      Parser
  (Maybe V2beta2PodsMetricStatus
   -> Maybe V2beta2ResourceMetricStatus
   -> Text
   -> V2beta2MetricStatus)
-> Parser (Maybe V2beta2PodsMetricStatus)
-> Parser
     (Maybe V2beta2ResourceMetricStatus -> Text -> V2beta2MetricStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V2beta2PodsMetricStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"pods")
      Parser
  (Maybe V2beta2ResourceMetricStatus -> Text -> V2beta2MetricStatus)
-> Parser (Maybe V2beta2ResourceMetricStatus)
-> Parser (Text -> V2beta2MetricStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe V2beta2ResourceMetricStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"resource")
      Parser (Text -> V2beta2MetricStatus)
-> Parser Text -> Parser V2beta2MetricStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")

-- | ToJSON V2beta2MetricStatus
instance A.ToJSON V2beta2MetricStatus where
  toJSON :: V2beta2MetricStatus -> Value
toJSON V2beta2MetricStatus {Maybe V2beta2ResourceMetricStatus
Maybe V2beta2PodsMetricStatus
Maybe V2beta2ObjectMetricStatus
Maybe V2beta2ExternalMetricStatus
Text
v2beta2MetricStatusType :: Text
v2beta2MetricStatusResource :: Maybe V2beta2ResourceMetricStatus
v2beta2MetricStatusPods :: Maybe V2beta2PodsMetricStatus
v2beta2MetricStatusObject :: Maybe V2beta2ObjectMetricStatus
v2beta2MetricStatusExternal :: Maybe V2beta2ExternalMetricStatus
v2beta2MetricStatusType :: V2beta2MetricStatus -> Text
v2beta2MetricStatusResource :: V2beta2MetricStatus -> Maybe V2beta2ResourceMetricStatus
v2beta2MetricStatusPods :: V2beta2MetricStatus -> Maybe V2beta2PodsMetricStatus
v2beta2MetricStatusObject :: V2beta2MetricStatus -> Maybe V2beta2ObjectMetricStatus
v2beta2MetricStatusExternal :: V2beta2MetricStatus -> Maybe V2beta2ExternalMetricStatus
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"external" Text -> Maybe V2beta2ExternalMetricStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta2ExternalMetricStatus
v2beta2MetricStatusExternal
      , Text
"object" Text -> Maybe V2beta2ObjectMetricStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta2ObjectMetricStatus
v2beta2MetricStatusObject
      , Text
"pods" Text -> Maybe V2beta2PodsMetricStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta2PodsMetricStatus
v2beta2MetricStatusPods
      , Text
"resource" Text -> Maybe V2beta2ResourceMetricStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe V2beta2ResourceMetricStatus
v2beta2MetricStatusResource
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta2MetricStatusType
      ]


-- | Construct a value of type 'V2beta2MetricStatus' (by applying it's required fields, if any)
mkV2beta2MetricStatus
  :: Text -- ^ 'v2beta2MetricStatusType': type is the type of metric source.  It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.
  -> V2beta2MetricStatus
mkV2beta2MetricStatus :: Text -> V2beta2MetricStatus
mkV2beta2MetricStatus Text
v2beta2MetricStatusType =
  V2beta2MetricStatus :: Maybe V2beta2ExternalMetricStatus
-> Maybe V2beta2ObjectMetricStatus
-> Maybe V2beta2PodsMetricStatus
-> Maybe V2beta2ResourceMetricStatus
-> Text
-> V2beta2MetricStatus
V2beta2MetricStatus
  { v2beta2MetricStatusExternal :: Maybe V2beta2ExternalMetricStatus
v2beta2MetricStatusExternal = Maybe V2beta2ExternalMetricStatus
forall a. Maybe a
Nothing
  , v2beta2MetricStatusObject :: Maybe V2beta2ObjectMetricStatus
v2beta2MetricStatusObject = Maybe V2beta2ObjectMetricStatus
forall a. Maybe a
Nothing
  , v2beta2MetricStatusPods :: Maybe V2beta2PodsMetricStatus
v2beta2MetricStatusPods = Maybe V2beta2PodsMetricStatus
forall a. Maybe a
Nothing
  , v2beta2MetricStatusResource :: Maybe V2beta2ResourceMetricStatus
v2beta2MetricStatusResource = Maybe V2beta2ResourceMetricStatus
forall a. Maybe a
Nothing
  , Text
v2beta2MetricStatusType :: Text
v2beta2MetricStatusType :: Text
v2beta2MetricStatusType
  }

-- ** V2beta2MetricTarget
-- | V2beta2MetricTarget
-- MetricTarget defines the target value, average value, or average utilization of a specific metric
data V2beta2MetricTarget = V2beta2MetricTarget
  { V2beta2MetricTarget -> Maybe Int
v2beta2MetricTargetAverageUtilization :: !(Maybe Int) -- ^ "averageUtilization" - averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type
  , V2beta2MetricTarget -> Maybe Quantity
v2beta2MetricTargetAverageValue :: !(Maybe Quantity) -- ^ "averageValue"
  , V2beta2MetricTarget -> Text
v2beta2MetricTargetType :: !(Text) -- ^ /Required/ "type" - type represents whether the metric type is Utilization, Value, or AverageValue
  , V2beta2MetricTarget -> Maybe Quantity
v2beta2MetricTargetValue :: !(Maybe Quantity) -- ^ "value"
  } deriving (Int -> V2beta2MetricTarget -> ShowS
[V2beta2MetricTarget] -> ShowS
V2beta2MetricTarget -> String
(Int -> V2beta2MetricTarget -> ShowS)
-> (V2beta2MetricTarget -> String)
-> ([V2beta2MetricTarget] -> ShowS)
-> Show V2beta2MetricTarget
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2MetricTarget] -> ShowS
$cshowList :: [V2beta2MetricTarget] -> ShowS
show :: V2beta2MetricTarget -> String
$cshow :: V2beta2MetricTarget -> String
showsPrec :: Int -> V2beta2MetricTarget -> ShowS
$cshowsPrec :: Int -> V2beta2MetricTarget -> ShowS
P.Show, V2beta2MetricTarget -> V2beta2MetricTarget -> Bool
(V2beta2MetricTarget -> V2beta2MetricTarget -> Bool)
-> (V2beta2MetricTarget -> V2beta2MetricTarget -> Bool)
-> Eq V2beta2MetricTarget
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2MetricTarget -> V2beta2MetricTarget -> Bool
$c/= :: V2beta2MetricTarget -> V2beta2MetricTarget -> Bool
== :: V2beta2MetricTarget -> V2beta2MetricTarget -> Bool
$c== :: V2beta2MetricTarget -> V2beta2MetricTarget -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2MetricTarget
instance A.FromJSON V2beta2MetricTarget where
  parseJSON :: Value -> Parser V2beta2MetricTarget
parseJSON = String
-> (Object -> Parser V2beta2MetricTarget)
-> Value
-> Parser V2beta2MetricTarget
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2MetricTarget" ((Object -> Parser V2beta2MetricTarget)
 -> Value -> Parser V2beta2MetricTarget)
-> (Object -> Parser V2beta2MetricTarget)
-> Value
-> Parser V2beta2MetricTarget
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Quantity -> Text -> Maybe Quantity -> V2beta2MetricTarget
V2beta2MetricTarget
      (Maybe Int
 -> Maybe Quantity -> Text -> Maybe Quantity -> V2beta2MetricTarget)
-> Parser (Maybe Int)
-> Parser
     (Maybe Quantity -> Text -> Maybe Quantity -> V2beta2MetricTarget)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"averageUtilization")
      Parser
  (Maybe Quantity -> Text -> Maybe Quantity -> V2beta2MetricTarget)
-> Parser (Maybe Quantity)
-> Parser (Text -> Maybe Quantity -> V2beta2MetricTarget)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Quantity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"averageValue")
      Parser (Text -> Maybe Quantity -> V2beta2MetricTarget)
-> Parser Text -> Parser (Maybe Quantity -> V2beta2MetricTarget)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"type")
      Parser (Maybe Quantity -> V2beta2MetricTarget)
-> Parser (Maybe Quantity) -> Parser V2beta2MetricTarget
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Quantity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"value")

-- | ToJSON V2beta2MetricTarget
instance A.ToJSON V2beta2MetricTarget where
  toJSON :: V2beta2MetricTarget -> Value
toJSON V2beta2MetricTarget {Maybe Int
Maybe Quantity
Text
v2beta2MetricTargetValue :: Maybe Quantity
v2beta2MetricTargetType :: Text
v2beta2MetricTargetAverageValue :: Maybe Quantity
v2beta2MetricTargetAverageUtilization :: Maybe Int
v2beta2MetricTargetValue :: V2beta2MetricTarget -> Maybe Quantity
v2beta2MetricTargetType :: V2beta2MetricTarget -> Text
v2beta2MetricTargetAverageValue :: V2beta2MetricTarget -> Maybe Quantity
v2beta2MetricTargetAverageUtilization :: V2beta2MetricTarget -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"averageUtilization" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v2beta2MetricTargetAverageUtilization
      , Text
"averageValue" Text -> Maybe Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Quantity
v2beta2MetricTargetAverageValue
      , Text
"type" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta2MetricTargetType
      , Text
"value" Text -> Maybe Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Quantity
v2beta2MetricTargetValue
      ]


-- | Construct a value of type 'V2beta2MetricTarget' (by applying it's required fields, if any)
mkV2beta2MetricTarget
  :: Text -- ^ 'v2beta2MetricTargetType': type represents whether the metric type is Utilization, Value, or AverageValue
  -> V2beta2MetricTarget
mkV2beta2MetricTarget :: Text -> V2beta2MetricTarget
mkV2beta2MetricTarget Text
v2beta2MetricTargetType =
  V2beta2MetricTarget :: Maybe Int
-> Maybe Quantity -> Text -> Maybe Quantity -> V2beta2MetricTarget
V2beta2MetricTarget
  { v2beta2MetricTargetAverageUtilization :: Maybe Int
v2beta2MetricTargetAverageUtilization = Maybe Int
forall a. Maybe a
Nothing
  , v2beta2MetricTargetAverageValue :: Maybe Quantity
v2beta2MetricTargetAverageValue = Maybe Quantity
forall a. Maybe a
Nothing
  , Text
v2beta2MetricTargetType :: Text
v2beta2MetricTargetType :: Text
v2beta2MetricTargetType
  , v2beta2MetricTargetValue :: Maybe Quantity
v2beta2MetricTargetValue = Maybe Quantity
forall a. Maybe a
Nothing
  }

-- ** V2beta2MetricValueStatus
-- | V2beta2MetricValueStatus
-- MetricValueStatus holds the current value for a metric
data V2beta2MetricValueStatus = V2beta2MetricValueStatus
  { V2beta2MetricValueStatus -> Maybe Int
v2beta2MetricValueStatusAverageUtilization :: !(Maybe Int) -- ^ "averageUtilization" - currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.
  , V2beta2MetricValueStatus -> Maybe Quantity
v2beta2MetricValueStatusAverageValue :: !(Maybe Quantity) -- ^ "averageValue"
  , V2beta2MetricValueStatus -> Maybe Quantity
v2beta2MetricValueStatusValue :: !(Maybe Quantity) -- ^ "value"
  } deriving (Int -> V2beta2MetricValueStatus -> ShowS
[V2beta2MetricValueStatus] -> ShowS
V2beta2MetricValueStatus -> String
(Int -> V2beta2MetricValueStatus -> ShowS)
-> (V2beta2MetricValueStatus -> String)
-> ([V2beta2MetricValueStatus] -> ShowS)
-> Show V2beta2MetricValueStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2MetricValueStatus] -> ShowS
$cshowList :: [V2beta2MetricValueStatus] -> ShowS
show :: V2beta2MetricValueStatus -> String
$cshow :: V2beta2MetricValueStatus -> String
showsPrec :: Int -> V2beta2MetricValueStatus -> ShowS
$cshowsPrec :: Int -> V2beta2MetricValueStatus -> ShowS
P.Show, V2beta2MetricValueStatus -> V2beta2MetricValueStatus -> Bool
(V2beta2MetricValueStatus -> V2beta2MetricValueStatus -> Bool)
-> (V2beta2MetricValueStatus -> V2beta2MetricValueStatus -> Bool)
-> Eq V2beta2MetricValueStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2MetricValueStatus -> V2beta2MetricValueStatus -> Bool
$c/= :: V2beta2MetricValueStatus -> V2beta2MetricValueStatus -> Bool
== :: V2beta2MetricValueStatus -> V2beta2MetricValueStatus -> Bool
$c== :: V2beta2MetricValueStatus -> V2beta2MetricValueStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2MetricValueStatus
instance A.FromJSON V2beta2MetricValueStatus where
  parseJSON :: Value -> Parser V2beta2MetricValueStatus
parseJSON = String
-> (Object -> Parser V2beta2MetricValueStatus)
-> Value
-> Parser V2beta2MetricValueStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2MetricValueStatus" ((Object -> Parser V2beta2MetricValueStatus)
 -> Value -> Parser V2beta2MetricValueStatus)
-> (Object -> Parser V2beta2MetricValueStatus)
-> Value
-> Parser V2beta2MetricValueStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Maybe Int
-> Maybe Quantity -> Maybe Quantity -> V2beta2MetricValueStatus
V2beta2MetricValueStatus
      (Maybe Int
 -> Maybe Quantity -> Maybe Quantity -> V2beta2MetricValueStatus)
-> Parser (Maybe Int)
-> Parser
     (Maybe Quantity -> Maybe Quantity -> V2beta2MetricValueStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"averageUtilization")
      Parser
  (Maybe Quantity -> Maybe Quantity -> V2beta2MetricValueStatus)
-> Parser (Maybe Quantity)
-> Parser (Maybe Quantity -> V2beta2MetricValueStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Quantity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"averageValue")
      Parser (Maybe Quantity -> V2beta2MetricValueStatus)
-> Parser (Maybe Quantity) -> Parser V2beta2MetricValueStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser (Maybe Quantity)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? Text
"value")

-- | ToJSON V2beta2MetricValueStatus
instance A.ToJSON V2beta2MetricValueStatus where
  toJSON :: V2beta2MetricValueStatus -> Value
toJSON V2beta2MetricValueStatus {Maybe Int
Maybe Quantity
v2beta2MetricValueStatusValue :: Maybe Quantity
v2beta2MetricValueStatusAverageValue :: Maybe Quantity
v2beta2MetricValueStatusAverageUtilization :: Maybe Int
v2beta2MetricValueStatusValue :: V2beta2MetricValueStatus -> Maybe Quantity
v2beta2MetricValueStatusAverageValue :: V2beta2MetricValueStatus -> Maybe Quantity
v2beta2MetricValueStatusAverageUtilization :: V2beta2MetricValueStatus -> Maybe Int
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"averageUtilization" Text -> Maybe Int -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Int
v2beta2MetricValueStatusAverageUtilization
      , Text
"averageValue" Text -> Maybe Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Quantity
v2beta2MetricValueStatusAverageValue
      , Text
"value" Text -> Maybe Quantity -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Maybe Quantity
v2beta2MetricValueStatusValue
      ]


-- | Construct a value of type 'V2beta2MetricValueStatus' (by applying it's required fields, if any)
mkV2beta2MetricValueStatus
  :: V2beta2MetricValueStatus
mkV2beta2MetricValueStatus :: V2beta2MetricValueStatus
mkV2beta2MetricValueStatus =
  V2beta2MetricValueStatus :: Maybe Int
-> Maybe Quantity -> Maybe Quantity -> V2beta2MetricValueStatus
V2beta2MetricValueStatus
  { v2beta2MetricValueStatusAverageUtilization :: Maybe Int
v2beta2MetricValueStatusAverageUtilization = Maybe Int
forall a. Maybe a
Nothing
  , v2beta2MetricValueStatusAverageValue :: Maybe Quantity
v2beta2MetricValueStatusAverageValue = Maybe Quantity
forall a. Maybe a
Nothing
  , v2beta2MetricValueStatusValue :: Maybe Quantity
v2beta2MetricValueStatusValue = Maybe Quantity
forall a. Maybe a
Nothing
  }

-- ** V2beta2ObjectMetricSource
-- | V2beta2ObjectMetricSource
-- ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).
data V2beta2ObjectMetricSource = V2beta2ObjectMetricSource
  { V2beta2ObjectMetricSource -> V2beta2CrossVersionObjectReference
v2beta2ObjectMetricSourceDescribedObject :: !(V2beta2CrossVersionObjectReference) -- ^ /Required/ "describedObject"
  , V2beta2ObjectMetricSource -> V2beta2MetricIdentifier
v2beta2ObjectMetricSourceMetric :: !(V2beta2MetricIdentifier) -- ^ /Required/ "metric"
  , V2beta2ObjectMetricSource -> V2beta2MetricTarget
v2beta2ObjectMetricSourceTarget :: !(V2beta2MetricTarget) -- ^ /Required/ "target"
  } deriving (Int -> V2beta2ObjectMetricSource -> ShowS
[V2beta2ObjectMetricSource] -> ShowS
V2beta2ObjectMetricSource -> String
(Int -> V2beta2ObjectMetricSource -> ShowS)
-> (V2beta2ObjectMetricSource -> String)
-> ([V2beta2ObjectMetricSource] -> ShowS)
-> Show V2beta2ObjectMetricSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2ObjectMetricSource] -> ShowS
$cshowList :: [V2beta2ObjectMetricSource] -> ShowS
show :: V2beta2ObjectMetricSource -> String
$cshow :: V2beta2ObjectMetricSource -> String
showsPrec :: Int -> V2beta2ObjectMetricSource -> ShowS
$cshowsPrec :: Int -> V2beta2ObjectMetricSource -> ShowS
P.Show, V2beta2ObjectMetricSource -> V2beta2ObjectMetricSource -> Bool
(V2beta2ObjectMetricSource -> V2beta2ObjectMetricSource -> Bool)
-> (V2beta2ObjectMetricSource -> V2beta2ObjectMetricSource -> Bool)
-> Eq V2beta2ObjectMetricSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2ObjectMetricSource -> V2beta2ObjectMetricSource -> Bool
$c/= :: V2beta2ObjectMetricSource -> V2beta2ObjectMetricSource -> Bool
== :: V2beta2ObjectMetricSource -> V2beta2ObjectMetricSource -> Bool
$c== :: V2beta2ObjectMetricSource -> V2beta2ObjectMetricSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2ObjectMetricSource
instance A.FromJSON V2beta2ObjectMetricSource where
  parseJSON :: Value -> Parser V2beta2ObjectMetricSource
parseJSON = String
-> (Object -> Parser V2beta2ObjectMetricSource)
-> Value
-> Parser V2beta2ObjectMetricSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2ObjectMetricSource" ((Object -> Parser V2beta2ObjectMetricSource)
 -> Value -> Parser V2beta2ObjectMetricSource)
-> (Object -> Parser V2beta2ObjectMetricSource)
-> Value
-> Parser V2beta2ObjectMetricSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    V2beta2CrossVersionObjectReference
-> V2beta2MetricIdentifier
-> V2beta2MetricTarget
-> V2beta2ObjectMetricSource
V2beta2ObjectMetricSource
      (V2beta2CrossVersionObjectReference
 -> V2beta2MetricIdentifier
 -> V2beta2MetricTarget
 -> V2beta2ObjectMetricSource)
-> Parser V2beta2CrossVersionObjectReference
-> Parser
     (V2beta2MetricIdentifier
      -> V2beta2MetricTarget -> V2beta2ObjectMetricSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser V2beta2CrossVersionObjectReference
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"describedObject")
      Parser
  (V2beta2MetricIdentifier
   -> V2beta2MetricTarget -> V2beta2ObjectMetricSource)
-> Parser V2beta2MetricIdentifier
-> Parser (V2beta2MetricTarget -> V2beta2ObjectMetricSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V2beta2MetricIdentifier
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"metric")
      Parser (V2beta2MetricTarget -> V2beta2ObjectMetricSource)
-> Parser V2beta2MetricTarget -> Parser V2beta2ObjectMetricSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V2beta2MetricTarget
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"target")

-- | ToJSON V2beta2ObjectMetricSource
instance A.ToJSON V2beta2ObjectMetricSource where
  toJSON :: V2beta2ObjectMetricSource -> Value
toJSON V2beta2ObjectMetricSource {V2beta2MetricTarget
V2beta2MetricIdentifier
V2beta2CrossVersionObjectReference
v2beta2ObjectMetricSourceTarget :: V2beta2MetricTarget
v2beta2ObjectMetricSourceMetric :: V2beta2MetricIdentifier
v2beta2ObjectMetricSourceDescribedObject :: V2beta2CrossVersionObjectReference
v2beta2ObjectMetricSourceTarget :: V2beta2ObjectMetricSource -> V2beta2MetricTarget
v2beta2ObjectMetricSourceMetric :: V2beta2ObjectMetricSource -> V2beta2MetricIdentifier
v2beta2ObjectMetricSourceDescribedObject :: V2beta2ObjectMetricSource -> V2beta2CrossVersionObjectReference
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"describedObject" Text -> V2beta2CrossVersionObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2CrossVersionObjectReference
v2beta2ObjectMetricSourceDescribedObject
      , Text
"metric" Text -> V2beta2MetricIdentifier -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2MetricIdentifier
v2beta2ObjectMetricSourceMetric
      , Text
"target" Text -> V2beta2MetricTarget -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2MetricTarget
v2beta2ObjectMetricSourceTarget
      ]


-- | Construct a value of type 'V2beta2ObjectMetricSource' (by applying it's required fields, if any)
mkV2beta2ObjectMetricSource
  :: V2beta2CrossVersionObjectReference -- ^ 'v2beta2ObjectMetricSourceDescribedObject' 
  -> V2beta2MetricIdentifier -- ^ 'v2beta2ObjectMetricSourceMetric' 
  -> V2beta2MetricTarget -- ^ 'v2beta2ObjectMetricSourceTarget' 
  -> V2beta2ObjectMetricSource
mkV2beta2ObjectMetricSource :: V2beta2CrossVersionObjectReference
-> V2beta2MetricIdentifier
-> V2beta2MetricTarget
-> V2beta2ObjectMetricSource
mkV2beta2ObjectMetricSource V2beta2CrossVersionObjectReference
v2beta2ObjectMetricSourceDescribedObject V2beta2MetricIdentifier
v2beta2ObjectMetricSourceMetric V2beta2MetricTarget
v2beta2ObjectMetricSourceTarget =
  V2beta2ObjectMetricSource :: V2beta2CrossVersionObjectReference
-> V2beta2MetricIdentifier
-> V2beta2MetricTarget
-> V2beta2ObjectMetricSource
V2beta2ObjectMetricSource
  { V2beta2CrossVersionObjectReference
v2beta2ObjectMetricSourceDescribedObject :: V2beta2CrossVersionObjectReference
v2beta2ObjectMetricSourceDescribedObject :: V2beta2CrossVersionObjectReference
v2beta2ObjectMetricSourceDescribedObject
  , V2beta2MetricIdentifier
v2beta2ObjectMetricSourceMetric :: V2beta2MetricIdentifier
v2beta2ObjectMetricSourceMetric :: V2beta2MetricIdentifier
v2beta2ObjectMetricSourceMetric
  , V2beta2MetricTarget
v2beta2ObjectMetricSourceTarget :: V2beta2MetricTarget
v2beta2ObjectMetricSourceTarget :: V2beta2MetricTarget
v2beta2ObjectMetricSourceTarget
  }

-- ** V2beta2ObjectMetricStatus
-- | V2beta2ObjectMetricStatus
-- ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).
data V2beta2ObjectMetricStatus = V2beta2ObjectMetricStatus
  { V2beta2ObjectMetricStatus -> V2beta2MetricValueStatus
v2beta2ObjectMetricStatusCurrent :: !(V2beta2MetricValueStatus) -- ^ /Required/ "current"
  , V2beta2ObjectMetricStatus -> V2beta2CrossVersionObjectReference
v2beta2ObjectMetricStatusDescribedObject :: !(V2beta2CrossVersionObjectReference) -- ^ /Required/ "describedObject"
  , V2beta2ObjectMetricStatus -> V2beta2MetricIdentifier
v2beta2ObjectMetricStatusMetric :: !(V2beta2MetricIdentifier) -- ^ /Required/ "metric"
  } deriving (Int -> V2beta2ObjectMetricStatus -> ShowS
[V2beta2ObjectMetricStatus] -> ShowS
V2beta2ObjectMetricStatus -> String
(Int -> V2beta2ObjectMetricStatus -> ShowS)
-> (V2beta2ObjectMetricStatus -> String)
-> ([V2beta2ObjectMetricStatus] -> ShowS)
-> Show V2beta2ObjectMetricStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2ObjectMetricStatus] -> ShowS
$cshowList :: [V2beta2ObjectMetricStatus] -> ShowS
show :: V2beta2ObjectMetricStatus -> String
$cshow :: V2beta2ObjectMetricStatus -> String
showsPrec :: Int -> V2beta2ObjectMetricStatus -> ShowS
$cshowsPrec :: Int -> V2beta2ObjectMetricStatus -> ShowS
P.Show, V2beta2ObjectMetricStatus -> V2beta2ObjectMetricStatus -> Bool
(V2beta2ObjectMetricStatus -> V2beta2ObjectMetricStatus -> Bool)
-> (V2beta2ObjectMetricStatus -> V2beta2ObjectMetricStatus -> Bool)
-> Eq V2beta2ObjectMetricStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2ObjectMetricStatus -> V2beta2ObjectMetricStatus -> Bool
$c/= :: V2beta2ObjectMetricStatus -> V2beta2ObjectMetricStatus -> Bool
== :: V2beta2ObjectMetricStatus -> V2beta2ObjectMetricStatus -> Bool
$c== :: V2beta2ObjectMetricStatus -> V2beta2ObjectMetricStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2ObjectMetricStatus
instance A.FromJSON V2beta2ObjectMetricStatus where
  parseJSON :: Value -> Parser V2beta2ObjectMetricStatus
parseJSON = String
-> (Object -> Parser V2beta2ObjectMetricStatus)
-> Value
-> Parser V2beta2ObjectMetricStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2ObjectMetricStatus" ((Object -> Parser V2beta2ObjectMetricStatus)
 -> Value -> Parser V2beta2ObjectMetricStatus)
-> (Object -> Parser V2beta2ObjectMetricStatus)
-> Value
-> Parser V2beta2ObjectMetricStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    V2beta2MetricValueStatus
-> V2beta2CrossVersionObjectReference
-> V2beta2MetricIdentifier
-> V2beta2ObjectMetricStatus
V2beta2ObjectMetricStatus
      (V2beta2MetricValueStatus
 -> V2beta2CrossVersionObjectReference
 -> V2beta2MetricIdentifier
 -> V2beta2ObjectMetricStatus)
-> Parser V2beta2MetricValueStatus
-> Parser
     (V2beta2CrossVersionObjectReference
      -> V2beta2MetricIdentifier -> V2beta2ObjectMetricStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser V2beta2MetricValueStatus
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"current")
      Parser
  (V2beta2CrossVersionObjectReference
   -> V2beta2MetricIdentifier -> V2beta2ObjectMetricStatus)
-> Parser V2beta2CrossVersionObjectReference
-> Parser (V2beta2MetricIdentifier -> V2beta2ObjectMetricStatus)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V2beta2CrossVersionObjectReference
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"describedObject")
      Parser (V2beta2MetricIdentifier -> V2beta2ObjectMetricStatus)
-> Parser V2beta2MetricIdentifier
-> Parser V2beta2ObjectMetricStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V2beta2MetricIdentifier
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"metric")

-- | ToJSON V2beta2ObjectMetricStatus
instance A.ToJSON V2beta2ObjectMetricStatus where
  toJSON :: V2beta2ObjectMetricStatus -> Value
toJSON V2beta2ObjectMetricStatus {V2beta2MetricValueStatus
V2beta2MetricIdentifier
V2beta2CrossVersionObjectReference
v2beta2ObjectMetricStatusMetric :: V2beta2MetricIdentifier
v2beta2ObjectMetricStatusDescribedObject :: V2beta2CrossVersionObjectReference
v2beta2ObjectMetricStatusCurrent :: V2beta2MetricValueStatus
v2beta2ObjectMetricStatusMetric :: V2beta2ObjectMetricStatus -> V2beta2MetricIdentifier
v2beta2ObjectMetricStatusDescribedObject :: V2beta2ObjectMetricStatus -> V2beta2CrossVersionObjectReference
v2beta2ObjectMetricStatusCurrent :: V2beta2ObjectMetricStatus -> V2beta2MetricValueStatus
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"current" Text -> V2beta2MetricValueStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2MetricValueStatus
v2beta2ObjectMetricStatusCurrent
      , Text
"describedObject" Text -> V2beta2CrossVersionObjectReference -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2CrossVersionObjectReference
v2beta2ObjectMetricStatusDescribedObject
      , Text
"metric" Text -> V2beta2MetricIdentifier -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2MetricIdentifier
v2beta2ObjectMetricStatusMetric
      ]


-- | Construct a value of type 'V2beta2ObjectMetricStatus' (by applying it's required fields, if any)
mkV2beta2ObjectMetricStatus
  :: V2beta2MetricValueStatus -- ^ 'v2beta2ObjectMetricStatusCurrent' 
  -> V2beta2CrossVersionObjectReference -- ^ 'v2beta2ObjectMetricStatusDescribedObject' 
  -> V2beta2MetricIdentifier -- ^ 'v2beta2ObjectMetricStatusMetric' 
  -> V2beta2ObjectMetricStatus
mkV2beta2ObjectMetricStatus :: V2beta2MetricValueStatus
-> V2beta2CrossVersionObjectReference
-> V2beta2MetricIdentifier
-> V2beta2ObjectMetricStatus
mkV2beta2ObjectMetricStatus V2beta2MetricValueStatus
v2beta2ObjectMetricStatusCurrent V2beta2CrossVersionObjectReference
v2beta2ObjectMetricStatusDescribedObject V2beta2MetricIdentifier
v2beta2ObjectMetricStatusMetric =
  V2beta2ObjectMetricStatus :: V2beta2MetricValueStatus
-> V2beta2CrossVersionObjectReference
-> V2beta2MetricIdentifier
-> V2beta2ObjectMetricStatus
V2beta2ObjectMetricStatus
  { V2beta2MetricValueStatus
v2beta2ObjectMetricStatusCurrent :: V2beta2MetricValueStatus
v2beta2ObjectMetricStatusCurrent :: V2beta2MetricValueStatus
v2beta2ObjectMetricStatusCurrent
  , V2beta2CrossVersionObjectReference
v2beta2ObjectMetricStatusDescribedObject :: V2beta2CrossVersionObjectReference
v2beta2ObjectMetricStatusDescribedObject :: V2beta2CrossVersionObjectReference
v2beta2ObjectMetricStatusDescribedObject
  , V2beta2MetricIdentifier
v2beta2ObjectMetricStatusMetric :: V2beta2MetricIdentifier
v2beta2ObjectMetricStatusMetric :: V2beta2MetricIdentifier
v2beta2ObjectMetricStatusMetric
  }

-- ** V2beta2PodsMetricSource
-- | V2beta2PodsMetricSource
-- PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.
data V2beta2PodsMetricSource = V2beta2PodsMetricSource
  { V2beta2PodsMetricSource -> V2beta2MetricIdentifier
v2beta2PodsMetricSourceMetric :: !(V2beta2MetricIdentifier) -- ^ /Required/ "metric"
  , V2beta2PodsMetricSource -> V2beta2MetricTarget
v2beta2PodsMetricSourceTarget :: !(V2beta2MetricTarget) -- ^ /Required/ "target"
  } deriving (Int -> V2beta2PodsMetricSource -> ShowS
[V2beta2PodsMetricSource] -> ShowS
V2beta2PodsMetricSource -> String
(Int -> V2beta2PodsMetricSource -> ShowS)
-> (V2beta2PodsMetricSource -> String)
-> ([V2beta2PodsMetricSource] -> ShowS)
-> Show V2beta2PodsMetricSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2PodsMetricSource] -> ShowS
$cshowList :: [V2beta2PodsMetricSource] -> ShowS
show :: V2beta2PodsMetricSource -> String
$cshow :: V2beta2PodsMetricSource -> String
showsPrec :: Int -> V2beta2PodsMetricSource -> ShowS
$cshowsPrec :: Int -> V2beta2PodsMetricSource -> ShowS
P.Show, V2beta2PodsMetricSource -> V2beta2PodsMetricSource -> Bool
(V2beta2PodsMetricSource -> V2beta2PodsMetricSource -> Bool)
-> (V2beta2PodsMetricSource -> V2beta2PodsMetricSource -> Bool)
-> Eq V2beta2PodsMetricSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2PodsMetricSource -> V2beta2PodsMetricSource -> Bool
$c/= :: V2beta2PodsMetricSource -> V2beta2PodsMetricSource -> Bool
== :: V2beta2PodsMetricSource -> V2beta2PodsMetricSource -> Bool
$c== :: V2beta2PodsMetricSource -> V2beta2PodsMetricSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2PodsMetricSource
instance A.FromJSON V2beta2PodsMetricSource where
  parseJSON :: Value -> Parser V2beta2PodsMetricSource
parseJSON = String
-> (Object -> Parser V2beta2PodsMetricSource)
-> Value
-> Parser V2beta2PodsMetricSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2PodsMetricSource" ((Object -> Parser V2beta2PodsMetricSource)
 -> Value -> Parser V2beta2PodsMetricSource)
-> (Object -> Parser V2beta2PodsMetricSource)
-> Value
-> Parser V2beta2PodsMetricSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    V2beta2MetricIdentifier
-> V2beta2MetricTarget -> V2beta2PodsMetricSource
V2beta2PodsMetricSource
      (V2beta2MetricIdentifier
 -> V2beta2MetricTarget -> V2beta2PodsMetricSource)
-> Parser V2beta2MetricIdentifier
-> Parser (V2beta2MetricTarget -> V2beta2PodsMetricSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser V2beta2MetricIdentifier
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"metric")
      Parser (V2beta2MetricTarget -> V2beta2PodsMetricSource)
-> Parser V2beta2MetricTarget -> Parser V2beta2PodsMetricSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V2beta2MetricTarget
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"target")

-- | ToJSON V2beta2PodsMetricSource
instance A.ToJSON V2beta2PodsMetricSource where
  toJSON :: V2beta2PodsMetricSource -> Value
toJSON V2beta2PodsMetricSource {V2beta2MetricTarget
V2beta2MetricIdentifier
v2beta2PodsMetricSourceTarget :: V2beta2MetricTarget
v2beta2PodsMetricSourceMetric :: V2beta2MetricIdentifier
v2beta2PodsMetricSourceTarget :: V2beta2PodsMetricSource -> V2beta2MetricTarget
v2beta2PodsMetricSourceMetric :: V2beta2PodsMetricSource -> V2beta2MetricIdentifier
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"metric" Text -> V2beta2MetricIdentifier -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2MetricIdentifier
v2beta2PodsMetricSourceMetric
      , Text
"target" Text -> V2beta2MetricTarget -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2MetricTarget
v2beta2PodsMetricSourceTarget
      ]


-- | Construct a value of type 'V2beta2PodsMetricSource' (by applying it's required fields, if any)
mkV2beta2PodsMetricSource
  :: V2beta2MetricIdentifier -- ^ 'v2beta2PodsMetricSourceMetric' 
  -> V2beta2MetricTarget -- ^ 'v2beta2PodsMetricSourceTarget' 
  -> V2beta2PodsMetricSource
mkV2beta2PodsMetricSource :: V2beta2MetricIdentifier
-> V2beta2MetricTarget -> V2beta2PodsMetricSource
mkV2beta2PodsMetricSource V2beta2MetricIdentifier
v2beta2PodsMetricSourceMetric V2beta2MetricTarget
v2beta2PodsMetricSourceTarget =
  V2beta2PodsMetricSource :: V2beta2MetricIdentifier
-> V2beta2MetricTarget -> V2beta2PodsMetricSource
V2beta2PodsMetricSource
  { V2beta2MetricIdentifier
v2beta2PodsMetricSourceMetric :: V2beta2MetricIdentifier
v2beta2PodsMetricSourceMetric :: V2beta2MetricIdentifier
v2beta2PodsMetricSourceMetric
  , V2beta2MetricTarget
v2beta2PodsMetricSourceTarget :: V2beta2MetricTarget
v2beta2PodsMetricSourceTarget :: V2beta2MetricTarget
v2beta2PodsMetricSourceTarget
  }

-- ** V2beta2PodsMetricStatus
-- | V2beta2PodsMetricStatus
-- PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).
data V2beta2PodsMetricStatus = V2beta2PodsMetricStatus
  { V2beta2PodsMetricStatus -> V2beta2MetricValueStatus
v2beta2PodsMetricStatusCurrent :: !(V2beta2MetricValueStatus) -- ^ /Required/ "current"
  , V2beta2PodsMetricStatus -> V2beta2MetricIdentifier
v2beta2PodsMetricStatusMetric :: !(V2beta2MetricIdentifier) -- ^ /Required/ "metric"
  } deriving (Int -> V2beta2PodsMetricStatus -> ShowS
[V2beta2PodsMetricStatus] -> ShowS
V2beta2PodsMetricStatus -> String
(Int -> V2beta2PodsMetricStatus -> ShowS)
-> (V2beta2PodsMetricStatus -> String)
-> ([V2beta2PodsMetricStatus] -> ShowS)
-> Show V2beta2PodsMetricStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2PodsMetricStatus] -> ShowS
$cshowList :: [V2beta2PodsMetricStatus] -> ShowS
show :: V2beta2PodsMetricStatus -> String
$cshow :: V2beta2PodsMetricStatus -> String
showsPrec :: Int -> V2beta2PodsMetricStatus -> ShowS
$cshowsPrec :: Int -> V2beta2PodsMetricStatus -> ShowS
P.Show, V2beta2PodsMetricStatus -> V2beta2PodsMetricStatus -> Bool
(V2beta2PodsMetricStatus -> V2beta2PodsMetricStatus -> Bool)
-> (V2beta2PodsMetricStatus -> V2beta2PodsMetricStatus -> Bool)
-> Eq V2beta2PodsMetricStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2PodsMetricStatus -> V2beta2PodsMetricStatus -> Bool
$c/= :: V2beta2PodsMetricStatus -> V2beta2PodsMetricStatus -> Bool
== :: V2beta2PodsMetricStatus -> V2beta2PodsMetricStatus -> Bool
$c== :: V2beta2PodsMetricStatus -> V2beta2PodsMetricStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2PodsMetricStatus
instance A.FromJSON V2beta2PodsMetricStatus where
  parseJSON :: Value -> Parser V2beta2PodsMetricStatus
parseJSON = String
-> (Object -> Parser V2beta2PodsMetricStatus)
-> Value
-> Parser V2beta2PodsMetricStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2PodsMetricStatus" ((Object -> Parser V2beta2PodsMetricStatus)
 -> Value -> Parser V2beta2PodsMetricStatus)
-> (Object -> Parser V2beta2PodsMetricStatus)
-> Value
-> Parser V2beta2PodsMetricStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    V2beta2MetricValueStatus
-> V2beta2MetricIdentifier -> V2beta2PodsMetricStatus
V2beta2PodsMetricStatus
      (V2beta2MetricValueStatus
 -> V2beta2MetricIdentifier -> V2beta2PodsMetricStatus)
-> Parser V2beta2MetricValueStatus
-> Parser (V2beta2MetricIdentifier -> V2beta2PodsMetricStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser V2beta2MetricValueStatus
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"current")
      Parser (V2beta2MetricIdentifier -> V2beta2PodsMetricStatus)
-> Parser V2beta2MetricIdentifier -> Parser V2beta2PodsMetricStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V2beta2MetricIdentifier
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"metric")

-- | ToJSON V2beta2PodsMetricStatus
instance A.ToJSON V2beta2PodsMetricStatus where
  toJSON :: V2beta2PodsMetricStatus -> Value
toJSON V2beta2PodsMetricStatus {V2beta2MetricValueStatus
V2beta2MetricIdentifier
v2beta2PodsMetricStatusMetric :: V2beta2MetricIdentifier
v2beta2PodsMetricStatusCurrent :: V2beta2MetricValueStatus
v2beta2PodsMetricStatusMetric :: V2beta2PodsMetricStatus -> V2beta2MetricIdentifier
v2beta2PodsMetricStatusCurrent :: V2beta2PodsMetricStatus -> V2beta2MetricValueStatus
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"current" Text -> V2beta2MetricValueStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2MetricValueStatus
v2beta2PodsMetricStatusCurrent
      , Text
"metric" Text -> V2beta2MetricIdentifier -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2MetricIdentifier
v2beta2PodsMetricStatusMetric
      ]


-- | Construct a value of type 'V2beta2PodsMetricStatus' (by applying it's required fields, if any)
mkV2beta2PodsMetricStatus
  :: V2beta2MetricValueStatus -- ^ 'v2beta2PodsMetricStatusCurrent' 
  -> V2beta2MetricIdentifier -- ^ 'v2beta2PodsMetricStatusMetric' 
  -> V2beta2PodsMetricStatus
mkV2beta2PodsMetricStatus :: V2beta2MetricValueStatus
-> V2beta2MetricIdentifier -> V2beta2PodsMetricStatus
mkV2beta2PodsMetricStatus V2beta2MetricValueStatus
v2beta2PodsMetricStatusCurrent V2beta2MetricIdentifier
v2beta2PodsMetricStatusMetric =
  V2beta2PodsMetricStatus :: V2beta2MetricValueStatus
-> V2beta2MetricIdentifier -> V2beta2PodsMetricStatus
V2beta2PodsMetricStatus
  { V2beta2MetricValueStatus
v2beta2PodsMetricStatusCurrent :: V2beta2MetricValueStatus
v2beta2PodsMetricStatusCurrent :: V2beta2MetricValueStatus
v2beta2PodsMetricStatusCurrent
  , V2beta2MetricIdentifier
v2beta2PodsMetricStatusMetric :: V2beta2MetricIdentifier
v2beta2PodsMetricStatusMetric :: V2beta2MetricIdentifier
v2beta2PodsMetricStatusMetric
  }

-- ** V2beta2ResourceMetricSource
-- | V2beta2ResourceMetricSource
-- ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  The values will be averaged together before being compared to the target.  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.  Only one \"target\" type should be set.
data V2beta2ResourceMetricSource = V2beta2ResourceMetricSource
  { V2beta2ResourceMetricSource -> Text
v2beta2ResourceMetricSourceName :: !(Text) -- ^ /Required/ "name" - name is the name of the resource in question.
  , V2beta2ResourceMetricSource -> V2beta2MetricTarget
v2beta2ResourceMetricSourceTarget :: !(V2beta2MetricTarget) -- ^ /Required/ "target"
  } deriving (Int -> V2beta2ResourceMetricSource -> ShowS
[V2beta2ResourceMetricSource] -> ShowS
V2beta2ResourceMetricSource -> String
(Int -> V2beta2ResourceMetricSource -> ShowS)
-> (V2beta2ResourceMetricSource -> String)
-> ([V2beta2ResourceMetricSource] -> ShowS)
-> Show V2beta2ResourceMetricSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2ResourceMetricSource] -> ShowS
$cshowList :: [V2beta2ResourceMetricSource] -> ShowS
show :: V2beta2ResourceMetricSource -> String
$cshow :: V2beta2ResourceMetricSource -> String
showsPrec :: Int -> V2beta2ResourceMetricSource -> ShowS
$cshowsPrec :: Int -> V2beta2ResourceMetricSource -> ShowS
P.Show, V2beta2ResourceMetricSource -> V2beta2ResourceMetricSource -> Bool
(V2beta2ResourceMetricSource
 -> V2beta2ResourceMetricSource -> Bool)
-> (V2beta2ResourceMetricSource
    -> V2beta2ResourceMetricSource -> Bool)
-> Eq V2beta2ResourceMetricSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2ResourceMetricSource -> V2beta2ResourceMetricSource -> Bool
$c/= :: V2beta2ResourceMetricSource -> V2beta2ResourceMetricSource -> Bool
== :: V2beta2ResourceMetricSource -> V2beta2ResourceMetricSource -> Bool
$c== :: V2beta2ResourceMetricSource -> V2beta2ResourceMetricSource -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2ResourceMetricSource
instance A.FromJSON V2beta2ResourceMetricSource where
  parseJSON :: Value -> Parser V2beta2ResourceMetricSource
parseJSON = String
-> (Object -> Parser V2beta2ResourceMetricSource)
-> Value
-> Parser V2beta2ResourceMetricSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2ResourceMetricSource" ((Object -> Parser V2beta2ResourceMetricSource)
 -> Value -> Parser V2beta2ResourceMetricSource)
-> (Object -> Parser V2beta2ResourceMetricSource)
-> Value
-> Parser V2beta2ResourceMetricSource
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text -> V2beta2MetricTarget -> V2beta2ResourceMetricSource
V2beta2ResourceMetricSource
      (Text -> V2beta2MetricTarget -> V2beta2ResourceMetricSource)
-> Parser Text
-> Parser (V2beta2MetricTarget -> V2beta2ResourceMetricSource)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")
      Parser (V2beta2MetricTarget -> V2beta2ResourceMetricSource)
-> Parser V2beta2MetricTarget -> Parser V2beta2ResourceMetricSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser V2beta2MetricTarget
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"target")

-- | ToJSON V2beta2ResourceMetricSource
instance A.ToJSON V2beta2ResourceMetricSource where
  toJSON :: V2beta2ResourceMetricSource -> Value
toJSON V2beta2ResourceMetricSource {Text
V2beta2MetricTarget
v2beta2ResourceMetricSourceTarget :: V2beta2MetricTarget
v2beta2ResourceMetricSourceName :: Text
v2beta2ResourceMetricSourceTarget :: V2beta2ResourceMetricSource -> V2beta2MetricTarget
v2beta2ResourceMetricSourceName :: V2beta2ResourceMetricSource -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta2ResourceMetricSourceName
      , Text
"target" Text -> V2beta2MetricTarget -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2MetricTarget
v2beta2ResourceMetricSourceTarget
      ]


-- | Construct a value of type 'V2beta2ResourceMetricSource' (by applying it's required fields, if any)
mkV2beta2ResourceMetricSource
  :: Text -- ^ 'v2beta2ResourceMetricSourceName': name is the name of the resource in question.
  -> V2beta2MetricTarget -- ^ 'v2beta2ResourceMetricSourceTarget' 
  -> V2beta2ResourceMetricSource
mkV2beta2ResourceMetricSource :: Text -> V2beta2MetricTarget -> V2beta2ResourceMetricSource
mkV2beta2ResourceMetricSource Text
v2beta2ResourceMetricSourceName V2beta2MetricTarget
v2beta2ResourceMetricSourceTarget =
  V2beta2ResourceMetricSource :: Text -> V2beta2MetricTarget -> V2beta2ResourceMetricSource
V2beta2ResourceMetricSource
  { Text
v2beta2ResourceMetricSourceName :: Text
v2beta2ResourceMetricSourceName :: Text
v2beta2ResourceMetricSourceName
  , V2beta2MetricTarget
v2beta2ResourceMetricSourceTarget :: V2beta2MetricTarget
v2beta2ResourceMetricSourceTarget :: V2beta2MetricTarget
v2beta2ResourceMetricSourceTarget
  }

-- ** V2beta2ResourceMetricStatus
-- | V2beta2ResourceMetricStatus
-- ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.
data V2beta2ResourceMetricStatus = V2beta2ResourceMetricStatus
  { V2beta2ResourceMetricStatus -> V2beta2MetricValueStatus
v2beta2ResourceMetricStatusCurrent :: !(V2beta2MetricValueStatus) -- ^ /Required/ "current"
  , V2beta2ResourceMetricStatus -> Text
v2beta2ResourceMetricStatusName :: !(Text) -- ^ /Required/ "name" - Name is the name of the resource in question.
  } deriving (Int -> V2beta2ResourceMetricStatus -> ShowS
[V2beta2ResourceMetricStatus] -> ShowS
V2beta2ResourceMetricStatus -> String
(Int -> V2beta2ResourceMetricStatus -> ShowS)
-> (V2beta2ResourceMetricStatus -> String)
-> ([V2beta2ResourceMetricStatus] -> ShowS)
-> Show V2beta2ResourceMetricStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [V2beta2ResourceMetricStatus] -> ShowS
$cshowList :: [V2beta2ResourceMetricStatus] -> ShowS
show :: V2beta2ResourceMetricStatus -> String
$cshow :: V2beta2ResourceMetricStatus -> String
showsPrec :: Int -> V2beta2ResourceMetricStatus -> ShowS
$cshowsPrec :: Int -> V2beta2ResourceMetricStatus -> ShowS
P.Show, V2beta2ResourceMetricStatus -> V2beta2ResourceMetricStatus -> Bool
(V2beta2ResourceMetricStatus
 -> V2beta2ResourceMetricStatus -> Bool)
-> (V2beta2ResourceMetricStatus
    -> V2beta2ResourceMetricStatus -> Bool)
-> Eq V2beta2ResourceMetricStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: V2beta2ResourceMetricStatus -> V2beta2ResourceMetricStatus -> Bool
$c/= :: V2beta2ResourceMetricStatus -> V2beta2ResourceMetricStatus -> Bool
== :: V2beta2ResourceMetricStatus -> V2beta2ResourceMetricStatus -> Bool
$c== :: V2beta2ResourceMetricStatus -> V2beta2ResourceMetricStatus -> Bool
P.Eq, P.Typeable)

-- | FromJSON V2beta2ResourceMetricStatus
instance A.FromJSON V2beta2ResourceMetricStatus where
  parseJSON :: Value -> Parser V2beta2ResourceMetricStatus
parseJSON = String
-> (Object -> Parser V2beta2ResourceMetricStatus)
-> Value
-> Parser V2beta2ResourceMetricStatus
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"V2beta2ResourceMetricStatus" ((Object -> Parser V2beta2ResourceMetricStatus)
 -> Value -> Parser V2beta2ResourceMetricStatus)
-> (Object -> Parser V2beta2ResourceMetricStatus)
-> Value
-> Parser V2beta2ResourceMetricStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    V2beta2MetricValueStatus -> Text -> V2beta2ResourceMetricStatus
V2beta2ResourceMetricStatus
      (V2beta2MetricValueStatus -> Text -> V2beta2ResourceMetricStatus)
-> Parser V2beta2MetricValueStatus
-> Parser (Text -> V2beta2ResourceMetricStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser V2beta2MetricValueStatus
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"current")
      Parser (Text -> V2beta2ResourceMetricStatus)
-> Parser Text -> Parser V2beta2ResourceMetricStatus
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"name")

-- | ToJSON V2beta2ResourceMetricStatus
instance A.ToJSON V2beta2ResourceMetricStatus where
  toJSON :: V2beta2ResourceMetricStatus -> Value
toJSON V2beta2ResourceMetricStatus {Text
V2beta2MetricValueStatus
v2beta2ResourceMetricStatusName :: Text
v2beta2ResourceMetricStatusCurrent :: V2beta2MetricValueStatus
v2beta2ResourceMetricStatusName :: V2beta2ResourceMetricStatus -> Text
v2beta2ResourceMetricStatusCurrent :: V2beta2ResourceMetricStatus -> V2beta2MetricValueStatus
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"current" Text -> V2beta2MetricValueStatus -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= V2beta2MetricValueStatus
v2beta2ResourceMetricStatusCurrent
      , Text
"name" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
v2beta2ResourceMetricStatusName
      ]


-- | Construct a value of type 'V2beta2ResourceMetricStatus' (by applying it's required fields, if any)
mkV2beta2ResourceMetricStatus
  :: V2beta2MetricValueStatus -- ^ 'v2beta2ResourceMetricStatusCurrent' 
  -> Text -- ^ 'v2beta2ResourceMetricStatusName': Name is the name of the resource in question.
  -> V2beta2ResourceMetricStatus
mkV2beta2ResourceMetricStatus :: V2beta2MetricValueStatus -> Text -> V2beta2ResourceMetricStatus
mkV2beta2ResourceMetricStatus V2beta2MetricValueStatus
v2beta2ResourceMetricStatusCurrent Text
v2beta2ResourceMetricStatusName =
  V2beta2ResourceMetricStatus :: V2beta2MetricValueStatus -> Text -> V2beta2ResourceMetricStatus
V2beta2ResourceMetricStatus
  { V2beta2MetricValueStatus
v2beta2ResourceMetricStatusCurrent :: V2beta2MetricValueStatus
v2beta2ResourceMetricStatusCurrent :: V2beta2MetricValueStatus
v2beta2ResourceMetricStatusCurrent
  , Text
v2beta2ResourceMetricStatusName :: Text
v2beta2ResourceMetricStatusName :: Text
v2beta2ResourceMetricStatusName
  }

-- ** VersionInfo
-- | VersionInfo
-- Info contains versioning information. how we'll want to distribute that information.
data VersionInfo = VersionInfo
  { VersionInfo -> Text
versionInfoBuildDate :: !(Text) -- ^ /Required/ "buildDate"
  , VersionInfo -> Text
versionInfoCompiler :: !(Text) -- ^ /Required/ "compiler"
  , VersionInfo -> Text
versionInfoGitCommit :: !(Text) -- ^ /Required/ "gitCommit"
  , VersionInfo -> Text
versionInfoGitTreeState :: !(Text) -- ^ /Required/ "gitTreeState"
  , VersionInfo -> Text
versionInfoGitVersion :: !(Text) -- ^ /Required/ "gitVersion"
  , VersionInfo -> Text
versionInfoGoVersion :: !(Text) -- ^ /Required/ "goVersion"
  , VersionInfo -> Text
versionInfoMajor :: !(Text) -- ^ /Required/ "major"
  , VersionInfo -> Text
versionInfoMinor :: !(Text) -- ^ /Required/ "minor"
  , VersionInfo -> Text
versionInfoPlatform :: !(Text) -- ^ /Required/ "platform"
  } deriving (Int -> VersionInfo -> ShowS
[VersionInfo] -> ShowS
VersionInfo -> String
(Int -> VersionInfo -> ShowS)
-> (VersionInfo -> String)
-> ([VersionInfo] -> ShowS)
-> Show VersionInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [VersionInfo] -> ShowS
$cshowList :: [VersionInfo] -> ShowS
show :: VersionInfo -> String
$cshow :: VersionInfo -> String
showsPrec :: Int -> VersionInfo -> ShowS
$cshowsPrec :: Int -> VersionInfo -> ShowS
P.Show, VersionInfo -> VersionInfo -> Bool
(VersionInfo -> VersionInfo -> Bool)
-> (VersionInfo -> VersionInfo -> Bool) -> Eq VersionInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VersionInfo -> VersionInfo -> Bool
$c/= :: VersionInfo -> VersionInfo -> Bool
== :: VersionInfo -> VersionInfo -> Bool
$c== :: VersionInfo -> VersionInfo -> Bool
P.Eq, P.Typeable)

-- | FromJSON VersionInfo
instance A.FromJSON VersionInfo where
  parseJSON :: Value -> Parser VersionInfo
parseJSON = String
-> (Object -> Parser VersionInfo) -> Value -> Parser VersionInfo
forall a. String -> (Object -> Parser a) -> Value -> Parser a
A.withObject String
"VersionInfo" ((Object -> Parser VersionInfo) -> Value -> Parser VersionInfo)
-> (Object -> Parser VersionInfo) -> Value -> Parser VersionInfo
forall a b. (a -> b) -> a -> b
$ \Object
o ->
    Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> VersionInfo
VersionInfo
      (Text
 -> Text
 -> Text
 -> Text
 -> Text
 -> Text
 -> Text
 -> Text
 -> Text
 -> VersionInfo)
-> Parser Text
-> Parser
     (Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> Text
      -> VersionInfo)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"buildDate")
      Parser
  (Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> Text
   -> VersionInfo)
-> Parser Text
-> Parser
     (Text
      -> Text -> Text -> Text -> Text -> Text -> Text -> VersionInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"compiler")
      Parser
  (Text
   -> Text -> Text -> Text -> Text -> Text -> Text -> VersionInfo)
-> Parser Text
-> Parser
     (Text -> Text -> Text -> Text -> Text -> Text -> VersionInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"gitCommit")
      Parser
  (Text -> Text -> Text -> Text -> Text -> Text -> VersionInfo)
-> Parser Text
-> Parser (Text -> Text -> Text -> Text -> Text -> VersionInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"gitTreeState")
      Parser (Text -> Text -> Text -> Text -> Text -> VersionInfo)
-> Parser Text
-> Parser (Text -> Text -> Text -> Text -> VersionInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"gitVersion")
      Parser (Text -> Text -> Text -> Text -> VersionInfo)
-> Parser Text -> Parser (Text -> Text -> Text -> VersionInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"goVersion")
      Parser (Text -> Text -> Text -> VersionInfo)
-> Parser Text -> Parser (Text -> Text -> VersionInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"major")
      Parser (Text -> Text -> VersionInfo)
-> Parser Text -> Parser (Text -> VersionInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"minor")
      Parser (Text -> VersionInfo) -> Parser Text -> Parser VersionInfo
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Object
o Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
.:  Text
"platform")

-- | ToJSON VersionInfo
instance A.ToJSON VersionInfo where
  toJSON :: VersionInfo -> Value
toJSON VersionInfo {Text
versionInfoPlatform :: Text
versionInfoMinor :: Text
versionInfoMajor :: Text
versionInfoGoVersion :: Text
versionInfoGitVersion :: Text
versionInfoGitTreeState :: Text
versionInfoGitCommit :: Text
versionInfoCompiler :: Text
versionInfoBuildDate :: Text
versionInfoPlatform :: VersionInfo -> Text
versionInfoMinor :: VersionInfo -> Text
versionInfoMajor :: VersionInfo -> Text
versionInfoGoVersion :: VersionInfo -> Text
versionInfoGitVersion :: VersionInfo -> Text
versionInfoGitTreeState :: VersionInfo -> Text
versionInfoGitCommit :: VersionInfo -> Text
versionInfoCompiler :: VersionInfo -> Text
versionInfoBuildDate :: VersionInfo -> Text
..} =
   [(Text, Value)] -> Value
_omitNulls
      [ Text
"buildDate" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
versionInfoBuildDate
      , Text
"compiler" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
versionInfoCompiler
      , Text
"gitCommit" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
versionInfoGitCommit
      , Text
"gitTreeState" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
versionInfoGitTreeState
      , Text
"gitVersion" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
versionInfoGitVersion
      , Text
"goVersion" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
versionInfoGoVersion
      , Text
"major" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
versionInfoMajor
      , Text
"minor" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
versionInfoMinor
      , Text
"platform" Text -> Text -> (Text, Value)
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= Text
versionInfoPlatform
      ]


-- | Construct a value of type 'VersionInfo' (by applying it's required fields, if any)
mkVersionInfo
  :: Text -- ^ 'versionInfoBuildDate' 
  -> Text -- ^ 'versionInfoCompiler' 
  -> Text -- ^ 'versionInfoGitCommit' 
  -> Text -- ^ 'versionInfoGitTreeState' 
  -> Text -- ^ 'versionInfoGitVersion' 
  -> Text -- ^ 'versionInfoGoVersion' 
  -> Text -- ^ 'versionInfoMajor' 
  -> Text -- ^ 'versionInfoMinor' 
  -> Text -- ^ 'versionInfoPlatform' 
  -> VersionInfo
mkVersionInfo :: Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> VersionInfo
mkVersionInfo Text
versionInfoBuildDate Text
versionInfoCompiler Text
versionInfoGitCommit Text
versionInfoGitTreeState Text
versionInfoGitVersion Text
versionInfoGoVersion Text
versionInfoMajor Text
versionInfoMinor Text
versionInfoPlatform =
  VersionInfo :: Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> VersionInfo
VersionInfo
  { Text
versionInfoBuildDate :: Text
versionInfoBuildDate :: Text
versionInfoBuildDate
  , Text
versionInfoCompiler :: Text
versionInfoCompiler :: Text
versionInfoCompiler
  , Text
versionInfoGitCommit :: Text
versionInfoGitCommit :: Text
versionInfoGitCommit
  , Text
versionInfoGitTreeState :: Text
versionInfoGitTreeState :: Text
versionInfoGitTreeState
  , Text
versionInfoGitVersion :: Text
versionInfoGitVersion :: Text
versionInfoGitVersion
  , Text
versionInfoGoVersion :: Text
versionInfoGoVersion :: Text
versionInfoGoVersion
  , Text
versionInfoMajor :: Text
versionInfoMajor :: Text
versionInfoMajor
  , Text
versionInfoMinor :: Text
versionInfoMinor :: Text
versionInfoMinor
  , Text
versionInfoPlatform :: Text
versionInfoPlatform :: Text
versionInfoPlatform
  }




-- * Auth Methods

-- ** AuthApiKeyBearerToken
data AuthApiKeyBearerToken =
  AuthApiKeyBearerToken Text -- ^ secret
  deriving (AuthApiKeyBearerToken -> AuthApiKeyBearerToken -> Bool
(AuthApiKeyBearerToken -> AuthApiKeyBearerToken -> Bool)
-> (AuthApiKeyBearerToken -> AuthApiKeyBearerToken -> Bool)
-> Eq AuthApiKeyBearerToken
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AuthApiKeyBearerToken -> AuthApiKeyBearerToken -> Bool
$c/= :: AuthApiKeyBearerToken -> AuthApiKeyBearerToken -> Bool
== :: AuthApiKeyBearerToken -> AuthApiKeyBearerToken -> Bool
$c== :: AuthApiKeyBearerToken -> AuthApiKeyBearerToken -> Bool
P.Eq, Int -> AuthApiKeyBearerToken -> ShowS
[AuthApiKeyBearerToken] -> ShowS
AuthApiKeyBearerToken -> String
(Int -> AuthApiKeyBearerToken -> ShowS)
-> (AuthApiKeyBearerToken -> String)
-> ([AuthApiKeyBearerToken] -> ShowS)
-> Show AuthApiKeyBearerToken
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AuthApiKeyBearerToken] -> ShowS
$cshowList :: [AuthApiKeyBearerToken] -> ShowS
show :: AuthApiKeyBearerToken -> String
$cshow :: AuthApiKeyBearerToken -> String
showsPrec :: Int -> AuthApiKeyBearerToken -> ShowS
$cshowsPrec :: Int -> AuthApiKeyBearerToken -> ShowS
P.Show, P.Typeable)

instance AuthMethod AuthApiKeyBearerToken where
  applyAuthMethod :: KubernetesClientConfig
-> AuthApiKeyBearerToken
-> KubernetesRequest req contentType res accept
-> IO (KubernetesRequest req contentType res accept)
applyAuthMethod KubernetesClientConfig
_ a :: AuthApiKeyBearerToken
a@(AuthApiKeyBearerToken Text
secret) KubernetesRequest req contentType res accept
req =
    KubernetesRequest req contentType res accept
-> IO (KubernetesRequest req contentType res accept)
forall (f :: * -> *) a. Applicative f => a -> f a
P.pure (KubernetesRequest req contentType res accept
 -> IO (KubernetesRequest req contentType res accept))
-> KubernetesRequest req contentType res accept
-> IO (KubernetesRequest req contentType res accept)
forall a b. (a -> b) -> a -> b
$
    if (AuthApiKeyBearerToken -> TypeRep
forall a. Typeable a => a -> TypeRep
P.typeOf AuthApiKeyBearerToken
a TypeRep -> [TypeRep] -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`P.elem` KubernetesRequest req contentType res accept -> [TypeRep]
forall req contentType res accept.
KubernetesRequest req contentType res accept -> [TypeRep]
rAuthTypes KubernetesRequest req contentType res accept
req)
      then KubernetesRequest req contentType res accept
req KubernetesRequest req contentType res accept
-> [Header] -> KubernetesRequest req contentType res accept
forall req contentType res accept.
KubernetesRequest req contentType res accept
-> [Header] -> KubernetesRequest req contentType res accept
`setHeader` (HeaderName, Text) -> [Header]
forall a. ToHttpApiData a => (HeaderName, a) -> [Header]
toHeader (HeaderName
"authorization", Text
secret)
           KubernetesRequest req contentType res accept
-> (KubernetesRequest req contentType res accept
    -> KubernetesRequest req contentType res accept)
-> KubernetesRequest req contentType res accept
forall a b. a -> (a -> b) -> b
& ASetter
  (KubernetesRequest req contentType res accept)
  (KubernetesRequest req contentType res accept)
  [TypeRep]
  [TypeRep]
-> ([TypeRep] -> [TypeRep])
-> KubernetesRequest req contentType res accept
-> KubernetesRequest req contentType res accept
forall s t a b. ASetter s t a b -> (a -> b) -> s -> t
L.over ASetter
  (KubernetesRequest req contentType res accept)
  (KubernetesRequest req contentType res accept)
  [TypeRep]
  [TypeRep]
forall req contentType res accept.
Lens_' (KubernetesRequest req contentType res accept) [TypeRep]
rAuthTypesL ((TypeRep -> Bool) -> [TypeRep] -> [TypeRep]
forall a. (a -> Bool) -> [a] -> [a]
P.filter (TypeRep -> TypeRep -> Bool
forall a. Eq a => a -> a -> Bool
/= AuthApiKeyBearerToken -> TypeRep
forall a. Typeable a => a -> TypeRep
P.typeOf AuthApiKeyBearerToken
a))
      else KubernetesRequest req contentType res accept
req